updated shaders

This commit is contained in:
gaitas13 2023-11-04 21:52:31 +01:00
parent 34e000e01a
commit 682a5b151d
13 changed files with 6657 additions and 225 deletions

View file

@ -0,0 +1,415 @@
// LICENSE
// =======
// Copyright (c) 2017-2019 Advanced Micro Devices, Inc. All rights reserved.
// -------
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
// modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
// -------
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
// Software.
// -------
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// FidelityFX CAS v1.0.2 by AMD
// ported to mpv by agyild
// Changelog
// Optimized texture lookups for OpenGL 4.0+, DirectX 10+, and OpenGL ES 3.1+
// Changed rcp + mul operations to div for better clarity when CAS_GO_SLOWER is set to 1, since the compiler should automatically
// optimize those instructions anyway.
// Made it directly operate on LUMA plane, since the original shader was operating on LUMA by deriving it from RGB. This should
// cause a major increase in performance, especially on OpenGL 4.0+ renderers (4 texture lookups vs. 16)
// Removed transparency preservation mechanism since the alpha channel is a separate source plan than LUMA
// Added custom gamma curve support for relinearization
// Removed final blending between the original and the sharpened pixels since it was redundant
//
// Notes
// Per AMD's guidelines only upscales content up to 4x (e.g., 1080p -> 2160p, 720p -> 1440p etc.) and everything else in between,
// that means CAS will scale up to 4x at maximum, and any further scaling will be processed by mpv's scalers
//
// The filter is designed to run in linear light, and does have an optional relinerization and delinearization pass which
// assumes BT.1886 content by default. Do not forget to change SOURCE_TRC and TARGET_TRC variables depending
// on what kind of content the filter is running on. You might want to create seperate versions of the file with different
// colorspace values, and apply them via autoprofiles. Note that running in non-linear light will result in oversharpening.
//!HOOK LUMA
//!BIND HOOKED
//!DESC FidelityFX Upsampling and Sharpening v1.0.2 (Relinearization)
//!WHEN OUTPUT.w OUTPUT.h * LUMA.w LUMA.h * / 1.0 >
// User variables - Relinearization
// Compatibility
#define SOURCE_TRC 4 // Is needed to convert from source colorspace to linear light. 0 = None (Skip conversion), 1 = Rec709, 2 = PQ, 3 = sRGB, 4 = BT.1886, 5 = HLG, 6 = Custom
#define CUSTOM_GAMMA 2.2 // Custom power gamma curve to use if and when SOURCE_TRC is 6.
// Shader code
float From709(float rec709) {
return max(min(rec709 / float(4.5), float(0.081)), pow((rec709 + float(0.099)) / float(1.099), float(1.0 / 0.45)));
}
float FromPq(float pq) {
float p = pow(pq, float(0.0126833));
return (pow(clamp(p - float(0.835938), 0.0, 1.0) / (float(18.8516) - float(18.6875) * p), float(6.27739)));
}
float FromSrgb(float srgb) {
return max(min(srgb / 12.92, float(0.04045)), pow((srgb + float(0.055)) / float(1.055), float(2.4)));
}
float FromHlg(float hlg) {
const float a = 0.17883277;
const float b = 0.28466892;
const float c = 0.55991073;
float linear;
if (hlg >= 0.0 && hlg <= 0.5) {
linear = pow(hlg, 2.0) / 3.0;
} else {
linear = (exp((hlg - c) / a) + b) / 12.0;
}
return linear;
}
vec4 hook() {
vec4 col = HOOKED_tex(HOOKED_pos);
col.r = clamp(col.r, 0.0, 1.0);
#if (SOURCE_TRC == 1)
col.r = From709(col.r);
#elif (SOURCE_TRC == 2)
col.r = FromPq(col.r);
#elif (SOURCE_TRC == 3)
col.r = FromSrgb(col.r);
#elif (SOURCE_TRC == 4)
col.r = pow(col.r, float(2.4));
#elif (SOURCE_TRC == 5)
col.r = FromHlg(col.r);
#elif (SOURCE_TRC == 6)
col.r = pow(col.r, float(CUSTOM_GAMMA));
#endif
return col;
}
//!HOOK LUMA
//!BIND HOOKED
//!DESC FidelityFX Upsampling and Sharpening v1.0.2
//!WHEN OUTPUT.w OUTPUT.h * LUMA.w LUMA.h * / 1.0 >
//!WIDTH OUTPUT.w OUTPUT.w LUMA.w 2 * < * LUMA.w 2 * OUTPUT.w LUMA.w 2 * > * + OUTPUT.w OUTPUT.w LUMA.w 2 * = * +
//!HEIGHT OUTPUT.h OUTPUT.h LUMA.h 2 * < * LUMA.h 2 * OUTPUT.h LUMA.h 2 * > * + OUTPUT.h OUTPUT.h LUMA.h 2 * = * +
// User variables - Upsampling and Sharpening
// Intensity
#define SHARPENING 0.0 // Adjusts the range the shader adapts to high contrast (0 is not all the way off). Higher values = more high contrast sharpening. 0.0 to 1.0.
// Performance
#define CAS_BETTER_DIAGONALS 1 // If set to 0, drops certain math and texture lookup operations for better performance. This is only useful on pre-OpenGL 4.0 renderers and there is no need to disable it otherwise. 0 or 1.
#define CAS_GO_SLOWER 0 // If set to 1, disables the use of optimized approximate transcendental functions which might slightly increase accuracy in exchange of performance. 0 or 1.
// Compatibility
#define TARGET_TRC 4 // Is needed to convert from source colorspace to target colorspace. 0 = None (Skip conversion), 1 = Rec709, 2 = PQ, 3 = sRGB, 4 = BT.1886, 5 = HLG, 6 = Custom
#define CUSTOM_GAMMA 2.2 // Custom power gamma curve to use if and when TARGET_TRC is 6.
// Shader code
float To709(float linear) {
return max(min(linear * float(4.5), float(0.018)), float(1.099) * pow(linear, float(0.45)) - float(0.099));
}
float ToPq(float linear) {
float p = pow(linear, float(0.159302));
return pow((float(0.835938) + float(18.8516) * p) / (float(1.0) + float(18.6875) * p), float(78.8438));
}
float ToSrgb(float linear) {
return max(min(linear * float(12.92), float(0.0031308)), float(1.055) * pow(linear, float(0.41666)) - float(0.055));
}
float ToHlg(float linear) {
const float a = 0.17883277;
const float b = 0.28466892;
const float c = 0.55991073;
float hlg;
if (linear <= 1.0 / 12.0) {
hlg = sqrt(3.0 * linear);
} else {
hlg = a * log(12.0 * linear - b) + c;
}
return hlg;
}
#if (CAS_GO_SLOWER == 0)
float APrxLoSqrtF1(float a) {
return uintBitsToFloat((floatBitsToUint(a) >> uint(1)) + uint(0x1fbc4639));
}
float APrxLoRcpF1(float a) {
return uintBitsToFloat(uint(0x7ef07ebb) - floatBitsToUint(a));
}
float APrxMedRcpF1(float a) {
float b = uintBitsToFloat(uint(0x7ef19fff) - floatBitsToUint(a));
return b * (-b * a + float(2.0));
}
#endif
vec4 hook()
{
// Scaling algorithm adaptively interpolates between nearest 4 results of the non-scaling algorithm.
// a b c d
// e f g h
// i j k l
// m n o p
// Working these 4 results.
// +-----+-----+
// | | |
// | f..|..g |
// | . | . |
// +-----+-----+
// | . | . |
// | j..|..k |
// | | |
// +-----+-----+
vec2 pp = HOOKED_pos * HOOKED_size - 0.5;
vec2 fp = floor(pp);
pp -= fp;
#if (defined(HOOKED_gather) && (__VERSION__ >= 400 || (GL_ES && __VERSION__ >= 310)))
vec4 abef = HOOKED_gather(vec2((fp - vec2(0.5)) * HOOKED_pt), 0);
float b = abef.z;
float e = abef.x;
float f = abef.y;
vec4 cdgh = HOOKED_gather(vec2((fp + vec2(1.5, -0.5)) * HOOKED_pt), 0);
float c = cdgh.w;
float g = cdgh.x;
float h = cdgh.y;
vec4 ijmn = HOOKED_gather(vec2((fp + vec2(-0.5, 1.5)) * HOOKED_pt), 0);
float i = ijmn.w;
float j = ijmn.z;
float n = ijmn.y;
vec4 klop = HOOKED_gather(vec2((fp + vec2(1.5)) * HOOKED_pt), 0);
float k = klop.w;
float l = klop.z;
float o = klop.x;
#if (CAS_BETTER_DIAGONALS == 1)
float a = abef.w;
float d = cdgh.z;
float m = ijmn.x;
float p = klop.y;
#endif
#else
ivec2 sp = ivec2(fp);
#if (CAS_BETTER_DIAGONALS == 1)
float a = texelFetch(HOOKED_raw, sp + ivec2(-1, -1), 0).r * HOOKED_mul;
float d = texelFetch(HOOKED_raw, sp + ivec2( 2, -1), 0).r * HOOKED_mul;
float m = texelFetch(HOOKED_raw, sp + ivec2(-1, 2), 0).r * HOOKED_mul;
float p = texelFetch(HOOKED_raw, sp + ivec2( 2, 2), 0).r * HOOKED_mul;
#endif
float b = texelFetch(HOOKED_raw, sp + ivec2( 0, -1), 0).r * HOOKED_mul;
float e = texelFetch(HOOKED_raw, sp + ivec2(-1, 0), 0).r * HOOKED_mul;
float f = texelFetch(HOOKED_raw, sp , 0).r * HOOKED_mul;
float c = texelFetch(HOOKED_raw, sp + ivec2( 1, -1), 0).r * HOOKED_mul;
float g = texelFetch(HOOKED_raw, sp + ivec2( 1, 0), 0).r * HOOKED_mul;
float h = texelFetch(HOOKED_raw, sp + ivec2( 2, 0), 0).r * HOOKED_mul;
float i = texelFetch(HOOKED_raw, sp + ivec2(-1, 1), 0).r * HOOKED_mul;
float j = texelFetch(HOOKED_raw, sp + ivec2( 0, 1), 0).r * HOOKED_mul;
float n = texelFetch(HOOKED_raw, sp + ivec2( 0, 2), 0).r * HOOKED_mul;
float k = texelFetch(HOOKED_raw, sp + ivec2( 1, 1), 0).r * HOOKED_mul;
float l = texelFetch(HOOKED_raw, sp + ivec2( 2, 1), 0).r * HOOKED_mul;
float o = texelFetch(HOOKED_raw, sp + ivec2( 1, 2), 0).r * HOOKED_mul;
#endif
// Soft min and max.
// These are 2.0x bigger (factored out the extra multiply).
// a b c b
// e f g * 0.5 + e f g * 0.5 [F]
// i j k j
float mnfL = min(min(b, min(e, f)), min(g, j));
float mxfL = max(max(b, max(e, f)), max(g, j));
#if (CAS_BETTER_DIAGONALS == 1)
float mnfL2 = min(min(mnfL, min(a, c)), min(i, k));
mnfL += mnfL2;
float mxfL2 = max(max(mxfL, max(a, c)), max(i, k));
mxfL += mxfL2;
#endif
// b c d c
// f g h * 0.5 + f g h * 0.5 [G]
// j k l k
float mngL = min(min(c, min(f, g)), min(h, k));
float mxgL = max(max(c, max(f, g)), max(h, k));
#if (CAS_BETTER_DIAGONALS == 1)
float mngL2 = min(min(mngL, min(b, d)), min(j, l));
mngL += mngL2;
float mxgL2 = max(max(mxgL, max(b, d)), max(j, l));
mxgL += mxgL2;
#endif
// e f g f
// i j k * 0.5 + i j k * 0.5 [J]
// m n o n
float mnjL = min(min(f, min(i, j)), min(k, n));
float mxjL = max(max(f, max(i, j)), max(k, n));
#if (CAS_BETTER_DIAGONALS == 1)
float mnjL2 = min(min(mnjL, min(e, g)), min(m, o));
mnjL += mnjL2;
float mxjL2 = max(max(mxjL, max(e, g)), max(m, o));
mxjL += mxjL2;
#endif
// f g h g
// j k l * 0.5 + j k l * 0.5 [K]
// n o p o
float mnkL = min(min(g, min(j, k)), min(l, o));
float mxkL = max(max(g, max(j, k)), max(l, o));
#if (CAS_BETTER_DIAGONALS == 1)
float mnkL2 = min(min(mnkL, min(f, h)), min(n, p));
mnkL += mnkL2;
float mxkL2 = max(max(mxkL, max(f, h)), max(n, p));
mxkL += mxkL2;
#endif
// Smooth minimum distance to signal limit divided by smooth max.
const float bdval = bool(CAS_BETTER_DIAGONALS) ? 2.0 : 1.0;
#if (CAS_GO_SLOWER == 1)
float ampfL = clamp(min(mnfL, bdval - mxfL) / mxfL, 0.0, 1.0);
float ampgL = clamp(min(mngL, bdval - mxgL) / mxgL, 0.0, 1.0);
float ampjL = clamp(min(mnjL, bdval - mxjL) / mxjL, 0.0, 1.0);
float ampkL = clamp(min(mnkL, bdval - mxkL) / mxkL, 0.0, 1.0);
#else
float ampfL = clamp(min(mnfL, bdval - mxfL) * APrxLoRcpF1(mxfL), 0.0, 1.0);
float ampgL = clamp(min(mngL, bdval - mxgL) * APrxLoRcpF1(mxgL), 0.0, 1.0);
float ampjL = clamp(min(mnjL, bdval - mxjL) * APrxLoRcpF1(mxjL), 0.0, 1.0);
float ampkL = clamp(min(mnkL, bdval - mxkL) * APrxLoRcpF1(mxkL), 0.0, 1.0);
#endif
// Shaping amount of sharpening.
#if (CAS_GO_SLOWER == 1)
ampfL = sqrt(ampfL);
ampgL = sqrt(ampgL);
ampjL = sqrt(ampjL);
ampkL = sqrt(ampkL);
#else
ampfL = APrxLoSqrtF1(ampfL);
ampgL = APrxLoSqrtF1(ampgL);
ampjL = APrxLoSqrtF1(ampjL);
ampkL = APrxLoSqrtF1(ampkL);
#endif
// Filter shape.
// 0 w 0
// w 1 w
// 0 w 0
const float peak = -(mix(8.0, 5.0, clamp(SHARPENING, 0.0, 1.0)));
float wfL = ampfL / peak;
float wgL = ampgL / peak;
float wjL = ampjL / peak;
float wkL = ampkL / peak;
// Blend between 4 results.
// s t
// u v
float s = (1.0 - pp.x) * (1.0 - pp.y);
float t = pp.x * (1.0 - pp.y);
float u = (1.0 - pp.x) * pp.y;
float v = pp.x * pp.y;
// Thin edges to hide bilinear interpolation (helps diagonals).
const float thinB = 0.03125; // 1.0 / 32.0
#if (CAS_GO_SLOWER == 1)
s /= thinB + mxfL - mnfL;
t /= thinB + mxgL - mngL;
u /= thinB + mxjL - mnjL;
v /= thinB + mxkL - mnkL;
#else
s *= APrxLoRcpF1(thinB + mxfL - mnfL);
t *= APrxLoRcpF1(thinB + mxgL - mngL);
u *= APrxLoRcpF1(thinB + mxjL - mnjL);
v *= APrxLoRcpF1(thinB + mxkL - mnkL);
#endif
// Final weighting.
// b c
// e f g h
// i j k l
// n o
// _____ _____ _____ _____
// fs gt
//
// _____ _____ _____ _____
// fs s gt fs t gt
// ju kv
// _____ _____ _____ _____
// fs gt
// ju u kv ju v kv
// _____ _____ _____ _____
//
// ju kv
float qbeL = wfL * s;
float qchL = wgL * t;
float qfL = wgL * t + wjL * u + s;
float qgL = wfL * s + wkL * v + t;
float qjL = wfL * s + wkL * v + u;
float qkL = wgL * t + wjL * u + v;
float qinL = wjL * u;
float qloL = wkL * v;
// Filter.
vec4 pix = vec4(0.0, 0.0, 0.0, 1.0);
float W = 2.0 * qbeL + 2.0 * qchL + 2.0 * qinL + 2.0 * qloL + qfL + qgL + qjL + qkL;
pix.r = b * qbeL + e * qbeL + c * qchL + h * qchL + i * qinL + n * qinL + l * qloL + o * qloL + f * qfL + g * qgL + j * qjL + k * qkL;
#if (CAS_GO_SLOWER == 1)
pix.r /= W;
#else
pix.r *= APrxMedRcpF1(W);
#endif
pix.r = clamp(pix.r, 0.0, 1.0);
#if (TARGET_TRC == 1)
pix.r = To709(pix.r);
#elif (TARGET_TRC == 2)
pix.r = ToPq(pix.r);
#elif (TARGET_TRC == 3)
pix.r = ToSrgb(pix.r);
#elif (TARGET_TRC == 4)
pix.r = pow(pix.r, float(1.0 / 2.4));
#elif (TARGET_TRC == 5)
pix.r = ToHlg(pix.r);
#elif (TARGET_TRC == 6)
pix.r = pow(pix.r, float(1.0 / CUSTOM_GAMMA));
#endif
return pix;
}

View file

@ -21,8 +21,8 @@
// SOFTWARE. // SOFTWARE.
//!HOOK CHROMA //!HOOK CHROMA
//!BIND CHROMA
//!BIND LUMA //!BIND LUMA
//!BIND HOOKED
//!SAVE LUMA_LOWRES //!SAVE LUMA_LOWRES
//!WIDTH CHROMA.w //!WIDTH CHROMA.w
//!HEIGHT LUMA.h //!HEIGHT LUMA.h
@ -30,26 +30,23 @@
//!DESC Chroma From Luma Prediction (Downscaling Luma 1st Step) //!DESC Chroma From Luma Prediction (Downscaling Luma 1st Step)
vec4 hook() { vec4 hook() {
float factor = ceil(LUMA_size.x / CHROMA_size.x); float factor = ceil(LUMA_size.x / HOOKED_size.x);
int start = int(ceil(-factor - 0.5)); int start = int(ceil(-factor / 2.0 - 0.5));
int end = int(floor(factor - 0.5)); int end = int(floor(factor / 2.0 - 0.5));
float filter_end = float(end) + 1.5;
float output_luma = 0.0; float output_luma = 0.0;
float wt = 0.0; int wt = 0;
for (int dx = start; dx <= end; dx++) { for (int dx = start; dx <= end; dx++) {
float luma_pix = LUMA_texOff(vec2(dx + 0.5, 0.0)).x; output_luma += LUMA_texOff(vec2(dx + 0.5, 0.0)).x;
float wd = smoothstep(0.0, filter_end, filter_end - length(vec2(dx + 0.5, 0.0))); wt++;
output_luma += luma_pix * wd;
wt += wd;
} }
vec4 output_pix = vec4(output_luma / wt, 0.0, 0.0, 1.0); vec4 output_pix = vec4(output_luma / float(wt), 0.0, 0.0, 1.0);
return output_pix; return output_pix;
} }
//!HOOK CHROMA //!HOOK CHROMA
//!BIND CHROMA
//!BIND LUMA_LOWRES //!BIND LUMA_LOWRES
//!BIND HOOKED
//!SAVE LUMA_LOWRES //!SAVE LUMA_LOWRES
//!WIDTH CHROMA.w //!WIDTH CHROMA.w
//!HEIGHT CHROMA.h //!HEIGHT CHROMA.h
@ -57,25 +54,22 @@ vec4 hook() {
//!DESC Chroma From Luma Prediction (Downscaling Luma 2nd Step) //!DESC Chroma From Luma Prediction (Downscaling Luma 2nd Step)
vec4 hook() { vec4 hook() {
float factor = ceil(LUMA_LOWRES_size.y / CHROMA_size.y); float factor = ceil(LUMA_LOWRES_size.y / HOOKED_size.y);
int start = int(ceil(-factor - 0.5)); int start = int(ceil(-factor / 2.0 - 0.5));
int end = int(floor(factor - 0.5)); int end = int(floor(factor / 2.0 - 0.5));
float filter_end = float(end) + 1.5;
float output_luma = 0.0; float output_luma = 0.0;
float wt = 0.0; int wt = 0;
for (int dy = start; dy <= end; dy++) { for (int dy = start; dy <= end; dy++) {
float luma_pix = LUMA_LOWRES_texOff(vec2(0.0, dy + 0.5)).x; output_luma += LUMA_LOWRES_texOff(vec2(0.0, dy + 0.5)).x;
float wd = smoothstep(0.0, filter_end, filter_end - length(vec2(0.0, dy + 0.5))); wt++;
output_luma += luma_pix * wd;
wt += wd;
} }
vec4 output_pix = vec4(output_luma / wt, 0.0, 0.0, 1.0); vec4 output_pix = vec4(output_luma / float(wt), 0.0, 0.0, 1.0);
return output_pix; return output_pix;
} }
//!HOOK CHROMA //!HOOK CHROMA
//!BIND CHROMA //!BIND HOOKED
//!BIND LUMA //!BIND LUMA
//!BIND LUMA_LOWRES //!BIND LUMA_LOWRES
//!WHEN CHROMA.w LUMA.w < //!WHEN CHROMA.w LUMA.w <
@ -84,53 +78,98 @@ vec4 hook() {
//!OFFSET ALIGN //!OFFSET ALIGN
//!DESC Chroma From Luma Prediction (Upscaling Chroma) //!DESC Chroma From Luma Prediction (Upscaling Chroma)
#define USE_12_TAP_REGRESSION 1
#define USE_4_TAP_REGRESSION 0
float comp_wd(vec2 distance) { float comp_wd(vec2 distance) {
float d = min(length(distance), 2.0); float d2 = min(pow(length(distance), 2.0), 4.0);
if (d < 1.0) { return (25.0 / 16.0 * pow(2.0 / 5.0 * d2 - 1.0, 2.0) - (25.0 / 16.0 - 1.0)) * pow(1.0 / 4.0 * d2 - 1.0, 2.0);
return (6.0 + d * d * (-15.0 + d * 9.0)) / 6.0;
} else {
return (12.0 + d * (-24.0 + d * (15.0 + d * -3.0))) / 6.0;
}
} }
vec4 hook() { vec4 hook() {
float division_limit = 1e-4; float ar_strength = 0.75;
vec4 output_pix = vec4(0.0, 0.0, 0.0, 1.0); vec4 output_pix = vec4(0.0, 0.0, 0.0, 1.0);
float luma_zero = LUMA_texOff(0.0).x; float luma_zero = LUMA_texOff(0.0).x;
vec2 pp = CHROMA_pos * CHROMA_size - vec2(0.5); vec2 pp = HOOKED_pos * HOOKED_size - vec2(0.5);
vec2 fp = floor(pp); vec2 fp = floor(pp);
pp -= fp; pp -= fp;
#ifdef HOOKED_gather
vec4 chroma_quads[4][2];
chroma_quads[0][0] = HOOKED_gather(vec2((fp + vec2(0.0, 0.0)) * HOOKED_pt), 0);
chroma_quads[1][0] = HOOKED_gather(vec2((fp + vec2(2.0, 0.0)) * HOOKED_pt), 0);
chroma_quads[2][0] = HOOKED_gather(vec2((fp + vec2(0.0, 2.0)) * HOOKED_pt), 0);
chroma_quads[3][0] = HOOKED_gather(vec2((fp + vec2(2.0, 2.0)) * HOOKED_pt), 0);
chroma_quads[0][1] = HOOKED_gather(vec2((fp + vec2(0.0, 0.0)) * HOOKED_pt), 1);
chroma_quads[1][1] = HOOKED_gather(vec2((fp + vec2(2.0, 0.0)) * HOOKED_pt), 1);
chroma_quads[2][1] = HOOKED_gather(vec2((fp + vec2(0.0, 2.0)) * HOOKED_pt), 1);
chroma_quads[3][1] = HOOKED_gather(vec2((fp + vec2(2.0, 2.0)) * HOOKED_pt), 1);
vec2 chroma_pixels[12]; vec2 chroma_pixels[12];
chroma_pixels[0] = CHROMA_tex(vec2((fp + vec2(0.5, -0.5)) * CHROMA_pt)).xy; chroma_pixels[0] = vec2(chroma_quads[0][0].z, chroma_quads[0][1].z);
chroma_pixels[1] = CHROMA_tex(vec2((fp + vec2(1.5, -0.5)) * CHROMA_pt)).xy; chroma_pixels[1] = vec2(chroma_quads[1][0].w, chroma_quads[1][1].w);
chroma_pixels[2] = CHROMA_tex(vec2((fp + vec2(-0.5, 0.5)) * CHROMA_pt)).xy; chroma_pixels[2] = vec2(chroma_quads[0][0].x, chroma_quads[0][1].x);
chroma_pixels[3] = CHROMA_tex(vec2((fp + vec2( 0.5, 0.5)) * CHROMA_pt)).xy; chroma_pixels[3] = vec2(chroma_quads[0][0].y, chroma_quads[0][1].y);
chroma_pixels[4] = CHROMA_tex(vec2((fp + vec2( 1.5, 0.5)) * CHROMA_pt)).xy; chroma_pixels[4] = vec2(chroma_quads[1][0].x, chroma_quads[1][1].x);
chroma_pixels[5] = CHROMA_tex(vec2((fp + vec2( 2.5, 0.5)) * CHROMA_pt)).xy; chroma_pixels[5] = vec2(chroma_quads[1][0].y, chroma_quads[1][1].y);
chroma_pixels[6] = CHROMA_tex(vec2((fp + vec2(-0.5, 1.5)) * CHROMA_pt)).xy; chroma_pixels[6] = vec2(chroma_quads[2][0].w, chroma_quads[2][1].w);
chroma_pixels[7] = CHROMA_tex(vec2((fp + vec2( 0.5, 1.5)) * CHROMA_pt)).xy; chroma_pixels[7] = vec2(chroma_quads[2][0].z, chroma_quads[2][1].z);
chroma_pixels[8] = CHROMA_tex(vec2((fp + vec2( 1.5, 1.5)) * CHROMA_pt)).xy; chroma_pixels[8] = vec2(chroma_quads[3][0].w, chroma_quads[3][1].w);
chroma_pixels[9] = CHROMA_tex(vec2((fp + vec2( 2.5, 1.5)) * CHROMA_pt)).xy; chroma_pixels[9] = vec2(chroma_quads[3][0].z, chroma_quads[3][1].z);
chroma_pixels[10] = CHROMA_tex(vec2((fp + vec2(0.5, 2.5) ) * CHROMA_pt)).xy; chroma_pixels[10] = vec2(chroma_quads[2][0].y, chroma_quads[2][1].y);
chroma_pixels[11] = CHROMA_tex(vec2((fp + vec2(1.5, 2.5) ) * CHROMA_pt)).xy; chroma_pixels[11] = vec2(chroma_quads[3][0].x, chroma_quads[3][1].x);
#if (USE_12_TAP_REGRESSION == 1 || USE_4_TAP_REGRESSION == 1)
vec4 luma_quads[4];
luma_quads[0] = LUMA_LOWRES_gather(vec2((fp + vec2(0.0, 0.0)) * HOOKED_pt), 0);
luma_quads[1] = LUMA_LOWRES_gather(vec2((fp + vec2(2.0, 0.0)) * HOOKED_pt), 0);
luma_quads[2] = LUMA_LOWRES_gather(vec2((fp + vec2(0.0, 2.0)) * HOOKED_pt), 0);
luma_quads[3] = LUMA_LOWRES_gather(vec2((fp + vec2(2.0, 2.0)) * HOOKED_pt), 0);
float luma_pixels[12]; float luma_pixels[12];
luma_pixels[0] = LUMA_LOWRES_tex(vec2((fp + vec2(0.5, -0.5)) * CHROMA_pt)).x; luma_pixels[0] = luma_quads[0].z;
luma_pixels[1] = LUMA_LOWRES_tex(vec2((fp + vec2(1.5, -0.5)) * CHROMA_pt)).x; luma_pixels[1] = luma_quads[1].w;
luma_pixels[2] = LUMA_LOWRES_tex(vec2((fp + vec2(-0.5, 0.5)) * CHROMA_pt)).x; luma_pixels[2] = luma_quads[0].x;
luma_pixels[3] = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 0.5)) * CHROMA_pt)).x; luma_pixels[3] = luma_quads[0].y;
luma_pixels[4] = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 0.5)) * CHROMA_pt)).x; luma_pixels[4] = luma_quads[1].x;
luma_pixels[5] = LUMA_LOWRES_tex(vec2((fp + vec2( 2.5, 0.5)) * CHROMA_pt)).x; luma_pixels[5] = luma_quads[1].y;
luma_pixels[6] = LUMA_LOWRES_tex(vec2((fp + vec2(-0.5, 1.5)) * CHROMA_pt)).x; luma_pixels[6] = luma_quads[2].w;
luma_pixels[7] = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 1.5)) * CHROMA_pt)).x; luma_pixels[7] = luma_quads[2].z;
luma_pixels[8] = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 1.5)) * CHROMA_pt)).x; luma_pixels[8] = luma_quads[3].w;
luma_pixels[9] = LUMA_LOWRES_tex(vec2((fp + vec2( 2.5, 1.5)) * CHROMA_pt)).x; luma_pixels[9] = luma_quads[3].z;
luma_pixels[10] = LUMA_LOWRES_tex(vec2((fp + vec2(0.5, 2.5) ) * CHROMA_pt)).x; luma_pixels[10] = luma_quads[2].y;
luma_pixels[11] = LUMA_LOWRES_tex(vec2((fp + vec2(1.5, 2.5) ) * CHROMA_pt)).x; luma_pixels[11] = luma_quads[3].x;
#endif
#else
vec2 chroma_pixels[12];
chroma_pixels[0] = HOOKED_tex(vec2((fp + vec2(0.5, -0.5)) * HOOKED_pt)).xy;
chroma_pixels[1] = HOOKED_tex(vec2((fp + vec2(1.5, -0.5)) * HOOKED_pt)).xy;
chroma_pixels[2] = HOOKED_tex(vec2((fp + vec2(-0.5, 0.5)) * HOOKED_pt)).xy;
chroma_pixels[3] = HOOKED_tex(vec2((fp + vec2( 0.5, 0.5)) * HOOKED_pt)).xy;
chroma_pixels[4] = HOOKED_tex(vec2((fp + vec2( 1.5, 0.5)) * HOOKED_pt)).xy;
chroma_pixels[5] = HOOKED_tex(vec2((fp + vec2( 2.5, 0.5)) * HOOKED_pt)).xy;
chroma_pixels[6] = HOOKED_tex(vec2((fp + vec2(-0.5, 1.5)) * HOOKED_pt)).xy;
chroma_pixels[7] = HOOKED_tex(vec2((fp + vec2( 0.5, 1.5)) * HOOKED_pt)).xy;
chroma_pixels[8] = HOOKED_tex(vec2((fp + vec2( 1.5, 1.5)) * HOOKED_pt)).xy;
chroma_pixels[9] = HOOKED_tex(vec2((fp + vec2( 2.5, 1.5)) * HOOKED_pt)).xy;
chroma_pixels[10] = HOOKED_tex(vec2((fp + vec2( 0.5, 2.5)) * HOOKED_pt)).xy;
chroma_pixels[11] = HOOKED_tex(vec2((fp + vec2( 1.5, 2.5)) * HOOKED_pt)).xy;
#if (USE_12_TAP_REGRESSION == 1 || USE_4_TAP_REGRESSION == 1)
float luma_pixels[12];
luma_pixels[0] = LUMA_LOWRES_tex(vec2((fp + vec2(0.5, -0.5)) * HOOKED_pt)).x;
luma_pixels[1] = LUMA_LOWRES_tex(vec2((fp + vec2(1.5, -0.5)) * HOOKED_pt)).x;
luma_pixels[2] = LUMA_LOWRES_tex(vec2((fp + vec2(-0.5, 0.5)) * HOOKED_pt)).x;
luma_pixels[3] = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 0.5)) * HOOKED_pt)).x;
luma_pixels[4] = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 0.5)) * HOOKED_pt)).x;
luma_pixels[5] = LUMA_LOWRES_tex(vec2((fp + vec2( 2.5, 0.5)) * HOOKED_pt)).x;
luma_pixels[6] = LUMA_LOWRES_tex(vec2((fp + vec2(-0.5, 1.5)) * HOOKED_pt)).x;
luma_pixels[7] = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 1.5)) * HOOKED_pt)).x;
luma_pixels[8] = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 1.5)) * HOOKED_pt)).x;
luma_pixels[9] = LUMA_LOWRES_tex(vec2((fp + vec2( 2.5, 1.5)) * HOOKED_pt)).x;
luma_pixels[10] = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 2.5)) * HOOKED_pt)).x;
luma_pixels[11] = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 2.5)) * HOOKED_pt)).x;
#endif
#endif
vec2 chroma_min = vec2(1e8); vec2 chroma_min = vec2(1e8);
chroma_min = min(chroma_min, chroma_pixels[3]); chroma_min = min(chroma_min, chroma_pixels[3]);
chroma_min = min(chroma_min, chroma_pixels[4]); chroma_min = min(chroma_min, chroma_pixels[4]);
@ -167,41 +206,9 @@ vec4 hook() {
ct += wd[i] * chroma_pixels[i]; ct += wd[i] * chroma_pixels[i];
} }
vec2 chroma_spatial = ct / wt; vec2 chroma_spatial = clamp(ct / wt, 0.0, 1.0);
chroma_spatial = clamp(chroma_spatial, chroma_min, chroma_max); chroma_spatial = mix(chroma_spatial, clamp(chroma_spatial, chroma_min, chroma_max), ar_strength);
#if (USE_12_TAP_REGRESSION == 1 || USE_4_TAP_REGRESSION == 1)
float luma_avg_4 = 0.0;
luma_avg_4 += luma_pixels[3];
luma_avg_4 += luma_pixels[4];
luma_avg_4 += luma_pixels[7];
luma_avg_4 += luma_pixels[8];
luma_avg_4 /= 4.0;
float luma_var_4 = 0.0;
luma_var_4 += pow(luma_pixels[3] - luma_avg_4, 2.0);
luma_var_4 += pow(luma_pixels[4] - luma_avg_4, 2.0);
luma_var_4 += pow(luma_pixels[7] - luma_avg_4, 2.0);
luma_var_4 += pow(luma_pixels[8] - luma_avg_4, 2.0);
vec2 chroma_avg_4 = vec2(0.0);
chroma_avg_4 += chroma_pixels[3];
chroma_avg_4 += chroma_pixels[4];
chroma_avg_4 += chroma_pixels[7];
chroma_avg_4 += chroma_pixels[8];
chroma_avg_4 /= 4.0;
vec2 luma_chroma_cov_4 = vec2(0.0);
luma_chroma_cov_4 += (luma_pixels[3] - luma_avg_4) * (chroma_pixels[3] - chroma_avg_4);
luma_chroma_cov_4 += (luma_pixels[4] - luma_avg_4) * (chroma_pixels[4] - chroma_avg_4);
luma_chroma_cov_4 += (luma_pixels[7] - luma_avg_4) * (chroma_pixels[7] - chroma_avg_4);
luma_chroma_cov_4 += (luma_pixels[8] - luma_avg_4) * (chroma_pixels[8] - chroma_avg_4);
vec2 alpha_4 = luma_chroma_cov_4 / max(luma_var_4, division_limit);
vec2 beta_4 = chroma_avg_4 - alpha_4 * luma_avg_4;
vec2 chroma_pred_4 = alpha_4 * luma_zero + beta_4;
chroma_pred_4 = clamp(chroma_pred_4, 0.0, 1.0);
float luma_avg_12 = 0.0; float luma_avg_12 = 0.0;
for(int i = 0; i < 12; i++) { for(int i = 0; i < 12; i++) {
luma_avg_12 += luma_pixels[i]; luma_avg_12 += luma_pixels[i];
@ -229,21 +236,71 @@ vec4 hook() {
luma_chroma_cov_12 += (luma_pixels[i] - luma_avg_12) * (chroma_pixels[i] - chroma_avg_12); luma_chroma_cov_12 += (luma_pixels[i] - luma_avg_12) * (chroma_pixels[i] - chroma_avg_12);
} }
vec2 corr = abs(luma_chroma_cov_12 / max(sqrt(luma_var_12 * chroma_var_12), division_limit)); vec2 corr = abs(luma_chroma_cov_12 / max(sqrt(luma_var_12 * chroma_var_12), 1e-6));
corr = clamp(corr, 0.0, 1.0); corr = clamp(corr, 0.0, 1.0);
#endif
vec2 alpha_12 = luma_chroma_cov_12 / max(luma_var_12, division_limit); #if (USE_12_TAP_REGRESSION == 1)
vec2 alpha_12 = luma_chroma_cov_12 / max(luma_var_12, 1e-6);
vec2 beta_12 = chroma_avg_12 - alpha_12 * luma_avg_12; vec2 beta_12 = chroma_avg_12 - alpha_12 * luma_avg_12;
vec2 chroma_pred_12 = alpha_12 * luma_zero + beta_12; vec2 chroma_pred_12 = clamp(alpha_12 * luma_zero + beta_12, 0.0, 1.0);
chroma_pred_12 = clamp(chroma_pred_12, 0.0, 1.0);
chroma_pred_4 = mix(chroma_spatial, chroma_pred_4, pow(corr, vec2(2.0)) / 2.0);
chroma_pred_12 = mix(chroma_spatial, chroma_pred_12, pow(corr, vec2(2.0)) / 2.0); chroma_pred_12 = mix(chroma_spatial, chroma_pred_12, pow(corr, vec2(2.0)) / 2.0);
output_pix.xy = mix(chroma_pred_4, chroma_pred_12, 0.5); #endif
#if (USE_4_TAP_REGRESSION == 1)
float luma_avg_4 = 0.0;
luma_avg_4 += luma_pixels[3];
luma_avg_4 += luma_pixels[4];
luma_avg_4 += luma_pixels[7];
luma_avg_4 += luma_pixels[8];
luma_avg_4 /= 4.0;
// Replace this with chroma_min and chroma_max if you want AR float luma_var_4 = 0.0;
// output_pix.yz = clamp(output_pix.yz, chroma_min, chroma_max); luma_var_4 += pow(luma_pixels[3] - luma_avg_4, 2.0);
luma_var_4 += pow(luma_pixels[4] - luma_avg_4, 2.0);
luma_var_4 += pow(luma_pixels[7] - luma_avg_4, 2.0);
luma_var_4 += pow(luma_pixels[8] - luma_avg_4, 2.0);
vec2 chroma_avg_4 = vec2(0.0);
chroma_avg_4 += chroma_pixels[3];
chroma_avg_4 += chroma_pixels[4];
chroma_avg_4 += chroma_pixels[7];
chroma_avg_4 += chroma_pixels[8];
chroma_avg_4 /= 4.0;
vec2 luma_chroma_cov_4 = vec2(0.0);
luma_chroma_cov_4 += (luma_pixels[3] - luma_avg_4) * (chroma_pixels[3] - chroma_avg_4);
luma_chroma_cov_4 += (luma_pixels[4] - luma_avg_4) * (chroma_pixels[4] - chroma_avg_4);
luma_chroma_cov_4 += (luma_pixels[7] - luma_avg_4) * (chroma_pixels[7] - chroma_avg_4);
luma_chroma_cov_4 += (luma_pixels[8] - luma_avg_4) * (chroma_pixels[8] - chroma_avg_4);
vec2 alpha_4 = luma_chroma_cov_4 / max(luma_var_4, 1e-4);
vec2 beta_4 = chroma_avg_4 - alpha_4 * luma_avg_4;
vec2 chroma_pred_4 = clamp(alpha_4 * luma_zero + beta_4, 0.0, 1.0);
if (chroma_min.x > 0.5) {
chroma_pred_4.x = clamp(chroma_pred_4.x, 0.5, 1.0);
}
if (chroma_min.y > 0.5) {
chroma_pred_4.y = clamp(chroma_pred_4.y, 0.5, 1.0);
}
if (chroma_max.x < 0.5) {
chroma_pred_4.x = clamp(chroma_pred_4.x, 0.0, 0.5);
}
if (chroma_max.y < 0.5) {
chroma_pred_4.y = clamp(chroma_pred_4.y, 0.0, 0.5);
}
chroma_pred_4 = mix(chroma_spatial, chroma_pred_4, pow(corr, vec2(2.0)) / 2.0);
#endif
#if (USE_12_TAP_REGRESSION == 1 && USE_4_TAP_REGRESSION == 1)
output_pix.xy = mix(chroma_pred_4, chroma_pred_12, 0.5);
#elif (USE_12_TAP_REGRESSION == 1 && USE_4_TAP_REGRESSION == 0)
output_pix.xy = chroma_pred_12;
#elif (USE_12_TAP_REGRESSION == 0 && USE_4_TAP_REGRESSION == 1)
output_pix.xy = chroma_pred_4;
#else
output_pix.xy = chroma_spatial;
#endif
output_pix.xy = clamp(output_pix.xy, 0.0, 1.0); output_pix.xy = clamp(output_pix.xy, 0.0, 1.0);
return output_pix; return output_pix;
} }

View file

@ -0,0 +1,453 @@
// Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
// FidelityFX FSR v1.0.2 by AMD
// ported to mpv by agyild
// Changelog
// Made it compatible with pre-OpenGL 4.0 renderers
// Made it directly operate on LUMA plane, since the original shader was operating on LUMA by deriving it from RGB. This should cause a major increase in performance, especially on OpenGL 4.0+ renderers (4+2 texture lookups vs. 12+5)
// Removed transparency preservation mechanism since the alpha channel is a separate source plane than LUMA
// Added optional performance-saving lossy optimizations to EASU (Credit: atyuwen, https://atyuwen.github.io/posts/optimizing-fsr/)
//
// Notes
// Per AMD's guidelines only upscales content up to 4x (e.g., 1080p -> 2160p, 720p -> 1440p etc.) and everything else in between,
// that means FSR will scale up to 4x at maximum, and any further scaling will be processed by mpv's scalers
//!HOOK LUMA
//!BIND HOOKED
//!SAVE EASUTEX
//!DESC FidelityFX Super Resolution v1.0.2 (EASU)
//!WHEN OUTPUT.w OUTPUT.h * LUMA.w LUMA.h * / 1.0 >
//!WIDTH OUTPUT.w OUTPUT.w LUMA.w 2 * < * LUMA.w 2 * OUTPUT.w LUMA.w 2 * > * + OUTPUT.w OUTPUT.w LUMA.w 2 * = * +
//!HEIGHT OUTPUT.h OUTPUT.h LUMA.h 2 * < * LUMA.h 2 * OUTPUT.h LUMA.h 2 * > * + OUTPUT.h OUTPUT.h LUMA.h 2 * = * +
//!COMPONENTS 1
// User variables - EASU
#define FSR_PQ 0 // Whether the source content has PQ gamma or not. Needs to be set to the same value for both passes. 0 or 1.
#define FSR_EASU_DERING 1 // If set to 0, disables deringing for a small increase in performance. 0 or 1.
#define FSR_EASU_SIMPLE_ANALYSIS 0 // If set to 1, uses a simpler single-pass direction and length analysis for an increase in performance. 0 or 1.
#define FSR_EASU_QUIT_EARLY 0 // If set to 1, uses bilinear filtering for non-edge pixels and skips EASU on those regions for an increase in performance. 0 or 1.
// Shader code
#ifndef FSR_EASU_DIR_THRESHOLD
#if (FSR_EASU_QUIT_EARLY == 1)
#define FSR_EASU_DIR_THRESHOLD 64.0
#elif (FSR_EASU_QUIT_EARLY == 0)
#define FSR_EASU_DIR_THRESHOLD 32768.0
#endif
#endif
float APrxLoRcpF1(float a) {
return uintBitsToFloat(uint(0x7ef07ebb) - floatBitsToUint(a));
}
float APrxLoRsqF1(float a) {
return uintBitsToFloat(uint(0x5f347d74) - (floatBitsToUint(a) >> uint(1)));
}
float AMin3F1(float x, float y, float z) {
return min(x, min(y, z));
}
float AMax3F1(float x, float y, float z) {
return max(x, max(y, z));
}
#if (FSR_PQ == 1)
float ToGamma2(float a) {
return pow(a, 4.0);
}
#endif
// Filtering for a given tap for the scalar.
void FsrEasuTap(
inout float aC, // Accumulated color, with negative lobe.
inout float aW, // Accumulated weight.
vec2 off, // Pixel offset from resolve position to tap.
vec2 dir, // Gradient direction.
vec2 len, // Length.
float lob, // Negative lobe strength.
float clp, // Clipping point.
float c){ // Tap color.
// Rotate offset by direction.
vec2 v;
v.x = (off.x * ( dir.x)) + (off.y * dir.y);
v.y = (off.x * (-dir.y)) + (off.y * dir.x);
// Anisotropy.
v *= len;
// Compute distance^2.
float d2 = v.x * v.x + v.y * v.y;
// Limit to the window as at corner, 2 taps can easily be outside.
d2 = min(d2, clp);
// Approximation of lancos2 without sin() or rcp(), or sqrt() to get x.
// (25/16 * (2/5 * x^2 - 1)^2 - (25/16 - 1)) * (1/4 * x^2 - 1)^2
// |_______________________________________| |_______________|
// base window
// The general form of the 'base' is,
// (a*(b*x^2-1)^2-(a-1))
// Where 'a=1/(2*b-b^2)' and 'b' moves around the negative lobe.
float wB = float(2.0 / 5.0) * d2 + -1.0;
float wA = lob * d2 + -1.0;
wB *= wB;
wA *= wA;
wB = float(25.0 / 16.0) * wB + float(-(25.0 / 16.0 - 1.0));
float w = wB * wA;
// Do weighted average.
aC += c * w;
aW += w;
}
// Accumulate direction and length.
void FsrEasuSet(
inout vec2 dir,
inout float len,
vec2 pp,
#if (FSR_EASU_SIMPLE_ANALYSIS == 1)
float b, float c,
float i, float j, float f, float e,
float k, float l, float h, float g,
float o, float n
#elif (FSR_EASU_SIMPLE_ANALYSIS == 0)
bool biS, bool biT, bool biU, bool biV,
float lA, float lB, float lC, float lD, float lE
#endif
){
// Compute bilinear weight, branches factor out as predicates are compiler time immediates.
// s t
// u v
#if (FSR_EASU_SIMPLE_ANALYSIS == 1)
vec4 w = vec4(0.0);
w.x = (1.0 - pp.x) * (1.0 - pp.y);
w.y = pp.x * (1.0 - pp.y);
w.z = (1.0 - pp.x) * pp.y;
w.w = pp.x * pp.y;
float lA = dot(w, vec4(b, c, f, g));
float lB = dot(w, vec4(e, f, i, j));
float lC = dot(w, vec4(f, g, j, k));
float lD = dot(w, vec4(g, h, k, l));
float lE = dot(w, vec4(j, k, n, o));
#elif (FSR_EASU_SIMPLE_ANALYSIS == 0)
float w = 0.0;
if (biS)
w = (1.0 - pp.x) * (1.0 - pp.y);
if (biT)
w = pp.x * (1.0 - pp.y);
if (biU)
w = (1.0 - pp.x) * pp.y;
if (biV)
w = pp.x * pp.y;
#endif
// Direction is the '+' diff.
// a
// b c d
// e
// Then takes magnitude from abs average of both sides of 'c'.
// Length converts gradient reversal to 0, smoothly to non-reversal at 1, shaped, then adding horz and vert terms.
float dc = lD - lC;
float cb = lC - lB;
float lenX = max(abs(dc), abs(cb));
lenX = APrxLoRcpF1(lenX);
float dirX = lD - lB;
lenX = clamp(abs(dirX) * lenX, 0.0, 1.0);
lenX *= lenX;
// Repeat for the y axis.
float ec = lE - lC;
float ca = lC - lA;
float lenY = max(abs(ec), abs(ca));
lenY = APrxLoRcpF1(lenY);
float dirY = lE - lA;
lenY = clamp(abs(dirY) * lenY, 0.0, 1.0);
lenY *= lenY;
#if (FSR_EASU_SIMPLE_ANALYSIS == 1)
len = lenX + lenY;
dir = vec2(dirX, dirY);
#elif (FSR_EASU_SIMPLE_ANALYSIS == 0)
dir += vec2(dirX, dirY) * w;
len += dot(vec2(w), vec2(lenX, lenY));
#endif
}
vec4 hook() {
// Result
vec4 pix = vec4(0.0, 0.0, 0.0, 1.0);
//------------------------------------------------------------------------------------------------------------------------------
// +---+---+
// | | |
// +--(0)--+
// | b | c |
// +---F---+---+---+
// | e | f | g | h |
// +--(1)--+--(2)--+
// | i | j | k | l |
// +---+---+---+---+
// | n | o |
// +--(3)--+
// | | |
// +---+---+
// Get position of 'F'.
vec2 pp = HOOKED_pos * HOOKED_size - vec2(0.5);
vec2 fp = floor(pp);
pp -= fp;
//------------------------------------------------------------------------------------------------------------------------------
// 12-tap kernel.
// b c
// e f g h
// i j k l
// n o
// Gather 4 ordering.
// a b
// r g
// Allowing dead-code removal to remove the 'z's.
#if (defined(HOOKED_gather) && (__VERSION__ >= 400 || (GL_ES && __VERSION__ >= 310)))
vec4 bczzL = HOOKED_gather(vec2((fp + vec2(1.0, -1.0)) * HOOKED_pt), 0);
vec4 ijfeL = HOOKED_gather(vec2((fp + vec2(0.0, 1.0)) * HOOKED_pt), 0);
vec4 klhgL = HOOKED_gather(vec2((fp + vec2(2.0, 1.0)) * HOOKED_pt), 0);
vec4 zzonL = HOOKED_gather(vec2((fp + vec2(1.0, 3.0)) * HOOKED_pt), 0);
#else
// pre-OpenGL 4.0 compatibility
float b = HOOKED_tex(vec2((fp + vec2(0.5, -0.5)) * HOOKED_pt)).r;
float c = HOOKED_tex(vec2((fp + vec2(1.5, -0.5)) * HOOKED_pt)).r;
float e = HOOKED_tex(vec2((fp + vec2(-0.5, 0.5)) * HOOKED_pt)).r;
float f = HOOKED_tex(vec2((fp + vec2( 0.5, 0.5)) * HOOKED_pt)).r;
float g = HOOKED_tex(vec2((fp + vec2( 1.5, 0.5)) * HOOKED_pt)).r;
float h = HOOKED_tex(vec2((fp + vec2( 2.5, 0.5)) * HOOKED_pt)).r;
float i = HOOKED_tex(vec2((fp + vec2(-0.5, 1.5)) * HOOKED_pt)).r;
float j = HOOKED_tex(vec2((fp + vec2( 0.5, 1.5)) * HOOKED_pt)).r;
float k = HOOKED_tex(vec2((fp + vec2( 1.5, 1.5)) * HOOKED_pt)).r;
float l = HOOKED_tex(vec2((fp + vec2( 2.5, 1.5)) * HOOKED_pt)).r;
float n = HOOKED_tex(vec2((fp + vec2(0.5, 2.5) ) * HOOKED_pt)).r;
float o = HOOKED_tex(vec2((fp + vec2(1.5, 2.5) ) * HOOKED_pt)).r;
vec4 bczzL = vec4(b, c, 0.0, 0.0);
vec4 ijfeL = vec4(i, j, f, e);
vec4 klhgL = vec4(k, l, h, g);
vec4 zzonL = vec4(0.0, 0.0, o, n);
#endif
//------------------------------------------------------------------------------------------------------------------------------
// Rename.
float bL = bczzL.x;
float cL = bczzL.y;
float iL = ijfeL.x;
float jL = ijfeL.y;
float fL = ijfeL.z;
float eL = ijfeL.w;
float kL = klhgL.x;
float lL = klhgL.y;
float hL = klhgL.z;
float gL = klhgL.w;
float oL = zzonL.z;
float nL = zzonL.w;
#if (FSR_PQ == 1)
// Not the most performance-friendly solution, but should work until mpv adds proper gamma transformation functions for shaders
bL = ToGamma2(bL);
cL = ToGamma2(cL);
iL = ToGamma2(iL);
jL = ToGamma2(jL);
fL = ToGamma2(fL);
eL = ToGamma2(eL);
kL = ToGamma2(kL);
lL = ToGamma2(lL);
hL = ToGamma2(hL);
gL = ToGamma2(gL);
oL = ToGamma2(oL);
nL = ToGamma2(nL);
#endif
// Accumulate for bilinear interpolation.
vec2 dir = vec2(0.0);
float len = 0.0;
#if (FSR_EASU_SIMPLE_ANALYSIS == 1)
FsrEasuSet(dir, len, pp, bL, cL, iL, jL, fL, eL, kL, lL, hL, gL, oL, nL);
#elif (FSR_EASU_SIMPLE_ANALYSIS == 0)
FsrEasuSet(dir, len, pp, true, false, false, false, bL, eL, fL, gL, jL);
FsrEasuSet(dir, len, pp, false, true, false, false, cL, fL, gL, hL, kL);
FsrEasuSet(dir, len, pp, false, false, true, false, fL, iL, jL, kL, nL);
FsrEasuSet(dir, len, pp, false, false, false, true, gL, jL, kL, lL, oL);
#endif
//------------------------------------------------------------------------------------------------------------------------------
// Normalize with approximation, and cleanup close to zero.
vec2 dir2 = dir * dir;
float dirR = dir2.x + dir2.y;
bool zro = dirR < float(1.0 / FSR_EASU_DIR_THRESHOLD);
dirR = APrxLoRsqF1(dirR);
#if (FSR_EASU_QUIT_EARLY == 1)
if (zro) {
vec4 w = vec4(0.0);
w.x = (1.0 - pp.x) * (1.0 - pp.y);
w.y = pp.x * (1.0 - pp.y);
w.z = (1.0 - pp.x) * pp.y;
w.w = pp.x * pp.y;
pix.r = clamp(dot(w, vec4(fL, gL, jL, kL)), 0.0, 1.0);
return pix;
}
#elif (FSR_EASU_QUIT_EARLY == 0)
dirR = zro ? 1.0 : dirR;
dir.x = zro ? 1.0 : dir.x;
#endif
dir *= vec2(dirR);
// Transform from {0 to 2} to {0 to 1} range, and shape with square.
len = len * 0.5;
len *= len;
// Stretch kernel {1.0 vert|horz, to sqrt(2.0) on diagonal}.
float stretch = (dir.x * dir.x + dir.y * dir.y) * APrxLoRcpF1(max(abs(dir.x), abs(dir.y)));
// Anisotropic length after rotation,
// x := 1.0 lerp to 'stretch' on edges
// y := 1.0 lerp to 2x on edges
vec2 len2 = vec2(1.0 + (stretch - 1.0) * len, 1.0 + -0.5 * len);
// Based on the amount of 'edge',
// the window shifts from +/-{sqrt(2.0) to slightly beyond 2.0}.
float lob = 0.5 + float((1.0 / 4.0 - 0.04) - 0.5) * len;
// Set distance^2 clipping point to the end of the adjustable window.
float clp = APrxLoRcpF1(lob);
//------------------------------------------------------------------------------------------------------------------------------
// Accumulation
// b c
// e f g h
// i j k l
// n o
float aC = 0.0;
float aW = 0.0;
FsrEasuTap(aC, aW, vec2( 0.0,-1.0) - pp, dir, len2, lob, clp, bL); // b
FsrEasuTap(aC, aW, vec2( 1.0,-1.0) - pp, dir, len2, lob, clp, cL); // c
FsrEasuTap(aC, aW, vec2(-1.0, 1.0) - pp, dir, len2, lob, clp, iL); // i
FsrEasuTap(aC, aW, vec2( 0.0, 1.0) - pp, dir, len2, lob, clp, jL); // j
FsrEasuTap(aC, aW, vec2( 0.0, 0.0) - pp, dir, len2, lob, clp, fL); // f
FsrEasuTap(aC, aW, vec2(-1.0, 0.0) - pp, dir, len2, lob, clp, eL); // e
FsrEasuTap(aC, aW, vec2( 1.0, 1.0) - pp, dir, len2, lob, clp, kL); // k
FsrEasuTap(aC, aW, vec2( 2.0, 1.0) - pp, dir, len2, lob, clp, lL); // l
FsrEasuTap(aC, aW, vec2( 2.0, 0.0) - pp, dir, len2, lob, clp, hL); // h
FsrEasuTap(aC, aW, vec2( 1.0, 0.0) - pp, dir, len2, lob, clp, gL); // g
FsrEasuTap(aC, aW, vec2( 1.0, 2.0) - pp, dir, len2, lob, clp, oL); // o
FsrEasuTap(aC, aW, vec2( 0.0, 2.0) - pp, dir, len2, lob, clp, nL); // n
//------------------------------------------------------------------------------------------------------------------------------
// Normalize and dering.
pix.r = aC / aW;
#if (FSR_EASU_DERING == 1)
float min1 = min(AMin3F1(fL, gL, jL), kL);
float max1 = max(AMax3F1(fL, gL, jL), kL);
pix.r = clamp(pix.r, min1, max1);
#endif
pix.r = clamp(pix.r, 0.0, 1.0);
return pix;
}
//!HOOK LUMA
//!BIND EASUTEX
//!DESC FidelityFX Super Resolution v1.0.2 (RCAS)
//!WIDTH EASUTEX.w
//!HEIGHT EASUTEX.h
//!COMPONENTS 1
// User variables - RCAS
#define SHARPNESS 0.2 // Controls the amount of sharpening. The scale is {0.0 := maximum, to N>0, where N is the number of stops (halving) of the reduction of sharpness}. 0.0 to 2.0.
#define FSR_RCAS_DENOISE 1 // If set to 1, lessens the sharpening on noisy areas. Can be disabled for better performance. 0 or 1.
#define FSR_PQ 0 // Whether the source content has PQ gamma or not. Needs to be set to the same value for both passes. 0 or 1.
// Shader code
#define FSR_RCAS_LIMIT (0.25 - (1.0 / 16.0)) // This is set at the limit of providing unnatural results for sharpening.
float APrxMedRcpF1(float a) {
float b = uintBitsToFloat(uint(0x7ef19fff) - floatBitsToUint(a));
return b * (-b * a + 2.0);
}
float AMax3F1(float x, float y, float z) {
return max(x, max(y, z));
}
float AMin3F1(float x, float y, float z) {
return min(x, min(y, z));
}
#if (FSR_PQ == 1)
float FromGamma2(float a) {
return sqrt(sqrt(a));
}
#endif
vec4 hook() {
// Algorithm uses minimal 3x3 pixel neighborhood.
// b
// d e f
// h
#if (defined(EASUTEX_gather) && (__VERSION__ >= 400 || (GL_ES && __VERSION__ >= 310)))
vec3 bde = EASUTEX_gather(EASUTEX_pos + EASUTEX_pt * vec2(-0.5), 0).xyz;
float b = bde.z;
float d = bde.x;
float e = bde.y;
vec2 fh = EASUTEX_gather(EASUTEX_pos + EASUTEX_pt * vec2(0.5), 0).zx;
float f = fh.x;
float h = fh.y;
#else
float b = EASUTEX_texOff(vec2( 0.0, -1.0)).r;
float d = EASUTEX_texOff(vec2(-1.0, 0.0)).r;
float e = EASUTEX_tex(EASUTEX_pos).r;
float f = EASUTEX_texOff(vec2(1.0, 0.0)).r;
float h = EASUTEX_texOff(vec2(0.0, 1.0)).r;
#endif
// Min and max of ring.
float mn1L = min(AMin3F1(b, d, f), h);
float mx1L = max(AMax3F1(b, d, f), h);
// Immediate constants for peak range.
vec2 peakC = vec2(1.0, -1.0 * 4.0);
// Limiters, these need to be high precision RCPs.
float hitMinL = min(mn1L, e) / (4.0 * mx1L);
float hitMaxL = (peakC.x - max(mx1L, e)) / (4.0 * mn1L + peakC.y);
float lobeL = max(-hitMinL, hitMaxL);
float lobe = max(float(-FSR_RCAS_LIMIT), min(lobeL, 0.0)) * exp2(-clamp(float(SHARPNESS), 0.0, 2.0));
// Apply noise removal.
#if (FSR_RCAS_DENOISE == 1)
// Noise detection.
float nz = 0.25 * b + 0.25 * d + 0.25 * f + 0.25 * h - e;
nz = clamp(abs(nz) * APrxMedRcpF1(AMax3F1(AMax3F1(b, d, e), f, h) - AMin3F1(AMin3F1(b, d, e), f, h)), 0.0, 1.0);
nz = -0.5 * nz + 1.0;
lobe *= nz;
#endif
// Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes.
float rcpL = APrxMedRcpF1(4.0 * lobe + 1.0);
vec4 pix = vec4(0.0, 0.0, 0.0, 1.0);
pix.r = float((lobe * b + lobe * d + lobe * h + lobe * f + e) * rcpL);
#if (FSR_PQ == 1)
pix.r = FromGamma2(pix.r);
#endif
return pix;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,426 @@
// Copyright (C) 2017-2021 igv
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 3.0 of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this program. If not, see <https://www.gnu.org/licenses/>.
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC feature map 1
//!BIND LUMA
//!SAVE FEATURE1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.1572492271661758,-0.0120896836742759,0.0061487639322877,-0.2852848768234253);
res += vec4(-0.0047900392673910,0.0537447109818459,-0.0000247144635068,0.0066653941757977) * float(LUMA_texOff(vec2(-2,-2)));
res += vec4(0.0073144687339664,-0.0309004038572311,-0.0109181385487318,-0.0092840325087309) * float(LUMA_texOff(vec2(-2,-1)));
res += vec4(0.0591700896620750,0.1974907070398331,-0.0197357516735792,-0.0546554848551750) * float(LUMA_texOff(vec2(-2,0)));
res += vec4(-0.0011764382943511,-0.0299451071768999,0.0229587312787771,0.0021908886265010) * float(LUMA_texOff(vec2(-2,1)));
res += vec4(0.0098101310431957,0.0080995410680771,-0.0030452020000666,-0.0132035519927740) * float(LUMA_texOff(vec2(-2,2)));
res += vec4(-0.0168330334126949,-0.0743711441755295,-0.0259261634200811,0.0234480481594801) * float(LUMA_texOff(vec2(-1,-2)));
res += vec4(0.0239933785051107,0.1896541714668274,0.0207756329327822,-0.0370332375168800) * float(LUMA_texOff(vec2(-1,-1)));
res += vec4(0.0094799501821399,-0.0652511194348335,-0.0004292793164495,-0.0726212188601494) * float(LUMA_texOff(vec2(-1,0)));
res += vec4(0.0297284796833992,-0.1210186630487442,-0.0202929321676493,-0.0574462898075581) * float(LUMA_texOff(vec2(-1,1)));
res += vec4(-0.0318185277283192,0.0840775370597839,0.0110451309010386,0.0415569432079792) * float(LUMA_texOff(vec2(-1,2)));
res += vec4(-0.0253141783177853,0.1168256178498268,0.1159729585051537,0.0963164269924164) * float(LUMA_texOff(vec2(0,-2)));
res += vec4(-0.1103615835309029,-0.0276833958923817,-0.4999594092369080,0.1053867191076279) * float(LUMA_texOff(vec2(0,-1)));
res += vec4(1.1100435256958008,0.0646764487028122,0.0154005717486143,0.8891586661338806) * float(LUMA_texOff(vec2(0,0)));
res += vec4(0.1229330673813820,0.1719468832015991,0.5730338096618652,-0.1645544171333313) * float(LUMA_texOff(vec2(0,1)));
res += vec4(-0.0090442728251219,-0.3023961782455444,-0.1589493155479431,0.0418574027717113) * float(LUMA_texOff(vec2(0,2)));
res += vec4(0.0031942036002874,-0.1310926079750061,0.0075543406419456,-0.0016449346439913) * float(LUMA_texOff(vec2(1,-2)));
res += vec4(-0.0995150282979012,-0.0701921209692955,-0.0130895879119635,0.1344170123338699) * float(LUMA_texOff(vec2(1,-1)));
res += vec4(0.0060519003309309,-0.1533465683460236,0.0114194005727768,0.0264683905988932) * float(LUMA_texOff(vec2(1,0)));
res += vec4(0.0244008023291826,0.1881769001483917,-0.0206351149827242,-0.0628309547901154) * float(LUMA_texOff(vec2(1,1)));
res += vec4(0.0075713125988841,0.0508594363927841,0.0430423170328140,-0.0124188791960478) * float(LUMA_texOff(vec2(1,2)));
res += vec4(-0.0166875869035721,-0.0047865519300103,0.0006719123339280,0.0316803231835365) * float(LUMA_texOff(vec2(2,-2)));
res += vec4(-0.0058461269363761,0.0990798473358154,-0.0177743826061487,-0.0066122291609645) * float(LUMA_texOff(vec2(2,-1)));
res += vec4(-0.0972401946783066,-0.0225446373224258,-0.0037693574558944,0.1953062713146210) * float(LUMA_texOff(vec2(2,0)));
res += vec4(-0.0216837190091610,-0.1824268400669098,0.0069816261529922,0.0283037684857845) * float(LUMA_texOff(vec2(2,1)));
res += vec4(-0.0025767991319299,0.0459827110171318,-0.0080216089263558,0.0084134787321091) * float(LUMA_texOff(vec2(2,2)));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC feature map 2
//!BIND LUMA
//!SAVE FEATURE2
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0541447550058365,0.0088306749239564,-0.0112389577552676,-0.0127860950306058);
res += vec4(0.0142660010606050,0.0137931071221828,0.0061188107356429,-0.0104134222492576) * float(LUMA_texOff(vec2(-2,-2)));
res += vec4(0.0147292809560895,-0.0289912857115269,0.0266769435256720,0.0933856964111328) * float(LUMA_texOff(vec2(-2,-1)));
res += vec4(-0.1734338253736496,0.1116316691040993,-0.1973157376050949,-0.0581855811178684) * float(LUMA_texOff(vec2(-2,0)));
res += vec4(0.0347507223486900,-0.0341566652059555,0.0061667622067034,0.0075258882716298) * float(LUMA_texOff(vec2(-2,1)));
res += vec4(0.0069884369149804,-0.0194250214844942,0.0080830128863454,-0.0036874092184007) * float(LUMA_texOff(vec2(-2,2)));
res += vec4(0.0233764201402664,0.0344744995236397,0.0162145942449570,0.0979529991745949) * float(LUMA_texOff(vec2(-1,-2)));
res += vec4(0.1280796974897385,-0.1018339172005653,-0.0132977198809385,-0.0019474622095004) * float(LUMA_texOff(vec2(-1,-1)));
res += vec4(0.4286882579326630,0.1222677752375603,0.7046694159507751,0.0945475697517395) * float(LUMA_texOff(vec2(-1,0)));
res += vec4(0.1107441782951355,-0.0134433070197701,-0.0174900908023119,-0.1686445474624634) * float(LUMA_texOff(vec2(-1,1)));
res += vec4(0.0321478620171547,0.0065357843413949,0.0300805997103453,0.0420113280415535) * float(LUMA_texOff(vec2(-1,2)));
res += vec4(-0.1240341588854790,0.0950303301215172,-0.0129648456349969,-0.2681856453418732) * float(LUMA_texOff(vec2(0,-2)));
res += vec4(0.4846960902214050,0.0351924635469913,0.0223043337464333,-0.1273630708456039) * float(LUMA_texOff(vec2(0,-1)));
res += vec4(-1.9379507303237915,-0.2444442063570023,0.0291962660849094,-0.3835578560829163) * float(LUMA_texOff(vec2(0,0)));
res += vec4(0.6396278142929077,-0.0765938311815262,-0.0552659817039967,0.4393545985221863) * float(LUMA_texOff(vec2(0,1)));
res += vec4(-0.1969728022813797,-0.0607173256576061,0.0131113547831774,0.0542017817497253) * float(LUMA_texOff(vec2(0,2)));
res += vec4(0.0091696009039879,-0.0031533432193100,-0.0368777588009834,-0.0459998287260532) * float(LUMA_texOff(vec2(1,-2)));
res += vec4(0.1096992492675781,0.2597902715206146,0.0304869692772627,-0.0195200722664595) * float(LUMA_texOff(vec2(1,-1)));
res += vec4(0.2889648377895355,-0.4275591969490051,-0.7414156794548035,0.2695442438125610) * float(LUMA_texOff(vec2(1,0)));
res += vec4(0.0892018377780914,-0.0229137558490038,0.0244414471089840,-0.1926898956298828) * float(LUMA_texOff(vec2(1,1)));
res += vec4(0.0576358586549759,0.0027846973389387,-0.0036861505359411,-0.0253547113388777) * float(LUMA_texOff(vec2(1,2)));
res += vec4(0.0159624069929123,0.0319602824747562,0.0019470085389912,0.0089780492708087) * float(LUMA_texOff(vec2(2,-2)));
res += vec4(0.0552792511880398,0.0543054342269897,0.0134062822908163,0.0545728243887424) * float(LUMA_texOff(vec2(2,-1)));
res += vec4(-0.1170092225074768,0.1963327825069427,0.1503890156745911,0.1891828328371048) * float(LUMA_texOff(vec2(2,0)));
res += vec4(-0.0084421783685684,0.1297017931938171,-0.0330600887537003,-0.0942063704133034) * float(LUMA_texOff(vec2(2,1)));
res += vec4(0.0118440408259630,-0.0337875857949257,0.0055063469335437,0.0254479162395000) * float(LUMA_texOff(vec2(2,2)));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC mapping 1_1
//!BIND FEATURE1
//!BIND FEATURE2
//!SAVE MODEL21
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.0445119962096214,-0.7632357478141785,0.0156328510493040,-0.2424548566341400);
res += mat4(0.1279004216194153,-0.0275541823357344,0.2275633513927460,0.2241709381341934,0.0197204202413559,-0.0456816256046295,-0.1296672523021698,0.0564568229019642,-0.0241488646715879,-0.0237508192658424,-0.1899632662534714,0.4177669584751129,-0.1814560592174530,-0.0526473335921764,0.1154382973909378,-0.0715614855289459) * FEATURE1_texOff(vec2(-1,-1));
res += mat4(-0.0660311505198479,0.0416736751794815,0.3146112561225891,0.1472041457891464,-0.3456672728061676,-0.0055983816273510,0.0022350433282554,0.0819796621799469,0.0057485047727823,0.1532524228096008,0.0204557459801435,-0.2500547170639038,-0.0524359568953514,-0.1911625266075134,-0.1078366711735725,-0.1296254843473434) * FEATURE2_texOff(vec2(-1,-1));
res += mat4(0.0904538556933403,-0.0150672039017081,0.3322310745716095,0.0638923197984695,0.5975797176361084,-0.2452044337987900,-0.4947478473186493,-0.0783191770315170,0.5771877169609070,-0.0870653912425041,-0.8966570496559143,-0.2140965163707733,-0.0493861362338066,-0.0380848757922649,-0.1345319598913193,-0.0186063013970852) * FEATURE1_texOff(vec2(-1,0));
res += mat4(-0.2523841261863708,0.1387074738740921,0.7878478765487671,-0.2251627445220947,0.2277439534664154,0.5417668819427490,0.0866540968418121,-0.1707777529954910,-0.0598246827721596,-0.4717158675193787,-1.2242834568023682,0.0454643070697784,-0.3503442704677582,0.0573085807263851,0.2530198395252228,-0.0207283068448305) * FEATURE2_texOff(vec2(-1,0));
res += mat4(0.0168380383402109,-0.2142438590526581,-0.0207892972975969,0.3628533780574799,0.2431225180625916,0.3098322153091431,0.4073205888271332,-0.2762102782726288,-0.0197229012846947,0.1305596232414246,-0.5697882771492004,-0.2976251542568207,-0.0551432967185974,0.2614036500453949,-0.1410341411828995,-0.2906406223773956) * FEATURE1_texOff(vec2(-1,1));
res += mat4(-0.0498303361237049,0.0224859956651926,0.1952174901962280,-0.0311204437166452,0.2501715123653412,-0.5893352627754211,-1.0793941020965576,0.0160885509103537,0.5081620812416077,0.0482814386487007,0.0546359121799469,-0.0501569248735905,0.1400523334741592,-0.0106841633096337,-0.0940591320395470,-0.1791856139898300) * FEATURE2_texOff(vec2(-1,1));
res += mat4(0.0393299944698811,0.2232691347599030,-0.1055066883563995,-0.1607919186353683,-0.1567825973033905,-0.0042221010662615,-0.0548228211700916,0.2352052628993988,0.1483389288187027,0.7503526806831360,0.0797731876373291,-0.0049001369625330,-0.0242983382195234,-0.0308702979236841,0.0828925222158432,0.0561857633292675) * FEATURE1_texOff(vec2(0,-1));
res += mat4(0.0926392748951912,-0.0418718457221985,-0.3060409128665924,-0.1883587390184402,0.0284292586147785,-0.3584854304790497,-0.7909982800483704,-0.0187337957322598,-0.2496993243694305,-0.7520986795425415,0.3771523833274841,-0.0259053874760866,0.0337998159229755,0.2209153026342392,0.0708771497011185,-0.2814430892467499) * FEATURE2_texOff(vec2(0,-1));
res += mat4(-0.5287809371948242,0.5777525901794434,0.0880500450730324,-0.8452472090721130,-0.3393408954143524,-0.2273543328046799,-0.1298527419567108,0.4990308582782745,1.2613251209259033,-0.7636719942092896,1.5694186687469482,-0.4087363779544830,0.0874531939625740,0.7067158818244934,-0.3419588804244995,-0.3265531957149506) * FEATURE1_texOff(vec2(0,0));
res += mat4(0.8229957222938538,-0.1236215904355049,-0.1859253048896790,1.6684840917587280,0.2000777721405029,-0.1239093989133835,1.5623438358306885,0.1779983490705490,0.1017884835600853,-0.3707404434680939,1.0626678466796875,-0.3124029338359833,0.0659058541059494,-0.3585464656352997,-0.1866402775049210,0.6733445525169373) * FEATURE2_texOff(vec2(0,0));
res += mat4(-0.5544115900993347,-0.1892931908369064,0.2460739761590958,-0.1056193932890892,-0.4318082630634308,0.1257930994033813,-0.2672747671604156,-0.1690235435962677,0.0018221997888759,-0.4397548139095306,-0.3007801771163940,0.1068472340703011,0.3506655991077423,0.1143834441900253,0.1363849341869354,-0.1417382210493088) * FEATURE1_texOff(vec2(0,1));
res += mat4(-0.0505668744444847,0.1831464916467667,0.3957343697547913,-0.2295413911342621,-0.3892803490161896,0.5436951518058777,0.1217770799994469,0.0223295800387859,-0.4462866187095642,-0.4055982232093811,-0.3771279454231262,0.0807068347930908,0.2116729617118835,0.0281026475131512,-0.0229265503585339,0.2868605256080627) * FEATURE2_texOff(vec2(0,1));
res += mat4(0.1962712109088898,-0.2373334914445877,-2.5208437442779541,-0.1988540291786194,0.2224564403295517,-0.1783192902803421,-0.3962321281433105,-0.1685980409383774,0.1910390257835388,0.2554391324520111,0.4586416482925415,0.2779130041599274,-0.2002453953027725,-0.0061091855168343,1.3808131217956543,0.0434907525777817) * FEATURE1_texOff(vec2(1,-1));
res += mat4(-0.0307611189782619,-0.0524470545351505,-0.5897512435913086,-0.0816674903035164,0.4052906930446625,0.2542210817337036,-1.9041002988815308,0.0835462361574173,-0.2484460622072220,-0.0184739269316196,0.4510098397731781,0.2587619423866272,0.1537084281444550,0.1503131389617920,-0.0742949545383453,0.0613216012716293) * FEATURE2_texOff(vec2(1,-1));
res += mat4(0.1772638261318207,0.0948876664042473,0.0083848545327783,-0.2919732332229614,0.2566950321197510,0.0288751143962145,-0.4624863862991333,-0.0608786940574646,0.3310996592044830,-0.0104284398257732,0.6334818005561829,-0.0027201652992517,-0.0342350602149963,0.1938806027173996,-0.2464301586151123,0.0125883584842086) * FEATURE1_texOff(vec2(1,0));
res += mat4(0.4839433431625366,-0.0502159744501114,-1.1114163398742676,-0.3965759575366974,0.2117286175489426,0.0414481423795223,-0.1332397013902664,-0.0549883767962456,-0.1275007277727127,0.7844302654266357,-0.0095163453370333,0.0961041301488876,-0.4759134948253632,-0.4284025132656097,-0.2072399407625198,-0.3953579664230347) * FEATURE2_texOff(vec2(1,0));
res += mat4(0.1605869531631470,-0.1715892106294632,0.0865620598196983,-0.0464400537312031,-0.2688548862934113,0.1722514480352402,0.0167612321674824,-0.0032994034700096,-0.3451044559478760,-0.2280300110578537,-0.0029796555172652,-0.1597652435302734,0.0500137843191624,0.1023071259260178,-0.0407028235495090,0.2228624969720840) * FEATURE1_texOff(vec2(1,1));
res += mat4(0.6999920010566711,0.0839441940188408,0.0815469548106194,-0.1509176045656204,-0.0690853074193001,-0.3200871348381042,0.0780162736773491,-0.1449639797210693,0.2868815064430237,0.3962450027465820,-0.3439113497734070,0.2657423913478851,0.0988137871026993,0.3471299111843109,-0.2186402678489685,-0.0648017078638077) * FEATURE2_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(1.0311057567596436,0.1051208898425102,0.1158760935068130,0.0466635078191757) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC mapping 1_2
//!BIND FEATURE1
//!BIND FEATURE2
//!SAVE MODEL22
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0713458731770515,-0.1403961777687073,-0.0019562745001167,0.0153338573873043);
res += mat4(-0.0950641855597496,-0.1496641039848328,-0.0653550028800964,0.0655386000871658,-0.0118882004171610,0.2012491524219513,-0.2844599783420563,-0.4794720113277435,0.1128025799989700,-0.0173030979931355,-0.0558849945664406,-0.2957552075386047,0.0128202112391591,0.0199047476053238,-0.0091027505695820,-0.0789640173316002) * FEATURE1_texOff(vec2(-1,-1));
res += mat4(0.1597457975149155,-0.0476507246494293,0.1466529071331024,0.0859163030982018,0.0797316282987595,-0.3380981683731079,0.2370245009660721,-0.1145931258797646,-0.0352988094091415,-0.0444888733327389,-0.2100716233253479,0.1305520236492157,-0.1359029710292816,0.1097442805767059,0.0449938289821148,-0.1155664771795273) * FEATURE2_texOff(vec2(-1,-1));
res += mat4(-0.0333916284143925,0.2415594160556793,0.0520512908697128,0.1228107511997223,-0.0491011217236519,0.4408806562423706,0.4631956815719604,0.2014560103416443,-0.3688595592975616,0.0367180295288563,0.2484581321477890,-0.1113442853093147,0.1283355057239532,0.0418004281818867,-0.0171243026852608,-0.1231943219900131) * FEATURE1_texOff(vec2(-1,0));
res += mat4(0.3493446409702301,0.4550022482872009,0.0368724688887596,0.0748724937438965,0.5001406073570251,0.0145555436611176,0.1236629858613014,0.3143120706081390,-0.1951988488435745,-0.0157914645969868,0.0937998965382576,-0.2233840376138687,0.5033411383628845,-0.3183194100856781,-0.2259195148944855,0.3639536798000336) * FEATURE2_texOff(vec2(-1,0));
res += mat4(-0.0742707476019859,-0.1287801116704941,-0.2533137500286102,0.0666435658931732,-0.0185621567070484,0.1427449285984039,-0.0724751204252243,-0.0781485065817833,-0.2270648330450058,-0.2314778864383698,0.3814929425716400,-0.1655400246381760,0.0408568829298019,-0.1139645278453827,0.1797397136688232,-0.0245632305741310) * FEATURE1_texOff(vec2(-1,1));
res += mat4(0.1184135973453522,0.0439366139471531,0.0225226897746325,-0.0038526873104274,0.1292685419321060,0.0629177838563919,0.3455114960670471,-0.1857204884290695,-0.4921502172946930,-0.1171003505587578,0.0188624169677496,-0.1101682260632515,0.0676844567060471,0.5154085755348206,-0.0898379907011986,0.3413280248641968) * FEATURE2_texOff(vec2(-1,1));
res += mat4(-0.2631838321685791,0.0215514600276947,0.3092688918113708,-0.0200904365628958,0.0678770467638969,0.1769931465387344,-0.3653681278228760,-0.3274513185024261,0.4608019888401031,-0.1544784456491470,0.1189439669251442,0.7015876173973083,0.2732816934585571,-0.0545057803392410,-0.3474545478820801,-0.0253226496279240) * FEATURE1_texOff(vec2(0,-1));
res += mat4(0.0994316861033440,0.0642566010355949,0.2031503319740295,0.2276959568262100,-0.1094077304005623,0.4463521838188171,0.0921792611479759,-0.3033096492290497,-0.0953373983502388,-0.1331395804882050,0.2615413069725037,-0.2874414622783661,-0.0389687754213810,0.0338272154331207,0.2804331183433533,-0.3443813025951385) * FEATURE2_texOff(vec2(0,-1));
res += mat4(-0.1806042939424515,-0.4840798676013947,0.4222546219825745,0.1238701492547989,0.0117481639608741,-0.5986865758895874,0.3057619929313660,0.1934896260499954,-0.7086342573165894,-0.8567376136779785,0.6944998502731323,-1.4599204063415527,0.0886754393577576,-0.4293498098850250,-0.1524195969104767,0.2418079674243927) * FEATURE1_texOff(vec2(0,0));
res += mat4(2.1706113815307617,0.3525652289390564,-0.7008359432220459,-0.4825965166091919,-0.3203429281711578,0.8500943183898926,-0.7993509769439697,0.4329842329025269,0.2106771767139435,1.1103280782699585,1.2092385292053223,1.4814503192901611,-0.4147390127182007,-0.7046836614608765,-0.1443170011043549,-0.6811133027076721) * FEATURE2_texOff(vec2(0,0));
res += mat4(-0.1489356607198715,0.1400019824504852,0.2425604313611984,-0.2098473459482193,-0.1580564379692078,0.1463224738836288,-0.2187854647636414,0.5174596905708313,-0.0143817225471139,-0.0362622961401939,-0.0068237944506109,0.4749472737312317,0.2914732992649078,-0.3306328952312469,-0.2444777786731720,-0.1171946674585342) * FEATURE1_texOff(vec2(0,1));
res += mat4(0.0455239675939083,0.3496046066284180,0.1297491937875748,-0.2541095912456512,0.3605501055717468,0.2339573651552200,-0.0188565086573362,-0.0526181310415268,0.1471424549818039,0.8212822079658508,0.0819099843502045,-0.0851665437221527,0.3739568293094635,0.1304695755243301,0.1481167376041412,-0.2134698331356049) * FEATURE2_texOff(vec2(0,1));
res += mat4(-0.2076720446348190,-0.0932599306106567,0.0648527294397354,-0.2374770641326904,-0.0927826911211014,0.1848200261592865,0.4131188094615936,0.3280069231987000,-0.2099185734987259,0.2130926996469498,-0.0362745784223080,0.0191331822425127,0.1590368449687958,0.0303016249090433,0.1207325309514999,0.2451425045728683) * FEATURE1_texOff(vec2(1,-1));
res += mat4(-0.0135009605437517,-0.0101303057745099,0.0752487555146217,0.0533373840153217,-0.0253537259995937,0.1318614929914474,-0.1263181120157242,0.0249524712562561,-0.1477261483669281,0.3236559033393860,0.0773291289806366,-0.1439673304557800,-0.2005890905857086,0.0892757251858711,0.0398719944059849,0.3675192892551422) * FEATURE2_texOff(vec2(1,-1));
res += mat4(-0.0193535499274731,-0.2256918102502823,0.0341436080634594,0.0795947611331940,0.1496857404708862,-0.2784725725650787,-0.0582313314080238,-0.2786065340042114,-0.1666128039360046,-0.6534121036529541,0.2695854306221008,-0.0179719906300306,0.0015976354479790,0.0139929885044694,-0.1706486046314240,-0.3274765610694885) * FEATURE1_texOff(vec2(1,0));
res += mat4(-0.7170836329460144,0.0868831276893616,0.1829078495502472,-0.0076045366004109,0.1525912433862686,-0.2558896839618683,0.0893209800124168,-0.3426039516925812,-0.2871107757091522,-0.2445062994956970,0.1676304638385773,0.2116415053606033,0.0883995518088341,-0.3880331516265869,0.2636835277080536,-0.2514505982398987) * FEATURE2_texOff(vec2(1,0));
res += mat4(-0.1861270815134048,0.2000686377286911,-0.1501186788082123,0.1525203883647919,0.1969228833913803,0.1174068301916122,-0.1281060427427292,-0.0854888409376144,0.0290613435208797,-0.0538076497614384,-0.0251582786440849,0.0692845508456230,0.0384319014847279,0.2888138592243195,0.1151804402470589,0.0990421250462532) * FEATURE1_texOff(vec2(1,1));
res += mat4(-0.0344385802745819,0.1270371377468109,0.0922426953911781,-0.0426749102771282,-0.1656492203474045,-0.3273328542709351,-0.0282224025577307,0.1099396124482155,-0.1113230437040329,0.2943290174007416,-0.2181112915277481,-0.3177657723426819,-0.1096536740660667,-0.0508293099701405,-0.0256164856255054,-0.0388228967785835) * FEATURE2_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.7142407894134521,0.0686190053820610,0.3999933302402496,-1.0247212648391724) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC mapping 2_1
//!BIND MODEL21
//!BIND MODEL22
//!SAVE MODEL1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0203563515096903,0.1902436912059784,-0.0757935121655464,0.0393617525696754);
res += mat4(-0.1080558672547340,-0.0400269515812397,0.1042881682515144,-0.1994346678256989,0.0172465778887272,-0.0829331055283546,-0.1278677284717560,-0.0762506872415543,-0.0593080408871174,-0.0305212251842022,0.1326192617416382,-0.3380933105945587,-0.0722763314843178,-0.1975518912076950,-0.0223602931946516,0.2251029163599014) * MODEL21_texOff(vec2(-1,-1));
res += mat4(0.1747678220272064,0.0297168865799904,0.1054855734109879,0.0803295820951462,-0.0338115766644478,-0.3885377943515778,-0.3540246784687042,-0.0719623491168022,-0.0656022280454636,-0.0469004511833191,0.1379419565200806,0.0319863893091679,0.0799935683608055,-0.0099127553403378,0.1698455959558487,-0.0108015276491642) * MODEL22_texOff(vec2(-1,-1));
res += mat4(0.1587898135185242,0.3995443880558014,-0.0333226583898067,0.2373267263174057,-0.1616930961608887,0.0659186244010925,0.0141129801049829,-0.0541022196412086,-0.5743742585182190,0.1121487766504288,0.4259817600250244,0.0280795227736235,-0.3721714317798615,-0.3496374189853668,0.0997273251414299,-0.0079920450225472) * MODEL21_texOff(vec2(-1,0));
res += mat4(0.0928084030747414,0.3107658624649048,0.1375299990177155,0.1550617516040802,-0.0780353918671608,-0.0102957757189870,-0.2056752145290375,-0.3927979469299316,-1.2112152576446533,0.0213295854628086,0.1396545022726059,0.0492016039788723,-0.0569122135639191,-0.1691886335611343,-0.1535325646400452,0.2800904810428619) * MODEL22_texOff(vec2(-1,0));
res += mat4(0.2494744062423706,-0.0363066755235195,0.0959179550409317,-0.0048101749271154,-0.0195793900638819,0.0451166369020939,0.1470773071050644,-0.0050059854984283,0.2886958122253418,-0.3221147954463959,-0.7062104344367981,0.1646659970283508,-0.0092520527541637,-0.1254461258649826,0.0217506736516953,-0.0678806379437447) * MODEL21_texOff(vec2(-1,1));
res += mat4(-0.0686557441949844,-0.0414490625262260,-0.1855954080820084,0.0264346338808537,-0.0296857114881277,-0.0431593284010887,0.0669397041201591,-0.0946076661348343,-0.2036914378404617,-0.1336101740598679,-0.2099903970956802,-0.1327936947345734,-0.1002155169844627,-0.0368575826287270,-0.1660962998867035,0.0728288888931274) * MODEL22_texOff(vec2(-1,1));
res += mat4(0.5504320859909058,0.2939232587814331,0.4704743027687073,0.2129514217376709,0.0843106731772423,-0.1978624463081360,-0.3298224806785583,0.1919094175100327,0.1980742365121841,-0.0644423812627792,0.0091170109808445,-0.2124856859445572,0.0804558470845222,-0.1130188927054405,-0.6276652812957764,0.1861163526773453) * MODEL21_texOff(vec2(0,-1));
res += mat4(-0.3357668519020081,0.2093413323163986,0.4355416595935822,0.1550502777099609,-0.6510964035987854,-0.1751857399940491,-0.2060168534517288,-0.1710205078125000,-0.1202360317111015,-0.2500316798686981,0.1074745431542397,-0.2418434321880341,0.0133954072371125,-0.0555886104702950,0.1514673978090286,0.2739115655422211) * MODEL22_texOff(vec2(0,-1));
res += mat4(-0.3006273508071899,-0.2699472010135651,-0.1982013583183289,-0.0032952548936009,0.0307833012193441,0.3671586215496063,-0.0966020002961159,-0.2836556434631348,0.4297264218330383,0.6171903610229492,0.6723483800888062,0.2705117464065552,-0.1438141316175461,-0.0873940736055374,-0.7001031041145325,-0.2052250355482101) * MODEL21_texOff(vec2(0,0));
res += mat4(-0.2875024676322937,-1.6230558156967163,-0.6733398437500000,-0.9642448425292969,-0.1964960694313049,0.2485812455415726,0.1236900389194489,-1.1423941850662231,-0.0412602946162224,0.3412002623081207,0.3962794244289398,-0.2490761876106262,-0.0058065578341484,-0.4578708708286285,-0.2418260127305984,0.5357795953750610) * MODEL22_texOff(vec2(0,0));
res += mat4(0.0062361713498831,0.1925230026245117,0.0824977159500122,0.0561275146901608,0.0929671525955200,0.0698546022176743,0.3816939592361450,0.0395248420536518,-0.0719512030482292,0.0564917400479317,-0.1297784000635147,0.1245511695742607,0.0012355837970972,-0.0990515723824501,0.4213519692420959,-0.1645816713571548) * MODEL21_texOff(vec2(0,1));
res += mat4(-0.0611936338245869,-0.0220258161425591,-0.0040935277938843,-0.1060328409075737,-0.0583154149353504,-0.0171997752040625,0.1058546081185341,0.2793170809745789,-0.2339317053556442,-0.1972009539604187,-0.0600687190890312,-0.0684379041194916,0.0243016034364700,-0.2111079394817352,-0.2042971849441528,0.0724857896566391) * MODEL22_texOff(vec2(0,1));
res += mat4(-0.0833447948098183,-0.0533220991492271,0.0767802372574806,0.1182348504662514,-0.0223299078643322,-0.0479344800114632,-0.0119727496057749,0.0524821877479553,-0.0334780365228653,0.0719002187252045,0.0439689308404922,0.0475181229412556,0.0764308497309685,0.0086713796481490,-0.1700707823038101,0.0657354295253754) * MODEL21_texOff(vec2(1,-1));
res += mat4(0.1391696482896805,0.0739523395895958,0.0565792545676231,-0.0430364646017551,0.0943084582686424,0.0102064209058881,0.0120795257389545,-0.0841303989291191,0.1573246121406555,0.0164279472082853,0.0988841354846954,-0.1430613398551941,-0.0572808869183064,-0.0844292491674423,0.0621565617620945,0.0923799052834511) * MODEL22_texOff(vec2(1,-1));
res += mat4(-0.1223107874393463,-0.2441930323839188,-0.2410650849342346,-0.0162935722619295,0.0695567727088928,-0.0028583710081875,-0.0059417244046926,0.0715164169669151,-0.0668491795659065,-0.1499572396278381,0.0869924053549767,0.0553652904927731,0.2729566097259521,0.1370039582252502,-0.1282183527946472,-0.1451860070228577) * MODEL21_texOff(vec2(1,0));
res += mat4(0.1331952214241028,0.0021079662255943,-0.1116734445095062,-0.4168601930141449,0.0534659475088120,0.0037860786542296,-0.0366065911948681,0.1047701835632324,0.1491260826587677,0.0782341659069061,0.0949895009398460,-0.1160908639431000,-0.1057133302092552,-0.2699718773365021,-0.1193305626511574,0.2142304331064224) * MODEL22_texOff(vec2(1,0));
res += mat4(0.0041565205901861,-0.1065499857068062,-0.0629659667611122,-0.1144768893718719,0.0318886637687683,-0.0562519319355488,0.0043422472663224,0.0226082988083363,-0.1456198990345001,-0.2398656159639359,-0.2625046670436859,-0.0710547044873238,0.0067904205061495,0.0018544088816270,0.1019348874688148,-0.0186133962124586) * MODEL21_texOff(vec2(1,1));
res += mat4(0.0732532218098640,0.1516859829425812,0.0580205544829369,0.1968977004289627,-0.0066619524732232,-0.1597842127084732,-0.0990600511431694,-0.1059188917279243,0.0718481168150902,-0.2222738713026047,-0.1675696671009064,-0.1500017195940018,-0.0568779110908508,-0.0582777932286263,-0.0844587534666061,-0.0263266414403915) * MODEL22_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(-0.2459529191255569,0.7563464641571045,-0.0705636814236641,-0.0094820559024811) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC mapping 2_2
//!BIND MODEL21
//!BIND MODEL22
//!SAVE MODEL2
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.0448397286236286,-0.1649267971515656,-0.1192543581128120,-0.0061073559336364);
res += mat4(0.0724840760231018,-0.0480341166257858,-0.1082391515374184,-0.1447021961212158,0.0723197236657143,0.0481830574572086,0.0009448126656935,0.0353565886616707,-0.0653375908732414,0.0029647622723132,-0.0016588598955423,-0.2075651884078979,0.0403469167649746,0.3929971158504486,0.0342363268136978,0.1427230089902878) * MODEL21_texOff(vec2(-1,-1));
res += mat4(-0.0743464827537537,0.1844420731067657,0.0256296340376139,-0.2808582782745361,0.0351609662175179,0.3277008235454559,-0.0205841138958931,-0.5355809330940247,0.0681906566023827,0.2058052271604538,-0.0479847639799118,-0.3735262751579285,-0.0261550359427929,-0.1148884072899818,-0.2329017966985703,0.0728458985686302) * MODEL22_texOff(vec2(-1,-1));
res += mat4(-0.1236097738146782,0.1251334398984909,-0.1339431256055832,0.0198749266564846,-0.1325920224189758,-2.2431972026824951,-0.0680834427475929,-0.5671764612197876,-0.3431925177574158,-0.0983135104179382,-0.2207138091325760,-0.2374879121780396,0.0127309206873178,1.3076044321060181,0.0848151743412018,-0.1928595900535583) * MODEL21_texOff(vec2(-1,0));
res += mat4(-0.0471093133091927,-0.1513628512620926,-0.0134263765066862,-0.1519252359867096,-0.5260242223739624,0.2291621714830399,0.4088975787162781,-0.4315340518951416,0.0933236032724380,-1.0386694669723511,0.0015958193689585,-0.2737887501716614,-0.0246253963559866,-0.2722961604595184,-0.1770633459091187,-0.2291279733181000) * MODEL22_texOff(vec2(-1,0));
res += mat4(-0.0017552347853780,0.1903935521841049,-0.0740704238414764,-0.0917679518461227,0.0323882810771465,-0.3029108047485352,0.0532565414905548,-0.0651542618870735,0.4868686199188232,0.8539272546768188,0.4151960313320160,0.2619662582874298,-0.0413270294666290,0.1404227763414383,0.1027320474386215,0.3274228572845459) * MODEL21_texOff(vec2(-1,1));
res += mat4(0.1828346252441406,0.0274682324379683,-0.1169882863759995,0.0327291004359722,0.1786244213581085,-0.6569546461105347,-0.0609031207859516,-0.1676601022481918,-0.1481092721223831,0.2889067530632019,0.1246089115738869,0.2203597426414490,-0.0366856977343559,0.1539470851421356,0.0069492300972342,-0.1544002443552017) * MODEL22_texOff(vec2(-1,1));
res += mat4(0.2073992937803268,-0.0717074573040009,-0.0196173377335072,-0.0956910699605942,0.0728898122906685,0.0484567955136299,0.3063069283962250,-0.3200540542602539,0.0291527546942234,-0.0265460256487131,0.1168476045131683,-0.2479970753192902,0.1224220171570778,0.0745823010802269,0.1868897676467896,-0.1958049237728119) * MODEL21_texOff(vec2(0,-1));
res += mat4(0.0019954447634518,-0.0225235987454653,0.0812198966741562,0.0295672398060560,-0.2016931176185608,-0.2239151000976562,-0.2481262385845184,-0.2381946444511414,-0.0520484372973442,-0.1200495883822441,0.2121954560279846,-0.1573531329631805,-0.0198472067713737,0.1001087054610252,-0.1084884032607079,-0.3126969039440155) * MODEL22_texOff(vec2(0,-1));
res += mat4(0.3838330209255219,0.1678779572248459,0.6496244072914124,0.3783606290817261,-0.2198582738637924,-0.2351343184709549,-0.2852248847484589,0.6310021877288818,0.8083020448684692,0.0039323624223471,-0.0901831910014153,0.0797894075512886,-0.2271467447280884,0.7082978487014771,0.1513756662607193,0.2188975960016251) * MODEL21_texOff(vec2(0,0));
res += mat4(-0.2871031761169434,0.2316448241472244,0.4947948157787323,0.3308620452880859,-0.0623455122113228,-0.1314185708761215,-0.2664661705493927,0.8725078701972961,0.4541083276271820,0.1433589160442352,-1.1269453763961792,0.6427971124649048,-0.1016561388969421,0.3418317139148712,-0.0991155728697777,-1.0508837699890137) * MODEL22_texOff(vec2(0,0));
res += mat4(-0.2179604172706604,0.1258949041366577,-0.1155700981616974,-0.0536149404942989,-0.0140614463016391,-0.0091438721865416,-0.0501774959266186,-0.3570724725723267,-0.5832386016845703,0.2004123181104660,0.2986239194869995,-0.8139168024063110,0.0142666567116976,0.0681498944759369,0.1293468028306961,-0.1001938357949257) * MODEL21_texOff(vec2(0,1));
res += mat4(0.1952836811542511,-0.3092494010925293,0.3063779771327972,0.1934849917888641,0.0746696740388870,-0.3533902466297150,-0.1269576102495193,-0.2237875163555145,0.2470717132091522,-0.2640363574028015,-0.2862776815891266,0.1740108281373978,-0.0963631942868233,0.2631850540637970,0.0400718413293362,-0.3590607047080994) * MODEL22_texOff(vec2(0,1));
res += mat4(-0.5299927592277527,0.0979989692568779,0.1666737496852875,-0.1547524333000183,-0.0043443185277283,0.1540203243494034,0.0594348423182964,-0.0167275425046682,-0.1043610796332359,0.0504250898957253,0.0456700921058655,0.2525034546852112,0.2241353541612625,-0.1678503304719925,0.1532667279243469,0.2901742458343506) * MODEL21_texOff(vec2(1,-1));
res += mat4(0.0998796448111534,0.0385462641716003,-0.0762400180101395,-0.1255892217159271,0.0281430184841156,-0.0304958485066891,-0.1440480053424835,-0.1001605167984962,-0.2257689833641052,0.2056092917919159,0.0248535349965096,-0.1383949518203735,-0.0951708629727364,0.0997417271137238,0.0275330394506454,-0.5728432536125183) * MODEL22_texOff(vec2(1,-1));
res += mat4(0.4256163835525513,0.1745115518569946,-0.2409395426511765,0.3139856457710266,-0.0036795330233872,0.1819283962249756,-0.0864531323313713,0.0102691333740950,-0.3397279977798462,0.1107075437903404,-0.0035228815395385,-0.2207705229520798,-0.1779139339923859,-0.2106117755174637,0.0352664291858673,0.3615589439868927) * MODEL21_texOff(vec2(1,0));
res += mat4(-0.0345224253833294,-0.0669926702976227,0.0907212942838669,-0.3758732676506042,-0.0452554710209370,-0.1134464666247368,-0.0358871109783649,-0.1858227252960205,-0.0233245138078928,-0.0495684742927551,0.1976234614849091,-0.1165761798620224,-0.0340447537600994,0.1095624342560768,0.0110175255686045,-0.8269239664077759) * MODEL22_texOff(vec2(1,0));
res += mat4(-0.1379280686378479,0.1004267781972885,0.0723998174071312,-0.1510958224534988,0.0610648579895496,0.0451720170676708,-0.0231927260756493,-0.0251553766429424,0.2306085377931595,0.1033207178115845,-0.1316205114126205,0.1130664870142937,-0.0458516106009483,-0.1152514070272446,-0.0088650323450565,-0.0214479379355907) * MODEL21_texOff(vec2(1,1));
res += mat4(-0.0545783303678036,-0.0620098188519478,0.0347074456512928,0.1096799224615097,0.0036664425861090,-0.0413107499480247,0.1443250179290771,-0.1161036714911461,-0.0061624986119568,-0.0252977479249239,0.3230019211769104,-0.2536626160144806,-0.0565439648926258,0.0827583819627762,-0.0071726376190782,-0.1983329951763153) * MODEL22_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(-0.6312188506126404,-0.1215368881821632,0.2487443536520004,0.4051703512668610) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC mapping 3_1
//!BIND MODEL1
//!BIND MODEL2
//!SAVE MODEL21
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.0410279631614685,-0.1111723631620407,-0.0406232848763466,-0.0939496159553528);
res += mat4(0.1221675798296928,0.0083215842023492,-0.0162804014980793,0.0316714197397232,-0.2205813378095627,0.1500435769557953,0.2109555304050446,0.2741867899894714,0.0956874340772629,-0.0896854698657990,-0.1657065600156784,-0.1349759399890900,0.0601499564945698,-0.1523845940828323,-0.1828087568283081,-0.2727653682231903) * MODEL1_texOff(vec2(-1,-1));
res += mat4(-0.0918163508176804,0.1564485579729080,0.1133174449205399,0.2215953171253204,-0.0623677000403404,-0.0497728772461414,-0.0372809022665024,-0.0258478187024593,-0.1364922970533371,0.1053884625434875,0.3292874991893768,0.2693256139755249,-0.0347631797194481,-0.1470523178577423,0.0096792401745915,-0.0542853325605392) * MODEL2_texOff(vec2(-1,-1));
res += mat4(0.1331177949905396,-0.0964357852935791,-0.0706946700811386,0.1593225002288818,-0.4815943241119385,0.1224092170596123,-0.0870430991053581,0.0005010276800022,-0.0242684502154589,-0.2256436049938202,0.1367238312959671,0.0474774017930031,0.6886650323867798,-0.0065326127223670,0.1841574758291245,-0.1354993879795074) * MODEL1_texOff(vec2(-1,0));
res += mat4(-0.1049591675400734,0.0515934228897095,0.1128631457686424,0.1688040047883987,-0.0084041170775890,-0.0006375144002959,-0.0598374009132385,0.1424416452646255,-0.0048398924991488,0.1832167655229568,0.0231959503144026,0.0816788375377655,-0.1321710795164108,0.0397678017616272,-0.0058345394209027,0.5784573554992676) * MODEL2_texOff(vec2(-1,0));
res += mat4(0.1438693851232529,-0.0694608166813850,-0.0428275354206562,0.1599996536970139,-0.1651254445314407,0.1388883888721466,-0.0895452573895454,0.2569831907749176,0.3150432109832764,-0.0910519883036613,0.0367441214621067,0.1903669685125351,0.2805841267108917,-0.0444608181715012,0.0059385276399553,-0.2585869431495667) * MODEL1_texOff(vec2(-1,1));
res += mat4(-0.1217494234442711,0.0191769022494555,-0.0065453462302685,0.1391217857599258,0.0998920649290085,-0.0162798929959536,0.0502282194793224,0.0370145924389362,0.0290782172232866,-0.0099554909393191,0.0142515478655696,0.1248661577701569,-0.0076912571676075,0.0251651499420404,0.2190572917461395,0.0020069130696356) * MODEL2_texOff(vec2(-1,1));
res += mat4(0.2666685581207275,-0.1625511497259140,-0.3938800692558289,-0.0253848694264889,0.0987015441060066,0.2033616453409195,0.3128099143505096,0.4608893990516663,0.0620003379881382,-0.1389972567558289,-0.3095863461494446,-0.4023511111736298,-0.1105777546763420,0.1115406602621078,0.3639950752258301,0.0645622834563255) * MODEL1_texOff(vec2(0,-1));
res += mat4(-0.2135885655879974,-0.1035343706607819,0.1795026361942291,0.1828210204839706,0.0780984908342361,0.0656728670001030,0.0033678691834211,0.1361345648765564,0.1712654232978821,-0.0172833092510700,-0.0502183400094509,0.2910411655902863,0.0691247656941414,0.1935720741748810,0.0652214139699936,0.1608240753412247) * MODEL2_texOff(vec2(0,-1));
res += mat4(0.8243460655212402,-0.0979344248771667,-0.0366373993456364,0.1692261099815369,0.5517869591712952,0.3282494544982910,-0.7905511856079102,-0.4462923705577850,-0.0803156569600105,0.1172509342432022,0.1864327639341354,0.1471016854047775,0.1296005547046661,-0.1004103720188141,0.3174172043800354,-0.1181766316294670) * MODEL1_texOff(vec2(0,0));
res += mat4(0.0259374529123306,-0.0934808850288391,0.3008874654769897,0.3957927823066711,-0.4048821926116943,0.1461934000253677,-0.1819096356630325,-0.1908810287714005,0.3193186521530151,-0.7438099980354309,0.1919509470462799,-0.2065188735723495,0.1752236187458038,-0.6840037107467651,0.1588519066572189,-0.3956064879894257) * MODEL2_texOff(vec2(0,0));
res += mat4(0.1574442386627197,-0.0114925103262067,-0.1208277940750122,0.2058266401290894,0.2879209220409393,-0.0419875606894493,-0.1902059614658356,-0.2723863720893860,-0.1086223348975182,-0.0870924964547157,0.8605937957763672,0.2656622231006622,-0.1653763055801392,0.0816384851932526,-0.0137870563194156,0.1433854848146439) * MODEL1_texOff(vec2(0,1));
res += mat4(-0.1565909236669540,-0.0307490080595016,-0.1055604666471481,0.2573592662811279,-0.1186821162700653,0.1141471788287163,-0.0272745657712221,-0.1049114838242531,0.2445316016674042,-0.0027864547446370,-0.1759569346904755,-0.1556979566812515,0.0550616309046745,0.1704383641481400,0.0853662937879562,0.3280856907367706) * MODEL2_texOff(vec2(0,1));
res += mat4(0.1460669338703156,0.4202052652835846,-0.3638312816619873,-0.0958623066544533,-0.0492525361478329,-0.3664234280586243,0.0794373303651810,0.0399017669260502,0.0629198029637337,0.1662959158420563,-0.1001493930816650,-0.0587460733950138,-0.0396478697657585,0.0017320754704997,0.0314909480512142,-0.0202700830996037) * MODEL1_texOff(vec2(1,-1));
res += mat4(-0.0964399129152298,0.0380319654941559,0.0396055467426777,0.0265473183244467,-0.0161637403070927,-0.1872924566268921,0.1670000404119492,0.0029466480482370,-0.1093841269612312,-0.3629201948642731,-0.0562992505729198,0.1792684197425842,-0.0203859098255634,0.0983991250395775,0.0058611719869077,0.1627455651760101) * MODEL2_texOff(vec2(1,-1));
res += mat4(-0.1117974221706390,0.7562329173088074,-0.2046248912811279,0.1677842289209366,-0.2063486129045486,-0.6023545265197754,-0.5739209651947021,0.5110496878623962,-0.0715268924832344,-0.1373793482780457,0.1251420378684998,-0.0477442294359207,0.4961377978324890,0.2688887119293213,0.3146316707134247,-0.5197153687477112) * MODEL1_texOff(vec2(1,0));
res += mat4(-0.1314805448055267,0.0746279135346413,0.3457699418067932,0.2564856410026550,0.0839370116591454,-0.6136511564254761,-0.4646295011043549,0.0612256154417992,-0.1910563558340073,-0.0935136750340462,-0.2426030039787292,0.2102959007024765,0.1575350016355515,0.6145061254501343,0.3368154168128967,-0.0974092856049538) * MODEL2_texOff(vec2(1,0));
res += mat4(0.0565315335988998,0.2393359094858170,-0.0932938233017921,0.1555283814668655,0.0123879108577967,-0.1247719228267670,-0.0564610138535500,-0.1125799044966698,-0.0104600470513105,0.0482629500329494,0.2316472232341766,0.1083717569708824,-0.0525921434164047,0.0643989592790604,-0.0525734610855579,-0.0503251366317272) * MODEL1_texOff(vec2(1,1));
res += mat4(-0.1835366338491440,0.0978360474109650,-0.1111819595098495,0.2109299153089523,0.0509372949600220,-0.1992686837911606,0.0677929744124413,-0.0870024710893631,-0.0412262082099915,-0.0697719156742096,-0.0967373847961426,0.0137308547273278,0.0195730421692133,0.0410240143537521,0.1157210171222687,0.2283479571342468) * MODEL2_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.1991519331932068,-0.1275756657123566,-0.0622864030301571,0.1586369574069977) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC mapping 3_2
//!BIND MODEL1
//!BIND MODEL2
//!SAVE MODEL22
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.0089084329083562,-0.0336172059178352,0.0177190825343132,0.0529975406825542);
res += mat4(-0.0275970958173275,0.0141968233510852,0.1181544512510300,-0.0572245270013809,0.1161347925662994,-0.1156444773077965,-0.2549640238285065,0.0882879272103310,-0.0715355500578880,0.0151285668835044,0.1079384386539459,0.0650847703218460,-0.1597152203321457,0.0669793561100960,0.2084401696920395,-0.0951152443885803) * MODEL1_texOff(vec2(-1,-1));
res += mat4(0.0404323227703571,-0.0206144321709871,-0.1080420613288879,-0.2038477361202240,0.0248847268521786,-0.0064681121148169,0.0389525443315506,0.0011026862775907,0.0885242074728012,0.0295896343886852,-0.3323790132999420,0.1935138553380966,-0.0466548874974251,0.1023886054754257,0.1257870644330978,-0.1541756242513657) * MODEL2_texOff(vec2(-1,-1));
res += mat4(-0.0076520540751517,0.0361139886081219,0.1749804913997650,-0.2051989138126373,0.0022692133206874,-0.0282937753945589,-0.2039019316434860,-0.2343468815088272,-0.0357327871024609,-0.0570764988660812,0.2925858795642853,-0.1988349705934525,-0.0584560707211494,-0.0341510921716690,0.1300961822271347,0.5184492468833923) * MODEL1_texOff(vec2(-1,0));
res += mat4(0.0884973928332329,0.0333527140319347,0.0180535931140184,-0.2655122876167297,0.0433661043643951,0.0104369185864925,0.0010909073753282,-0.0705273598432541,-0.0602585524320602,0.2420269846916199,-0.4731841087341309,-0.8040290474891663,0.3066828548908234,-0.2466925680637360,0.0938910692930222,-0.2002603262662888) * MODEL2_texOff(vec2(-1,0));
res += mat4(0.0549152903258801,0.0291299298405647,0.0946277007460594,-0.0581608228385448,0.0669180899858475,-0.0635575056076050,-0.2427970170974731,-0.2677550315856934,0.2226776182651520,0.1301570236682892,-0.1519709974527359,0.0671724304556847,-0.0526433289051056,0.1898351758718491,0.2383745312690735,0.2191711813211441) * MODEL1_texOff(vec2(-1,1));
res += mat4(-0.0234222635626793,0.0238620284944773,0.0427630320191383,-0.1080563366413116,0.0332126952707767,-0.0039051575586200,0.0293126031756401,0.0161924213171005,0.0453971028327942,0.0131999952718616,-0.0689036697149277,0.2349009960889816,0.1013344153761864,0.2706570029258728,0.1191426888108253,-0.2830821871757507) * MODEL2_texOff(vec2(-1,1));
res += mat4(0.0181465242058039,-0.0571886636316776,0.4875229001045227,-0.4244020283222198,0.4331104159355164,0.1066712513566017,-0.5277034044265747,0.1110567077994347,-0.1179447323083878,-0.0273578558117151,0.1798476576805115,-0.2829602360725403,0.1012385115027428,-0.2528488039970398,0.1697608679533005,0.1121710017323494) * MODEL1_texOff(vec2(0,-1));
res += mat4(-0.1404130905866623,-0.0984055623412132,-0.0279541295021772,-0.1321212500333786,-0.0841855704784393,0.1336171030998230,-0.1458790600299835,-0.0044095455668867,0.2203754037618637,0.1455714553594589,-0.2362042963504791,-0.0329121425747871,-0.1683547794818878,0.0289597529917955,0.3424547612667084,0.0143845872953534) * MODEL2_texOff(vec2(0,-1));
res += mat4(0.0287246014922857,0.1948280781507492,0.5998955368995667,0.1192114129662514,-0.6269109249114990,0.8724324703216553,-0.6399638652801514,-0.4201497733592987,-0.3355066180229187,-0.1566904038190842,-0.4396412074565887,0.1525828838348389,0.5573399066925049,0.2324324846267700,0.2762884795665741,0.0406046211719513) * MODEL1_texOff(vec2(0,0));
res += mat4(0.3890096545219421,-0.0574061162769794,-0.1468243300914764,-0.5953360199928284,-0.1363215148448944,-0.2224670499563217,-0.2237723320722580,0.2738097012042999,-0.4868114292621613,-0.5029351711273193,-0.3570256233215332,-0.1776263266801834,-0.0176672954112291,-0.4318660795688629,1.0395888090133667,0.1728395074605942) * MODEL2_texOff(vec2(0,0));
res += mat4(0.1337304115295410,-0.0809440389275551,0.1600498855113983,-0.1108811497688293,-0.2376178801059723,-0.1532768607139587,-0.0447455830872059,0.2515332102775574,0.4848278462886810,-0.0915748402476311,-0.0336527302861214,-0.2141884714365005,0.2125129699707031,0.3237875998020172,0.0022272330243140,-0.0167857185006142) * MODEL1_texOff(vec2(0,1));
res += mat4(0.0457934997975826,0.0510537698864937,-0.0519523508846760,-0.4506326615810394,-0.1029204949736595,0.0116113182157278,-0.1750748157501221,-0.0048758201301098,0.1506977379322052,0.0633068457245827,-0.1628549993038177,-0.0144928665831685,0.1408756822347641,0.2896180152893066,0.0803691521286964,-0.4930096566677094) * MODEL2_texOff(vec2(0,1));
res += mat4(-0.0484248884022236,0.1371297985315323,-0.1235475391149521,-0.2618594765663147,-0.0280395895242691,0.0248795989900827,0.1204105168581009,0.3246576189994812,0.0426272377371788,-0.0520061068236828,0.0575957447290421,-0.2613646090030670,0.1165295541286469,-0.0390013493597507,-0.0470846109092236,-0.0014663023175672) * MODEL1_texOff(vec2(1,-1));
res += mat4(-0.1066762879490852,-0.0869804695248604,-0.0099332248792052,-0.1355892717838287,-0.0760413780808449,0.1377770304679871,-0.0263407956808805,0.0880135521292686,0.1496269851922989,-0.0487459264695644,0.1286851912736893,0.2218491584062576,0.1723349541425705,-0.0165541302412748,-0.0690477639436722,-0.2388458102941513) * MODEL2_texOff(vec2(1,-1));
res += mat4(-0.4236431121826172,0.0465179122984409,-0.1526456624269485,0.1426440477371216,0.5913932919502258,-0.1082349196076393,0.2731275856494904,-0.2687640488147736,-0.4628683030605316,-0.0537119321525097,-0.1597615629434586,0.0528527684509754,-0.3485085070133209,0.1395110934972763,0.0642972290515900,0.0323829315602779) * MODEL1_texOff(vec2(1,0));
res += mat4(0.0066713397391140,-0.0482029877603054,-0.1707276403903961,-0.1001396998763084,0.0539822019636631,-0.1624453216791153,0.4913550019264221,0.3687861263751984,0.0491421781480312,0.1311376541852951,0.0992425829172134,-0.4636098444461823,-0.3415873646736145,-0.0153833786025643,-0.0270162131637335,-0.0935514941811562) * MODEL2_texOff(vec2(1,0));
res += mat4(-0.1738258153200150,0.0458541549742222,-0.0653749182820320,-0.0156540926545858,-0.0357586294412613,-0.1486178338527679,0.1798035055398941,-0.1310307979583740,0.0783249065279961,-0.0261360015720129,-0.1047066971659660,0.3385537564754486,-0.0339452810585499,0.2299628853797913,-0.1408322304487228,-0.0352708548307419) * MODEL1_texOff(vec2(1,1));
res += mat4(0.0463018082082272,0.0565674640238285,-0.0538956597447395,-0.2354862987995148,0.0297824125736952,0.0307939313352108,0.1271791011095047,-0.1025698855519295,0.1060482114553452,-0.0703211054205894,-0.0083062350749969,0.0474255047738552,0.0442508421838284,0.1569559425115585,-0.0442709513008595,-0.1188704669475555) * MODEL2_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.7366524934768677,1.0013850927352905,-0.0276311747729778,0.0734841898083687) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC mapping 4_1
//!BIND MODEL21
//!BIND MODEL22
//!SAVE MODEL1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.1306160986423492,-0.0808217376470566,-0.2880123555660248,0.0099629526957870);
res += mat4(-0.1033539846539497,0.0541300140321255,-0.0804840475320816,-0.0334571413695812,-0.0264753755182028,0.1118840202689171,0.1186013221740723,-0.0127575425431132,0.2236593365669250,0.0025286162272096,0.0985530614852905,0.0685181617736816,-0.1884875595569611,0.0530862808227539,-0.0482063069939613,0.0375233069062233) * MODEL21_texOff(vec2(-1,-1));
res += mat4(0.1837068796157837,-0.0632847175002098,0.0016613919287920,0.0392861217260361,0.2923883199691772,-0.1713902205228806,0.1907587945461273,0.0550456829369068,0.0644215345382690,-0.1046456992626190,0.0187383033335209,0.0770180150866508,0.1933846622705460,-0.0455715768039227,0.0375007353723049,-0.1053109914064407) * MODEL22_texOff(vec2(-1,-1));
res += mat4(-0.0972480997443199,0.2820451855659485,0.0114549007266760,-0.0954328626394272,0.0706252008676529,0.4829064607620239,-0.6371517181396484,0.0005180989392102,0.3280143439769745,0.0665246024727821,-0.0503116399049759,-0.1261110603809357,0.1114177703857422,-0.2053108513355255,0.1428771317005157,0.3926100134849548) * MODEL21_texOff(vec2(-1,0));
res += mat4(-0.2571723163127899,0.1627264618873596,-0.4940335154533386,-0.1361546218395233,0.0804422944784164,-0.4231885373592377,0.0650202706456184,0.0518481098115444,-0.0502478554844856,-0.1305799931287766,0.1814480125904083,0.0090866927057505,-0.0510044656693935,-0.1691461503505707,0.0922467112541199,-0.0314207412302494) * MODEL22_texOff(vec2(-1,0));
res += mat4(0.1270498335361481,0.0563284493982792,-0.0435525141656399,0.1569847911596298,0.0576847903430462,0.3461692929267883,-0.0325655154883862,-0.2688976824283600,-0.1341977864503860,-0.1382253766059875,0.2293784171342850,-0.1111817285418510,-0.1402447521686554,-0.3257531225681305,0.0598510466516018,0.1008039116859436) * MODEL21_texOff(vec2(-1,1));
res += mat4(0.1698816716670990,0.3491003513336182,-0.1367681026458740,-0.1165873408317566,-0.2091718912124634,-0.1487034261226654,-0.0569749698042870,-0.2100717276334763,0.0404917001724243,-0.1372035890817642,0.0689046755433083,-0.0367818064987659,-0.0325474888086319,-0.0114965448155999,-0.0137249026447535,-0.0279692262411118) * MODEL22_texOff(vec2(-1,1));
res += mat4(-0.0563433989882469,0.0132494345307350,-0.2434540390968323,0.0796563774347305,-0.2109155058860779,0.0387088693678379,-0.0591037571430206,0.0955820381641388,0.4660535752773285,-0.1204202473163605,0.1332369595766068,-0.0285425651818514,-0.3886952698230743,-0.0434980578720570,-0.0849134400486946,0.0802380964159966) * MODEL21_texOff(vec2(0,-1));
res += mat4(0.0412235632538795,0.1571959257125854,0.2050069272518158,-0.1138664111495018,0.1962715685367584,0.0594439841806889,0.0351715497672558,-0.0129811102524400,0.2055217623710632,-0.0647534057497978,0.0373471938073635,0.0877277255058289,-0.5734645724296570,0.1188675239682198,-0.1145943328738213,-0.1182733029127121) * MODEL22_texOff(vec2(0,-1));
res += mat4(-0.2004909217357635,-0.4817073047161102,0.5596802830696106,-0.0327854752540588,0.0989314392209053,0.4127818942070007,0.7265836596488953,-0.2692042589187622,0.5195841789245605,-0.2357539832592010,-0.3819393217563629,0.1755530238151550,0.6578183770179749,0.1075539961457253,-0.2688144743442535,0.3242723941802979) * MODEL21_texOff(vec2(0,0));
res += mat4(-0.3221310675144196,0.2978510260581970,0.2269985526800156,-0.3184116482734680,0.4845580160617828,0.4407236874103546,0.0099756307899952,-0.3121858239173889,-0.3810067176818848,-0.0553649961948395,0.0202834140509367,0.0409953594207764,0.2532750964164734,0.2731618583202362,0.1237529441714287,0.0134243080392480) * MODEL22_texOff(vec2(0,0));
res += mat4(0.1835541725158691,0.0549701862037182,-0.1749316602945328,-0.2030028849840164,0.0263462308794260,0.2781440317630768,0.0372458845376968,0.3643021881580353,-0.4047883749008179,0.0660117194056511,0.4863115549087524,-0.2024163603782654,-0.6403482556343079,0.2765505611896515,0.1417075097560883,0.5064445734024048) * MODEL21_texOff(vec2(0,1));
res += mat4(0.6106975078582764,-0.1570862233638763,-0.3223383128643036,-0.2497926801443100,-0.4854303300380707,0.0132978223264217,-0.0609334111213684,0.1285556703805923,-0.1412864029407501,-0.1379042416810989,-0.0258826259523630,0.1357705891132355,-0.1285902857780457,-0.0577826797962189,0.0550044551491737,0.1717510819435120) * MODEL22_texOff(vec2(0,1));
res += mat4(0.1389609426259995,0.0835867226123810,0.0309768319129944,-0.0278116948902607,-0.0390677824616432,-0.0111810686066747,-0.0025318188127130,0.0069569633342326,0.0347319357097149,0.0191543344408274,0.0314339138567448,-0.0228427499532700,0.0416300334036350,0.0249234102666378,0.1210031509399414,0.1142473593354225) * MODEL21_texOff(vec2(1,-1));
res += mat4(0.0607251487672329,0.0386395826935768,-0.0219341218471527,-0.1102298423647881,0.1487188935279846,0.0602982006967068,-0.0280748903751373,-0.0211924221366644,0.0042894422076643,-0.0269144997000694,0.0814756453037262,-0.0314031280577183,-0.0213186051696539,-0.1362965404987335,0.0382767543196678,-0.0669511556625366) * MODEL22_texOff(vec2(1,-1));
res += mat4(-0.2397561967372894,0.3023172020912170,-0.2398054003715515,0.0041919997893274,-0.1016605198383331,-0.1521034836769104,-0.1526568531990051,0.0272433310747147,0.0741761848330498,0.1116370111703873,0.1149727106094360,-0.0809784531593323,-0.1448147594928741,-0.0943927690386772,-0.0086280042305589,0.1243222951889038) * MODEL21_texOff(vec2(1,0));
res += mat4(-0.0469366572797298,-0.1655988991260529,-0.1029584184288979,-0.1347874104976654,0.2064601778984070,0.0521226711571217,-0.1366733759641647,-0.0041872998699546,0.1077186539769173,0.0184442866593599,-0.2309073060750961,-0.1637075096368790,-0.0417953692376614,-0.3190860450267792,-0.1593534499406815,0.0136412177234888) * MODEL22_texOff(vec2(1,0));
res += mat4(0.1698798984289169,0.0232755411416292,-0.0876034423708916,-0.3008348643779755,0.0789884999394417,0.0034748215693980,-0.0064704762771726,0.0057828431017697,-0.0190630126744509,-0.0334153175354004,-0.0195646341890097,0.0105131156742573,0.0995147302746773,-0.3130289018154144,-0.0724022984504700,0.0113303456455469) * MODEL21_texOff(vec2(1,1));
res += mat4(-0.0027791252359748,-0.0193455871194601,-0.0415000133216381,0.0568981170654297,-0.2745247483253479,0.1222846284508705,0.1899162530899048,0.1067754998803139,-0.0561975166201591,-0.1500336527824402,0.0526139959692955,-0.3491798937320709,-0.0692384615540504,-0.0307095069438219,0.0498757846653461,0.0019003645284101) * MODEL22_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.1552927196025848,0.0782765746116638,0.7966942191123962,-1.1619627475738525) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC mapping 4_2
//!BIND MODEL21
//!BIND MODEL22
//!SAVE MODEL2
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.1443098634481430,-0.1343899369239807,-0.0624338127672672,-0.1094277128577232);
res += mat4(-0.0689977407455444,-0.1693786680698395,0.0109281269833446,0.0609922930598259,0.0296908002346754,0.1195700988173485,-0.0694077461957932,0.0971287414431572,0.0253518298268318,0.1213042959570885,0.0703809782862663,0.0055739870294929,-0.1595942378044128,-0.1336689442396164,-0.0622441768646240,-0.0428023114800453) * MODEL21_texOff(vec2(-1,-1));
res += mat4(0.0860001668334007,-0.0226618759334087,0.1602241247892380,0.0431661494076252,0.1526461094617844,0.2752982378005981,0.0960300788283348,-0.0536719262599945,-0.0171773489564657,0.0457364916801453,-0.0360932648181915,-0.0397153608500957,-0.0277090407907963,0.0729821547865868,-0.0145150292664766,0.0252893269062042) * MODEL22_texOff(vec2(-1,-1));
res += mat4(-0.1407091915607452,-0.4007499516010284,-0.0302001200616360,-0.0606933943927288,-0.2960600554943085,-0.2263117432594299,0.0721478462219238,-0.4578711986541748,0.0960150733590126,-0.1606502830982208,0.2444226741790771,0.0000882153908606,0.1472496986389160,0.3256779909133911,-0.2132861614227295,0.0339313484728336) * MODEL21_texOff(vec2(-1,0));
res += mat4(-0.1477648764848709,-0.1487885862588882,-0.1973863691091537,0.0717295333743095,0.0843430235981941,0.6259996294975281,-0.1214931011199951,-0.1274987608194351,0.2359549105167389,0.3002171218395233,-0.0825233608484268,-0.0157950688153505,0.0706149637699127,0.1762917637825012,-0.0611497573554516,-0.0859689489006996) * MODEL22_texOff(vec2(-1,0));
res += mat4(0.0174895934760571,-0.0567042417824268,0.0409146919846535,0.0258173532783985,0.1421577036380768,0.1234543323516846,-0.1721662431955338,0.1492216140031815,0.1100751459598541,0.0501539446413517,0.1100447699427605,-0.1086079254746437,-0.0608497932553291,0.0087817469611764,0.0714464113116264,-0.1285197436809540) * MODEL21_texOff(vec2(-1,1));
res += mat4(-0.0017177806003019,-0.1463395059108734,-0.1085453778505325,0.1650195866823196,0.0813829153776169,0.1102061793208122,-0.0578421875834465,-0.0232036896049976,-0.1239888817071915,0.0155465165153146,0.1079114526510239,-0.0420837886631489,-0.0775837749242783,0.0148941157385707,-0.0502299368381500,-0.0654754191637039) * MODEL22_texOff(vec2(-1,1));
res += mat4(0.0918162539601326,0.0440697595477104,-0.0515748932957649,0.0417411290109158,0.0353216230869293,0.1535954177379608,0.0439723692834377,-0.1288845241069794,0.1076577678322792,-0.1306740194559097,0.0715952813625336,-0.0681907683610916,-0.3798767924308777,0.1023928597569466,-0.0970670804381371,0.0077168666757643) * MODEL21_texOff(vec2(0,-1));
res += mat4(0.0634560957551003,-0.0550306066870689,0.2073986232280731,0.0520241297781467,0.1162287592887878,-0.2218665480613708,0.3199682831764221,0.0606246069073677,-0.0058511858806014,-0.0667045339941978,-0.0449917949736118,0.0707788690924644,-0.3323366343975067,-0.0763893201947212,-0.0997853428125381,-0.1181001588702202) * MODEL22_texOff(vec2(0,-1));
res += mat4(-0.3101258873939514,0.2616009712219238,0.0584651045501232,0.1656491309404373,-0.0069236233830452,0.2573371529579163,-0.1793291717767715,-0.2718756198883057,0.0953581258654594,0.0524105131626129,0.1183085516095161,0.0583294369280338,0.5036848187446594,-0.5763167142868042,-0.2119628041982651,-0.3140562772750854) * MODEL21_texOff(vec2(0,0));
res += mat4(-0.2497755438089371,-0.0146329319104552,-0.2741575539112091,0.2459975033998489,0.3562706708908081,-0.6528629064559937,-0.4287456274032593,0.2055913358926773,0.1739019453525543,-0.3855968713760376,-0.0958273336291313,-0.7066691517829895,0.2365748286247253,-0.3046728968620300,-0.2590373754501343,-0.0496727414429188) * MODEL22_texOff(vec2(0,0));
res += mat4(-0.0844531357288361,-0.0321611948311329,-0.0951840654015541,0.0577518045902252,-0.1606003493070602,0.2776086628437042,-0.1355003118515015,-0.0880064144730568,-0.1277643740177155,-0.0514567233622074,0.1522682905197144,-0.1040910631418228,-0.2767944037914276,-0.1452194601297379,0.0089118303731084,0.0231996178627014) * MODEL21_texOff(vec2(0,1));
res += mat4(0.2603267133235931,0.0167464651167393,-0.2064073234796524,0.1782064288854599,0.4890212416648865,0.0559245310723782,0.1221160590648651,-0.0202587731182575,-0.4056585729122162,-0.1839511841535568,0.2775998413562775,0.0024275144096464,-0.2624500989913940,-0.0619418807327747,0.0153478365391493,0.0123427547514439) * MODEL22_texOff(vec2(0,1));
res += mat4(0.0816635638475418,-0.0134946266189218,0.0594766475260258,-0.0551253929734230,0.0134431896731257,-0.0652195811271667,-0.0563635528087616,-0.0066532371565700,-0.0004114551993553,0.0105680683627725,0.1324467360973358,0.0467248968780041,0.0301312971860170,-0.1073397025465965,-0.0363437235355377,-0.0474153012037277) * MODEL21_texOff(vec2(1,-1));
res += mat4(0.0199097190052271,0.0901319086551666,0.0448978282511234,0.0505443066358566,0.0438878424465656,-0.0494784042239189,0.0724927335977554,-0.0070675504393876,-0.0012125011999160,0.0295279901474714,0.0705125033855438,0.0555334389209747,-0.0403393507003784,-0.1271172016859055,0.0017914215568453,0.1462216079235077) * MODEL22_texOff(vec2(1,-1));
res += mat4(-0.2827299833297729,0.2052399665117264,0.0042732120491564,-0.3969024717807770,-0.0782120972871780,0.1960176974534988,-0.0675340741872787,0.0027962317690253,0.0516129024326801,-0.0352642722427845,0.0546326488256454,0.0065340655855834,-0.1062376946210861,0.1364430636167526,-0.0536947809159756,0.2098117172718048) * MODEL21_texOff(vec2(1,0));
res += mat4(0.0045875865034759,0.2162927240133286,-0.2158576399087906,-0.0047327815555036,0.1251590698957443,0.1279677897691727,-0.1188964918255806,0.0328494384884834,0.0076038073748350,-0.0561547242105007,0.0335608273744583,0.4332321286201477,0.0021786799188703,0.0844521671533585,-0.2102309316396713,-0.0189208015799522) * MODEL22_texOff(vec2(1,0));
res += mat4(0.0933093801140785,0.1548244059085846,-0.0598701611161232,0.0357220247387886,-0.1141726672649384,0.0536412484943867,-0.0159156844019890,-0.0445508137345314,0.1883231997489929,-0.1547038406133652,0.0530619807541370,0.0059371814131737,0.0602529086172581,-0.0435577929019928,0.0083390390500426,0.0191930737346411) * MODEL21_texOff(vec2(1,1));
res += mat4(-0.0351041629910469,0.2119503468275070,-0.0841927304863930,0.0079463515430689,0.0683520361781120,-0.1657009869813919,0.0611055232584476,-0.0063667562790215,0.0330024957656860,-0.1810818463563919,0.0872574150562286,0.1485669612884521,-0.1305806934833527,0.0041402997449040,0.0223289318382740,-0.0141495745629072) * MODEL22_texOff(vec2(1,1));
res = max(res, vec4(0.0)) + vec4(0.5769761204719543,0.1716064810752869,-0.0821026712656021,0.2092144042253494) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC sub-band residuals 1
//!BIND MODEL1
//!BIND MODEL2
//!BIND FEATURE1
//!SAVE RES1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.0245648548007011,-0.4467784762382507,0.0197526942938566,-0.0110000418499112);
res += mat4(0.0302665308117867,-0.9262221455574036,-0.1161134764552116,-0.0506900474429131,0.2716045379638672,-0.0485871583223343,0.0044713355600834,-0.4274623394012451,0.0749531090259552,-0.3700785338878632,0.0350039415061474,-0.0540786534547806,-0.0607390031218529,-0.8019900321960449,0.0923245251178741,0.1258827745914459) * MODEL1_texOff(0);
res += mat4(-0.0649135261774063,0.0815236791968346,0.0067334296181798,0.1277425885200500,-0.0051357815973461,-0.1485908329486847,0.0074226572178304,0.0050623500719666,0.0588018335402012,-0.0692552924156189,0.1288725286722183,-0.0989386290311813,0.0427936837077141,0.0967708528041840,-0.0455632135272026,-0.0711275041103363) * MODEL2_texOff(0);
res += FEATURE1_texOff(0);
res = max(res, vec4(0.0)) + vec4(0.9927186965942383,0.0570580027997494,1.3226752281188965,1.0069466829299927) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC sub-band residuals 2
//!BIND MODEL1
//!BIND MODEL2
//!BIND FEATURE2
//!SAVE RES2
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(-0.0425243787467480,-0.3715015351772308,-0.0256227850914001,-0.2774516046047211);
res += mat4(0.0238118842244148,0.0295480657368898,-0.0066418983042240,0.1021223962306976,-0.0568209178745747,-0.4355100393295288,-0.2700522541999817,-0.2060186564922333,-0.0689613372087479,-0.1689691990613937,-0.0306748505681753,-0.2461252212524414,-0.0057375836186111,-0.1892303228378296,-0.0285871494561434,-0.5032613277435303) * MODEL1_texOff(0);
res += mat4(0.5463213324546814,0.0972800329327583,0.0307560767978430,0.0678058937191963,-0.0356063023209572,-0.7013865113258362,0.1890443563461304,-0.1036657467484474,-0.1745826154947281,-0.2942218780517578,-0.0485423319041729,-0.2983124554157257,-0.0524431839585304,-0.3261034786701202,0.3217246532440186,0.1958018541336060) * MODEL2_texOff(0);
res += FEATURE2_texOff(0);
res = max(res, vec4(0.0)) + vec4(0.1391339898109436,0.0960328355431557,0.6235341429710388,0.1177272796630859) * min(res, vec4(0.0));
return res;
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!DESC sub-pixel convolution 1
//!BIND RES1
//!BIND RES2
//!SAVE SUBCONV1
//!COMPONENTS 4
vec4 hook()
{
vec4 res = vec4(0.2010385394096375,0.2058132737874985,0.1918809115886688,0.1961363703012466);
res += mat4x4(-0.0005980331334285,-0.0095877395942807,-0.0149448839947581,-0.0026380482595414,0.0320665836334229,-0.0706205591559410,-0.0054677254520357,0.0215112231671810,-0.0025710910558701,-0.0000433265340689,0.0044494951143861,-0.0034823501482606,-0.0050858515314758,0.0109513988718390,0.0208286065608263,-0.0032168829347938) * RES1_texOff(vec2(-1,-1));
res += mat4x4(-0.0145305208861828,0.0246876608580351,-0.0038286084309220,-0.0033089490607381,-0.0920709222555161,-0.0767898634076118,0.0012083095498383,-0.0751532614231110,0.0001302754972130,-0.0107085108757019,-0.0010383903281763,-0.0059571005403996,0.0809685289859772,0.0414833538234234,0.0227938480675220,-0.0211347509175539) * RES2_texOff(vec2(-1,-1));
res += mat4x4(0.0160999298095703,0.0364215746521950,-0.0377063788473606,-0.0449111759662628,-0.0476365163922310,0.1522845029830933,-0.0131391752511263,-0.0476671792566776,-0.0378389135003090,0.0235454943031073,0.0224007442593575,-0.0010372076649219,-0.0089435689151287,-0.0293026417493820,0.0274190884083509,0.0469092652201653) * RES1_texOff(vec2(-1,0));
res += mat4x4(0.0297575183212757,-0.0132508194074035,-0.0044682323932648,-0.0096222748979926,0.2525918781757355,0.1873829364776611,-0.5599535703659058,-0.2372044622898102,0.0033207221422344,0.0256173480302095,0.0294605866074562,0.0323960892856121,-0.1679904460906982,-0.1278967708349228,0.3168168365955353,0.1978507637977600) * RES2_texOff(vec2(-1,0));
res += mat4x4(-0.0047590560279787,-0.0149335600435734,0.0033453819341958,-0.0012247267877683,0.1112466752529144,0.0147760482504964,0.0031189601868391,0.0391573049128056,-0.0028154491446912,-0.0036881719715893,-0.0116015253588557,-0.0037573333829641,0.0047581391409039,0.0071071563288569,-0.0033221673220396,0.0004882142529823) * RES1_texOff(vec2(-1,1));
res += mat4x4(-0.0025197160430253,-0.0018677815096453,0.0038254233077168,0.0041981274262071,-0.1321131736040115,-0.0494364202022552,0.0760654658079147,-0.1386690139770508,-0.0016222692793235,-0.0060105528682470,0.0010201989207417,0.0092753591015935,-0.0194614846259356,0.0087382243946195,-0.0606758072972298,0.0156162241473794) * RES2_texOff(vec2(-1,1));
res += mat4x4(-0.0073722628876567,0.0012844242155552,0.0241398401558399,-0.0075527969747782,-0.0865194946527481,-0.0610522404313087,0.0289319511502981,-0.0994452014565468,0.0281447004526854,-0.0250582899898291,0.0044891634024680,-0.0246205236762762,0.0112307453528047,-0.0010844616917893,-0.0223584957420826,0.0177635718137026) * RES1_texOff(vec2(0,-1));
res += mat4x4(-0.0585863515734673,0.0953190475702286,-0.0555586628615856,0.1033507287502289,0.1560877263545990,-0.0690897777676582,-0.0341389514505863,-0.0661668032407761,0.0531073249876499,-0.0266165956854820,-0.0203275382518768,0.0017760475166142,-0.1300747394561768,0.1810652017593384,0.0381597876548767,0.1397419273853302) * RES2_texOff(vec2(0,-1));
res += mat4x4(0.6259804368019104,0.6062518954277039,0.5450409054756165,0.5966195464134216,-0.0423948727548122,0.0760537460446358,-0.0113651463761926,0.3007817566394806,-0.3218322694301605,0.2713021934032440,-0.3143473267555237,0.2303840517997742,0.3493050038814545,0.3590726852416992,0.4138027429580688,0.3391666412353516) * RES1_texOff(vec2(0,0));
res += mat4x4(0.0790478289127350,-0.0978994593024254,0.0779844969511032,-0.0823706611990929,0.0094470111653209,0.1671760678291321,0.1201528310775757,-0.2016288936138153,0.3667598366737366,0.3651430010795593,-0.3612343966960907,-0.2978236973285675,-0.4231655597686768,0.0091423410922289,-0.1918412446975708,0.4224558770656586) * RES2_texOff(vec2(0,0));
res += mat4x4(-0.0186564289033413,0.0274957418441772,-0.0064405309967697,0.0056951809674501,0.4864942431449890,-0.2563461959362030,0.4357284605503082,-0.2976118028163910,0.0374982468783855,0.0167757049202919,0.0305800959467888,0.0232830215245485,0.0138373551890254,-0.0191283021122217,0.0032355054281652,0.0055057541467249) * RES1_texOff(vec2(0,1));
res += mat4x4(-0.0276355985552073,0.0048149987123907,-0.0251619722694159,-0.0057246969081461,0.0271473955363035,-0.0042668608948588,-0.0594691745936871,0.2255926281213760,-0.0203660242259502,0.0721646770834923,0.0137230781838298,-0.0650938376784325,-0.3049557507038116,0.2035628110170364,-0.2509683668613434,0.1962853819131851) * RES2_texOff(vec2(0,1));
res += mat4x4(0.0109980758279562,-0.0053752651438117,-0.0112550277262926,0.0024017230607569,0.0362104885280132,0.0084348218515515,-0.0106990104541183,-0.0207723993808031,-0.0014961160486564,0.0066790678538382,0.0028113177977502,0.0025022011250257,-0.0093937022611499,0.0016421369509771,0.0035362334456295,-0.0058064293116331) * RES1_texOff(vec2(1,-1));
res += mat4x4(0.0138889988884330,-0.0078343702480197,0.0061464929021895,0.0202130675315857,-0.0257590841501951,-0.0366640128195286,0.0250097587704659,-0.0498071312904358,-0.0103149358183146,-0.0001786737266229,-0.0099909817799926,0.0062733208760619,0.0131437368690968,-0.0005469865864143,-0.0388854071497917,0.0612070746719837) * RES2_texOff(vec2(1,-1));
res += mat4x4(0.0052813654765487,0.0215748809278011,0.0107395220547915,-0.0079439217224717,0.0382786765694618,0.0697424262762070,-0.0415962152183056,0.0657853558659554,0.0209470037370920,-0.0218399092555046,-0.0447359494864941,0.0407319553196430,-0.0040902681648731,-0.0196106657385826,-0.0018554026028141,0.0203906055539846) * RES1_texOff(vec2(1,0));
res += mat4x4(-0.0106181986629963,0.0084018819034100,0.0131329754367471,-0.0198754761368036,0.1117177084088326,0.0990846082568169,-0.0732304081320763,0.0163581725209951,-0.0648830309510231,-0.0451613292098045,0.0206844564527273,0.0031441387254745,-0.0106161693111062,-0.0567689687013626,0.0782861113548279,-0.0306094046682119) * RES2_texOff(vec2(1,0));
res += mat4x4(0.0012452082009986,-0.0026056850329041,-0.0096226977184415,-0.0037850935477763,-0.0190967041999102,0.0534373670816422,0.1599360853433609,0.0834670960903168,-0.0070255175232887,0.0012873009545729,0.0030876772943884,-0.0093916896730661,-0.0033529615029693,0.0043485122732818,0.0089034689590335,-0.0067489291541278) * RES1_texOff(vec2(1,1));
res += mat4x4(0.0004713654634543,-0.0034161377698183,-0.0026913962792605,0.0053522582165897,-0.0040974905714393,0.0273330621421337,-0.0333138220012188,-0.0701237097382545,0.0082997502759099,-0.0183656588196754,-0.0122841577976942,-0.0052855615504086,-0.0023795007728040,-0.0438593104481697,-0.1101513057947159,-0.0182559806853533) * RES2_texOff(vec2(1,1));
return vec4(res);
}
//!HOOK LUMA
//!WHEN OUTPUT.w LUMA.w / 1.300 > OUTPUT.h LUMA.h / 1.300 > *
//!WIDTH LUMA.w 2 *
//!HEIGHT LUMA.h 2 *
//!DESC aggregation
//!BIND SUBCONV1
vec4 hook()
{
vec2 fcoord = fract(SUBCONV1_pos * SUBCONV1_size);
vec2 base = SUBCONV1_pos + (vec2(0.5) - fcoord) * SUBCONV1_pt;
ivec2 index = ivec2(fcoord * vec2(2));
vec4 res = SUBCONV1_tex(base);
return vec4(res[index.x * 2 + index.y], 0, 0, 1);
}

View file

@ -23,11 +23,11 @@
//!PARAM intensity_coeff //!PARAM intensity_coeff
//!TYPE float //!TYPE float
//!MINIMUM 0.0 //!MINIMUM 0.0
256.0 512.0
//!HOOK CHROMA //!HOOK CHROMA
//!BIND CHROMA
//!BIND LUMA //!BIND LUMA
//!BIND CHROMA
//!WIDTH LUMA.w //!WIDTH LUMA.w
//!HEIGHT LUMA.h //!HEIGHT LUMA.h
//!WHEN CHROMA.w LUMA.w < //!WHEN CHROMA.w LUMA.w <

View file

@ -24,170 +24,236 @@
//!BIND LUMA //!BIND LUMA
//!BIND HOOKED //!BIND HOOKED
//!SAVE LUMA_LOWRES //!SAVE LUMA_LOWRES
//!WIDTH CHROMA.w
//!HEIGHT LUMA.h
//!WHEN CHROMA.w LUMA.w < //!WHEN CHROMA.w LUMA.w <
//!DESC Joint Bilateral (Downscaling Luma) //!DESC Joint Bilateral (Downscaling Luma 1st Step)
vec4 hook() { vec4 hook() {
vec2 start = ceil((LUMA_pos - CHROMA_pt) * LUMA_size - 0.5); float factor = ceil(LUMA_size.x / HOOKED_size.x);
vec2 end = floor((LUMA_pos + CHROMA_pt) * LUMA_size - 0.5); int start = int(ceil(-factor / 2.0 - 0.5));
int end = int(floor(factor / 2.0 - 0.5));
float luma_pix = 0.0; float output_luma = 0.0;
float w = 0.0; int wt = 0;
float d = 0.0; for (int dx = start; dx <= end; dx++) {
float wt = 0.0; output_luma += LUMA_texOff(vec2(dx + 0.5, 0.0)).x;
float val = 0.0; wt++;
vec2 pos = LUMA_pos;
for (float dx = start.x; dx <= end.x; dx++) {
for (float dy = start.y; dy <= end.y; dy++) {
pos = LUMA_pt * vec2(dx + 0.5, dy + 0.5);
d = length((pos - LUMA_pos) * CHROMA_size);
w = exp(-2.0 * pow(d, 2.0));
luma_pix = LUMA_tex(pos).x;
val += w * luma_pix;
wt += w;
} }
vec4 output_pix = vec4(output_luma / float(wt), 0.0, 0.0, 1.0);
return output_pix;
} }
vec4 output_pix = vec4(val / wt, 0.0, 0.0, 1.0); //!HOOK CHROMA
//!BIND LUMA_LOWRES
//!BIND HOOKED
//!SAVE LUMA_LOWRES
//!WIDTH CHROMA.w
//!HEIGHT CHROMA.h
//!WHEN CHROMA.w LUMA.w <
//!DESC Joint Bilateral (Downscaling Luma 2nd Step)
vec4 hook() {
float factor = ceil(LUMA_LOWRES_size.y / HOOKED_size.y);
int start = int(ceil(-factor / 2.0 - 0.5));
int end = int(floor(factor / 2.0 - 0.5));
float output_luma = 0.0;
int wt = 0;
for (int dy = start; dy <= end; dy++) {
output_luma += LUMA_LOWRES_texOff(vec2(0.0, dy + 0.5)).x;
wt++;
}
vec4 output_pix = vec4(output_luma / float(wt), 0.0, 0.0, 1.0);
return output_pix; return output_pix;
} }
//!PARAM distance_coeff //!PARAM distance_coeff
//!TYPE float //!TYPE float
//!MINIMUM 0.0 //!MINIMUM 0.0
4.0 0.5
//!PARAM intensity_coeff //!PARAM intensity_coeff
//!TYPE float //!TYPE float
//!MINIMUM 0.0 //!MINIMUM 0.0
256.0 512.0
//!HOOK CHROMA //!HOOK CHROMA
//!BIND CHROMA
//!BIND LUMA //!BIND LUMA
//!BIND LUMA_LOWRES //!BIND LUMA_LOWRES
//!BIND HOOKED
//!WIDTH LUMA.w //!WIDTH LUMA.w
//!HEIGHT LUMA.h //!HEIGHT LUMA.h
//!WHEN CHROMA.w LUMA.w < //!WHEN CHROMA.w LUMA.w <
//!OFFSET ALIGN //!OFFSET ALIGN
//!DESC Joint Bilateral (Upscaling Chroma) //!DESC Joint Bilateral (Upscaling Chroma)
float comp_wd(vec2 distance) { #define USE_SHARP_SPATIAL_FILTER 1
return exp(-distance_coeff * (distance.x * distance.x + distance.y * distance.y));
float comp_wd1(vec2 distance) {
float d2 = min(pow(length(distance), 2.0), 4.0);
return (25.0 / 16.0 * pow(2.0 / 5.0 * d2 - 1.0, 2.0) - (25.0 / 16.0 - 1.0)) * pow(1.0 / 4.0 * d2 - 1.0, 2.0);
}
float comp_wd2(vec2 distance) {
return exp(-distance_coeff * pow(length(distance), 2.0));
} }
float comp_wi(float distance) { float comp_wi(float distance) {
return exp(-intensity_coeff * distance * distance); return exp(-intensity_coeff * pow(distance, 2.0));
}
float comp_w(float wd, float wi) {
float w = wd * wi;
// return clamp(w, 1e-32, 1.0);
return w;
} }
vec4 hook() { vec4 hook() {
vec2 pp = CHROMA_pos * CHROMA_size - vec2(0.5); #if (USE_SHARP_SPATIAL_FILTER == 1)
float ar_strength = 0.5;
float division_limit = 1e-4;
#endif
float luma_zero = LUMA_texOff(0.0).x;
vec4 output_pix = vec4(0.0, 0.0, 0.0, 1.0);
vec2 pp = HOOKED_pos * HOOKED_size - vec2(0.5);
vec2 fp = floor(pp); vec2 fp = floor(pp);
pp -= fp; pp -= fp;
vec2 chroma_b = CHROMA_tex(vec2((fp + vec2(0.5, -0.5)) * CHROMA_pt)).xy; vec2 chroma_pixels[12];
vec2 chroma_c = CHROMA_tex(vec2((fp + vec2(1.5, -0.5)) * CHROMA_pt)).xy; chroma_pixels[0] = HOOKED_tex(vec2((fp + vec2(0.5, -0.5)) * HOOKED_pt)).xy;
vec2 chroma_e = CHROMA_tex(vec2((fp + vec2(-0.5, 0.5)) * CHROMA_pt)).xy; chroma_pixels[1] = HOOKED_tex(vec2((fp + vec2(1.5, -0.5)) * HOOKED_pt)).xy;
vec2 chroma_f = CHROMA_tex(vec2((fp + vec2( 0.5, 0.5)) * CHROMA_pt)).xy; chroma_pixels[2] = HOOKED_tex(vec2((fp + vec2(-0.5, 0.5)) * HOOKED_pt)).xy;
vec2 chroma_g = CHROMA_tex(vec2((fp + vec2( 1.5, 0.5)) * CHROMA_pt)).xy; chroma_pixels[3] = HOOKED_tex(vec2((fp + vec2( 0.5, 0.5)) * HOOKED_pt)).xy;
vec2 chroma_h = CHROMA_tex(vec2((fp + vec2( 2.5, 0.5)) * CHROMA_pt)).xy; chroma_pixels[4] = HOOKED_tex(vec2((fp + vec2( 1.5, 0.5)) * HOOKED_pt)).xy;
vec2 chroma_i = CHROMA_tex(vec2((fp + vec2(-0.5, 1.5)) * CHROMA_pt)).xy; chroma_pixels[5] = HOOKED_tex(vec2((fp + vec2( 2.5, 0.5)) * HOOKED_pt)).xy;
vec2 chroma_j = CHROMA_tex(vec2((fp + vec2( 0.5, 1.5)) * CHROMA_pt)).xy; chroma_pixels[6] = HOOKED_tex(vec2((fp + vec2(-0.5, 1.5)) * HOOKED_pt)).xy;
vec2 chroma_k = CHROMA_tex(vec2((fp + vec2( 1.5, 1.5)) * CHROMA_pt)).xy; chroma_pixels[7] = HOOKED_tex(vec2((fp + vec2( 0.5, 1.5)) * HOOKED_pt)).xy;
vec2 chroma_l = CHROMA_tex(vec2((fp + vec2( 2.5, 1.5)) * CHROMA_pt)).xy; chroma_pixels[8] = HOOKED_tex(vec2((fp + vec2( 1.5, 1.5)) * HOOKED_pt)).xy;
vec2 chroma_n = CHROMA_tex(vec2((fp + vec2(0.5, 2.5) ) * CHROMA_pt)).xy; chroma_pixels[9] = HOOKED_tex(vec2((fp + vec2( 2.5, 1.5)) * HOOKED_pt)).xy;
vec2 chroma_o = CHROMA_tex(vec2((fp + vec2(1.5, 2.5) ) * CHROMA_pt)).xy; chroma_pixels[10] = HOOKED_tex(vec2((fp + vec2( 0.5, 2.5)) * HOOKED_pt)).xy;
chroma_pixels[11] = HOOKED_tex(vec2((fp + vec2( 1.5, 2.5)) * HOOKED_pt)).xy;
float luma_0 = LUMA_texOff(0.0).x; float luma_pixels[12];
float luma_b = LUMA_LOWRES_tex(vec2((fp + vec2(0.5, -0.5)) * CHROMA_pt)).x; luma_pixels[0] = LUMA_LOWRES_tex(vec2((fp + vec2(0.5, -0.5)) * HOOKED_pt)).x;
float luma_c = LUMA_LOWRES_tex(vec2((fp + vec2(1.5, -0.5)) * CHROMA_pt)).x; luma_pixels[1] = LUMA_LOWRES_tex(vec2((fp + vec2(1.5, -0.5)) * HOOKED_pt)).x;
float luma_e = LUMA_LOWRES_tex(vec2((fp + vec2(-0.5, 0.5)) * CHROMA_pt)).x; luma_pixels[2] = LUMA_LOWRES_tex(vec2((fp + vec2(-0.5, 0.5)) * HOOKED_pt)).x;
float luma_f = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 0.5)) * CHROMA_pt)).x; luma_pixels[3] = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 0.5)) * HOOKED_pt)).x;
float luma_g = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 0.5)) * CHROMA_pt)).x; luma_pixels[4] = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 0.5)) * HOOKED_pt)).x;
float luma_h = LUMA_LOWRES_tex(vec2((fp + vec2( 2.5, 0.5)) * CHROMA_pt)).x; luma_pixels[5] = LUMA_LOWRES_tex(vec2((fp + vec2( 2.5, 0.5)) * HOOKED_pt)).x;
float luma_i = LUMA_LOWRES_tex(vec2((fp + vec2(-0.5, 1.5)) * CHROMA_pt)).x; luma_pixels[6] = LUMA_LOWRES_tex(vec2((fp + vec2(-0.5, 1.5)) * HOOKED_pt)).x;
float luma_j = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 1.5)) * CHROMA_pt)).x; luma_pixels[7] = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 1.5)) * HOOKED_pt)).x;
float luma_k = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 1.5)) * CHROMA_pt)).x; luma_pixels[8] = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 1.5)) * HOOKED_pt)).x;
float luma_l = LUMA_LOWRES_tex(vec2((fp + vec2( 2.5, 1.5)) * CHROMA_pt)).x; luma_pixels[9] = LUMA_LOWRES_tex(vec2((fp + vec2( 2.5, 1.5)) * HOOKED_pt)).x;
float luma_n = LUMA_LOWRES_tex(vec2((fp + vec2(0.5, 2.5) ) * CHROMA_pt)).x; luma_pixels[10] = LUMA_LOWRES_tex(vec2((fp + vec2( 0.5, 2.5)) * HOOKED_pt)).x;
float luma_o = LUMA_LOWRES_tex(vec2((fp + vec2(1.5, 2.5) ) * CHROMA_pt)).x; luma_pixels[11] = LUMA_LOWRES_tex(vec2((fp + vec2( 1.5, 2.5)) * HOOKED_pt)).x;
float wd_b = comp_wd(vec2( 0.0,-1.0) - pp); vec2 chroma_min = vec2(1e8);
float wd_c = comp_wd(vec2( 1.0,-1.0) - pp); chroma_min = min(chroma_min, chroma_pixels[3]);
float wd_e = comp_wd(vec2(-1.0, 0.0) - pp); chroma_min = min(chroma_min, chroma_pixels[4]);
float wd_f = comp_wd(vec2( 0.0, 0.0) - pp); chroma_min = min(chroma_min, chroma_pixels[7]);
float wd_g = comp_wd(vec2( 1.0, 0.0) - pp); chroma_min = min(chroma_min, chroma_pixels[8]);
float wd_h = comp_wd(vec2( 2.0, 0.0) - pp);
float wd_i = comp_wd(vec2(-1.0, 1.0) - pp);
float wd_j = comp_wd(vec2( 0.0, 1.0) - pp);
float wd_k = comp_wd(vec2( 1.0, 1.0) - pp);
float wd_l = comp_wd(vec2( 2.0, 1.0) - pp);
float wd_n = comp_wd(vec2( 0.0, 2.0) - pp);
float wd_o = comp_wd(vec2( 1.0, 2.0) - pp);
float wi_b = comp_wi(luma_0 - luma_b); vec2 chroma_max = vec2(1e-8);
float wi_c = comp_wi(luma_0 - luma_c); chroma_max = max(chroma_max, chroma_pixels[3]);
float wi_e = comp_wi(luma_0 - luma_e); chroma_max = max(chroma_max, chroma_pixels[4]);
float wi_f = comp_wi(luma_0 - luma_f); chroma_max = max(chroma_max, chroma_pixels[7]);
float wi_g = comp_wi(luma_0 - luma_g); chroma_max = max(chroma_max, chroma_pixels[8]);
float wi_h = comp_wi(luma_0 - luma_h);
float wi_i = comp_wi(luma_0 - luma_i);
float wi_j = comp_wi(luma_0 - luma_j);
float wi_k = comp_wi(luma_0 - luma_k);
float wi_l = comp_wi(luma_0 - luma_l);
float wi_n = comp_wi(luma_0 - luma_n);
float wi_o = comp_wi(luma_0 - luma_o);
float w_b = comp_w(wd_b, wi_b); #if (USE_SHARP_SPATIAL_FILTER == 1)
float w_c = comp_w(wd_c, wi_c); float wd1[12];
float w_e = comp_w(wd_e, wi_e); wd1[0] = comp_wd1(vec2( 0.0,-1.0) - pp);
float w_f = comp_w(wd_f, wi_f); wd1[1] = comp_wd1(vec2( 1.0,-1.0) - pp);
float w_g = comp_w(wd_g, wi_g); wd1[2] = comp_wd1(vec2(-1.0, 0.0) - pp);
float w_h = comp_w(wd_h, wi_h); wd1[3] = comp_wd1(vec2( 0.0, 0.0) - pp);
float w_i = comp_w(wd_i, wi_i); wd1[4] = comp_wd1(vec2( 1.0, 0.0) - pp);
float w_j = comp_w(wd_j, wi_j); wd1[5] = comp_wd1(vec2( 2.0, 0.0) - pp);
float w_k = comp_w(wd_k, wi_k); wd1[6] = comp_wd1(vec2(-1.0, 1.0) - pp);
float w_l = comp_w(wd_l, wi_l); wd1[7] = comp_wd1(vec2( 0.0, 1.0) - pp);
float w_n = comp_w(wd_n, wi_n); wd1[8] = comp_wd1(vec2( 1.0, 1.0) - pp);
float w_o = comp_w(wd_o, wi_o); wd1[9] = comp_wd1(vec2( 2.0, 1.0) - pp);
wd1[10] = comp_wd1(vec2( 0.0, 2.0) - pp);
wd1[11] = comp_wd1(vec2( 1.0, 2.0) - pp);
float wt = 0.0; float wt1 = 0.0;
wt += w_b; for (int i = 0; i < 12; i++) {
wt += w_c; wt1 += wd1[i];
wt += w_e; }
wt += w_f;
wt += w_g;
wt += w_h;
wt += w_i;
wt += w_j;
wt += w_k;
wt += w_l;
wt += w_n;
wt += w_o;
vec2 ct = vec2(0.0); vec2 ct1 = vec2(0.0);
ct += w_b * chroma_b; for (int i = 0; i < 12; i++) {
ct += w_c * chroma_c; ct1 += wd1[i] * chroma_pixels[i];
ct += w_e * chroma_e; }
ct += w_f * chroma_f;
ct += w_g * chroma_g;
ct += w_h * chroma_h;
ct += w_i * chroma_i;
ct += w_j * chroma_j;
ct += w_k * chroma_k;
ct += w_l * chroma_l;
ct += w_n * chroma_n;
ct += w_o * chroma_o;
vec4 output_pix = vec4(0.0, 0.0, 0.0, 1.0); vec2 chroma_spatial = clamp(ct1 / wt1, 0.0, 1.0);
output_pix.xy = ct / wt; chroma_spatial = mix(chroma_spatial, clamp(chroma_spatial, chroma_min, chroma_max), ar_strength);
#endif
float wd2[12];
wd2[0] = comp_wd2(vec2( 0.0,-1.0) - pp);
wd2[1] = comp_wd2(vec2( 1.0,-1.0) - pp);
wd2[2] = comp_wd2(vec2(-1.0, 0.0) - pp);
wd2[3] = comp_wd2(vec2( 0.0, 0.0) - pp);
wd2[4] = comp_wd2(vec2( 1.0, 0.0) - pp);
wd2[5] = comp_wd2(vec2( 2.0, 0.0) - pp);
wd2[6] = comp_wd2(vec2(-1.0, 1.0) - pp);
wd2[7] = comp_wd2(vec2( 0.0, 1.0) - pp);
wd2[8] = comp_wd2(vec2( 1.0, 1.0) - pp);
wd2[9] = comp_wd2(vec2( 2.0, 1.0) - pp);
wd2[10] = comp_wd2(vec2( 0.0, 2.0) - pp);
wd2[11] = comp_wd2(vec2( 1.0, 2.0) - pp);
float wi[12];
for (int i = 0; i < 12; i++) {
wi[i] = comp_wi(luma_zero - luma_pixels[i]);
}
float w[12];
for (int i = 0; i < 12; i++) {
w[i] = wd2[i] * wi[i];
}
float wt2 = 0.0;
for (int i = 0; i < 12; i++) {
wt2 += w[i];
}
vec2 ct2 = vec2(0.0);
for (int i = 0; i < 12; i++) {
ct2 += w[i] * chroma_pixels[i];
}
vec2 chroma_bilat = clamp(ct2 / wt2, 0.0, 1.0);
#if (USE_SHARP_SPATIAL_FILTER == 1)
float luma_avg = 0.0;
for(int i = 0; i < 12; i++) {
luma_avg += luma_pixels[i];
}
luma_avg /= 12.0;
float luma_var = 0.0;
for(int i = 0; i < 12; i++) {
luma_var += pow(luma_pixels[i] - luma_avg, 2.0);
}
vec2 chroma_avg = vec2(0.0);
for(int i = 0; i < 12; i++) {
chroma_avg += chroma_pixels[i];
}
chroma_avg /= 12.0;
vec2 chroma_var = vec2(0.0);
for(int i = 0; i < 12; i++) {
chroma_var += pow(chroma_pixels[i] - chroma_avg, vec2(2.0));
}
vec2 luma_chroma_cov = vec2(0.0);
for(int i = 0; i < 12; i++) {
luma_chroma_cov += (luma_pixels[i] - luma_avg) * (chroma_pixels[i] - chroma_avg);
}
vec2 corr = abs(luma_chroma_cov / max(sqrt(luma_var * chroma_var), division_limit));
corr = clamp(corr, 0.0, 1.0);
output_pix.xy = mix(chroma_spatial, chroma_bilat, pow(corr, vec2(2.0)) / 2.0);
output_pix.xy = clamp(output_pix.xy, 0.0, 1.0); output_pix.xy = clamp(output_pix.xy, 0.0, 1.0);
#else
output_pix.xy = chroma_bilat;
#endif
return output_pix; return output_pix;
} }

View file

@ -0,0 +1,544 @@
// The MIT License(MIT)
//
// Copyright(c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files(the "Software"), to deal in
// the Software without restriction, including without limitation the rights to
// use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions :
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// NVIDIA Image Scaling v1.0.2 by NVIDIA
// ported to mpv by agyild
// Changelog
// Made it directly operate on LUMA plane, since the original shader was operating
// on LUMA by deriving it from RGB. This should cause a major increase in performance,
// especially on OpenGL 4.0+ renderers
//!HOOK LUMA
//!BIND HOOKED
//!BIND coef_scaler
//!BIND coef_usm
//!DESC NVIDIA Image Scaling and Sharpening v1.0.2
//!COMPUTE 32 24 256 1
//!WHEN OUTPUT.w OUTPUT.h * LUMA.w LUMA.h * / 1.0 >
//!WIDTH OUTPUT.w
//!HEIGHT OUTPUT.h
// User variables
#define SHARPNESS 0.25 // Amount of sharpening. 0.0 to 1.0.
#define NIS_THREAD_GROUP_SIZE 256 // May be set to 128 for better performance on NVIDIA hardware, otherwise set to 256. Don't forget to modify the COMPUTE directive accordingly as well (e.g., COMPUTE 32 24 128 1).
#define NIS_HDR_MODE 0 // Must be set to 1 for content with PQ colorspace. 0 or 1.
// Constant variables
#define NIS_BLOCK_WIDTH 32
#define NIS_BLOCK_HEIGHT 24
#define kPhaseCount 64
#define kFilterSize 6
#define kSupportSize 6
#define kPadSize kSupportSize
#define NIS_SCALE_INT 1
#define NIS_SCALE_FLOAT 1.0f
#define kTilePitch (NIS_BLOCK_WIDTH + kPadSize)
#define kTileSize (kTilePitch * (NIS_BLOCK_HEIGHT + kPadSize))
#define kEdgeMapPitch (NIS_BLOCK_WIDTH + 2)
#define kEdgeMapSize (kEdgeMapPitch * (NIS_BLOCK_HEIGHT + 2))
const float sharpen_slider = clamp(SHARPNESS, 0.0f, 1.0f) - 0.5f;
const float MaxScale = (sharpen_slider >= 0.0f) ? 1.25f : 1.75f;
const float MinScale = (sharpen_slider >= 0.0f) ? 1.25f : 1.0f;
const float LimitScale = (sharpen_slider >= 0.0f) ? 1.25f : 1.0f;
const float kDetectRatio = 2 * 1127.f / 1024.f;
const float kDetectThres = (bool(NIS_HDR_MODE) ? 32.0f : 64.0f) / 1024.0f;
const float kMinContrastRatio = bool(NIS_HDR_MODE) ? 1.5f : 2.0f;
const float kMaxContrastRatio = bool(NIS_HDR_MODE) ? 5.0f : 10.0f;
const float kSharpStartY = bool(NIS_HDR_MODE) ? 0.35f : 0.45f;
const float kSharpEndY = bool(NIS_HDR_MODE) ? 0.55f : 0.9f;
const float kSharpStrengthMin = max(0.0f, 0.4f + sharpen_slider * MinScale * (bool(NIS_HDR_MODE) ? 1.1f : 1.2));
const float kSharpStrengthMax = ((bool(NIS_HDR_MODE) ? 2.2f : 1.6f) + sharpen_slider * MaxScale * 1.8f);
const float kSharpLimitMin = max((bool(NIS_HDR_MODE) ? 0.06f :0.1f), (bool(NIS_HDR_MODE) ? 0.1f : 0.14f) + sharpen_slider * LimitScale * (bool(NIS_HDR_MODE) ? 0.28f : 0.32f));
const float kSharpLimitMax = ((bool(NIS_HDR_MODE) ? 0.6f : 0.5f) + sharpen_slider * LimitScale * 0.6f);
const float kRatioNorm = 1.0f / (kMaxContrastRatio - kMinContrastRatio);
const float kSharpScaleY = 1.0f / (kSharpEndY - kSharpStartY);
const float kSharpStrengthScale = kSharpStrengthMax - kSharpStrengthMin;
const float kSharpLimitScale = kSharpLimitMax - kSharpLimitMin;
const float kContrastBoost = 1.0f;
const float kEps = 1.0f;
#define kScaleX (HOOKED_size.x / target_size.x)
#define kScaleY (HOOKED_size.y / target_size.y)
#define kSrcNormX HOOKED_pt.x
#define kSrcNormY HOOKED_pt.y
// HLSL to GLSL macros
#define saturate(x) clamp(x, 0, 1)
#define lerp(a, b, x) mix(a, b, x)
// CS Shared variables
shared float shPixelsY[kTileSize];
shared float shCoefScaler[kPhaseCount][kFilterSize];
shared float shCoefUSM[kPhaseCount][kFilterSize];
shared vec4 shEdgeMap[kEdgeMapSize];
// Shader code
vec4 GetEdgeMap(float p[4][4], int i, int j) {
const float g_0 = abs(p[0 + i][0 + j] + p[0 + i][1 + j] + p[0 + i][2 + j] - p[2 + i][0 + j] - p[2 + i][1 + j] - p[2 + i][2 + j]);
const float g_45 = abs(p[1 + i][0 + j] + p[0 + i][0 + j] + p[0 + i][1 + j] - p[2 + i][1 + j] - p[2 + i][2 + j] - p[1 + i][2 + j]);
const float g_90 = abs(p[0 + i][0 + j] + p[1 + i][0 + j] + p[2 + i][0 + j] - p[0 + i][2 + j] - p[1 + i][2 + j] - p[2 + i][2 + j]);
const float g_135 = abs(p[1 + i][0 + j] + p[2 + i][0 + j] + p[2 + i][1 + j] - p[0 + i][1 + j] - p[0 + i][2 + j] - p[1 + i][2 + j]);
const float g_0_90_max = max(g_0, g_90);
const float g_0_90_min = min(g_0, g_90);
const float g_45_135_max = max(g_45, g_135);
const float g_45_135_min = min(g_45, g_135);
float e_0_90 = 0;
float e_45_135 = 0;
if (g_0_90_max + g_45_135_max == 0)
{
return vec4(0, 0, 0, 0);
}
e_0_90 = min(g_0_90_max / (g_0_90_max + g_45_135_max), 1.0f);
e_45_135 = 1.0f - e_0_90;
bool c_0_90 = (g_0_90_max > (g_0_90_min * kDetectRatio)) && (g_0_90_max > kDetectThres) && (g_0_90_max > g_45_135_min);
bool c_45_135 = (g_45_135_max > (g_45_135_min * kDetectRatio)) && (g_45_135_max > kDetectThres) && (g_45_135_max > g_0_90_min);
bool c_g_0_90 = g_0_90_max == g_0;
bool c_g_45_135 = g_45_135_max == g_45;
float f_e_0_90 = (c_0_90 && c_45_135) ? e_0_90 : 1.0f;
float f_e_45_135 = (c_0_90 && c_45_135) ? e_45_135 : 1.0f;
float weight_0 = (c_0_90 && c_g_0_90) ? f_e_0_90 : 0.0f;
float weight_90 = (c_0_90 && !c_g_0_90) ? f_e_0_90 : 0.0f;
float weight_45 = (c_45_135 && c_g_45_135) ? f_e_45_135 : 0.0f;
float weight_135 = (c_45_135 && !c_g_45_135) ? f_e_45_135 : 0.0f;
return vec4(weight_0, weight_90, weight_45, weight_135);
}
void LoadFilterBanksSh(int i0, int di) {
// Load up filter banks to shared memory
// The work is spread over (kPhaseCount * 2) threads
for (int i = i0; i < kPhaseCount * 2; i += di)
{
int phase = i >> 1;
int vIdx = i & 1;
vec4 v = vec4(texelFetch(coef_scaler, ivec2(vIdx, phase), 0));
int filterOffset = vIdx * 4;
shCoefScaler[phase][filterOffset + 0] = v.x;
shCoefScaler[phase][filterOffset + 1] = v.y;
if (vIdx == 0)
{
shCoefScaler[phase][2] = v.z;
shCoefScaler[phase][3] = v.w;
}
v = vec4(texelFetch(coef_usm, ivec2(vIdx, phase), 0));
shCoefUSM[phase][filterOffset + 0] = v.x;
shCoefUSM[phase][filterOffset + 1] = v.y;
if (vIdx == 0)
{
shCoefUSM[phase][2] = v.z;
shCoefUSM[phase][3] = v.w;
}
}
}
float CalcLTI(float p0, float p1, float p2, float p3, float p4, float p5, int phase_index)
{
const bool selector = (phase_index <= kPhaseCount / 2);
float sel = selector ? p0 : p3;
const float a_min = min(min(p1, p2), sel);
const float a_max = max(max(p1, p2), sel);
sel = selector ? p2 : p5;
const float b_min = min(min(p3, p4), sel);
const float b_max = max(max(p3, p4), sel);
const float a_cont = a_max - a_min;
const float b_cont = b_max - b_min;
const float cont_ratio = max(a_cont, b_cont) / (min(a_cont, b_cont) + kEps);
return (1.0f - saturate((cont_ratio - kMinContrastRatio) * kRatioNorm)) * kContrastBoost;
}
vec4 GetInterpEdgeMap(const vec4 edge[2][2], float phase_frac_x, float phase_frac_y)
{
vec4 h0 = lerp(edge[0][0], edge[0][1], phase_frac_x);
vec4 h1 = lerp(edge[1][0], edge[1][1], phase_frac_x);
return lerp(h0, h1, phase_frac_y);
}
float EvalPoly6(const float pxl[6], int phase_int)
{
float y = 0.f;
{
for (int i = 0; i < 6; ++i)
{
y += shCoefScaler[phase_int][i] * pxl[i];
}
}
float y_usm = 0.f;
{
for (int i = 0; i < 6; ++i)
{
y_usm += shCoefUSM[phase_int][i] * pxl[i];
}
}
// let's compute a piece-wise ramp based on luma
const float y_scale = 1.0f - saturate((y * (1.0f / NIS_SCALE_FLOAT) - kSharpStartY) * kSharpScaleY);
// scale the ramp to sharpen as a function of luma
const float y_sharpness = y_scale * kSharpStrengthScale + kSharpStrengthMin;
y_usm *= y_sharpness;
// scale the ramp to limit USM as a function of luma
const float y_sharpness_limit = (y_scale * kSharpLimitScale + kSharpLimitMin) * y;
y_usm = min(y_sharpness_limit, max(-y_sharpness_limit, y_usm));
// reduce ringing
y_usm *= CalcLTI(pxl[0], pxl[1], pxl[2], pxl[3], pxl[4], pxl[5], phase_int);
return y + y_usm;
}
float FilterNormal(const float p[6][6], int phase_x_frac_int, int phase_y_frac_int)
{
float h_acc = 0.0f;
for (int j = 0; j < 6; ++j)
{
float v_acc = 0.0f;
for (int i = 0; i < 6; ++i)
{
v_acc += p[i][j] * shCoefScaler[phase_y_frac_int][i];
}
h_acc += v_acc * shCoefScaler[phase_x_frac_int][j];
}
// let's return the sum unpacked -> we can accumulate it later
return h_acc;
}
float AddDirFilters(float p[6][6], float phase_x_frac, float phase_y_frac, int phase_x_frac_int, int phase_y_frac_int, vec4 w)
{
float f = 0.f;
if (w.x > 0.0f)
{
// 0 deg filter
float interp0Deg[6];
{
for (int i = 0; i < 6; ++i)
{
interp0Deg[i] = lerp(p[i][2], p[i][3], phase_x_frac);
}
}
f += EvalPoly6(interp0Deg, phase_y_frac_int) * w.x;
}
if (w.y > 0.0f)
{
// 90 deg filter
float interp90Deg[6];
{
for (int i = 0; i < 6; ++i)
{
interp90Deg[i] = lerp(p[2][i], p[3][i], phase_y_frac);
}
}
f += EvalPoly6(interp90Deg, phase_x_frac_int) * w.y;
}
if (w.z > 0.0f)
{
//45 deg filter
float pphase_b45;
pphase_b45 = 0.5f + 0.5f * (phase_x_frac - phase_y_frac);
float temp_interp45Deg[7];
temp_interp45Deg[1] = lerp(p[2][1], p[1][2], pphase_b45);
temp_interp45Deg[3] = lerp(p[3][2], p[2][3], pphase_b45);
temp_interp45Deg[5] = lerp(p[4][3], p[3][4], pphase_b45);
{
pphase_b45 = pphase_b45 - 0.5f;
float a = (pphase_b45 >= 0.f) ? p[0][2] : p[2][0];
float b = (pphase_b45 >= 0.f) ? p[1][3] : p[3][1];
float c = (pphase_b45 >= 0.f) ? p[2][4] : p[4][2];
float d = (pphase_b45 >= 0.f) ? p[3][5] : p[5][3];
temp_interp45Deg[0] = lerp(p[1][1], a, abs(pphase_b45));
temp_interp45Deg[2] = lerp(p[2][2], b, abs(pphase_b45));
temp_interp45Deg[4] = lerp(p[3][3], c, abs(pphase_b45));
temp_interp45Deg[6] = lerp(p[4][4], d, abs(pphase_b45));
}
float interp45Deg[6];
float pphase_p45 = phase_x_frac + phase_y_frac;
if (pphase_p45 >= 1)
{
for (int i = 0; i < 6; i++)
{
interp45Deg[i] = temp_interp45Deg[i + 1];
}
pphase_p45 = pphase_p45 - 1;
}
else
{
for (int i = 0; i < 6; i++)
{
interp45Deg[i] = temp_interp45Deg[i];
}
}
f += EvalPoly6(interp45Deg, int(pphase_p45 * 64)) * w.z;
}
if (w.w > 0.0f)
{
//135 deg filter
float pphase_b135 = 0.5f * (phase_x_frac + phase_y_frac);
float temp_interp135Deg[7];
temp_interp135Deg[1] = lerp(p[3][1], p[4][2], pphase_b135);
temp_interp135Deg[3] = lerp(p[2][2], p[3][3], pphase_b135);
temp_interp135Deg[5] = lerp(p[1][3], p[2][4], pphase_b135);
{
pphase_b135 = pphase_b135 - 0.5f;
float a = (pphase_b135 >= 0.f) ? p[5][2] : p[3][0];
float b = (pphase_b135 >= 0.f) ? p[4][3] : p[2][1];
float c = (pphase_b135 >= 0.f) ? p[3][4] : p[1][2];
float d = (pphase_b135 >= 0.f) ? p[2][5] : p[0][3];
temp_interp135Deg[0] = lerp(p[4][1], a, abs(pphase_b135));
temp_interp135Deg[2] = lerp(p[3][2], b, abs(pphase_b135));
temp_interp135Deg[4] = lerp(p[2][3], c, abs(pphase_b135));
temp_interp135Deg[6] = lerp(p[1][4], d, abs(pphase_b135));
}
float interp135Deg[6];
float pphase_p135 = 1 + (phase_x_frac - phase_y_frac);
if (pphase_p135 >= 1)
{
for (int i = 0; i < 6; ++i)
{
interp135Deg[i] = temp_interp135Deg[i + 1];
}
pphase_p135 = pphase_p135 - 1;
}
else
{
for (int i = 0; i < 6; ++i)
{
interp135Deg[i] = temp_interp135Deg[i];
}
}
f += EvalPoly6(interp135Deg, int(pphase_p135 * 64)) * w.w;
}
return f;
}
void hook()
{
uvec2 blockIdx = gl_WorkGroupID.xy;
uint threadIdx = gl_LocalInvocationID.x;
// Figure out the range of pixels from input image that would be needed to be loaded for this thread-block
int dstBlockX = int(NIS_BLOCK_WIDTH * blockIdx.x);
int dstBlockY = int(NIS_BLOCK_HEIGHT * blockIdx.y);
const int srcBlockStartX = int(floor((dstBlockX + 0.5f) * kScaleX - 0.5f));
const int srcBlockStartY = int(floor((dstBlockY + 0.5f) * kScaleY - 0.5f));
const int srcBlockEndX = int(ceil((dstBlockX + NIS_BLOCK_WIDTH + 0.5f) * kScaleX - 0.5f));
const int srcBlockEndY = int(ceil((dstBlockY + NIS_BLOCK_HEIGHT + 0.5f) * kScaleY - 0.5f));
int numTilePixelsX = srcBlockEndX - srcBlockStartX + kSupportSize - 1;
int numTilePixelsY = srcBlockEndY - srcBlockStartY + kSupportSize - 1;
// round-up load region to even size since we're loading in 2x2 batches
numTilePixelsX += numTilePixelsX & 0x1;
numTilePixelsY += numTilePixelsY & 0x1;
const int numTilePixels = numTilePixelsX * numTilePixelsY;
// calculate the equivalent values for the edge map
const int numEdgeMapPixelsX = numTilePixelsX - kSupportSize + 2;
const int numEdgeMapPixelsY = numTilePixelsY - kSupportSize + 2;
const int numEdgeMapPixels = numEdgeMapPixelsX * numEdgeMapPixelsY;
// fill in input luma tile (shPixelsY) in batches of 2x2 pixels
// we use texture gather to get extra support necessary
// to compute 2x2 edge map outputs too
{
for (uint i = threadIdx * 2; i < uint(numTilePixels) >> 1; i += NIS_THREAD_GROUP_SIZE * 2)
{
uint py = (i / numTilePixelsX) * 2;
uint px = i % numTilePixelsX;
// 0.5 to be in the center of texel
// - (kSupportSize - 1) / 2 to shift by the kernel support size
float kShift = 0.5f - (kSupportSize - 1) / 2;
const float tx = (srcBlockStartX + px + kShift) * kSrcNormX;
const float ty = (srcBlockStartY + py + kShift) * kSrcNormY;
float p[2][2];
#ifdef HOOKED_gather
{
const vec4 sY = HOOKED_gather(vec2(tx, ty), 0);
p[0][0] = sY.w;
p[0][1] = sY.z;
p[1][0] = sY.x;
p[1][1] = sY.y;
}
#else
for (int j = 0; j < 2; j++)
{
for (int k = 0; k < 2; k++)
{
const float px = HOOKED_tex(vec2(tx + k * kSrcNormX, ty + j * kSrcNormY)).r;
p[j][k] = px;
}
}
#endif
const uint idx = py * kTilePitch + px;
shPixelsY[idx] = float(p[0][0]);
shPixelsY[idx + 1] = float(p[0][1]);
shPixelsY[idx + kTilePitch] = float(p[1][0]);
shPixelsY[idx + kTilePitch + 1] = float(p[1][1]);
}
}
groupMemoryBarrier();
barrier();
{
// fill in the edge map of 2x2 pixels
for (uint i = threadIdx * 2; i < uint(numEdgeMapPixels) >> 1; i += NIS_THREAD_GROUP_SIZE * 2)
{
uint py = (i / numEdgeMapPixelsX) * 2;
uint px = i % numEdgeMapPixelsX;
const uint edgeMapIdx = py * kEdgeMapPitch + px;
uint tileCornerIdx = (py+1) * kTilePitch + px + 1;
float p[4][4];
for (int j = 0; j < 4; j++)
{
for (int k = 0; k < 4; k++)
{
p[j][k] = shPixelsY[tileCornerIdx + j * kTilePitch + k];
}
}
shEdgeMap[edgeMapIdx] = vec4(GetEdgeMap(p, 0, 0));
shEdgeMap[edgeMapIdx + 1] = vec4(GetEdgeMap(p, 0, 1));
shEdgeMap[edgeMapIdx + kEdgeMapPitch] = vec4(GetEdgeMap(p, 1, 0));
shEdgeMap[edgeMapIdx + kEdgeMapPitch + 1] = vec4(GetEdgeMap(p, 1, 1));
}
}
LoadFilterBanksSh(int(threadIdx), NIS_THREAD_GROUP_SIZE);
groupMemoryBarrier();
barrier();
// output coord within a tile
const ivec2 pos = ivec2(uint(threadIdx) % uint(NIS_BLOCK_WIDTH), uint(threadIdx) / uint(NIS_BLOCK_WIDTH));
// x coord inside the output image
const int dstX = dstBlockX + pos.x;
// x coord inside the input image
const float srcX = (0.5f + dstX) * kScaleX - 0.5f;
// nearest integer part
const int px = int(floor(srcX) - srcBlockStartX);
// fractional part
const float fx = srcX - floor(srcX);
// discretized phase
const int fx_int = int(fx * kPhaseCount);
for (int k = 0; k < NIS_BLOCK_WIDTH * NIS_BLOCK_HEIGHT / NIS_THREAD_GROUP_SIZE; ++k)
{
// y coord inside the output image
const int dstY = dstBlockY + pos.y + k * (NIS_THREAD_GROUP_SIZE / NIS_BLOCK_WIDTH);
// y coord inside the input image
const float srcY = (0.5f + dstY) * kScaleY - 0.5f;
// nearest integer part
const int py = int(floor(srcY) - srcBlockStartY);
// fractional part
const float fy = srcY - floor(srcY);
// discretized phase
const int fy_int = int(fy * kPhaseCount);
// generate weights for directional filters
const int startEdgeMapIdx = py * kEdgeMapPitch + px;
vec4 edge[2][2];
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
// need to shift edge map sampling since it's a 2x2 centered inside 6x6 grid
edge[i][j] = shEdgeMap[startEdgeMapIdx + (i * kEdgeMapPitch) + j];
}
}
const vec4 w = GetInterpEdgeMap(edge, fx, fy) * NIS_SCALE_INT;
// load 6x6 support to regs
const int startTileIdx = py * kTilePitch + px;
float p[6][6];
{
for (int i = 0; i < 6; ++i)
{
for (int j = 0; j < 6; ++j)
{
p[i][j] = shPixelsY[startTileIdx + i * kTilePitch + j];
}
}
}
// weigth for luma
const float baseWeight = NIS_SCALE_FLOAT - w.x - w.y - w.z - w.w;
// final luma is a weighted product of directional & normal filters
float opY = 0;
// get traditional scaler filter output
opY += FilterNormal(p, fx_int, fy_int) * baseWeight;
// get directional filter bank output
opY += AddDirFilters(p, fx, fy, fx_int, fy_int, w);
// do bilinear tap for luma upscaling
vec4 op = HOOKED_tex(vec2((srcX + 0.5f) * kSrcNormX, (srcY + 0.5f) * kSrcNormY));
const float corr = opY * (1.0f / NIS_SCALE_FLOAT) - op.r;
op.x += corr;
imageStore(out_image, ivec2(dstX, dstY), op);
}
}
//!TEXTURE coef_scaler
//!SIZE 2 64
//!FORMAT rgba32f
//!FILTER NEAREST
00000000000000000000803f0000000000000000000000000000000000000000ed0d3e3ba91350bc0000803fd044583c89d25ebb0000000000000000000000003b70ce3b16fbcbbcb29d7f3f645ddc3c89d2debb000000000000000000000000e02d103c98dd13bda4df7e3fe7fb293d55c128bc6f12033a00000000000000005bb13f3c812642bd5b427e3ff931663d1ea768bc6f12033a00000000000000001ea7683cfaed6bbdfb5c7d3fbc05923d744694bc6f12033a0000000000000000b9fc873c03098abda3017c3fc5feb23d5839b4bc6f12833a0000000000000000075f983cbf0e9cbdfa7e7a3ff4fdd43dd044d8bca69bc43a00000000000000009eefa73c7b14aebdde02793f22fdf63d4850fcbc6f12033b0000000000000000ec51b83ced0dbebd22fd763f4d840d3ee02d10bd52491d3b0000000000000000efc9c33c5f07cebdb81e753f098a1f3e9c3322bded0d3e3b0000000000000000a913d03c88f4dbbd01de723fa1f8313e7dd033bd89d25e3b0000000000000000d044d83cf90fe9bd4e62703f9487453e82e247bde02d903b0000000000000000d3bce33cb3eaf3bd849e6d3f50fc583e88f45bbd2e90a03b0000000000000000faedeb3cdbf9febd83c06a3f448b6c3e44fa6dbdca54c13b00000000000000008e06f03c6f8104be82e2673f1283803e250681bd3b70ce3b0000000000000000b537f83ccc7f08be6f81643f83c08a3e280f8bbdd734ef3b00000000000000004850fc3c16fb0bbe97ff603f7d3f953e2b1895bdb9fc073c00000000000000004850fc3c60760fbe849e5d3f77be9f3ec0ec9ebd075f183c00000000000000006e34003dbc0512beecc0593ffa7eaa3ec3f5a8bd55c1283c00000000000000006e34003dcff713bec6dc553f7d3fb53ec5feb2bd3480373c00000000000000006e34003d068115bea5bd513f8941c03ec807bdbd82e2473c00000000000000006e34003d2b8716befb5c4d3f0c02cb3ea60ac6bdf775603c00000000000000004850fc3c197317be151d493fa245d63ea913d0bdd7346f3c0000000000000000b537f83c197317be34a2443f933ae13e8716d9bd24977f3c0000000000000000211ff43c197317bec520403f9f3cec3e6519e2bdb9fc873c00000000000000008e06f03c2b8716be083d3b3fab3ef73ed5e7eabd7446943c0000000000000000faedeb3c068115be143f363f2041013ffc18f3bde3a59b3c0000000000000000d3bce33ccff713bee561313f27c2063fb515fbbd0ad7a33c000000000000000040a4df3cce8812be68222c3f2d430c3f250601bec520b03c0000000000000000d044d83c857c10bee71d273fa5bd113f810405beec51b83c0000000000000000a913d03c5f070ebe6ade213fe71d173fb9fc07be5bb1bf3c000000000000000082e2c73cf1f40abe287e1c3f287e1c3ff1f40abe82e2c73c00000000000000005bb1bf3cb9fc07bee71d173f6ade213f5f070ebea913d03c0000000000000000ec51b83c810405bea5bd113fe71d273f857c10bed044d83c0000000000000000c520b03c250601be2d430c3f68222c3fce8812be40a4df3c00000000000000000ad7a33cb515fbbd27c2063fe561313fcff713bed3bce33c0000000000000000e3a59b3cfc18f3bd2041013f143f363f068115befaedeb3c00000000000000007446943cd5e7eabdab3ef73e083d3b3f2b8716be8e06f03c0000000000000000b9fc873c6519e2bd9f3cec3ec520403f197317be211ff43c000000000000000024977f3c8716d9bd933ae13e34a2443f197317beb537f83c0000000000000000d7346f3ca913d0bda245d63e151d493f197317be4850fc3c0000000000000000f775603ca60ac6bd0c02cb3efb5c4d3f2b8716be6e34003d000000000000000082e2473cc807bdbd8941c03ea5bd513f068115be6e34003d00000000000000003480373cc5feb2bd7d3fb53ec6dc553fcff713be6e34003d000000000000000055c1283cc3f5a8bdfa7eaa3eecc0593fbc0512be6e34003d0000000000000000075f183cc0ec9ebd77be9f3e849e5d3f60760fbe4850fc3c0000000000000000b9fc073c2b1895bd7d3f953e97ff603f16fb0bbe4850fc3c0000000000000000d734ef3b280f8bbd83c08a3e6f81643fcc7f08beb537f83c00000000000000003b70ce3b250681bd1283803e82e2673f6f8104be8e06f03c0000000000000000ca54c13b44fa6dbd448b6c3e83c06a3fdbf9febdfaedeb3c00000000000000002e90a03b88f45bbd50fc583e849e6d3fb3eaf3bdd3bce33c0000000000000000e02d903b82e247bd9487453e4e62703ff90fe9bdd044d83c000000000000000089d25e3b7dd033bda1f8313e01de723f88f4dbbda913d03c0000000000000000ed0d3e3b9c3322bd098a1f3eb81e753f5f07cebdefc9c33c000000000000000052491d3be02d10bd4d840d3e22fd763fed0dbebdec51b83c00000000000000006f12033b4850fcbc22fdf63dde02793f7b14aebd9eefa73c0000000000000000a69bc43ad044d8bcf4fdd43dfa7e7a3fbf0e9cbd075f983c00000000000000006f12833a5839b4bcc5feb23da3017c3f03098abdb9fc873c00000000000000006f12033a744694bcbc05923dfb5c7d3ffaed6bbd1ea7683c00000000000000006f12033a1ea768bcf931663d5b427e3f812642bd5bb13f3c00000000000000006f12033a55c128bce7fb293da4df7e3f98dd13bde02d103c00000000000000000000000089d2debb645ddc3cb29d7f3f16fbcbbc3b70ce3b00000000000000000000000089d25ebbd044583c0000803fa91350bced0d3e3b0000000000000000
//!TEXTURE coef_usm
//!SIZE 2 64
//!FORMAT rgba32f
//!FILTER NEAREST
0000000027a019bf27a0993f27a019bf00000000000000000000000000000000ed0d3e3b1ac01bbf006f993fe71d17bfed0d3ebb0000000000000000000000002e90a03bfb5c1dbff90f993fe63f14bf89d2debb6f12033a0000000000000000d734ef3b1b9e1ebf2731983fd3de10bf55c128bc000000000000000000000000075f183cb29d1fbfcb10973fff210dbffe6577bc0000000000000000000000003480373c4e6220bf48bf953fde0209bf77be9fbc6f12033a000000000000000082e2473c128320bfe63f943f34a204bf3d2cd4bc6f12033a00000000000000001ea7683cd3de20bfbe9f923fc52000bfdcd701bd6f12033a000000000000000024977f3c4e6220bfa54e903f7d3ff5be091b1ebd6f12033a0000000000000000b9fc873cb29d1fbf6ff08d3fe7fbe9be5af539bd6f12833a0000000000000000e02d903c20631ebf4f408b3fe483debe3ee859bd6f12833a00000000000000007446943cff211dbf696f883fbc05d2be6de77bbda69bc43a0000000000000000e3a59b3ccc5d1bbf1b2f853ff8c2c4be4df38ebda69bc43a000000000000000077be9f3cecc019bf910f823f22fdb6be5305a3bd6f12033b00000000000000000ad7a33cbec117bfc4427d3f423ea8be10e9b7bd52491d3b00000000000000000ad7a33cf4fd14bf7d3f753f50fc98be3b01cdbded0d3e3b00000000000000000ad7a33c05a312bf0de06d3f5eba89be6519e2bd89d25e3b00000000000000000ad7a33c3bdf0fbf8fc2653fb37b72beb515fbbd24977f3b00000000000000009eefa73cb1bf0cbfc4425d3faa8251bef08509bee02d903b00000000000000000ad7a33c637f09bf6f81543f69002fbe190416be2e90a03b000000000000000077be9f3c4f1e06bfcc5d4b3f16fb0bbe418222be7cf2b03b000000000000000077be9f3c3cbd02bf4182423fce19d1bda08930beca54c13b0000000000000000e3a59b3c5b42febe151d393f4bea84bddbf93ebe3b70ce3b0000000000000000075f983c99bbf6bef2412f3ffaedebbc287e4cbe89d2de3b0000000000000000075f983c6900efbe4260253f075f183cac8b5bbed734ef3b0000000000000000e02d903c27c2e6be0c021b3fca32443dfa7e6abeb9fc073c00000000000000004d158c3c77bedfbea5bd113f57ecaf3d6c787abee02d103c000000000000000026e4833c22fdd6beab3e073f1283003e810485be2e90203c000000000000000026e4833cf241cfbe7502fa3ed578293e3b018dbe55c1283c0000000000000000fe65773cb003c7be143fe63e97ff503ef4fd94be0e4f2f3c00000000000000001ea7683cd200bebe857cd03e6c787a3eadfa9cbe5bb13f3c0000000000000000f775603c1904b6bea301bc3ebc05923e0b46a5be82e2473c0000000000000000d044583cd6c5adbeb003a73eb003a73ed6c5adbed044583c000000000000000082e2473c0b46a5bebc05923ea301bc3e1904b6bef775603c00000000000000005bb13f3cadfa9cbe6c787a3e857cd03ed200bebe1ea7683c00000000000000000e4f2f3cf4fd94be97ff503e143fe63eb003c7befe65773c000000000000000055c1283c3b018dbed578293e7502fa3ef241cfbe26e4833c00000000000000002e90203c810485be1283003eab3e073f22fdd6be26e4833c0000000000000000e02d103c6c787abe57ecaf3da5bd113f77bedfbe4d158c3c0000000000000000b9fc073cfa7e6abeca32443d0c021b3f27c2e6bee02d903c0000000000000000d734ef3bac8b5bbe075f183c4260253f6900efbe075f983c000000000000000089d2de3b287e4cbefaedebbcf2412f3f99bbf6be075f983c00000000000000003b70ce3bdbf93ebe4bea84bd151d393f5b42febee3a59b3c0000000000000000ca54c13ba08930bece19d1bd4182423f3cbd02bf77be9f3c00000000000000007cf2b03b418222be16fb0bbecc5d4b3f4f1e06bf77be9f3c00000000000000002e90a03b190416be69002fbe6f81543f637f09bf0ad7a33c0000000000000000e02d903bf08509beaa8251bec4425d3fb1bf0cbf9eefa73c000000000000000024977f3bb515fbbdb37b72be8fc2653f3bdf0fbf0ad7a33c000000000000000089d25e3b6519e2bd5eba89be0de06d3f05a312bf0ad7a33c0000000000000000ed0d3e3b3b01cdbd50fc98be7d3f753ff4fd14bf0ad7a33c000000000000000052491d3b10e9b7bd423ea8bec4427d3fbec117bf0ad7a33c00000000000000006f12033b5305a3bd22fdb6be910f823fecc019bf77be9f3c0000000000000000a69bc43a4df38ebdf8c2c4be1b2f853fcc5d1bbfe3a59b3c0000000000000000a69bc43a6de77bbdbc05d2be696f883fff211dbf7446943c00000000000000006f12833a3ee859bde483debe4f408b3f20631ebfe02d903c00000000000000006f12833a5af539bde7fbe9be6ff08d3fb29d1fbfb9fc873c00000000000000006f12033a091b1ebd7d3ff5bea54e903f4e6220bf24977f3c00000000000000006f12033adcd701bdc52000bfbe9f923fd3de20bf1ea7683c00000000000000006f12033a3d2cd4bc34a204bfe63f943f128320bf82e2473c00000000000000006f12033a77be9fbcde0209bf48bf953f4e6220bf3480373c000000000000000000000000fe6577bcff210dbfcb10973fb29d1fbf075f183c00000000000000000000000055c128bcd3de10bf2731983f1b9e1ebfd734ef3b00000000000000006f12033a89d2debbe63f14bff90f993ffb5c1dbf2e90a03b000000000000000000000000ed0d3ebbe71d17bf006f993f1ac01bbfed0d3e3b0000000000000000

View file

@ -0,0 +1,214 @@
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 3.0 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library.
//!HOOK POSTKERNEL
//!BIND PREKERNEL
//!BIND HOOKED
//!SAVE L2
//!WIDTH NATIVE_CROPPED.w
//!WHEN NATIVE_CROPPED.h POSTKERNEL.h >
//!COMPONENTS 3
//!DESC SSimDownscaler L2 pass 1
#define axis 1
#define offset vec2(0,0)
#define MN(B,C,x) (x < 1.0 ? ((2.-1.5*B-(C))*x + (-3.+2.*B+C))*x*x + (1.-(B)/3.) : (((-(B)/6.-(C))*x + (B+5.*C))*x + (-2.*B-8.*C))*x+((4./3.)*B+4.*C))
#define Kernel(x) MN(.0, .5, abs(x))
#define taps 2.0
vec4 hook() {
vec2 base = PREKERNEL_pt * (PREKERNEL_pos * input_size + tex_offset);
float low = ceil((PREKERNEL_pos - taps*POSTKERNEL_pt) * input_size - offset + tex_offset - 0.5)[axis];
float high = floor((PREKERNEL_pos + taps*POSTKERNEL_pt) * input_size - offset + tex_offset - 0.5)[axis];
float W = 0.0;
vec4 avg = vec4(0);
vec2 pos = base;
for (float k = low; k <= high; k++) {
pos[axis] = PREKERNEL_pt[axis] * (k - offset[axis] + 0.5);
float rel = (pos[axis] - base[axis])*POSTKERNEL_size[axis];
float w = Kernel(rel);
vec4 tex = textureLod(PREKERNEL_raw, pos, 0.0) * PREKERNEL_mul;
avg += w * tex * tex;
W += w;
}
avg /= W;
return avg;
}
//!HOOK POSTKERNEL
//!BIND L2
//!BIND HOOKED
//!SAVE L2
//!WHEN NATIVE_CROPPED.w POSTKERNEL.w >
//!COMPONENTS 3
//!DESC SSimDownscaler L2 pass 2
#define axis 0
#define offset vec2(0,0)
#define MN(B,C,x) (x < 1.0 ? ((2.-1.5*B-(C))*x + (-3.+2.*B+C))*x*x + (1.-(B)/3.) : (((-(B)/6.-(C))*x + (B+5.*C))*x + (-2.*B-8.*C))*x+((4./3.)*B+4.*C))
#define Kernel(x) MN(.0, .5, abs(x))
#define taps 2.0
vec4 hook() {
float low = ceil((L2_pos - taps*POSTKERNEL_pt) * L2_size - offset - 0.5)[axis];
float high = floor((L2_pos + taps*POSTKERNEL_pt) * L2_size - offset - 0.5)[axis];
float W = 0.0;
vec4 avg = vec4(0);
vec2 pos = L2_pos;
for (float k = low; k <= high; k++) {
pos[axis] = L2_pt[axis] * (k - offset[axis] + 0.5);
float rel = (pos[axis] - L2_pos[axis])*POSTKERNEL_size[axis];
float w = Kernel(rel);
avg += w * textureLod(L2_raw, pos, 0.0) * L2_mul;
W += w;
}
avg /= W;
return avg;
}
//!HOOK POSTKERNEL
//!BIND HOOKED
//!BIND L2
//!SAVE MR
//!WHEN NATIVE_CROPPED.h POSTKERNEL.h >
//!COMPONENTS 4
//!DESC SSimDownscaler mean & R
#define oversharp 0.0
#define sigma_nsq 10. / (255.*255.)
#define locality 2.0
#define offset vec2(0,0)
#define Kernel(x) pow(1.0 / locality, abs(x))
#define taps 3.0
#define Luma(rgb) ( dot(rgb, vec3(0.2126, 0.7152, 0.0722)) )
mat3x3 ScaleH(vec2 pos) {
float low = ceil(-0.5*taps - offset)[0];
float high = floor(0.5*taps - offset)[0];
float W = 0.0;
mat3x3 avg = mat3x3(0);
for (float k = low; k <= high; k++) {
pos[0] = HOOKED_pos[0] + HOOKED_pt[0] * k;
float rel = k + offset[0];
float w = Kernel(rel);
vec3 L = POSTKERNEL_tex(pos).rgb;
avg += w * mat3x3(L, L*L, L2_tex(pos).rgb);
W += w;
}
avg /= W;
return avg;
}
vec4 hook() {
vec2 pos = HOOKED_pos;
float low = ceil(-0.5*taps - offset)[1];
float high = floor(0.5*taps - offset)[1];
float W = 0.0;
mat3x3 avg = mat3x3(0);
for (float k = low; k <= high; k++) {
pos[1] = HOOKED_pos[1] + HOOKED_pt[1] * k;
float rel = k + offset[1];
float w = Kernel(rel);
avg += w * ScaleH(pos);
W += w;
}
avg /= W;
float Sl = Luma(max(avg[1] - avg[0] * avg[0], 0.));
float Sh = Luma(max(avg[2] - avg[0] * avg[0], 0.));
return vec4(avg[0], mix(sqrt((Sh + sigma_nsq) / (Sl + sigma_nsq)) * (1. + oversharp), clamp(Sh / Sl, 0., 1.), int(Sl > Sh)));
}
//!HOOK POSTKERNEL
//!BIND HOOKED
//!BIND MR
//!WHEN NATIVE_CROPPED.h POSTKERNEL.h >
//!DESC SSimDownscaler final pass
#define locality 2.0
#define offset vec2(0,0)
#define Kernel(x) pow(1.0 / locality, abs(x))
#define taps 3.0
#define Gamma(x) ( pow(x, vec3(1.0/2.0)) )
#define GammaInv(x) ( pow(clamp(x, 0.0, 1.0), vec3(2.0)) )
mat3x3 ScaleH(vec2 pos) {
float low = ceil(-0.5*taps - offset)[0];
float high = floor(0.5*taps - offset)[0];
float W = 0.0;
mat3x3 avg = mat3x3(0);
for (float k = low; k <= high; k++) {
pos[0] = HOOKED_pos[0] + HOOKED_pt[0] * k;
float rel = k + offset[0];
float w = Kernel(rel);
vec4 MR = MR_tex(pos);
avg += w * mat3x3(MR.a*MR.rgb, MR.rgb, MR.aaa);
W += w;
}
avg /= W;
return avg;
}
vec4 hook() {
vec2 pos = HOOKED_pos;
float low = ceil(-0.5*taps - offset)[1];
float high = floor(0.5*taps - offset)[1];
float W = 0.0;
mat3x3 avg = mat3x3(0);
for (float k = low; k <= high; k++) {
pos[1] = HOOKED_pos[1] + HOOKED_pt[1] * k;
float rel = k + offset[1];
float w = Kernel(rel);
avg += w * ScaleH(pos);
W += w;
}
avg /= W;
vec4 L = POSTKERNEL_texOff(0);
return vec4(avg[1] + avg[2] * L.rgb - avg[0], L.a);
}

View file

@ -0,0 +1,203 @@
// SSimSuperRes by Shiandow
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 3.0 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library.
//!HOOK POSTKERNEL
//!BIND HOOKED
//!SAVE LOWRES
//!HEIGHT NATIVE_CROPPED.h
//!WHEN NATIVE_CROPPED.h OUTPUT.h <
//!COMPONENTS 4
//!DESC SSSR Downscaling I
#define axis 1
#define offset vec2(0,0)
#define MN(B,C,x) (x < 1.0 ? ((2.-1.5*B-(C))*x + (-3.+2.*B+C))*x*x + (1.-(B)/3.) : (((-(B)/6.-(C))*x + (B+5.*C))*x + (-2.*B-8.*C))*x+((4./3.)*B+4.*C))
#define Kernel(x) MN(0.334, 0.333, abs(x))
#define taps 2.0
#define Luma(rgb) dot(rgb*rgb, vec3(0.2126, 0.7152, 0.0722))
vec4 hook() {
float low = ceil((HOOKED_pos - taps/input_size) * HOOKED_size - offset - 0.5)[axis];
float high = floor((HOOKED_pos + taps/input_size) * HOOKED_size - offset - 0.5)[axis];
float W = 0.0;
vec4 avg = vec4(0);
vec2 pos = HOOKED_pos;
vec4 tex;
for (float k = low; k <= high; k++) {
pos[axis] = HOOKED_pt[axis] * (k - offset[axis] + 0.5);
float rel = (pos[axis] - HOOKED_pos[axis])*input_size[axis];
float w = Kernel(rel);
tex.rgb = textureLod(HOOKED_raw, pos, 0.0).rgb * HOOKED_mul;
tex.a = Luma(tex.rgb);
avg += w * tex;
W += w;
}
avg /= W;
return vec4(avg.rgb, max(abs(avg.a - Luma(avg.rgb)), 5e-7));
}
//!HOOK POSTKERNEL
//!BIND LOWRES
//!SAVE LOWRES
//!WIDTH NATIVE_CROPPED.w
//!HEIGHT NATIVE_CROPPED.h
//!WHEN NATIVE_CROPPED.w OUTPUT.w <
//!COMPONENTS 4
//!DESC SSSR Downscaling II
#define axis 0
#define offset vec2(0,0)
#define MN(B,C,x) (x < 1.0 ? ((2.-1.5*B-(C))*x + (-3.+2.*B+C))*x*x + (1.-(B)/3.) : (((-(B)/6.-(C))*x + (B+5.*C))*x + (-2.*B-8.*C))*x+((4./3.)*B+4.*C))
#define Kernel(x) MN(0.334, 0.333, abs(x))
#define taps 2.0
#define Luma(rgb) dot(rgb*rgb, vec3(0.2126, 0.7152, 0.0722))
vec4 hook() {
float low = ceil((LOWRES_pos - taps/input_size) * LOWRES_size - offset - 0.5)[axis];
float high = floor((LOWRES_pos + taps/input_size) * LOWRES_size - offset - 0.5)[axis];
float W = 0.0;
vec4 avg = vec4(0);
vec2 pos = LOWRES_pos;
vec4 tex;
for (float k = low; k <= high; k++) {
pos[axis] = LOWRES_pt[axis] * (k - offset[axis] + 0.5);
float rel = (pos[axis] - LOWRES_pos[axis])*input_size[axis];
float w = Kernel(rel);
tex.rgb = textureLod(LOWRES_raw, pos, 0.0).rgb * LOWRES_mul;
tex.a = Luma(tex.rgb);
avg += w * tex;
W += w;
}
avg /= W;
return vec4(avg.rgb, max(abs(avg.a - Luma(avg.rgb)), 5e-7) + LOWRES_texOff(0).a);
}
//!HOOK POSTKERNEL
//!BIND PREKERNEL
//!BIND LOWRES
//!SAVE var
//!WIDTH NATIVE_CROPPED.w
//!HEIGHT NATIVE_CROPPED.h
//!WHEN NATIVE_CROPPED.h OUTPUT.h <
//!COMPONENTS 2
//!DESC SSSR var
#define spread 1.0 / 4.0
#define GetL(x,y) PREKERNEL_tex(PREKERNEL_pt * (PREKERNEL_pos * input_size + tex_offset + vec2(x,y))).rgb
#define GetH(x,y) LOWRES_texOff(vec2(x,y)).rgb
#define Luma(rgb) dot(rgb*rgb, vec3(0.2126, 0.7152, 0.0722))
#define diff(x,y) vec2(Luma((GetL(x,y) - meanL)), Luma((GetH(x,y) - meanH)))
vec4 hook() {
vec3 meanL = GetL(0,0);
vec3 meanH = GetH(0,0);
for (int X=-1; X<=1; X+=2) {
meanL += GetL(X,0) * spread;
meanH += GetH(X,0) * spread;
}
for (int Y=-1; Y<=1; Y+=2) {
meanL += GetL(0,Y) * spread;
meanH += GetH(0,Y) * spread;
}
meanL /= (1.0 + 4.0*spread);
meanH /= (1.0 + 4.0*spread);
vec2 var = diff(0,0);
for (int X=-1; X<=1; X+=2)
var += diff(X,0) * spread;
for (int Y=-1; Y<=1; Y+=2)
var += diff(0,Y) * spread;
return vec4(max(var / (1.0 + 4.0*spread), vec2(1e-6)), 0, 0);
}
//!HOOK POSTKERNEL
//!BIND HOOKED
//!BIND PREKERNEL
//!BIND LOWRES
//!BIND var
//!WHEN NATIVE_CROPPED.h OUTPUT.h <
//!DESC SSSR final pass
#define oversharp 0.5
// -- Window Size --
#define taps 3.0
#define even (taps - 2.0 * floor(taps / 2.0) == 0.0)
#define minX int(1.0-ceil(taps/2.0))
#define maxX int(floor(taps/2.0))
#define Kernel(x) cos(acos(-1.0)*(x)/taps) // Hann kernel
// -- Input processing --
#define var(x,y) var_tex(var_pt * (pos + vec2(x,y) + 0.5)).rg
#define GetL(x,y) PREKERNEL_tex(PREKERNEL_pt * (pos + tex_offset + vec2(x,y) + 0.5)).rgb
#define GetH(x,y) LOWRES_tex(LOWRES_pt * (pos + vec2(x,y) + 0.5))
#define Luma(rgb) dot(rgb*rgb, vec3(0.2126, 0.7152, 0.0722))
vec4 hook() {
vec4 c0 = HOOKED_texOff(0);
vec2 pos = HOOKED_pos * LOWRES_size - vec2(0.5);
vec2 offset = pos - (even ? floor(pos) : round(pos));
pos -= offset;
vec2 mVar = vec2(0.0);
for (int X=-1; X<=1; X++)
for (int Y=-1; Y<=1; Y++) {
vec2 w = clamp(1.5 - abs(vec2(X,Y)), 0.0, 1.0);
mVar += w.r * w.g * vec2(GetH(X,Y).a, 1.0);
}
mVar.r /= mVar.g;
// Calculate faithfulness force
float weightSum = 0.0;
vec3 diff = vec3(0);
for (int X = minX; X <= maxX; X++)
for (int Y = minX; Y <= maxX; Y++)
{
float R = (-1.0 - oversharp) * sqrt(var(X,Y).r / (var(X,Y).g + mVar.r));
vec2 krnl = Kernel(vec2(X,Y) - offset);
float weight = krnl.r * krnl.g / (Luma((c0.rgb - GetH(X,Y).rgb)) + GetH(X,Y).a);
diff += weight * (GetL(X,Y) + GetH(X,Y).rgb * R + (-1.0 - R) * (c0.rgb));
weightSum += weight;
}
diff /= weightSum;
c0.rgb = ((c0.rgb) + diff);
return c0;
}

View file

@ -0,0 +1,418 @@
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//!DESC NNEDI3 (double_y, nns128, win8x4)
//!HOOK LUMA
//!BIND HOOKED
//!SAVE nnedi3_int
//!WHEN HOOKED.h OUTPUT.h / 0.707106 <
float nnedi3(vec4 samples[8]) {
float sum = 0.0, sumsq = 0.0;
for (int i = 0; i < 8; i++) {
sum += dot(samples[i], vec4(1.0));
sumsq += dot(samples[i], samples[i]);
}
float mstd0 = sum / 32.0;
float mstd1 = sumsq / 32.0 - mstd0 * mstd0;
float mstd2 = mix(0.0, inversesqrt(mstd1), mstd1 >= 1.192092896e-7);
mstd1 *= mstd2;
float vsum = 0.0, wsum = 0.0, sum1, sum2;
#define T(x) intBitsToFloat(x)
#define W(i,w0,w1,w2,w3) dot(samples[i],vec4(T(w0),T(w1),T(w2),T(w3)))
#define WS(w0,w1) sum1 = exp(sum1 * mstd2 + T(w0)); sum2 = sum2 * mstd2 + T(w1); wsum += sum1; vsum += sum1*(sum2/(1.0+abs(sum2)));
sum1=W(0,-1106336704,-1104338237,1041734649,-1112016931)+W(1,-1134422686,-1108550970,-1135080854,-1117701445)+W(2,-1097058997,1036063029,1053379177,-1099451832)+W(3,-1096794255,1068454954,1068510503,-1092648385)+W(4,-1096428577,1045547931,-1114733521,-1101312270)+W(5,-1108910446,-1102009308,-1146436468,-1118387353)+W(6,-1110459731,-1122481515,-1107441476,-1118789516)+W(7,-1101174078,1017740065,-1113618698,-1107281979);sum2=W(0,-1107960738,1034572820,-1105088633,-1147785184)+W(1,1022891960,1003346080,-1103397515,1035529310)+W(2,-1112828174,-1096749055,1056062200,-1105585021)+W(3,-1099542471,1067566060,-1127174872,1034766166)+W(4,1028527356,-1090311143,1048792675,-1117109292)+W(5,-1124169384,1028295012,-1106700271,-1116900804)+W(6,1003609248,-1101382023,1033154740,-1121486356)+W(7,1019646072,-1102277943,1037356874,-1114899026);WS(-1075683047,-1087125913);
sum1=W(0,1042687663,1052977914,-1087267578,1041384601)+W(1,1034752002,1046022844,-1097639380,1034807969)+W(2,1020877136,1051043629,-1087388173,1037740431)+W(3,1043598702,1049374510,-1095656786,1044538321)+W(4,1032834596,1044576234,-1108370107,-1113942663)+W(5,1049059763,-1108783446,-1101488315,1043415765)+W(6,1041786741,-1105784362,-1111228387,1011031587)+W(7,1050972591,-1089957133,-1108747496,1034104676);sum2=W(0,-1129327146,-1112916736,-1109246006,-1168639863)+W(1,-1149557934,-1120018795,1012425107,-1122303521)+W(2,1027469999,-1105442406,1044505132,-1114911422)+W(3,-1116270499,1056936993,1054092693,-1109477794)+W(4,-1107094547,1036431709,1015080154,-1122292075)+W(5,-1114668504,1029410453,-1102188513,1038663029)+W(6,-1136313139,-1126491682,-1123974759,-1124857486)+W(7,-1115408970,-1112281372,-1115235380,1004657207);WS(1042212664,-1102203684);
sum1=W(0,-1140902818,1040147851,1035472140,-1111794429)+W(1,1019874102,-1104962202,1045102086,1033944684)+W(2,-1138465404,-1102798136,1044852023,-1122108180)+W(3,1041713132,-1085739950,1052255697,1042129278)+W(4,1031911135,-1090423514,1050093153,1026181805)+W(5,1032244040,-1096835716,-1114874577,1045351411)+W(6,-1122713961,1015091005,-1125530488,1045226448)+W(7,1032066151,-1100137137,1025859399,1037723887);sum2=W(0,1025219442,-1109152196,1026944460,-1136900198)+W(1,-1119436548,-1122141349,1040314652,-1112897189)+W(2,1041363772,1032935700,-1124096755,-1144192892)+W(3,1026037858,-1095545125,-1132954458,1046665648)+W(4,-1106963956,1029288712,1063106013,-1112667488)+W(5,-1148187164,1048235476,1044093468,-1091150222)+W(6,-1115265228,1017807431,-1119277141,-1098670428)+W(7,1027834104,-1124373883,-1115291573,-1099776205);WS(-1106435384,1038338229);
sum1=W(0,1040095954,1057302312,-1085504617,1038469973)+W(1,1019822615,1048464174,-1109673285,1008999077)+W(2,1037825128,1048602738,-1088007186,1047759857)+W(3,1041126536,1046177110,-1089584127,1042217259)+W(4,1042659628,-1113571175,-1112427435,-1122205838)+W(5,1046281616,1010729037,-1099904421,1042535855)+W(6,1025627498,-1116720143,985851280,1020820192)+W(7,1052688116,-1090676327,-1109333660,1034203799);sum2=W(0,1016257202,1059204215,1078138204,1045786159)+W(1,1025056091,1059357388,1057901024,-1115583727)+W(2,-1123344133,-1096239491,-1075026282,1040463834)+W(3,-1117490597,-1080318626,-1073900782,1043123901)+W(4,-1139226916,-1097775023,1041808545,1021989454)+W(5,-1121712633,-1121076469,1040778731,-1105966927)+W(6,1032149092,-1108589001,1040543247,1015040126)+W(7,1018740994,1042934709,1013253724,-1147555881);WS(-1079558823,-1098708322);
sum1=W(0,-1107155318,-1102044491,-1157836704,1018716763)+W(1,1025234303,-1098872409,1050456336,1032647774)+W(2,1015859078,-1087610848,1055919296,1043448582)+W(3,1036194249,-1086405173,1051086989,1041211303)+W(4,-1109510417,1049149960,1049231261,1032229161)+W(5,-1106597869,-1113006787,1047976577,-1113988824)+W(6,-1106784003,1034815041,1037659280,-1114873522)+W(7,-1107821257,-1109243348,1045770027,-1115826050);sum2=W(0,-1115121954,1038073794,-1128914993,-1116577465)+W(1,1012713185,-1114116718,1041575276,-1124395325)+W(2,-1120959275,1048906430,1074552079,1055266270)+W(3,979525395,-1089285214,-1076455267,1060162115)+W(4,1031308048,1044939824,-1081125046,-1098098687)+W(5,1023425822,960279117,-1109266711,1021768571)+W(6,1008898041,-1114246838,1028966618,-1124862202)+W(7,1015643115,-1116674868,-1116558128,1013382601);WS(1045132600,-1120782135);
sum1=W(0,-1105751784,1057393815,-1105555137,-1117651397)+W(1,-1105178898,1048859946,-1097544977,1030868229)+W(2,-1104184899,1059464001,-1093321826,-1113548192)+W(3,-1114219853,1046945589,-1096850414,-1114482291)+W(4,-1110381909,-1115358437,1045680426,-1100710867)+W(5,1038688878,-1101266388,1054674458,-1101910270)+W(6,-1129240105,1006928425,1040711722,-1109195062)+W(7,1028338913,1001553277,1051440502,-1106616547);sum2=W(0,1017265392,1041015042,-1100279165,1015388608)+W(1,-1109811903,1031690548,-1110095441,-1118750728)+W(2,1023756444,1041543835,-1121800962,1018680528)+W(3,-1113627340,1061785433,1052269299,-1143924414)+W(4,1014378799,-1112539854,1027655784,-1099334823)+W(5,-1145950526,1033767962,-1103181542,1020584168)+W(6,-1129429444,-1111764061,-1110834939,-1108053853)+W(7,1013677319,-1098545742,-1106577514,1036964648);WS(1052573852,-1122511817);
sum1=W(0,-1122539822,-1107197216,-1123108403,1051517474)+W(1,1036520122,-1104137920,1038549849,1023654291)+W(2,-1150669710,-1095755763,1032946604,1039184399)+W(3,-1131456914,-1089160552,1050538028,1041388597)+W(4,1027717464,-1090293588,1052989852,-1168884669)+W(5,1032118773,-1090056564,1057974832,1033029075)+W(6,1021054902,-1092174087,1053464075,1028526105)+W(7,1030809195,-1086001910,1057808582,1041880934);sum2=W(0,-1085894681,-1108201039,1070882268,-1081052443)+W(1,1038192816,-1090848333,-1093216289,-1102549623)+W(2,-1098445483,1052221636,1067999858,-1087793608)+W(3,-1102898046,1071505414,1073865984,-1090403840)+W(4,1008806191,-1098981857,1058878464,-1095780376)+W(5,1050638036,-1086351349,-1083525828,1055133376)+W(6,-1102617523,-1096799400,-1107159037,-1096503933)+W(7,1057325981,-1088620184,-1083206959,1053790412);WS(-1073219892,-1080326418);
sum1=W(0,-1114077580,-1101602915,1057495924,-1151047116)+W(1,-1142635506,-1103425331,1053716920,-1114784094)+W(2,-1142955026,-1090278522,1055741332,-1111276924)+W(3,-1123237842,-1092662145,1051447237,-1121668701)+W(4,1038107057,-1091646784,1052494629,1000704387)+W(5,-1103324917,-1114692451,1049044089,-1109204280)+W(6,1026598572,-1101848592,1043005848,1010568075)+W(7,-1095875035,1038718196,1047828379,-1156952092);sum2=W(0,-1121663397,-1095443331,-1067370736,1005231721)+W(1,-1116542136,1050195534,-1071776975,974104521)+W(2,1042431779,-1123573301,1068672794,-1111985184)+W(3,1037730633,-1100504352,1077012119,1047585075)+W(4,1010053773,1043186658,1070664889,1016528922)+W(5,-1137348615,-1102861372,1045361006,-1109020232)+W(6,1028087910,-1110454800,-1123945395,1037668055)+W(7,-1119025600,1040229501,1027642294,-1117277443);WS(-1130027456,1047744266);
sum1=W(0,1030328637,-1103440100,1050534604,-1130350917)+W(1,-1100312969,1043447132,1038395889,-1105733872)+W(2,1036569044,-1096543805,1037345619,1043114871)+W(3,1044449278,-1093151398,-1106526388,1022399622)+W(4,-1106699970,1024264999,-1115006287,1020228332)+W(5,1046212150,-1115860524,1035372917,1024836117)+W(6,-1104762293,1041344218,980910400,-1123108872)+W(7,-1124975021,1032410566,1044066628,-1112803412);sum2=W(0,1029880722,1033391383,-1137819024,-1114516031)+W(1,-1098453144,1041649400,-1137377888,1025620716)+W(2,1029103498,-1095624145,1040796761,1035240799)+W(3,1067660000,-1082091368,-1080643124,1066795978)+W(4,-1094604015,1056223691,-1102259819,-1098376459)+W(5,1046293202,1027973488,-1121978412,1036814117)+W(6,-1104816365,1034193475,-1148596400,-1107858514)+W(7,-1117927817,1034286113,1041009105,-1114981924);WS(1049012636,1037011386);
sum1=W(0,-1108102978,-1097922903,1049818257,1041216474)+W(1,1042768739,-1089977373,1052134241,-1106782690)+W(2,1036457352,-1083790961,1059747641,-1120768141)+W(3,-1105146600,1050515995,1062551839,975424142)+W(4,-1100621772,1053649082,-1088576433,1042971413)+W(5,-1100160944,1044221701,-1093385002,1047421135)+W(6,-1149100234,1020595485,-1108848982,-1142399358)+W(7,-1116535239,-1110188826,-1147628986,1034144007);sum2=W(0,-1130376652,-1109271051,-1098570547,1029552052)+W(1,-1109307779,1040605589,-1097221185,-1097745138)+W(2,998991648,-1117670218,-1087670872,-1101762859)+W(3,-1105231849,1068278024,1068017963,-1100990121)+W(4,-1124853008,-1099193318,-1103240593,-1094879980)+W(5,-1110904873,1035466738,1049832589,-1119653306)+W(6,1033926100,-1111928806,1018913792,-1099498770)+W(7,1012787248,1025845624,1035573068,1046656503);WS(-1099128120,1074104605);
sum1=W(0,1001695642,1031876531,-1106225286,1039516460)+W(1,-1114738061,1036082771,-1127447088,1037331996)+W(2,-1137881464,1049670772,-1114090766,1048871226)+W(3,1035838167,1045634202,-1084335000,1024672505)+W(4,1036976671,1039176783,-1092101927,-1111706306)+W(5,1043227732,1044499416,-1106295064,1040216275)+W(6,1024532056,-1115296143,-1108352670,1018355325)+W(7,1041576607,1036111714,-1103209586,-1129216251);sum2=W(0,-1125983803,1057121124,-1097673861,-1097055530)+W(1,1026289226,1048908439,-1081617292,-1105528539)+W(2,1003361806,1042597022,-1083990029,-1094090339)+W(3,1036989304,-1101738899,1066557847,1060807350)+W(4,-1121376018,-1101518001,1050089807,1045798092)+W(5,-1127516251,-1114490175,1021212715,1007168711)+W(6,999276462,1032222895,-1107462587,1021142275)+W(7,1020382491,-1111061815,1048167829,1024157832);WS(1043392312,-1114334171);
sum1=W(0,1041086874,1046571639,-1101297859,-1108043111)+W(1,1027676176,1051603231,-1100311555,1031499310)+W(2,1029494548,-1114765098,-1090719068,-1123479337)+W(3,1038182418,1063881062,-1092551191,1047470620)+W(4,1033375641,1036439434,-1093343060,1029157954)+W(5,1014428948,1039261900,-1095549099,-1113522785)+W(6,1016176348,1049353410,-1102133676,1032866554)+W(7,1036956537,1039119196,-1097401399,-1108903402);sum2=W(0,1032922039,-1110774431,1024080221,-1111786600)+W(1,1034144522,1041464609,1024001520,1038622987)+W(2,1035186417,-1089347840,-1102975683,-1098326560)+W(3,-1106146153,1063858171,1062496232,-1094555153)+W(4,995983013,-1103182741,-1104694448,-1110476474)+W(5,1014708981,-1105498679,1034761930,-1107944280)+W(6,-1118508182,1046443094,-1113235807,1045574278)+W(7,-1122673776,-1107403517,-1126790312,-1119406695);WS(1055141020,1060902337);
sum1=W(0,1034435725,1057965143,-1123568702,-1104499136)+W(1,-1133288704,1052483105,-1121795134,1006999415)+W(2,1026181508,1052696320,-1094115828,-1153162900)+W(3,1033934442,-1122504460,-1084201687,1029709087)+W(4,1030709219,1052884304,-1093347107,1036285529)+W(5,-1118188821,1049027177,-1096042081,-1155692311)+W(6,1027652318,1046782257,-1098441692,1013713298)+W(7,1035419593,1045790650,-1101051195,-1111952258);sum2=W(0,1043194323,-1070666261,-1098866335,-1101126135)+W(1,1017945729,-1075189642,-1106608294,1010301074)+W(2,992756489,1068575013,1051129947,-1107911121)+W(3,-1117717167,1076566585,1049134123,1046700061)+W(4,1023440269,1056539999,1047751107,1020103457)+W(5,-1108161809,-1098049115,-1097073139,1026363561)+W(6,1034607052,1036076910,1011007330,1035420194)+W(7,-1115924363,-1112346970,1016205049,-1137869730);WS(-1090579868,1070279725);
sum1=W(0,1032329895,1048430680,-1101560157,-1129281319)+W(1,-1102328821,1050349544,-1091335294,1012204235)+W(2,-1113203900,1052980239,1039656780,1033674783)+W(3,-1098061089,1057014372,-1084573078,-1115372202)+W(4,-1105344998,1057962188,-1103450436,-1108117804)+W(5,1034205973,1038273502,1043587871,-1111454739)+W(6,-1106552005,1046276062,-1098888483,-1115265901)+W(7,1041435478,1049777060,1002064136,-1109943484);sum2=W(0,987673807,1027892228,-1103141235,1005138532)+W(1,1036995374,-1102736131,1049007178,1028221332)+W(2,-1095509641,1034852634,-1090760003,-1123669832)+W(3,-1094252408,1059241808,1060311666,-1128511149)+W(4,-1119095571,-1103859919,-1129798465,1032914452)+W(5,-1103179232,1043446486,-1100012675,1006285508)+W(6,1040985329,-1109795439,1051746582,-1122773902)+W(7,-1114181285,1004807604,-1113144024,987177167);WS(1058381774,-1086956646);
sum1=W(0,1005434106,-1096145742,1046241393,1026532260)+W(1,-1149835360,-1100460324,1039571170,-1120107684)+W(2,1034370117,-1096424577,1054608457,-1107524072)+W(3,1036055789,1033532617,-1110152984,-1123297125)+W(4,1007595428,1049990129,-1100950084,1032832748)+W(5,-1173712576,1042033667,-1103984787,1041584782)+W(6,-1122685332,-1147483724,-1122634471,-1111048693)+W(7,-1119060568,1021597150,1016207588,1023439817);sum2=W(0,1073050559,1049113865,1048373410,-1123382260)+W(1,1069067455,1035642194,-1101089925,1035361564)+W(2,-1096535796,-1105600932,1050248373,-1105239942)+W(3,-1073893027,-1114871718,-1113393188,1000972215)+W(4,-1077684470,-1104998692,1015693919,-1112223483)+W(5,1038335059,1034875990,1032989733,987872957)+W(6,994568047,1004288083,1024635942,1016564448)+W(7,-1109196141,1019116562,1041247426,1019016937);WS(1051792028,1027146209);
sum1=W(0,-1173418992,-1096555104,1048715847,1037767898)+W(1,1031492470,-1099279313,1043543405,1032372106)+W(2,1030866682,-1102472206,1045948678,1031937048)+W(3,-1111745573,-1086728512,1048944276,1030986133)+W(4,1037975597,-1098029143,1053562136,1035090980)+W(5,1032231158,-1099704976,1041023999,1038793940)+W(6,1021051177,-1107704157,1031959404,1031982829)+W(7,1029296729,-1088435526,1046674105,1043937550);sum2=W(0,1076285256,-1071495861,-1089164092,1024798548)+W(1,1067013205,-1080654015,1044446905,-1130255717)+W(2,1054912747,-1092768710,-1089831336,-1111620633)+W(3,-1103468782,1053690657,1049463752,-1129289568)+W(4,-1082179927,1062196550,-1116071286,1022374674)+W(5,-1086354611,1059230433,1055604285,-1147177200)+W(6,-1086555076,1065208788,-1102169042,1008723412)+W(7,-1077304359,1069826015,1049830695,990531682);WS(-1116843232,1041538044);
sum1=W(0,1038718416,1050813118,-1091780513,-1107356403)+W(1,1041393778,1048646402,-1107072481,1032833522)+W(2,1023355030,1043671731,-1097953353,-1126022145)+W(3,1040958951,1037057641,-1088265503,-1185162751)+W(4,1040537034,1050123337,-1105750724,1038008293)+W(5,-1112360254,1052799074,-1091053114,-1123581176)+W(6,1043346413,1037436293,-1121572392,1033129910)+W(7,1047211822,1042212684,-1091261766,-1116284746);sum2=W(0,-1127892588,-1090048491,-1076486023,1071993665)+W(1,1025248710,-1124324076,-1080184847,1067215194)+W(2,-1127740272,-1092974499,-1080442855,1068762214)+W(3,-1114879615,1047668544,1048567939,1014309155)+W(4,-1125515678,1042122418,1066323214,-1079656754)+W(5,-1135605467,1052455522,1068938556,-1077318729)+W(6,1015277154,-1102075660,1066205534,-1083078137)+W(7,-1118452308,1052515578,1058048535,-1086246531);WS(1045082936,1047750074);
sum1=W(0,1017867382,1038967959,-1107005280,-1117189504)+W(1,-1105827232,1036533543,-1101431328,1000061951)+W(2,-1139557912,1048524561,1044741561,1034808454)+W(3,-1098507795,1057427781,-1099209723,-1102176472)+W(4,-1112138258,1057555836,-1103886606,-1102736460)+W(5,-1113781499,1044700722,-1117912777,-1102956733)+W(6,-1117154624,1037485187,-1108908881,-1113728179)+W(7,1024003356,1046059755,1024367918,-1108156515);sum2=W(0,1003184961,1024857236,-1114215978,1037587704)+W(1,971431442,-1109323954,1030818718,-1121823736)+W(2,-1131894760,1026446282,1031262679,1045339410)+W(3,-1133283297,-1105665514,1056963612,-1107079097)+W(4,984723076,-1116186208,1055283667,-1090072253)+W(5,1031831407,1024492508,975724297,-1102678968)+W(6,-1125590160,-1121629964,-1116339968,-1103014356)+W(7,1031681833,-1148808497,1026784592,-1123463096);WS(1059869006,1015916977);
sum1=W(0,-1111801867,-1103727218,1051877295,-1115491581)+W(1,1039164638,-1102716146,1051739903,-1106752078)+W(2,1023424768,-1089648586,1057614174,-1104830517)+W(3,-1118862224,-1092420393,1055627629,-1112797325)+W(4,-1114194639,1049092536,-1096079006,1038662167)+W(5,-1099094340,1052180160,1008315659,1030088557)+W(6,-1118811114,1032231232,-1121275805,-1131680577)+W(7,-1096321008,1046058153,1039975892,-1175801754);sum2=W(0,-1113427160,-1090644207,1034414883,1038986783)+W(1,-1104433368,-1091764889,-1120815960,-1135559136)+W(2,-1104169884,-1109333336,995253792,1033390214)+W(3,-1117600576,1065407690,1059846520,-1120264784)+W(4,-1102319880,-1098732665,1048874179,-1104270640)+W(5,1039627671,-1109931470,1008884504,1019376128)+W(6,-1097619580,1043714297,1021072320,-1111461786)+W(7,1047721667,1041133481,-1103318888,-1142244432);WS(1054131356,-1077482588);
sum1=W(0,-1100136045,-1101215881,1045307006,1047064142)+W(1,989703980,-1100083265,1039854844,-1120855287)+W(2,-1114161471,-1091699940,1051542530,1042850313)+W(3,-1117800461,-1088812180,1056393300,-1122501592)+W(4,1013262449,-1095974704,1053327664,-1118254671)+W(5,-1112319975,1033042241,1059113280,-1111473941)+W(6,1027862775,-1095224480,1049428707,-1119385054)+W(7,-1103330903,-1102789769,1055440053,-1109190398);sum2=W(0,-1098032416,1063396296,1043414797,-1093635160)+W(1,1055692800,1024719031,1032661901,1049215120)+W(2,-1101668743,1065491656,1058961916,-1090478816)+W(3,-1100435053,1073645059,1063424749,1050905898)+W(4,-1089098280,1060161647,-1096580753,-1135528507)+W(5,-1094416925,-1074198531,-1098776178,1042380471)+W(6,-1099202751,-1081296593,-1115458644,1032695397)+W(7,-1104551065,-1083400329,-1092624053,1054277265);WS(-1082679118,-1072338335);
sum1=W(0,-1126832308,-1092407662,1041636256,1032452512)+W(1,998650886,-1099976035,1035459839,-1118647007)+W(2,1029713605,-1098757312,1053507448,-1113994637)+W(3,1045660229,1049242330,-1097348797,1019901759)+W(4,-1125245511,1052609817,-1097111418,1026546307)+W(5,1001090478,1049104969,-1099322690,1041545965)+W(6,-1126242526,958956607,-1116731426,-1113342195)+W(7,-1128346278,-1170516592,1009511091,1027607012);sum2=W(0,-1069228184,-1099529380,-1112044089,-1144476451)+W(1,-1073602631,1043301860,1041147606,-1112019052)+W(2,1021776922,1054858487,-1119872164,1036271953)+W(3,1076866983,1044685536,-1106846135,1018899191)+W(4,1069809281,1062109344,1042271976,-1114284680)+W(5,-1101499289,-1097491140,1035368326,-1126672913)+W(6,1013617559,-1149319294,1025827813,-1112053703)+W(7,1036050969,-1113127688,-1115137330,-1146921887);WS(-1125906880,1029353026);
sum1=W(0,1052620124,-1082830235,1044570800,1033131793)+W(1,1040928385,-1087911853,1048894344,1031982257)+W(2,1053619569,-1088553290,1054767249,-1118254573)+W(3,1034478636,-1115166792,1052323270,1037418321)+W(4,-1149501032,-1104403058,-1096342700,1045103465)+W(5,1027228408,1046902211,-1092690897,1053685367)+W(6,1033816441,-1140598044,-1112660402,1032758420)+W(7,-1143379631,-1115398454,-1089842615,1056771243);sum2=W(0,1052242091,-1123374674,-1088438592,-1109756837)+W(1,-1105901664,1032004261,-1109896025,-1117902306)+W(2,1041713460,1057464262,-1106721416,-1106560728)+W(3,-1098081544,1055897675,1057898227,-1101499608)+W(4,-1101414896,-1108453649,1044097375,-1114554169)+W(5,-1140318759,-1099401944,1041656473,1042131382)+W(6,-1123485994,1039811869,1042751001,-1104786072)+W(7,-1108472633,-1092934450,1033994653,1048148308);WS(-1080878567,1068324028);
sum1=W(0,-1115471279,-1095139206,1057833304,1032811018)+W(1,1019310859,-1103458412,1049561152,-1118469827)+W(2,-1121098697,-1090917913,1058273109,-1107876783)+W(3,-1115193805,-1094785898,1054221326,-1109399058)+W(4,-1153442440,-1100131090,1050583410,-1121957752)+W(5,-1104713039,-1118370765,1048985266,-1109945243)+W(6,1023975060,-1102569730,1041261354,-1125987028)+W(7,-1094675607,1044057356,1045920684,-1144681671);sum2=W(0,-1122597644,1052263517,1084267296,1037076324)+W(1,1032420914,-1132353885,1077171750,1017945885)+W(2,-1109997244,-1113437764,-1076080701,1045994672)+W(3,1029919127,-1086124512,-1066836895,-1105598049)+W(4,-1129031901,-1134522929,-1073829589,-1115453382)+W(5,1025876905,-1137529969,-1128728545,1027437378)+W(6,-1121404056,1041285329,-1128683125,-1112127416)+W(7,1025649559,-1111439550,-1109934248,1032857588);WS(-1106960696,-1099012034);
sum1=W(0,-1114528403,-1099071342,1055554285,-1109121109)+W(1,-1119077260,-1099370430,1049964157,-1115766890)+W(2,-1143558020,-1089278443,1061104081,-1114965299)+W(3,-1119877760,-1086538844,1056629915,-1120868875)+W(4,-1109244232,1010994112,1049997315,1034547527)+W(5,-1096650748,1041376829,1042073805,-1114495407)+W(6,-1112604445,1042854492,1031563405,-1139584324)+W(7,-1100402892,1049345155,-1123516568,-1118254096);sum2=W(0,-1116593925,1027806287,1032648371,1024756439)+W(1,1028908115,-1136470458,1006654490,-1116529299)+W(2,999050165,1039840949,1052059722,-1107372324)+W(3,1037914955,-1122048333,1057985079,-1128153177)+W(4,-1106109711,1057135276,-1090440242,-1142966917)+W(5,-1105957739,-1105275062,-1131926605,-1123338691)+W(6,-1123834115,-1096566133,1018741845,1013415162)+W(7,-1113783754,-1105721601,-1124260101,1018182189);WS(-1103089976,1059868827);
sum1=W(0,1026631887,-1091300264,1056895190,1031003956)+W(1,1033737723,-1096562704,1050565142,-1140469197)+W(2,1034000797,-1087537316,1059766350,-1108911023)+W(3,-1130496915,-1094386976,1053939124,1032926090)+W(4,-1106694966,1044429902,-1108577640,-1120892680)+W(5,-1105866475,1045093007,-1109922270,1034482579)+W(6,-1106727101,1040636078,-1122075862,-1136817768)+W(7,-1098705919,1044615672,-1100982776,1045052014);sum2=W(0,-1114832682,1044376552,1052671036,-1084839384)+W(1,1038307608,-1101986459,-1094811671,-1076225566)+W(2,-1109268272,1025272345,-1106762472,-1074779618)+W(3,1031259614,-1112738770,1052706603,-1088390497)+W(4,-1136199018,1014008179,1040752903,1066038403)+W(5,-1118450441,1042085570,-1100877636,1071357616)+W(6,1025376385,-1110075404,1051973899,1068318141)+W(7,-1125957173,1027010884,1036345951,1050587817);WS(-1089897038,998399462);
sum1=W(0,-1100326508,-1114312802,1049930251,-1141222070)+W(1,-1099771006,-1109889234,1047140918,-1114407115)+W(2,-1103969415,-1092992143,1060325312,-1106384368)+W(3,1030998252,-1098209637,1062808044,1017922927)+W(4,-1111096702,-1116385180,-1128865717,1023432554)+W(5,-1129527451,-1096464604,1048691588,-1125954964)+W(6,-1115021151,-1111889198,-1137813989,-1121716413)+W(7,-1124899748,-1109224641,1043572929,1020452535);sum2=W(0,-1094975511,-1113696880,1023473326,1029862812)+W(1,-1089233591,1032844980,1036803698,-1117299445)+W(2,-1089977002,1066397244,-1129026618,1025970568)+W(3,1033778332,1037917830,-1104280508,1031377784)+W(4,1006981461,1039504138,1024702770,-1122944997)+W(5,-1137053176,1032622380,-1121975322,1022461928)+W(6,-1125132764,1021506052,974010432,-1130740686)+W(7,979684320,-1119563165,-1138205260,1024270227);WS(-1096120220,-1099720911);
sum1=W(0,1052677544,-1105594052,-1101878153,990296621)+W(1,1027883172,1050583742,-1120505890,1026529890)+W(2,1046184634,1030711656,-1094174707,1039246623)+W(3,1036941212,1050761182,-1087347673,1031039363)+W(4,1037786724,1044997418,-1091299260,1038193547)+W(5,1039372749,1051859318,-1092171165,1036921611)+W(6,992842790,1041579690,-1105854769,-1115076484)+W(7,1040590154,1052858474,-1087724293,1007468831);sum2=W(0,1040381409,1023777345,-1110031849,1022623295)+W(1,-1131846701,-1095435966,-1146822820,-1096899181)+W(2,1030695069,-1111411494,-1089001391,1049343346)+W(3,1015259161,-1085163747,-1074171332,-1107180310)+W(4,1026868853,-1100600319,-1078760233,1043071461)+W(5,-1164136976,1052695808,1048168469,1020495459)+W(6,-1121164685,1041440525,1074132102,1017314953)+W(7,-1109936403,1051545155,1072577306,1050115198);WS(-1080112807,-1111145054);
sum1=W(0,-1103297132,1049824404,-1133975251,1026400021)+W(1,-1106341774,1049617192,-1122989109,1042898005)+W(2,-1098278655,1059552348,-1086286580,1041608840)+W(3,1024154699,1031972225,-1137351813,-1145221295)+W(4,1037514093,-1085661228,1056970252,-1102084285)+W(5,1034961350,-1097823136,992708574,1041904442)+W(6,-1125780682,-1114326813,1021582000,1038246926)+W(7,-1109009483,-1119831648,1040424089,1042525799);sum2=W(0,1041258750,989910477,-1134607603,-1109794979)+W(1,-1109734283,-1100922013,1016064722,1041809078)+W(2,-1123542769,-1096844113,1041392492,-1126381362)+W(3,-1113561957,1051742866,1057819912,982123162)+W(4,-1110564237,-1100235579,1047439582,-1119465765)+W(5,1026811493,-1105813951,-1113868277,1026735929)+W(6,-1130694514,-1151284621,-1118083589,1019553626)+W(7,1024057869,-1136706867,-1114600003,-1114678252);WS(1043409720,-1105036943);
sum1=W(0,1040191749,-1096303173,-1115184605,1041655059)+W(1,1033970558,-1095924673,1041748910,1041917006)+W(2,1042494496,-1093807736,1044442592,-1160531625)+W(3,1046767380,-1092831585,1042876074,1039311757)+W(4,972615552,-1096756208,-1140612185,1020654492)+W(5,1032778168,-1126846855,1018241414,1043700571)+W(6,1032217109,-1115229280,1027878365,1034107952)+W(7,1032356247,-1098580285,1034858676,1036396440);sum2=W(0,1027808259,-1139047739,986751832,-1095774205)+W(1,1010119787,1043340308,1026247831,-1093511024)+W(2,-1111510504,-1106790738,1065364148,-1089533357)+W(3,-1113418759,-1096910874,1040723354,1053173071)+W(4,1032132185,1040059331,1038861011,-1106558855)+W(5,-1121052855,-1115460243,-1113647147,1027584935)+W(6,1014515195,1017581734,1041604470,-1121443175)+W(7,1010692603,-1120741339,-1135975307,1014681515);WS(1035857520,1029952289);
sum1=W(0,-1143077795,1037051011,-1110400621,-1121149466)+W(1,-1105351783,1029971495,-1106469910,1043652126)+W(2,-1113811952,1049064844,-1094483622,1027875988)+W(3,-1106526780,1035603988,1058276716,1035104701)+W(4,1035289215,-1083894414,1056346487,-1114346217)+W(5,999420801,-1098557596,1050633420,-1123554317)+W(6,-1129002434,-1111645039,1042325343,-1130799743)+W(7,-1113970285,-1130790920,1026109447,1025377311);sum2=W(0,-1118517607,1026484093,1039465846,1008581907)+W(1,-1101077931,1046485772,1030900361,-1114630284)+W(2,1029148161,-1098019518,1048118782,-1106945018)+W(3,-1087996420,1071267691,1064954318,-1097625455)+W(4,1047526016,-1082674625,-1084489705,-1156379726)+W(5,-1108756119,1032470282,-1118487613,1024110641)+W(6,1038718292,-1106613565,-1112021711,1020048570)+W(7,1024464693,-1113199029,-1120012731,1036291722);WS(1058189134,1034857672);
sum1=W(0,-1171748679,1031241360,-1100969760,987174985)+W(1,-1105475825,1044072484,-1094075536,1045893176)+W(2,-1097172873,1057114388,-1082247827,1042860595)+W(3,-1108837708,1051374554,1060030327,1031954257)+W(4,1038034707,-1083662360,1058651386,-1120638978)+W(5,-1131134898,-1099379283,1046921459,-1137288661)+W(6,-1113151849,-1121036423,1041721673,1037681908)+W(7,-1119273967,1018101850,1036514264,1029972391);sum2=W(0,1003810984,1020569783,-1128982694,1043745048)+W(1,1036204547,-1114489126,-1099380876,-1104004872)+W(2,-1101998989,-1121260135,-1101918458,-1104165612)+W(3,1041029203,1052640914,1059611184,-1121067579)+W(4,-1098215637,1059150102,1040381797,-1100369008)+W(5,1044393168,-1098121773,-1094102036,1032515174)+W(6,-1110527635,1037147118,1028175839,-1114899975)+W(7,1027560485,-1110248773,-1113935142,1000033398);WS(-1107450480,1040804833);
sum1=W(0,1040192716,1040473489,-1095196747,-1124855402)+W(1,1022226221,1047969017,-1098407451,1020416041)+W(2,1002013395,1044185574,-1087290490,-1160070647)+W(3,-1117682794,1060667554,-1089168888,1045737613)+W(4,1001040843,1057909434,-1111951852,-1101676720)+W(5,1000424795,1049088596,-1119291421,-1103624738)+W(6,-1120982404,1038016429,1031577591,-1104451167)+W(7,1025306833,1042416864,-1112956481,-1115902938);sum2=W(0,1014727333,-1124633329,1026257754,-1111611661)+W(1,-1117243126,-1107065949,-1111801245,-1136702760)+W(2,1029406572,1041729284,-1084100906,-1103677442)+W(3,1027900147,-1094200388,1052541581,1050798725)+W(4,-1112527674,-1104959017,1070744988,-1105828213)+W(5,-1114664521,1040214496,-1111707080,-1111536822)+W(6,-1111634336,1005029260,-1127513012,-1106506739)+W(7,-1107116047,1049039902,-1107038609,-1140667375);WS(-1113867888,1064515135);
sum1=W(0,-1113562537,1048061265,1011269086,-1105945126)+W(1,-1107046062,1043460993,-1098944190,-1148623547)+W(2,-1103978495,1060048584,-1107431310,-1111558073)+W(3,-1098739202,1062873548,1045822761,-1114838028)+W(4,-1122423580,-1119786749,1025265092,-1101841139)+W(5,1019693149,1023528257,-1112998912,-1117915947)+W(6,-1116789880,-1106657727,-1142662356,-1106868487)+W(7,1020558520,-1137576074,-1104660585,-1122252061);sum2=W(0,-1145158406,1022878354,-1111624996,1010204019)+W(1,1012385731,-1129472106,1015658802,-1123973089)+W(2,1016118130,1044961455,1040055751,-1157676569)+W(3,1024197601,1049544336,1057430996,1022031298)+W(4,-1112179804,1030346877,-1114498280,-1124728962)+W(5,-1119519161,-1131221354,1020564842,1023003938)+W(6,-1127326042,-1095482557,-1112131584,-1121117277)+W(7,-1113792718,-1093377057,1019749938,-1141925830);WS(1051333020,-1087054195);
sum1=W(0,-1112042433,-1104387605,1052246829,-1113527444)+W(1,1019002067,-1096771599,1048899277,-1098301717)+W(2,-1115058903,-1102529947,1054136106,-1095193948)+W(3,1046618143,-1093976551,1044227957,1044013586)+W(4,-1107874438,-1089735051,1060328029,-1107288943)+W(5,-1148774132,-1129150690,1046377228,1038700845)+W(6,1036768028,-1101876091,1045160291,1024370318)+W(7,-1154881470,-1098135714,1045432325,1019966234);sum2=W(0,-1114066012,1041392892,1044719218,-1097547793)+W(1,1029900262,-1112610934,1046575198,-1095644935)+W(2,-1114806697,1041587346,1050162797,-1102972970)+W(3,-1110038644,1025557898,1055420600,-1095936036)+W(4,1036646832,1055783298,-1099287148,1028020818)+W(5,-1110070018,-1102485451,-1100701871,-1113902766)+W(6,1020625547,988088600,1033323822,-1135974783)+W(7,987867800,1039502616,-1119304428,1018696751);WS(-1120103648,-1090070191);
sum1=W(0,-1117418940,1049030490,-1112262737,-1114427969)+W(1,1024592611,1050801054,-1094705236,1032013281)+W(2,1040968250,-1111205267,1042055990,-1110419822)+W(3,1049918615,-1116228463,-1085341341,1047944497)+W(4,1034410595,1050512309,-1106227665,-1132367051)+W(5,1035134604,-1102511675,1036298997,1025392341)+W(6,-1119948353,1034763283,-1138448657,-1111046724)+W(7,-1144523437,1039656998,-1110564136,-1120201127);sum2=W(0,-1122606938,1046354401,-1124762815,-1118515993)+W(1,-1141997982,1040228902,-1102583710,1036845124)+W(2,1027805544,-1143835982,1052785838,-1106443071)+W(3,-1120462650,1061896257,1059397472,1043676745)+W(4,-1100560083,-1080731069,-1120768779,995709275)+W(5,-1105726471,-1098049024,-1126645315,-1128858827)+W(6,1025575588,1026943708,1011421951,-1112152255)+W(7,-1113668318,1032253740,-1122685018,-1127110207);WS(1060158670,1068766623);
sum1=W(0,-1116432453,1056712636,-1087151539,1040295867)+W(1,-1131098839,1049784895,-1102593034,1033948341)+W(2,-1099753724,1057908127,-1089291740,1031077093)+W(3,1034945056,1044163070,-1094800699,1027113355)+W(4,-1122123599,1028198895,1036808107,-1132674679)+W(5,1040823512,-1122504371,-1120242995,-1117547229)+W(6,1040184285,-1123329903,-1127465369,1040274980)+W(7,1050332416,-1096645803,-1132187055,-1137741501);sum2=W(0,1036379663,-1098232449,-1128107780,-1120677803)+W(1,-1108907739,1058983203,1035811659,-1120240179)+W(2,1070189048,1016986873,1040144345,1029686139)+W(3,1073213180,1047923452,-1105399966,-1109097268)+W(4,1065321765,1033582270,-1110681209,1041308319)+W(5,-1076673488,1031365639,1039880527,-1109042515)+W(6,-1079893128,1038048757,-1116001167,1034493417)+W(7,-1072585926,-1107019906,1018297481,-1131123922);WS(-1112459888,1031046963);
sum1=W(0,-1112719265,-1128634346,1043326546,-1115081924)+W(1,-1129483154,-1120462421,-1103778738,-1114915140)+W(2,-1103727283,-1112785958,1050524372,-1104237825)+W(3,-1091575740,1056781779,1067939282,-1096588493)+W(4,-1104335643,-1153409228,1048587330,-1108534894)+W(5,-1155155940,-1108013960,-1132710977,-1114726045)+W(6,-1114094348,-1118230989,-1109505653,991235804)+W(7,-1105426861,1027667442,1036777787,-1111746006);sum2=W(0,-1119086167,1037241732,-1114652243,-1131518324)+W(1,1013020612,-1129818230,1028260797,-1115730540)+W(2,-1141008560,1029187991,-1112264831,1036245214)+W(3,-1108719150,-1074141953,1072760747,1034705438)+W(4,1023891147,1019083994,1042535682,-1119172530)+W(5,-1145112744,-1124211508,-1131878972,-1133917220)+W(6,1018251990,-1122886966,1037493286,-1114007324)+W(7,-1116478859,1027168441,-1129254230,1018465006);WS(-1086783566,-1086791567);
sum1=W(0,-1115195632,-1095708330,-1123676804,1041725033)+W(1,-1153026662,-1093442522,1018199561,-1121101892)+W(2,-1134496297,-1098161001,1037878573,1034570216)+W(3,-1108787789,1044632085,1064261167,-1103584185)+W(4,-1119803561,-1091375169,1057417647,-1108866704)+W(5,-1145121243,-1107384199,1052226946,-1122033784)+W(6,-1131708777,-1100078210,1046948682,-1117964907)+W(7,-1110064394,-1104664012,1047330733,1022321300);sum2=W(0,1031515378,-1077397139,-1134939312,-1112896962)+W(1,-1121810184,-1079753374,-1097085111,1035985281)+W(2,1010081392,1044674665,1052841311,-1105060263)+W(3,-1119765868,1073378801,1007836336,1031953140)+W(4,1035546479,1056367001,1044809025,1022446080)+W(5,-1106495935,-1109376902,-1118570548,1031289566)+W(6,1028378344,1035615024,992033726,1032016077)+W(7,1003402623,-1118889676,1010750288,-1150317246);WS(-1096711324,-1080143969);
sum1=W(0,-1135181951,-1095339398,1050582337,1026786373)+W(1,1025399430,-1094144146,1049483953,-1123204644)+W(2,1033906501,-1093853897,1045129706,1006467326)+W(3,1041786535,-1089314149,1046728732,1031608549)+W(4,-1133559462,-1089126233,1045641984,-1135165794)+W(5,1003671004,-1110956839,1051092970,1017185520)+W(6,-1123695637,-1129083412,1049638101,996324016)+W(7,-1105366874,-1113909272,1057307443,1009923752);sum2=W(0,1023911567,-1108118447,1044892126,-1112738860)+W(1,1004932796,-1134375038,-1138359022,1020475455)+W(2,-1119124867,1035251904,1063133445,-1102926770)+W(3,1022775023,1037995724,1074655410,1047698054)+W(4,1011639102,1050162042,1070062472,-1113839430)+W(5,1036397588,1037707684,-1083132698,-1117927031)+W(6,999444348,-1111062570,-1073510095,1017195567)+W(7,-1106309084,-1101285996,-1073687480,1041743674);WS(-1089880270,1068594400);
sum1=W(0,-1114467040,-1104513741,1050219169,-1118490053)+W(1,1023170830,-1091458130,1042545281,-1120682309)+W(2,1036273894,1034367029,1048674674,1031296832)+W(3,-1107800974,-1100997781,1042739212,-1110241363)+W(4,1029867434,-1095286649,1053624831,1034289100)+W(5,-1106779367,1047811540,1034908007,-1107012174)+W(6,1024593089,-1096228817,1034674708,1021221591)+W(7,-1110449433,-1109179032,1049808694,-1126204757);sum2=W(0,1030004067,-1133064657,1024174065,-1119836251)+W(1,-1117028113,-1134091777,-1113615539,1025775761)+W(2,-1105887481,1045929484,1032698350,-1118489229)+W(3,-1066126465,1081917443,-1097201480,1041573100)+W(4,-1104777348,1043726141,1033613382,-1124268877)+W(5,-1122550707,1028310407,-1107697461,1030764051)+W(6,-1130918117,1016764395,1029778305,-1116797441)+W(7,1023720579,-1116064873,1018371831,1018350967);WS(1067475431,-1126058166);
sum1=W(0,-1108052732,-1097851361,1049362324,1040199303)+W(1,1043040440,-1108210069,1048929252,-1109622414)+W(2,1048922396,-1084429932,1054104112,1041203782)+W(3,-1097574342,1055911149,1047147106,-1104274751)+W(4,-1119673025,1041902328,-1085779789,1047880876)+W(5,-1101774749,1035827603,1049622021,-1116198608)+W(6,1019400344,-1115594513,1019477630,-1107876353)+W(7,1007801026,-1107003538,1037086373,1036701569);sum2=W(0,1013753738,1020731454,-1120697178,1009873360)+W(1,-1113150555,1046742995,1034035253,-1099358283)+W(2,1015248850,1045156685,-1094710566,1039470065)+W(3,1042650722,-1104352239,-1128318417,1046693145)+W(4,1040818978,-1089864705,1045040370,1036008061)+W(5,-1105652199,1045331461,1025091411,1030627793)+W(6,1033430289,-1109224259,-1106535436,1017876415)+W(7,-1120377801,1016214593,1019751894,-1132110931);WS(1060496974,-1099362699);
sum1=W(0,1054706808,-1109706041,-1098091909,-1129324363)+W(1,1036662868,1041317773,-1123237413,1015757258)+W(2,1045895019,1051554925,-1091928498,1021341985)+W(3,1033303646,1049334366,-1083798889,-1112852963)+W(4,1044095763,1051166813,-1095315343,1041804248)+W(5,-1130190200,1053590462,-1087007295,-1127492145)+W(6,1035564779,1049285205,-1097088265,1039262630)+W(7,1040746168,1055551482,-1094550458,-1114905285);sum2=W(0,-1073385920,1077926840,1032559783,-1094451238)+W(1,-1084887580,1058818874,-1089669880,-1121878040)+W(2,-1083140914,1060159151,1045764296,-1173171215)+W(3,-1081800202,1074845707,1059775011,-1120435570)+W(4,-1085954594,1061906872,-1103860568,-1115590029)+W(5,1037413129,-1084431515,-1094536545,1053315192)+W(6,-1096433065,-1126824848,-1133232881,-1107838893)+W(7,1054210787,-1087315344,-1099186518,1052978812);WS(-1078369703,1041267413);
sum1=W(0,1024386586,1041630887,-1102607056,1016693023)+W(1,-1098405416,-1112635974,1051293608,1018393854)+W(2,1044040033,-1132435208,-1094040968,1046099151)+W(3,-1098286219,1041292515,1052507157,-1095618428)+W(4,-1130684104,-1091497929,1056853585,1018959206)+W(5,1045750173,1016159377,-1105775474,-1117949682)+W(6,-1098338270,-1139597330,1049412460,-1118540325)+W(7,1041584973,-1101611546,1026100205,1040982949);sum2=W(0,1035615459,-1097925659,1043665288,1020457849)+W(1,1028814353,1038714809,1033337220,-1103657321)+W(2,1062855981,-1077657685,1051048913,-1109823715)+W(3,1052250964,-1101970047,-1113114333,1058024935)+W(4,1056109526,-1098468896,-1085664062,1056999181)+W(5,-1106019250,-1114182260,1040975429,-1105846491)+W(6,1048995011,-1104046747,-1109605260,1042595027)+W(7,-1115640692,-1130122971,1034778788,-1112374505);WS(1049151900,-1114127847);
sum1=W(0,1050216581,1044969414,-1106856243,-1099359923)+W(1,1000015204,1047621718,-1112471205,-1148711507)+W(2,-1136218178,1057314961,-1091938023,-1133921207)+W(3,1023136961,1055877843,-1092033343,-1112054390)+W(4,-1130455775,1054358666,-1099719178,1034273823)+W(5,-1133465094,1052966059,-1089783713,-1122838974)+W(6,-1160090192,1045850836,-1099053307,1019980258)+W(7,1035991733,1052491071,-1087984664,-1112322824);sum2=W(0,-1105478410,1011113448,1068049752,-1082501551)+W(1,1039552519,1050864081,-1103020148,1059003564)+W(2,-1131405058,-1125310098,1066695202,-1098156272)+W(3,-1099466970,1043215106,1074596924,1039344435)+W(4,1049027924,1034334973,1067601936,-1099880092)+W(5,-1115050596,-1095883745,-1084539788,-1107282542)+W(6,-1129231446,1036178144,-1075514015,-1097076855)+W(7,1049583286,-1088635155,-1074115054,1042018058);WS(-1081332839,-1093454830);
sum1=W(0,-1109709318,1035356975,1039420520,-1111308088)+W(1,-1104916884,1037116623,-1122158672,1014687039)+W(2,-1108177419,-1125155242,1053028347,-1112931654)+W(3,-1117212646,1030327966,-1104761999,1020526050)+W(4,-1119705461,1050241163,1032136206,-1119448076)+W(5,1032417267,-1103907222,-1115200780,-1112611266)+W(6,-1118748528,1046095669,-1115609017,-1136487898)+W(7,987327371,1033262333,1029855614,-1104533373);sum2=W(0,1013207527,-1118344664,-1124997045,1036829905)+W(1,-1127355075,1028266047,-1117884424,1016171285)+W(2,-1103159789,1043690369,-1116887196,1024917624)+W(3,1040955478,1051132935,1047094008,1041601336)+W(4,1008876024,-1108842627,1057384051,-1127506713)+W(5,-1116686760,1041402295,-1100609336,1033786361)+W(6,1035764738,-1105537330,-1098518151,-1114313206)+W(7,-1154118338,-1128237045,-1089828796,-1102385561);WS(1063446990,1030048893);
sum1=W(0,-1131562670,1043069042,-1108681470,-1108650254)+W(1,-1099483503,1049571969,-1106599551,-1106453175)+W(2,-1106193120,1061428532,-1097709592,1008661917)+W(3,-1102405700,1053095529,1046689338,-1102088711)+W(4,1021119810,-1115069793,1029025472,-1123233168)+W(5,-1113568905,-1119868742,1006738196,-1104754348)+W(6,1009340592,1027160065,-1120287391,-1136963210)+W(7,1030255032,1043118346,-1111789333,-1114502129);sum2=W(0,1012371361,1017109065,-1110016822,-1103671135)+W(1,-1149491589,-1115161102,-1109821790,-1097972516)+W(2,1023756477,1012418345,1060485172,-1094449842)+W(3,-1165255819,-1111308586,1031379047,1049769129)+W(4,-1111467932,1015942947,1046805034,999148403)+W(5,1019335917,-1106016138,-1114576028,1022790203)+W(6,-1140694601,1015823021,1024897044,1032463998)+W(7,1010513313,1026481588,-1114618076,-1146831635);WS(1060385486,1040268319);
sum1=W(0,-1115333181,-1105770459,1048230464,1022495614)+W(1,-1113839600,-1104706211,-1122113023,-1115044751)+W(2,1026945989,-1085502934,1051932092,997701279)+W(3,1041834949,-1112644646,1065603891,1044329112)+W(4,-1100015113,-1102865873,-1105250533,1038196649)+W(5,1010458454,-1112283012,1054415097,-1113673817)+W(6,-1113704543,-1108020290,-1122402466,-1105082025)+W(7,-1110169699,-1115522389,1046973419,-1115640050);sum2=W(0,-1115664423,1041813775,-1142717933,-1120925434)+W(1,-1122287706,1041645390,-1094011677,-1119842210)+W(2,1044568139,-1087138046,-1124627987,-1120985148)+W(3,-1099350461,1067461852,1027339570,-1113918825)+W(4,-1102715015,-1116572542,1045144111,-1100833175)+W(5,1042022920,-1109622665,1054026149,-1101147879)+W(6,1031291077,-1113357449,-1122353792,-1112018489)+W(7,1032474264,-1110133469,1047364150,-1109170005);WS(1049043868,1050086952);
sum1=W(0,-1127858130,-1091279607,1054362490,1028884238)+W(1,1025810768,-1101354119,1044465651,1022883995)+W(2,1034666762,-1089232423,1050465752,1032068165)+W(3,989092984,-1092016019,1058690160,1005443958)+W(4,-1115481017,-1089729669,1053482909,1007092039)+W(5,-1119959429,-1104525366,1051092259,-1149438996)+W(6,1012364567,-1121438163,1019953121,-1137072337)+W(7,-1097661520,-1160888088,1051219071,1017307814);sum2=W(0,1030282550,-1099759289,1070065566,-1078832473)+W(1,1012065197,1050936278,1068820850,-1076346523)+W(2,1049708534,1018991152,1068572253,-1075628240)+W(3,-1101566471,1050588571,1075164582,-1072955990)+W(4,1043525707,-1112383125,1046261639,-1093459475)+W(5,1038111746,-1121285468,1053555382,-1088795804)+W(6,1040589253,1039884984,1040055978,-1099780818)+W(7,-1106531005,-1113841779,1058828770,-1090423367);WS(-1083655502,1074535575);
sum1=W(0,973651072,-1100106921,1049212555,-1122472503)+W(1,1028862937,-1096173461,1052529147,996549482)+W(2,1029517469,-1088250868,1057957824,-1111380529)+W(3,-1111330742,-1101351113,1060855844,-1125410415)+W(4,1043404639,-1092528244,1050267538,-1109626381)+W(5,-1105397947,1034877328,-1104065896,-1122247818)+W(6,-1129726574,-1113904430,1041335934,-1108333759)+W(7,-1099887737,-1118418050,1047916353,1037233742);sum2=W(0,1037582341,-1116649305,-1107051108,1040538112)+W(1,1032149251,-1112916551,1041643977,-1112067691)+W(2,-1135487115,1044443302,1030763641,1036263743)+W(3,-1107247151,-1117703407,1053360182,-1115814520)+W(4,1053968825,1049963138,-1087331905,1035849297)+W(5,-1096732175,1042101117,-1089009482,-1104153316)+W(6,1034930229,1046616621,-1110671517,-1104877620)+W(7,-1094249638,-1127010106,1059951262,-1116847106);WS(-1132786560,1056578758);
sum1=W(0,1031072232,1043718831,-1098888378,-1123786893)+W(1,1019453021,1050053971,-1104586611,1030360908)+W(2,-1112153353,1057505465,-1090760605,-1123598824)+W(3,-1127115205,1049535379,-1081773448,1035671447)+W(4,-1153314582,1052394474,-1106021324,1044649456)+W(5,-1105591705,1045418390,-1120283669,-1105554848)+W(6,986346381,1044283028,1036365944,1033186457)+W(7,1024604121,1048806335,-1103287167,-1108912601);sum2=W(0,1040658557,1011638864,1041865287,-1109113498)+W(1,-1106354313,1020064744,-1103147627,1033931950)+W(2,1027144364,1049840877,1026998340,-1120927100)+W(3,-1103628435,1050147177,1053587315,-1102211113)+W(4,-1123462592,-1117174472,-1118058864,1033328738)+W(5,-1130705048,-1105120318,1036775410,-1101351534)+W(6,-1126068784,-1113970774,-1104140895,1028877580)+W(7,1016031184,-1135769248,1030416564,-1112076066);WS(1062711758,-1109562142);
sum1=W(0,-1107075140,-1100622401,1053288051,1017596397)+W(1,-1125545776,-1104747337,1049612355,1007433175)+W(2,-1121788380,-1103229831,1059638178,-1120034657)+W(3,-1112684886,-1083301774,1048337697,-1098025711)+W(4,-1128625782,1050510715,1052952654,-1112854653)+W(5,-1102890883,-1097610180,1051307580,-1108240645)+W(6,-1129119788,-1109077454,1041285742,1022176121)+W(7,-1102110160,1030737729,1049115768,1020667959);sum2=W(0,1022257834,977550902,-1113927342,1036504102)+W(1,1033804876,-1105772859,1042844173,-1107093105)+W(2,1033963400,-1098748483,-1096777339,1028160469)+W(3,-1113268759,1063293804,1059312088,-1089861840)+W(4,-1123922685,-1090033704,-1134320563,-1101525036)+W(5,1029999681,1051039483,1037687330,1017532722)+W(6,1015463858,-1104977553,1024487701,-1122996995)+W(7,-1125618402,1022914778,1004875175,-1116068477);WS(1046002488,-1083997249);
sum1=W(0,-1116203964,-1099156844,1050076828,1025075217)+W(1,1044431961,1028498222,1049400252,1035032656)+W(2,1041235242,-1096363997,1050263757,1032516798)+W(3,1046371486,-1079124621,1020370202,1050189128)+W(4,-1106267745,-1088685662,1048790666,1042510329)+W(5,-1117705943,-1103556299,1053355933,1039724554)+W(6,-1122870401,999993136,1034829570,1027729159)+W(7,-1109240562,-1106798659,1037276039,1037249299);sum2=W(0,-1094982381,1041875660,1017839086,1045890174)+W(1,1024745423,-1091311273,1044409386,-1107764806)+W(2,-1097113645,1042706326,974632891,1048260200)+W(3,1017043870,-1148119319,1061393923,-1118443235)+W(4,1052555320,-1098101314,1043955676,-1097368628)+W(5,-1107563793,1010824956,-1098402228,1041238578)+W(6,1049262968,-1094774489,1042935118,-1116185663)+W(7,-1118735987,1030619863,-1094515595,1042214090);WS(-1083255246,-1075588436);
sum1=W(0,-1154522904,1026375684,-1099839750,1037990411)+W(1,-1106371438,1036249778,-1113752075,-1119606102)+W(2,-1105464695,1056687627,-1092436626,1043935324)+W(3,1036086422,-1097055709,1050924256,1036476796)+W(4,1023783355,-1088556578,1056650964,-1111337285)+W(5,-1127243930,-1108055408,1045926824,-1110940389)+W(6,1030176790,-1105944807,1039385437,-1124332025)+W(7,1031412139,-1123388097,1041066449,1021333175);sum2=W(0,-1117330831,1032531181,1043756688,1060766869)+W(1,1023708058,-1114369361,1031926890,1067300065)+W(2,-1133288218,1017487862,-1104593512,-1105945514)+W(3,-1122435213,1047518334,1043258354,-1075696003)+W(4,-1139180683,-1122916014,-1096895795,-1102393264)+W(5,1020252429,1027012545,1049767697,-1106946489)+W(6,1025188082,-1103557501,1019544307,1020047431)+W(7,-1109968059,1046855474,-1112657711,-1113285900);WS(1056055196,1023945849);
sum1=W(0,-1104545849,1036175954,1032040419,-1111539988)+W(1,-1139517988,-1138851412,1009002268,1026875367)+W(2,-1101013315,1048468083,1040659763,-1104005681)+W(3,-1136100212,-1097789539,1059870683,-1112873620)+W(4,-1148373856,-1096999890,1039368714,-1135793772)+W(5,1013350648,-1097071058,1053644410,-1132670698)+W(6,-1120654743,995622088,-1122818538,1028030253)+W(7,-1108930702,-1128233700,1033002810,-1133516850);sum2=W(0,1033182461,-1110992702,1011638125,-1116812221)+W(1,-1135790885,1041801313,976542168,-1135785781)+W(2,1036058972,-1115959119,-1106760241,1013579453)+W(3,-1145806187,-1083556559,-1068720208,1034110873)+W(4,1026470367,1047402951,1080067579,1048786168)+W(5,-1125994579,1026458945,1043021822,-1124564059)+W(6,-1123856921,1021989349,-1118809257,-1115658442)+W(7,-1152817846,1029289545,1027196491,-1110636256);WS(1047050040,1036867972);
sum1=W(0,1031952202,1041031945,-1098508279,-1117663192)+W(1,1040033213,1050476745,-1097704487,1033331580)+W(2,1049413776,1016870010,-1091275871,1012948685)+W(3,1052329098,1054273441,-1087382286,1043041286)+W(4,-1134253939,1041748879,-1095309386,-1131302504)+W(5,1023712847,1035493153,-1117526273,-1125396951)+W(6,-1129317744,1041656495,-1112254893,-1153578470)+W(7,1023414180,1041394937,-1108492595,-1112644847);sum2=W(0,-1120609508,-1138324119,-1110367912,1021280635)+W(1,-1098653081,1042859622,1038385587,1026624912)+W(2,-1074671298,1072071026,1026263792,1026288466)+W(3,-1081276780,1068070176,-1107049493,-1122098825)+W(4,-1097107702,1044485226,1024907208,1040255596)+W(5,-1110118090,1040658983,-1122488627,-1152233050)+W(6,-1137118351,-1118978815,1038809437,-1126727249)+W(7,-1119823807,1035453187,-1111098449,1006813455);WS(1047287096,1059538103);
sum1=W(0,1030804480,1034749929,-1102474905,1013951379)+W(1,-1111595219,1051408038,-1094490621,1039425378)+W(2,-1123153834,1049213285,-1099609086,-1112788128)+W(3,-1098057279,1057344539,1048597242,-1098419769)+W(4,1007980582,1048793645,-1094890059,-1118093753)+W(5,1018775223,-1106759404,1046324795,-1108341356)+W(6,1036089754,-1115115061,1003815995,-1120388747)+W(7,1030691489,1033654600,-1126686757,-1135294247);sum2=W(0,-1112864979,1024004698,1034996841,1004307827)+W(1,1034721747,-1109416755,1041661735,-1116757818)+W(2,-1108077379,988806988,1041642045,1037366938)+W(3,1023366533,1058238498,1008174217,-1107547239)+W(4,1021246669,-1115279539,-1122858630,-1108868659)+W(5,1032508120,1041332549,-1089151778,-1128614293)+W(6,-1113986367,1033457886,-1130797677,-1130732717)+W(7,-1153257254,1018109285,-1111548255,-1122125438);WS(1066216871,-1084582294);
sum1=W(0,1009745022,-1095963722,1050775177,1027534757)+W(1,1023325836,-1096473834,1046303345,-1126933960)+W(2,1034246149,-1087129751,1057767679,-1118146623)+W(3,-1103455511,-1142570129,1064400323,-1103828265)+W(4,1025953385,-1094684497,1038452388,1018950609)+W(5,-1105242559,-1107829831,992534739,1030437560)+W(6,988118663,-1107520037,1025316967,1020674901)+W(7,-1107601837,-1117719279,1044853309,1033139589);sum2=W(0,-1127013105,1031626404,1029958550,1017794797)+W(1,1018526115,-1117975133,-1113082476,1023300847)+W(2,-1123587641,1062148372,1035325186,-1145491637)+W(3,1052346460,1074624908,-1130733653,1041942663)+W(4,-1098654594,-1090512380,1046581721,-1113152926)+W(5,1029804743,-1070854231,-1113725416,-1139181075)+W(6,-1118240305,-1095518794,1031776819,-1120299385)+W(7,1030491706,1041467716,-1115594754,-1142763637);WS(1033725552,-1082653885);
sum1=W(0,1027658456,-1091894661,1054730080,1024810077)+W(1,1033791775,-1094613753,1052727904,1020875129)+W(2,1038169633,-1085886368,1060322284,-1114253244)+W(3,-1130834725,-1094605577,1054915405,1021660859)+W(4,-1105755912,1049096200,-1115316932,1010914050)+W(5,-1107114253,1038006563,-1113871235,1032412472)+W(6,-1106878767,1040399888,-1114082704,1016596422)+W(7,-1102176852,1038046228,-1098681477,1044096992);sum2=W(0,-1126607908,-1109006144,-1093467963,1059727060)+W(1,-1111819446,1050929158,1063076656,1073053378)+W(2,1032709615,1025316173,1048889614,1073749745)+W(3,-1119610542,-1107176811,-1090320472,1058093447)+W(4,1027594385,-1123863107,1046933317,-1079533534)+W(5,1029384695,-1122531221,1051206364,-1073154062)+W(6,-1115269200,1026796828,997945380,-1075936158)+W(7,1032209203,-1115616555,-1109796884,-1088004581);WS(-1087442510,1045166814);
sum1=W(0,-1106921670,1032009478,1041337656,-1110338367)+W(1,1032907600,-1127325529,-1100890040,1042108264)+W(2,-1111070674,-1106321881,1060092296,-1105899594)+W(3,1047421629,-1085655355,1044767811,1027442111)+W(4,-1094092352,1057239638,1040377247,-1105935775)+W(5,1031075349,-1098381173,1037296628,1037469097)+W(6,-1136240762,-1128650952,-1131454723,1027139781)+W(7,-1129052086,-1107389381,1037463686,991481919);sum2=W(0,-1119426781,1040351141,-1104019881,1015410156)+W(1,-1109786529,1043540747,-1106797782,1043466418)+W(2,1041819143,-1105926532,-1098594115,1048709183)+W(3,1018220925,-1133247980,1066013053,-1092013542)+W(4,-1103055916,-1096724541,-1136157126,-1109288787)+W(5,-1124599508,1038612076,-1097021086,1027934232)+W(6,986571056,1019567362,1025702119,-1140871148)+W(7,1024618671,-1143357456,1008181894,1027080058);WS(1059279054,1041683061);
sum1=W(0,1028823114,-1096417644,1041071884,1040139175)+W(1,1033060856,-1095251776,1051348966,-1133443258)+W(2,-1136683218,-1096755466,-1106154521,1027763154)+W(3,1041097809,-1095420880,1062896338,1037083176)+W(4,-1108712682,-1087904547,1057053635,-1109247178)+W(5,-1099515041,-1117180600,1050313119,-1169250436)+W(6,-1114499693,-1113115866,1041134484,1007514196)+W(7,-1105525449,-1121084634,1043053335,1031868218);sum2=W(0,-1104031080,1039900182,1028023758,-1125301559)+W(1,-1113246189,1044206765,-1122555834,1027754708)+W(2,-1124792744,1043086617,1041018096,-1129842792)+W(3,-1107688308,1057123143,-1100462314,1022410763)+W(4,-1084040655,1066602722,-1123151815,1034604384)+W(5,-1089958554,1037219700,1032289221,1029558442)+W(6,-1098618924,-1111210157,1028867168,-1139711519)+W(7,-1098033920,1036938090,-1143651414,-1122704124);WS(-1093886876,-1092780259);
sum1=W(0,1031521076,1034696971,-1098366291,991412379)+W(1,1040859655,1027092583,-1107551117,1023411481)+W(2,-1123954783,1057011018,-1084481759,1037665034)+W(3,-1115369432,1055452141,-1086775792,1037775165)+W(4,1027325374,1055461116,1050583573,-1102735091)+W(5,-1130075936,1043845385,-1098824964,-1106471523)+W(6,1017430099,1041326696,1032795870,-1113156096)+W(7,1005655277,1045628689,-1110858724,-1108701199);sum2=W(0,-1099549152,-1115620025,1042476476,-1128057356)+W(1,-1101982776,-1110046443,-1138118945,-1104607948)+W(2,1039636960,1067650764,1056117723,-1129519972)+W(3,1065032135,-1096892917,-1084935200,1039009532)+W(4,1046191187,-1084058149,1043334912,1042222420)+W(5,-1112740199,-1089814493,-1116550886,-1114781123)+W(6,-1120755726,1022618460,1030169574,1023299940)+W(7,-1138571865,-1106519005,-1123579094,1029490149);WS(-1103384376,1050555318);
sum1=W(0,990997212,1056616014,-1113359817,-1104278389)+W(1,-1104723373,1049493908,-1101985253,-1112669305)+W(2,-1102560870,1060440249,-1095607555,-1117918862)+W(3,-1110645588,1063537686,-1091747296,-1124628967)+W(4,-1114771100,1049398171,-1098384586,-1120789735)+W(5,1006886950,-1123261404,-1094355067,1020875660)+W(6,1011892746,1042753094,-1098733239,1029891897)+W(7,1041403778,1041297647,-1099641616,-1143354303);sum2=W(0,-1097904627,1056762738,1033294591,-1113205081)+W(1,-1102268820,998260703,-1102966386,-1105114179)+W(2,-1101696600,1049156882,1040206209,1028552759)+W(3,-1102083058,1055125136,1048772561,1023069474)+W(4,-1100977750,1040009482,1004029807,-1108173489)+W(5,1022682138,-1099421122,1040485303,1040370279)+W(6,-1105396681,-1114104451,-1118051402,-1109779069)+W(7,1035758392,-1112582051,1040482786,-1135668672);WS(1042369848,-1095650924);
sum1=W(0,1032801852,1060985291,-1088222536,-1154392525)+W(1,-1124780413,1056066249,-1093287088,1017158008)+W(2,-1142443027,1059062488,-1089766974,1041310978)+W(3,1031124370,1046815795,-1084610255,-1111535759)+W(4,1024489633,1051554984,-1096293908,-1118760812)+W(5,1037041722,1026983110,1035048291,-1118618480)+W(6,-1157391942,1037131073,-1113190096,1032589425)+W(7,1048283534,1028118439,-1107690581,-1101944856);sum2=W(0,1056251107,-1084477192,-1077785336,1053829707)+W(1,-1118435725,1041984407,-1086371528,-1113013425)+W(2,-1111043713,-1093515412,-1093010832,1046411943)+W(3,-1090037466,1073185178,1074151927,-1090694669)+W(4,-1129656805,1051712939,1054463958,-1095714333)+W(5,-1093926860,1053076395,-1094829660,-1103046632)+W(6,1052716525,-1096065312,-1090812268,1035367276)+W(7,-1083761792,1066458198,1063500158,-1087950464);WS(-1081634407,-1072784825);
sum1=W(0,-1102740818,1024862651,1056867014,1016622683)+W(1,-1115394775,1046040367,1027952685,-1112643478)+W(2,-1101924733,-1109613465,1058509811,-1096240139)+W(3,-1100839185,-1115978107,1050187219,-1101581667)+W(4,-1123768914,1049722038,-1098437541,1008822020)+W(5,-1140848016,-1098661743,1033615035,1023463264)+W(6,-1118249725,-1138059466,-1143195264,-1116668435)+W(7,-1116477425,1025943000,-1132571500,1036595961);sum2=W(0,-1139809909,1046126277,-1119940899,1040903120)+W(1,-1126178115,-1111752353,1055245806,-1104413152)+W(2,1032546581,1034216546,-1088954301,1019748625)+W(3,-1097752958,1042101074,1058677046,-1089277711)+W(4,1042272246,1043290796,-1087007443,1028591970)+W(5,-1118367610,-1112722386,1048637958,-1139620757)+W(6,-1138081685,1034532478,-1140548675,1017306737)+W(7,1017774855,1030093406,1029648824,1033828758);WS(1050645916,1033550915);
sum1=W(0,-1118556120,-1107219907,1039060494,1030703933)+W(1,-1108262319,1043545243,-1145250020,-1110184190)+W(2,1043230361,-1086762442,1059123936,-1110311564)+W(3,-1094947334,-1104041435,1057758321,-1100512367)+W(4,-1103841584,1058293794,-1096913490,1044416908)+W(5,1018079143,-1097977901,1039599795,-1132472896)+W(6,1032598742,1041130248,-1151122424,-1147952664)+W(7,1008731683,-1123331655,-1123961290,1022228292);sum2=W(0,1040267615,-1112791644,1010515766,1024308395)+W(1,1048409433,-1110540665,1032365064,1041630361)+W(2,-1107165984,-1088877638,-1090038325,1040244783)+W(3,-1086251247,1053330884,1049266570,1037513285)+W(4,-1113957324,1057377190,1028890653,-1098504745)+W(5,-1107976602,1057673067,-1103454662,1039941233)+W(6,-1122078587,1024512949,1041725883,-1103661415)+W(7,-1111525785,1042772014,-1143554104,1024552651);WS(1051978908,-1102077462);
sum1=W(0,-1132165009,1045761591,1013540534,-1106078467)+W(1,-1117187439,1051430047,-1096198150,1014010165)+W(2,-1108837850,1060286099,-1130717861,-1121999817)+W(3,1037183202,1046972447,-1085387922,1030141582)+W(4,1028473682,-1128782822,-1105434962,1008925446)+W(5,1045655273,1028047735,-1101497054,1018887490)+W(6,1025240990,-1178179968,-1110960744,-1122721428)+W(7,1033734537,1035331372,-1102517015,1026996307);sum2=W(0,1023072493,974611657,-1101792417,-1112121991)+W(1,-1125531833,1047662948,1051899312,1037288067)+W(2,1030396885,1035351326,1080526024,1042102238)+W(3,-1118880502,-1090109833,-1069022098,-1113214479)+W(4,1027419877,-1110942359,-1087739606,1032127295)+W(5,-1161271853,1033315833,1036440530,-1143368203)+W(6,1019485964,1010290822,-1124554651,-1132377096)+W(7,1028708277,-1156901930,-1114394737,-1141169667);WS(1058455886,-1096183470);
sum1=W(0,-1105360672,-1112611850,1060616064,-1104075433)+W(1,-1112035684,1032735242,1033545283,-1111940643)+W(2,-1105059667,1048808633,1051085625,-1115570744)+W(3,-1103063975,1042817013,-1097442806,-1097216429)+W(4,-1112638549,1058906409,-1102188695,-1107200030)+W(5,-1104182327,1047248804,-1103229812,-1108265532)+W(6,-1106250503,1047193699,-1106970890,-1119499692)+W(7,-1103319623,1057710235,-1109193562,-1106901731);sum2=W(0,-1135393651,-1114274101,-1117767149,-1110403581)+W(1,-1131009665,1016197705,-1130986601,-1136444051)+W(2,1004138181,-1143366053,1026922589,-1112183743)+W(3,-1111055824,1051632163,1048764370,-1121253595)+W(4,-1134829555,-1111579981,1036257166,1009689523)+W(5,-1127256265,1038147066,-1112945554,989872074)+W(6,-1113946573,1025185617,-1143942149,-1123668797)+W(7,1010148467,-1137859715,-1123068365,-1123716033);WS(-1103618872,1023577831);
sum1=W(0,1041702149,1057806109,-1091063799,1022049043)+W(1,1032268701,997904496,-1106010126,-1102660926)+W(2,1021026046,1057675340,-1090884608,1046995709)+W(3,1032012647,-1129702414,-1094077941,-1100395542)+W(4,1023662430,1056283152,-1094732237,1050214494)+W(5,-1111766616,1039716321,-1100869456,-1096243374)+W(6,-1112590149,1049875952,-1105996279,1047647816)+W(7,1042231991,1054291708,-1098425069,-1100607928);sum2=W(0,1073849383,-1072987051,1040644897,1022236877)+W(1,1069429154,-1080077361,-1098556311,-1128073567)+W(2,1070121938,-1076996297,-1124122091,-1118780260)+W(3,1066905653,-1086754234,-1095882058,1027638421)+W(4,-1087755842,1060194671,-1096747545,1012182550)+W(5,-1080359597,1067521081,1048551041,-1129108935)+W(6,-1073496568,1074652354,-1092793409,-1130588931)+W(7,-1070245916,1075883836,1058695504,1001812541);WS(1010873216,-1100304815);
sum1=W(0,-1154187044,1045945805,-1102222630,-1113759340)+W(1,1028741017,1051026373,-1103217414,1022415534)+W(2,-1114247598,1058185854,-1097780567,-1105383733)+W(3,-1099084427,1059904750,-1091550752,-1111624796)+W(4,-1104966895,1052860588,-1108718914,-1114326870)+W(5,994968800,1038231664,-1110664976,-1110217221)+W(6,-1113228468,1040557287,1017403508,-1108875519)+W(7,1028263947,1032103905,1017865354,-1109350878);sum2=W(0,-1114639192,-1100331344,1035901690,1012858414)+W(1,1039210963,1069298433,1043940791,-1126620651)+W(2,1047528380,1080352854,1030733380,1036529177)+W(3,-1099502544,-1067747068,-1084572959,-1099630936)+W(4,1041344628,-1080996124,1003800555,1043527822)+W(5,-1108972702,1032407437,1045939813,-1119860547)+W(6,1021595805,-1121090437,-1121287047,-1145664907)+W(7,-1116883371,1016604711,-1122259179,1034105585);WS(1044302648,-1104457270);
sum1=W(0,-1115179413,1029190781,-1108944696,-1115207128)+W(1,-1101763748,1045938783,-1102720380,1013266237)+W(2,999269803,1034810490,1038235218,1025157307)+W(3,-1106420033,1055724168,-1101615303,-1105407492)+W(4,1041707045,1053359959,-1094303566,1045691477)+W(5,-1128885581,-1100033022,1043259278,-1113033137)+W(6,-1110751840,1037908026,1011056201,-1114066571)+W(7,1029110244,1035419021,-1123807773,-1113282394);sum2=W(0,-1117238549,-1109414288,-1115125848,1023475415)+W(1,-1115295266,-1128441429,-1121954754,1024122972)+W(2,1033754662,-1104877135,1018153798,1002646200)+W(3,-1095438097,1053172955,1038786210,-1106263750)+W(4,-1106855439,1056926069,-1104082080,1034246226)+W(5,1011060498,-1108715476,1043675119,1025499367)+W(6,-1117460606,1036225840,1008366234,-1107090094)+W(7,1032653312,-1114450934,1018894269,1013321052);WS(1068015911,1043072951);
sum1=W(0,-1127841379,-1101991257,1041159238,1035382295)+W(1,1035792844,-1091973141,1040826438,-1098419575)+W(2,-1155603908,-1110119406,1052691071,1043898844)+W(3,1018341976,-1095315357,1053842800,1030324599)+W(4,-1111053022,-1107228151,1042506601,-1108241413)+W(5,1044403491,-1111437840,1050221764,1043481954)+W(6,-1112313859,-1097295811,1030249017,-1098652336)+W(7,1005208661,-1103670736,1046985745,1032196534);sum2=W(0,-1134315530,-1125722365,-1135384490,-1118933131)+W(1,1033824390,1019923991,998580556,1027495017)+W(2,-1112867968,1039464885,-1093291922,1045077367)+W(3,1039862799,-1087456726,-1061395777,1087627027)+W(4,1005143468,-1119378177,-1106942114,1034637079)+W(5,-1114969920,1042059959,-1121281813,-1148550692)+W(6,1030354102,-1113780490,1034179020,-1118611519)+W(7,-1131720457,1009971850,1032010553,-1117397469);WS(1060186318,-1131602669);
sum1=W(0,1022422466,1050205114,-1099402401,-1112848707)+W(1,-1102049002,1052887138,-1102238785,-1106285089)+W(2,1050775273,1052456073,-1100510367,1039607513)+W(3,-1097141731,1049038746,-1088759247,-1098786589)+W(4,1056872997,1040490435,-1122526498,1048305743)+W(5,-1099566807,1039690728,-1099089908,-1104192622)+W(6,1025667942,1043457059,-1102859210,1032266998)+W(7,1032894309,1045856748,-1106963501,-1118572779);sum2=W(0,989650422,-1120410947,1047633630,-1081060940)+W(1,-1108234271,1050158699,1066272871,-1074101109)+W(2,-1120122674,-1092804082,1075424781,-1079387458)+W(3,1045260201,1024838498,1061734347,1050344942)+W(4,-1114112879,-1125280065,-1091697647,1043540897)+W(5,1037831837,-1119936776,1003481288,1039609275)+W(6,-1117501250,-1114421818,1011848513,-1131708367)+W(7,1024132690,1035095434,-1106020023,1026462111);WS(1057810382,986287880);
sum1=W(0,-1105255365,-1110142276,1041191503,1050176972)+W(1,1027767677,-1106138450,1031406779,-1130243957)+W(2,1037147968,-1092238936,1027980992,1041310918)+W(3,1038550632,-1090210593,1049547413,1041377527)+W(4,-1136315263,-1089134184,1052451129,-1115128119)+W(5,1035749561,-1093055129,1057536820,1033537239)+W(6,-1115075413,-1097497096,1050343212,-1127231554)+W(7,1028257967,-1089420006,1058108487,1031965752);sum2=W(0,-1099824579,1070708271,1075074245,-1097074436)+W(1,-1113793286,-1104040400,-1084124078,1023561426)+W(2,1053512844,-1091831853,-1082668198,1039380165)+W(3,-1112943238,-1072548459,-1072503695,1009216489)+W(4,1041834894,-1093778092,1056090411,1043969626)+W(5,-1099992002,1057576575,1053907302,-1107563771)+W(6,-1120789532,1064181862,1058602971,1034348623)+W(7,1024916046,1051972140,1054786345,-1106961801);WS(-1075707047,1038147646);
sum1=W(0,1038492938,1050722763,-1095596015,1040870942)+W(1,-1115961531,1026800423,-1103730686,-1122935577)+W(2,1036899040,1055626176,-1091210886,1047700685)+W(3,1041066756,1052178217,-1090286882,1036539085)+W(4,1038870159,1027667391,-1094135001,-1102625947)+W(5,1045702796,1053246416,-1095582752,1048523811)+W(6,1022987667,-1100305296,-1109653838,-1105859960)+W(7,1044017707,1049962981,-1093296229,-1117734303);sum2=W(0,-1145353723,1027969677,-1115030411,1052090154)+W(1,-1113260796,-1095928859,1031463199,-1110261785)+W(2,-1112198364,1052169305,-1108227013,1041877601)+W(3,-1113367096,1052353113,1051016428,-1099630700)+W(4,1007958125,-1129450520,1041462653,-1087173862)+W(5,1047146251,1051473061,1045242344,-1102681887)+W(6,-1122974002,-1091037095,1032341221,-1095485390)+W(7,1021064313,1050393555,1020102815,-1111896409);WS(-1102302520,1068562064);
sum1=W(0,-1130894152,-1101486038,1044130034,1031789673)+W(1,1029216267,-1094978851,1029251017,-1102217970)+W(2,1029150351,-1104755260,1053252560,1042516209)+W(3,1029804895,-1093484995,1050941559,1040658618)+W(4,-1108054071,-1110271975,1036880709,-1113036417)+W(5,1046304488,-1106599349,1050863202,1041743615)+W(6,-1107326720,-1102131284,-1128083416,-1102226940)+W(7,1018120580,-1102274525,1047248574,1032422999);sum2=W(0,1019111797,1022527979,-1131519898,1029130971)+W(1,-1123809812,-1111065998,1023737355,-1117143513)+W(2,1006739898,1031759809,1045357020,-1106220344)+W(3,1041109085,-1095097056,1082939698,-1064938697)+W(4,-1126211453,1034613952,1027342607,-1122955245)+W(5,1028972357,-1107360163,1033832936,-1112280546)+W(6,-1118372569,1033659253,-1112248823,1032152906)+W(7,1025713585,-1118642675,-1118824157,1028082979);WS(1066566439,-1125753148);
sum1=W(0,1020091828,-1096367972,1038767583,1030663671)+W(1,1041951168,-1098758994,1048997640,1025331919)+W(2,-1130301450,-1093467737,-1130818632,-1108818909)+W(3,1052053147,-1089881409,1064063659,1044746920)+W(4,-1131231944,-1092544881,-1116991019,1022962726)+W(5,1033588155,-1098181717,1042770882,1041997189)+W(6,1009411772,-1110070786,1046860728,1018371147)+W(7,-1116682291,-1096392077,1027361773,1038578846);sum2=W(0,-1105507764,1019815533,-1136431769,1024962860)+W(1,-1149004498,1047279899,-1121679526,1041000955)+W(2,-1098298748,-1106660204,-1096656341,-1107413740)+W(3,-1115729482,1058550934,1058580319,1027135608)+W(4,-1094576030,1031191852,-1098228632,-1101441076)+W(5,-1111478010,1032716298,1041490224,1035067556)+W(6,-1129010369,-1117054989,1047791827,-1123460834)+W(7,1018600957,1019851909,-1106522387,1005788722);WS(1050996380,1066787661);
sum1=W(0,1042843177,-1109518091,-1098674409,-1112832565)+W(1,-1120310187,1043911830,-1097687209,-1133582755)+W(2,1033453959,1059519229,-1096304487,-1116528532)+W(3,-1107450543,1061971625,-1098011863,-1105396874)+W(4,1017862620,1051823058,-1095767039,1033796902)+W(5,-1134072575,1046601317,-1095249970,999923683)+W(6,1025308393,1042112788,-1098354285,1030029487)+W(7,1033769739,1046863997,-1098417599,-1109771063);sum2=W(0,-1103321099,-1087654445,-1098379129,1013739975)+W(1,1033376724,-1114493691,-1096458683,1015354012)+W(2,-1108916223,1049058628,1036368268,-1121134774)+W(3,1033194077,1065240604,1054396447,-1115257551)+W(4,1038197771,-1128335788,1049730119,-1129699908)+W(5,1032881798,-1094150295,-1108472207,1021079748)+W(6,1017830932,1006224046,1031462702,-1117224382)+W(7,-1138730935,-1112103411,-1102017203,1038189385);WS(1027314912,-1081149641);
sum1=W(0,-1109480125,1051429188,-1118844062,-1097611416)+W(1,-1114947760,1053252314,-1094077252,1034118735)+W(2,-1101195017,1058130398,-1113091794,-1104617542)+W(3,-1132100201,1061393767,-1085308129,1035982720)+W(4,-1103759537,1057940398,-1102037735,-1114189097)+W(5,1044342469,-1104522586,-1094497965,1036294793)+W(6,-1111893319,1055491172,-1103334896,-1128796810)+W(7,1051194426,-1120202825,-1094870250,1030785028);sum2=W(0,-1131039707,-1098833779,-1147567565,1035790053)+W(1,1024995350,-1124760267,1057070390,995065627)+W(2,-1104486127,-1078713050,-1091843304,1037354874)+W(3,1015537291,-1065942779,-1081156610,-1154356731)+W(4,1053996441,1047686732,-1094140189,-1107145709)+W(5,-1103676904,1084085461,1060423478,1026796886)+W(6,1047124046,1064521940,1046849692,-1108476011)+W(7,-1111129691,-1093915430,1018309905,1038591472);WS(-1081542375,1044780323);
sum1=W(0,1026864081,1046719985,-1098857847,-1114219435)+W(1,-1100303790,1054288460,-1108679899,-1104586877)+W(2,1048337215,1054459103,-1098101851,1041408644)+W(3,-1098110473,1048901488,-1093175556,-1098306531)+W(4,1054474587,1041639871,-1104037973,1046672715)+W(5,-1099969099,1034589376,-1107626335,-1104199322)+W(6,1023999910,1043694031,-1101510966,1022681657)+W(7,1028627178,1046235480,-1106600025,-1126646775);sum2=W(0,1017985090,1024212320,-1099849981,1067245211)+W(1,1027847194,-1098721130,-1081468176,1074345814)+W(2,1036519222,1050387030,-1070464929,1070597407)+W(3,-1113167123,-1094712479,-1096550174,-1088417301)+W(4,1037009826,-1100822056,1057690620,-1104880956)+W(5,-1113380621,1028269032,1042714784,-1102737214)+W(6,1031131596,1009055356,-1145638655,1000105719)+W(7,-1115360802,-1113841920,1046010973,-1112342255);WS(1059294542,1020616832);
sum1=W(0,-1157534552,-1096856701,1050532499,-1112831597)+W(1,1039080142,1044861738,1041652423,1046540791)+W(2,-1097783100,-1089052876,1057029426,-1098369827)+W(3,1031217968,-1085780263,1047119538,1040272239)+W(4,-1164216296,1044573672,1039715347,1024931118)+W(5,-1138897989,-1097342660,1043073721,-1103025619)+W(6,1026686634,1041475528,1040308239,1045404192)+W(7,-1105498094,-1105558033,1048391538,-1114523696);sum2=W(0,-1106291706,1040318024,-1114208076,-1142193319)+W(1,1001372950,-1105705183,-1116263519,-1145917455)+W(2,-1099590495,1045484852,-1108179199,1036599633)+W(3,-1093748925,1061316313,1049891427,-1108356360)+W(4,1015225205,-1098311584,1040668388,-1148092276)+W(5,-1105937891,1041085521,-1111581107,1032743264)+W(6,-1112612361,1028378294,-1115787941,1021281994)+W(7,995169980,1035732349,-1113959318,1024794158);WS(1059376718,-1137270291);
sum1=W(0,-1118257199,1043258576,-1114290826,-1112002778)+W(1,1037392427,-1106073464,-1124279079,1022160871)+W(2,-1097794403,1054680411,-1115190716,1045843716)+W(3,1035766677,-1099046488,1052189312,1011458515)+W(4,1026067385,-1088020070,1054691490,-1110958220)+W(5,1032186693,1041392887,-1097245116,1046761570)+W(6,-1108679762,-1113652045,1025610423,-1117145658)+W(7,-1139304576,-1111666975,-1123561026,1032305501);sum2=W(0,1025244035,1033595807,1016573022,1002397687)+W(1,-1122852568,-1087687504,1048825911,-1104089806)+W(2,-1092220395,1066421651,1058107887,-1130145014)+W(3,1038019467,1047700223,-1089540205,-1111655831)+W(4,1048072683,-1084925862,1045215493,1032935415)+W(5,-1113553750,1050883425,-1098430697,1015641098)+W(6,-1119930901,-1105555859,1041208433,1001885951)+W(7,-1139793711,-1146566911,-1124843514,-1131703250);WS(1058596686,1013962118);
sum1=W(0,1000024554,1052551424,-1088298614,1039656505)+W(1,-1127551432,1049056438,-1098656348,1034731345)+W(2,-1100000762,1057499982,-1090756927,1019232187)+W(3,1035333436,1036076760,-1097067922,1033429441)+W(4,-1122612871,-1127972943,1040213184,-1125045580)+W(5,1044766998,-1116046252,1015197910,-1113717771)+W(6,1041477861,-1118015335,-1123679237,1037833508)+W(7,1051562743,-1099275107,-1122278672,-1122272135);sum2=W(0,-1104434141,1048601996,1033271157,1004930429)+W(1,1029025211,-1091369704,-1119340081,1028438774)+W(2,-1078497608,1052827694,1025214064,-1106316897)+W(3,-1079110377,-1106615386,-1109539756,1034989376)+W(4,-1085502108,-1115334546,1050957039,-1108631008)+W(5,1066279808,1037382016,-1106594885,1023198169)+W(6,1062913146,-1122817088,1036274829,-1134348613)+W(7,1068620036,1048688798,-1118139306,-1139733884);WS(1044771128,1023341948);
sum1=W(0,-1156220044,-1092336191,1051560294,1036528391)+W(1,1034545464,-1098819215,1044146859,1029114797)+W(2,1033488922,-1096491302,1051910286,1022761170)+W(3,-1111313058,-1086850728,1045449190,1029767950)+W(4,1038420969,-1102939421,1053458817,1041877300)+W(5,1008511890,-1100928894,1038883707,1034675856)+W(6,1013986230,-1115524377,1012126018,1037411178)+W(7,1011084871,-1089482302,1046748951,1043196317);sum2=W(0,-1071004894,1076503146,1057610169,-1122913984)+W(1,-1080574884,1066884159,-1107351326,-1130255370)+W(2,-1089987082,1058011283,1054000347,1038970611)+W(3,1049506323,-1098882467,-1090234844,1014162118)+W(4,1065282653,-1084978169,1030898490,-1114000490)+W(5,1062249589,-1088626314,-1090230279,1022492087)+W(6,1060165079,-1082249713,1044380003,-1131621088)+W(7,1070844945,-1077734377,-1096516163,1013009282);WS(-1111817840,-1134998409);
sum1=W(0,1022731056,-1102901203,1029699069,1021112442)+W(1,1045262352,-1094315057,1052915216,-1107194439)+W(2,1044888721,-1085070720,1058770140,-1097785743)+W(3,1029818259,-1111793509,1057078063,-1117717150)+W(4,-1105915720,1055206544,-1095183540,1040740592)+W(5,-1114660906,1046806370,-1097451385,1036425016)+W(6,1027479949,-1123039746,-1112670352,1005586201)+W(7,991785104,-1136267423,-1114500629,1016465988);sum2=W(0,-1129690332,-1113356803,997943457,1015499837)+W(1,1030842707,1026318374,-1119512995,-1180561029)+W(2,-1123486113,1041923626,1037525758,-1144014736)+W(3,1054087898,-1089332833,-1088292904,1037328869)+W(4,-1105176966,1068558125,1040210770,-1107365912)+W(5,-1097205966,-1141184456,1050151959,-1114055561)+W(6,-1098021434,-1107728348,1018682892,1009592392)+W(7,-1106929221,-1104288342,1006954668,1013301204);WS(-1100650808,1043653943);
sum1=W(0,1038392637,1044290651,-1095199164,1033771919)+W(1,1032036848,1040683515,-1115398639,1038316223)+W(2,-1120772452,-1106266873,-1094097345,1042896310)+W(3,1043637149,-1090111931,-1097393337,1045751664)+W(4,1040259489,-1133467790,-1104941765,-1159203906)+W(5,1047398869,1044787930,-1101572298,1015063331)+W(6,1038054351,1023591523,1016760834,1030908740)+W(7,1050576478,1037223428,-1102689443,-1125005703);sum2=W(0,1018053796,1046306039,-1101305605,1031448374)+W(1,1000548496,1043541862,1029064982,-1112893849)+W(2,1049079603,1010667960,-1116813778,1021972628)+W(3,1039189619,1064529690,1038487223,-1105518867)+W(4,-1128574308,1047996002,-1100258391,1037842238)+W(5,-1118597354,-1087406141,1048794746,1033382833)+W(6,-1106984497,-1095617964,-1114392997,1021089548)+W(7,-1104543855,-1086946593,1045938007,-1140458600);WS(-1121537248,1047151836);
sum1=W(0,-1096325448,1052654400,1000450324,-1116556387)+W(1,-1113135282,1035132488,-1110395025,1023519458)+W(2,-1098188693,1046868890,-1139200797,-1111260975)+W(3,-1112146268,-1134150082,1049727010,-1110207458)+W(4,-1108791588,-1129891280,1041189572,-1104838938)+W(5,-1117696601,-1098847494,1056884317,-1098805187)+W(6,-1123869651,1032919412,1041128337,-1146298440)+W(7,-1114157115,-1107856679,1058220805,-1103148146);sum2=W(0,-1142864271,1043572739,-1125571574,-1107989855)+W(1,1021304865,1026011378,1028667063,-1140649559)+W(2,1043366966,-1102859954,1022196210,1020722946)+W(3,-1107584343,-1080136051,-1072538638,-1132367054)+W(4,1014758407,-1103597159,-1076945816,1041979768)+W(5,-1130465374,-1115654645,1048815254,-1126224006)+W(6,-1120740451,1046511165,1072551214,1027667511)+W(7,1000478551,1053224660,1074776028,1048839210);WS(-1086568910,969651201);
sum1=W(0,-1128189323,-1096064919,1047521403,1043461231)+W(1,1044154939,-1089612648,1054908701,-1099266659)+W(2,1043534732,-1084798775,1056987371,-1113308531)+W(3,-1114366976,1053159863,1057685165,-1152040120)+W(4,-1098469330,1053431542,-1089249613,1042761408)+W(5,-1101372520,1050787607,-1090701774,1049635020)+W(6,-1123038043,1036747448,-1105030179,1010635844)+W(7,-1132910587,-1116020373,1027268120,1018344000);sum2=W(0,1042932965,-1103892922,-1104364155,-1139842168)+W(1,-1103428495,1060495074,1060109323,-1118896922)+W(2,1039997403,1052448567,1064108701,991756114)+W(3,-1093583228,-1075640666,-1073056297,-1097481656)+W(4,1044856824,1057723154,1055665788,1040659602)+W(5,-1121819542,1057002090,1060503917,-1099984054)+W(6,-1177180368,-1112150955,-1116550688,1034919451)+W(7,1028413178,-1118134166,-1110515035,1041069777);WS(-1084093518,-1116656412);
sum1=W(0,1002008836,1058416208,-1096672513,-1112390467)+W(1,959481663,1026388179,-1109778819,1023428581)+W(2,-1104590931,1059097973,-1088144465,-1112632704)+W(3,1050696243,1042079029,-1096264126,1040470858)+W(4,-1106608235,1041679827,-1101432288,-1102954054)+W(5,1047962207,1049127990,-1100480244,1047012782)+W(6,1030562773,1031439243,-1113594772,-1112144502)+W(7,1015783795,1042535660,-1093923750,-1145396437);sum2=W(0,1007960967,1027407916,-1129957403,-1132155403)+W(1,-1110192070,1010716935,1018303319,-1121935910)+W(2,1049899326,-1097456083,1037417999,-1137993343)+W(3,1056650247,-1070859565,-1094713389,-1142796285)+W(4,1078512141,-1068241064,-1096379657,1039214170)+W(5,1081472440,-1079514242,1043613542,-1111213656)+W(6,1058404171,-1094427160,1025537830,1032528613)+W(7,999915485,1030657127,-1116925932,1024356221);WS(1052225948,1018668194);
sum1=W(0,-1120453498,1051775516,-1117579103,-1107074656)+W(1,-1123160289,1048325451,-1111291056,-1112742544)+W(2,-1108654867,1058214550,-1093397513,-1147977428)+W(3,-1104839613,1064670427,-1091445969,-1119335936)+W(4,1041378113,-1126638409,-1092047898,-1109154218)+W(5,1036965515,1049967085,-1099225050,1034167881)+W(6,1044186084,-1096299613,-1112850625,-1138567959)+W(7,1034438594,-1128237844,-1112057991,1019177609);sum2=W(0,-1121001958,-1117606942,-1103097305,-1130038396)+W(1,-1148685985,-1111847761,1021935234,-1112487949)+W(2,1018483434,-1120566718,1049895592,1038078839)+W(3,1021815720,-1076982600,-1081972918,-1125812992)+W(4,1049361594,1074852012,1051964198,-1152546434)+W(5,-1108634723,1048076514,1040925857,-1104919092)+W(6,-1132118692,-1102180777,1017568960,1026180028)+W(7,-1105580672,-1116866514,1040155911,-1123068468);WS(-1096382876,-1091051652);
sum1=W(0,-1116126267,1057278592,-1096000788,-1116910752)+W(1,-1113197617,1048826126,-1097274020,-1140807037)+W(2,-1112424211,1058810754,-1088739494,1039925053)+W(3,-1124324715,1056304110,-1091311905,-1132679170)+W(4,-1136579346,1041995897,-1114916522,-1107191661)+W(5,1040875430,1016295122,1038826452,-1119450067)+W(6,-1113905512,1024916389,-1128507781,1023437062)+W(7,1017323784,1042534003,1017648027,-1098370349);sum2=W(0,-1120311657,1025682064,1036682152,-1108273289)+W(1,1036113080,-1107470193,-1108061877,1012612647)+W(2,-1109045199,1035621932,1051542033,-1101063214)+W(3,1029662296,-1118009189,-1101792442,-1076098595)+W(4,-1122358251,1045290388,-1093646778,-1080861029)+W(5,-1114085873,1009830751,1056395710,1039398973)+W(6,1016737279,1035169596,-1091719234,1065137390)+W(7,-1115835645,1030264440,1052430993,1072502688);WS(1040082544,-1114755812);
sum1=W(0,1017784372,-1110974758,1040296296,1024480479)+W(1,1037505264,-1108514902,1041424680,-1104471944)+W(2,1045745417,-1095324708,1054913780,-1106439461)+W(3,1019379817,1052579502,-1106396419,-1115066496)+W(4,-1109308706,1058051822,-1087512533,1040857799)+W(5,-1124056118,1046163210,-1093666877,1001482384)+W(6,1025470519,1038459986,-1106674096,995688529)+W(7,1039469090,998280780,-1109356390,-1108404770);sum2=W(0,-1162396366,1045315846,1034748092,1035646876)+W(1,-1117720653,-1118054954,1034773210,-1100298043)+W(2,-1104226850,1057942904,1043388435,-1097646834)+W(3,-1105580348,1059476362,1067689202,-1093789486)+W(4,-1105643813,-1090022037,-1083232471,1040357620)+W(5,1031813906,1045409162,-1101262587,-1113573448)+W(6,1011045214,-1106412098,-1124577575,1012935222)+W(7,1018164327,1023977529,-1102021751,1024454049);WS(1036525168,-1082462584);
sum1=W(0,-1116308971,-1085123800,1057675329,1019612704)+W(1,1037298441,-1087372070,1051660338,1027541711)+W(2,1027885589,-1086414101,1059597873,-1109257541)+W(3,-1122874917,-1096064460,1059581688,1041073820)+W(4,-1154089797,-1099879381,1052784510,1028059367)+W(5,-1108384819,-1104319094,-1117339864,1045372305)+W(6,1028179743,-1127380522,1039251609,1031554934)+W(7,1003463273,-1096394215,-1110971807,1053758651);sum2=W(0,1060691160,-1081285622,-1080809247,1052276353)+W(1,-1103295177,-1090050073,1050684042,-1106187369)+W(2,1035985281,-1102851017,-1087522637,1048638013)+W(3,-1085964582,1072728426,1060852217,-1090587145)+W(4,-1105398566,1060511611,1058511518,1029176048)+W(5,-1107551093,1033954581,1041242888,-1094879840)+W(6,1049030608,-1086630634,1028348456,1046256182)+W(7,-1090293163,1058069039,1062481845,-1087039462);WS(-1074352935,1040600857);
sum1=W(0,1042034194,1057627204,-1090157751,1024364622)+W(1,1028652336,1025049468,-1105875707,-1105990299)+W(2,1024054004,1057567995,-1088931067,1048022018)+W(3,1030695172,1022098295,-1095088235,-1100928004)+W(4,1029627411,1052602222,-1094832321,1049957878)+W(5,-1117605317,1039437212,-1104356174,-1095846092)+W(6,-1114002447,1049556590,-1107260676,1047165477)+W(7,1041624512,1053416947,-1101255271,-1098759166);sum2=W(0,-1075440350,1073165865,-1112383192,-1148975848)+W(1,-1079714919,1065983198,1048707236,-1115591486)+W(2,-1079134350,1068716226,-1135853868,1038054064)+W(3,-1081735031,1066499710,-1098543278,-1125971282)+W(4,1055569671,-1095308006,1021808504,1040311395)+W(5,1066585571,-1080754250,-1108920844,-1110109816)+W(6,1071644179,-1074800849,1050977418,1035370814)+W(7,1075476470,-1073191304,-1090378667,-1120408347);WS(1041022776,1033480094);
sum1=W(0,-1132576057,1026327841,-1110434490,-1119031508)+W(1,-1123321429,1042302896,-1109312954,1021323174)+W(2,1028959481,1052457903,-1089918670,1029242558)+W(3,-1104176578,1063677500,1025377120,-1118638740)+W(4,1046472198,-1097607903,-1090934974,1013298461)+W(5,-1121060138,-1123802109,1046523967,-1106699146)+W(6,1027556403,-1118671609,-1112257611,1030036314)+W(7,-1115611836,1039698959,1000531209,-1116635705);sum2=W(0,-1106027239,1049930690,-1110218398,1034564779)+W(1,-1122286155,-1127267122,-1108798456,1018367610)+W(2,-1102546078,1041115945,1058786995,-1095860458)+W(3,1055155948,-1091935564,1075372513,1043590800)+W(4,-1096754888,1052250618,-1071163371,-1112711414)+W(5,1032068992,-1103388917,-1123143101,-1119323979)+W(6,-1121774513,1038737216,-1121707895,1016553114)+W(7,1036170969,-1108790214,1032355550,1017858173);WS(1055618972,-1117202987);
sum1=W(0,1030962480,1039894129,-1101932469,1031993659)+W(1,-1101414710,1053882576,-1089999221,1048656807)+W(2,-1098100923,1057347458,-1085784352,1043352452)+W(3,-1111740150,1049814740,1051098296,1031031542)+W(4,1036980413,-1090053902,1056052448,-1104607674)+W(5,1041005827,-1088233382,1051763396,-1119077705)+W(6,1021681163,-1105970903,1044301630,1022017143)+W(7,-1112834597,-1117339136,1032801282,1039235901);sum2=W(0,-1114659327,-1101541229,-1107338771,1039378885)+W(1,-1123577690,1043634319,1057974128,-1111523166)+W(2,1042921002,1066882360,1050113378,1040130625)+W(3,-1105097716,-1077668162,-1080704784,-1104122760)+W(4,1042773509,1037629509,1051155360,1012227066)+W(5,-1093975266,1058638399,1052705661,-1110420726)+W(6,1032061179,-1108208741,1008396554,-1125218199)+W(7,1000405669,-1131856909,-1111189711,1025207949);WS(-1091387548,-1116324289);
sum1=W(0,1026642697,-1112220622,1049897926,1027958127)+W(1,1044682252,-1093973688,1047211372,-1098544270)+W(2,1041967213,1046046637,1050365286,-1112662293)+W(3,1032214050,-1086442024,-1112122925,-1106755108)+W(4,-1131062694,-1099996941,1046223135,-1116559746)+W(5,1015214154,1053177927,-1132096750,1034258897)+W(6,-1137069945,-1098783494,1024489425,-1111108842)+W(7,-1110158325,1037567917,1042021623,1031638516);sum2=W(0,-1108095393,1011776651,-1101257730,1019145070)+W(1,1016776222,1024100809,-1105403134,1032882678)+W(2,977935538,-1097248934,-1101986254,-1124027994)+W(3,-1122468710,1057627889,1060632600,-1103033100)+W(4,1019959206,1042194141,-1090719303,1039533068)+W(5,1030099429,-1117226417,1037412790,-1110127978)+W(6,-1104930054,1051928720,-1109292621,-1125661478)+W(7,1002749526,1041814459,-1115385474,-1108291818);WS(1057965518,-1118811194);
sum1=W(0,-1104352985,-1106566686,1052732873,-1107147458)+W(1,1038892389,-1112643723,1003767366,-1114250980)+W(2,-1105058276,1026830542,1060358287,-1096574819)+W(3,1042490232,-1091938531,1019887594,1048844541)+W(4,-1121521774,1058056073,-1118338013,1024329053)+W(5,-1099594944,-1101314965,1042464324,-1107780158)+W(6,1033536020,-1098044778,1024562028,1032778872)+W(7,-1095161930,1039936570,1046000094,-1107207172);sum2=W(0,-1116205334,993944814,1032713731,-1106373772)+W(1,1042905425,-1113078065,-1104977559,1039619019)+W(2,-1109155755,1044406596,1048672381,-1115343154)+W(3,1044205280,1040105843,-1104277422,1048332350)+W(4,1035597621,1043112037,-1103087244,999501191)+W(5,1008636092,-1123380436,-1153474446,-1106439836)+W(6,1036458751,-1105268129,1015784078,1021528398)+W(7,-1092853308,1005260887,1036094123,-1106473413);WS(1053420700,1049909457);
sum1=W(0,-1115258034,-1106165874,1050401361,-1113250117)+W(1,1034071238,-1089903413,1041332866,1023742249)+W(2,1027276239,1036166247,1049384898,-1130552842)+W(3,-1115686559,-1100423414,1037380859,-1120158506)+W(4,1041096236,-1093491554,1052388787,1037333727)+W(5,-1102788144,1049835542,1034784425,-1103514783)+W(6,1034068157,-1095323722,1031952854,1037170040)+W(7,-1107460367,-1110396954,1050882791,-1114330639);sum2=W(0,-1112500393,1024557142,-1136367764,1020782048)+W(1,1028289272,-1165623582,1035333264,-1122738507)+W(2,1049127312,-1095250820,-1114028070,1025362120)+W(3,1086771603,-1062269001,-1087155359,1034731082)+W(4,1048088739,-1095068995,1022077560,-1125007838)+W(5,1020087240,999933935,1034746908,-1120796207)+W(6,1014851096,-1135945992,-1120864651,1026594640)+W(7,-1146529543,1025716258,-1127622484,-1128255426);WS(1063806286,1027083983);
sum1=W(0,-1114823180,1045480194,-1118427516,-1109705966)+W(1,1030313470,1039206373,-1106496703,1020453816)+W(2,-1111791457,1061885616,1010686340,-1103432478)+W(3,-1111977289,1050451993,-1083830979,1039658735)+W(4,-1108043857,1057912708,-1099420545,-1114670584)+W(5,1019729830,1036575619,-1105267089,-1109909656)+W(6,-1114640622,1039765761,-1131920190,-1113587473)+W(7,1033983240,1034424532,-1125840468,-1112770081);sum2=W(0,1033978022,-1122290634,1016780797,-1164938552)+W(1,-1100194899,-1091664523,-1103111994,1002490582)+W(2,1033701105,-1071413373,1047766898,-1105595809)+W(3,1050426550,1075108998,-1096749849,1051489664)+W(4,-1104028404,1062092502,1027350687,-1108336227)+W(5,1034191613,-1103668501,-1131589290,1021076655)+W(6,-1141130302,1034149895,-1131724600,-1149103768)+W(7,1010895851,-1140709165,1027888251,-1131210373);WS(1058288590,1045994186);
sum1=W(0,1018135640,-1093342072,1052167946,1038262801)+W(1,-1123855059,-1096797372,1041780692,1015346466)+W(2,1040223430,-1086390197,1052872019,-1132654257)+W(3,-1112801779,-1105293320,1059840396,-1134794696)+W(4,1036317947,-1091216419,1051866430,-1117665797)+W(5,-1098800665,-1117054299,1050341107,1012611090)+W(6,1034707665,-1096209979,1048652350,-1139713758)+W(7,-1096517871,1023470716,1050625648,1010858330);sum2=W(0,1041114210,-1099008397,-1123917868,-1125418381)+W(1,-1099284356,1047276236,-1111523652,-1120564910)+W(2,1038292116,-1081084758,1037708884,1020505319)+W(3,-1092208278,-1071665325,-1086778305,-1100128811)+W(4,1054381469,1054365119,-1101037019,1024474915)+W(5,-1104534119,1081581342,1026238413,-1125603475)+W(6,1025804573,1062322644,-1134916894,1025011807)+W(7,1033400256,-1093538640,1052085127,-1103707544);WS(-1088887374,1070119449);
sum1=W(0,1040460421,1052058645,-1090595183,-1105506686)+W(1,1041554590,1048371361,-1115426747,1029097335)+W(2,1013850612,1048732808,-1094790815,-1129317061)+W(3,1038262022,1042754705,-1087902678,1001782464)+W(4,1042710919,1047384127,-1106656361,1038072126)+W(5,-1106869091,1054439312,-1090477876,-1131475029)+W(6,1044864290,1032508990,-1122940954,1028935005)+W(7,1046057615,1042772520,-1091795237,-1119515740);sum2=W(0,1024604999,1056461606,1071685965,-1075212110)+W(1,-1112923336,1030035123,1066713447,-1080779344)+W(2,1027433809,1050727550,1068313262,-1078194918)+W(3,1025504127,-1090534096,1028028856,-1153515923)+W(4,1007245204,-1105339223,-1081367671,1068056044)+W(5,-1144581942,-1095507508,-1078816510,1069903211)+W(6,-1129047399,1043793174,-1081156501,1064173276)+W(7,1021294865,-1095638178,-1090770344,1060536751);WS(1040470840,1011790950);
sum1=W(0,1015095158,1043725275,-1105535856,-1108386992)+W(1,-1120734562,1051465082,-1108441440,1030149375)+W(2,-1116691398,1058372660,-1095343471,-1112701741)+W(3,-1118217942,1055309890,-1081260869,1026499745)+W(4,1019898057,1046636817,1047492563,1032201014)+W(5,-1123629847,1044874098,-1093096561,-1115283258)+W(6,1034607368,1043010193,-1105294873,1028457510)+W(7,1041822001,1040878843,-1106259483,-1112399171);sum2=W(0,1022830461,-1117997331,1037270083,1023767946)+W(1,1021246145,-1110014342,-1125616185,-1130403951)+W(2,1015115055,-1111993293,1044158772,1025796328)+W(3,-1114703004,1036613835,1073620398,1050812248)+W(4,-1120910531,1023720090,-1076883688,-1112499600)+W(5,1015720307,-1117604953,-1087890801,1028283916)+W(6,983370825,-1120463052,1025754476,-1104874229)+W(7,-1123770073,1036937497,-1113287589,1033737696);WS(1058309838,-1101980246);
sum1=W(0,-1118965337,-1110907254,1038642111,1028903966)+W(1,-1098779704,1049643561,1038999679,-1108240479)+W(2,1049071256,-1081904943,1054751182,1040887994)+W(3,-1113399754,1042163763,1056093093,-1118832415)+W(4,1026571427,1052138696,-1083956910,1046797612)+W(5,-1110569018,-1106220306,1050507993,-1104697276)+W(6,-1131332475,1025191299,-1146247429,-1123883748)+W(7,-1128371676,-1129449041,1030864044,1017502086);sum2=W(0,-1137655511,-1111106723,1035105104,-1112318930)+W(1,1043191716,1033166752,-1112822728,1027572041)+W(2,-1121349336,1033268708,-1104857525,1035699332)+W(3,-1097517035,1052576386,1055574555,-1097542777)+W(4,1046822141,-1107318253,-1114990789,-1110157019)+W(5,-1129223371,-1102887232,-1121581721,1031007843)+W(6,-1116759551,1040601750,-1152414880,-1157281192)+W(7,-1124684976,993535634,-1107957817,1025775603);WS(1063710542,-1111213649);
sum1=W(0,1039559517,1052251350,-1101160384,-1113889808)+W(1,-1110192145,1049489370,-1097695264,1031901152)+W(2,-1107309859,1058328276,-1093740712,-1104513406)+W(3,-1118762901,1061120005,-1096321197,-1097003636)+W(4,-1108199122,1049656673,-1097289639,-1112381384)+W(5,1037245627,1033876357,-1114972772,-1176476024)+W(6,-1139769966,1041987905,-1102516745,1022802380)+W(7,1035326852,1045428971,-1103522251,-1115185874);sum2=W(0,1026803387,-1115186477,999853755,-1112425236)+W(1,1021750253,1031459540,1031446318,-1106593609)+W(2,1040812059,-1116326399,1058720440,-1086524651)+W(3,-1107480079,1040651083,1071698983,-1075753828)+W(4,1041131835,1020594503,1051128601,-1096266051)+W(5,-1115082464,1033768858,1034660038,-1108942599)+W(6,1006187407,-1132516997,1027131696,-1123360193)+W(7,1001155939,1015478283,1041372466,-1104453127);WS(1039772272,-1082982873);
sum1=W(0,1039127452,1049032497,-1098139952,-1155633625)+W(1,-1106264016,1053169593,-1088020664,1043520647)+W(2,-1104546353,1060522592,-1087153807,1040400554)+W(3,-1145518233,1056693961,1038834197,-1139907193)+W(4,1041713673,-1095982984,1053429837,-1104883452)+W(5,1044410893,-1088607916,1048228018,-1103034636)+W(6,1039725795,-1099512929,1030077856,-1134131855)+W(7,1007790526,-1120546088,-1130616150,1012687882);sum2=W(0,1032987173,-1092902636,1027660911,1032111389)+W(1,-1102803435,1037122437,1039508875,-1101516234)+W(2,-1097110538,-1083842457,-1115097563,1001644292)+W(3,-1101871105,1067610414,1067552095,-1104358647)+W(4,-1101555589,1033006847,-1096151174,-1145661076)+W(5,-1123533577,1041814167,1026567371,-1104681426)+W(6,-1098769512,1045724867,-1107225085,1020958965)+W(7,1048796624,999019252,-1105667947,1028203943);WS(-1101412664,1073047832);
sum1=W(0,-1113880945,1059007377,-1091904865,-1133362719)+W(1,-1123950537,1047579477,-1097814305,-1131741454)+W(2,-1109995975,1060416389,-1087199740,1032803377)+W(3,-1123565085,1056063051,-1092124214,-1113780884)+W(4,-1123728428,1046383171,-1099567891,-1113889390)+W(5,1035385983,1040643140,1038341800,-1126485237)+W(6,-1115318676,1033389702,-1119557930,1012558775)+W(7,1010675502,1041003725,1042882861,-1096461162);sum2=W(0,1013686761,1030949359,-1109223248,-1132915573)+W(1,-1123503757,1039110679,1035635962,996209923)+W(2,1035262859,-1105775253,-1106751414,1029135163)+W(3,-1115490710,1027204409,1057425426,1070858778)+W(4,1025861040,1019519396,1043312829,1067133266)+W(5,980681483,-1111394964,-1098000154,-1098902818)+W(6,-1125276038,1024413043,1051287795,-1083268694)+W(7,-1129892230,-1126757058,-1103421662,-1073095921);WS(-1103532344,-1105840701);
sum1=W(0,-1106756472,-1105825052,1050195304,1044840709)+W(1,-1106322913,1053932942,1007328528,-1104890465)+W(2,1029810954,-1086676361,1057202097,-1144507642)+W(3,-1096389739,-1098358914,1054492326,-1098185309)+W(4,-1116067305,1054020609,-1093369370,1032208700)+W(5,1035916925,-1096691570,1012599092,1048715303)+W(6,-1105566449,1051257001,1027855335,-1100267787)+W(7,1034505108,1026552303,-1101687900,1050640157);sum2=W(0,-1111707317,-1101137684,-1116414033,-1103752872)+W(1,-1119262447,-1109186725,-1107841286,1034593530)+W(2,1037989791,1049211868,1056722210,-1110917586)+W(3,1056036881,-1099242284,-1094543747,1049861706)+W(4,-1105645897,1038198606,1053421235,1030171051)+W(5,1006194414,-1118866635,-1104714858,-1103907620)+W(6,-1146663095,-1109483964,-1120693058,1032413269)+W(7,-1129479912,-1114787638,-1115357885,1029169157);WS(1045178680,-1115117954);
sum1=W(0,-1102680211,1048681528,1019008549,1008490315)+W(1,-1123018420,-1113607536,1040296293,1012835273)+W(2,-1116849368,-1092105355,1035615004,1027033246)+W(3,1024407336,-1093530556,1061339424,-1128145511)+W(4,-1107241006,-1096193779,1057711678,-1103222073)+W(5,1026392201,-1102060551,1055864515,-1110547491)+W(6,-1107918421,-1102337510,1045891981,-1110097884)+W(7,-1123314455,-1095199752,1052562824,1020395952);sum2=W(0,-1108321996,-1096948503,-1112108000,1026091852)+W(1,-1115537892,-1104693583,-1112710060,1022753169)+W(2,-1106228104,1047339287,-1126080161,-1120501740)+W(3,998645667,1055675007,1051246853,-1105262859)+W(4,-1112292909,1049114511,1041989299,-1123292948)+W(5,1035781218,-1100682049,1025978716,-1139782977)+W(6,-1111036660,1032758858,1034053890,-1111667328)+W(7,1018530825,-1113969306,-1113712936,1033000622);WS(1044590904,1058699692);
sum1=W(0,985175380,-1092606720,1051210502,1009220799)+W(1,1034192409,-1090621088,1050384326,-1109361592)+W(2,1020554347,-1093618783,1055009987,-1117059707)+W(3,1024014533,-1113905855,1062574818,-1128567457)+W(4,-1115433194,-1096920415,1054554325,1015981863)+W(5,-1128687821,-1112503613,1031218808,1039114097)+W(6,1008304190,-1100279725,-1105751509,-1127205548)+W(7,-1115445028,-1101027255,-1144235755,1035507338);sum2=W(0,1036009101,-1108619644,1010492213,-1131279719)+W(1,-1117283755,1041337919,-1100684466,1035041542)+W(2,1033667347,1012813669,1015579759,-1124020763)+W(3,-1107239966,1053310286,1056064408,1025470531)+W(4,1034685217,-1103814148,1050883237,1032198922)+W(5,-1128406639,1029066827,-1113069964,-1104788458)+W(6,-1123321687,-1109499964,-1098878001,1024066141)+W(7,-1125402335,-1123197815,-1096911819,-1108347132);WS(1044030776,-1089132931);
sum1=W(0,1034269487,-1093699058,1045160768,1040395197)+W(1,1032883970,-1097458090,1050995424,-1135242887)+W(2,1042439154,-1086092656,1057188990,1040422743)+W(3,1044751430,-1078975458,-1096290982,1048952172)+W(4,1019707982,1035194756,1032938655,1042217766)+W(5,1041434446,1038040390,1043682915,1043586045)+W(6,-1133288904,-1131544335,1022768458,1029073256)+W(7,-1128708109,-1101499019,1043305900,1044718778);sum2=W(0,1043294282,-1107262777,-1132728616,-1112978295)+W(1,-1127265324,-1107127922,-1133435576,-1101649503)+W(2,1035036911,1048700262,-1115280193,-1142433873)+W(3,1051203976,-1114081637,1060204569,-1138065032)+W(4,-1092441683,1027047222,-1096051714,1049542158)+W(5,1037063919,-1087538045,1059699424,1027406094)+W(6,-1095318743,1043898666,-1091030613,1036599707)+W(7,-1096741875,-1114635611,1057805441,-1117298502);WS(-1083489614,-1078579141);
sum1=W(0,-1113694287,-1091060438,1048678744,1022130309)+W(1,1048897616,-1104759380,1055607032,1045345264)+W(2,-1104500498,-1089217572,1025763911,-1098656951)+W(3,1029397720,-1096433234,1056656214,1045280313)+W(4,1039983475,-1090900481,1055730826,1003335600)+W(5,-1099529286,-1103761763,1039576037,-1104729181)+W(6,1047818144,-1126261903,1050842685,1045845834)+W(7,-1100400745,-1098862766,1044462332,-1124798927);sum2=W(0,1034867092,-1113896283,-1089397746,1053130734)+W(1,1036831152,1008734783,-1143881728,1048547317)+W(2,-1155378720,-1107821706,-1090933436,1050664536)+W(3,1050005016,1036439980,1067046868,-1081990202)+W(4,-1109019109,-1105188391,1074023168,-1073616958)+W(5,-1107857756,-1103852014,1073004488,-1073650181)+W(6,1025727369,-1113326142,1071596064,-1078582463)+W(7,-1105627363,1036502992,1068047188,-1079035066);WS(-1123566816,-1118788492);
sum1=W(0,1034266605,-1131696345,-1102436480,1029920799)+W(1,-1136553988,1054570946,-1101485920,1027694719)+W(2,1032767842,1043367745,-1093672570,1029228634)+W(3,-1119057557,1057910725,-1081257723,1038070160)+W(4,1032596498,1051309065,-1104247863,1041012541)+W(5,-1138237144,1050053561,-1097237249,-1104490509)+W(6,1034235800,1044754161,-1100737384,1036672371)+W(7,1038972738,1047609962,-1118734125,-1101643609);sum2=W(0,1001205015,-1108935456,-1123729961,-1151981614)+W(1,1006355343,1048575251,1037564428,-1123825361)+W(2,1030505158,-1114918170,-1096130861,1015236500)+W(3,-1119701641,-1088419213,-1068662368,-1095410362)+W(4,1039794598,1032736312,1076967646,1049774729)+W(5,-1107202062,1045905661,1068403675,-1105335733)+W(6,1026836118,-1116946341,-1104305708,1050153445)+W(7,-1115440174,1003805295,-1124006983,-1103176791);WS(-1103567160,1051728620);
sum1=W(0,1022317012,1037463598,-1094952698,1033922872)+W(1,-1105517764,1027268637,-1107670055,1024776175)+W(2,-1109296554,1052072875,-1103880757,1038888053)+W(3,1030946149,-1094107172,1052944567,1043766492)+W(4,1032988986,-1087396213,1057943536,-1110506946)+W(5,-1117957958,-1098739651,1052382091,-1108829569)+W(6,1025729823,-1104965205,1036164793,-1132271979)+W(7,1009731405,1017302004,1041821631,1015545129);sum2=W(0,1031290011,-1127050317,-1113481669,-1080536402)+W(1,-1114551402,1026829489,1042490649,-1076466135)+W(2,-1137203270,1032334734,1043198364,1038797044)+W(3,1025723227,-1098446681,-1127701979,1074254195)+W(4,1020823723,1041359246,1057793899,1035340712)+W(5,-1107112701,1041376772,-1100591458,-1118262367)+W(6,-1156747895,1034398482,-1114292550,1013380262)+W(7,-1140368490,-1104694439,1037536680,1032104302);WS(-1106439480,1029090439);
sum1=W(0,1034559195,1042655458,-1102396839,1026400220)+W(1,-1151887836,1030625962,-1115609614,1035325646)+W(2,1020849475,1059377738,-1089162129,1042909598)+W(3,1042053132,-1084013087,-1083731653,1039293086)+W(4,1043127920,-1107145304,1052971191,1029716960)+W(5,1043814293,1032281331,-1107154457,1024778063)+W(6,1037260390,1040913704,-1113717087,1028666946)+W(7,1043715864,1033172451,1017680531,-1130742978);sum2=W(0,-1129107524,1021999108,1022835844,-1129901940)+W(1,-1123636938,-1148550480,1016982596,-1140398984)+W(2,-1116921954,-1104180688,1016773924,1030858450)+W(3,1035143287,1058583951,1054454385,-1117386658)+W(4,1036996009,-1112895549,-1097314323,-1108156993)+W(5,1026655402,-1116180274,-1099699990,-1118751234)+W(6,-1117010042,-1131502740,-1132536424,1016259828)+W(7,-1126794884,-1138164712,-1129763396,-1117013506);WS(1048151864,1059242544);
sum1=W(0,-1122367849,-1097114939,1043794348,1026875087)+W(1,-1121466768,-1097911384,1033810391,1014185912)+W(2,1042165293,-1085899247,1063564267,-1106211614)+W(3,-1116044868,1042506911,1042284551,-1111561384)+W(4,-1105437493,1056857214,-1089674786,1040868541)+W(5,1037358179,-1105063934,1049648847,1028107682)+W(6,-1125163356,-1123578292,1021855394,-1111395274)+W(7,-1111398955,-1106114902,1045389303,1010402126);sum2=W(0,-1139648101,-1110557326,-1106733442,1039330638)+W(1,-1108856547,1041627874,-1106727608,987619817)+W(2,1015236663,1032833232,1048813377,1025349119)+W(3,-1095822659,1054902128,1055403310,-1095503796)+W(4,-1137977893,-1098765424,-1097123375,1050144719)+W(5,1038373686,-1121592121,1045561320,-1108448514)+W(6,1015865663,-1106594443,-1106386080,1041979856)+W(7,1025690243,-1117564251,1017823319,-1105901385);WS(1058511566,1043187024);
sum1=W(0,1042620242,1041476871,-1106861387,1043942651)+W(1,1027981614,1044640335,-1120607404,1040914531)+W(2,1037513401,1039039385,-1101062960,1040902562)+W(3,1050564856,-1085132912,-1089194338,1048598306)+W(4,1040390932,-1095196494,1032203084,1019897185)+W(5,1044188393,-1116362934,-1134658518,1032634704)+W(6,1032851398,-1107832665,1026497359,1027555603)+W(7,1043046140,-1105825814,-1105488567,1032742569);sum2=W(0,-1094808435,-1083260450,1041967320,1026111290)+W(1,-1132385524,-1089624726,-1102801635,1034887813)+W(2,-1110994277,-1098133391,1050258559,-1123786474)+W(3,1039748829,1063143581,1037743779,1033106845)+W(4,1038866141,1043371703,1048943341,-1110363077)+W(5,1012861192,1040218148,-1112998265,-1121754906)+W(6,1030487914,1012758152,1031702418,1012203560)+W(7,-1132742376,1052570990,-1105604919,-1111765769);WS(-1087236686,1061665912);
sum1=W(0,-1115274057,1023071688,-1107980923,-1119301463)+W(1,-1116162424,1030200068,-1101866270,-1128116268)+W(2,-1104461343,1054050807,-1092884195,-1109238785)+W(3,-1093387666,1067462106,1056570668,-1095571507)+W(4,-1113556238,1050597447,1044256537,-1103733247)+W(5,-1115159031,1031104576,-1106234576,-1111522325)+W(6,-1126942285,-1121547516,-1128835891,-1111458030)+W(7,-1121543315,1042315272,-1114796114,-1109780718);sum2=W(0,-1127633710,1024134807,-1114424195,-1109129714)+W(1,1024854732,1020748524,-1098546148,1025355297)+W(2,-1123781128,-1117094752,-1079772750,-1102118069)+W(3,1040493279,1065417820,1059484680,-1114766469)+W(4,-1105896535,1047826025,-1107504040,1033237727)+W(5,1033983514,-1102101577,1049649199,-1154145757)+W(6,-1122459292,1040101538,-1105983778,1012710689)+W(7,-1120616672,-1124130304,1041220419,-1123999628);WS(-1092106140,-1084163121);
sum1=W(0,1036347305,1049849489,-1101083230,-1106738110)+W(1,1016904817,1040213041,-1152694122,-1115216475)+W(2,1034414494,1056746079,-1083169173,1039797369)+W(3,1040590819,1048812489,-1107117385,1022569263)+W(4,1047670567,-1084779712,1051667767,-1112982247)+W(5,1030378702,1040726752,-1109066592,-1125038036)+W(6,-1114654031,1033236350,1024925978,1025136605)+W(7,1037868673,1034988241,-1107106473,-1146668256);sum2=W(0,-1144361879,-1111008682,-1092072719,1021883158)+W(1,-1128843246,-1134810723,-1121102479,-1116668390)+W(2,1005924247,1041181160,1045581242,-1109114373)+W(3,-1104940693,1054697191,1046555600,-1113715104)+W(4,-1123234701,1052731012,-1103970223,-1128555074)+W(5,1030348431,1042931729,-1104348933,1032936433)+W(6,1032437115,-1112071203,-1113690885,-1136719027)+W(7,1024671661,-1111460488,-1129885552,-1114960949);WS(1058637774,-1109876822);
sum1=W(0,-1123254812,1042623060,-1126486401,-1112485473)+W(1,1041301297,-1105094644,-1111052512,1037949088)+W(2,-1108082435,1059472952,-1094910408,1016105496)+W(3,-1113241451,1043969956,-1094009726,1038892497)+W(4,-1110973875,-1113269955,1058531737,-1093047519)+W(5,1027216056,1026816394,-1100061186,1032398170)+W(6,1014894339,-1130602892,1032486130,-1128303438)+W(7,1019588394,1026167148,-1117291247,1021704844);sum2=W(0,1019183838,-1103677237,1041385745,-1115238116)+W(1,1031923668,1026573624,1025625867,1024201143)+W(2,1049015983,-1101357077,-1095136476,1024442030)+W(3,-1096362417,1060010174,-1096248497,-1122837727)+W(4,1005830618,-1122620605,-1115221092,1034369966)+W(5,1036998273,-1106684685,1049273019,1031554545)+W(6,-1119396253,1023743335,-1112424814,1004099770)+W(7,-1125844722,970656667,1011280453,1010302645);WS(1068382951,-1145853862);
sum1=W(0,-1109092968,-1104283584,-1126224104,-1142984099)+W(1,-1120835030,-1104742016,1048835390,1035504970)+W(2,1015957108,-1087137628,1060142968,1044651720)+W(3,1033165317,-1082841532,1050512116,1036256010)+W(4,1015780402,1048723479,1050625794,1040271692)+W(5,-1098982451,-1119342334,1046183055,-1112268532)+W(6,-1106789039,1037068029,1033167819,-1115364877)+W(7,-1105810191,998682871,1042826568,-1113754717);sum2=W(0,1042289605,-1105845074,-1105090355,1041479887)+W(1,-1123754179,1032442894,-1106552079,1028813354)+W(2,1040865617,-1090127653,-1075116096,-1087510643)+W(3,1025996190,1055606718,1073431719,-1084272058)+W(4,-1100913998,-1104101067,1067916428,1045036562)+W(5,-1118459936,1026136504,1042119939,-1131666845)+W(6,-1114401734,1031986833,-1112990087,1021173748)+W(7,-1118182115,1045409779,1031635830,-1131440550);WS(-1115823328,-1115141930);
sum1=W(0,994860217,-1096937968,1034643656,1022968545)+W(1,1043355533,-1093401724,1045563268,-1100277972)+W(2,1046651158,-1082957735,1056739037,-1106135459)+W(3,1031967699,1057829358,1053028032,-1113373017)+W(4,-1112906011,1054780763,-1085595451,1036473238)+W(5,-1139800861,1049387203,-1100812438,1042166401)+W(6,1032268536,1029694230,-1112691098,-1109328859)+W(7,1021673189,1032667294,-1163065290,1026417494);sum2=W(0,1041009418,1006794492,1023178506,-1126244586)+W(1,-1106230161,1034312638,-1120362931,1021996758)+W(2,-1113994011,-1108126219,-1105213924,-1131146954)+W(3,-1100787264,1060460225,1054015707,997147503)+W(4,-1102450993,-1119222967,1053508358,-1107185372)+W(5,-1114680808,-1097084093,-1133314452,-1126416406)+W(6,1031764893,-1125377404,-1141774536,-1126617106)+W(7,-1145068408,-1105852265,-1120752408,-1131039214);WS(1044911928,1063248560);
sum1=W(0,-1117210934,-1089987573,1050931427,-1154913199)+W(1,1045807559,1006551364,1049202419,1049427019)+W(2,-1116245664,-1085623154,1044690392,-1098224261)+W(3,-1122601008,-1098705597,1056494849,1043742399)+W(4,1041679280,-1089608778,1054654497,1009817082)+W(5,-1102494868,-1098692501,1047881833,-1102952115)+W(6,1044187563,1040126000,1043119951,1048685800)+W(7,-1101059428,-1100421777,1043071666,-1132265536);sum2=W(0,-1110897864,1031814971,1060526454,-1090228093)+W(1,-1104703066,-1126406622,1034850394,-1097166620)+W(2,1039476246,-1112535334,1060516426,-1091926928)+W(3,-1102025112,-1088994686,-1088701567,1063814816)+W(4,1041770976,1050082866,-1072347435,1074296249)+W(5,1044782005,1038057456,-1075073775,1073862535)+W(6,-1112640404,1029663347,-1077197270,1067261757)+W(7,1045848501,-1098794387,-1081012351,1067785227);WS(-1105546040,1026157880);
sum1=W(0,1040950836,1040614249,-1102499357,1036650571)+W(1,1036866652,1043435937,1032157499,1032871003)+W(2,1045419231,1048836647,-1088963702,1035867609)+W(3,1057171433,-1092874056,-1078642173,1040635958)+W(4,1039696013,1049109967,-1094603626,1039966133)+W(5,1040737235,1037560064,999044599,1035782037)+W(6,1031337694,1039556030,-1107844556,1034875342)+W(7,1043417390,1020658754,-1101965321,1029450491);sum2=W(0,999804672,1033414560,-1131242272,-1111239120)+W(1,965076992,-1142972544,-1152459008,-1114613368)+W(2,1017997216,-1117537424,1043660652,1024438240)+W(3,-1113573416,-1080122522,1068973644,1009242816)+W(4,1015814944,-1116987776,-1113471168,1026341216)+W(5,1013150208,1009041344,1023678672,-1111376032)+W(6,1004325632,1030258512,-1115573696,-1124670336)+W(7,-1116017408,-1123867424,1025739248,1011147520);WS(-1081027239,1060388068);
sum1=W(0,1040945153,1049191505,-1103567931,-1142725077)+W(1,1018532824,1052335227,-1106690587,-1126830164)+W(2,1048158700,1053224518,-1098210230,1044049241)+W(3,1050078256,-1089652372,-1079677805,1037048166)+W(4,1043330564,1050009062,-1090769236,1037549983)+W(5,1045983912,1019623144,-1102526621,-1124021470)+W(6,1034126717,1043374892,-1113976903,1031972104)+W(7,1042366848,1037373643,-1106920486,1000910717);sum2=W(0,1029289565,-1119356133,-1126159585,-1119814653)+W(1,1023484285,1031916514,-1111485988,-1133461586)+W(2,1041097307,-1120749829,-1121314077,-1112201820)+W(3,1044843621,1057057740,1024531885,1001931237)+W(4,-1101664529,1055633817,-1102656055,1035253182)+W(5,-1108647964,-1098024997,1016983721,1019582313)+W(6,-1111945130,1038083406,-1105960100,1011319026)+W(7,-1129898257,-1101101054,1022769465,-1110859200);WS(-1121436896,-1083449266);
sum1=W(0,-1131437006,1057845458,-1096100393,-1112818966)+W(1,-1126965659,1026072602,-1106937331,1025271436)+W(2,-1106898372,1058188821,-1089458543,-1120770471)+W(3,1049661628,1047051462,-1093909527,1039868950)+W(4,-1110051320,1036301673,-1105302990,-1101852248)+W(5,1048826500,1049513187,-1097831955,1048680544)+W(6,1018834023,1026266705,-1115312055,-1111779257)+W(7,1030351624,1043516478,-1094725407,-1137214404);sum2=W(0,1025140224,-1118806788,-1126785121,1031495588)+W(1,1016993788,1030590564,-1118559458,991152164)+W(2,-1106156741,1042721449,-1106137914,1038491925)+W(3,-1085967118,1078987048,-1100137345,1040984057)+W(4,-1070014283,1078555235,1044823121,-1111978905)+W(5,-1066270592,1069325982,-1105174392,1030579932)+W(6,-1089828448,1051485796,-1121082393,-1113499951)+W(7,-1115300709,1026006822,1011662011,-1120641633);WS(1060473294,-1125032523);
sum1=W(0,-1118381578,1043924207,1028842287,-1103983036)+W(1,-1131528546,1048790648,-1094915206,1032416951)+W(2,-1103035725,1057928103,1048586166,-1131359957)+W(3,1044891665,-1096003632,-1089668066,1041536420)+W(4,1017562024,-1104437021,1048997587,-1119623443)+W(5,1038728371,-1127678449,-1106021950,1026802338)+W(6,1013193724,-1138265298,1016196772,-1112764523)+W(7,1017619335,1019650740,-1112334062,1028850580);sum2=W(0,-1124013145,1023871771,1041717973,1027246941)+W(1,-1154979909,-1104183315,-1104961174,-1105906795)+W(2,-1113455493,1024353365,-1071159846,-1114760758)+W(3,1042673063,-1099433949,1075222357,1048045634)+W(4,1009341589,1037029004,1061754151,-1101645527)+W(5,-1131887235,-1106752952,-1106459992,1027783079)+W(6,-1126494367,-1136822537,1037905746,-1130069351)+W(7,-1120394460,-1135604889,1020599743,1023779471);WS(1063175758,1049951270);
sum1=W(0,1051934199,-1084051495,1040719576,1028219745)+W(1,1041620825,-1091045702,1046456792,1028165760)+W(2,1053157077,-1089200998,1054477181,-1110307566)+W(3,1019501037,-1103613676,1050464826,1037889601)+W(4,-1121035141,-1103906809,-1098419444,1045652053)+W(5,1024394007,1042850683,-1097805325,1054554722)+W(6,1034798936,-1117239270,1011564046,1031152711)+W(7,999909159,-1106705027,-1091232034,1056053333);sum2=W(0,-1091471926,1062079447,1055700238,1015596856)+W(1,1042259987,-1095572989,1041645665,1033532620)+W(2,-1103057728,-1089203271,1037140407,1035045090)+W(3,1049412228,-1092861102,-1093629070,1042934527)+W(4,1044973062,1034556296,-1095940003,1032040702)+W(5,-1116401558,1047552828,-1106623325,-1106239816)+W(6,1011000463,-1110031497,-1107294450,1033073048)+W(7,-1130123924,1051271629,1053844390,-1095799213);WS(-1085388366,-1090694979);
sum1=W(0,-1123787314,1044273497,-1108110651,-1115475932)+W(1,-1119481145,-1130943626,1041576542,-1117135031)+W(2,1032777214,1047368143,-1087220302,1040347561)+W(3,-1112850502,1059845268,1027588771,-1101064470)+W(4,1041751591,-1095680144,1036323946,1037523789)+W(5,-1125429276,1039407200,-1111657568,-1126225621)+W(6,-1140788444,990533574,1021334836,-1134357621)+W(7,-1113892940,1032644049,-1143449895,-1109271006);sum2=W(0,-1107190004,1037736456,-1125693587,-1120404934)+W(1,1013881877,-1105376838,1040619572,-1122228614)+W(2,-1118295314,-1123416196,-1082924015,1051908042)+W(3,-1121103222,1042717593,1068021664,-1087341114)+W(4,-1127822751,-1115549939,1016978358,1042189807)+W(5,-1115317828,1043660085,-1108863865,-1125959243)+W(6,-1126179247,-1126402007,-1136349779,1038966556)+W(7,-1114801766,1040920849,-1107267301,1023515477);WS(1065904679,-1122628785);
return clamp(mstd0 + 5.0 * vsum / wsum * mstd1, 0.0, 1.0);
} // nnedi3
vec4 hook() {
vec4 ret = vec4(0.0);
vec4 samples[8];
samples[0][0] = HOOKED_texOff(vec2(-3.0, -1.0)).x;
samples[0][1] = HOOKED_texOff(vec2(-3.0, 0.0)).x;
samples[0][2] = HOOKED_texOff(vec2(-3.0, 1.0)).x;
samples[0][3] = HOOKED_texOff(vec2(-3.0, 2.0)).x;
samples[1][0] = HOOKED_texOff(vec2(-2.0, -1.0)).x;
samples[1][1] = HOOKED_texOff(vec2(-2.0, 0.0)).x;
samples[1][2] = HOOKED_texOff(vec2(-2.0, 1.0)).x;
samples[1][3] = HOOKED_texOff(vec2(-2.0, 2.0)).x;
samples[2][0] = HOOKED_texOff(vec2(-1.0, -1.0)).x;
samples[2][1] = HOOKED_texOff(vec2(-1.0, 0.0)).x;
samples[2][2] = HOOKED_texOff(vec2(-1.0, 1.0)).x;
samples[2][3] = HOOKED_texOff(vec2(-1.0, 2.0)).x;
samples[3][0] = HOOKED_texOff(vec2(0.0, -1.0)).x;
samples[3][1] = HOOKED_texOff(vec2(0.0, 0.0)).x;
samples[3][2] = HOOKED_texOff(vec2(0.0, 1.0)).x;
samples[3][3] = HOOKED_texOff(vec2(0.0, 2.0)).x;
samples[4][0] = HOOKED_texOff(vec2(1.0, -1.0)).x;
samples[4][1] = HOOKED_texOff(vec2(1.0, 0.0)).x;
samples[4][2] = HOOKED_texOff(vec2(1.0, 1.0)).x;
samples[4][3] = HOOKED_texOff(vec2(1.0, 2.0)).x;
samples[5][0] = HOOKED_texOff(vec2(2.0, -1.0)).x;
samples[5][1] = HOOKED_texOff(vec2(2.0, 0.0)).x;
samples[5][2] = HOOKED_texOff(vec2(2.0, 1.0)).x;
samples[5][3] = HOOKED_texOff(vec2(2.0, 2.0)).x;
samples[6][0] = HOOKED_texOff(vec2(3.0, -1.0)).x;
samples[6][1] = HOOKED_texOff(vec2(3.0, 0.0)).x;
samples[6][2] = HOOKED_texOff(vec2(3.0, 1.0)).x;
samples[6][3] = HOOKED_texOff(vec2(3.0, 2.0)).x;
samples[7][0] = HOOKED_texOff(vec2(4.0, -1.0)).x;
samples[7][1] = HOOKED_texOff(vec2(4.0, 0.0)).x;
samples[7][2] = HOOKED_texOff(vec2(4.0, 1.0)).x;
samples[7][3] = HOOKED_texOff(vec2(4.0, 2.0)).x;
ret[0] = nnedi3(samples);
return ret;
} // hook
//!DESC NNEDI3 (combine_y, nns128, win8x4)
//!HOOK LUMA
//!BIND HOOKED
//!BIND nnedi3_int
//!HEIGHT 2 HOOKED.h *
//!OFFSET 0.000000 -0.500000
//!WHEN HOOKED.h OUTPUT.h / 0.707106 <
vec4 hook() {
vec2 dir = fract(HOOKED_pos * HOOKED_size) - 0.5;
if (dir.y < 0.0) {
return HOOKED_texOff(-dir);
} else {
return nnedi3_int_texOff(-dir);
}
}
//!DESC NNEDI3 (double_x, nns128, win8x4)
//!HOOK LUMA
//!BIND HOOKED
//!SAVE nnedi3_int
//!WHEN HOOKED.w OUTPUT.w / 0.707106 <
float nnedi3(vec4 samples[8]) {
float sum = 0.0, sumsq = 0.0;
for (int i = 0; i < 8; i++) {
sum += dot(samples[i], vec4(1.0));
sumsq += dot(samples[i], samples[i]);
}
float mstd0 = sum / 32.0;
float mstd1 = sumsq / 32.0 - mstd0 * mstd0;
float mstd2 = mix(0.0, inversesqrt(mstd1), mstd1 >= 1.192092896e-7);
mstd1 *= mstd2;
float vsum = 0.0, wsum = 0.0, sum1, sum2;
#define T(x) intBitsToFloat(x)
#define W(i,w0,w1,w2,w3) dot(samples[i],vec4(T(w0),T(w1),T(w2),T(w3)))
#define WS(w0,w1) sum1 = exp(sum1 * mstd2 + T(w0)); sum2 = sum2 * mstd2 + T(w1); wsum += sum1; vsum += sum1*(sum2/(1.0+abs(sum2)));
sum1=W(0,-1106336704,-1134422686,-1097058997,-1096794255)+W(1,-1096428577,-1108910446,-1110459731,-1101174078)+W(2,-1104338237,-1108550970,1036063029,1068454954)+W(3,1045547931,-1102009308,-1122481515,1017740065)+W(4,1041734649,-1135080854,1053379177,1068510503)+W(5,-1114733521,-1146436468,-1107441476,-1113618698)+W(6,-1112016931,-1117701445,-1099451832,-1092648385)+W(7,-1101312270,-1118387353,-1118789516,-1107281979);sum2=W(0,-1107960738,1022891960,-1112828174,-1099542471)+W(1,1028527356,-1124169384,1003609248,1019646072)+W(2,1034572820,1003346080,-1096749055,1067566060)+W(3,-1090311143,1028295012,-1101382023,-1102277943)+W(4,-1105088633,-1103397515,1056062200,-1127174872)+W(5,1048792675,-1106700271,1033154740,1037356874)+W(6,-1147785184,1035529310,-1105585021,1034766166)+W(7,-1117109292,-1116900804,-1121486356,-1114899026);WS(-1075683047,-1087125913);
sum1=W(0,1042687663,1034752002,1020877136,1043598702)+W(1,1032834596,1049059763,1041786741,1050972591)+W(2,1052977914,1046022844,1051043629,1049374510)+W(3,1044576234,-1108783446,-1105784362,-1089957133)+W(4,-1087267578,-1097639380,-1087388173,-1095656786)+W(5,-1108370107,-1101488315,-1111228387,-1108747496)+W(6,1041384601,1034807969,1037740431,1044538321)+W(7,-1113942663,1043415765,1011031587,1034104676);sum2=W(0,-1129327146,-1149557934,1027469999,-1116270499)+W(1,-1107094547,-1114668504,-1136313139,-1115408970)+W(2,-1112916736,-1120018795,-1105442406,1056936993)+W(3,1036431709,1029410453,-1126491682,-1112281372)+W(4,-1109246006,1012425107,1044505132,1054092693)+W(5,1015080154,-1102188513,-1123974759,-1115235380)+W(6,-1168639863,-1122303521,-1114911422,-1109477794)+W(7,-1122292075,1038663029,-1124857486,1004657207);WS(1042212664,-1102203684);
sum1=W(0,-1140902818,1019874102,-1138465404,1041713132)+W(1,1031911135,1032244040,-1122713961,1032066151)+W(2,1040147851,-1104962202,-1102798136,-1085739950)+W(3,-1090423514,-1096835716,1015091005,-1100137137)+W(4,1035472140,1045102086,1044852023,1052255697)+W(5,1050093153,-1114874577,-1125530488,1025859399)+W(6,-1111794429,1033944684,-1122108180,1042129278)+W(7,1026181805,1045351411,1045226448,1037723887);sum2=W(0,1025219442,-1119436548,1041363772,1026037858)+W(1,-1106963956,-1148187164,-1115265228,1027834104)+W(2,-1109152196,-1122141349,1032935700,-1095545125)+W(3,1029288712,1048235476,1017807431,-1124373883)+W(4,1026944460,1040314652,-1124096755,-1132954458)+W(5,1063106013,1044093468,-1119277141,-1115291573)+W(6,-1136900198,-1112897189,-1144192892,1046665648)+W(7,-1112667488,-1091150222,-1098670428,-1099776205);WS(-1106435384,1038338229);
sum1=W(0,1040095954,1019822615,1037825128,1041126536)+W(1,1042659628,1046281616,1025627498,1052688116)+W(2,1057302312,1048464174,1048602738,1046177110)+W(3,-1113571175,1010729037,-1116720143,-1090676327)+W(4,-1085504617,-1109673285,-1088007186,-1089584127)+W(5,-1112427435,-1099904421,985851280,-1109333660)+W(6,1038469973,1008999077,1047759857,1042217259)+W(7,-1122205838,1042535855,1020820192,1034203799);sum2=W(0,1016257202,1025056091,-1123344133,-1117490597)+W(1,-1139226916,-1121712633,1032149092,1018740994)+W(2,1059204215,1059357388,-1096239491,-1080318626)+W(3,-1097775023,-1121076469,-1108589001,1042934709)+W(4,1078138204,1057901024,-1075026282,-1073900782)+W(5,1041808545,1040778731,1040543247,1013253724)+W(6,1045786159,-1115583727,1040463834,1043123901)+W(7,1021989454,-1105966927,1015040126,-1147555881);WS(-1079558823,-1098708322);
sum1=W(0,-1107155318,1025234303,1015859078,1036194249)+W(1,-1109510417,-1106597869,-1106784003,-1107821257)+W(2,-1102044491,-1098872409,-1087610848,-1086405173)+W(3,1049149960,-1113006787,1034815041,-1109243348)+W(4,-1157836704,1050456336,1055919296,1051086989)+W(5,1049231261,1047976577,1037659280,1045770027)+W(6,1018716763,1032647774,1043448582,1041211303)+W(7,1032229161,-1113988824,-1114873522,-1115826050);sum2=W(0,-1115121954,1012713185,-1120959275,979525395)+W(1,1031308048,1023425822,1008898041,1015643115)+W(2,1038073794,-1114116718,1048906430,-1089285214)+W(3,1044939824,960279117,-1114246838,-1116674868)+W(4,-1128914993,1041575276,1074552079,-1076455267)+W(5,-1081125046,-1109266711,1028966618,-1116558128)+W(6,-1116577465,-1124395325,1055266270,1060162115)+W(7,-1098098687,1021768571,-1124862202,1013382601);WS(1045132600,-1120782135);
sum1=W(0,-1105751784,-1105178898,-1104184899,-1114219853)+W(1,-1110381909,1038688878,-1129240105,1028338913)+W(2,1057393815,1048859946,1059464001,1046945589)+W(3,-1115358437,-1101266388,1006928425,1001553277)+W(4,-1105555137,-1097544977,-1093321826,-1096850414)+W(5,1045680426,1054674458,1040711722,1051440502)+W(6,-1117651397,1030868229,-1113548192,-1114482291)+W(7,-1100710867,-1101910270,-1109195062,-1106616547);sum2=W(0,1017265392,-1109811903,1023756444,-1113627340)+W(1,1014378799,-1145950526,-1129429444,1013677319)+W(2,1041015042,1031690548,1041543835,1061785433)+W(3,-1112539854,1033767962,-1111764061,-1098545742)+W(4,-1100279165,-1110095441,-1121800962,1052269299)+W(5,1027655784,-1103181542,-1110834939,-1106577514)+W(6,1015388608,-1118750728,1018680528,-1143924414)+W(7,-1099334823,1020584168,-1108053853,1036964648);WS(1052573852,-1122511817);
sum1=W(0,-1122539822,1036520122,-1150669710,-1131456914)+W(1,1027717464,1032118773,1021054902,1030809195)+W(2,-1107197216,-1104137920,-1095755763,-1089160552)+W(3,-1090293588,-1090056564,-1092174087,-1086001910)+W(4,-1123108403,1038549849,1032946604,1050538028)+W(5,1052989852,1057974832,1053464075,1057808582)+W(6,1051517474,1023654291,1039184399,1041388597)+W(7,-1168884669,1033029075,1028526105,1041880934);sum2=W(0,-1085894681,1038192816,-1098445483,-1102898046)+W(1,1008806191,1050638036,-1102617523,1057325981)+W(2,-1108201039,-1090848333,1052221636,1071505414)+W(3,-1098981857,-1086351349,-1096799400,-1088620184)+W(4,1070882268,-1093216289,1067999858,1073865984)+W(5,1058878464,-1083525828,-1107159037,-1083206959)+W(6,-1081052443,-1102549623,-1087793608,-1090403840)+W(7,-1095780376,1055133376,-1096503933,1053790412);WS(-1073219892,-1080326418);
sum1=W(0,-1114077580,-1142635506,-1142955026,-1123237842)+W(1,1038107057,-1103324917,1026598572,-1095875035)+W(2,-1101602915,-1103425331,-1090278522,-1092662145)+W(3,-1091646784,-1114692451,-1101848592,1038718196)+W(4,1057495924,1053716920,1055741332,1051447237)+W(5,1052494629,1049044089,1043005848,1047828379)+W(6,-1151047116,-1114784094,-1111276924,-1121668701)+W(7,1000704387,-1109204280,1010568075,-1156952092);sum2=W(0,-1121663397,-1116542136,1042431779,1037730633)+W(1,1010053773,-1137348615,1028087910,-1119025600)+W(2,-1095443331,1050195534,-1123573301,-1100504352)+W(3,1043186658,-1102861372,-1110454800,1040229501)+W(4,-1067370736,-1071776975,1068672794,1077012119)+W(5,1070664889,1045361006,-1123945395,1027642294)+W(6,1005231721,974104521,-1111985184,1047585075)+W(7,1016528922,-1109020232,1037668055,-1117277443);WS(-1130027456,1047744266);
sum1=W(0,1030328637,-1100312969,1036569044,1044449278)+W(1,-1106699970,1046212150,-1104762293,-1124975021)+W(2,-1103440100,1043447132,-1096543805,-1093151398)+W(3,1024264999,-1115860524,1041344218,1032410566)+W(4,1050534604,1038395889,1037345619,-1106526388)+W(5,-1115006287,1035372917,980910400,1044066628)+W(6,-1130350917,-1105733872,1043114871,1022399622)+W(7,1020228332,1024836117,-1123108872,-1112803412);sum2=W(0,1029880722,-1098453144,1029103498,1067660000)+W(1,-1094604015,1046293202,-1104816365,-1117927817)+W(2,1033391383,1041649400,-1095624145,-1082091368)+W(3,1056223691,1027973488,1034193475,1034286113)+W(4,-1137819024,-1137377888,1040796761,-1080643124)+W(5,-1102259819,-1121978412,-1148596400,1041009105)+W(6,-1114516031,1025620716,1035240799,1066795978)+W(7,-1098376459,1036814117,-1107858514,-1114981924);WS(1049012636,1037011386);
sum1=W(0,-1108102978,1042768739,1036457352,-1105146600)+W(1,-1100621772,-1100160944,-1149100234,-1116535239)+W(2,-1097922903,-1089977373,-1083790961,1050515995)+W(3,1053649082,1044221701,1020595485,-1110188826)+W(4,1049818257,1052134241,1059747641,1062551839)+W(5,-1088576433,-1093385002,-1108848982,-1147628986)+W(6,1041216474,-1106782690,-1120768141,975424142)+W(7,1042971413,1047421135,-1142399358,1034144007);sum2=W(0,-1130376652,-1109307779,998991648,-1105231849)+W(1,-1124853008,-1110904873,1033926100,1012787248)+W(2,-1109271051,1040605589,-1117670218,1068278024)+W(3,-1099193318,1035466738,-1111928806,1025845624)+W(4,-1098570547,-1097221185,-1087670872,1068017963)+W(5,-1103240593,1049832589,1018913792,1035573068)+W(6,1029552052,-1097745138,-1101762859,-1100990121)+W(7,-1094879980,-1119653306,-1099498770,1046656503);WS(-1099128120,1074104605);
sum1=W(0,1001695642,-1114738061,-1137881464,1035838167)+W(1,1036976671,1043227732,1024532056,1041576607)+W(2,1031876531,1036082771,1049670772,1045634202)+W(3,1039176783,1044499416,-1115296143,1036111714)+W(4,-1106225286,-1127447088,-1114090766,-1084335000)+W(5,-1092101927,-1106295064,-1108352670,-1103209586)+W(6,1039516460,1037331996,1048871226,1024672505)+W(7,-1111706306,1040216275,1018355325,-1129216251);sum2=W(0,-1125983803,1026289226,1003361806,1036989304)+W(1,-1121376018,-1127516251,999276462,1020382491)+W(2,1057121124,1048908439,1042597022,-1101738899)+W(3,-1101518001,-1114490175,1032222895,-1111061815)+W(4,-1097673861,-1081617292,-1083990029,1066557847)+W(5,1050089807,1021212715,-1107462587,1048167829)+W(6,-1097055530,-1105528539,-1094090339,1060807350)+W(7,1045798092,1007168711,1021142275,1024157832);WS(1043392312,-1114334171);
sum1=W(0,1041086874,1027676176,1029494548,1038182418)+W(1,1033375641,1014428948,1016176348,1036956537)+W(2,1046571639,1051603231,-1114765098,1063881062)+W(3,1036439434,1039261900,1049353410,1039119196)+W(4,-1101297859,-1100311555,-1090719068,-1092551191)+W(5,-1093343060,-1095549099,-1102133676,-1097401399)+W(6,-1108043111,1031499310,-1123479337,1047470620)+W(7,1029157954,-1113522785,1032866554,-1108903402);sum2=W(0,1032922039,1034144522,1035186417,-1106146153)+W(1,995983013,1014708981,-1118508182,-1122673776)+W(2,-1110774431,1041464609,-1089347840,1063858171)+W(3,-1103182741,-1105498679,1046443094,-1107403517)+W(4,1024080221,1024001520,-1102975683,1062496232)+W(5,-1104694448,1034761930,-1113235807,-1126790312)+W(6,-1111786600,1038622987,-1098326560,-1094555153)+W(7,-1110476474,-1107944280,1045574278,-1119406695);WS(1055141020,1060902337);
sum1=W(0,1034435725,-1133288704,1026181508,1033934442)+W(1,1030709219,-1118188821,1027652318,1035419593)+W(2,1057965143,1052483105,1052696320,-1122504460)+W(3,1052884304,1049027177,1046782257,1045790650)+W(4,-1123568702,-1121795134,-1094115828,-1084201687)+W(5,-1093347107,-1096042081,-1098441692,-1101051195)+W(6,-1104499136,1006999415,-1153162900,1029709087)+W(7,1036285529,-1155692311,1013713298,-1111952258);sum2=W(0,1043194323,1017945729,992756489,-1117717167)+W(1,1023440269,-1108161809,1034607052,-1115924363)+W(2,-1070666261,-1075189642,1068575013,1076566585)+W(3,1056539999,-1098049115,1036076910,-1112346970)+W(4,-1098866335,-1106608294,1051129947,1049134123)+W(5,1047751107,-1097073139,1011007330,1016205049)+W(6,-1101126135,1010301074,-1107911121,1046700061)+W(7,1020103457,1026363561,1035420194,-1137869730);WS(-1090579868,1070279725);
sum1=W(0,1032329895,-1102328821,-1113203900,-1098061089)+W(1,-1105344998,1034205973,-1106552005,1041435478)+W(2,1048430680,1050349544,1052980239,1057014372)+W(3,1057962188,1038273502,1046276062,1049777060)+W(4,-1101560157,-1091335294,1039656780,-1084573078)+W(5,-1103450436,1043587871,-1098888483,1002064136)+W(6,-1129281319,1012204235,1033674783,-1115372202)+W(7,-1108117804,-1111454739,-1115265901,-1109943484);sum2=W(0,987673807,1036995374,-1095509641,-1094252408)+W(1,-1119095571,-1103179232,1040985329,-1114181285)+W(2,1027892228,-1102736131,1034852634,1059241808)+W(3,-1103859919,1043446486,-1109795439,1004807604)+W(4,-1103141235,1049007178,-1090760003,1060311666)+W(5,-1129798465,-1100012675,1051746582,-1113144024)+W(6,1005138532,1028221332,-1123669832,-1128511149)+W(7,1032914452,1006285508,-1122773902,987177167);WS(1058381774,-1086956646);
sum1=W(0,1005434106,-1149835360,1034370117,1036055789)+W(1,1007595428,-1173712576,-1122685332,-1119060568)+W(2,-1096145742,-1100460324,-1096424577,1033532617)+W(3,1049990129,1042033667,-1147483724,1021597150)+W(4,1046241393,1039571170,1054608457,-1110152984)+W(5,-1100950084,-1103984787,-1122634471,1016207588)+W(6,1026532260,-1120107684,-1107524072,-1123297125)+W(7,1032832748,1041584782,-1111048693,1023439817);sum2=W(0,1073050559,1069067455,-1096535796,-1073893027)+W(1,-1077684470,1038335059,994568047,-1109196141)+W(2,1049113865,1035642194,-1105600932,-1114871718)+W(3,-1104998692,1034875990,1004288083,1019116562)+W(4,1048373410,-1101089925,1050248373,-1113393188)+W(5,1015693919,1032989733,1024635942,1041247426)+W(6,-1123382260,1035361564,-1105239942,1000972215)+W(7,-1112223483,987872957,1016564448,1019016937);WS(1051792028,1027146209);
sum1=W(0,-1173418992,1031492470,1030866682,-1111745573)+W(1,1037975597,1032231158,1021051177,1029296729)+W(2,-1096555104,-1099279313,-1102472206,-1086728512)+W(3,-1098029143,-1099704976,-1107704157,-1088435526)+W(4,1048715847,1043543405,1045948678,1048944276)+W(5,1053562136,1041023999,1031959404,1046674105)+W(6,1037767898,1032372106,1031937048,1030986133)+W(7,1035090980,1038793940,1031982829,1043937550);sum2=W(0,1076285256,1067013205,1054912747,-1103468782)+W(1,-1082179927,-1086354611,-1086555076,-1077304359)+W(2,-1071495861,-1080654015,-1092768710,1053690657)+W(3,1062196550,1059230433,1065208788,1069826015)+W(4,-1089164092,1044446905,-1089831336,1049463752)+W(5,-1116071286,1055604285,-1102169042,1049830695)+W(6,1024798548,-1130255717,-1111620633,-1129289568)+W(7,1022374674,-1147177200,1008723412,990531682);WS(-1116843232,1041538044);
sum1=W(0,1038718416,1041393778,1023355030,1040958951)+W(1,1040537034,-1112360254,1043346413,1047211822)+W(2,1050813118,1048646402,1043671731,1037057641)+W(3,1050123337,1052799074,1037436293,1042212684)+W(4,-1091780513,-1107072481,-1097953353,-1088265503)+W(5,-1105750724,-1091053114,-1121572392,-1091261766)+W(6,-1107356403,1032833522,-1126022145,-1185162751)+W(7,1038008293,-1123581176,1033129910,-1116284746);sum2=W(0,-1127892588,1025248710,-1127740272,-1114879615)+W(1,-1125515678,-1135605467,1015277154,-1118452308)+W(2,-1090048491,-1124324076,-1092974499,1047668544)+W(3,1042122418,1052455522,-1102075660,1052515578)+W(4,-1076486023,-1080184847,-1080442855,1048567939)+W(5,1066323214,1068938556,1066205534,1058048535)+W(6,1071993665,1067215194,1068762214,1014309155)+W(7,-1079656754,-1077318729,-1083078137,-1086246531);WS(1045082936,1047750074);
sum1=W(0,1017867382,-1105827232,-1139557912,-1098507795)+W(1,-1112138258,-1113781499,-1117154624,1024003356)+W(2,1038967959,1036533543,1048524561,1057427781)+W(3,1057555836,1044700722,1037485187,1046059755)+W(4,-1107005280,-1101431328,1044741561,-1099209723)+W(5,-1103886606,-1117912777,-1108908881,1024367918)+W(6,-1117189504,1000061951,1034808454,-1102176472)+W(7,-1102736460,-1102956733,-1113728179,-1108156515);sum2=W(0,1003184961,971431442,-1131894760,-1133283297)+W(1,984723076,1031831407,-1125590160,1031681833)+W(2,1024857236,-1109323954,1026446282,-1105665514)+W(3,-1116186208,1024492508,-1121629964,-1148808497)+W(4,-1114215978,1030818718,1031262679,1056963612)+W(5,1055283667,975724297,-1116339968,1026784592)+W(6,1037587704,-1121823736,1045339410,-1107079097)+W(7,-1090072253,-1102678968,-1103014356,-1123463096);WS(1059869006,1015916977);
sum1=W(0,-1111801867,1039164638,1023424768,-1118862224)+W(1,-1114194639,-1099094340,-1118811114,-1096321008)+W(2,-1103727218,-1102716146,-1089648586,-1092420393)+W(3,1049092536,1052180160,1032231232,1046058153)+W(4,1051877295,1051739903,1057614174,1055627629)+W(5,-1096079006,1008315659,-1121275805,1039975892)+W(6,-1115491581,-1106752078,-1104830517,-1112797325)+W(7,1038662167,1030088557,-1131680577,-1175801754);sum2=W(0,-1113427160,-1104433368,-1104169884,-1117600576)+W(1,-1102319880,1039627671,-1097619580,1047721667)+W(2,-1090644207,-1091764889,-1109333336,1065407690)+W(3,-1098732665,-1109931470,1043714297,1041133481)+W(4,1034414883,-1120815960,995253792,1059846520)+W(5,1048874179,1008884504,1021072320,-1103318888)+W(6,1038986783,-1135559136,1033390214,-1120264784)+W(7,-1104270640,1019376128,-1111461786,-1142244432);WS(1054131356,-1077482588);
sum1=W(0,-1100136045,989703980,-1114161471,-1117800461)+W(1,1013262449,-1112319975,1027862775,-1103330903)+W(2,-1101215881,-1100083265,-1091699940,-1088812180)+W(3,-1095974704,1033042241,-1095224480,-1102789769)+W(4,1045307006,1039854844,1051542530,1056393300)+W(5,1053327664,1059113280,1049428707,1055440053)+W(6,1047064142,-1120855287,1042850313,-1122501592)+W(7,-1118254671,-1111473941,-1119385054,-1109190398);sum2=W(0,-1098032416,1055692800,-1101668743,-1100435053)+W(1,-1089098280,-1094416925,-1099202751,-1104551065)+W(2,1063396296,1024719031,1065491656,1073645059)+W(3,1060161647,-1074198531,-1081296593,-1083400329)+W(4,1043414797,1032661901,1058961916,1063424749)+W(5,-1096580753,-1098776178,-1115458644,-1092624053)+W(6,-1093635160,1049215120,-1090478816,1050905898)+W(7,-1135528507,1042380471,1032695397,1054277265);WS(-1082679118,-1072338335);
sum1=W(0,-1126832308,998650886,1029713605,1045660229)+W(1,-1125245511,1001090478,-1126242526,-1128346278)+W(2,-1092407662,-1099976035,-1098757312,1049242330)+W(3,1052609817,1049104969,958956607,-1170516592)+W(4,1041636256,1035459839,1053507448,-1097348797)+W(5,-1097111418,-1099322690,-1116731426,1009511091)+W(6,1032452512,-1118647007,-1113994637,1019901759)+W(7,1026546307,1041545965,-1113342195,1027607012);sum2=W(0,-1069228184,-1073602631,1021776922,1076866983)+W(1,1069809281,-1101499289,1013617559,1036050969)+W(2,-1099529380,1043301860,1054858487,1044685536)+W(3,1062109344,-1097491140,-1149319294,-1113127688)+W(4,-1112044089,1041147606,-1119872164,-1106846135)+W(5,1042271976,1035368326,1025827813,-1115137330)+W(6,-1144476451,-1112019052,1036271953,1018899191)+W(7,-1114284680,-1126672913,-1112053703,-1146921887);WS(-1125906880,1029353026);
sum1=W(0,1052620124,1040928385,1053619569,1034478636)+W(1,-1149501032,1027228408,1033816441,-1143379631)+W(2,-1082830235,-1087911853,-1088553290,-1115166792)+W(3,-1104403058,1046902211,-1140598044,-1115398454)+W(4,1044570800,1048894344,1054767249,1052323270)+W(5,-1096342700,-1092690897,-1112660402,-1089842615)+W(6,1033131793,1031982257,-1118254573,1037418321)+W(7,1045103465,1053685367,1032758420,1056771243);sum2=W(0,1052242091,-1105901664,1041713460,-1098081544)+W(1,-1101414896,-1140318759,-1123485994,-1108472633)+W(2,-1123374674,1032004261,1057464262,1055897675)+W(3,-1108453649,-1099401944,1039811869,-1092934450)+W(4,-1088438592,-1109896025,-1106721416,1057898227)+W(5,1044097375,1041656473,1042751001,1033994653)+W(6,-1109756837,-1117902306,-1106560728,-1101499608)+W(7,-1114554169,1042131382,-1104786072,1048148308);WS(-1080878567,1068324028);
sum1=W(0,-1115471279,1019310859,-1121098697,-1115193805)+W(1,-1153442440,-1104713039,1023975060,-1094675607)+W(2,-1095139206,-1103458412,-1090917913,-1094785898)+W(3,-1100131090,-1118370765,-1102569730,1044057356)+W(4,1057833304,1049561152,1058273109,1054221326)+W(5,1050583410,1048985266,1041261354,1045920684)+W(6,1032811018,-1118469827,-1107876783,-1109399058)+W(7,-1121957752,-1109945243,-1125987028,-1144681671);sum2=W(0,-1122597644,1032420914,-1109997244,1029919127)+W(1,-1129031901,1025876905,-1121404056,1025649559)+W(2,1052263517,-1132353885,-1113437764,-1086124512)+W(3,-1134522929,-1137529969,1041285329,-1111439550)+W(4,1084267296,1077171750,-1076080701,-1066836895)+W(5,-1073829589,-1128728545,-1128683125,-1109934248)+W(6,1037076324,1017945885,1045994672,-1105598049)+W(7,-1115453382,1027437378,-1112127416,1032857588);WS(-1106960696,-1099012034);
sum1=W(0,-1114528403,-1119077260,-1143558020,-1119877760)+W(1,-1109244232,-1096650748,-1112604445,-1100402892)+W(2,-1099071342,-1099370430,-1089278443,-1086538844)+W(3,1010994112,1041376829,1042854492,1049345155)+W(4,1055554285,1049964157,1061104081,1056629915)+W(5,1049997315,1042073805,1031563405,-1123516568)+W(6,-1109121109,-1115766890,-1114965299,-1120868875)+W(7,1034547527,-1114495407,-1139584324,-1118254096);sum2=W(0,-1116593925,1028908115,999050165,1037914955)+W(1,-1106109711,-1105957739,-1123834115,-1113783754)+W(2,1027806287,-1136470458,1039840949,-1122048333)+W(3,1057135276,-1105275062,-1096566133,-1105721601)+W(4,1032648371,1006654490,1052059722,1057985079)+W(5,-1090440242,-1131926605,1018741845,-1124260101)+W(6,1024756439,-1116529299,-1107372324,-1128153177)+W(7,-1142966917,-1123338691,1013415162,1018182189);WS(-1103089976,1059868827);
sum1=W(0,1026631887,1033737723,1034000797,-1130496915)+W(1,-1106694966,-1105866475,-1106727101,-1098705919)+W(2,-1091300264,-1096562704,-1087537316,-1094386976)+W(3,1044429902,1045093007,1040636078,1044615672)+W(4,1056895190,1050565142,1059766350,1053939124)+W(5,-1108577640,-1109922270,-1122075862,-1100982776)+W(6,1031003956,-1140469197,-1108911023,1032926090)+W(7,-1120892680,1034482579,-1136817768,1045052014);sum2=W(0,-1114832682,1038307608,-1109268272,1031259614)+W(1,-1136199018,-1118450441,1025376385,-1125957173)+W(2,1044376552,-1101986459,1025272345,-1112738770)+W(3,1014008179,1042085570,-1110075404,1027010884)+W(4,1052671036,-1094811671,-1106762472,1052706603)+W(5,1040752903,-1100877636,1051973899,1036345951)+W(6,-1084839384,-1076225566,-1074779618,-1088390497)+W(7,1066038403,1071357616,1068318141,1050587817);WS(-1089897038,998399462);
sum1=W(0,-1100326508,-1099771006,-1103969415,1030998252)+W(1,-1111096702,-1129527451,-1115021151,-1124899748)+W(2,-1114312802,-1109889234,-1092992143,-1098209637)+W(3,-1116385180,-1096464604,-1111889198,-1109224641)+W(4,1049930251,1047140918,1060325312,1062808044)+W(5,-1128865717,1048691588,-1137813989,1043572929)+W(6,-1141222070,-1114407115,-1106384368,1017922927)+W(7,1023432554,-1125954964,-1121716413,1020452535);sum2=W(0,-1094975511,-1089233591,-1089977002,1033778332)+W(1,1006981461,-1137053176,-1125132764,979684320)+W(2,-1113696880,1032844980,1066397244,1037917830)+W(3,1039504138,1032622380,1021506052,-1119563165)+W(4,1023473326,1036803698,-1129026618,-1104280508)+W(5,1024702770,-1121975322,974010432,-1138205260)+W(6,1029862812,-1117299445,1025970568,1031377784)+W(7,-1122944997,1022461928,-1130740686,1024270227);WS(-1096120220,-1099720911);
sum1=W(0,1052677544,1027883172,1046184634,1036941212)+W(1,1037786724,1039372749,992842790,1040590154)+W(2,-1105594052,1050583742,1030711656,1050761182)+W(3,1044997418,1051859318,1041579690,1052858474)+W(4,-1101878153,-1120505890,-1094174707,-1087347673)+W(5,-1091299260,-1092171165,-1105854769,-1087724293)+W(6,990296621,1026529890,1039246623,1031039363)+W(7,1038193547,1036921611,-1115076484,1007468831);sum2=W(0,1040381409,-1131846701,1030695069,1015259161)+W(1,1026868853,-1164136976,-1121164685,-1109936403)+W(2,1023777345,-1095435966,-1111411494,-1085163747)+W(3,-1100600319,1052695808,1041440525,1051545155)+W(4,-1110031849,-1146822820,-1089001391,-1074171332)+W(5,-1078760233,1048168469,1074132102,1072577306)+W(6,1022623295,-1096899181,1049343346,-1107180310)+W(7,1043071461,1020495459,1017314953,1050115198);WS(-1080112807,-1111145054);
sum1=W(0,-1103297132,-1106341774,-1098278655,1024154699)+W(1,1037514093,1034961350,-1125780682,-1109009483)+W(2,1049824404,1049617192,1059552348,1031972225)+W(3,-1085661228,-1097823136,-1114326813,-1119831648)+W(4,-1133975251,-1122989109,-1086286580,-1137351813)+W(5,1056970252,992708574,1021582000,1040424089)+W(6,1026400021,1042898005,1041608840,-1145221295)+W(7,-1102084285,1041904442,1038246926,1042525799);sum2=W(0,1041258750,-1109734283,-1123542769,-1113561957)+W(1,-1110564237,1026811493,-1130694514,1024057869)+W(2,989910477,-1100922013,-1096844113,1051742866)+W(3,-1100235579,-1105813951,-1151284621,-1136706867)+W(4,-1134607603,1016064722,1041392492,1057819912)+W(5,1047439582,-1113868277,-1118083589,-1114600003)+W(6,-1109794979,1041809078,-1126381362,982123162)+W(7,-1119465765,1026735929,1019553626,-1114678252);WS(1043409720,-1105036943);
sum1=W(0,1040191749,1033970558,1042494496,1046767380)+W(1,972615552,1032778168,1032217109,1032356247)+W(2,-1096303173,-1095924673,-1093807736,-1092831585)+W(3,-1096756208,-1126846855,-1115229280,-1098580285)+W(4,-1115184605,1041748910,1044442592,1042876074)+W(5,-1140612185,1018241414,1027878365,1034858676)+W(6,1041655059,1041917006,-1160531625,1039311757)+W(7,1020654492,1043700571,1034107952,1036396440);sum2=W(0,1027808259,1010119787,-1111510504,-1113418759)+W(1,1032132185,-1121052855,1014515195,1010692603)+W(2,-1139047739,1043340308,-1106790738,-1096910874)+W(3,1040059331,-1115460243,1017581734,-1120741339)+W(4,986751832,1026247831,1065364148,1040723354)+W(5,1038861011,-1113647147,1041604470,-1135975307)+W(6,-1095774205,-1093511024,-1089533357,1053173071)+W(7,-1106558855,1027584935,-1121443175,1014681515);WS(1035857520,1029952289);
sum1=W(0,-1143077795,-1105351783,-1113811952,-1106526780)+W(1,1035289215,999420801,-1129002434,-1113970285)+W(2,1037051011,1029971495,1049064844,1035603988)+W(3,-1083894414,-1098557596,-1111645039,-1130790920)+W(4,-1110400621,-1106469910,-1094483622,1058276716)+W(5,1056346487,1050633420,1042325343,1026109447)+W(6,-1121149466,1043652126,1027875988,1035104701)+W(7,-1114346217,-1123554317,-1130799743,1025377311);sum2=W(0,-1118517607,-1101077931,1029148161,-1087996420)+W(1,1047526016,-1108756119,1038718292,1024464693)+W(2,1026484093,1046485772,-1098019518,1071267691)+W(3,-1082674625,1032470282,-1106613565,-1113199029)+W(4,1039465846,1030900361,1048118782,1064954318)+W(5,-1084489705,-1118487613,-1112021711,-1120012731)+W(6,1008581907,-1114630284,-1106945018,-1097625455)+W(7,-1156379726,1024110641,1020048570,1036291722);WS(1058189134,1034857672);
sum1=W(0,-1171748679,-1105475825,-1097172873,-1108837708)+W(1,1038034707,-1131134898,-1113151849,-1119273967)+W(2,1031241360,1044072484,1057114388,1051374554)+W(3,-1083662360,-1099379283,-1121036423,1018101850)+W(4,-1100969760,-1094075536,-1082247827,1060030327)+W(5,1058651386,1046921459,1041721673,1036514264)+W(6,987174985,1045893176,1042860595,1031954257)+W(7,-1120638978,-1137288661,1037681908,1029972391);sum2=W(0,1003810984,1036204547,-1101998989,1041029203)+W(1,-1098215637,1044393168,-1110527635,1027560485)+W(2,1020569783,-1114489126,-1121260135,1052640914)+W(3,1059150102,-1098121773,1037147118,-1110248773)+W(4,-1128982694,-1099380876,-1101918458,1059611184)+W(5,1040381797,-1094102036,1028175839,-1113935142)+W(6,1043745048,-1104004872,-1104165612,-1121067579)+W(7,-1100369008,1032515174,-1114899975,1000033398);WS(-1107450480,1040804833);
sum1=W(0,1040192716,1022226221,1002013395,-1117682794)+W(1,1001040843,1000424795,-1120982404,1025306833)+W(2,1040473489,1047969017,1044185574,1060667554)+W(3,1057909434,1049088596,1038016429,1042416864)+W(4,-1095196747,-1098407451,-1087290490,-1089168888)+W(5,-1111951852,-1119291421,1031577591,-1112956481)+W(6,-1124855402,1020416041,-1160070647,1045737613)+W(7,-1101676720,-1103624738,-1104451167,-1115902938);sum2=W(0,1014727333,-1117243126,1029406572,1027900147)+W(1,-1112527674,-1114664521,-1111634336,-1107116047)+W(2,-1124633329,-1107065949,1041729284,-1094200388)+W(3,-1104959017,1040214496,1005029260,1049039902)+W(4,1026257754,-1111801245,-1084100906,1052541581)+W(5,1070744988,-1111707080,-1127513012,-1107038609)+W(6,-1111611661,-1136702760,-1103677442,1050798725)+W(7,-1105828213,-1111536822,-1106506739,-1140667375);WS(-1113867888,1064515135);
sum1=W(0,-1113562537,-1107046062,-1103978495,-1098739202)+W(1,-1122423580,1019693149,-1116789880,1020558520)+W(2,1048061265,1043460993,1060048584,1062873548)+W(3,-1119786749,1023528257,-1106657727,-1137576074)+W(4,1011269086,-1098944190,-1107431310,1045822761)+W(5,1025265092,-1112998912,-1142662356,-1104660585)+W(6,-1105945126,-1148623547,-1111558073,-1114838028)+W(7,-1101841139,-1117915947,-1106868487,-1122252061);sum2=W(0,-1145158406,1012385731,1016118130,1024197601)+W(1,-1112179804,-1119519161,-1127326042,-1113792718)+W(2,1022878354,-1129472106,1044961455,1049544336)+W(3,1030346877,-1131221354,-1095482557,-1093377057)+W(4,-1111624996,1015658802,1040055751,1057430996)+W(5,-1114498280,1020564842,-1112131584,1019749938)+W(6,1010204019,-1123973089,-1157676569,1022031298)+W(7,-1124728962,1023003938,-1121117277,-1141925830);WS(1051333020,-1087054195);
sum1=W(0,-1112042433,1019002067,-1115058903,1046618143)+W(1,-1107874438,-1148774132,1036768028,-1154881470)+W(2,-1104387605,-1096771599,-1102529947,-1093976551)+W(3,-1089735051,-1129150690,-1101876091,-1098135714)+W(4,1052246829,1048899277,1054136106,1044227957)+W(5,1060328029,1046377228,1045160291,1045432325)+W(6,-1113527444,-1098301717,-1095193948,1044013586)+W(7,-1107288943,1038700845,1024370318,1019966234);sum2=W(0,-1114066012,1029900262,-1114806697,-1110038644)+W(1,1036646832,-1110070018,1020625547,987867800)+W(2,1041392892,-1112610934,1041587346,1025557898)+W(3,1055783298,-1102485451,988088600,1039502616)+W(4,1044719218,1046575198,1050162797,1055420600)+W(5,-1099287148,-1100701871,1033323822,-1119304428)+W(6,-1097547793,-1095644935,-1102972970,-1095936036)+W(7,1028020818,-1113902766,-1135974783,1018696751);WS(-1120103648,-1090070191);
sum1=W(0,-1117418940,1024592611,1040968250,1049918615)+W(1,1034410595,1035134604,-1119948353,-1144523437)+W(2,1049030490,1050801054,-1111205267,-1116228463)+W(3,1050512309,-1102511675,1034763283,1039656998)+W(4,-1112262737,-1094705236,1042055990,-1085341341)+W(5,-1106227665,1036298997,-1138448657,-1110564136)+W(6,-1114427969,1032013281,-1110419822,1047944497)+W(7,-1132367051,1025392341,-1111046724,-1120201127);sum2=W(0,-1122606938,-1141997982,1027805544,-1120462650)+W(1,-1100560083,-1105726471,1025575588,-1113668318)+W(2,1046354401,1040228902,-1143835982,1061896257)+W(3,-1080731069,-1098049024,1026943708,1032253740)+W(4,-1124762815,-1102583710,1052785838,1059397472)+W(5,-1120768779,-1126645315,1011421951,-1122685018)+W(6,-1118515993,1036845124,-1106443071,1043676745)+W(7,995709275,-1128858827,-1112152255,-1127110207);WS(1060158670,1068766623);
sum1=W(0,-1116432453,-1131098839,-1099753724,1034945056)+W(1,-1122123599,1040823512,1040184285,1050332416)+W(2,1056712636,1049784895,1057908127,1044163070)+W(3,1028198895,-1122504371,-1123329903,-1096645803)+W(4,-1087151539,-1102593034,-1089291740,-1094800699)+W(5,1036808107,-1120242995,-1127465369,-1132187055)+W(6,1040295867,1033948341,1031077093,1027113355)+W(7,-1132674679,-1117547229,1040274980,-1137741501);sum2=W(0,1036379663,-1108907739,1070189048,1073213180)+W(1,1065321765,-1076673488,-1079893128,-1072585926)+W(2,-1098232449,1058983203,1016986873,1047923452)+W(3,1033582270,1031365639,1038048757,-1107019906)+W(4,-1128107780,1035811659,1040144345,-1105399966)+W(5,-1110681209,1039880527,-1116001167,1018297481)+W(6,-1120677803,-1120240179,1029686139,-1109097268)+W(7,1041308319,-1109042515,1034493417,-1131123922);WS(-1112459888,1031046963);
sum1=W(0,-1112719265,-1129483154,-1103727283,-1091575740)+W(1,-1104335643,-1155155940,-1114094348,-1105426861)+W(2,-1128634346,-1120462421,-1112785958,1056781779)+W(3,-1153409228,-1108013960,-1118230989,1027667442)+W(4,1043326546,-1103778738,1050524372,1067939282)+W(5,1048587330,-1132710977,-1109505653,1036777787)+W(6,-1115081924,-1114915140,-1104237825,-1096588493)+W(7,-1108534894,-1114726045,991235804,-1111746006);sum2=W(0,-1119086167,1013020612,-1141008560,-1108719150)+W(1,1023891147,-1145112744,1018251990,-1116478859)+W(2,1037241732,-1129818230,1029187991,-1074141953)+W(3,1019083994,-1124211508,-1122886966,1027168441)+W(4,-1114652243,1028260797,-1112264831,1072760747)+W(5,1042535682,-1131878972,1037493286,-1129254230)+W(6,-1131518324,-1115730540,1036245214,1034705438)+W(7,-1119172530,-1133917220,-1114007324,1018465006);WS(-1086783566,-1086791567);
sum1=W(0,-1115195632,-1153026662,-1134496297,-1108787789)+W(1,-1119803561,-1145121243,-1131708777,-1110064394)+W(2,-1095708330,-1093442522,-1098161001,1044632085)+W(3,-1091375169,-1107384199,-1100078210,-1104664012)+W(4,-1123676804,1018199561,1037878573,1064261167)+W(5,1057417647,1052226946,1046948682,1047330733)+W(6,1041725033,-1121101892,1034570216,-1103584185)+W(7,-1108866704,-1122033784,-1117964907,1022321300);sum2=W(0,1031515378,-1121810184,1010081392,-1119765868)+W(1,1035546479,-1106495935,1028378344,1003402623)+W(2,-1077397139,-1079753374,1044674665,1073378801)+W(3,1056367001,-1109376902,1035615024,-1118889676)+W(4,-1134939312,-1097085111,1052841311,1007836336)+W(5,1044809025,-1118570548,992033726,1010750288)+W(6,-1112896962,1035985281,-1105060263,1031953140)+W(7,1022446080,1031289566,1032016077,-1150317246);WS(-1096711324,-1080143969);
sum1=W(0,-1135181951,1025399430,1033906501,1041786535)+W(1,-1133559462,1003671004,-1123695637,-1105366874)+W(2,-1095339398,-1094144146,-1093853897,-1089314149)+W(3,-1089126233,-1110956839,-1129083412,-1113909272)+W(4,1050582337,1049483953,1045129706,1046728732)+W(5,1045641984,1051092970,1049638101,1057307443)+W(6,1026786373,-1123204644,1006467326,1031608549)+W(7,-1135165794,1017185520,996324016,1009923752);sum2=W(0,1023911567,1004932796,-1119124867,1022775023)+W(1,1011639102,1036397588,999444348,-1106309084)+W(2,-1108118447,-1134375038,1035251904,1037995724)+W(3,1050162042,1037707684,-1111062570,-1101285996)+W(4,1044892126,-1138359022,1063133445,1074655410)+W(5,1070062472,-1083132698,-1073510095,-1073687480)+W(6,-1112738860,1020475455,-1102926770,1047698054)+W(7,-1113839430,-1117927031,1017195567,1041743674);WS(-1089880270,1068594400);
sum1=W(0,-1114467040,1023170830,1036273894,-1107800974)+W(1,1029867434,-1106779367,1024593089,-1110449433)+W(2,-1104513741,-1091458130,1034367029,-1100997781)+W(3,-1095286649,1047811540,-1096228817,-1109179032)+W(4,1050219169,1042545281,1048674674,1042739212)+W(5,1053624831,1034908007,1034674708,1049808694)+W(6,-1118490053,-1120682309,1031296832,-1110241363)+W(7,1034289100,-1107012174,1021221591,-1126204757);sum2=W(0,1030004067,-1117028113,-1105887481,-1066126465)+W(1,-1104777348,-1122550707,-1130918117,1023720579)+W(2,-1133064657,-1134091777,1045929484,1081917443)+W(3,1043726141,1028310407,1016764395,-1116064873)+W(4,1024174065,-1113615539,1032698350,-1097201480)+W(5,1033613382,-1107697461,1029778305,1018371831)+W(6,-1119836251,1025775761,-1118489229,1041573100)+W(7,-1124268877,1030764051,-1116797441,1018350967);WS(1067475431,-1126058166);
sum1=W(0,-1108052732,1043040440,1048922396,-1097574342)+W(1,-1119673025,-1101774749,1019400344,1007801026)+W(2,-1097851361,-1108210069,-1084429932,1055911149)+W(3,1041902328,1035827603,-1115594513,-1107003538)+W(4,1049362324,1048929252,1054104112,1047147106)+W(5,-1085779789,1049622021,1019477630,1037086373)+W(6,1040199303,-1109622414,1041203782,-1104274751)+W(7,1047880876,-1116198608,-1107876353,1036701569);sum2=W(0,1013753738,-1113150555,1015248850,1042650722)+W(1,1040818978,-1105652199,1033430289,-1120377801)+W(2,1020731454,1046742995,1045156685,-1104352239)+W(3,-1089864705,1045331461,-1109224259,1016214593)+W(4,-1120697178,1034035253,-1094710566,-1128318417)+W(5,1045040370,1025091411,-1106535436,1019751894)+W(6,1009873360,-1099358283,1039470065,1046693145)+W(7,1036008061,1030627793,1017876415,-1132110931);WS(1060496974,-1099362699);
sum1=W(0,1054706808,1036662868,1045895019,1033303646)+W(1,1044095763,-1130190200,1035564779,1040746168)+W(2,-1109706041,1041317773,1051554925,1049334366)+W(3,1051166813,1053590462,1049285205,1055551482)+W(4,-1098091909,-1123237413,-1091928498,-1083798889)+W(5,-1095315343,-1087007295,-1097088265,-1094550458)+W(6,-1129324363,1015757258,1021341985,-1112852963)+W(7,1041804248,-1127492145,1039262630,-1114905285);sum2=W(0,-1073385920,-1084887580,-1083140914,-1081800202)+W(1,-1085954594,1037413129,-1096433065,1054210787)+W(2,1077926840,1058818874,1060159151,1074845707)+W(3,1061906872,-1084431515,-1126824848,-1087315344)+W(4,1032559783,-1089669880,1045764296,1059775011)+W(5,-1103860568,-1094536545,-1133232881,-1099186518)+W(6,-1094451238,-1121878040,-1173171215,-1120435570)+W(7,-1115590029,1053315192,-1107838893,1052978812);WS(-1078369703,1041267413);
sum1=W(0,1024386586,-1098405416,1044040033,-1098286219)+W(1,-1130684104,1045750173,-1098338270,1041584973)+W(2,1041630887,-1112635974,-1132435208,1041292515)+W(3,-1091497929,1016159377,-1139597330,-1101611546)+W(4,-1102607056,1051293608,-1094040968,1052507157)+W(5,1056853585,-1105775474,1049412460,1026100205)+W(6,1016693023,1018393854,1046099151,-1095618428)+W(7,1018959206,-1117949682,-1118540325,1040982949);sum2=W(0,1035615459,1028814353,1062855981,1052250964)+W(1,1056109526,-1106019250,1048995011,-1115640692)+W(2,-1097925659,1038714809,-1077657685,-1101970047)+W(3,-1098468896,-1114182260,-1104046747,-1130122971)+W(4,1043665288,1033337220,1051048913,-1113114333)+W(5,-1085664062,1040975429,-1109605260,1034778788)+W(6,1020457849,-1103657321,-1109823715,1058024935)+W(7,1056999181,-1105846491,1042595027,-1112374505);WS(1049151900,-1114127847);
sum1=W(0,1050216581,1000015204,-1136218178,1023136961)+W(1,-1130455775,-1133465094,-1160090192,1035991733)+W(2,1044969414,1047621718,1057314961,1055877843)+W(3,1054358666,1052966059,1045850836,1052491071)+W(4,-1106856243,-1112471205,-1091938023,-1092033343)+W(5,-1099719178,-1089783713,-1099053307,-1087984664)+W(6,-1099359923,-1148711507,-1133921207,-1112054390)+W(7,1034273823,-1122838974,1019980258,-1112322824);sum2=W(0,-1105478410,1039552519,-1131405058,-1099466970)+W(1,1049027924,-1115050596,-1129231446,1049583286)+W(2,1011113448,1050864081,-1125310098,1043215106)+W(3,1034334973,-1095883745,1036178144,-1088635155)+W(4,1068049752,-1103020148,1066695202,1074596924)+W(5,1067601936,-1084539788,-1075514015,-1074115054)+W(6,-1082501551,1059003564,-1098156272,1039344435)+W(7,-1099880092,-1107282542,-1097076855,1042018058);WS(-1081332839,-1093454830);
sum1=W(0,-1109709318,-1104916884,-1108177419,-1117212646)+W(1,-1119705461,1032417267,-1118748528,987327371)+W(2,1035356975,1037116623,-1125155242,1030327966)+W(3,1050241163,-1103907222,1046095669,1033262333)+W(4,1039420520,-1122158672,1053028347,-1104761999)+W(5,1032136206,-1115200780,-1115609017,1029855614)+W(6,-1111308088,1014687039,-1112931654,1020526050)+W(7,-1119448076,-1112611266,-1136487898,-1104533373);sum2=W(0,1013207527,-1127355075,-1103159789,1040955478)+W(1,1008876024,-1116686760,1035764738,-1154118338)+W(2,-1118344664,1028266047,1043690369,1051132935)+W(3,-1108842627,1041402295,-1105537330,-1128237045)+W(4,-1124997045,-1117884424,-1116887196,1047094008)+W(5,1057384051,-1100609336,-1098518151,-1089828796)+W(6,1036829905,1016171285,1024917624,1041601336)+W(7,-1127506713,1033786361,-1114313206,-1102385561);WS(1063446990,1030048893);
sum1=W(0,-1131562670,-1099483503,-1106193120,-1102405700)+W(1,1021119810,-1113568905,1009340592,1030255032)+W(2,1043069042,1049571969,1061428532,1053095529)+W(3,-1115069793,-1119868742,1027160065,1043118346)+W(4,-1108681470,-1106599551,-1097709592,1046689338)+W(5,1029025472,1006738196,-1120287391,-1111789333)+W(6,-1108650254,-1106453175,1008661917,-1102088711)+W(7,-1123233168,-1104754348,-1136963210,-1114502129);sum2=W(0,1012371361,-1149491589,1023756477,-1165255819)+W(1,-1111467932,1019335917,-1140694601,1010513313)+W(2,1017109065,-1115161102,1012418345,-1111308586)+W(3,1015942947,-1106016138,1015823021,1026481588)+W(4,-1110016822,-1109821790,1060485172,1031379047)+W(5,1046805034,-1114576028,1024897044,-1114618076)+W(6,-1103671135,-1097972516,-1094449842,1049769129)+W(7,999148403,1022790203,1032463998,-1146831635);WS(1060385486,1040268319);
sum1=W(0,-1115333181,-1113839600,1026945989,1041834949)+W(1,-1100015113,1010458454,-1113704543,-1110169699)+W(2,-1105770459,-1104706211,-1085502934,-1112644646)+W(3,-1102865873,-1112283012,-1108020290,-1115522389)+W(4,1048230464,-1122113023,1051932092,1065603891)+W(5,-1105250533,1054415097,-1122402466,1046973419)+W(6,1022495614,-1115044751,997701279,1044329112)+W(7,1038196649,-1113673817,-1105082025,-1115640050);sum2=W(0,-1115664423,-1122287706,1044568139,-1099350461)+W(1,-1102715015,1042022920,1031291077,1032474264)+W(2,1041813775,1041645390,-1087138046,1067461852)+W(3,-1116572542,-1109622665,-1113357449,-1110133469)+W(4,-1142717933,-1094011677,-1124627987,1027339570)+W(5,1045144111,1054026149,-1122353792,1047364150)+W(6,-1120925434,-1119842210,-1120985148,-1113918825)+W(7,-1100833175,-1101147879,-1112018489,-1109170005);WS(1049043868,1050086952);
sum1=W(0,-1127858130,1025810768,1034666762,989092984)+W(1,-1115481017,-1119959429,1012364567,-1097661520)+W(2,-1091279607,-1101354119,-1089232423,-1092016019)+W(3,-1089729669,-1104525366,-1121438163,-1160888088)+W(4,1054362490,1044465651,1050465752,1058690160)+W(5,1053482909,1051092259,1019953121,1051219071)+W(6,1028884238,1022883995,1032068165,1005443958)+W(7,1007092039,-1149438996,-1137072337,1017307814);sum2=W(0,1030282550,1012065197,1049708534,-1101566471)+W(1,1043525707,1038111746,1040589253,-1106531005)+W(2,-1099759289,1050936278,1018991152,1050588571)+W(3,-1112383125,-1121285468,1039884984,-1113841779)+W(4,1070065566,1068820850,1068572253,1075164582)+W(5,1046261639,1053555382,1040055978,1058828770)+W(6,-1078832473,-1076346523,-1075628240,-1072955990)+W(7,-1093459475,-1088795804,-1099780818,-1090423367);WS(-1083655502,1074535575);
sum1=W(0,973651072,1028862937,1029517469,-1111330742)+W(1,1043404639,-1105397947,-1129726574,-1099887737)+W(2,-1100106921,-1096173461,-1088250868,-1101351113)+W(3,-1092528244,1034877328,-1113904430,-1118418050)+W(4,1049212555,1052529147,1057957824,1060855844)+W(5,1050267538,-1104065896,1041335934,1047916353)+W(6,-1122472503,996549482,-1111380529,-1125410415)+W(7,-1109626381,-1122247818,-1108333759,1037233742);sum2=W(0,1037582341,1032149251,-1135487115,-1107247151)+W(1,1053968825,-1096732175,1034930229,-1094249638)+W(2,-1116649305,-1112916551,1044443302,-1117703407)+W(3,1049963138,1042101117,1046616621,-1127010106)+W(4,-1107051108,1041643977,1030763641,1053360182)+W(5,-1087331905,-1089009482,-1110671517,1059951262)+W(6,1040538112,-1112067691,1036263743,-1115814520)+W(7,1035849297,-1104153316,-1104877620,-1116847106);WS(-1132786560,1056578758);
sum1=W(0,1031072232,1019453021,-1112153353,-1127115205)+W(1,-1153314582,-1105591705,986346381,1024604121)+W(2,1043718831,1050053971,1057505465,1049535379)+W(3,1052394474,1045418390,1044283028,1048806335)+W(4,-1098888378,-1104586611,-1090760605,-1081773448)+W(5,-1106021324,-1120283669,1036365944,-1103287167)+W(6,-1123786893,1030360908,-1123598824,1035671447)+W(7,1044649456,-1105554848,1033186457,-1108912601);sum2=W(0,1040658557,-1106354313,1027144364,-1103628435)+W(1,-1123462592,-1130705048,-1126068784,1016031184)+W(2,1011638864,1020064744,1049840877,1050147177)+W(3,-1117174472,-1105120318,-1113970774,-1135769248)+W(4,1041865287,-1103147627,1026998340,1053587315)+W(5,-1118058864,1036775410,-1104140895,1030416564)+W(6,-1109113498,1033931950,-1120927100,-1102211113)+W(7,1033328738,-1101351534,1028877580,-1112076066);WS(1062711758,-1109562142);
sum1=W(0,-1107075140,-1125545776,-1121788380,-1112684886)+W(1,-1128625782,-1102890883,-1129119788,-1102110160)+W(2,-1100622401,-1104747337,-1103229831,-1083301774)+W(3,1050510715,-1097610180,-1109077454,1030737729)+W(4,1053288051,1049612355,1059638178,1048337697)+W(5,1052952654,1051307580,1041285742,1049115768)+W(6,1017596397,1007433175,-1120034657,-1098025711)+W(7,-1112854653,-1108240645,1022176121,1020667959);sum2=W(0,1022257834,1033804876,1033963400,-1113268759)+W(1,-1123922685,1029999681,1015463858,-1125618402)+W(2,977550902,-1105772859,-1098748483,1063293804)+W(3,-1090033704,1051039483,-1104977553,1022914778)+W(4,-1113927342,1042844173,-1096777339,1059312088)+W(5,-1134320563,1037687330,1024487701,1004875175)+W(6,1036504102,-1107093105,1028160469,-1089861840)+W(7,-1101525036,1017532722,-1122996995,-1116068477);WS(1046002488,-1083997249);
sum1=W(0,-1116203964,1044431961,1041235242,1046371486)+W(1,-1106267745,-1117705943,-1122870401,-1109240562)+W(2,-1099156844,1028498222,-1096363997,-1079124621)+W(3,-1088685662,-1103556299,999993136,-1106798659)+W(4,1050076828,1049400252,1050263757,1020370202)+W(5,1048790666,1053355933,1034829570,1037276039)+W(6,1025075217,1035032656,1032516798,1050189128)+W(7,1042510329,1039724554,1027729159,1037249299);sum2=W(0,-1094982381,1024745423,-1097113645,1017043870)+W(1,1052555320,-1107563793,1049262968,-1118735987)+W(2,1041875660,-1091311273,1042706326,-1148119319)+W(3,-1098101314,1010824956,-1094774489,1030619863)+W(4,1017839086,1044409386,974632891,1061393923)+W(5,1043955676,-1098402228,1042935118,-1094515595)+W(6,1045890174,-1107764806,1048260200,-1118443235)+W(7,-1097368628,1041238578,-1116185663,1042214090);WS(-1083255246,-1075588436);
sum1=W(0,-1154522904,-1106371438,-1105464695,1036086422)+W(1,1023783355,-1127243930,1030176790,1031412139)+W(2,1026375684,1036249778,1056687627,-1097055709)+W(3,-1088556578,-1108055408,-1105944807,-1123388097)+W(4,-1099839750,-1113752075,-1092436626,1050924256)+W(5,1056650964,1045926824,1039385437,1041066449)+W(6,1037990411,-1119606102,1043935324,1036476796)+W(7,-1111337285,-1110940389,-1124332025,1021333175);sum2=W(0,-1117330831,1023708058,-1133288218,-1122435213)+W(1,-1139180683,1020252429,1025188082,-1109968059)+W(2,1032531181,-1114369361,1017487862,1047518334)+W(3,-1122916014,1027012545,-1103557501,1046855474)+W(4,1043756688,1031926890,-1104593512,1043258354)+W(5,-1096895795,1049767697,1019544307,-1112657711)+W(6,1060766869,1067300065,-1105945514,-1075696003)+W(7,-1102393264,-1106946489,1020047431,-1113285900);WS(1056055196,1023945849);
sum1=W(0,-1104545849,-1139517988,-1101013315,-1136100212)+W(1,-1148373856,1013350648,-1120654743,-1108930702)+W(2,1036175954,-1138851412,1048468083,-1097789539)+W(3,-1096999890,-1097071058,995622088,-1128233700)+W(4,1032040419,1009002268,1040659763,1059870683)+W(5,1039368714,1053644410,-1122818538,1033002810)+W(6,-1111539988,1026875367,-1104005681,-1112873620)+W(7,-1135793772,-1132670698,1028030253,-1133516850);sum2=W(0,1033182461,-1135790885,1036058972,-1145806187)+W(1,1026470367,-1125994579,-1123856921,-1152817846)+W(2,-1110992702,1041801313,-1115959119,-1083556559)+W(3,1047402951,1026458945,1021989349,1029289545)+W(4,1011638125,976542168,-1106760241,-1068720208)+W(5,1080067579,1043021822,-1118809257,1027196491)+W(6,-1116812221,-1135785781,1013579453,1034110873)+W(7,1048786168,-1124564059,-1115658442,-1110636256);WS(1047050040,1036867972);
sum1=W(0,1031952202,1040033213,1049413776,1052329098)+W(1,-1134253939,1023712847,-1129317744,1023414180)+W(2,1041031945,1050476745,1016870010,1054273441)+W(3,1041748879,1035493153,1041656495,1041394937)+W(4,-1098508279,-1097704487,-1091275871,-1087382286)+W(5,-1095309386,-1117526273,-1112254893,-1108492595)+W(6,-1117663192,1033331580,1012948685,1043041286)+W(7,-1131302504,-1125396951,-1153578470,-1112644847);sum2=W(0,-1120609508,-1098653081,-1074671298,-1081276780)+W(1,-1097107702,-1110118090,-1137118351,-1119823807)+W(2,-1138324119,1042859622,1072071026,1068070176)+W(3,1044485226,1040658983,-1118978815,1035453187)+W(4,-1110367912,1038385587,1026263792,-1107049493)+W(5,1024907208,-1122488627,1038809437,-1111098449)+W(6,1021280635,1026624912,1026288466,-1122098825)+W(7,1040255596,-1152233050,-1126727249,1006813455);WS(1047287096,1059538103);
sum1=W(0,1030804480,-1111595219,-1123153834,-1098057279)+W(1,1007980582,1018775223,1036089754,1030691489)+W(2,1034749929,1051408038,1049213285,1057344539)+W(3,1048793645,-1106759404,-1115115061,1033654600)+W(4,-1102474905,-1094490621,-1099609086,1048597242)+W(5,-1094890059,1046324795,1003815995,-1126686757)+W(6,1013951379,1039425378,-1112788128,-1098419769)+W(7,-1118093753,-1108341356,-1120388747,-1135294247);sum2=W(0,-1112864979,1034721747,-1108077379,1023366533)+W(1,1021246669,1032508120,-1113986367,-1153257254)+W(2,1024004698,-1109416755,988806988,1058238498)+W(3,-1115279539,1041332549,1033457886,1018109285)+W(4,1034996841,1041661735,1041642045,1008174217)+W(5,-1122858630,-1089151778,-1130797677,-1111548255)+W(6,1004307827,-1116757818,1037366938,-1107547239)+W(7,-1108868659,-1128614293,-1130732717,-1122125438);WS(1066216871,-1084582294);
sum1=W(0,1009745022,1023325836,1034246149,-1103455511)+W(1,1025953385,-1105242559,988118663,-1107601837)+W(2,-1095963722,-1096473834,-1087129751,-1142570129)+W(3,-1094684497,-1107829831,-1107520037,-1117719279)+W(4,1050775177,1046303345,1057767679,1064400323)+W(5,1038452388,992534739,1025316967,1044853309)+W(6,1027534757,-1126933960,-1118146623,-1103828265)+W(7,1018950609,1030437560,1020674901,1033139589);sum2=W(0,-1127013105,1018526115,-1123587641,1052346460)+W(1,-1098654594,1029804743,-1118240305,1030491706)+W(2,1031626404,-1117975133,1062148372,1074624908)+W(3,-1090512380,-1070854231,-1095518794,1041467716)+W(4,1029958550,-1113082476,1035325186,-1130733653)+W(5,1046581721,-1113725416,1031776819,-1115594754)+W(6,1017794797,1023300847,-1145491637,1041942663)+W(7,-1113152926,-1139181075,-1120299385,-1142763637);WS(1033725552,-1082653885);
sum1=W(0,1027658456,1033791775,1038169633,-1130834725)+W(1,-1105755912,-1107114253,-1106878767,-1102176852)+W(2,-1091894661,-1094613753,-1085886368,-1094605577)+W(3,1049096200,1038006563,1040399888,1038046228)+W(4,1054730080,1052727904,1060322284,1054915405)+W(5,-1115316932,-1113871235,-1114082704,-1098681477)+W(6,1024810077,1020875129,-1114253244,1021660859)+W(7,1010914050,1032412472,1016596422,1044096992);sum2=W(0,-1126607908,-1111819446,1032709615,-1119610542)+W(1,1027594385,1029384695,-1115269200,1032209203)+W(2,-1109006144,1050929158,1025316173,-1107176811)+W(3,-1123863107,-1122531221,1026796828,-1115616555)+W(4,-1093467963,1063076656,1048889614,-1090320472)+W(5,1046933317,1051206364,997945380,-1109796884)+W(6,1059727060,1073053378,1073749745,1058093447)+W(7,-1079533534,-1073154062,-1075936158,-1088004581);WS(-1087442510,1045166814);
sum1=W(0,-1106921670,1032907600,-1111070674,1047421629)+W(1,-1094092352,1031075349,-1136240762,-1129052086)+W(2,1032009478,-1127325529,-1106321881,-1085655355)+W(3,1057239638,-1098381173,-1128650952,-1107389381)+W(4,1041337656,-1100890040,1060092296,1044767811)+W(5,1040377247,1037296628,-1131454723,1037463686)+W(6,-1110338367,1042108264,-1105899594,1027442111)+W(7,-1105935775,1037469097,1027139781,991481919);sum2=W(0,-1119426781,-1109786529,1041819143,1018220925)+W(1,-1103055916,-1124599508,986571056,1024618671)+W(2,1040351141,1043540747,-1105926532,-1133247980)+W(3,-1096724541,1038612076,1019567362,-1143357456)+W(4,-1104019881,-1106797782,-1098594115,1066013053)+W(5,-1136157126,-1097021086,1025702119,1008181894)+W(6,1015410156,1043466418,1048709183,-1092013542)+W(7,-1109288787,1027934232,-1140871148,1027080058);WS(1059279054,1041683061);
sum1=W(0,1028823114,1033060856,-1136683218,1041097809)+W(1,-1108712682,-1099515041,-1114499693,-1105525449)+W(2,-1096417644,-1095251776,-1096755466,-1095420880)+W(3,-1087904547,-1117180600,-1113115866,-1121084634)+W(4,1041071884,1051348966,-1106154521,1062896338)+W(5,1057053635,1050313119,1041134484,1043053335)+W(6,1040139175,-1133443258,1027763154,1037083176)+W(7,-1109247178,-1169250436,1007514196,1031868218);sum2=W(0,-1104031080,-1113246189,-1124792744,-1107688308)+W(1,-1084040655,-1089958554,-1098618924,-1098033920)+W(2,1039900182,1044206765,1043086617,1057123143)+W(3,1066602722,1037219700,-1111210157,1036938090)+W(4,1028023758,-1122555834,1041018096,-1100462314)+W(5,-1123151815,1032289221,1028867168,-1143651414)+W(6,-1125301559,1027754708,-1129842792,1022410763)+W(7,1034604384,1029558442,-1139711519,-1122704124);WS(-1093886876,-1092780259);
sum1=W(0,1031521076,1040859655,-1123954783,-1115369432)+W(1,1027325374,-1130075936,1017430099,1005655277)+W(2,1034696971,1027092583,1057011018,1055452141)+W(3,1055461116,1043845385,1041326696,1045628689)+W(4,-1098366291,-1107551117,-1084481759,-1086775792)+W(5,1050583573,-1098824964,1032795870,-1110858724)+W(6,991412379,1023411481,1037665034,1037775165)+W(7,-1102735091,-1106471523,-1113156096,-1108701199);sum2=W(0,-1099549152,-1101982776,1039636960,1065032135)+W(1,1046191187,-1112740199,-1120755726,-1138571865)+W(2,-1115620025,-1110046443,1067650764,-1096892917)+W(3,-1084058149,-1089814493,1022618460,-1106519005)+W(4,1042476476,-1138118945,1056117723,-1084935200)+W(5,1043334912,-1116550886,1030169574,-1123579094)+W(6,-1128057356,-1104607948,-1129519972,1039009532)+W(7,1042222420,-1114781123,1023299940,1029490149);WS(-1103384376,1050555318);
sum1=W(0,990997212,-1104723373,-1102560870,-1110645588)+W(1,-1114771100,1006886950,1011892746,1041403778)+W(2,1056616014,1049493908,1060440249,1063537686)+W(3,1049398171,-1123261404,1042753094,1041297647)+W(4,-1113359817,-1101985253,-1095607555,-1091747296)+W(5,-1098384586,-1094355067,-1098733239,-1099641616)+W(6,-1104278389,-1112669305,-1117918862,-1124628967)+W(7,-1120789735,1020875660,1029891897,-1143354303);sum2=W(0,-1097904627,-1102268820,-1101696600,-1102083058)+W(1,-1100977750,1022682138,-1105396681,1035758392)+W(2,1056762738,998260703,1049156882,1055125136)+W(3,1040009482,-1099421122,-1114104451,-1112582051)+W(4,1033294591,-1102966386,1040206209,1048772561)+W(5,1004029807,1040485303,-1118051402,1040482786)+W(6,-1113205081,-1105114179,1028552759,1023069474)+W(7,-1108173489,1040370279,-1109779069,-1135668672);WS(1042369848,-1095650924);
sum1=W(0,1032801852,-1124780413,-1142443027,1031124370)+W(1,1024489633,1037041722,-1157391942,1048283534)+W(2,1060985291,1056066249,1059062488,1046815795)+W(3,1051554984,1026983110,1037131073,1028118439)+W(4,-1088222536,-1093287088,-1089766974,-1084610255)+W(5,-1096293908,1035048291,-1113190096,-1107690581)+W(6,-1154392525,1017158008,1041310978,-1111535759)+W(7,-1118760812,-1118618480,1032589425,-1101944856);sum2=W(0,1056251107,-1118435725,-1111043713,-1090037466)+W(1,-1129656805,-1093926860,1052716525,-1083761792)+W(2,-1084477192,1041984407,-1093515412,1073185178)+W(3,1051712939,1053076395,-1096065312,1066458198)+W(4,-1077785336,-1086371528,-1093010832,1074151927)+W(5,1054463958,-1094829660,-1090812268,1063500158)+W(6,1053829707,-1113013425,1046411943,-1090694669)+W(7,-1095714333,-1103046632,1035367276,-1087950464);WS(-1081634407,-1072784825);
sum1=W(0,-1102740818,-1115394775,-1101924733,-1100839185)+W(1,-1123768914,-1140848016,-1118249725,-1116477425)+W(2,1024862651,1046040367,-1109613465,-1115978107)+W(3,1049722038,-1098661743,-1138059466,1025943000)+W(4,1056867014,1027952685,1058509811,1050187219)+W(5,-1098437541,1033615035,-1143195264,-1132571500)+W(6,1016622683,-1112643478,-1096240139,-1101581667)+W(7,1008822020,1023463264,-1116668435,1036595961);sum2=W(0,-1139809909,-1126178115,1032546581,-1097752958)+W(1,1042272246,-1118367610,-1138081685,1017774855)+W(2,1046126277,-1111752353,1034216546,1042101074)+W(3,1043290796,-1112722386,1034532478,1030093406)+W(4,-1119940899,1055245806,-1088954301,1058677046)+W(5,-1087007443,1048637958,-1140548675,1029648824)+W(6,1040903120,-1104413152,1019748625,-1089277711)+W(7,1028591970,-1139620757,1017306737,1033828758);WS(1050645916,1033550915);
sum1=W(0,-1118556120,-1108262319,1043230361,-1094947334)+W(1,-1103841584,1018079143,1032598742,1008731683)+W(2,-1107219907,1043545243,-1086762442,-1104041435)+W(3,1058293794,-1097977901,1041130248,-1123331655)+W(4,1039060494,-1145250020,1059123936,1057758321)+W(5,-1096913490,1039599795,-1151122424,-1123961290)+W(6,1030703933,-1110184190,-1110311564,-1100512367)+W(7,1044416908,-1132472896,-1147952664,1022228292);sum2=W(0,1040267615,1048409433,-1107165984,-1086251247)+W(1,-1113957324,-1107976602,-1122078587,-1111525785)+W(2,-1112791644,-1110540665,-1088877638,1053330884)+W(3,1057377190,1057673067,1024512949,1042772014)+W(4,1010515766,1032365064,-1090038325,1049266570)+W(5,1028890653,-1103454662,1041725883,-1143554104)+W(6,1024308395,1041630361,1040244783,1037513285)+W(7,-1098504745,1039941233,-1103661415,1024552651);WS(1051978908,-1102077462);
sum1=W(0,-1132165009,-1117187439,-1108837850,1037183202)+W(1,1028473682,1045655273,1025240990,1033734537)+W(2,1045761591,1051430047,1060286099,1046972447)+W(3,-1128782822,1028047735,-1178179968,1035331372)+W(4,1013540534,-1096198150,-1130717861,-1085387922)+W(5,-1105434962,-1101497054,-1110960744,-1102517015)+W(6,-1106078467,1014010165,-1121999817,1030141582)+W(7,1008925446,1018887490,-1122721428,1026996307);sum2=W(0,1023072493,-1125531833,1030396885,-1118880502)+W(1,1027419877,-1161271853,1019485964,1028708277)+W(2,974611657,1047662948,1035351326,-1090109833)+W(3,-1110942359,1033315833,1010290822,-1156901930)+W(4,-1101792417,1051899312,1080526024,-1069022098)+W(5,-1087739606,1036440530,-1124554651,-1114394737)+W(6,-1112121991,1037288067,1042102238,-1113214479)+W(7,1032127295,-1143368203,-1132377096,-1141169667);WS(1058455886,-1096183470);
sum1=W(0,-1105360672,-1112035684,-1105059667,-1103063975)+W(1,-1112638549,-1104182327,-1106250503,-1103319623)+W(2,-1112611850,1032735242,1048808633,1042817013)+W(3,1058906409,1047248804,1047193699,1057710235)+W(4,1060616064,1033545283,1051085625,-1097442806)+W(5,-1102188695,-1103229812,-1106970890,-1109193562)+W(6,-1104075433,-1111940643,-1115570744,-1097216429)+W(7,-1107200030,-1108265532,-1119499692,-1106901731);sum2=W(0,-1135393651,-1131009665,1004138181,-1111055824)+W(1,-1134829555,-1127256265,-1113946573,1010148467)+W(2,-1114274101,1016197705,-1143366053,1051632163)+W(3,-1111579981,1038147066,1025185617,-1137859715)+W(4,-1117767149,-1130986601,1026922589,1048764370)+W(5,1036257166,-1112945554,-1143942149,-1123068365)+W(6,-1110403581,-1136444051,-1112183743,-1121253595)+W(7,1009689523,989872074,-1123668797,-1123716033);WS(-1103618872,1023577831);
sum1=W(0,1041702149,1032268701,1021026046,1032012647)+W(1,1023662430,-1111766616,-1112590149,1042231991)+W(2,1057806109,997904496,1057675340,-1129702414)+W(3,1056283152,1039716321,1049875952,1054291708)+W(4,-1091063799,-1106010126,-1090884608,-1094077941)+W(5,-1094732237,-1100869456,-1105996279,-1098425069)+W(6,1022049043,-1102660926,1046995709,-1100395542)+W(7,1050214494,-1096243374,1047647816,-1100607928);sum2=W(0,1073849383,1069429154,1070121938,1066905653)+W(1,-1087755842,-1080359597,-1073496568,-1070245916)+W(2,-1072987051,-1080077361,-1076996297,-1086754234)+W(3,1060194671,1067521081,1074652354,1075883836)+W(4,1040644897,-1098556311,-1124122091,-1095882058)+W(5,-1096747545,1048551041,-1092793409,1058695504)+W(6,1022236877,-1128073567,-1118780260,1027638421)+W(7,1012182550,-1129108935,-1130588931,1001812541);WS(1010873216,-1100304815);
sum1=W(0,-1154187044,1028741017,-1114247598,-1099084427)+W(1,-1104966895,994968800,-1113228468,1028263947)+W(2,1045945805,1051026373,1058185854,1059904750)+W(3,1052860588,1038231664,1040557287,1032103905)+W(4,-1102222630,-1103217414,-1097780567,-1091550752)+W(5,-1108718914,-1110664976,1017403508,1017865354)+W(6,-1113759340,1022415534,-1105383733,-1111624796)+W(7,-1114326870,-1110217221,-1108875519,-1109350878);sum2=W(0,-1114639192,1039210963,1047528380,-1099502544)+W(1,1041344628,-1108972702,1021595805,-1116883371)+W(2,-1100331344,1069298433,1080352854,-1067747068)+W(3,-1080996124,1032407437,-1121090437,1016604711)+W(4,1035901690,1043940791,1030733380,-1084572959)+W(5,1003800555,1045939813,-1121287047,-1122259179)+W(6,1012858414,-1126620651,1036529177,-1099630936)+W(7,1043527822,-1119860547,-1145664907,1034105585);WS(1044302648,-1104457270);
sum1=W(0,-1115179413,-1101763748,999269803,-1106420033)+W(1,1041707045,-1128885581,-1110751840,1029110244)+W(2,1029190781,1045938783,1034810490,1055724168)+W(3,1053359959,-1100033022,1037908026,1035419021)+W(4,-1108944696,-1102720380,1038235218,-1101615303)+W(5,-1094303566,1043259278,1011056201,-1123807773)+W(6,-1115207128,1013266237,1025157307,-1105407492)+W(7,1045691477,-1113033137,-1114066571,-1113282394);sum2=W(0,-1117238549,-1115295266,1033754662,-1095438097)+W(1,-1106855439,1011060498,-1117460606,1032653312)+W(2,-1109414288,-1128441429,-1104877135,1053172955)+W(3,1056926069,-1108715476,1036225840,-1114450934)+W(4,-1115125848,-1121954754,1018153798,1038786210)+W(5,-1104082080,1043675119,1008366234,1018894269)+W(6,1023475415,1024122972,1002646200,-1106263750)+W(7,1034246226,1025499367,-1107090094,1013321052);WS(1068015911,1043072951);
sum1=W(0,-1127841379,1035792844,-1155603908,1018341976)+W(1,-1111053022,1044403491,-1112313859,1005208661)+W(2,-1101991257,-1091973141,-1110119406,-1095315357)+W(3,-1107228151,-1111437840,-1097295811,-1103670736)+W(4,1041159238,1040826438,1052691071,1053842800)+W(5,1042506601,1050221764,1030249017,1046985745)+W(6,1035382295,-1098419575,1043898844,1030324599)+W(7,-1108241413,1043481954,-1098652336,1032196534);sum2=W(0,-1134315530,1033824390,-1112867968,1039862799)+W(1,1005143468,-1114969920,1030354102,-1131720457)+W(2,-1125722365,1019923991,1039464885,-1087456726)+W(3,-1119378177,1042059959,-1113780490,1009971850)+W(4,-1135384490,998580556,-1093291922,-1061395777)+W(5,-1106942114,-1121281813,1034179020,1032010553)+W(6,-1118933131,1027495017,1045077367,1087627027)+W(7,1034637079,-1148550692,-1118611519,-1117397469);WS(1060186318,-1131602669);
sum1=W(0,1022422466,-1102049002,1050775273,-1097141731)+W(1,1056872997,-1099566807,1025667942,1032894309)+W(2,1050205114,1052887138,1052456073,1049038746)+W(3,1040490435,1039690728,1043457059,1045856748)+W(4,-1099402401,-1102238785,-1100510367,-1088759247)+W(5,-1122526498,-1099089908,-1102859210,-1106963501)+W(6,-1112848707,-1106285089,1039607513,-1098786589)+W(7,1048305743,-1104192622,1032266998,-1118572779);sum2=W(0,989650422,-1108234271,-1120122674,1045260201)+W(1,-1114112879,1037831837,-1117501250,1024132690)+W(2,-1120410947,1050158699,-1092804082,1024838498)+W(3,-1125280065,-1119936776,-1114421818,1035095434)+W(4,1047633630,1066272871,1075424781,1061734347)+W(5,-1091697647,1003481288,1011848513,-1106020023)+W(6,-1081060940,-1074101109,-1079387458,1050344942)+W(7,1043540897,1039609275,-1131708367,1026462111);WS(1057810382,986287880);
sum1=W(0,-1105255365,1027767677,1037147968,1038550632)+W(1,-1136315263,1035749561,-1115075413,1028257967)+W(2,-1110142276,-1106138450,-1092238936,-1090210593)+W(3,-1089134184,-1093055129,-1097497096,-1089420006)+W(4,1041191503,1031406779,1027980992,1049547413)+W(5,1052451129,1057536820,1050343212,1058108487)+W(6,1050176972,-1130243957,1041310918,1041377527)+W(7,-1115128119,1033537239,-1127231554,1031965752);sum2=W(0,-1099824579,-1113793286,1053512844,-1112943238)+W(1,1041834894,-1099992002,-1120789532,1024916046)+W(2,1070708271,-1104040400,-1091831853,-1072548459)+W(3,-1093778092,1057576575,1064181862,1051972140)+W(4,1075074245,-1084124078,-1082668198,-1072503695)+W(5,1056090411,1053907302,1058602971,1054786345)+W(6,-1097074436,1023561426,1039380165,1009216489)+W(7,1043969626,-1107563771,1034348623,-1106961801);WS(-1075707047,1038147646);
sum1=W(0,1038492938,-1115961531,1036899040,1041066756)+W(1,1038870159,1045702796,1022987667,1044017707)+W(2,1050722763,1026800423,1055626176,1052178217)+W(3,1027667391,1053246416,-1100305296,1049962981)+W(4,-1095596015,-1103730686,-1091210886,-1090286882)+W(5,-1094135001,-1095582752,-1109653838,-1093296229)+W(6,1040870942,-1122935577,1047700685,1036539085)+W(7,-1102625947,1048523811,-1105859960,-1117734303);sum2=W(0,-1145353723,-1113260796,-1112198364,-1113367096)+W(1,1007958125,1047146251,-1122974002,1021064313)+W(2,1027969677,-1095928859,1052169305,1052353113)+W(3,-1129450520,1051473061,-1091037095,1050393555)+W(4,-1115030411,1031463199,-1108227013,1051016428)+W(5,1041462653,1045242344,1032341221,1020102815)+W(6,1052090154,-1110261785,1041877601,-1099630700)+W(7,-1087173862,-1102681887,-1095485390,-1111896409);WS(-1102302520,1068562064);
sum1=W(0,-1130894152,1029216267,1029150351,1029804895)+W(1,-1108054071,1046304488,-1107326720,1018120580)+W(2,-1101486038,-1094978851,-1104755260,-1093484995)+W(3,-1110271975,-1106599349,-1102131284,-1102274525)+W(4,1044130034,1029251017,1053252560,1050941559)+W(5,1036880709,1050863202,-1128083416,1047248574)+W(6,1031789673,-1102217970,1042516209,1040658618)+W(7,-1113036417,1041743615,-1102226940,1032422999);sum2=W(0,1019111797,-1123809812,1006739898,1041109085)+W(1,-1126211453,1028972357,-1118372569,1025713585)+W(2,1022527979,-1111065998,1031759809,-1095097056)+W(3,1034613952,-1107360163,1033659253,-1118642675)+W(4,-1131519898,1023737355,1045357020,1082939698)+W(5,1027342607,1033832936,-1112248823,-1118824157)+W(6,1029130971,-1117143513,-1106220344,-1064938697)+W(7,-1122955245,-1112280546,1032152906,1028082979);WS(1066566439,-1125753148);
sum1=W(0,1020091828,1041951168,-1130301450,1052053147)+W(1,-1131231944,1033588155,1009411772,-1116682291)+W(2,-1096367972,-1098758994,-1093467737,-1089881409)+W(3,-1092544881,-1098181717,-1110070786,-1096392077)+W(4,1038767583,1048997640,-1130818632,1064063659)+W(5,-1116991019,1042770882,1046860728,1027361773)+W(6,1030663671,1025331919,-1108818909,1044746920)+W(7,1022962726,1041997189,1018371147,1038578846);sum2=W(0,-1105507764,-1149004498,-1098298748,-1115729482)+W(1,-1094576030,-1111478010,-1129010369,1018600957)+W(2,1019815533,1047279899,-1106660204,1058550934)+W(3,1031191852,1032716298,-1117054989,1019851909)+W(4,-1136431769,-1121679526,-1096656341,1058580319)+W(5,-1098228632,1041490224,1047791827,-1106522387)+W(6,1024962860,1041000955,-1107413740,1027135608)+W(7,-1101441076,1035067556,-1123460834,1005788722);WS(1050996380,1066787661);
sum1=W(0,1042843177,-1120310187,1033453959,-1107450543)+W(1,1017862620,-1134072575,1025308393,1033769739)+W(2,-1109518091,1043911830,1059519229,1061971625)+W(3,1051823058,1046601317,1042112788,1046863997)+W(4,-1098674409,-1097687209,-1096304487,-1098011863)+W(5,-1095767039,-1095249970,-1098354285,-1098417599)+W(6,-1112832565,-1133582755,-1116528532,-1105396874)+W(7,1033796902,999923683,1030029487,-1109771063);sum2=W(0,-1103321099,1033376724,-1108916223,1033194077)+W(1,1038197771,1032881798,1017830932,-1138730935)+W(2,-1087654445,-1114493691,1049058628,1065240604)+W(3,-1128335788,-1094150295,1006224046,-1112103411)+W(4,-1098379129,-1096458683,1036368268,1054396447)+W(5,1049730119,-1108472207,1031462702,-1102017203)+W(6,1013739975,1015354012,-1121134774,-1115257551)+W(7,-1129699908,1021079748,-1117224382,1038189385);WS(1027314912,-1081149641);
sum1=W(0,-1109480125,-1114947760,-1101195017,-1132100201)+W(1,-1103759537,1044342469,-1111893319,1051194426)+W(2,1051429188,1053252314,1058130398,1061393767)+W(3,1057940398,-1104522586,1055491172,-1120202825)+W(4,-1118844062,-1094077252,-1113091794,-1085308129)+W(5,-1102037735,-1094497965,-1103334896,-1094870250)+W(6,-1097611416,1034118735,-1104617542,1035982720)+W(7,-1114189097,1036294793,-1128796810,1030785028);sum2=W(0,-1131039707,1024995350,-1104486127,1015537291)+W(1,1053996441,-1103676904,1047124046,-1111129691)+W(2,-1098833779,-1124760267,-1078713050,-1065942779)+W(3,1047686732,1084085461,1064521940,-1093915430)+W(4,-1147567565,1057070390,-1091843304,-1081156610)+W(5,-1094140189,1060423478,1046849692,1018309905)+W(6,1035790053,995065627,1037354874,-1154356731)+W(7,-1107145709,1026796886,-1108476011,1038591472);WS(-1081542375,1044780323);
sum1=W(0,1026864081,-1100303790,1048337215,-1098110473)+W(1,1054474587,-1099969099,1023999910,1028627178)+W(2,1046719985,1054288460,1054459103,1048901488)+W(3,1041639871,1034589376,1043694031,1046235480)+W(4,-1098857847,-1108679899,-1098101851,-1093175556)+W(5,-1104037973,-1107626335,-1101510966,-1106600025)+W(6,-1114219435,-1104586877,1041408644,-1098306531)+W(7,1046672715,-1104199322,1022681657,-1126646775);sum2=W(0,1017985090,1027847194,1036519222,-1113167123)+W(1,1037009826,-1113380621,1031131596,-1115360802)+W(2,1024212320,-1098721130,1050387030,-1094712479)+W(3,-1100822056,1028269032,1009055356,-1113841920)+W(4,-1099849981,-1081468176,-1070464929,-1096550174)+W(5,1057690620,1042714784,-1145638655,1046010973)+W(6,1067245211,1074345814,1070597407,-1088417301)+W(7,-1104880956,-1102737214,1000105719,-1112342255);WS(1059294542,1020616832);
sum1=W(0,-1157534552,1039080142,-1097783100,1031217968)+W(1,-1164216296,-1138897989,1026686634,-1105498094)+W(2,-1096856701,1044861738,-1089052876,-1085780263)+W(3,1044573672,-1097342660,1041475528,-1105558033)+W(4,1050532499,1041652423,1057029426,1047119538)+W(5,1039715347,1043073721,1040308239,1048391538)+W(6,-1112831597,1046540791,-1098369827,1040272239)+W(7,1024931118,-1103025619,1045404192,-1114523696);sum2=W(0,-1106291706,1001372950,-1099590495,-1093748925)+W(1,1015225205,-1105937891,-1112612361,995169980)+W(2,1040318024,-1105705183,1045484852,1061316313)+W(3,-1098311584,1041085521,1028378294,1035732349)+W(4,-1114208076,-1116263519,-1108179199,1049891427)+W(5,1040668388,-1111581107,-1115787941,-1113959318)+W(6,-1142193319,-1145917455,1036599633,-1108356360)+W(7,-1148092276,1032743264,1021281994,1024794158);WS(1059376718,-1137270291);
sum1=W(0,-1118257199,1037392427,-1097794403,1035766677)+W(1,1026067385,1032186693,-1108679762,-1139304576)+W(2,1043258576,-1106073464,1054680411,-1099046488)+W(3,-1088020070,1041392887,-1113652045,-1111666975)+W(4,-1114290826,-1124279079,-1115190716,1052189312)+W(5,1054691490,-1097245116,1025610423,-1123561026)+W(6,-1112002778,1022160871,1045843716,1011458515)+W(7,-1110958220,1046761570,-1117145658,1032305501);sum2=W(0,1025244035,-1122852568,-1092220395,1038019467)+W(1,1048072683,-1113553750,-1119930901,-1139793711)+W(2,1033595807,-1087687504,1066421651,1047700223)+W(3,-1084925862,1050883425,-1105555859,-1146566911)+W(4,1016573022,1048825911,1058107887,-1089540205)+W(5,1045215493,-1098430697,1041208433,-1124843514)+W(6,1002397687,-1104089806,-1130145014,-1111655831)+W(7,1032935415,1015641098,1001885951,-1131703250);WS(1058596686,1013962118);
sum1=W(0,1000024554,-1127551432,-1100000762,1035333436)+W(1,-1122612871,1044766998,1041477861,1051562743)+W(2,1052551424,1049056438,1057499982,1036076760)+W(3,-1127972943,-1116046252,-1118015335,-1099275107)+W(4,-1088298614,-1098656348,-1090756927,-1097067922)+W(5,1040213184,1015197910,-1123679237,-1122278672)+W(6,1039656505,1034731345,1019232187,1033429441)+W(7,-1125045580,-1113717771,1037833508,-1122272135);sum2=W(0,-1104434141,1029025211,-1078497608,-1079110377)+W(1,-1085502108,1066279808,1062913146,1068620036)+W(2,1048601996,-1091369704,1052827694,-1106615386)+W(3,-1115334546,1037382016,-1122817088,1048688798)+W(4,1033271157,-1119340081,1025214064,-1109539756)+W(5,1050957039,-1106594885,1036274829,-1118139306)+W(6,1004930429,1028438774,-1106316897,1034989376)+W(7,-1108631008,1023198169,-1134348613,-1139733884);WS(1044771128,1023341948);
sum1=W(0,-1156220044,1034545464,1033488922,-1111313058)+W(1,1038420969,1008511890,1013986230,1011084871)+W(2,-1092336191,-1098819215,-1096491302,-1086850728)+W(3,-1102939421,-1100928894,-1115524377,-1089482302)+W(4,1051560294,1044146859,1051910286,1045449190)+W(5,1053458817,1038883707,1012126018,1046748951)+W(6,1036528391,1029114797,1022761170,1029767950)+W(7,1041877300,1034675856,1037411178,1043196317);sum2=W(0,-1071004894,-1080574884,-1089987082,1049506323)+W(1,1065282653,1062249589,1060165079,1070844945)+W(2,1076503146,1066884159,1058011283,-1098882467)+W(3,-1084978169,-1088626314,-1082249713,-1077734377)+W(4,1057610169,-1107351326,1054000347,-1090234844)+W(5,1030898490,-1090230279,1044380003,-1096516163)+W(6,-1122913984,-1130255370,1038970611,1014162118)+W(7,-1114000490,1022492087,-1131621088,1013009282);WS(-1111817840,-1134998409);
sum1=W(0,1022731056,1045262352,1044888721,1029818259)+W(1,-1105915720,-1114660906,1027479949,991785104)+W(2,-1102901203,-1094315057,-1085070720,-1111793509)+W(3,1055206544,1046806370,-1123039746,-1136267423)+W(4,1029699069,1052915216,1058770140,1057078063)+W(5,-1095183540,-1097451385,-1112670352,-1114500629)+W(6,1021112442,-1107194439,-1097785743,-1117717150)+W(7,1040740592,1036425016,1005586201,1016465988);sum2=W(0,-1129690332,1030842707,-1123486113,1054087898)+W(1,-1105176966,-1097205966,-1098021434,-1106929221)+W(2,-1113356803,1026318374,1041923626,-1089332833)+W(3,1068558125,-1141184456,-1107728348,-1104288342)+W(4,997943457,-1119512995,1037525758,-1088292904)+W(5,1040210770,1050151959,1018682892,1006954668)+W(6,1015499837,-1180561029,-1144014736,1037328869)+W(7,-1107365912,-1114055561,1009592392,1013301204);WS(-1100650808,1043653943);
sum1=W(0,1038392637,1032036848,-1120772452,1043637149)+W(1,1040259489,1047398869,1038054351,1050576478)+W(2,1044290651,1040683515,-1106266873,-1090111931)+W(3,-1133467790,1044787930,1023591523,1037223428)+W(4,-1095199164,-1115398639,-1094097345,-1097393337)+W(5,-1104941765,-1101572298,1016760834,-1102689443)+W(6,1033771919,1038316223,1042896310,1045751664)+W(7,-1159203906,1015063331,1030908740,-1125005703);sum2=W(0,1018053796,1000548496,1049079603,1039189619)+W(1,-1128574308,-1118597354,-1106984497,-1104543855)+W(2,1046306039,1043541862,1010667960,1064529690)+W(3,1047996002,-1087406141,-1095617964,-1086946593)+W(4,-1101305605,1029064982,-1116813778,1038487223)+W(5,-1100258391,1048794746,-1114392997,1045938007)+W(6,1031448374,-1112893849,1021972628,-1105518867)+W(7,1037842238,1033382833,1021089548,-1140458600);WS(-1121537248,1047151836);
sum1=W(0,-1096325448,-1113135282,-1098188693,-1112146268)+W(1,-1108791588,-1117696601,-1123869651,-1114157115)+W(2,1052654400,1035132488,1046868890,-1134150082)+W(3,-1129891280,-1098847494,1032919412,-1107856679)+W(4,1000450324,-1110395025,-1139200797,1049727010)+W(5,1041189572,1056884317,1041128337,1058220805)+W(6,-1116556387,1023519458,-1111260975,-1110207458)+W(7,-1104838938,-1098805187,-1146298440,-1103148146);sum2=W(0,-1142864271,1021304865,1043366966,-1107584343)+W(1,1014758407,-1130465374,-1120740451,1000478551)+W(2,1043572739,1026011378,-1102859954,-1080136051)+W(3,-1103597159,-1115654645,1046511165,1053224660)+W(4,-1125571574,1028667063,1022196210,-1072538638)+W(5,-1076945816,1048815254,1072551214,1074776028)+W(6,-1107989855,-1140649559,1020722946,-1132367054)+W(7,1041979768,-1126224006,1027667511,1048839210);WS(-1086568910,969651201);
sum1=W(0,-1128189323,1044154939,1043534732,-1114366976)+W(1,-1098469330,-1101372520,-1123038043,-1132910587)+W(2,-1096064919,-1089612648,-1084798775,1053159863)+W(3,1053431542,1050787607,1036747448,-1116020373)+W(4,1047521403,1054908701,1056987371,1057685165)+W(5,-1089249613,-1090701774,-1105030179,1027268120)+W(6,1043461231,-1099266659,-1113308531,-1152040120)+W(7,1042761408,1049635020,1010635844,1018344000);sum2=W(0,1042932965,-1103428495,1039997403,-1093583228)+W(1,1044856824,-1121819542,-1177180368,1028413178)+W(2,-1103892922,1060495074,1052448567,-1075640666)+W(3,1057723154,1057002090,-1112150955,-1118134166)+W(4,-1104364155,1060109323,1064108701,-1073056297)+W(5,1055665788,1060503917,-1116550688,-1110515035)+W(6,-1139842168,-1118896922,991756114,-1097481656)+W(7,1040659602,-1099984054,1034919451,1041069777);WS(-1084093518,-1116656412);
sum1=W(0,1002008836,959481663,-1104590931,1050696243)+W(1,-1106608235,1047962207,1030562773,1015783795)+W(2,1058416208,1026388179,1059097973,1042079029)+W(3,1041679827,1049127990,1031439243,1042535660)+W(4,-1096672513,-1109778819,-1088144465,-1096264126)+W(5,-1101432288,-1100480244,-1113594772,-1093923750)+W(6,-1112390467,1023428581,-1112632704,1040470858)+W(7,-1102954054,1047012782,-1112144502,-1145396437);sum2=W(0,1007960967,-1110192070,1049899326,1056650247)+W(1,1078512141,1081472440,1058404171,999915485)+W(2,1027407916,1010716935,-1097456083,-1070859565)+W(3,-1068241064,-1079514242,-1094427160,1030657127)+W(4,-1129957403,1018303319,1037417999,-1094713389)+W(5,-1096379657,1043613542,1025537830,-1116925932)+W(6,-1132155403,-1121935910,-1137993343,-1142796285)+W(7,1039214170,-1111213656,1032528613,1024356221);WS(1052225948,1018668194);
sum1=W(0,-1120453498,-1123160289,-1108654867,-1104839613)+W(1,1041378113,1036965515,1044186084,1034438594)+W(2,1051775516,1048325451,1058214550,1064670427)+W(3,-1126638409,1049967085,-1096299613,-1128237844)+W(4,-1117579103,-1111291056,-1093397513,-1091445969)+W(5,-1092047898,-1099225050,-1112850625,-1112057991)+W(6,-1107074656,-1112742544,-1147977428,-1119335936)+W(7,-1109154218,1034167881,-1138567959,1019177609);sum2=W(0,-1121001958,-1148685985,1018483434,1021815720)+W(1,1049361594,-1108634723,-1132118692,-1105580672)+W(2,-1117606942,-1111847761,-1120566718,-1076982600)+W(3,1074852012,1048076514,-1102180777,-1116866514)+W(4,-1103097305,1021935234,1049895592,-1081972918)+W(5,1051964198,1040925857,1017568960,1040155911)+W(6,-1130038396,-1112487949,1038078839,-1125812992)+W(7,-1152546434,-1104919092,1026180028,-1123068468);WS(-1096382876,-1091051652);
sum1=W(0,-1116126267,-1113197617,-1112424211,-1124324715)+W(1,-1136579346,1040875430,-1113905512,1017323784)+W(2,1057278592,1048826126,1058810754,1056304110)+W(3,1041995897,1016295122,1024916389,1042534003)+W(4,-1096000788,-1097274020,-1088739494,-1091311905)+W(5,-1114916522,1038826452,-1128507781,1017648027)+W(6,-1116910752,-1140807037,1039925053,-1132679170)+W(7,-1107191661,-1119450067,1023437062,-1098370349);sum2=W(0,-1120311657,1036113080,-1109045199,1029662296)+W(1,-1122358251,-1114085873,1016737279,-1115835645)+W(2,1025682064,-1107470193,1035621932,-1118009189)+W(3,1045290388,1009830751,1035169596,1030264440)+W(4,1036682152,-1108061877,1051542033,-1101792442)+W(5,-1093646778,1056395710,-1091719234,1052430993)+W(6,-1108273289,1012612647,-1101063214,-1076098595)+W(7,-1080861029,1039398973,1065137390,1072502688);WS(1040082544,-1114755812);
sum1=W(0,1017784372,1037505264,1045745417,1019379817)+W(1,-1109308706,-1124056118,1025470519,1039469090)+W(2,-1110974758,-1108514902,-1095324708,1052579502)+W(3,1058051822,1046163210,1038459986,998280780)+W(4,1040296296,1041424680,1054913780,-1106396419)+W(5,-1087512533,-1093666877,-1106674096,-1109356390)+W(6,1024480479,-1104471944,-1106439461,-1115066496)+W(7,1040857799,1001482384,995688529,-1108404770);sum2=W(0,-1162396366,-1117720653,-1104226850,-1105580348)+W(1,-1105643813,1031813906,1011045214,1018164327)+W(2,1045315846,-1118054954,1057942904,1059476362)+W(3,-1090022037,1045409162,-1106412098,1023977529)+W(4,1034748092,1034773210,1043388435,1067689202)+W(5,-1083232471,-1101262587,-1124577575,-1102021751)+W(6,1035646876,-1100298043,-1097646834,-1093789486)+W(7,1040357620,-1113573448,1012935222,1024454049);WS(1036525168,-1082462584);
sum1=W(0,-1116308971,1037298441,1027885589,-1122874917)+W(1,-1154089797,-1108384819,1028179743,1003463273)+W(2,-1085123800,-1087372070,-1086414101,-1096064460)+W(3,-1099879381,-1104319094,-1127380522,-1096394215)+W(4,1057675329,1051660338,1059597873,1059581688)+W(5,1052784510,-1117339864,1039251609,-1110971807)+W(6,1019612704,1027541711,-1109257541,1041073820)+W(7,1028059367,1045372305,1031554934,1053758651);sum2=W(0,1060691160,-1103295177,1035985281,-1085964582)+W(1,-1105398566,-1107551093,1049030608,-1090293163)+W(2,-1081285622,-1090050073,-1102851017,1072728426)+W(3,1060511611,1033954581,-1086630634,1058069039)+W(4,-1080809247,1050684042,-1087522637,1060852217)+W(5,1058511518,1041242888,1028348456,1062481845)+W(6,1052276353,-1106187369,1048638013,-1090587145)+W(7,1029176048,-1094879840,1046256182,-1087039462);WS(-1074352935,1040600857);
sum1=W(0,1042034194,1028652336,1024054004,1030695172)+W(1,1029627411,-1117605317,-1114002447,1041624512)+W(2,1057627204,1025049468,1057567995,1022098295)+W(3,1052602222,1039437212,1049556590,1053416947)+W(4,-1090157751,-1105875707,-1088931067,-1095088235)+W(5,-1094832321,-1104356174,-1107260676,-1101255271)+W(6,1024364622,-1105990299,1048022018,-1100928004)+W(7,1049957878,-1095846092,1047165477,-1098759166);sum2=W(0,-1075440350,-1079714919,-1079134350,-1081735031)+W(1,1055569671,1066585571,1071644179,1075476470)+W(2,1073165865,1065983198,1068716226,1066499710)+W(3,-1095308006,-1080754250,-1074800849,-1073191304)+W(4,-1112383192,1048707236,-1135853868,-1098543278)+W(5,1021808504,-1108920844,1050977418,-1090378667)+W(6,-1148975848,-1115591486,1038054064,-1125971282)+W(7,1040311395,-1110109816,1035370814,-1120408347);WS(1041022776,1033480094);
sum1=W(0,-1132576057,-1123321429,1028959481,-1104176578)+W(1,1046472198,-1121060138,1027556403,-1115611836)+W(2,1026327841,1042302896,1052457903,1063677500)+W(3,-1097607903,-1123802109,-1118671609,1039698959)+W(4,-1110434490,-1109312954,-1089918670,1025377120)+W(5,-1090934974,1046523967,-1112257611,1000531209)+W(6,-1119031508,1021323174,1029242558,-1118638740)+W(7,1013298461,-1106699146,1030036314,-1116635705);sum2=W(0,-1106027239,-1122286155,-1102546078,1055155948)+W(1,-1096754888,1032068992,-1121774513,1036170969)+W(2,1049930690,-1127267122,1041115945,-1091935564)+W(3,1052250618,-1103388917,1038737216,-1108790214)+W(4,-1110218398,-1108798456,1058786995,1075372513)+W(5,-1071163371,-1123143101,-1121707895,1032355550)+W(6,1034564779,1018367610,-1095860458,1043590800)+W(7,-1112711414,-1119323979,1016553114,1017858173);WS(1055618972,-1117202987);
sum1=W(0,1030962480,-1101414710,-1098100923,-1111740150)+W(1,1036980413,1041005827,1021681163,-1112834597)+W(2,1039894129,1053882576,1057347458,1049814740)+W(3,-1090053902,-1088233382,-1105970903,-1117339136)+W(4,-1101932469,-1089999221,-1085784352,1051098296)+W(5,1056052448,1051763396,1044301630,1032801282)+W(6,1031993659,1048656807,1043352452,1031031542)+W(7,-1104607674,-1119077705,1022017143,1039235901);sum2=W(0,-1114659327,-1123577690,1042921002,-1105097716)+W(1,1042773509,-1093975266,1032061179,1000405669)+W(2,-1101541229,1043634319,1066882360,-1077668162)+W(3,1037629509,1058638399,-1108208741,-1131856909)+W(4,-1107338771,1057974128,1050113378,-1080704784)+W(5,1051155360,1052705661,1008396554,-1111189711)+W(6,1039378885,-1111523166,1040130625,-1104122760)+W(7,1012227066,-1110420726,-1125218199,1025207949);WS(-1091387548,-1116324289);
sum1=W(0,1026642697,1044682252,1041967213,1032214050)+W(1,-1131062694,1015214154,-1137069945,-1110158325)+W(2,-1112220622,-1093973688,1046046637,-1086442024)+W(3,-1099996941,1053177927,-1098783494,1037567917)+W(4,1049897926,1047211372,1050365286,-1112122925)+W(5,1046223135,-1132096750,1024489425,1042021623)+W(6,1027958127,-1098544270,-1112662293,-1106755108)+W(7,-1116559746,1034258897,-1111108842,1031638516);sum2=W(0,-1108095393,1016776222,977935538,-1122468710)+W(1,1019959206,1030099429,-1104930054,1002749526)+W(2,1011776651,1024100809,-1097248934,1057627889)+W(3,1042194141,-1117226417,1051928720,1041814459)+W(4,-1101257730,-1105403134,-1101986254,1060632600)+W(5,-1090719303,1037412790,-1109292621,-1115385474)+W(6,1019145070,1032882678,-1124027994,-1103033100)+W(7,1039533068,-1110127978,-1125661478,-1108291818);WS(1057965518,-1118811194);
sum1=W(0,-1104352985,1038892389,-1105058276,1042490232)+W(1,-1121521774,-1099594944,1033536020,-1095161930)+W(2,-1106566686,-1112643723,1026830542,-1091938531)+W(3,1058056073,-1101314965,-1098044778,1039936570)+W(4,1052732873,1003767366,1060358287,1019887594)+W(5,-1118338013,1042464324,1024562028,1046000094)+W(6,-1107147458,-1114250980,-1096574819,1048844541)+W(7,1024329053,-1107780158,1032778872,-1107207172);sum2=W(0,-1116205334,1042905425,-1109155755,1044205280)+W(1,1035597621,1008636092,1036458751,-1092853308)+W(2,993944814,-1113078065,1044406596,1040105843)+W(3,1043112037,-1123380436,-1105268129,1005260887)+W(4,1032713731,-1104977559,1048672381,-1104277422)+W(5,-1103087244,-1153474446,1015784078,1036094123)+W(6,-1106373772,1039619019,-1115343154,1048332350)+W(7,999501191,-1106439836,1021528398,-1106473413);WS(1053420700,1049909457);
sum1=W(0,-1115258034,1034071238,1027276239,-1115686559)+W(1,1041096236,-1102788144,1034068157,-1107460367)+W(2,-1106165874,-1089903413,1036166247,-1100423414)+W(3,-1093491554,1049835542,-1095323722,-1110396954)+W(4,1050401361,1041332866,1049384898,1037380859)+W(5,1052388787,1034784425,1031952854,1050882791)+W(6,-1113250117,1023742249,-1130552842,-1120158506)+W(7,1037333727,-1103514783,1037170040,-1114330639);sum2=W(0,-1112500393,1028289272,1049127312,1086771603)+W(1,1048088739,1020087240,1014851096,-1146529543)+W(2,1024557142,-1165623582,-1095250820,-1062269001)+W(3,-1095068995,999933935,-1135945992,1025716258)+W(4,-1136367764,1035333264,-1114028070,-1087155359)+W(5,1022077560,1034746908,-1120864651,-1127622484)+W(6,1020782048,-1122738507,1025362120,1034731082)+W(7,-1125007838,-1120796207,1026594640,-1128255426);WS(1063806286,1027083983);
sum1=W(0,-1114823180,1030313470,-1111791457,-1111977289)+W(1,-1108043857,1019729830,-1114640622,1033983240)+W(2,1045480194,1039206373,1061885616,1050451993)+W(3,1057912708,1036575619,1039765761,1034424532)+W(4,-1118427516,-1106496703,1010686340,-1083830979)+W(5,-1099420545,-1105267089,-1131920190,-1125840468)+W(6,-1109705966,1020453816,-1103432478,1039658735)+W(7,-1114670584,-1109909656,-1113587473,-1112770081);sum2=W(0,1033978022,-1100194899,1033701105,1050426550)+W(1,-1104028404,1034191613,-1141130302,1010895851)+W(2,-1122290634,-1091664523,-1071413373,1075108998)+W(3,1062092502,-1103668501,1034149895,-1140709165)+W(4,1016780797,-1103111994,1047766898,-1096749849)+W(5,1027350687,-1131589290,-1131724600,1027888251)+W(6,-1164938552,1002490582,-1105595809,1051489664)+W(7,-1108336227,1021076655,-1149103768,-1131210373);WS(1058288590,1045994186);
sum1=W(0,1018135640,-1123855059,1040223430,-1112801779)+W(1,1036317947,-1098800665,1034707665,-1096517871)+W(2,-1093342072,-1096797372,-1086390197,-1105293320)+W(3,-1091216419,-1117054299,-1096209979,1023470716)+W(4,1052167946,1041780692,1052872019,1059840396)+W(5,1051866430,1050341107,1048652350,1050625648)+W(6,1038262801,1015346466,-1132654257,-1134794696)+W(7,-1117665797,1012611090,-1139713758,1010858330);sum2=W(0,1041114210,-1099284356,1038292116,-1092208278)+W(1,1054381469,-1104534119,1025804573,1033400256)+W(2,-1099008397,1047276236,-1081084758,-1071665325)+W(3,1054365119,1081581342,1062322644,-1093538640)+W(4,-1123917868,-1111523652,1037708884,-1086778305)+W(5,-1101037019,1026238413,-1134916894,1052085127)+W(6,-1125418381,-1120564910,1020505319,-1100128811)+W(7,1024474915,-1125603475,1025011807,-1103707544);WS(-1088887374,1070119449);
sum1=W(0,1040460421,1041554590,1013850612,1038262022)+W(1,1042710919,-1106869091,1044864290,1046057615)+W(2,1052058645,1048371361,1048732808,1042754705)+W(3,1047384127,1054439312,1032508990,1042772520)+W(4,-1090595183,-1115426747,-1094790815,-1087902678)+W(5,-1106656361,-1090477876,-1122940954,-1091795237)+W(6,-1105506686,1029097335,-1129317061,1001782464)+W(7,1038072126,-1131475029,1028935005,-1119515740);sum2=W(0,1024604999,-1112923336,1027433809,1025504127)+W(1,1007245204,-1144581942,-1129047399,1021294865)+W(2,1056461606,1030035123,1050727550,-1090534096)+W(3,-1105339223,-1095507508,1043793174,-1095638178)+W(4,1071685965,1066713447,1068313262,1028028856)+W(5,-1081367671,-1078816510,-1081156501,-1090770344)+W(6,-1075212110,-1080779344,-1078194918,-1153515923)+W(7,1068056044,1069903211,1064173276,1060536751);WS(1040470840,1011790950);
sum1=W(0,1015095158,-1120734562,-1116691398,-1118217942)+W(1,1019898057,-1123629847,1034607368,1041822001)+W(2,1043725275,1051465082,1058372660,1055309890)+W(3,1046636817,1044874098,1043010193,1040878843)+W(4,-1105535856,-1108441440,-1095343471,-1081260869)+W(5,1047492563,-1093096561,-1105294873,-1106259483)+W(6,-1108386992,1030149375,-1112701741,1026499745)+W(7,1032201014,-1115283258,1028457510,-1112399171);sum2=W(0,1022830461,1021246145,1015115055,-1114703004)+W(1,-1120910531,1015720307,983370825,-1123770073)+W(2,-1117997331,-1110014342,-1111993293,1036613835)+W(3,1023720090,-1117604953,-1120463052,1036937497)+W(4,1037270083,-1125616185,1044158772,1073620398)+W(5,-1076883688,-1087890801,1025754476,-1113287589)+W(6,1023767946,-1130403951,1025796328,1050812248)+W(7,-1112499600,1028283916,-1104874229,1033737696);WS(1058309838,-1101980246);
sum1=W(0,-1118965337,-1098779704,1049071256,-1113399754)+W(1,1026571427,-1110569018,-1131332475,-1128371676)+W(2,-1110907254,1049643561,-1081904943,1042163763)+W(3,1052138696,-1106220306,1025191299,-1129449041)+W(4,1038642111,1038999679,1054751182,1056093093)+W(5,-1083956910,1050507993,-1146247429,1030864044)+W(6,1028903966,-1108240479,1040887994,-1118832415)+W(7,1046797612,-1104697276,-1123883748,1017502086);sum2=W(0,-1137655511,1043191716,-1121349336,-1097517035)+W(1,1046822141,-1129223371,-1116759551,-1124684976)+W(2,-1111106723,1033166752,1033268708,1052576386)+W(3,-1107318253,-1102887232,1040601750,993535634)+W(4,1035105104,-1112822728,-1104857525,1055574555)+W(5,-1114990789,-1121581721,-1152414880,-1107957817)+W(6,-1112318930,1027572041,1035699332,-1097542777)+W(7,-1110157019,1031007843,-1157281192,1025775603);WS(1063710542,-1111213649);
sum1=W(0,1039559517,-1110192145,-1107309859,-1118762901)+W(1,-1108199122,1037245627,-1139769966,1035326852)+W(2,1052251350,1049489370,1058328276,1061120005)+W(3,1049656673,1033876357,1041987905,1045428971)+W(4,-1101160384,-1097695264,-1093740712,-1096321197)+W(5,-1097289639,-1114972772,-1102516745,-1103522251)+W(6,-1113889808,1031901152,-1104513406,-1097003636)+W(7,-1112381384,-1176476024,1022802380,-1115185874);sum2=W(0,1026803387,1021750253,1040812059,-1107480079)+W(1,1041131835,-1115082464,1006187407,1001155939)+W(2,-1115186477,1031459540,-1116326399,1040651083)+W(3,1020594503,1033768858,-1132516997,1015478283)+W(4,999853755,1031446318,1058720440,1071698983)+W(5,1051128601,1034660038,1027131696,1041372466)+W(6,-1112425236,-1106593609,-1086524651,-1075753828)+W(7,-1096266051,-1108942599,-1123360193,-1104453127);WS(1039772272,-1082982873);
sum1=W(0,1039127452,-1106264016,-1104546353,-1145518233)+W(1,1041713673,1044410893,1039725795,1007790526)+W(2,1049032497,1053169593,1060522592,1056693961)+W(3,-1095982984,-1088607916,-1099512929,-1120546088)+W(4,-1098139952,-1088020664,-1087153807,1038834197)+W(5,1053429837,1048228018,1030077856,-1130616150)+W(6,-1155633625,1043520647,1040400554,-1139907193)+W(7,-1104883452,-1103034636,-1134131855,1012687882);sum2=W(0,1032987173,-1102803435,-1097110538,-1101871105)+W(1,-1101555589,-1123533577,-1098769512,1048796624)+W(2,-1092902636,1037122437,-1083842457,1067610414)+W(3,1033006847,1041814167,1045724867,999019252)+W(4,1027660911,1039508875,-1115097563,1067552095)+W(5,-1096151174,1026567371,-1107225085,-1105667947)+W(6,1032111389,-1101516234,1001644292,-1104358647)+W(7,-1145661076,-1104681426,1020958965,1028203943);WS(-1101412664,1073047832);
sum1=W(0,-1113880945,-1123950537,-1109995975,-1123565085)+W(1,-1123728428,1035385983,-1115318676,1010675502)+W(2,1059007377,1047579477,1060416389,1056063051)+W(3,1046383171,1040643140,1033389702,1041003725)+W(4,-1091904865,-1097814305,-1087199740,-1092124214)+W(5,-1099567891,1038341800,-1119557930,1042882861)+W(6,-1133362719,-1131741454,1032803377,-1113780884)+W(7,-1113889390,-1126485237,1012558775,-1096461162);sum2=W(0,1013686761,-1123503757,1035262859,-1115490710)+W(1,1025861040,980681483,-1125276038,-1129892230)+W(2,1030949359,1039110679,-1105775253,1027204409)+W(3,1019519396,-1111394964,1024413043,-1126757058)+W(4,-1109223248,1035635962,-1106751414,1057425426)+W(5,1043312829,-1098000154,1051287795,-1103421662)+W(6,-1132915573,996209923,1029135163,1070858778)+W(7,1067133266,-1098902818,-1083268694,-1073095921);WS(-1103532344,-1105840701);
sum1=W(0,-1106756472,-1106322913,1029810954,-1096389739)+W(1,-1116067305,1035916925,-1105566449,1034505108)+W(2,-1105825052,1053932942,-1086676361,-1098358914)+W(3,1054020609,-1096691570,1051257001,1026552303)+W(4,1050195304,1007328528,1057202097,1054492326)+W(5,-1093369370,1012599092,1027855335,-1101687900)+W(6,1044840709,-1104890465,-1144507642,-1098185309)+W(7,1032208700,1048715303,-1100267787,1050640157);sum2=W(0,-1111707317,-1119262447,1037989791,1056036881)+W(1,-1105645897,1006194414,-1146663095,-1129479912)+W(2,-1101137684,-1109186725,1049211868,-1099242284)+W(3,1038198606,-1118866635,-1109483964,-1114787638)+W(4,-1116414033,-1107841286,1056722210,-1094543747)+W(5,1053421235,-1104714858,-1120693058,-1115357885)+W(6,-1103752872,1034593530,-1110917586,1049861706)+W(7,1030171051,-1103907620,1032413269,1029169157);WS(1045178680,-1115117954);
sum1=W(0,-1102680211,-1123018420,-1116849368,1024407336)+W(1,-1107241006,1026392201,-1107918421,-1123314455)+W(2,1048681528,-1113607536,-1092105355,-1093530556)+W(3,-1096193779,-1102060551,-1102337510,-1095199752)+W(4,1019008549,1040296293,1035615004,1061339424)+W(5,1057711678,1055864515,1045891981,1052562824)+W(6,1008490315,1012835273,1027033246,-1128145511)+W(7,-1103222073,-1110547491,-1110097884,1020395952);sum2=W(0,-1108321996,-1115537892,-1106228104,998645667)+W(1,-1112292909,1035781218,-1111036660,1018530825)+W(2,-1096948503,-1104693583,1047339287,1055675007)+W(3,1049114511,-1100682049,1032758858,-1113969306)+W(4,-1112108000,-1112710060,-1126080161,1051246853)+W(5,1041989299,1025978716,1034053890,-1113712936)+W(6,1026091852,1022753169,-1120501740,-1105262859)+W(7,-1123292948,-1139782977,-1111667328,1033000622);WS(1044590904,1058699692);
sum1=W(0,985175380,1034192409,1020554347,1024014533)+W(1,-1115433194,-1128687821,1008304190,-1115445028)+W(2,-1092606720,-1090621088,-1093618783,-1113905855)+W(3,-1096920415,-1112503613,-1100279725,-1101027255)+W(4,1051210502,1050384326,1055009987,1062574818)+W(5,1054554325,1031218808,-1105751509,-1144235755)+W(6,1009220799,-1109361592,-1117059707,-1128567457)+W(7,1015981863,1039114097,-1127205548,1035507338);sum2=W(0,1036009101,-1117283755,1033667347,-1107239966)+W(1,1034685217,-1128406639,-1123321687,-1125402335)+W(2,-1108619644,1041337919,1012813669,1053310286)+W(3,-1103814148,1029066827,-1109499964,-1123197815)+W(4,1010492213,-1100684466,1015579759,1056064408)+W(5,1050883237,-1113069964,-1098878001,-1096911819)+W(6,-1131279719,1035041542,-1124020763,1025470531)+W(7,1032198922,-1104788458,1024066141,-1108347132);WS(1044030776,-1089132931);
sum1=W(0,1034269487,1032883970,1042439154,1044751430)+W(1,1019707982,1041434446,-1133288904,-1128708109)+W(2,-1093699058,-1097458090,-1086092656,-1078975458)+W(3,1035194756,1038040390,-1131544335,-1101499019)+W(4,1045160768,1050995424,1057188990,-1096290982)+W(5,1032938655,1043682915,1022768458,1043305900)+W(6,1040395197,-1135242887,1040422743,1048952172)+W(7,1042217766,1043586045,1029073256,1044718778);sum2=W(0,1043294282,-1127265324,1035036911,1051203976)+W(1,-1092441683,1037063919,-1095318743,-1096741875)+W(2,-1107262777,-1107127922,1048700262,-1114081637)+W(3,1027047222,-1087538045,1043898666,-1114635611)+W(4,-1132728616,-1133435576,-1115280193,1060204569)+W(5,-1096051714,1059699424,-1091030613,1057805441)+W(6,-1112978295,-1101649503,-1142433873,-1138065032)+W(7,1049542158,1027406094,1036599707,-1117298502);WS(-1083489614,-1078579141);
sum1=W(0,-1113694287,1048897616,-1104500498,1029397720)+W(1,1039983475,-1099529286,1047818144,-1100400745)+W(2,-1091060438,-1104759380,-1089217572,-1096433234)+W(3,-1090900481,-1103761763,-1126261903,-1098862766)+W(4,1048678744,1055607032,1025763911,1056656214)+W(5,1055730826,1039576037,1050842685,1044462332)+W(6,1022130309,1045345264,-1098656951,1045280313)+W(7,1003335600,-1104729181,1045845834,-1124798927);sum2=W(0,1034867092,1036831152,-1155378720,1050005016)+W(1,-1109019109,-1107857756,1025727369,-1105627363)+W(2,-1113896283,1008734783,-1107821706,1036439980)+W(3,-1105188391,-1103852014,-1113326142,1036502992)+W(4,-1089397746,-1143881728,-1090933436,1067046868)+W(5,1074023168,1073004488,1071596064,1068047188)+W(6,1053130734,1048547317,1050664536,-1081990202)+W(7,-1073616958,-1073650181,-1078582463,-1079035066);WS(-1123566816,-1118788492);
sum1=W(0,1034266605,-1136553988,1032767842,-1119057557)+W(1,1032596498,-1138237144,1034235800,1038972738)+W(2,-1131696345,1054570946,1043367745,1057910725)+W(3,1051309065,1050053561,1044754161,1047609962)+W(4,-1102436480,-1101485920,-1093672570,-1081257723)+W(5,-1104247863,-1097237249,-1100737384,-1118734125)+W(6,1029920799,1027694719,1029228634,1038070160)+W(7,1041012541,-1104490509,1036672371,-1101643609);sum2=W(0,1001205015,1006355343,1030505158,-1119701641)+W(1,1039794598,-1107202062,1026836118,-1115440174)+W(2,-1108935456,1048575251,-1114918170,-1088419213)+W(3,1032736312,1045905661,-1116946341,1003805295)+W(4,-1123729961,1037564428,-1096130861,-1068662368)+W(5,1076967646,1068403675,-1104305708,-1124006983)+W(6,-1151981614,-1123825361,1015236500,-1095410362)+W(7,1049774729,-1105335733,1050153445,-1103176791);WS(-1103567160,1051728620);
sum1=W(0,1022317012,-1105517764,-1109296554,1030946149)+W(1,1032988986,-1117957958,1025729823,1009731405)+W(2,1037463598,1027268637,1052072875,-1094107172)+W(3,-1087396213,-1098739651,-1104965205,1017302004)+W(4,-1094952698,-1107670055,-1103880757,1052944567)+W(5,1057943536,1052382091,1036164793,1041821631)+W(6,1033922872,1024776175,1038888053,1043766492)+W(7,-1110506946,-1108829569,-1132271979,1015545129);sum2=W(0,1031290011,-1114551402,-1137203270,1025723227)+W(1,1020823723,-1107112701,-1156747895,-1140368490)+W(2,-1127050317,1026829489,1032334734,-1098446681)+W(3,1041359246,1041376772,1034398482,-1104694439)+W(4,-1113481669,1042490649,1043198364,-1127701979)+W(5,1057793899,-1100591458,-1114292550,1037536680)+W(6,-1080536402,-1076466135,1038797044,1074254195)+W(7,1035340712,-1118262367,1013380262,1032104302);WS(-1106439480,1029090439);
sum1=W(0,1034559195,-1151887836,1020849475,1042053132)+W(1,1043127920,1043814293,1037260390,1043715864)+W(2,1042655458,1030625962,1059377738,-1084013087)+W(3,-1107145304,1032281331,1040913704,1033172451)+W(4,-1102396839,-1115609614,-1089162129,-1083731653)+W(5,1052971191,-1107154457,-1113717087,1017680531)+W(6,1026400220,1035325646,1042909598,1039293086)+W(7,1029716960,1024778063,1028666946,-1130742978);sum2=W(0,-1129107524,-1123636938,-1116921954,1035143287)+W(1,1036996009,1026655402,-1117010042,-1126794884)+W(2,1021999108,-1148550480,-1104180688,1058583951)+W(3,-1112895549,-1116180274,-1131502740,-1138164712)+W(4,1022835844,1016982596,1016773924,1054454385)+W(5,-1097314323,-1099699990,-1132536424,-1129763396)+W(6,-1129901940,-1140398984,1030858450,-1117386658)+W(7,-1108156993,-1118751234,1016259828,-1117013506);WS(1048151864,1059242544);
sum1=W(0,-1122367849,-1121466768,1042165293,-1116044868)+W(1,-1105437493,1037358179,-1125163356,-1111398955)+W(2,-1097114939,-1097911384,-1085899247,1042506911)+W(3,1056857214,-1105063934,-1123578292,-1106114902)+W(4,1043794348,1033810391,1063564267,1042284551)+W(5,-1089674786,1049648847,1021855394,1045389303)+W(6,1026875087,1014185912,-1106211614,-1111561384)+W(7,1040868541,1028107682,-1111395274,1010402126);sum2=W(0,-1139648101,-1108856547,1015236663,-1095822659)+W(1,-1137977893,1038373686,1015865663,1025690243)+W(2,-1110557326,1041627874,1032833232,1054902128)+W(3,-1098765424,-1121592121,-1106594443,-1117564251)+W(4,-1106733442,-1106727608,1048813377,1055403310)+W(5,-1097123375,1045561320,-1106386080,1017823319)+W(6,1039330638,987619817,1025349119,-1095503796)+W(7,1050144719,-1108448514,1041979856,-1105901385);WS(1058511566,1043187024);
sum1=W(0,1042620242,1027981614,1037513401,1050564856)+W(1,1040390932,1044188393,1032851398,1043046140)+W(2,1041476871,1044640335,1039039385,-1085132912)+W(3,-1095196494,-1116362934,-1107832665,-1105825814)+W(4,-1106861387,-1120607404,-1101062960,-1089194338)+W(5,1032203084,-1134658518,1026497359,-1105488567)+W(6,1043942651,1040914531,1040902562,1048598306)+W(7,1019897185,1032634704,1027555603,1032742569);sum2=W(0,-1094808435,-1132385524,-1110994277,1039748829)+W(1,1038866141,1012861192,1030487914,-1132742376)+W(2,-1083260450,-1089624726,-1098133391,1063143581)+W(3,1043371703,1040218148,1012758152,1052570990)+W(4,1041967320,-1102801635,1050258559,1037743779)+W(5,1048943341,-1112998265,1031702418,-1105604919)+W(6,1026111290,1034887813,-1123786474,1033106845)+W(7,-1110363077,-1121754906,1012203560,-1111765769);WS(-1087236686,1061665912);
sum1=W(0,-1115274057,-1116162424,-1104461343,-1093387666)+W(1,-1113556238,-1115159031,-1126942285,-1121543315)+W(2,1023071688,1030200068,1054050807,1067462106)+W(3,1050597447,1031104576,-1121547516,1042315272)+W(4,-1107980923,-1101866270,-1092884195,1056570668)+W(5,1044256537,-1106234576,-1128835891,-1114796114)+W(6,-1119301463,-1128116268,-1109238785,-1095571507)+W(7,-1103733247,-1111522325,-1111458030,-1109780718);sum2=W(0,-1127633710,1024854732,-1123781128,1040493279)+W(1,-1105896535,1033983514,-1122459292,-1120616672)+W(2,1024134807,1020748524,-1117094752,1065417820)+W(3,1047826025,-1102101577,1040101538,-1124130304)+W(4,-1114424195,-1098546148,-1079772750,1059484680)+W(5,-1107504040,1049649199,-1105983778,1041220419)+W(6,-1109129714,1025355297,-1102118069,-1114766469)+W(7,1033237727,-1154145757,1012710689,-1123999628);WS(-1092106140,-1084163121);
sum1=W(0,1036347305,1016904817,1034414494,1040590819)+W(1,1047670567,1030378702,-1114654031,1037868673)+W(2,1049849489,1040213041,1056746079,1048812489)+W(3,-1084779712,1040726752,1033236350,1034988241)+W(4,-1101083230,-1152694122,-1083169173,-1107117385)+W(5,1051667767,-1109066592,1024925978,-1107106473)+W(6,-1106738110,-1115216475,1039797369,1022569263)+W(7,-1112982247,-1125038036,1025136605,-1146668256);sum2=W(0,-1144361879,-1128843246,1005924247,-1104940693)+W(1,-1123234701,1030348431,1032437115,1024671661)+W(2,-1111008682,-1134810723,1041181160,1054697191)+W(3,1052731012,1042931729,-1112071203,-1111460488)+W(4,-1092072719,-1121102479,1045581242,1046555600)+W(5,-1103970223,-1104348933,-1113690885,-1129885552)+W(6,1021883158,-1116668390,-1109114373,-1113715104)+W(7,-1128555074,1032936433,-1136719027,-1114960949);WS(1058637774,-1109876822);
sum1=W(0,-1123254812,1041301297,-1108082435,-1113241451)+W(1,-1110973875,1027216056,1014894339,1019588394)+W(2,1042623060,-1105094644,1059472952,1043969956)+W(3,-1113269955,1026816394,-1130602892,1026167148)+W(4,-1126486401,-1111052512,-1094910408,-1094009726)+W(5,1058531737,-1100061186,1032486130,-1117291247)+W(6,-1112485473,1037949088,1016105496,1038892497)+W(7,-1093047519,1032398170,-1128303438,1021704844);sum2=W(0,1019183838,1031923668,1049015983,-1096362417)+W(1,1005830618,1036998273,-1119396253,-1125844722)+W(2,-1103677237,1026573624,-1101357077,1060010174)+W(3,-1122620605,-1106684685,1023743335,970656667)+W(4,1041385745,1025625867,-1095136476,-1096248497)+W(5,-1115221092,1049273019,-1112424814,1011280453)+W(6,-1115238116,1024201143,1024442030,-1122837727)+W(7,1034369966,1031554545,1004099770,1010302645);WS(1068382951,-1145853862);
sum1=W(0,-1109092968,-1120835030,1015957108,1033165317)+W(1,1015780402,-1098982451,-1106789039,-1105810191)+W(2,-1104283584,-1104742016,-1087137628,-1082841532)+W(3,1048723479,-1119342334,1037068029,998682871)+W(4,-1126224104,1048835390,1060142968,1050512116)+W(5,1050625794,1046183055,1033167819,1042826568)+W(6,-1142984099,1035504970,1044651720,1036256010)+W(7,1040271692,-1112268532,-1115364877,-1113754717);sum2=W(0,1042289605,-1123754179,1040865617,1025996190)+W(1,-1100913998,-1118459936,-1114401734,-1118182115)+W(2,-1105845074,1032442894,-1090127653,1055606718)+W(3,-1104101067,1026136504,1031986833,1045409779)+W(4,-1105090355,-1106552079,-1075116096,1073431719)+W(5,1067916428,1042119939,-1112990087,1031635830)+W(6,1041479887,1028813354,-1087510643,-1084272058)+W(7,1045036562,-1131666845,1021173748,-1131440550);WS(-1115823328,-1115141930);
sum1=W(0,994860217,1043355533,1046651158,1031967699)+W(1,-1112906011,-1139800861,1032268536,1021673189)+W(2,-1096937968,-1093401724,-1082957735,1057829358)+W(3,1054780763,1049387203,1029694230,1032667294)+W(4,1034643656,1045563268,1056739037,1053028032)+W(5,-1085595451,-1100812438,-1112691098,-1163065290)+W(6,1022968545,-1100277972,-1106135459,-1113373017)+W(7,1036473238,1042166401,-1109328859,1026417494);sum2=W(0,1041009418,-1106230161,-1113994011,-1100787264)+W(1,-1102450993,-1114680808,1031764893,-1145068408)+W(2,1006794492,1034312638,-1108126219,1060460225)+W(3,-1119222967,-1097084093,-1125377404,-1105852265)+W(4,1023178506,-1120362931,-1105213924,1054015707)+W(5,1053508358,-1133314452,-1141774536,-1120752408)+W(6,-1126244586,1021996758,-1131146954,997147503)+W(7,-1107185372,-1126416406,-1126617106,-1131039214);WS(1044911928,1063248560);
sum1=W(0,-1117210934,1045807559,-1116245664,-1122601008)+W(1,1041679280,-1102494868,1044187563,-1101059428)+W(2,-1089987573,1006551364,-1085623154,-1098705597)+W(3,-1089608778,-1098692501,1040126000,-1100421777)+W(4,1050931427,1049202419,1044690392,1056494849)+W(5,1054654497,1047881833,1043119951,1043071666)+W(6,-1154913199,1049427019,-1098224261,1043742399)+W(7,1009817082,-1102952115,1048685800,-1132265536);sum2=W(0,-1110897864,-1104703066,1039476246,-1102025112)+W(1,1041770976,1044782005,-1112640404,1045848501)+W(2,1031814971,-1126406622,-1112535334,-1088994686)+W(3,1050082866,1038057456,1029663347,-1098794387)+W(4,1060526454,1034850394,1060516426,-1088701567)+W(5,-1072347435,-1075073775,-1077197270,-1081012351)+W(6,-1090228093,-1097166620,-1091926928,1063814816)+W(7,1074296249,1073862535,1067261757,1067785227);WS(-1105546040,1026157880);
sum1=W(0,1040950836,1036866652,1045419231,1057171433)+W(1,1039696013,1040737235,1031337694,1043417390)+W(2,1040614249,1043435937,1048836647,-1092874056)+W(3,1049109967,1037560064,1039556030,1020658754)+W(4,-1102499357,1032157499,-1088963702,-1078642173)+W(5,-1094603626,999044599,-1107844556,-1101965321)+W(6,1036650571,1032871003,1035867609,1040635958)+W(7,1039966133,1035782037,1034875342,1029450491);sum2=W(0,999804672,965076992,1017997216,-1113573416)+W(1,1015814944,1013150208,1004325632,-1116017408)+W(2,1033414560,-1142972544,-1117537424,-1080122522)+W(3,-1116987776,1009041344,1030258512,-1123867424)+W(4,-1131242272,-1152459008,1043660652,1068973644)+W(5,-1113471168,1023678672,-1115573696,1025739248)+W(6,-1111239120,-1114613368,1024438240,1009242816)+W(7,1026341216,-1111376032,-1124670336,1011147520);WS(-1081027239,1060388068);
sum1=W(0,1040945153,1018532824,1048158700,1050078256)+W(1,1043330564,1045983912,1034126717,1042366848)+W(2,1049191505,1052335227,1053224518,-1089652372)+W(3,1050009062,1019623144,1043374892,1037373643)+W(4,-1103567931,-1106690587,-1098210230,-1079677805)+W(5,-1090769236,-1102526621,-1113976903,-1106920486)+W(6,-1142725077,-1126830164,1044049241,1037048166)+W(7,1037549983,-1124021470,1031972104,1000910717);sum2=W(0,1029289565,1023484285,1041097307,1044843621)+W(1,-1101664529,-1108647964,-1111945130,-1129898257)+W(2,-1119356133,1031916514,-1120749829,1057057740)+W(3,1055633817,-1098024997,1038083406,-1101101054)+W(4,-1126159585,-1111485988,-1121314077,1024531885)+W(5,-1102656055,1016983721,-1105960100,1022769465)+W(6,-1119814653,-1133461586,-1112201820,1001931237)+W(7,1035253182,1019582313,1011319026,-1110859200);WS(-1121436896,-1083449266);
sum1=W(0,-1131437006,-1126965659,-1106898372,1049661628)+W(1,-1110051320,1048826500,1018834023,1030351624)+W(2,1057845458,1026072602,1058188821,1047051462)+W(3,1036301673,1049513187,1026266705,1043516478)+W(4,-1096100393,-1106937331,-1089458543,-1093909527)+W(5,-1105302990,-1097831955,-1115312055,-1094725407)+W(6,-1112818966,1025271436,-1120770471,1039868950)+W(7,-1101852248,1048680544,-1111779257,-1137214404);sum2=W(0,1025140224,1016993788,-1106156741,-1085967118)+W(1,-1070014283,-1066270592,-1089828448,-1115300709)+W(2,-1118806788,1030590564,1042721449,1078987048)+W(3,1078555235,1069325982,1051485796,1026006822)+W(4,-1126785121,-1118559458,-1106137914,-1100137345)+W(5,1044823121,-1105174392,-1121082393,1011662011)+W(6,1031495588,991152164,1038491925,1040984057)+W(7,-1111978905,1030579932,-1113499951,-1120641633);WS(1060473294,-1125032523);
sum1=W(0,-1118381578,-1131528546,-1103035725,1044891665)+W(1,1017562024,1038728371,1013193724,1017619335)+W(2,1043924207,1048790648,1057928103,-1096003632)+W(3,-1104437021,-1127678449,-1138265298,1019650740)+W(4,1028842287,-1094915206,1048586166,-1089668066)+W(5,1048997587,-1106021950,1016196772,-1112334062)+W(6,-1103983036,1032416951,-1131359957,1041536420)+W(7,-1119623443,1026802338,-1112764523,1028850580);sum2=W(0,-1124013145,-1154979909,-1113455493,1042673063)+W(1,1009341589,-1131887235,-1126494367,-1120394460)+W(2,1023871771,-1104183315,1024353365,-1099433949)+W(3,1037029004,-1106752952,-1136822537,-1135604889)+W(4,1041717973,-1104961174,-1071159846,1075222357)+W(5,1061754151,-1106459992,1037905746,1020599743)+W(6,1027246941,-1105906795,-1114760758,1048045634)+W(7,-1101645527,1027783079,-1130069351,1023779471);WS(1063175758,1049951270);
sum1=W(0,1051934199,1041620825,1053157077,1019501037)+W(1,-1121035141,1024394007,1034798936,999909159)+W(2,-1084051495,-1091045702,-1089200998,-1103613676)+W(3,-1103906809,1042850683,-1117239270,-1106705027)+W(4,1040719576,1046456792,1054477181,1050464826)+W(5,-1098419444,-1097805325,1011564046,-1091232034)+W(6,1028219745,1028165760,-1110307566,1037889601)+W(7,1045652053,1054554722,1031152711,1056053333);sum2=W(0,-1091471926,1042259987,-1103057728,1049412228)+W(1,1044973062,-1116401558,1011000463,-1130123924)+W(2,1062079447,-1095572989,-1089203271,-1092861102)+W(3,1034556296,1047552828,-1110031497,1051271629)+W(4,1055700238,1041645665,1037140407,-1093629070)+W(5,-1095940003,-1106623325,-1107294450,1053844390)+W(6,1015596856,1033532620,1035045090,1042934527)+W(7,1032040702,-1106239816,1033073048,-1095799213);WS(-1085388366,-1090694979);
sum1=W(0,-1123787314,-1119481145,1032777214,-1112850502)+W(1,1041751591,-1125429276,-1140788444,-1113892940)+W(2,1044273497,-1130943626,1047368143,1059845268)+W(3,-1095680144,1039407200,990533574,1032644049)+W(4,-1108110651,1041576542,-1087220302,1027588771)+W(5,1036323946,-1111657568,1021334836,-1143449895)+W(6,-1115475932,-1117135031,1040347561,-1101064470)+W(7,1037523789,-1126225621,-1134357621,-1109271006);sum2=W(0,-1107190004,1013881877,-1118295314,-1121103222)+W(1,-1127822751,-1115317828,-1126179247,-1114801766)+W(2,1037736456,-1105376838,-1123416196,1042717593)+W(3,-1115549939,1043660085,-1126402007,1040920849)+W(4,-1125693587,1040619572,-1082924015,1068021664)+W(5,1016978358,-1108863865,-1136349779,-1107267301)+W(6,-1120404934,-1122228614,1051908042,-1087341114)+W(7,1042189807,-1125959243,1038966556,1023515477);WS(1065904679,-1122628785);
return clamp(mstd0 + 5.0 * vsum / wsum * mstd1, 0.0, 1.0);
} // nnedi3
vec4 hook() {
vec4 ret = vec4(0.0);
vec4 samples[8];
samples[0][0] = HOOKED_texOff(vec2(-1.0, -3.0)).x;
samples[0][1] = HOOKED_texOff(vec2(-1.0, -2.0)).x;
samples[0][2] = HOOKED_texOff(vec2(-1.0, -1.0)).x;
samples[0][3] = HOOKED_texOff(vec2(-1.0, 0.0)).x;
samples[1][0] = HOOKED_texOff(vec2(-1.0, 1.0)).x;
samples[1][1] = HOOKED_texOff(vec2(-1.0, 2.0)).x;
samples[1][2] = HOOKED_texOff(vec2(-1.0, 3.0)).x;
samples[1][3] = HOOKED_texOff(vec2(-1.0, 4.0)).x;
samples[2][0] = HOOKED_texOff(vec2(0.0, -3.0)).x;
samples[2][1] = HOOKED_texOff(vec2(0.0, -2.0)).x;
samples[2][2] = HOOKED_texOff(vec2(0.0, -1.0)).x;
samples[2][3] = HOOKED_texOff(vec2(0.0, 0.0)).x;
samples[3][0] = HOOKED_texOff(vec2(0.0, 1.0)).x;
samples[3][1] = HOOKED_texOff(vec2(0.0, 2.0)).x;
samples[3][2] = HOOKED_texOff(vec2(0.0, 3.0)).x;
samples[3][3] = HOOKED_texOff(vec2(0.0, 4.0)).x;
samples[4][0] = HOOKED_texOff(vec2(1.0, -3.0)).x;
samples[4][1] = HOOKED_texOff(vec2(1.0, -2.0)).x;
samples[4][2] = HOOKED_texOff(vec2(1.0, -1.0)).x;
samples[4][3] = HOOKED_texOff(vec2(1.0, 0.0)).x;
samples[5][0] = HOOKED_texOff(vec2(1.0, 1.0)).x;
samples[5][1] = HOOKED_texOff(vec2(1.0, 2.0)).x;
samples[5][2] = HOOKED_texOff(vec2(1.0, 3.0)).x;
samples[5][3] = HOOKED_texOff(vec2(1.0, 4.0)).x;
samples[6][0] = HOOKED_texOff(vec2(2.0, -3.0)).x;
samples[6][1] = HOOKED_texOff(vec2(2.0, -2.0)).x;
samples[6][2] = HOOKED_texOff(vec2(2.0, -1.0)).x;
samples[6][3] = HOOKED_texOff(vec2(2.0, 0.0)).x;
samples[7][0] = HOOKED_texOff(vec2(2.0, 1.0)).x;
samples[7][1] = HOOKED_texOff(vec2(2.0, 2.0)).x;
samples[7][2] = HOOKED_texOff(vec2(2.0, 3.0)).x;
samples[7][3] = HOOKED_texOff(vec2(2.0, 4.0)).x;
ret[0] = nnedi3(samples);
return ret;
} // hook
//!DESC NNEDI3 (combine_x, nns128, win8x4)
//!HOOK LUMA
//!BIND HOOKED
//!BIND nnedi3_int
//!WIDTH 2 HOOKED.w *
//!OFFSET -0.500000 0.000000
//!WHEN HOOKED.w OUTPUT.w / 0.707106 <
vec4 hook() {
vec2 dir = fract(HOOKED_pos * HOOKED_size) - 0.5;
if (dir.x < 0.0) {
return HOOKED_texOff(-dir);
} else {
return nnedi3_int_texOff(-dir);
}
}

View file

@ -0,0 +1,450 @@
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//!DESC NNEDI3 (double_y, nns128, win8x6)
//!HOOK LUMA
//!BIND HOOKED
//!SAVE nnedi3_int
//!WHEN HOOKED.h OUTPUT.h / 0.707106 <
float nnedi3(vec4 samples[12]) {
float sum = 0.0, sumsq = 0.0;
for (int i = 0; i < 12; i++) {
sum += dot(samples[i], vec4(1.0));
sumsq += dot(samples[i], samples[i]);
}
float mstd0 = sum / 48.0;
float mstd1 = sumsq / 48.0 - mstd0 * mstd0;
float mstd2 = mix(0.0, inversesqrt(mstd1), mstd1 >= 1.192092896e-7);
mstd1 *= mstd2;
float vsum = 0.0, wsum = 0.0, sum1, sum2;
#define T(x) intBitsToFloat(x)
#define W(i,w0,w1,w2,w3) dot(samples[i],vec4(T(w0),T(w1),T(w2),T(w3)))
#define WS(w0,w1) sum1 = exp(sum1 * mstd2 + T(w0)); sum2 = sum2 * mstd2 + T(w1); wsum += sum1; vsum += sum1*(sum2/(1.0+abs(sum2)));
sum1=W(0,-1138315554,1017020226,1054031418,-1098719688)+W(1,-1110814528,-1144117236,-1151849881,-1120184142)+W(2,1052033568,-1094289569,1026313661,1029415347)+W(3,-1130100551,-1113913797,1057266643,-1094215666)+W(4,-1136459684,-1122295896,-1139428474,-1137890034)+W(5,1050615732,-1084764287,1037955767,-1158862002)+W(6,-1115186183,-1105019328,1060278709,-1093503073)+W(7,-1125342359,-1115484761,1024054031,1030136834)+W(8,1051842684,-1122358095,-1118592012,1027215228)+W(9,-1123693866,-1119041199,1049323809,-1104408867)+W(10,-1141919603,-1148196514,-1134121575,1009291685)+W(11,1050624038,-1101060057,-1117980571,-1131405947);sum2=W(0,1011608699,-1112090344,1035039469,1018826733)+W(1,-1130070276,-1126912052,1021515189,1032910614)+W(2,-1112298310,-1103038162,1030536589,1027816837)+W(3,-1133688887,-1111235489,1068933685,1035541017)+W(4,1002846254,-1119314146,-1109181339,1050015381)+W(5,1079505355,-1096237270,1047170650,-1132054353)+W(6,1032724543,1041065097,-1082386736,1051919390)+W(7,1012706615,1004049262,-1120491130,-1106592726)+W(8,-1067816278,-1101133158,-1108914015,1017068057)+W(9,997621755,-1112521193,-1094139890,-1120644044)+W(10,1011888367,1020965593,1020760181,1032648390)+W(11,-1123411157,1029904493,-1115273665,1017829425);WS(1038714296,1044827315);
sum1=W(0,1008773074,-1137155124,1058392080,-1100726684)+W(1,-1097060854,1034472653,1000000044,-1139148008)+W(2,1051571686,-1106613964,1034039029,-1136883834)+W(3,-1125197471,-1110040196,1058043460,-1093356205)+W(4,-1112523275,1033872898,-1155069097,-1114984084)+W(5,1059856605,-1087655353,-1137125990,-1122772178)+W(6,-1128457331,-1117135435,1053821137,-1093486798)+W(7,-1134047198,-1125370043,-1147450330,1038803511)+W(8,1050763009,-1088451200,-1131894321,1027534056)+W(9,-1142834606,-1110360429,1046500044,-1109846237)+W(10,1021083253,-1126166913,-1131672268,1046900069)+W(11,1049636107,-1093848946,-1108292068,1020331091);sum2=W(0,-1123255245,-1116671780,1046375724,1061532718)+W(1,998291536,-1094346395,982126402,-1111301077)+W(2,1053914306,1066141278,1041257894,-1108898352)+W(3,1020504368,1011773496,1013495848,1064263836)+W(4,1023442398,1023084860,1036976721,-1102830064)+W(5,-1106352300,1055449836,-1101238723,1037821947)+W(6,-1113656730,1031803093,-1103067006,-1076699072)+W(7,-1103198508,-1123876988,-1157600449,1045043848)+W(8,-1094946683,-1085904680,1048924521,1041381351)+W(9,-1129338356,1026389126,1036977493,-1099822488)+W(10,-1109968297,-1109391389,1032297389,1022832316)+W(11,-1098417421,-1092845936,1053328593,1023206676);WS(-1087781687,-1134030789);
sum1=W(0,1028179002,-1113846601,-1090428884,1056064759)+W(1,-1116809458,-1123784128,1037437606,-1129634048)+W(2,-1098510574,1049319247,-1105760812,1016685513)+W(3,-1106850597,1045066941,-1095161561,1048732210)+W(4,1007721067,-1105661778,1040743460,-1108576055)+W(5,-1094444002,1054487227,1050640540,1048222150)+W(6,-1123964671,1030205873,-1095134094,1044300425)+W(7,1040160031,-1110013906,-1122790273,-1117192467)+W(8,-1098192922,1055338520,-1106372902,1033480951)+W(9,1036030878,1027547489,-1101066654,1034894336)+W(10,-1109703824,-1112122819,1027799500,-1110675758)+W(11,-1095206484,1053272331,-1138309939,1033810456);sum2=W(0,1023697539,-1119401943,1010071413,1025267901)+W(1,988018625,-1122026299,-1134698244,1013558867)+W(2,-1112961274,1033970227,-1116217767,1005039212)+W(3,1018187921,-1119659280,1019163177,1048742053)+W(4,-1103390691,-1115786374,1024534132,1038666215)+W(5,-1097296472,1082848284,-1064739318,1042066180)+W(6,-1145140771,-1120396841,1033089456,1060700209)+W(7,-1086947071,1017803659,-1142625275,1035154544)+W(8,-1105855221,-1115995862,1042818438,-1115628759)+W(9,-1141296989,-1131590401,-1156341795,1035612397)+W(10,-1109434149,-1150181080,1007645751,1021197862)+W(11,-1120357988,-1123714371,1029308077,1011442501);WS(1060770743,-1108197568);
sum1=W(0,1016886775,1029069588,-1095627128,1046558478)+W(1,-1146067869,1009558662,-1160198547,1038531041)+W(2,-1096395039,1048524254,-1097778094,1033422755)+W(3,1015246637,1041390628,-1086831062,1058409012)+W(4,-1098986327,1033638277,-1139668038,1022402527)+W(5,1057717017,1050284011,-1110221104,1029754521)+W(6,1034731136,-1103954605,1056693263,-1083755424)+W(7,1042951984,-1119102757,1019206597,-1112398730)+W(8,1053908426,-1092005688,1037994808,-1130383710)+W(9,-1123983389,-1117714338,1043180606,-1101033824)+W(10,1025216609,-1114155844,-1115649126,1039312430)+W(11,1038174992,-1131529899,1000398449,-1129441697);sum2=W(0,-1104188915,1041755532,1039915367,1028942726)+W(1,1030445090,-1104654601,1026676440,-1099902739)+W(2,1048552390,-1105392496,-1104867005,1033528857)+W(3,-1122447814,1020538503,-1105911641,-1106738713)+W(4,-1106850996,989961401,1024214572,-1096783078)+W(5,1068731351,1066518668,-1126700225,-1133955554)+W(6,1036156927,-1094671115,-1096057439,-1122053390)+W(7,1025639958,-1153726297,1039804037,-1096595186)+W(8,-1091471401,-1123632409,-1113480650,1032072745)+W(9,-1140508998,-1108992818,1033306823,1032650381)+W(10,-1115144981,-1128986161,1023379743,1023478108)+W(11,-1096750685,-1109607147,1031767054,1023561226);WS(-1105940700,1068951582);
sum1=W(0,1000087558,-1126610867,1040363554,-1103531583)+W(1,-1126498674,1033586531,1035444041,-1119652358)+W(2,1048983991,-1095183320,1041424541,1011542187)+W(3,1016288952,-1105308514,-1129232537,1035540828)+W(4,-1116171169,1018737568,1033866603,1025089333)+W(5,1043404182,-1091977028,-1108874003,1021129404)+W(6,1023501510,-1101500686,1050470779,-1098956255)+W(7,-1107291841,1033496245,1030903912,1024487034)+W(8,1032787659,1016827662,-1115835365,1023594100)+W(9,-1121882082,1036868116,1042688239,-1107477027)+W(10,1038297635,1015384473,-1139243976,-1137536646)+W(11,1051055933,-1111432589,-1101253029,1034920923);sum2=W(0,-1123978268,-1102554320,1043643239,1026913323)+W(1,1031431539,-1112242992,-1122059260,1044079872)+W(2,-1111536011,1056944699,1037617295,1005844362)+W(3,-1123592170,-1093658955,1042723115,-1093217948)+W(4,-1103624535,-1101249260,1036141312,-1094337979)+W(5,1067907418,1064662115,-1090550375,1042545272)+W(6,-1111710804,1045282706,-1118927202,-1091166584)+W(7,-1119161360,-1111294278,-1127043568,-1139302445)+W(8,1035940631,-1092135065,-1112133073,1025042022)+W(9,1040694361,983065168,1016057395,1041761864)+W(10,1014979737,1026789959,-1120657957,-1105233712)+W(11,1027935282,-1104693620,-1106943303,-1114223884);WS(1061289911,-1074625008);
sum1=W(0,-1118986355,1035013222,1058027688,-1087592511)+W(1,-1107213995,1048036382,1042690449,-1110099132)+W(2,1047068971,1013931199,1008030621,-1106703359)+W(3,1022020251,1048074309,1036127926,-1088015817)+W(4,1042727509,1044183504,1032007652,-1101544522)+W(5,1058005973,-1099315493,-1093058723,1029001296)+W(6,1040686510,-1102744618,1048070472,-1091144488)+W(7,1042938237,-1106075703,-1108674269,1043103143)+W(8,1057593649,-1088950448,1002612916,1048869669)+W(9,-1123719572,-1099009366,1043345580,1033106140)+W(10,-1110941900,-1107279296,1033202498,1038471242)+W(11,1055515931,-1090129177,-1113377491,1042195418);sum2=W(0,1034897388,1047600068,-1092005485,1032211690)+W(1,1046053217,-1111289614,-1104469346,1074182899)+W(2,-1074957140,-1124075063,981988140,990179414)+W(3,-1104312342,1080728354,-1067981267,-1100127529)+W(4,1036844207,-1123826485,1033162274,1077196082)+W(5,-1071410100,-1093339345,1030504779,-1109598746)+W(6,1001538203,1039546617,-1101189403,1036352485)+W(7,1025223671,1036519612,-1119055011,-1121476275)+W(8,1042351425,1008083901,-1101604075,-1146561467)+W(9,1036889309,-1113609974,-1113906708,1032631324)+W(10,1034478190,1017678167,-1122390571,-1124909535)+W(11,1037135096,1002134635,-1113103836,-1132393287);WS(-1106894556,1030995446);
sum1=W(0,1025589699,1033805806,1034528997,-1098701288)+W(1,-1119393787,1027839817,-1123387156,1025291593)+W(2,1054610112,-1096105008,1037953340,-1123546765)+W(3,1028556318,-1127599047,1039781117,-1091536615)+W(4,-1120434724,1027349522,-1139656804,-1105750398)+W(5,1065523109,-1090836572,-1103173850,1022652480)+W(6,980812294,-1104274718,1054896451,-1097995702)+W(7,-1111869411,-1135075504,-1128131860,-1117867836)+W(8,1045458038,1039238949,-1104116474,-1125284461)+W(9,-1137342353,1018769427,1040199808,-1110811780)+W(10,-1129786002,-1152753902,1017797929,-1114245906)+W(11,1047692618,1001735913,-1106977725,-1131064048);sum2=W(0,1030581609,-1096073996,-1104952058,1036583621)+W(1,1006888722,1023568502,-1110091164,-1132437108)+W(2,1031847146,1040176294,-1120421639,-1124563800)+W(3,1024868796,1051933742,1077840619,1056082302)+W(4,-1114613612,1026684617,-1124528958,1042406776)+W(5,-1071401906,-1080138625,1012484405,-1114165836)+W(6,-1175372351,-1117745155,-1108532142,1039833458)+W(7,1044393926,-1139194300,1022252519,-1117509823)+W(8,-1107574374,1041695761,-1112420268,1023135287)+W(9,-1123141270,-1110977956,1034777920,-1119756119)+W(10,1028893644,-1122696127,-1123316826,1029056744)+W(11,1034383482,977900031,1027961212,1034470668);WS(-1094248046,1034739186);
sum1=W(0,-1121641997,1043421097,-1090462057,1057979744)+W(1,1042504017,1019430629,-1148807918,-1114752489)+W(2,-1097763033,1045790578,-1105205440,-1115505835)+W(3,-1119896808,1040593858,-1089339622,1054873978)+W(4,1029920941,1008619887,-1118546659,1043491504)+W(5,-1089142502,1054724534,-1114903193,1038945077)+W(6,-1117202258,1033892386,-1089696734,1056858543)+W(7,-1102740772,1025474934,1027770003,1035924243)+W(8,-1098379668,1046524773,1042806872,-1148381698)+W(9,-1121511758,1032482905,-1096843609,1049846778)+W(10,-1103488653,1017864241,-1114510703,1031829015)+W(11,-1089945727,1056083605,1031492831,1029503362);sum2=W(0,1032629114,-1111104155,-1111175727,1069180600)+W(1,-1092657949,-1081878912,1024571549,1022922994)+W(2,1047799465,1065968459,-1106624299,-1085703668)+W(3,-1123705993,1036988882,-1121840686,1066031139)+W(4,1026540087,-1080884055,-1120833813,-1104365480)+W(5,-1098359864,1064223912,1044325339,-1079207816)+W(6,1031286487,1038064580,1008715668,1062275672)+W(7,1048614780,-1083548865,-1113289848,-1119955010)+W(8,-1115327032,1060225053,-1117772151,-1085294305)+W(9,1033808184,1018164430,1042276675,1060364945)+W(10,-1105153406,-1090372695,1035572024,-1144675449)+W(11,-1114533548,1057151625,-1103516228,-1100806033);WS(-1095016302,1049780935);
sum1=W(0,-1140214663,1050711943,1044505338,-1092537964)+W(1,-1110639373,1025322472,1008440267,-1110792724)+W(2,1051364259,-1101785640,1026645590,1024485132)+W(3,-1137823987,1036012635,1051977632,-1091742968)+W(4,-1130979716,1018037601,1035221148,-1104496021)+W(5,1058946996,-1090015552,-1106527650,1032762847)+W(6,1007510683,-1145733059,1056967247,-1090979415)+W(7,-1146016549,1010918699,1029727784,-1109552317)+W(8,1057598839,-1088424934,1015167915,1027572437)+W(9,-1142229143,-1115585956,1050931556,-1096995861)+W(10,1009720606,-1127055707,1025812851,-1142816275)+W(11,1058283380,-1095074239,-1105047309,1011865435);sum2=W(0,1040969494,-1087779211,1056604611,1059045592)+W(1,-1085730308,1035668628,1036141535,1033693595)+W(2,-1095617275,1037950807,1051875566,-1110274633)+W(3,-1136101349,-1096934819,1057610078,1059474718)+W(4,-1104408796,-1106464684,1015318832,1042126031)+W(5,1059711341,1079595174,1011257519,-1106179801)+W(6,-1112220931,1036377831,-1098744628,1065421414)+W(7,-1102027272,1035078820,-1111621316,1046621966)+W(8,-1088974739,-1079659864,-1097874228,1045400280)+W(9,1042180910,-1129542795,-1112239718,-1077353318)+W(10,-1123714793,-1122902412,-1115487487,1052735842)+W(11,-1089093989,-1076641223,-1089345613,1057832501);WS(-1081166556,-1096725839);
sum1=W(0,-1146977357,-1114510289,1050030946,-1102646113)+W(1,-1113153825,-1114582784,-1130642485,-1119269199)+W(2,1045921361,-1098664649,992772066,1022415207)+W(3,1032268722,1038356317,1039889859,1027769520)+W(4,1041426283,1025422681,-1111253552,-1095921640)+W(5,1057711094,-1089074675,-1107182252,-1098886685)+W(6,1024786511,1038758688,1053078718,-1098156409)+W(7,1043642083,1036466489,1021187873,-1102108905)+W(8,1045805544,-1106011300,-1131324475,-1129952762)+W(9,-1115200917,-1117501552,1042557010,-1102728052)+W(10,-1148235644,-1133449046,1021141494,1024092394)+W(11,1052716334,-1107570834,-1153593794,1012650491);sum2=W(0,-1154116071,1032309947,-1123962703,-1133231158)+W(1,-1128886461,1035599863,-1120032365,1017679770)+W(2,1025906643,-1134787122,-1108727038,1039832482)+W(3,1033357218,-1118521489,1007375557,-1096414395)+W(4,1020492423,1035524914,-1132933754,1020082264)+W(5,-1114291801,1064675801,-1080568363,1059399952)+W(6,-1165588207,-1122971142,-1114360955,-1097709607)+W(7,-1108104258,1040378905,1029048100,1015972752)+W(8,1031540723,1040110606,-1112615988,1024318985)+W(9,-1115144648,1021714009,-1136421576,-1121524587)+W(10,-1111963053,1036458899,1020455541,-1134334294)+W(11,1014310369,-1119507729,1028363593,-1122706022);WS(1058284215,-1100256461);
sum1=W(0,-1136333391,1042064203,1048792691,-1108621703)+W(1,-1107171315,1009105958,977549609,1017583666)+W(2,1037147366,-1098054746,1036542212,-1118222526)+W(3,1023954799,-1103445177,1061193316,-1084539629)+W(4,1001865121,1005641493,1032458293,1003134525)+W(5,1055543997,-1105743629,-1113492892,1001049989)+W(6,-1131855793,1030077610,-1089393894,1061657482)+W(7,-1095280499,-1141919717,-1132003829,1044505715)+W(8,-1102389770,-1111653453,1000070140,1031530183)+W(9,1014651348,1034368605,-1126089633,1032593324)+W(10,-1124982771,957669220,1007647892,-1109681210)+W(11,1030932473,-1134741175,1012906393,-1123915241);sum2=W(0,1025749667,1018718450,-1104497483,-1109821356)+W(1,1032840840,1009497507,-1112523495,1033569638)+W(2,-1111912018,1026676021,-1114119398,1017944258)+W(3,1034709000,-1099586256,-1087345020,-1092985416)+W(4,1018773778,1033599708,1021531102,-1096388774)+W(5,1061077725,1065372034,-1129773592,-1109427758)+W(6,-1129693762,-1109846828,1049253485,1048850468)+W(7,-1101038787,1029395381,1006685387,-1112379914)+W(8,-1117456886,-1106255761,1043058397,-1106769492)+W(9,-1119027428,1008781387,1038233914,1013968523)+W(10,-1113511705,1020319838,-1106459716,1045287677)+W(11,-1135366091,-1138431127,1037121278,-1113647178);WS(1048665454,1062854025);
sum1=W(0,1004974300,-1140401360,1040482153,-1107105990)+W(1,-1113947114,1004764812,1032679478,-1099989608)+W(2,1038119146,-1094089019,1043046180,-1132148363)+W(3,1041394910,-1108003052,1050737065,-1084721726)+W(4,1044891839,1022372181,1026224498,-1103518244)+W(5,1054936910,1054691719,1025601857,-1113753404)+W(6,-1128844481,1044968661,-1084409495,1057517320)+W(7,1022006333,1033354242,-1137588617,1040271757)+W(8,-1099872844,1035416977,1017193535,-1131287582)+W(9,-1115578718,1031459778,-1107158134,1033669936)+W(10,1025595521,-1112957780,-1128306202,-1114933822)+W(11,1038726400,1032390235,1023203548,1012659010);sum2=W(0,-1120028750,-1116919239,1026537129,1032246372)+W(1,1047938064,-1102851233,-1137390044,1034599590)+W(2,-1105861815,-1095438265,1022176478,-1129352893)+W(3,1031876652,-1110926857,-1114848017,-1093245727)+W(4,-1093210017,1046245506,-1112211314,1037510574)+W(5,1054207178,1062401065,-1118385188,-1106645860)+W(6,1041988042,-1091078601,1059021754,-1115099719)+W(7,-1104427658,1043294706,-1105672202,1052042083)+W(8,-1104155840,-1100501338,1013766280,1016480352)+W(9,1032816067,-1102117757,1047757772,-1112097107)+W(10,1027075631,-1113418727,-1122489809,1043447553)+W(11,-1115066040,-1102195598,1027463789,1030659187);WS(1046819548,-1112403026);
sum1=W(0,1043575156,-1096536373,1028458839,1042563315)+W(1,-1147631681,-1134760216,-1118831073,1040283909)+W(2,1047473762,-1108795847,-1115473730,1037371629)+W(3,1028002987,1049135339,-1083606160,1040849058)+W(4,1015994849,1036578576,1025124390,-1115136450)+W(5,1052252597,1045384892,-1102431101,-1147407721)+W(6,1023377962,-1127238030,1054448495,-1081137782)+W(7,1046487189,1029054905,1034880715,1042113706)+W(8,-1106041242,1040945110,1026652836,-1113175874)+W(9,-1125071779,-1124049974,1031800519,1026387221)+W(10,-1096718751,1032040846,-1144027915,1045174012)+W(11,-1138801364,-1122981994,1030118403,-1121286085);sum2=W(0,-1116472244,1036928405,1035706238,-1121318128)+W(1,-1114868876,1033058067,1025044698,-1122373594)+W(2,1040619830,-1104861162,1034962287,-1110745183)+W(3,-1123391126,-1111538981,1046111644,1038958235)+W(4,1034772140,-1130393948,1003069456,-1111848203)+W(5,1044878634,1050016986,-1113883437,1005454840)+W(6,-1129719684,1027481573,1017226015,1040124875)+W(7,-1114732111,-1105702279,-1110477199,990411281)+W(8,1030695866,-1116142138,-1102609372,1029172520)+W(9,1023677849,-1136822924,-1114454329,-1113301330)+W(10,1029458562,-1112847239,989635105,-1136314996)+W(11,1007553654,-1112411005,-1109652887,-1150621057);WS(1054158702,-1098491196);
sum1=W(0,-1129450472,-1119237644,-1101713087,1033589815)+W(1,1034513750,1023147092,983582877,1026235385)+W(2,-1098493798,1048228620,-1123359016,-1173092218)+W(3,-1121209423,1037197666,-1083899440,1060260620)+W(4,-1103037013,1035595873,-1121678922,1031464488)+W(5,-1103778771,1056756834,-1122982297,1020058530)+W(6,1031290553,-1099798307,1057005120,-1093716116)+W(7,1049393023,-1117980637,-1119715259,-1102325483)+W(8,1046824098,-1102446942,1028221304,-1124996559)+W(9,1032360987,-1107157175,1037130136,-1111054172)+W(10,1041637742,-1115548960,-1115265987,1036899466)+W(11,1011053924,-1132207900,992781927,995105423);sum2=W(0,1022318336,1013555797,-1107715656,1023151297)+W(1,1033284778,-1133592549,-1115650269,1016103802)+W(2,-1119261847,-1114491928,-1130031974,-1142562170)+W(3,1023537352,1041650416,1043696631,1042399799)+W(4,-1108010060,-1132296546,-1109544964,1052577828)+W(5,-1093802466,-1088107917,1027122983,1012286637)+W(6,-1104797311,-1105646271,1070961498,1046742027)+W(7,-1123089325,-1129646858,1016525394,-1089308865)+W(8,-1101461419,1041655381,1023301191,-1123666701)+W(9,1034835508,-1093424353,-1129647390,1027817568)+W(10,1010592861,1020078242,1033208955,-1123233885)+W(11,-1103638866,-1123805293,1027104379,1017326494);WS(-1098756718,1025257793);
sum1=W(0,-1170432841,1023803110,-1090131561,1057699745)+W(1,-1119694405,1012926412,992949730,-1138344011)+W(2,-1107275570,1040420307,-1117188674,-1123369303)+W(3,1001883457,1026014126,-1096556254,1054103406)+W(4,-1115724526,-1127845816,1015181254,-1121590721)+W(5,-1096688477,1044394251,1029634610,1035099253)+W(6,-1113865961,-1118191492,-1094031636,1054646511)+W(7,-1140440641,-1114907963,1025052052,-1131017933)+W(8,-1105028073,1053702338,-1105231572,1041135600)+W(9,-1142935155,992699702,-1106433523,1018441892)+W(10,1028218227,-1110839852,1028407518,-1125677724)+W(11,-1094260670,1056434389,-1115106656,1033590433);sum2=W(0,-1113857499,1035336978,1003212424,1016146718)+W(1,-1124908942,1007728744,1017397942,977119295)+W(2,-1169985407,-1139136560,-1127032094,1015257206)+W(3,994248048,1058657166,-1086726098,1029663775)+W(4,-1128987279,-1139895388,-1107301692,1082282453)+W(5,-1067974855,-1088717558,1045162011,989071903)+W(6,-1114604929,1081592322,-1065596346,1032721198)+W(7,-1132432620,-1115423533,-1099171315,1057428850)+W(8,-1101606461,-1109521003,1001306728,1026551071)+W(9,-1128156929,1029982493,-1114706375,1035913834)+W(10,-1127893472,-1124574009,-1105825924,1050573738)+W(11,-1113547007,-1115579388,1022139202,999865176);WS(1057488311,1032489366);
sum1=W(0,998859696,-1107316871,-1130375162,1045821468)+W(1,1009430200,-1127874328,-1126361486,1034785118)+W(2,-1098594694,1031878554,-1137835434,-1124885440)+W(3,1028022609,-1114064513,-1105098668,1057263754)+W(4,-1104540630,-1121514949,-1139957040,1048520075)+W(5,-1099155379,-1127500588,1033795278,1026343507)+W(6,1015295094,-1112481238,-1109749909,1049599048)+W(7,-1105774078,1007199100,-1122345661,-1154023155)+W(8,-1112014022,1025402492,1046311438,-1119007402)+W(9,-1126668079,-1133481329,-1114013594,1034877470)+W(10,-1109189150,1026086402,-1129886863,-1108825451)+W(11,-1116334683,1046739556,-1119327433,-1138298796);sum2=W(0,-1131728975,1036764889,-1111227173,-1128881737)+W(1,1037242625,-1122740141,1035973522,-1115068573)+W(2,1022919798,1043114423,990889655,-1130091274)+W(3,1044679054,-1096357732,-1128128484,-1098903856)+W(4,1034691185,-1126568042,1057647035,-1081650015)+W(5,1064645808,-1105946360,997618289,1036162942)+W(6,1029801795,1008652352,-1094730608,-1121257166)+W(7,-1119761613,-1145265129,-1120435503,1020148594)+W(8,1034184152,-1122224678,-1123774451,1016517254)+W(9,1040526136,1019038058,-1110501324,1033879187)+W(10,1017411026,1025838030,1001204178,-1125968836)+W(11,-1141167471,-1125677560,1017460301,-1121815648);WS(1059796919,-1120566973);
sum1=W(0,-1128913552,-1112300176,-1105877684,1051198984)+W(1,1031319296,-1128535084,-1121363289,1042197939)+W(2,-1097436160,1044389601,-1156941767,1024751122)+W(3,-1114223569,1034918960,-1084964393,1058261945)+W(4,-1115209492,1025460631,-1170089852,1019526904)+W(5,1000497399,1057668526,1032065846,1032881746)+W(6,1032486790,-1097594444,1058860547,-1083919657)+W(7,1045243539,1010383044,1007200827,-1109654209)+W(8,1031553246,-1093305914,1041280427,986576750)+W(9,1031548233,-1121876014,1038828418,-1113158982)+W(10,1014469175,1034628234,1025411673,-1114258964)+W(11,-1106885131,1024357474,-1128319413,1012703988);sum2=W(0,-1143612781,1030657759,-1142189493,-1116365956)+W(1,-1108113093,-1144957229,1024653023,-1114346787)+W(2,-1145631357,-1122350618,-1120960689,1013910379)+W(3,1031492195,-1115709916,1041520845,-1109597137)+W(4,-1100459142,1028619709,-1118229715,-1122961088)+W(5,1058735511,1063925227,-1102646250,1003281301)+W(6,1037055061,1023143173,-1123318690,-1097941231)+W(7,-1097541479,1040501280,-1103747903,1032102149)+W(8,-1113230658,-1096423541,-1119600722,1015718737)+W(9,1027878177,1035049663,-1107577516,1034348655)+W(10,994779835,-1116733621,-1120661119,-1115297076)+W(11,1029140405,-1104473650,1048901284,-1122107736);WS(1025862512,-1097886171);
sum1=W(0,1017995501,1039868615,-1084617440,1048852846)+W(1,1036255511,1003283810,1028206791,1039095646)+W(2,-1095591910,1046495341,1032043925,1031081728)+W(3,-1115115241,1044724702,-1088992852,1053236428)+W(4,974144948,-1128580235,1023900364,1040670187)+W(5,-1089161581,1054642003,1024473755,1033561578)+W(6,973319892,1036683863,-1092805231,1050422468)+W(7,-1132527589,1012484477,1028215869,-1105649212)+W(8,-1107053347,1049220624,-1120787802,-1126192084)+W(9,1033665516,1040757263,-1107160205,1039010398)+W(10,1025750940,1035723265,1031994596,-1101644966)+W(11,-1102281943,1042256548,1034960116,-1141688154);sum2=W(0,1017309480,-1113384832,1051665642,-1106075829)+W(1,1041533127,-1143916576,-1115898040,-1105498372)+W(2,1043260681,1041703091,-1122221676,-1119502308)+W(3,1026950620,-1140340528,-1109716244,-1109231476)+W(4,1047102067,1032670038,-1131938440,-1101077232)+W(5,1039662810,1049668212,-1109791178,-1130795288)+W(6,-1120377052,-1114410560,-1113565360,1032262130)+W(7,1039963022,-1112068676,-1147724576,1042402941)+W(8,-1097796100,1040746517,-1131969000,1031201932)+W(9,-1108926548,-1114542528,-1108348496,-1140600496)+W(10,1032294606,-1108483346,-1120540424,1040078450)+W(11,-1097463639,1048026467,-1107112902,1028500076);WS(1059594295,-1081462343);
sum1=W(0,1027153262,1043504002,1052804111,-1087238767)+W(1,1041162890,1012415888,978268098,-1116748340)+W(2,1047257898,-1102654539,1038115889,-1165722369)+W(3,1020914066,1039643767,1049749519,-1086204143)+W(4,1044063108,1033818911,1037283618,1038369681)+W(5,1054855273,-1088075529,1037006730,1032180390)+W(6,1001487768,1034058802,1047397560,-1086503800)+W(7,-1117492081,991868273,1024040629,1040894970)+W(8,1052275873,-1098202447,1024505810,1034352017)+W(9,-1121199663,-1111840522,1039603542,-1107277965)+W(10,995252542,-1131707508,1022356543,1036921959)+W(11,1026848211,-1098696769,1036480704,-1136594828);sum2=W(0,1028621181,-1120219585,1035384087,1034472183)+W(1,-1123130413,-1120488613,-1110777341,-1127812186)+W(2,-1126856730,-1129759266,-1106344343,-1132463093)+W(3,1027102605,-1121966109,1038893967,-1123472797)+W(4,-1121376361,-1111137329,1030597213,-1109734497)+W(5,1046142043,1054407172,-1110811845,1013238549)+W(6,-1106396561,-1139970197,-1102581665,-1114873213)+W(7,-1147353578,-1113345499,1041951037,1005564394)+W(8,1024169581,1049042812,1023037898,1010521365)+W(9,-1110468651,1027913013,-1119264521,-1104920828)+W(10,-1123538565,-1123696429,1026771477,1021745754)+W(11,1045072501,-1117275361,-1108801471,934750635);WS(1001790336,1033193226);
sum1=W(0,-1113292474,1018580889,-1117909243,1052553934)+W(1,-1104113579,-1129785460,-1131356554,-1115176285)+W(2,1046326027,-1113855449,-1112351060,-1156866531)+W(3,-1133969725,-1102427201,1041639692,1060794158)+W(4,-1095014251,-1132017542,-1118664394,-1094752997)+W(5,1062953181,999804065,-1105541862,-1130622370)+W(6,1027204153,-1105768635,1031529696,-1122254720)+W(7,-1102735326,1022740922,-1111709325,-1119059021)+W(8,1040555139,-1110352445,1031818996,-1121415144)+W(9,1024655285,-1121009370,-1115548569,1026923705)+W(10,1008421480,1008916224,-1127980619,-1131789226)+W(11,1030139737,-1100154756,1016036429,-1122315305);sum2=W(0,999771042,1019371878,1035878909,-1106457448)+W(1,1038257769,-1118330440,-1130012060,-1137594745)+W(2,991329315,1043986431,-1108709562,-1156785507)+W(3,-1123589256,1002965746,1042318306,-1118271248)+W(4,1025444512,-1134019065,1018901632,-1114341154)+W(5,1053769225,1057361082,-1113472862,1021163648)+W(6,-1124249760,-1115605194,1010690665,-1102884302)+W(7,1015483632,-1123825168,1017234680,1017493044)+W(8,-1099274218,1037230696,-1115820708,1025071687)+W(9,-1118367200,1015905000,-1101115118,-1112309114)+W(10,1020142296,-1126466092,1016197020,1024661143)+W(11,-1092869373,1036147884,1016005876,1013380697);WS(-1096043118,-1087645231);
sum1=W(0,-1115587665,1029203067,1045341850,-1106908023)+W(1,-1131991862,-1114910160,1032694426,-1099485226)+W(2,1017432376,1052615508,-1113683692,-1127306394)+W(3,1031441086,-1113336032,1054321442,-1082902530)+W(4,1050084000,998100766,1023546425,-1121275799)+W(5,1050158903,1045376289,-1116607496,-1147820543)+W(6,-1130229584,1051148019,-1081266857,1057440145)+W(7,1027649766,1021215128,-1147531597,-1118364796)+W(8,1047006846,-1118131945,-1120491559,991663462)+W(9,1019733960,-1127235090,-1106232936,-1134199968)+W(10,1027530281,-1123554607,-1115129818,-1119188228)+W(11,1041137522,1018710010,-1131853547,-1124042776);sum2=W(0,-1129211209,1023515648,1040374834,-1110890211)+W(1,1020265593,1023672492,1023861908,-1119658781)+W(2,-1108471855,-1133136545,1048083250,-1109425046)+W(3,1038235290,-1121364796,-1096619497,1044872450)+W(4,1034188808,-1121333166,1029997412,-1103304652)+W(5,1039720436,1050855479,-1102257516,-1130250517)+W(6,-1125523437,-1109858923,-1113539350,-1117035130)+W(7,1022698753,1029442100,-1107362446,1044349350)+W(8,1038091910,-1107498682,1024895152,-1122118916)+W(9,-1114850415,1032218024,-1121557752,-1130602657)+W(10,-1162309256,1020180841,1013933265,1027861436)+W(11,982770184,-1128608489,-1129090321,939323929);WS(1062090935,1058767985);
sum1=W(0,1016379967,-1111629724,-1115487571,1040669191)+W(1,-1124650927,-1131647467,-1127587553,1016014666)+W(2,1046030390,-1131263417,-1107621674,1039946613)+W(3,-1124869109,1045897412,-1089079359,1049140321)+W(4,-1120715392,-1197661491,1030044278,1039181162)+W(5,-1107063038,1046027952,1035258018,1033161790)+W(6,-1135267218,-1111908667,1056809425,-1082917799)+W(7,1051125844,-1129645073,1021197901,1032078908)+W(8,-1100036461,1040408361,-1117322707,-1124734374)+W(9,-1146487047,-1129970444,1008766834,-1115518322)+W(10,-1115270659,1029976235,1001072263,1037221664)+W(11,-1118068997,1034380765,-1135017032,-1119763541);sum2=W(0,1033054007,-1111327982,-1121722910,1038740385)+W(1,-1119336676,-1124024618,-1116547758,1041352776)+W(2,1034677105,-1115132829,-1124364804,1035204548)+W(3,-1123189128,1032790615,1033549613,-1092378351)+W(4,-1102497930,1032784783,1033469023,1012971008)+W(5,1033020303,-1108961666,-1106694042,1032253989)+W(6,-1122818756,-1098982462,1051050782,-1121004928)+W(7,1035128176,1009754028,1026371779,1042838787)+W(8,-1098306997,1045175561,1039643256,-1118316692)+W(9,-1136838880,-1110172088,1034801784,1019964530)+W(10,1015821086,-1125398316,-1137766108,1004924993)+W(11,-1120000922,1027487385,1017988993,1028774587);WS(1065136439,1040354336);
sum1=W(0,-1140671753,-1108811053,1057254373,-1099781359)+W(1,1009251305,1003726785,-1120274067,-1107804932)+W(2,1050226223,-1098842784,1010162395,-1112753158)+W(3,1022747450,-1110160675,1059609336,-1092867554)+W(4,1036945681,-1120831377,-1124666160,-1105899870)+W(5,1031464345,1000731409,-1114655220,-1112429520)+W(6,-1123069063,1025125049,-1093137163,1058399851)+W(7,-1109467235,-1119063979,-1131113682,1033405406)+W(8,-1111386668,1055942809,-1101547023,-1146511789)+W(9,-1118356003,-1129239633,-1105328992,1044975810)+W(10,-1113825780,-1116155918,-1126498983,1016924742)+W(11,-1111235284,1051704028,-1104493413,-1117793303);sum2=W(0,-1139839138,1034041544,1034669108,-1095769692)+W(1,-1105759439,1039138956,998321428,1018598993)+W(2,-1116818777,-1114897304,-1105398904,-1145690340)+W(3,-1134067290,987604943,1007335842,-1102588486)+W(4,-1108283066,1018314989,1024466364,-1102834025)+W(5,1061492513,1062722215,-1098749835,1025712340)+W(6,1008723794,-1131349085,-1121214551,-1107691916)+W(7,-1108418109,1022467761,-1119932526,-1118877643)+W(8,-1116983417,-1117176868,1041629273,-1121476700)+W(9,1028368392,1031347596,-1114752830,1009572226)+W(10,-1103951670,1033232162,-1132382549,-1113750023)+W(11,-1103912225,1035794880,1046707789,-1110829011);WS(1015535328,-1084984071);
sum1=W(0,-1114800552,-1108603860,-1099862310,1058689409)+W(1,-1114937124,-1119809253,1017574081,-1120445077)+W(2,-1098244185,1050368026,-1113854018,-1119794874)+W(3,-1121052395,-1120661414,-1094435959,1059588503)+W(4,-1120887600,-1117398367,-1121642214,1038434434)+W(5,-1091868509,1053265766,1038069402,-1124845785)+W(6,1031943978,1004694578,-1100742889,1053762387)+W(7,1032168457,-1126829041,-1119258038,983354644)+W(8,-1090330210,1049777811,1033335786,-1124490374)+W(9,1015340962,-1131668588,-1106546547,1042220181)+W(10,-1112611163,-1122991451,-1152091148,-1117988144)+W(11,-1096238847,1044693386,1033654385,1025017029);sum2=W(0,-1113763234,-1123863865,-1152383745,-1153318001)+W(1,1032880554,-1112434267,-1113925793,-1117743388)+W(2,1049718598,-1115051721,-1108241407,1017487533)+W(3,-1117079348,1031541130,1054034272,-1111062529)+W(4,1025815300,-1115045873,1016562523,1034144457)+W(5,1045174355,1029337732,1040219109,-1115252534)+W(6,-1106152769,-1108434934,1019958281,-1107848604)+W(7,-1122950542,-1112234054,1021767953,1028245712)+W(8,1048832333,1036566626,1032317223,-1144290245)+W(9,-1110489214,-1107854239,1037079656,-1106439039)+W(10,-1114917041,-1111099643,-1118706081,-1131124226)+W(11,1041167636,-1100833945,1023645948,-1123196065);WS(1058837943,1069665989);
sum1=W(0,962159770,-1123278397,1059574623,-1100091288)+W(1,-1106975399,1026912571,-1131526763,-1133106088)+W(2,1052414436,-1100255560,1034080493,1026538575)+W(3,-1123587520,-1111839826,1056026369,-1090882007)+W(4,1026032901,-1128992103,1016761717,-1119033369)+W(5,1050778647,-1089604336,1030312842,-1142474253)+W(6,-1116652202,-1112323118,1057288447,-1090318286)+W(7,-1115237492,-1126485147,1020359383,-1123741278)+W(8,1051933055,-1098258189,-1123145400,1024876312)+W(9,-1124916236,-1111587013,1049400292,-1098860821)+W(10,1023272149,-1130617057,-1120750038,1031183749)+W(11,1050858601,-1113801599,-1102573630,-1147252941);sum2=W(0,1031825723,1031898082,-1068962638,-1097279430)+W(1,-1106804175,1033946762,-1121672345,-1123032728)+W(2,-1070958719,1042495248,1004890268,1015278793)+W(3,-1128689519,-1149677000,1062859919,1042236169)+W(4,1033261211,-1125393239,1003655756,1042326937)+W(5,1079716701,-1097154173,1047991146,-1129356209)+W(6,-1112729716,1016978721,1069238165,1043003442)+W(7,1029430153,-1130449529,1021714543,-1135526098)+W(8,-1106783417,-1101596383,1006662138,-1143028884)+W(9,-1143241256,1017362221,1038638730,-1114855682)+W(10,1016716693,1021676019,1015056847,-1115756346)+W(11,1030095799,1029691669,-1116617969,1007567766);WS(1027937136,1051433372);
sum1=W(0,1024223452,1027262836,-1095583884,1036904555)+W(1,1037383306,1026871330,-1131494490,1034970897)+W(2,-1102510757,1043230726,-1126475809,-1131579916)+W(3,1034208027,1041574867,-1088128354,1043513377)+W(4,1038022750,1022249046,-1113660825,1051529138)+W(5,-1082034838,-1088109312,1049740992,-1121104697)+W(6,1026687777,1043759333,-1107709564,1040837474)+W(7,1043020088,1030621125,1007645322,1035492122)+W(8,1021392868,1023668834,1040579632,-1128113439)+W(9,1019229306,1025216066,-1116281753,1033050768)+W(10,968839375,1026071912,1023660333,1033175550)+W(11,1019915650,1041627229,1040383308,1024084817);sum2=W(0,-1122636491,1019704225,1049771287,-1108218455)+W(1,1003686724,1007985666,-1114076695,1037288383)+W(2,1032297878,1029534785,-1114871835,1019192761)+W(3,-1122337791,1038646185,1050229287,1038576544)+W(4,1026526587,-1146139348,-1121313911,-1113812515)+W(5,1058219066,1058416091,-1129529893,1021492965)+W(6,1019616565,-1115379683,-1126947029,-1096957025)+W(7,1020162449,-1131201101,1032037049,-1144905268)+W(8,-1089173556,1029636273,1011141050,-1129337357)+W(9,-1121846167,-1124810757,-1109798125,-1112204367)+W(10,1015768281,-1117257463,1035628188,-1104091459)+W(11,-1085784913,1039375301,-1169657505,1026702945);WS(-1087300279,1060388257);
sum1=W(0,-1129462823,1023690092,-1095623283,-1106106692)+W(1,1037669414,-1130365587,1031115364,1041026294)+W(2,-1092905754,1045171988,-1113959460,-1127843579)+W(3,-1114720439,1027269348,-1093094418,1058204318)+W(4,-1142625182,-1122973026,1025637865,1022155151)+W(5,-1092295181,1060821043,1044954958,1027810288)+W(6,-1150727557,1032140389,-1091295733,1047241920)+W(7,1031904715,1008074737,1019407412,1019365849)+W(8,-1094422277,1051757075,1022315054,1005685302)+W(9,1005184420,1035913085,-1097873082,1047453654)+W(10,-1121754201,1011776124,-1144567588,-1142073248)+W(11,-1089577936,1052799910,1027854342,1023937224);sum2=W(0,-1120594034,-1166872476,1040489823,-1102509951)+W(1,-1086857984,1045679794,-1141459412,1004777140)+W(2,-1122900789,-1110936244,-1095818924,-1104593759)+W(3,-1136839806,-1113289360,1021539093,1067324619)+W(4,-1093760272,-1110068744,1028313984,1013932442)+W(5,-1095750682,1045560576,1065644346,-1103109579)+W(6,-1127607807,1019995585,1045364618,-1096904945)+W(7,-1123950010,1034732462,-1122936307,-1124945717)+W(8,1031026044,-1100965201,1042979309,1018809021)+W(9,1007613018,-1145964804,1033830372,1000232964)+W(10,-1121148085,-1152320711,-1134584398,-1157638606)+W(11,-1125456395,-1108078168,1026162850,980148252);WS(-1090838638,1050174926);
sum1=W(0,1024715784,-1109115088,-1106716164,1038102082)+W(1,-1115525408,1016756989,1033853293,1049593122)+W(2,-1120751425,1051782073,-1136454131,1035169257)+W(3,-1106406969,994296459,-1094496661,1043814476)+W(4,-1105105482,-1108133484,1042483832,1045373935)+W(5,-1086184702,1058236139,1033520471,1042591993)+W(6,1025782733,1015694078,-1092092861,1045378621)+W(7,1029286795,-1140252101,-1138965820,-1112080289)+W(8,-1095245812,1042079876,-1106373991,-1115290814)+W(9,1038488261,1045351388,-1100690449,1050438570)+W(10,1034575399,1041627941,-1139164262,-1114987669)+W(11,-1094326222,1040938025,-1122199803,1001134058);sum2=W(0,1051544715,-1087153288,-1090874159,1047568122)+W(1,-1111412903,1034895049,1047565246,-1111682644)+W(2,-1099176408,1032035298,1040133461,-1131191613)+W(3,1046232208,-1081925443,-1105576760,-1119008010)+W(4,-1140028602,-1112144320,-1105592564,1060283907)+W(5,1048906709,1036693685,-1107739759,1040322447)+W(6,-1094324661,1062548140,-1112367085,-1119206793)+W(7,1044620924,-1130045765,-1105924841,-1127110112)+W(8,1049091960,-1158298480,-1096403637,1011461326)+W(9,1021200095,1051334754,-1107585156,1036759049)+W(10,1046459856,1012649582,-1103932050,1033462267)+W(11,1048824237,-1114785543,-1114351857,-1111955333);WS(1039738296,1044009556);
sum1=W(0,1031992376,-1113116036,1058890327,-1088719167)+W(1,1040542090,-1107110028,-1118478209,-1126664684)+W(2,1042459434,-1107130859,-1129453002,1036863629)+W(3,1036413734,1028656912,1054229481,-1088309806)+W(4,1042227988,-1133301245,1042319122,-1095949365)+W(5,1057173004,-1090115281,-1127816747,-1121635021)+W(6,1025321013,1046101634,1048940614,-1090901446)+W(7,1048439133,-1120611033,1019779694,-1104617834)+W(8,1052520321,-1096019759,-1119199044,1022364232)+W(9,-1126468451,-1111694091,1047137387,-1098195015)+W(10,1036380619,-1108092830,1028741314,1029160593)+W(11,1057385245,-1090793697,1040359505,-1129794251);sum2=W(0,-1088996856,1009251693,1062110924,-1115283476)+W(1,1030923639,1034262626,-1089163817,-1107842867)+W(2,1057525018,1042234988,1032774718,-1123202523)+W(3,-1081345153,-1124806950,1064189433,-1104109471)+W(4,-1126776930,-1130902850,-1080285142,1052635731)+W(5,1067630395,-1112028150,1034769026,1036915346)+W(6,-1079794071,-1106464080,1063058829,-1113992476)+W(7,-1106165885,-1110986466,-1089981167,-1125456570)+W(8,1062842970,1045262592,-1136163037,1035294670)+W(9,-1091438196,-1115606726,1054193960,1042247754)+W(10,1032379012,-1135519157,-1099490886,-1106662163)+W(11,1053790298,-1104249669,-1108359351,1024576891);WS(-1096394862,1050867114);
sum1=W(0,975777376,1011677768,1050217928,-1095631255)+W(1,-1105375964,1033079080,1035680965,-1097606072)+W(2,1041761501,-1108785275,1035556439,-1107649602)+W(3,1017323049,1017467204,1059053443,-1088500104)+W(4,1042635014,1020084753,-1164976624,-1122057965)+W(5,-1098739346,-1111108333,1025006046,-1112750027)+W(6,-1126109949,1039142936,-1089683010,1062642602)+W(7,1038036638,-1142614292,-1117859264,-1137149130)+W(8,-1104430516,1040456976,1027021261,1017623258)+W(9,1011370603,1023416416,-1115445691,1016594173)+W(10,1041295544,-1113983747,-1122131819,-1112401517)+W(11,1042596520,-1120553683,1029575724,-1124248029);sum2=W(0,-1131210775,1029829507,1018275001,-1122984086)+W(1,-1096338526,1033255054,1024840523,-1108448221)+W(2,-1117395779,-1132016729,-1114466007,-1103146109)+W(3,1024067225,1046565608,1042461338,1059140985)+W(4,-1107995649,-1119288636,1022860453,-1107856867)+W(5,-1092962046,-1089805596,-1166014069,-1099911282)+W(6,-1125865258,1042031083,1053212914,1058514952)+W(7,1052927486,-1113255745,-1130239171,-1106481128)+W(8,-1102214835,1027704725,1041713274,-1106771914)+W(9,1024964869,-1127390051,-1114692565,-1118917379)+W(10,1037010892,-1111017176,-1117571915,-1124576676)+W(11,991892650,1032905776,1032336370,1000523989);WS(-1112511928,1031640207);
sum1=W(0,1037301926,-1102373753,1058068053,-1091912761)+W(1,1030698115,-1112730073,-1130112569,1048837234)+W(2,1051625169,-1095738529,1045615952,1045904421)+W(3,-1119711398,-1091456672,1054040787,-1101742756)+W(4,-1104227307,-1098654019,1044751592,1045582560)+W(5,1044375881,-1090186767,1051640030,-1111879892)+W(6,-1102628100,-1119033858,1057193534,-1090190311)+W(7,-1111999463,-1123401908,1042267541,-1093436941)+W(8,1051238780,-1110077161,1008998972,-1101737376)+W(9,1021159833,1050238014,1045936610,-1098844722)+W(10,1050341641,1043894710,-1122521821,-1100593739)+W(11,1058222955,-1090967581,-1108465231,-1112695488);sum2=W(0,1016218439,1024549194,-1121292007,1037076368)+W(1,-1112700443,1032984152,1009444234,-1117974589)+W(2,-1111737758,-1110249739,1020335555,-1112172263)+W(3,-1111008440,1042315856,1047393563,-1086831522)+W(4,1038599637,1060801772,1026480303,-1106327815)+W(5,-1089871257,-1069929292,-1111547810,1079084175)+W(6,1015374231,1040022175,-1115783084,-1085683537)+W(7,1049254465,1057876572,-1115006890,1025059842)+W(8,1043300713,1033002057,-1118960414,1033693800)+W(9,1027237715,-1110870197,-1103999090,1033912191)+W(10,-1118358651,-1104475663,-1122692269,1033099318)+W(11,1022298131,1032775289,-1104218510,1045399536);WS(-1106120924,1033431669);
sum1=W(0,1016553159,1035990878,-1101729723,1042266392)+W(1,1024064284,1018305971,-1146851238,1041817850)+W(2,1024013341,1027850273,1026394008,1021653787)+W(3,1024375743,1041767260,-1116899488,977256084)+W(4,990294084,996614956,1026515514,1047579686)+W(5,-1085522812,-1090381288,1048833585,-1125739905)+W(6,1005429062,1031819293,-1090064383,1048109660)+W(7,1038017843,1016883609,1029812010,1026577053)+W(8,-1118087802,-1113190325,1040657490,-1121801815)+W(9,1008887700,1014785832,-1126747713,1024173993)+W(10,1020235411,1027952623,1021177962,1011005202)+W(11,1025078601,-1127218683,1041410670,-1132785763);sum2=W(0,1032555846,-1110721648,-1094136567,1030929664)+W(1,-1146526593,1018020888,1019641904,-1116342888)+W(2,-1089264280,-1112511004,1032788860,-1125819008)+W(3,1015684488,-1102693078,-1097199465,1046449598)+W(4,1012812816,1004426241,-1123545328,1027573888)+W(5,1056898914,1052843165,1033507644,-1122415072)+W(6,-1118308408,1043950970,1037769558,1024674316)+W(7,-1106559340,1028547840,-1117707424,1021888896)+W(8,1041236542,-1109778580,1017687520,996318210)+W(9,-1137876352,1007632640,1026403708,-1123597216)+W(10,1028523456,-1149117889,-1152988290,1023916088)+W(11,1046276806,-1105717038,-1122312832,-1132920416);WS(1034973624,1056792353);
sum1=W(0,-1120658336,-1130821617,-1114903379,-1130597942)+W(1,-1109039532,-1124529164,-1121055921,-1114464179)+W(2,-1125024178,-1102939831,-1115164458,-1124681556)+W(3,-1128295926,-1106629009,1008426736,-1118485143)+W(4,-1104109440,-1138254780,1021962732,-1093463666)+W(5,1062068439,1067744046,-1094141737,993935312)+W(6,-1127490506,-1097245927,1050479246,1049107361)+W(7,-1105858697,-1132704804,-1119904327,-1132912612)+W(8,-1107542555,1045213129,-1119937620,-1120970067)+W(9,-1122942113,-1118132038,1028006365,-1113875250)+W(10,-1141854766,-1122550700,-1119710033,-1115274080)+W(11,1025872901,1036565277,-1121170098,-1120520661);sum2=W(0,1020401308,-1120501349,1037264768,-1090330474)+W(1,-1105802125,1023925581,1017661559,996214904)+W(2,-1116129767,-1084580575,1032645479,-1119976615)+W(3,-1129375401,-1140432422,1035443152,-1097846115)+W(4,-1102145888,1025111856,-1130735541,1024553914)+W(5,1051779064,1064606263,1038402436,-1136822486)+W(6,-1146688164,1006774606,1039827062,1048687051)+W(7,1000828364,-1121332237,-1166762145,-1124013507)+W(8,1025600009,1019182043,1025151371,1015612208)+W(9,-1130185789,1033491675,-1114545658,-1117487855)+W(10,1028059566,-1119338761,-1137125822,-1117903931)+W(11,1032817572,1037037513,-1112238814,999461036);WS(-1082445367,-1085006700);
sum1=W(0,-1131835086,1041974800,-1081109875,1054173212)+W(1,1035072463,-1137431795,1034878908,1043293403)+W(2,-1092276724,1051286356,1034209806,1038048136)+W(3,-1106661648,1042063924,-1086386347,1055927462)+W(4,-1114712644,-1110863483,1037617118,1045196135)+W(5,-1094524616,1058619216,1036390662,1042877649)+W(6,-1121819052,1037212703,-1094507255,1050138098)+W(7,1015171028,-1123146704,1022066011,-1105403448)+W(8,-1104988703,1028915053,-1139447658,-1114994477)+W(9,1036207796,1046411795,-1105674409,1041419787)+W(10,1026111277,1040360493,1033542412,-1100599618)+W(11,-1096619449,-1130824962,1045523870,-1121943708);sum2=W(0,-1112963339,1043137200,1014823768,-1089890678)+W(1,1022229356,-1128614108,1025676326,1000796272)+W(2,1031859059,-1102855534,1031913791,1018516204)+W(3,-1117465202,993751520,1020211292,1018575516)+W(4,-1120060570,-1138611816,1036266015,-1098528956)+W(5,1055374057,1061198225,-1098119563,1020738140)+W(6,-1124864900,1032573075,986723264,1038055959)+W(7,-1106568385,-1132953832,1019242508,-1097473255)+W(8,-1125510524,1050136287,-1098582022,-1123833514)+W(9,1017632828,1049454991,-1111044051,-1109681619)+W(10,1030233630,1035860627,1039721851,-1090503899)+W(11,1007293144,1054985311,-1101215648,-1110059149);WS(-1089141943,1068474134);
sum1=W(0,1024130588,-1121972404,1032495505,1036801227)+W(1,-1117579092,-1114425265,-1101143803,1041396360)+W(2,1045416789,-1094238571,1039470024,1024684838)+W(3,1039148539,-1105946681,-1106461946,1057861426)+W(4,-1113046718,-1108918837,-1124204515,1052602058)+W(5,-1094942270,-1098420551,1047303536,-1127532529)+W(6,1026773217,-1091638882,1059099726,1040764762)+W(7,-1094617668,1027200645,1018218693,1032280890)+W(8,-1106993164,1033290001,1040300696,-1103088708)+W(9,-1104179471,1041946144,1045088278,-1105244536)+W(10,-1110195745,1043167338,-1123573325,-1138642417)+W(11,1009482242,1037819035,-1108347351,-1116739793);sum2=W(0,1016644168,-1134771145,-1129326838,-1114142714)+W(1,1012771369,1025799488,998892514,-1114282184)+W(2,1049635340,-1101404122,-1114952606,1041138771)+W(3,-1116049462,1042383274,-1147070546,-1095734150)+W(4,1057697290,-1095991584,1033248586,1025008594)+W(5,-1102476512,1060588986,-1111850310,1027653952)+W(6,-1110140123,-1104878488,-1090718582,1052949499)+W(7,-1096580248,-1127102864,1041609896,-1101611481)+W(8,1046973498,-1143476482,-1114336646,1035005082)+W(9,-1103095555,1048842205,-1115539252,-1110997031)+W(10,1031782132,992902692,1030835892,-1122288558)+W(11,1028769716,1022411808,-1118966953,-1120028296);WS(1055908206,1023803300);
sum1=W(0,1033033649,-1114766205,1059767687,-1093070812)+W(1,-1106762950,-1139512861,-1128828388,1011459483)+W(2,1054454099,-1094569204,1029622486,1016172182)+W(3,1027156540,-1106069078,1057986836,-1086765600)+W(4,991938588,1027600816,1024886583,-1116675477)+W(5,1059734148,-1090099632,-1098865153,1027525694)+W(6,-1122498726,-1116893112,1056528229,-1094363024)+W(7,-1101593593,-1135964969,1032744244,1045609495)+W(8,1043829406,-1102732570,-1139103892,1036132330)+W(9,-1114524705,-1113403236,1047712168,-1103438026)+W(10,1022039246,-1117700205,1005980052,1049123968)+W(11,1049516377,-1098493775,-1097177334,1035501771);sum2=W(0,1025334517,1052224655,-1085507535,-1083097675)+W(1,-1097828858,1062578782,-1115143239,1029199567)+W(2,-1092254017,-1079915962,-1092877982,1029921983)+W(3,-1112308287,1050599738,-1091835304,-1078367265)+W(4,-1101001669,1036651638,-1115511381,-1137182696)+W(5,1050309385,-1085955474,1031547399,1017725718)+W(6,1042864237,-1101494467,1052849573,1077549274)+W(7,974314816,-1103762806,1031444191,-1094150391)+W(8,1058681981,1068550083,-1100178328,-1106558945)+W(9,1040795754,-1116631442,-1093246396,1054678659)+W(10,1046838481,1039431488,-1111573417,-1092627938)+W(11,1066882777,1059124396,-1088438520,-1098096651);WS(-1078207964,-1098790270);
sum1=W(0,-1117816013,1017293260,1049047675,-1100878354)+W(1,1032784131,-1126192007,1039615439,-1121106131)+W(2,-1100078274,1049964833,-1107321921,-1122801847)+W(3,1040159636,-1098516348,1057717203,-1094050686)+W(4,1040450075,1034337038,1032454162,-1100564368)+W(5,1041647209,-1119951725,-1099964381,1014677674)+W(6,1029735698,-1142189601,-1090236946,1052197359)+W(7,-1116032848,1028031798,1026856980,-1115831559)+W(8,1041839801,-1110599850,1034137049,1027844545)+W(9,-1128361629,-1129405415,-1114821509,1009705546)+W(10,1036993018,-1121696025,1002339317,-1114960439)+W(11,1034781465,1020602063,993360895,-1130484229);sum2=W(0,1025029135,-1104367710,-1119205162,1051361304)+W(1,-1097951274,1037239658,-1115606678,-1132455965)+W(2,1051294613,-1090262380,1046775583,1027534783)+W(3,-1098891737,1054704406,-1118431701,-1094584814)+W(4,-1111734067,-1137589907,-1111864983,1035843132)+W(5,1040638061,1042639742,-1115582191,-1161598998)+W(6,-1112278329,1038310704,1033551568,1042180969)+W(7,-1116801751,-1113612863,1017169741,1037432870)+W(8,-1095570314,1054301740,-1102111461,-1137659371)+W(9,-1123958951,-1137648567,1040693441,1006683771)+W(10,-1108749213,1017443081,1031819582,-1122384617)+W(11,1008777251,1032304440,-1103720876,1038413214);WS(1060561207,-1110135205);
sum1=W(0,-1114856118,1049197464,-1091745710,1057921518)+W(1,1045672489,1021270499,-1124131449,-1108658488)+W(2,-1095755605,1045522218,-1100746808,-1112929307)+W(3,-1121034566,1041962623,-1091090769,1055093690)+W(4,1019645080,-1157317541,-1112340961,1047635080)+W(5,-1089785676,1056738433,-1111234056,1036938084)+W(6,-1112123800,1029521634,-1088312300,1057086969)+W(7,-1095870350,-1148757666,1034679769,1045001085)+W(8,-1105390912,1048793054,1047514180,1026507103)+W(9,-1115322038,1019494819,-1095959893,1049205462)+W(10,-1099214252,1019330670,-1107671902,1038785126)+W(11,-1089779917,1057170552,1022895484,1029094240);sum2=W(0,-1110883135,1041894205,-1114700148,-1082032478)+W(1,1046875162,1064081845,-1122184691,-1115970606)+W(2,-1118217955,-1081043792,1049320576,1059051295)+W(3,1008834310,982318965,-1097954058,-1085641610)+W(4,982336213,1064706681,1033395903,1040255170)+W(5,-1109327580,-1095688614,-1107088758,1066526360)+W(6,-1110716892,-1134396672,-1107386491,-1084362127)+W(7,1032307660,1060847547,1024095030,1031402202)+W(8,-1114148625,-1093205100,-1122373488,1058657081)+W(9,-1113505190,-1121857157,-1116084956,-1087863650)+W(10,1045820748,1055302318,-1113542640,1031923695)+W(11,-1128842340,-1094939475,1044473869,1041403755);WS(-1088848183,-1091270356);
sum1=W(0,-1113444636,1022583331,-1092936920,1050793382)+W(1,1035173048,-1115063927,-1127291412,1011517178)+W(2,-1094397598,1055228191,-1112816343,1007040780)+W(3,-1131637032,1047190142,-1092945549,1056457416)+W(4,1039723405,-1118782984,-1105736260,1040877723)+W(5,-1086200137,1051083611,1039289519,-1114815627)+W(6,1030983166,1035565944,-1102025475,1056969730)+W(7,1015654008,998545680,-1127378047,-1097520394)+W(8,-1104020948,1051399464,-1108815670,-1127143385)+W(9,1037357901,-1114602800,-1116833526,1044492479)+W(10,-1116817631,1025703109,-1115666437,-1108205485)+W(11,-1102830535,1047811509,1032741190,-1123886254);sum2=W(0,1023906737,1067295699,-1081442287,-1097077469)+W(1,1029195957,1026431960,-1110646223,1065087692)+W(2,-1085042817,1037915281,1015927544,-1132623721)+W(3,-1119411664,1065459703,-1083251842,-1096872835)+W(4,1018101230,1018762696,1010017751,-1118952488)+W(5,1050008558,-1110920551,1042598936,-1124571002)+W(6,-1108429461,-1081475488,1064700095,1006981249)+W(7,-1103158035,1020104602,1029589423,-1083105366)+W(8,1064469883,1036080906,1041992018,-1114107558)+W(9,-1110439418,-1095503285,1057972141,-1106015672)+W(10,-1108943564,1036691137,-1125097343,-1083389324)+W(11,1061045473,1051761632,-1114827780,-1119006739);WS(1034259896,1039623341);
sum1=W(0,1016878676,-1137539339,1055868742,-1088089066)+W(1,1043298073,984347141,1028460795,-1104998988)+W(2,1047938201,-1091378989,1036240559,-1121755284)+W(3,1034359235,-1129847248,1058114664,-1090213650)+W(4,1043122195,932956556,1011385345,1015052988)+W(5,1043619008,-1114958501,-1119276751,1018241806)+W(6,1015855070,1032818160,-1096687428,1054476715)+W(7,-1110579607,1026808723,1016831138,1044006969)+W(8,-1092418872,1049053750,-1101201217,1034235663)+W(9,-1128588247,1033445320,-1100196186,1040121848)+W(10,-1106781444,1010316760,1025908283,1043524531)+W(11,-1095896370,1044746961,1018213241,-1120101215);sum2=W(0,951810592,-1108037836,-1092018666,-1130209970)+W(1,1022643242,1009312276,1033659165,-1102042508)+W(2,-1107310314,-1115641842,-1110096702,1032067593)+W(3,1002259560,-1103529440,-1101738099,1041635941)+W(4,1034513697,-1114108683,1037243759,-1102191435)+W(5,1066447662,1067062587,-1100161415,1041326077)+W(6,-1112310958,-1111056455,1032823775,-1098661250)+W(7,1027860693,-1120382671,1034753865,-1119026649)+W(8,1031795157,-1099014553,-1096684817,1026651225)+W(9,992340497,-1101647251,1040899047,-1117726225)+W(10,-1114962434,1038338139,-1114454490,1024637657)+W(11,1046257437,-1111013301,-1112982645,-1106704138);WS(-1096556910,1067967914);
sum1=W(0,1032707155,-1122886335,-1095119782,1055235700)+W(1,-1120012638,1031514684,1024354487,1031668012)+W(2,-1103532312,1048353625,-1105977207,-1126996321)+W(3,-1131915011,1021347526,-1095435756,1044387963)+W(4,-1105830818,-1116416117,1043480447,1041914807)+W(5,-1090836352,1053060297,-1133082414,1043128001)+W(6,-1118942187,1036630543,-1091218783,1041581564)+W(7,1017318739,-1110350280,-1132633269,1034774528)+W(8,-1104917967,1052242886,-1121967338,1039162573)+W(9,1031302952,-1125222297,-1100801113,1033613430)+W(10,-1130484760,-1148985233,1031513592,-1106257250)+W(11,-1104067043,1050269976,-1109204860,1034839630);sum2=W(0,-1125934657,1041393774,-1097497496,1047775001)+W(1,-1131783044,-1122059316,-1120747465,1032139854)+W(2,-1114660789,-1105604596,1018330620,-1129241452)+W(3,-1126946517,-1107151652,-1096477783,1048515105)+W(4,-1096755902,-1147658728,1019390634,1046075673)+W(5,1057927405,1059160295,1041946221,1011994599)+W(6,-1140291646,-1090083756,-1110210473,1043731078)+W(7,-1091797353,1032850220,1045993569,1024325836)+W(8,-1137735680,1039621515,1046026631,-1126091098)+W(9,-1110717499,-1116058677,1033250412,-1116506490)+W(10,-1106745231,1009337229,1038335355,-1097350707)+W(11,-1127153776,987432265,-1124643180,-1124186068);WS(1061843767,-1077951557);
sum1=W(0,1026388735,-1106366502,1059311576,-1088217072)+W(1,1041378862,-1102542817,-1120114128,-1131166601)+W(2,1043697070,-1105977039,-1130669927,1039925540)+W(3,1037862893,1029755951,1054385928,-1091419383)+W(4,1047467576,989452730,1029309653,-1091391038)+W(5,1057568381,-1089136642,-1111164306,-1105668215)+W(6,1036389538,1048316317,1054220568,-1092475601)+W(7,1053509792,-1138232735,-1122000006,-1099454574)+W(8,1049723715,-1095416897,-1108260705,-1130981221)+W(9,-1126306304,-1106178153,1050234615,-1096877448)+W(10,1038585474,-1107228323,1030215888,1034019808)+W(11,1058416302,-1091809363,1045917860,-1116719540);sum2=W(0,1061533858,1041546460,-1081881922,-1104625991)+W(1,1020257203,-1112819836,1062451832,1044663473)+W(2,-1084977950,-1116240264,-1107478927,-1146254682)+W(3,1068272760,1019905335,-1081565785,-1115490290)+W(4,1038097782,1018218872,1070735043,-1103665132)+W(5,-1079025547,-1094934042,-1129735749,-1108448519)+W(6,1070929067,1027882908,-1082597652,1002519540)+W(7,1043320870,1032555484,1058522058,1053579543)+W(8,-1079765468,-1096683616,997759194,-1111378699)+W(9,1059576348,1030217484,-1088759123,-1103272320)+W(10,-1110736144,1018278443,1052624489,1042937819)+W(11,-1090364693,1039524167,1041293151,-1120119454);WS(-1084224055,-1088316584);
sum1=W(0,-1113613001,-1107673717,1006747746,1039555654)+W(1,1033838821,-1159624430,1003388692,1028109079)+W(2,-1098426505,1048291572,1024741190,-1124153911)+W(3,-1106869627,1012698375,-1088923256,1059475506)+W(4,-1120760050,1033833840,1016662735,1027116933)+W(5,-1097246285,1054502102,1019707757,1010228666)+W(6,1022316973,-1094644889,1057877820,-1093203288)+W(7,1048977331,-1114819581,-1136760929,1023495179)+W(8,1033746004,-1098003683,1036081339,-1110624834)+W(9,1028746387,-1107590588,1041863252,-1105649846)+W(10,1041797102,-1119454813,984919127,1024116594)+W(11,1022736621,-1114921814,-1127589064,-1122201606);sum2=W(0,1015245257,-1113301472,-1126889814,-1122805777)+W(1,1024783162,-1125306444,-1113948506,-1150409563)+W(2,1027745966,-1121614859,1024732276,-1120982285)+W(3,-1130594159,-1113241340,1053517180,1035094088)+W(4,1035927962,-1117285071,1007533655,988101766)+W(5,-1115083078,-1117590123,1033594898,-1115586407)+W(6,-1122336092,-1114338752,-1120298083,1041346715)+W(7,-1136757529,-1179946326,-1131246557,1042344950)+W(8,1009652067,1010321235,-1112303516,-1122655190)+W(9,-1121042747,1024929700,1023796132,1022595647)+W(10,-1107129305,1031780006,-1112003767,1034588627)+W(11,1015099871,1021357977,-1116844702,-1109817399);WS(1056759150,1060224665);
sum1=W(0,-1139374311,-1132085157,-1099925456,1041263149)+W(1,1033127353,-1131329248,995010733,1023919167)+W(2,-1105275165,-1143162806,1020125661,-1128574472)+W(3,-1111414410,1047983919,-1089721802,1045591848)+W(4,1047176279,-1124813330,-1108849608,1035204919)+W(5,1047380996,1054640011,-1109178223,-1115433611)+W(6,1028987391,1044747100,-1111752399,-1086265361)+W(7,1047077327,1014274699,1016981889,1009635916)+W(8,-1106656308,1052567064,1025513390,-1114033239)+W(9,-1123115291,1026679904,-1119632759,-1119813375)+W(10,1020940735,-1135589654,-1129401942,-1133052010)+W(11,-1103728616,1036660778,1026259564,-1154487021);sum2=W(0,1023227060,-1114834111,-1123255684,-1111609489)+W(1,1029177075,1009084849,1023565277,-1123243930)+W(2,1036838581,-1109001470,1046335474,-1110362282)+W(3,1023373012,-1110717616,-1121973236,-1106028739)+W(4,1040383540,1030364025,-1127246210,-1119831250)+W(5,-1128787384,1068968933,-1085459757,1038001226)+W(6,1035525242,995075850,-1106791563,-1084327071)+W(7,1055427968,1004844681,-1115895934,-1112704991)+W(8,1017209933,1049794788,-1106438120,-1109625554)+W(9,1032252451,-1137853837,1025363014,-1103092626)+W(10,1039281515,1026824663,-1115664904,-1177558227)+W(11,-1117762720,1033559138,-1108939748,1027051057);WS(1059198391,-1114206899);
sum1=W(0,-1123230572,1047908609,-1086695351,-1111534963)+W(1,1041894153,-1168813170,1033309054,-1113872057)+W(2,1005036838,-1127426130,1035651728,1029018614)+W(3,-1136657179,-1131612168,1053830093,-1097279138)+W(4,-1114797926,1015674230,1042361008,1032838544)+W(5,1063074340,1032841926,1042266564,-1115081892)+W(6,-1127872354,1018582917,1022976638,-1102974814)+W(7,1036160183,1022213546,1026831155,1025662981)+W(8,1048968528,-1086802103,1043048448,-1119589535)+W(9,1034821095,-1122684754,1037218004,-1094977286)+W(10,1028546130,1023015663,1027013917,1042918755)+W(11,1045668084,-1080167184,1051954532,-1121567905);sum2=W(0,-1109294951,-1116747636,1053044316,-1093594252)+W(1,-1105874671,1036768486,1044771761,-1095594447)+W(2,-1102224225,1044254591,-1148207325,-1122217612)+W(3,-1106240469,-1091993541,1065361960,-1103264547)+W(4,-1098859579,1038496462,1037653814,-1098134808)+W(5,1060397410,1059446961,-1110887683,-1106764847)+W(6,-1132138943,1045429231,-1095097189,1053539276)+W(7,-1103270924,1035231626,-1129034439,-1112675284)+W(8,-1139768526,-1147713757,1018090127,-1112984312)+W(9,1027920896,1030264036,-1100471477,-1115698004)+W(10,-1105560593,1037287074,-1126749735,1027709116)+W(11,-1095674438,-1131922215,1044415945,-1106415399);WS(-1081905372,1072993545);
sum1=W(0,1004609681,-1111485397,-1100618406,1052555682)+W(1,-1113666277,-1113131956,-1113931058,1044870886)+W(2,-1103601459,1050421002,-1125853837,-1119475260)+W(3,1017897178,-1101161424,-1117978262,1053397115)+W(4,-1109207833,-1119057377,-1110350900,1042868018)+W(5,-1088871615,1057434595,-1108715676,-1116054255)+W(6,-1119842647,1016958866,-1096217303,1037835279)+W(7,1041223333,1033629886,1029593625,1036666966)+W(8,-1090419947,1054502387,-1131918060,1019600139)+W(9,-1114320538,1034341084,-1105396084,1036260396)+W(10,1046093262,1034832815,1026419555,-1123516147)+W(11,-1100180286,1041011339,-1108472674,1025124935);sum2=W(0,1027207918,-1134820995,-1123507780,1022927690)+W(1,-1148644129,-1124904791,-1131003531,1019005665)+W(2,992028222,1039006609,-1114458430,1019252639)+W(3,-1155176792,1018656479,1020777698,-1108026125)+W(4,985006155,1019665619,-1144704129,1016837667)+W(5,-1093100477,-1075529389,-1165905039,-1148497627)+W(6,-1120277627,-1133755465,-1106617270,-1071234400)+W(7,1009164120,-1154476856,1018692534,1007330736)+W(8,1026210395,-1098388857,1080134310,1041946375)+W(9,-1122116985,1008190855,1015481059,1043410538)+W(10,1068769301,-1120913968,1016313728,1024160458)+W(11,1009441727,-1127804151,1038162442,-1102924087);WS(1052536174,-1151096569);
sum1=W(0,991116371,-1128173243,-1103836723,1032573088)+W(1,999976938,1037991630,1033302347,-1146822742)+W(2,1034951935,-1120898050,-1138114279,1035558856)+W(3,-1116642336,1036050892,-1087917523,1057405287)+W(4,-1098834165,1042054293,-1115536654,1034768509)+W(5,-1106200391,-1120590821,-1118223722,986260550)+W(6,1020657940,-1102372039,1061554222,-1082912644)+W(7,1047922098,-1130396508,-1114833734,1030675614)+W(8,1041046871,1002819162,-1107937520,1023135729)+W(9,1031490598,-1114628406,1046795201,-1124848916)+W(10,1038688870,-1142052488,-1158391502,1032401267)+W(11,1027714602,-1124036191,-1118805976,-1177279769);sum2=W(0,1035223119,1038869307,-1108836158,-1105867416)+W(1,-1106282608,1028503999,-1127800761,1034423710)+W(2,-1116666352,-1109342419,1047028407,-1119414296)+W(3,1038890181,-1109261585,-1087753137,1027333841)+W(4,-1148256348,-1113209005,1028905699,-1095895125)+W(5,1061176216,1057224086,-1148022324,1010099974)+W(6,994981383,-1098712671,-1099737664,1049674522)+W(7,-1103462952,1020393479,-1127955051,1032845262)+W(8,-1208820627,1011854042,1043242553,-1115953239)+W(9,998786660,1030375171,-1126035264,1017325847)+W(10,-1121350765,1024565993,-1121293280,-1114148994)+W(11,1042226462,-1120003540,-1117125009,1001260628);WS(1058902967,-1081860445);
sum1=W(0,-1121371387,-1116017491,-1114517185,-1144385454)+W(1,1031405875,-1133995267,1029881036,-1110722656)+W(2,-1096281750,1046612526,1032371736,-1118231237)+W(3,992316765,-1103068528,-1110556335,1050079932)+W(4,-1114542190,1037331941,-1117974353,-1120254383)+W(5,-1087192661,1061346066,-1113719056,-1117606232)+W(6,1019164800,-1111729689,-1138608617,1054224317)+W(7,-1147587566,1027634660,-1115308289,-1123116948)+W(8,-1119671953,1023689473,-1121094047,-1114416951)+W(9,1031905998,-1110978129,1026716344,1034730016)+W(10,1032702160,-1150819433,-1118946572,1027465948)+W(11,1026550240,990814541,1025765741,1002408318);sum2=W(0,-1127268449,1017520494,1046612660,-1104246964)+W(1,-1098833757,1019779427,1008157504,-1110533731)+W(2,1053115740,-1126879265,-1103206877,-1135658469)+W(3,1022079949,-1110799425,1042237616,1071620340)+W(4,1047260740,-1112586418,-1129508015,1038116680)+W(5,-1081939523,-1082767624,1046386206,1021781126)+W(6,1023435994,-1149062134,1046590815,-1091995420)+W(7,1034566387,1021597755,987488696,-1109564641)+W(8,1019421448,-1133233221,-1113663072,1025921212)+W(9,-1149203238,1031926637,1025089506,-1113723868)+W(10,-1131415815,1022181144,1025441916,-1140288129)+W(11,1002014090,1008464055,-1120607589,-1133866981);WS(-1118927728,-1114990634);
sum1=W(0,-1123938375,1033195056,1057535917,-1087859524)+W(1,-1107191040,1047574307,1040612950,-1114716774)+W(2,1047260544,-1132924433,1007112943,-1106834116)+W(3,1024746402,1048819881,1042772673,-1087499341)+W(4,1043648426,1044210486,1022214714,-1104426015)+W(5,1057677234,-1097320317,-1093740782,1028537764)+W(6,1038811590,-1105195831,1045869257,-1091890215)+W(7,1042013107,-1106862316,-1112630087,1042575344)+W(8,1057533694,-1089715893,1020754614,1047539199)+W(9,-1118622728,-1098438774,1042859777,1029276300)+W(10,-1107815558,-1107232885,1031232344,1038434900)+W(11,1055588422,-1091230428,-1113991309,1041569343);sum2=W(0,-1117938617,-1098776947,1052841626,-1111689798)+W(1,-1101990052,1034353164,1034943831,-1074997876)+W(2,1071950042,1008522816,1023979086,1019125592)+W(3,1047294563,-1067348911,1078478928,1042633900)+W(4,-1106116215,1021696573,-1112881764,-1073328658)+W(5,1075942353,-1105497105,1040726051,1032192788)+W(6,-1113196518,-1106856879,1048374094,-1100859969)+W(7,-1128120408,-1129459590,1017166837,1007574096)+W(8,-1110198115,1027760421,1041816709,-1114781060)+W(9,-1119652380,1040326435,1016518417,-1106280857)+W(10,1015116440,983174391,-1122537978,1003760381)+W(11,-1132261857,-1146348222,1015700123,1019612376);WS(1034111416,-1106797037);
sum1=W(0,-1127934684,-1113852291,-1096035023,1052464285)+W(1,1032415443,-1113420426,-1146675705,1035613338)+W(2,-1102929642,1042719307,-1114220817,1025128440)+W(3,1006977829,1034804131,-1090308252,1054858571)+W(4,1032020487,-1114922591,-1113401378,1037672145)+W(5,-1089088820,1057164897,-1123663635,-1136503085)+W(6,1019549798,1044038057,-1096624416,1050796251)+W(7,1035431737,1026704599,1016064490,-1106829090)+W(8,-1097224209,1048920159,-1131720964,-1109868785)+W(9,-1139061950,1033066250,-1104516203,1042039981)+W(10,-1114943722,1024811962,998716411,995721454)+W(11,-1095532026,1049209393,1041424208,-1138798477);sum2=W(0,1018373307,1030944977,-1120549779,-1139755202)+W(1,-1101691927,1049483493,-1117669473,1035483586)+W(2,-1113169149,-1114451942,-1102665013,1049560407)+W(3,1036793172,-1120221588,1031305133,1047991436)+W(4,-1083948126,1057078402,-1107254646,-1138388666)+W(5,-1118729068,1050438576,-1083351573,1060878230)+W(6,1027210469,-1119036598,-1123944089,1058194810)+W(7,-1081291530,1058504911,983011887,1026801669)+W(8,-1136088418,-1103576008,-1106933299,1044728114)+W(9,-1124389554,-1120993070,1045466087,1037255439)+W(10,-1095248620,1047223280,999841656,1036234905)+W(11,-1110162376,-1114267729,-1124771645,1036725012);WS(1038841272,1052605132);
sum1=W(0,1031922765,-1100459309,1037270288,1026910357)+W(1,1023447506,-1104596348,-1104568331,1046914264)+W(2,1041702805,-1101939446,-1114279623,1044685961)+W(3,1037544250,-1120141702,-1098675705,1040827436)+W(4,1048352911,-1104877098,-1109808312,-1117060814)+W(5,1045728636,1037079325,-1115507167,-1117405559)+W(6,-1115625903,1046551204,1017164043,-1095425143)+W(7,1040518727,1032200833,1042593752,-1097718198)+W(8,999474559,1046662664,1038294495,-1104511859)+W(9,-1105481799,1032086688,1031450455,-1103113592)+W(10,-1106032688,1039045107,1033924054,-1112841053)+W(11,1034794943,1015870568,1041969331,-1111795079);sum2=W(0,-1119788132,992683382,1018867293,1022669528)+W(1,1044098145,-1102594356,1033659476,-1104347191)+W(2,1020892153,1043646320,1022003003,-1105788334)+W(3,-1112158198,1044081475,-1090780387,1053457206)+W(4,1053806225,-1097169858,1008462738,1034564598)+W(5,-1098943438,-1103925357,1061138285,-1089462725)+W(6,-1128623485,1037093866,1024702018,-1094689316)+W(7,1061570617,-1090351234,-1135723434,-1118342628)+W(8,1037085984,-1130567667,1042502677,-1124000960)+W(9,1030330775,1008221186,-1108937272,-1111881166)+W(10,1045330453,-1102638867,-1125624097,-1116661382)+W(11,1041747819,1006874186,1015917808,-1119261652);WS(1059476151,-1123203418);
sum1=W(0,-1111725774,1035594491,-1091810916,1057461865)+W(1,1016189354,-1123857235,1032359159,1034919857)+W(2,-1140486487,1048140086,1034245225,1028750247)+W(3,-1110577724,-1111760306,-1084838663,1060577506)+W(4,-1104347695,-1113205590,-1105544893,1046155316)+W(5,-1086139015,1052038472,1027870402,-1121460986)+W(6,-1121304930,1044165509,-1095808892,1057513991)+W(7,-1103056264,-1148349487,-1115245634,1020829292)+W(8,-1096673622,1053266340,-1108853472,-1113141864)+W(9,1036887935,1039852002,-1127813812,1045123672)+W(10,1031021091,1036934292,-1110517831,-1120384574)+W(11,-1090491960,1055106407,-1133152957,1011178567);sum2=W(0,-1114868977,1026556603,1004734644,1034344926)+W(1,1040708934,-1131620842,-1107973502,-1115461868)+W(2,-1092079110,1042028492,-1103991549,-1105590488)+W(3,1044770988,-1104823400,1059587552,1024895663)+W(4,1051421807,1029419915,-1101288212,-1105554340)+W(5,1045430990,1050688149,-1095880897,-1114582112)+W(6,1025917421,1036199790,1037874646,1047334362)+W(7,-1118101029,1015496806,1028043472,-1116199065)+W(8,-1137785064,-1116948841,-1122024357,-1121536685)+W(9,-1111158861,1020651575,-1093651456,1044938016)+W(10,-1099771430,-1121478353,-1123193100,-1128075734)+W(11,-1127404110,1042458099,1007412048,-1127827256);WS(-1096078190,-1082738059);
sum1=W(0,1007239809,-1108860284,-1100207850,1053165251)+W(1,-1112013420,-1115685558,-1114850361,1046670329)+W(2,-1101169270,1050939564,-1126100266,-1124400725)+W(3,-1130257143,-1103368477,-1116530972,1051252601)+W(4,-1112810720,-1112871192,-1112210107,1045976117)+W(5,-1088435015,1056131912,-1124484747,-1117830909)+W(6,-1118665957,1029494103,-1092482434,1045571555)+W(7,1041969097,1031308937,1028242343,1036298605)+W(8,-1090334611,1053021861,1032260218,-1143992478)+W(9,-1116764258,1029804679,-1105280439,1035862579)+W(10,1044490698,1037078646,1022403683,-1128309634)+W(11,-1099682433,1038809821,-1114977769,1016808747);sum2=W(0,-1133820219,1027229337,-1115513384,1007940354)+W(1,-1156542700,1020775992,-1147891684,1032424255)+W(2,-1107406978,-1125237780,1031863482,994071912)+W(3,-1127336652,-1137665638,1037916056,1044701152)+W(4,-1113898133,-1127018949,-1127200453,1045946307)+W(5,-1096925824,1067148595,1048747828,-1115116116)+W(6,1020736496,-1116510358,1031285965,1076670751)+W(7,-1101339101,-1122694416,1001166860,-1145031593)+W(8,-1138759126,1039470145,-1070343554,-1106720041)+W(9,1022486646,-1116471963,1020254812,-1109537872)+W(10,-1082365934,1034791139,-1135690985,-1126621635)+W(11,-1122394148,1025436583,-1107321525,1039293842);WS(1056919406,-1123699093);
sum1=W(0,-1153021483,985933670,-1089586019,1058308826)+W(1,-1122912091,-1130942473,1016658279,-1142160193)+W(2,-1106728023,1043832952,-1111941676,-1162334614)+W(3,-1169964908,1032391598,-1095447822,1054485203)+W(4,-1114359010,-1115887538,-1131540465,-1109380555)+W(5,-1095937215,1051425640,1038539876,1035573952)+W(6,-1116724456,-1112807501,-1092279079,1057168451)+W(7,-1129000267,-1120065804,1018808083,-1115139838)+W(8,-1105250414,1053123845,-1105627696,1037216107)+W(9,986184318,1023499017,-1104943256,1034402292)+W(10,1011544866,-1114397383,1026972628,-1119658051)+W(11,-1093497009,1056025192,-1129701482,1031803900);sum2=W(0,1034281368,-1104410341,1018060402,-1138447737)+W(1,994323516,-1140256393,-1126716121,1032410612)+W(2,1017706532,-1115589617,1029627322,-1133676977)+W(3,-1121241308,-1087414339,1061712823,1021983592)+W(4,-1133709215,1012505315,1045372780,-1068615761)+W(5,1078313037,-1100339818,1015111478,-1130902073)+W(6,1035929285,-1067644471,1079888634,-1123293195)+W(7,1023885100,1028720332,1047600787,-1091405946)+W(8,1048822788,1030149270,-1124744731,-1123320040)+W(9,1004087438,-1118166494,1023636550,-1120625820)+W(10,1010097407,1022959192,1041718259,-1097556864)+W(11,1035128990,1021734756,1009567515,-1136405679);WS(1057577783,-1116545908);
sum1=W(0,-1140559047,1023488522,1031631673,-1127758170)+W(1,1037581685,-1129099776,-1119858755,1007841757)+W(2,1034355893,-1102068668,1038802963,1023940956)+W(3,1001413734,-1099448121,1034820815,-1139646818)+W(4,1020321573,1023108226,1019558160,-1135636631)+W(5,-1095265297,1043309332,-1118918103,-1133216315)+W(6,1027838711,-1106014610,-1133110549,1058446926)+W(7,-1104027725,1027058075,-1123065945,-1112832085)+W(8,976310772,1018622064,-1110623851,-1123708581)+W(9,-1133184076,-1132115376,1031909175,1033516923)+W(10,-1124259695,1025545342,-1116764451,1007686986)+W(11,1033492939,1033353766,-1114622946,-1118432359);sum2=W(0,-1139693312,-1124752720,-1098950560,999696497)+W(1,-1111434581,1026280044,1036960926,-1121090060)+W(2,-1103693150,1034222778,-1119707404,1014405392)+W(3,-1143311649,-1099787410,1033289622,-1104157082)+W(4,1018041096,-1121205834,990661185,-1112556974)+W(5,1052753541,1058657457,-1108624084,1023217352)+W(6,1015972640,-1123282486,-1106573325,1042484509)+W(7,-1111132399,1005957425,1000525745,-1104610584)+W(8,1031872996,1044261031,-1121815492,1017712752)+W(9,-1129692664,1028371280,-1115662969,1026599244)+W(10,1018446608,-1139874592,1028832752,-1104217347)+W(11,-1115847157,1041506121,-1129135268,1010211304);WS(1063874743,-1123600943);
sum1=W(0,1026726381,-1110972995,-1088392527,1060534134)+W(1,-1131352649,1017113381,1005084141,1029034162)+W(2,-1096434085,1052968261,-1125442370,1023149165)+W(3,-1121313992,1029564141,-1088422197,1061531727)+W(4,-1111100967,-1121647548,1022502021,1019350337)+W(5,-1089197156,1048937234,1007055431,1028622922)+W(6,1010678471,1021423943,-1089730182,1053585019)+W(7,-1124123103,-1132301739,1012880846,-1112342611)+W(8,-1099324833,1049533342,1037169096,-1122598880)+W(9,1016038684,1036724585,-1105649226,1044791660)+W(10,-1119334386,1017220849,1031948511,-1096649610)+W(11,-1102131796,1047748258,1048887628,-1134858375);sum2=W(0,1041516351,-1098661524,1065773241,1067471192)+W(1,-1095722385,1025030832,-1114001722,-1113317539)+W(2,1066164852,1062194047,1029392016,1015621429)+W(3,1031962338,1041960143,-1094243603,-1131590099)+W(4,1045112423,1033273068,-1127882717,-1113172562)+W(5,-1071023147,-1071391818,1027735196,-1106774969)+W(6,1024371132,1057245216,-1087722937,-1082288010)+W(7,1047570295,1021784721,-1116893380,-1108932190)+W(8,1043021464,1036914992,-1110460182,-1147670187)+W(9,-1137233618,1040530840,1059923771,1056604249)+W(10,1008215114,-1157997580,1035584360,-1090505328)+W(11,1062948018,1065534266,-1096088381,1025226110);WS(-1081605212,1037230241);
sum1=W(0,-1129286954,-1115600951,-1139829872,1042245092)+W(1,-1130516890,-1191245347,-1127382348,-1127078325)+W(2,1037397159,-1101819637,1025459530,-1140137724)+W(3,-1114123448,1045220821,-1103957592,1057239854)+W(4,-1098019463,-1135821456,-1119205995,1032978341)+W(5,1057561887,-1089716883,1040837167,-1153142562)+W(6,-1116053850,1031622828,1057799156,-1088291628)+W(7,1039979404,-1123070334,-1114061454,1039357911)+W(8,-1103125195,-1162281827,-1123433113,-1115244132)+W(9,1024011222,1020277751,1035843369,-1111135597)+W(10,1008116332,975751222,-1165173963,1026874614)+W(11,-1159950147,-1144308089,-1115664788,-1121723210);sum2=W(0,-1129847377,1027890930,1045384717,-1131041629)+W(1,-1118537275,-1129495121,-1132201467,-1115667911)+W(2,-1139027758,-1086235324,1015945835,1022067627)+W(3,-1111059277,-1109124506,1062718876,1071241567)+W(4,-1090110249,-1139816838,1032250249,-1115518668)+W(5,-1088514518,-1104078593,1050303031,-1109320206)+W(6,1003251981,-1131706033,1043614591,-1091065468)+W(7,-1130925231,1035917053,-1175110606,1033851379)+W(8,-1096199608,1021865867,1030828678,-1140186118)+W(9,-1119100754,1008685286,1038009999,-1113376611)+W(10,-1128909271,1027374356,1007928974,-1130851063)+W(11,-1126833063,-1120766781,-1121346672,-1130315761);WS(1048635758,-1111558989);
sum1=W(0,-1116715915,-1114167026,1019884197,1046236914)+W(1,1023679491,-1123924777,1007517554,-1144951432)+W(2,-1100411873,1042364482,1030303424,-1115625243)+W(3,-1125319757,1032434734,-1082609609,1057088310)+W(4,1025882348,1018952757,-1130676803,-1116349759)+W(5,-1099356457,1060062511,1027068912,-1117219752)+W(6,1032051720,1007313161,-1114189151,-1105629450)+W(7,1046455412,-1128015465,-1122176818,1037795522)+W(8,-1098216348,1032549225,1037080648,-1117338239)+W(9,1019813529,1011561671,-1118483848,-1156935944)+W(10,1024380849,1001454266,-1125995833,1022555096)+W(11,-1115419480,1017135051,1020138940,1015509889);sum2=W(0,1017200252,1032764106,-1100965710,-1120952053)+W(1,1023440400,1026555164,-1128076598,1032749056)+W(2,1036328960,-1105592489,1037836738,-1121478225)+W(3,1020177744,1042154489,-1079875623,-1093732085)+W(4,-1110726007,1032334674,1027061114,-1091917968)+W(5,1069362278,1053281179,-1110949820,1004458190)+W(6,-1120062015,-1115647155,1041923814,1053015354)+W(7,-1097734576,1030547292,1007295183,-1109350747)+W(8,-1121245377,1023497366,1029656316,-1115087241)+W(9,1005463470,-1136438311,1023734232,1044015507)+W(10,-1107014120,1024950244,-1120999608,-1152745757)+W(11,-1115720719,1040619345,1039138178,-1107079388);WS(1057226679,-1099093504);
sum1=W(0,-1117743115,-1106860569,1059123761,-1116606854)+W(1,-1117312579,-1126837697,-1111361838,-1097721634)+W(2,1043835217,-1113320356,1021938430,-1108681130)+W(3,-1142218540,1017711998,1054886149,-1098795498)+W(4,1024346219,-1128001843,-1115584496,-1098477656)+W(5,1036645937,1036044245,-1113074392,-1126342351)+W(6,-1144474236,1017808579,-1096319852,1058878095)+W(7,-1113306631,-1145404316,-1112915081,-1127808199)+W(8,-1102898152,1054951826,-1104150268,1022603516)+W(9,-1118048876,-1110778360,-1108186916,1042821748)+W(10,-1109837016,-1113519979,-1124754680,988685674)+W(11,-1103594844,1057715322,-1104945799,-1166667748);sum2=W(0,1017552406,-1115134458,-1123239700,1040415751)+W(1,1024802817,-1116030864,-1121365003,-1113297695)+W(2,1033578978,-1119377084,-1140510683,-1154029132)+W(3,1024315197,-1121331284,1032104202,1033268884)+W(4,1031096569,-1127078294,-1126393870,1034056828)+W(5,-1122610502,1042552247,1027588477,-1123710517)+W(6,1006096662,-1116036592,1042239151,1014688747)+W(7,-1116363642,-1142638070,1026122801,-1122098200)+W(8,-1128246386,1038912262,-1106292650,1002524342)+W(9,-1115019758,-1138309587,-1130645774,1011328923)+W(10,-1119712705,-1123496021,1010820131,-1114451237)+W(11,1021632898,1013103251,-1106135611,1026182445);WS(-1108758968,-1120615143);
sum1=W(0,1007512449,1043847294,1041722714,-1089504654)+W(1,1035899020,1021562716,-1118729201,-1115009907)+W(2,1047642150,-1097300100,1024857813,-1157490338)+W(3,1033236958,1038269372,1052029054,-1092318719)+W(4,1041772976,1033997944,-1188181540,-1103491829)+W(5,1056274631,-1092329088,-1115586563,-1127937658)+W(6,1032455763,1026842103,1057598894,-1088834696)+W(7,1037648114,1034853541,-1139132956,1028990457)+W(8,1044856958,-1094694701,1028932916,-1139535439)+W(9,-1126666947,-1112992067,1049081300,-1102944265)+W(10,1031373190,999073631,1028445809,1045480960)+W(11,1008203541,-1095636207,987483733,1033314299);sum2=W(0,1022601823,-1119857460,-1099325942,-1068582801)+W(1,1035739756,1015907333,1027503424,1016942723)+W(2,-1112391205,-1076271776,-1104095012,1016973548)+W(3,-1114440342,-1113768249,1050839307,1067690352)+W(4,1026494027,-1122697579,1031020236,1049278985)+W(5,-1097330938,1077639092,1047876791,1015148595)+W(6,-1115479573,1023747258,1019565806,1061065209)+W(7,1016405011,-1106941761,1028798660,1008539869)+W(8,-1108724816,-1120523343,-1115660355,1032414836)+W(9,-1137878778,1030670036,-1143955309,1002861982)+W(10,1022661839,-1126087053,973255146,-1124354630)+W(11,-1115374863,1029925423,1033007729,-1124658022);WS(-1125070560,-1096513533);
sum1=W(0,-1112401838,1032850683,-1111199410,1046757622)+W(1,1033951818,-1110786345,-1141896047,1035442769)+W(2,-1105684773,1047296038,1013771590,-1113414691)+W(3,-1114813980,1027743049,-1093508577,1061969278)+W(4,-1100008383,-1131095256,-1125005414,1036941992)+W(5,-1099350541,-1107426238,1023589122,-1114443933)+W(6,1026386210,-1104378805,1060063436,-1092774776)+W(7,-1122038496,996299870,-1115056418,1037833707)+W(8,-1112618105,1028130403,-1110298148,-1117830096)+W(9,1012901881,1022681350,1035294797,-1127381572)+W(10,1030080099,-1140100259,-1125623196,1033887999)+W(11,988362813,1016528878,-1106008748,1014753608);sum2=W(0,-1128089453,1024340419,-1102023306,-1103821003)+W(1,1043342989,-1119644228,-1110645236,1043920397)+W(2,-1114712453,-1097377481,-1109265540,1026656603)+W(3,-1130916401,-1129344777,1028225499,972074333)+W(4,-1100613575,1034952995,1026446699,1009781987)+W(5,1057874897,1059140954,-1103696793,1032660433)+W(6,-1115610756,-1102796808,1052660862,1038144249)+W(7,-1116201867,-1130501689,1032679495,1037523581)+W(8,-1102216434,-1107293486,-1131885037,1029362471)+W(9,-1114433002,1023912055,-1127455825,1006589878)+W(10,-1105206442,1013212643,-1123355757,1026431795)+W(11,-1128264837,-1102041035,-1127587329,1005668278);WS(1049867118,1034735186);
sum1=W(0,-1127774262,1029333619,1019113028,1024964758)+W(1,1007980364,-1121402761,-1117373036,-1123455456)+W(2,1040322517,1032014380,1019723167,-1118901061)+W(3,1031064438,-1105261096,1040279186,1048588372)+W(4,-1114399774,-1126411220,-1112922680,-1096141178)+W(5,-1101685436,1050135703,-1100797936,-1110911420)+W(6,1012648832,-1120189874,1044944438,1034886579)+W(7,-1113398479,1019321608,-1132535687,1024540628)+W(8,-1121818673,1040490120,-1150021355,-1114680743)+W(9,-1120670652,-1138107141,1035373868,1016312768)+W(10,-1128775361,-1121234663,-1140537009,1000234461)+W(11,1032620736,1034120602,1008873398,-1121766352);sum2=W(0,-1161289046,-1111556088,1038429491,1024158411)+W(1,-1123794133,1016121349,1020587590,-1127668568)+W(2,-1130067243,1018324827,1035096674,-1127328688)+W(3,1029682388,-1095922552,1050898724,-1123472030)+W(4,-1142905112,-1126947701,1031608572,-1092239431)+W(5,1058359401,-1093717514,1042534485,-1126252937)+W(6,-1117304231,-1165373610,1040200303,-1118204561)+W(7,-1137719883,-1122434117,-1129471662,-1120133906)+W(8,1044552317,-1112781150,-1136196985,-1137031592)+W(9,965398246,1007233453,-1132308256,1017795291)+W(10,1027736448,-1121369248,-1134569151,1019046119)+W(11,1031851372,-1120826542,-1128305748,-1162116006);WS(1063598519,1040709546);
sum1=W(0,989424433,-1129964132,-1092181324,1056340507)+W(1,-1140166214,1007420926,1025004011,1018517694)+W(2,-1096845618,1052096915,-1124688156,1025298052)+W(3,-1117397173,1036280904,-1092686069,1055848084)+W(4,1027380346,-1114706068,1010227902,1042042835)+W(5,-1082263275,-1117189370,1041673920,1030527159)+W(6,-1116859551,1025484624,-1087946945,1053023013)+W(7,1025279965,1004378644,1035862832,-1108371497)+W(8,-1124000752,1053676604,1021321051,-1130325786)+W(9,1012428267,1028794752,977020321,1044581128)+W(10,-1125256895,1025029349,1028295307,-1105766207)+W(11,-1108973663,1048031389,1035434166,1015026205);sum2=W(0,-1128989779,1040099849,-1100874000,1021993174)+W(1,-1130783901,1011642260,-1132752301,992269838)+W(2,1034251701,-1130867684,1034483450,-1123860313)+W(3,-1121498089,1034828720,-1104384455,-1113539068)+W(4,-1122004711,1016725938,-1112228563,1034859451)+W(5,1044543345,1053848304,1016645052,-1122625223)+W(6,1023519830,1034954038,1046406891,-1104908283)+W(7,1032774629,1011006880,-1111737432,-1122349299)+W(8,1028583216,-1100179639,1016210650,-1114528083)+W(9,1023675120,1019899084,-1114022376,-1111378604)+W(10,1033297067,1021084026,-1134051546,-1112348174)+W(11,1040182737,-1097476412,1025418184,-1141294629);WS(1052377710,-1116561061);
sum1=W(0,-1122160137,1026711393,1034438088,1023922180)+W(1,-1115207840,1014756539,-1112995181,1046449684)+W(2,-1103073456,-1112523427,1036366239,-1110629817)+W(3,1021266631,-1094207935,1059878180,1031595583)+W(4,-1096200621,1025340632,1017022397,1051777944)+W(5,-1091454284,-1107259466,1043506315,-1122333286)+W(6,1032809511,-1105978112,-1108523806,1059633699)+W(7,-1105628259,-1126028515,-1105019076,1045042328)+W(8,-1137740923,-1094439010,1043730779,-1114494718)+W(9,1019774100,-1140860791,-1113848547,1048809290)+W(10,-1114298535,1024493780,-1119221338,-1140595366)+W(11,1015748571,1019553093,-1117446555,-1121208702);sum2=W(0,-1125003387,1023545558,1001356924,1019826271)+W(1,1029018751,-1114113554,-1110204990,-1122326332)+W(2,1049948311,-1106041547,-1122275300,1028296019)+W(3,1008672566,1039271760,-1104177316,1040609653)+W(4,1017003703,-1143932072,-1110854180,997586352)+W(5,-1099440370,1057375034,-1099421810,-1122149120)+W(6,1015432805,1043658401,-1101604747,-1098469549)+W(7,1052007058,-1118594118,1007507570,-1126010948)+W(8,-1112581048,1041033112,1018898909,-1129527698)+W(9,-1129875419,-1128126180,1034699764,-1108980340)+W(10,-1118843549,1031512617,-1145172348,1018354299)+W(11,-1118892801,1026776081,-1123423040,-1147650596);WS(1066846108,1044745002);
sum1=W(0,1019372186,1049403789,1042475733,-1091781177)+W(1,-1124410122,1015897062,978233216,-1107121557)+W(2,1051348497,-1100692098,1039801345,1009376476)+W(3,-1129136976,1041504923,1048713517,-1091573825)+W(4,1032893815,-1126291000,1025331363,-1134682116)+W(5,1054698948,-1089263023,1040511932,1006187856)+W(6,-1142297744,1039399714,1049146911,-1091452887)+W(7,-1146055296,1016897132,1015116199,-1122699462)+W(8,1058118606,-1090043533,1032222216,1012743170)+W(9,1015645340,-1121336819,1046729314,-1102394372)+W(10,-1115550793,1010428515,1016287548,1026221102)+W(11,1056609718,-1091564925,-1107840672,1000566800);sum2=W(0,-1121498998,1040076187,1040991236,-1097642453)+W(1,1041191639,-1143069461,1025173682,-1110698495)+W(2,1027215822,1032193313,-1107046015,-1127878497)+W(3,-1127952317,1046879062,-1097422534,-1089335507)+W(4,1027648922,1033858873,-1123064681,-1114452496)+W(5,-1079622690,-1070315938,-1107556506,1031644922)+W(6,1031325102,1037259271,-1113150532,-1080614075)+W(7,1040688678,-1125227083,1031547392,-1113826794)+W(8,1059352243,1063284099,1044912350,-1135729999)+W(9,-1116804726,-1113826560,1032134129,1075195474)+W(10,-1107091577,-1112123781,1013263415,-1114840697)+W(11,1048220488,1071802337,1050907604,-1104322253);WS(-1083170743,1032719415);
sum1=W(0,1023701883,-1115388842,-1095142736,-1131637740)+W(1,1043889005,1012236805,1027723212,1037576352)+W(2,-1104329709,1047136718,-1114738168,-1143133226)+W(3,-1122560214,1028066352,-1093573195,1050356544)+W(4,1032119470,-1126174356,989186599,1034436696)+W(5,-1091782714,1058921626,1035779088,1024911192)+W(6,1018265472,1046871436,-1090370147,1057401704)+W(7,-1119260798,1033076018,-1118377474,1036384970)+W(8,-1088395265,1046747968,1026791695,-1122725807)+W(9,1034616094,1041769608,-1092608855,1048250192)+W(10,1007978244,1033024419,-1143849572,1033711598)+W(11,-1085234190,1051022467,1035213927,1028803056);sum2=W(0,1040592912,-1091007599,-1122569720,1061904811)+W(1,-1096410255,-1107753434,-1148866748,1043419584)+W(2,-1102576481,-1110256028,-1106770914,1043044202)+W(3,1032765896,-1111893630,-1114969246,1042199718)+W(4,-1108992598,-1138614142,-1113675298,-1100951705)+W(5,1060370086,1060838438,-1088153932,-1121677972)+W(6,1035431068,1030657616,1018512847,1061366749)+W(7,-1091610254,1049599377,-1111525482,-1123081200)+W(8,-1112438148,-1086083341,1039676388,-1117594428)+W(9,1031171080,1009914590,1033713452,1029235040)+W(10,-1104419583,-1154941432,-1111672592,1048594219)+W(11,-1120657004,-1090315205,1040642594,1041324320);WS(-1087374135,1068569819);
sum1=W(0,1034522569,1036038485,1051494643,-1092286050)+W(1,1024631242,-1124293233,-1114460210,-1134485343)+W(2,1048850073,-1097395434,-1155697773,1035227470)+W(3,1040675195,998999958,1055860825,-1093950865)+W(4,1034953465,1022306499,-1156322949,-1102898978)+W(5,1058980799,-1086427635,1036357020,-1115248568)+W(6,-1126356143,1032174021,1050366134,-1097745188)+W(7,-1115522123,1025097211,1038944141,1032843110)+W(8,1048730421,-1098221875,1020968428,1020281868)+W(9,-1123272884,-1112707068,1043911796,-1095510475)+W(10,1032316940,-1112095119,-1147588893,1041667373)+W(11,1049367775,-1093210118,-1134843155,1003691067);sum2=W(0,1036982689,-1101176821,1032029724,1031712503)+W(1,-1095262307,-1135236510,-1109420523,1040154700)+W(2,1008871494,1051308638,-1089037290,1036178124)+W(3,1038171016,-1103427381,1053639476,-1103617514)+W(4,-1077227331,1056219784,-1114883799,1011961296)+W(5,-1094943648,-1090481186,-1077304111,1063074442)+W(6,1032698755,-1115041464,1046242469,1048516585)+W(7,-1075605762,1070767205,1023400751,-1112162319)+W(8,1015257266,-1110670159,-1086532256,1074120487)+W(9,-1119043865,-1114657793,1018562568,1026474691)+W(10,-1115849955,1066414901,1034471555,-1117007917)+W(11,1031877719,1044794303,-1110424851,1052188053);WS(-1094340206,1025238393);
sum1=W(0,1025401267,1041212259,1051626551,-1087771683)+W(1,1026720107,1024873417,-1120317764,-1123694073)+W(2,1044638395,-1099303356,1027277160,1003045609)+W(3,1029217422,1040075594,1051991350,-1089805402)+W(4,1042793877,1025974530,1017691154,-1128349902)+W(5,1049159169,-1090474853,1032035372,-1140916353)+W(6,1015273200,1030937834,1055056667,-1089928234)+W(7,1038797403,1026491292,1006374863,1030337996)+W(8,1045537234,-1095611655,1028636183,-1125445197)+W(9,-1149759301,-1112880429,1047952828,-1103717662)+W(10,1034683820,1018728702,1023921508,1048792866)+W(11,-1109761292,-1097665994,1024357062,1024842472);sum2=W(0,1016272983,-1117564089,1054344808,1082928383)+W(1,1043627742,-1113989008,-1125328223,1007328518)+W(2,1047318060,1074423709,1037006400,-1137080694)+W(3,1019432157,1038058236,-1095657702,-1074337637)+W(4,1040243063,1017883877,-1136495190,-1106032359)+W(5,-1084625245,-1066615612,-1106132294,-1126758430)+W(6,1024638490,1036423350,-1124414562,-1087090886)+W(7,-1119023275,1040797418,-1122054341,-1129861056)+W(8,1036648948,1034359725,1004167460,-1113361096)+W(9,1016158573,-1141592892,-1120282232,999766988)+W(10,1002865564,1023713345,-1137665190,1032273458)+W(11,1033205457,-1114245215,-1113153751,1022755221);WS(-1098231918,1035887052);
sum1=W(0,1007686525,-1117693688,1048268202,-1105099271)+W(1,-1110112236,1016554315,-1112046456,-1119004197)+W(2,1036810732,-1097653932,-1130249512,-1115219957)+W(3,-1136641001,-1104788790,1055375147,-1098720398)+W(4,-1106155488,-1142876018,1025581173,-1092353842)+W(5,1069647932,1066085926,-1091717545,-1143806946)+W(6,-1121240420,-1104580134,1052170270,-1093227035)+W(7,-1110987409,-1113561092,-1165513922,-1146015939)+W(8,1020096363,-1123833253,-1108464746,-1123809427)+W(9,-1114143760,-1162096818,-1125578169,-1107379122)+W(10,-1156567122,-1113074326,-1123656209,-1117522176)+W(11,1031911554,-1130540403,-1106840908,-1120698772);sum2=W(0,-1125891647,-1121500935,1021750179,1017645919)+W(1,-1130193055,-1118741587,-1139529830,1033326245)+W(2,-1133323886,-1167588957,1018366499,1021086319)+W(3,-1127048511,-1110257678,1040835222,-1108825416)+W(4,-1144215516,-1113356630,-1119620679,1033808587)+W(5,1061147710,1055027509,1035778772,-1123951235)+W(6,1015042367,-1152963927,-1110018076,-1105425292)+W(7,-1105010302,-1124596863,-1133002574,1023704513)+W(8,1035246842,-1090179180,1019226535,995355927)+W(9,1001053676,-1125968895,-1123027527,1035235033)+W(10,-1113493000,-1135606974,-1136336990,-1159911790)+W(11,-1144777900,-1104047270,-1137733870,-1141401292);WS(-1081201436,-1083122818);
sum1=W(0,1024396773,-1118776317,-1090317103,1056470156)+W(1,-1120183581,-1124728406,1040103323,-1121204906)+W(2,-1098486564,1048677796,-1105729174,1010393788)+W(3,-1104054160,1048678635,-1094484293,1048629197)+W(4,1032093347,-1105359341,1042893967,-1101546374)+W(5,-1101075087,1052113969,1048228642,1048587688)+W(6,-1121710378,1036673102,-1095873942,1033707976)+W(7,1044099610,-1107414311,-1122190892,-1112386175)+W(8,-1099326495,1057451847,-1102747354,1034642220)+W(9,1038539251,1022162966,-1101153544,1027207978)+W(10,-1114063013,-1109685144,1020559724,-1111471555)+W(11,-1095630377,1053998976,-1125760751,1033222029);sum2=W(0,-1130151079,1029357099,-1141051917,-1126143047)+W(1,-1138853383,1016378649,-1128601535,-1139320303)+W(2,1027307392,-1124015138,1026568428,-1128887123)+W(3,1016586775,1016703563,1040480663,-1090482710)+W(4,1051692940,1024508650,-1116462462,1036545095)+W(5,-1084177500,-1061542668,1087807110,-1109325640)+W(6,1006316053,1027702761,1027514935,-1081711054)+W(7,1065457143,-1115450794,-1136401487,-1115282656)+W(8,1033882273,1042416533,-1101742731,1030137534)+W(9,-1134837023,1025282364,975470826,-1107083018)+W(10,1035528582,1016609727,1015531121,-1128863347)+W(11,1013565163,1030037156,-1123914522,-1122133136);WS(1056806766,1019813151);
sum1=W(0,-1109922347,1038862168,-1094336356,1045176100)+W(1,1023835087,-1117706029,1027672232,-1098777292)+W(2,1025923920,1046907893,-1097985673,-1143840774)+W(3,-1113027385,1057340869,-1089223672,1028090813)+W(4,1044113854,-1111671123,-1106442907,-1131946518)+W(5,1049099726,1060367739,1010151151,1025756788)+W(6,-1119504732,1048903346,-1102142547,-1102839017)+W(7,1051267347,-1111600768,-1127683323,-1100586740)+W(8,-1122538541,1052174932,-1093148714,1040843731)+W(9,1015134384,1027127869,-1099585557,1024110556)+W(10,1029024221,-1107564881,-1122196904,-1136830686)+W(11,-1100472159,1047790604,-1137237669,-1131252120);sum2=W(0,1016054025,-1119367753,-1115811972,1024987046)+W(1,1016843613,1007599121,-1116580030,1033363716)+W(2,-1119979151,-1114756690,1025664850,-1120202841)+W(3,-1128856269,-1107794961,1046175546,-1100926142)+W(4,1028330842,-1144919563,1024017790,-1129548157)+W(5,1051115205,1048732221,1029232538,-1123931557)+W(6,-1120027976,1034251322,-1095340379,1044324276)+W(7,-1105635461,-1122027017,1003808451,1039517400)+W(8,-1127431641,-1104827086,1042504965,-1118580981)+W(9,-1120561807,1019337653,976018325,-1139095561)+W(10,-1118828309,1016896817,1020365697,-1174223189)+W(11,-1148320619,-1138276477,-1117203320,1009819353);WS(1067549148,1061168738);
sum1=W(0,-1136860560,1041916271,1043173595,-1099729080)+W(1,1028345500,-1117900922,1019396970,-1102760394)+W(2,1046914407,-1097589844,1036811500,-1118556558)+W(3,1034693791,-1100215160,1063664325,-1085101004)+W(4,1044130369,-1118557363,1031876061,-1127917744)+W(5,1041579695,1044764001,-1111608196,-1148658183)+W(6,-1126960466,1038708237,-1084953669,1062969721)+W(7,-1096862061,1028601293,1026075051,1042570959)+W(8,-1099553438,1046958554,-1104831702,1014732126)+W(9,-1129065354,1024557450,-1111656016,1031927572)+W(10,-1121741642,999719805,-1125694250,-1114527138)+W(11,1036161892,-1129394940,1028864534,-1111432076);sum2=W(0,1037988572,-1097183834,-1096111302,-1112255513)+W(1,1025606252,-1131066844,-1109648154,-1096035348)+W(2,1046143856,1047451704,-1109281762,1021094187)+W(3,-1115314649,-1106718097,1065688064,1048785443)+W(4,1025033440,-1118872350,-1110735622,1044362532)+W(5,-1100541529,-1089624797,-1124926742,1035314838)+W(6,1029414023,1044653749,1022961930,1040629892)+W(7,1024229044,-1132267648,-1115532881,-1118097482)+W(8,1041170408,-1135819985,-1109992198,1004115214)+W(9,-1114457629,1036871139,-1121640520,-1109975688)+W(10,1007526703,-1128646118,-1123631499,1035597348)+W(11,-1109551474,1030316886,1031542857,-1117895342);WS(-1090126519,1034760182);
sum1=W(0,1022234099,1038732905,-1095221408,1049091087)+W(1,-1141106060,-1130848127,987019599,1040082783)+W(2,-1096833350,1049531159,-1100657291,1036771650)+W(3,1021371561,1042926010,-1090005917,1052645704)+W(4,-1098472859,1035488804,-1125185183,1019049563)+W(5,1049172122,1048882035,-1113910991,1025403478)+W(6,1040030303,-1101231100,1056956325,-1086324445)+W(7,1041783487,1007113098,1005824514,-1108355337)+W(8,1052986466,-1089320760,1033537135,-1138596020)+W(9,1028122555,-1115211984,1046568014,-1101798768)+W(10,1037621024,-1128732298,-1120592523,1035983309)+W(11,1025899358,-1123937043,-1125397784,-1127374557);sum2=W(0,1016736022,1032939170,-1122689775,-1102551566)+W(1,-1122487238,1026411789,1011977196,-1102682487)+W(2,1060510561,1060805847,-1122236502,-1128029215)+W(3,-1137999416,1037611888,1051792579,1057985083)+W(4,1036808922,1019619350,1019963070,-1102949496)+W(5,-1073351999,-1073393989,-1103029047,-1125796177)+W(6,1030437859,1039010410,1059164734,1057367527)+W(7,1039165500,1024266957,-1122046802,-1110345340)+W(8,1062467108,1062012989,-1106860549,-1119780381)+W(9,-1142727409,-1124097437,1031495287,-1147452225)+W(10,-1143421321,1024156551,1018753414,-1113761662)+W(11,-1101619274,-1099879364,1015482390,1016465010);WS(-1089242039,-1127205581);
sum1=W(0,-1124452989,1047404342,-1086849964,-1114062493)+W(1,1042532510,1010360274,1037734344,-1111320098)+W(2,1001557948,998659036,1038364441,1032729828)+W(3,-1136469606,-1115981071,1055753134,-1096047365)+W(4,-1118490271,1015888923,1045032037,1038279993)+W(5,1059294849,-1107330927,1044317529,-1118190491)+W(6,-1131176455,1006926037,1006841992,-1105936042)+W(7,1035319841,1021147727,1029283077,1030509432)+W(8,1049404683,-1087265492,1043122385,-1123196402)+W(9,1038076384,-1123275877,1037635838,-1095492784)+W(10,1027367204,1027584778,1029887056,1043334248)+W(11,1044156233,-1080260267,1053177470,-1118995315);sum2=W(0,1029897599,-1102843967,1001547796,1049416264)+W(1,-1120840401,-1115391670,-1114965417,1046605828)+W(2,1025076963,-1100594038,1041915682,1020641677)+W(3,1025776431,1033633995,-1090433692,-1096668289)+W(4,1040646462,-1111492899,-1121485495,1048791648)+W(5,1044097140,-1117020477,1042521794,1034331443)+W(6,-1140617930,-1104898739,1042488362,-1102246327)+W(7,-1112857889,-1115861875,-1113546368,1031053127)+W(8,-1118485295,1034926551,-1109164591,-1134127978)+W(9,1031651703,-1108448442,1045463546,1047237110)+W(10,1015998805,-1120855845,-1117524097,-1108356905)+W(11,1040816680,1044694712,-1109851905,-1124879769);WS(-1081567068,-1085072352);
sum1=W(0,1026202077,1008391383,1043376377,-1106037014)+W(1,-1119432853,1015626934,1017630556,-1102096537)+W(2,1035138955,-1113878797,1041401156,-1112723700)+W(3,1034866076,-1105309517,1062685095,-1091962582)+W(4,1028045374,995954372,-1120073907,-1113888457)+W(5,-1088326467,-1099527071,1036249665,-1112822301)+W(6,990337572,1038015146,-1087780001,1065743931)+W(7,-1122166240,1036674595,-1122725732,1010107993)+W(8,-1095652846,1048331161,1030964177,-1165855255)+W(9,1016189565,1035371298,-1111927693,1035819857)+W(10,1030882915,1020668626,-1135328058,-1107104879)+W(11,-1134788873,1033560764,1034792920,-1140134473);sum2=W(0,-1101998430,1025808817,1026331301,1041383807)+W(1,1033833028,-1108635033,1034880732,-1110518368)+W(2,1035202798,1044537615,-1096440885,1042833515)+W(3,-1111573656,-1090739547,-1095903349,1045506861)+W(4,1030373631,-1107072548,1034691412,-1098171169)+W(5,1068344140,1069658374,-1094064924,1037649108)+W(6,1017688506,1047617175,-1085314459,-1090700374)+W(7,-1106284721,-1117475933,1032207084,-1112107064)+W(8,-1108916250,-1135142667,-1113568166,996218700)+W(9,1002612774,1027687639,-1113844364,-1106371211)+W(10,1043762008,-1115713024,995363580,1035291452)+W(11,-1111293323,-1105384559,-1113615358,1031725587);WS(-1122270064,-1083487436);
sum1=W(0,1022021054,-1111938972,-1089129474,1061173530)+W(1,-1117042135,990992466,1000846209,1031069285)+W(2,-1092279467,1053406092,-1112839626,997371026)+W(3,-1120651002,1035108132,-1089405705,1061891890)+W(4,-1115403968,-1123767278,-1133172181,-1122478547)+W(5,-1088959911,1046812368,1035227362,-1136588785)+W(6,1015175368,1022898156,-1101358829,1052509753)+W(7,983155781,1014548513,1008528664,-1109542844)+W(8,-1113192731,1035774995,1035355065,-1120262163)+W(9,1014262402,1003755051,-1110785838,1040815801)+W(10,-1114859906,-1139309996,1032206792,-1099224128)+W(11,-1105614817,1041852206,1046440556,-1196238920);sum2=W(0,1044179919,-1111986018,-1080384748,-1092393621)+W(1,1048581079,1031858735,1022028328,998943655)+W(2,-1088604014,1029389095,1009323699,1021777892)+W(3,1040258943,-1095034556,-1104000317,-1090514887)+W(4,1015383036,1024626196,-1118974089,-1095846499)+W(5,1073459027,1071708766,-1097133430,1024702395)+W(6,1033279863,-1110448374,-1098039236,1012336831)+W(7,-1122793353,1031448400,-1117110809,-1099083231)+W(8,1045892370,1049307354,-1097759856,1030521846)+W(9,1031745329,-1120681553,-1111672860,-1100485937)+W(10,1041920736,1016567237,-1103290765,-1101323001)+W(11,1055006842,1051814517,-1091667564,1029007432);WS(-1097130350,-1073679750);
sum1=W(0,-1154560184,-1142702368,-1095841490,1034517635)+W(1,1044574577,992206103,1025389788,1008724804)+W(2,-1096179481,1053502809,-1112918112,-1143244972)+W(3,-1145657140,1035954194,-1095185831,1045830013)+W(4,1042446427,-1122388570,1000633100,1046084016)+W(5,-1085973126,1057148843,1025817904,-1139683234)+W(6,-1120139600,1042008657,-1089907161,1051926551)+W(7,1017272605,1018417129,1032643785,-1106616153)+W(8,-1096805620,1052799826,-1123577295,1017209342)+W(9,1008755251,1025929714,-1098086361,1043469780)+W(10,-1143679882,1016358830,1030414749,-1102859291)+W(11,-1107347576,1050172789,1014891512,1026775680);sum2=W(0,1021941992,-1106123822,1031547466,-1135582819)+W(1,1018035752,1017098260,-1140009235,-1137197699)+W(2,1040410800,1048777558,-1114989513,-1129449426)+W(3,1026649920,-1104678389,-1091687878,-1102399061)+W(4,1038853959,-1170697076,1025391436,-1103278668)+W(5,-1069452203,-1086654414,-1112110740,-1134437671)+W(6,1033557641,1049392706,1071493698,1036526271)+W(7,-1155541821,1030635558,-1110654493,1026389826)+W(8,1075377385,1051671224,-1119910153,-1127657747)+W(9,-1117894486,1046385471,-1093315115,1003979070)+W(10,-1130248744,1010389927,1031221238,-1107040085)+W(11,-1101021764,1042747507,-1119798403,1007123883);WS(-1110542776,1046722292);
sum1=W(0,-1112464600,1033517476,1047470894,-1131671638)+W(1,1005087552,-1142745264,1016022658,-1108629467)+W(2,-1133454244,1032980471,-1105826521,1026603482)+W(3,1027765771,-1106997347,1053995028,-1092318054)+W(4,1042584756,-1129658366,981819586,-1113497042)+W(5,-1100439522,1042288212,-1109105451,1017901338)+W(6,1026835189,-1116788199,-1093531706,1061947018)+W(7,-1098489206,-1142191304,1025143735,-1106078850)+W(8,1048713001,-1121614518,-1105038597,1040275689)+W(9,-1111607705,1041100086,-1106135867,1012478420)+W(10,977775992,1016467704,1024330241,-1124631714)+W(11,-1115421707,1041393523,-1114990145,1020475210);sum2=W(0,1031452303,-1132232893,-1109510079,1018866101)+W(1,1014551643,1032688527,992881643,-1116591675)+W(2,1032912109,-1116915567,1024567259,-1114177042)+W(3,978475180,1016124301,-1114514404,1055420465)+W(4,-1097097100,1042584708,-1121457613,-1114931492)+W(5,1032060799,1059251768,-1118272021,-1109972047)+W(6,1034445399,-1094590847,1051504728,-1088887374)+W(7,1048490818,1024892699,-1130052481,1040974964)+W(8,-1087149232,1044275534,1035881493,-1108606213)+W(9,1032145701,-1110729382,1039284419,-1114948355)+W(10,1032922179,-1121421993,-1116902843,1035934107)+W(11,1032317221,-1104983612,1032032409,-1133789139);WS(1059165367,-1104520251);
sum1=W(0,1007492796,-1108628644,-1117534006,1041312427)+W(1,-1113108212,-1124001749,-1117692608,1046236477)+W(2,-1094176525,-1118419948,1029454180,-1113899741)+W(3,1009135144,-1120534447,1053590938,-1107420459)+W(4,-1110779368,-1131761404,-1115310467,1052736188)+W(5,1041258594,-1097199722,1053879643,-1114949702)+W(6,1014125520,-1118278150,1001540436,1055263011)+W(7,-1098892966,1025063448,-1113191163,1036684740)+W(8,-1106455985,-1100739533,1045621277,-1105125705)+W(9,-1129119585,1015268651,-1112388022,1040471133)+W(10,-1126748266,-1126282358,-1118876992,1008090175)+W(11,-1114551242,1020553106,1026632706,-1127494856);sum2=W(0,1027505664,-1104527074,1034957797,1041601252)+W(1,-1108054404,-1122847824,-1115834059,1048986559)+W(2,-1098163961,-1125657446,1041896195,1034858548)+W(3,1029084872,-1089420265,1051828462,1045110551)+W(4,-1099714824,-1116127595,1029257304,-1098414029)+W(5,1053778056,1041501740,-1129563106,-1170669534)+W(6,-1128264406,-1104406791,1048509414,1041829791)+W(7,-1092212913,1037831890,-1138405484,1040673804)+W(8,-1106881855,-1119286592,1049994472,-1107117839)+W(9,-1118563560,-1203758566,-1113115951,1045914276)+W(10,-1105182054,1031508216,-1127212263,-1117936348)+W(11,-1136870020,1022365337,-1139619400,-1127498142);WS(1064754871,1064755352);
sum1=W(0,-1124996947,1039345889,-1096693846,1051509189)+W(1,-1110987505,1036233792,-1126765813,1034558935)+W(2,-1096907004,1048609181,-1122110878,981607022)+W(3,-1111973122,1025078634,-1092723587,1055455058)+W(4,-1103910610,1033037628,995438583,1031530717)+W(5,1042155040,1038916133,1036071207,1028131846)+W(6,-1131935965,-1102805216,1055052309,-1085470304)+W(7,1036962198,-1113728073,1011044801,-1112086641)+W(8,1050402072,-1096310694,1042970795,-1155599823)+W(9,1017902933,-1108706152,1045488762,-1110967031)+W(10,999916154,-1121653045,-1117569083,-1125705364)+W(11,1036105095,-1114430562,1043170799,-1131031997);sum2=W(0,-1133117125,1035315397,1034291601,-1093657955)+W(1,-1083656994,1063017252,1023646322,-1104375670)+W(2,1023753609,1053589289,-1096844972,-1117431336)+W(3,1023723550,1045506061,-1107539440,-1104725243)+W(4,-1079943056,1065218548,1016880452,-1100884270)+W(5,1046403885,1040733712,-1108767061,-1110535684)+W(6,-1128763803,1037072250,-1123261308,987308827)+W(7,1066015084,-1088643610,1032406499,-1100571834)+W(8,1040670310,1047435788,1056439411,-1092199491)+W(9,-1112596197,1043010850,-1109210140,-1103530057)+W(10,1038430454,-1140617522,1024272758,-1106522969)+W(11,1037357283,1046389911,1050581867,-1093142505);WS(-1141889920,-1150694570);
sum1=W(0,-1121776659,-1156363954,-1110656781,-1150990554)+W(1,1001967189,1009891810,1035438770,1043244278)+W(2,-1108191526,1049522698,1024784007,1026909213)+W(3,-1107472311,1039611642,-1092681840,1047918398)+W(4,-1120026675,-1115519345,1029335145,1044045394)+W(5,-1089342271,1044281805,1041259438,1032535224)+W(6,1032163820,1031781705,-1107172434,-1142656241)+W(7,1035091531,-1156224954,-1122959321,-1113754566)+W(8,-1110931796,-1118178969,-1114065315,-1114416227)+W(9,1035788170,1041298854,-1106653204,1044014582)+W(10,1037418924,1034927023,1006930832,-1113010266)+W(11,-1098776751,1035377494,968315538,-1127266575);sum2=W(0,-1096670021,1059540854,1045575353,-1133958494)+W(1,1031038260,-1118270456,-1102787949,1039622534)+W(2,1037899964,1013042349,-1110193614,988987510)+W(3,-1099441746,1064198145,1030855272,1040028330)+W(4,-1117097690,1032105974,1043637876,-1086802625)+W(5,-1101655681,1036771998,-1125265460,-1117707023)+W(6,1052388948,-1085971065,1033969343,1032851236)+W(7,-1103569731,-1134648980,1042101483,-1113298762)+W(8,-1105771070,-1120619083,1049976190,1021389004)+W(9,-1135324433,-1098667485,1036465297,981463467)+W(10,-1101523135,-1119296945,1042670443,-1104634628)+W(11,-1104173140,1030229840,1035574893,1035007302);WS(1060329015,-1107100438);
sum1=W(0,-1139109867,1016013223,1052529520,-1098269535)+W(1,-1120993331,1025836257,-1126768152,-1108878752)+W(2,1042283693,-1103310414,1033078264,-1113589378)+W(3,-1154508124,-1139382101,1051369597,-1093610355)+W(4,1033661966,1029380042,1024792785,1046477388)+W(5,1051787130,-1088582834,1015463488,-1124637616)+W(6,-1145234942,1046417836,1040695538,-1090008057)+W(7,1035018943,-1127749832,-1121126338,1044791733)+W(8,1046651812,-1097854544,1029328303,1030094510)+W(9,-1165337473,-1115375281,1039020124,-1110993568)+W(10,980238373,-1117533511,-1128378904,1030070044)+W(11,1046922680,-1105218789,-1121430349,1016154976);sum2=W(0,-1122821091,1039646422,-1126218548,1020520346)+W(1,1030755819,1003947528,1016851522,-1156337616)+W(2,-1123806894,-1105518185,1031650855,980292032)+W(3,-1106087013,-1131895450,1035943528,999070248)+W(4,1015158698,-1123933765,-1109184296,-1080883791)+W(5,1071805249,-1096231655,1043321474,-1122746065)+W(6,1045004090,-1074990048,1071092779,-1125969764)+W(7,-1125796080,1018391998,1015529466,-1105476432)+W(8,-1126394390,1028426171,1026097175,-1126690400)+W(9,1026918939,-1104782698,1031828962,1030594487)+W(10,-1140334484,1018627618,-1115690469,1022339242)+W(11,-1122803425,-1127395662,-1110808154,-1149029768);WS(1004067712,1029538397);
sum1=W(0,1039684517,1025050595,1055781642,-1093421305)+W(1,-1134522377,1033902960,-1113057966,-1112884456)+W(2,1052279792,-1096595713,1008080123,-1134909265)+W(3,1034662227,-1120136235,1057037092,-1096171643)+W(4,1038845557,1000314570,976341006,-1106127376)+W(5,1048957300,-1083333863,-1104830972,1017566030)+W(6,-1116361615,-1108532672,1059667231,-1093970477)+W(7,-1107387175,-1120056627,1039793800,-1136083213)+W(8,1049781884,1050503466,-1105145436,1034175935)+W(9,-1114202454,-1109109944,1046150498,-1098876866)+W(10,-1111371224,-1129568684,1023346679,1026195563)+W(11,1052752022,-1119746148,-1106375815,1002478074);sum2=W(0,996458418,1023361218,1020176326,-1105686968)+W(1,-1112170015,1016740014,1033154491,-1129026548)+W(2,1036155261,-1136279909,1029838361,-1122796554)+W(3,-1124552606,-1113149678,-1107309754,-1101182829)+W(4,-1110765232,1027141165,983965669,-1096377075)+W(5,1064108379,1059185253,1029555247,-1111484496)+W(6,-1113544599,-1108470744,-1113642974,-1094171461)+W(7,1048386684,1033692775,-1118592979,-1107366613)+W(8,-1147140265,-1097506500,995412594,-1108579478)+W(9,1024911403,1040480632,-1123866147,1038318571)+W(10,1045927904,-1126067866,-1120675710,978762058)+W(11,-1127049668,1027330889,-1102738273,1023291782);WS(1047133404,-1079170418);
sum1=W(0,1009155056,-1122581460,1042667713,1030334583)+W(1,-1108143194,1027163842,-1116032717,-1127398915)+W(2,1041078541,-1113404572,-1123819760,-1122554086)+W(3,-1135035740,-1111731450,1051022508,-1111377849)+W(4,-1112180142,1023811915,-1132905800,-1098422622)+W(5,1065228285,-1104817319,-1102890728,-1133181796)+W(6,1006908676,-1136427723,1042380775,-1091891141)+W(7,-1111098047,1001483047,-1123509635,1019095722)+W(8,1050271906,-1103926112,1023382911,-1116735535)+W(9,-1129150906,1037504657,-1107182030,-1121675713)+W(10,-1136273159,1015217807,-1147535977,1012838771)+W(11,1023931745,-1123007382,-1123177070,-1130799202);sum2=W(0,-1151544588,1017708852,-1147640076,1008923057)+W(1,1011942449,1018406594,-1155029688,-1121981859)+W(2,-1129630940,1024218233,998377109,-1133221663)+W(3,1018065470,-1114670464,-1093073209,-1119653793)+W(4,-1131988255,1025316590,1007239987,1049278985)+W(5,-1077783117,-1083801634,1041518161,-1123603132)+W(6,-1125453823,1041079714,1074285479,1047560438)+W(7,-1114079754,-1131599727,-1118997712,-1156221672)+W(8,1034878186,1028846010,-1118519138,1024940191)+W(9,1007542759,-1120658712,1016277382,1036336794)+W(10,-1121956184,-1131785133,-1133631258,-1113215345)+W(11,1033160981,1022080564,1027490516,-1130450701);WS(1043550940,1028476494);
sum1=W(0,-1115183742,-1130981802,-1100607937,1051762223)+W(1,1000007075,-1121847282,-1121780237,-1102302048)+W(2,-1105099981,1040535662,-1138550724,-1111548899)+W(3,-1117842775,-1117998761,-1096882923,1059510884)+W(4,-1102853271,-1132334487,-1110838377,-1094318158)+W(5,1062548805,1068023761,-1099046056,1013492582)+W(6,991794198,-1102037997,-1103616404,1055882697)+W(7,-1102330336,1018468811,-1111061058,-1115328139)+W(8,-1097580450,1041348961,-1131654944,-1119471984)+W(9,1015980795,-1113105937,-1103768718,1034161697)+W(10,-1112888641,-1129682576,-1113960535,-1106426583)+W(11,-1100373208,1044552262,-1110284503,-1148988811);sum2=W(0,1029690847,-1103820712,998970743,1028297515)+W(1,-1122562191,-1133991676,-1115037203,1043435491)+W(2,-1096312501,1046052979,-1115911439,1007821180)+W(3,-1127742454,-1100462798,1044923803,-1099477234)+W(4,1030898927,-1113716427,1036903221,1028701483)+W(5,1041049643,1065575031,-1096910875,1036974934)+W(6,-1106227374,-1121926871,1030485727,-1098681477)+W(7,1034498637,-1111652935,1039025001,-1126383902)+W(8,-1125321886,1040854499,-1115709255,-1126914630)+W(9,-1108879063,1017141302,1008577020,-1106467082)+W(10,1013474716,-1128843302,1016988574,-1115441627)+W(11,1033537170,-1122382559,-1129067614,-1114648723);WS(-1079050332,-1087647968);
sum1=W(0,-1138480508,-1112879708,-1095708941,1054719611)+W(1,1031575959,-1122888245,-1122115440,1026750308)+W(2,-1102419558,1048762675,-1106236805,-1139407140)+W(3,1024624314,1027382179,-1136300523,1057423590)+W(4,-1115045376,-1136279992,-1106223181,-1116109267)+W(5,-1083772539,1057166968,-1096438944,-1112079518)+W(6,1029330596,1024806390,-1103579129,1058690419)+W(7,-1115914082,1025354440,-1120448614,-1128868784)+W(8,-1102450653,1049252525,-1116410163,-1128866725)+W(9,-1134294785,1022822666,-1100406055,1046884233)+W(10,-1127656777,1008311211,1004544641,-1115751616)+W(11,-1099401009,1051036287,1031406769,1030150228);sum2=W(0,1018441725,-1121226957,1025980595,-1143973174)+W(1,-1145354702,-1118705847,1018735508,-1128043345)+W(2,1035475244,1028848366,1010180031,1001175670)+W(3,-1106801879,1036012925,-1093599779,-1119821797)+W(4,-1106432772,-1114705464,1042307735,-1105109021)+W(5,1063056253,1055391108,-1103238145,1024485983)+W(6,-1108191465,1026535678,-1097885523,-1118265757)+W(7,-1114258989,-1109715589,-1153036923,1024075219)+W(8,1035122552,1031788992,-1114303163,1025382280)+W(9,1023515972,-1143871918,1028845741,-1122707515)+W(10,1031455538,-1125366621,-1130614305,-1115606924)+W(11,-1124060823,-1149779899,-1117711701,-1122890135);WS(1061221431,1002405371);
sum1=W(0,-1123061017,-1123480946,-1090405194,1054235011)+W(1,1026563665,1000058490,-1109190069,1033046959)+W(2,-1104934581,1044209302,-1108435303,-1121369187)+W(3,-1111043962,1050201177,-1102475777,1057895846)+W(4,1037490845,1030151784,-1094345134,1042710035)+W(5,-1086823335,1052530935,-1102625680,-1111380603)+W(6,-1146354418,1050099666,-1097235340,1058601910)+W(7,1033897294,1040756961,-1113941840,1026923762)+W(8,-1091215734,1050794548,-1126650490,-1126829850)+W(9,-1145213652,1032794752,-1094526523,1041457976)+W(10,-1110275296,1032331475,1017803349,1029204218)+W(11,-1089600016,1055600534,1021417496,1033488871);sum2=W(0,1049937345,-1089706816,1050626093,1030967529)+W(1,-1115709839,1039088353,1058657690,-1087536311)+W(2,-1106625833,-1105431871,1036734782,-1109192755)+W(3,1071079778,-1078069733,1020012689,1044296437)+W(4,-1122006247,1031394755,1072348129,-1078647761)+W(5,-1094966474,-1112600090,-1122763227,-1116226089)+W(6,1066389113,-1079714039,-1098171132,1038432439)+W(7,-1130276743,1022577738,1049150259,-1090508646)+W(8,1050328795,1044145959,1024733405,1012728894)+W(9,-1119844839,1022376790,-1105718319,-1126694997)+W(10,1021875579,-1123093509,-1113785170,-1103849791)+W(11,1052174137,1034822829,-1112758982,1013882918);WS(-1092893294,-1089220584);
sum1=W(0,1008699951,-1127519944,1053766130,-1103359682)+W(1,-1104704049,998920846,1010493299,-1118558929)+W(2,1051919929,-1096189801,1032200864,1028526614)+W(3,-1124403149,-1106263811,1056071340,-1097091836)+W(4,-1111082358,-1149496748,1025199074,-1113928672)+W(5,1052175436,-1086367179,1015736929,1019181009)+W(6,-1117387089,-1098638288,1062605050,-1096005139)+W(7,-1120379023,-1115659002,1015178277,1041393441)+W(8,1047707912,-1102452900,-1123219920,1027645503)+W(9,-1125915034,-1112838969,1053546873,-1101730612)+W(10,1019333603,-1131717807,-1130896954,1035998582)+W(11,1049473086,-1095432549,-1136688761,-1136451331);sum2=W(0,-1143112647,1034689803,-1115356591,-1121270233)+W(1,1017968792,1021729984,992704062,-1109431235)+W(2,1039097516,1048248946,-1124530814,1005857263)+W(3,-1124855502,1033324328,-1073085951,-1106299172)+W(4,1023517229,-1126326370,1038449046,-1098090520)+W(5,-1063972596,-1091325299,-1113483013,1015994888)+W(6,-1105916124,1038361982,1062319475,-1090314642)+W(7,-1141826407,1013997779,1035072543,1040866773)+W(8,1085456662,1056006422,1034240002,-1134900259)+W(9,-1114904409,1032024575,1062308854,1043935118)+W(10,-1124783482,-1135264403,1019251456,-1164332444)+W(11,-1102205120,-1107459099,1032935811,1001043447);WS(-1104754908,-1106735671);
sum1=W(0,1030490103,-1117923535,-1088908700,1033028505)+W(1,1045999740,-1120248133,1032595044,1002237924)+W(2,-1094516030,1029213684,-1144798556,1015682178)+W(3,-1128810020,-1122216143,-1092804364,1050263192)+W(4,1022746927,-1129595020,1032319302,-1120462507)+W(5,-1102093923,1063837581,-1106958295,1030078356)+W(6,1019231224,1025980110,-1088198897,1058220138)+W(7,-1107413149,1021953856,1025969502,-1123369072)+W(8,-1096286026,1054477272,995801516,-1153493672)+W(9,1016077744,1034830735,-1102086589,1045907999)+W(10,-1115665070,1019926661,1024124136,-1104242198)+W(11,-1103741447,1049334234,1030012489,1022398552);sum2=W(0,-1116247065,1035833889,-1087068607,-1107323417)+W(1,-1109274147,1021616338,1015145430,-1107082251)+W(2,-1079268655,-1102842161,1016322550,-1133554677)+W(3,986051432,-1114579693,1022672030,1049680335)+W(4,-1111459111,1010843781,-1117862601,1043695503)+W(5,1067901888,1032100715,1026073955,1017398706)+W(6,-1114715779,1039299404,1059152338,1040660749)+W(7,992278036,998891466,1034116930,-1114493167)+W(8,1008422125,-1115195239,-1173738319,-1139208557)+W(9,-1144744186,-1120378069,1020328850,1018816198)+W(10,1033325633,-1138764845,1026244953,1019204162)+W(11,-1111927269,1021018582,-1123657301,1016479082);WS(-1092340590,-1082645376);
sum1=W(0,1018128252,1033191659,1040446513,-1112709788)+W(1,1031456758,-1113441282,1018184990,-1106475329)+W(2,1036685563,-1105689791,1040219053,-1127103440)+W(3,1028162329,-1101261661,1061713267,-1086509296)+W(4,1042438664,-1123459213,-1117677972,-1102532636)+W(5,1042646693,1038532783,-1111899057,1018898486)+W(6,-1115495745,1031605429,-1089327101,1064314083)+W(7,-1100451664,1033438227,-1115409474,1010011868)+W(8,-1106573237,1046976369,-1105951352,1029058545)+W(9,1015642046,-1127814216,-1105713919,1039016129)+W(10,1010066702,1013299750,-1118723567,-1112449263)+W(11,-1112423953,1030956248,1022848097,-1130132966);sum2=W(0,-1107775669,1040551451,1027302533,1033412933)+W(1,-1135101756,-1131050762,-1121347079,1042459857)+W(2,-1122087227,-1113656153,1017950151,-1130160250)+W(3,-1118975841,1031184422,1016161914,1035641742)+W(4,-1109563699,1017438602,-1121125435,-1152381105)+W(5,989383522,-1114487413,1046120628,987844130)+W(6,-1123325897,-1105935240,1045806619,1041762467)+W(7,-1114574520,-1117833439,1012434826,-1115286413)+W(8,-1125562074,1029416951,1035110196,-1173771715)+W(9,-1129695564,-1124425722,-1111270899,1028252326)+W(10,998528980,-1121778743,1006663086,-1111096901)+W(11,-1114174571,-1127668218,997585257,-1126450718);WS(1052284526,1042464092);
sum1=W(0,1010280196,999914700,1057530557,-1098111272)+W(1,-1101387838,1027464615,-1136974408,-1110845507)+W(2,1046554367,-1100087104,-1110795931,-1128121686)+W(3,1026365340,-1109035161,1060667985,-1090659644)+W(4,-1102616600,1001926272,1020617774,-1110448219)+W(5,1063323154,-1094987596,-1105684762,1025859742)+W(6,1023947782,-1110075532,1043924417,-1095988958)+W(7,-1124311688,1017827156,-1127515216,1038195741)+W(8,1050039723,-1097163609,1018127786,1034844538)+W(9,-1129271461,-1114945332,1042422080,-1105136802)+W(10,-1124435598,-1130637466,1007810505,1019473092)+W(11,1052688005,-1095692091,-1114597706,1027019478);sum2=W(0,1025355846,-1119913429,1034044275,-1140464466)+W(1,-1091074448,1041357090,-1124685033,1010871130)+W(2,1036346050,1032812135,-1086522508,1037018199)+W(3,1029205900,1016143206,-1128364593,1071964190)+W(4,-1074918519,1033277276,1011755468,1033794365)+W(5,-1133342818,1067600837,-1089329657,-1111447139)+W(6,-1113277680,-1140030878,1020927778,1039362648)+W(7,-1106053895,-1118126225,1035269289,1020099653)+W(8,1035477071,1033733070,-1108456989,1032003060)+W(9,-1122502097,991986873,1011575434,1008065452)+W(10,-1146528221,-1117647411,1013457876,1035095720)+W(11,1029499077,994468553,-1106105254,1009180302);WS(-1085785015,-1080175544);
sum1=W(0,1035373246,-1103151077,1058377668,-1091874455)+W(1,1025579124,-1111695537,-1125806618,1045216768)+W(2,1050584367,-1094766367,1043611260,1043525714)+W(3,-1118822551,-1094452856,1054861331,-1107649205)+W(4,-1106387815,-1102079139,1044894533,1039875576)+W(5,1046782533,-1090132878,1049375324,-1105407270)+W(6,-1102223008,-1151103277,1057861265,-1090472533)+W(7,-1115030560,-1144672552,1041222777,-1094574331)+W(8,1051791466,-1111571937,-1137989279,-1102123612)+W(9,1023709757,1048044105,1043274206,-1098390656)+W(10,1049548184,1041305154,-1122183565,-1103877399)+W(11,1058273114,-1092114299,-1106419572,-1116205169);sum2=W(0,998449416,-1118465870,-1124628345,-1148690252)+W(1,1037770975,-1105952484,-1121990028,1035743758)+W(2,1040306990,1001004257,-1132010249,1037805583)+W(3,1039055377,-1103571680,-1098483719,1060096717)+W(4,-1108861100,-1087084008,-1115523342,1049274722)+W(5,964150684,1077176219,1047972499,-1070507600)+W(6,-1132069983,-1106547389,1024621733,1060014437)+W(7,-1098623231,-1092504349,1032292249,-1126693677)+W(8,-1103504000,1016774454,1034159573,-1105946989)+W(9,-1128335569,1034009109,1043582890,-1107960970)+W(10,1020716885,1041667680,998312734,-1116877357)+W(11,-1116867442,-1139511962,1042264637,-1102914489);WS(1041580764,1025947967);
sum1=W(0,1032565172,1034662848,1053611982,-1093835868)+W(1,-1131110976,1036244351,-1116825273,-1104706235)+W(2,1050747028,-1092905173,-1131069497,-1119290642)+W(3,1019951750,-1115255997,1050206724,-1095669879)+W(4,1036897764,1017394926,1022134396,-1107214727)+W(5,1063007652,-1096926641,-1105182467,1029927621)+W(6,-1111515158,-1098820316,1060757006,-1089733625)+W(7,-1098715869,-1106823604,1034025399,1032808736)+W(8,1052025888,1049974094,-1104277767,1037476046)+W(9,-1110133221,-1102823188,1043880105,-1099659531)+W(10,-1106501955,-1114565306,-1159719714,1021100817)+W(11,1052817434,-1119725058,-1106408671,-1122404893);sum2=W(0,-1132209742,1031078182,-1131885988,-1109418986)+W(1,969823813,-1135041624,986836209,1029631070)+W(2,1025515900,-1129378830,1027058278,1012367442)+W(3,-1121945777,-1119773491,1029199828,-1113141662)+W(4,1030656895,-1116640321,-1170553346,1020231728)+W(5,-1120148774,1055904551,-1099466937,1014349374)+W(6,-1138085578,1023900693,-1122079840,1057958803)+W(7,-1089769002,1019607807,-1127752664,-1133642976)+W(8,1019687015,1044815557,-1096970616,1019685270)+W(9,1024317954,1016594015,1019770946,-1115676013)+W(10,-1105180704,1040370156,-1170071298,-1123929889)+W(11,-1134784812,1040873658,-1104818759,1020720783);WS(-1101021916,-1101341893);
sum1=W(0,1026213188,-1104193847,-1099125811,1055643976)+W(1,1025577212,-1110018309,-1128959914,1029994953)+W(2,-1096018912,1049220736,-1111820508,1025253614)+W(3,1026395551,-1146733010,-1093634574,1055313981)+W(4,-1119144868,-1114303945,-1114900877,1036038140)+W(5,-1086773562,1052012604,-1127551698,-1123712161)+W(6,-1152047246,1031817213,-1090412335,1060627153)+W(7,-1111302883,1028280877,1012420650,-1118727997)+W(8,-1107844781,1051291321,1025725832,-1119269431)+W(9,1006057769,1021561044,-1104575744,1049980081)+W(10,-1112108341,1031833384,1026345301,-1106810537)+W(11,-1104632714,1047342967,1003961523,999050183);sum2=W(0,-1131988010,-1111316079,1041465340,1024389323)+W(1,-1121573843,-1149117460,1023490159,1007442131)+W(2,-1100903601,1055734435,-1125698351,-1131908940)+W(3,-1126411872,-1122871173,1038743702,1080207498)+W(4,1043717463,-1114017647,-1164111651,1046145376)+W(5,-1093182708,1078445253,1049726225,-1119425741)+W(6,-1121501747,1040330964,1049859497,-1068399047)+W(7,-1122596352,1019240934,1031886393,-1109560063)+W(8,-1098635398,-1066503158,-1100760677,1009702615)+W(9,-1117332099,1016982738,1035352171,-1109489195)+W(10,-1113462329,1032687935,1035364539,1005935896)+W(11,-1113093917,1012210427,1035980752,-1141270643);WS(1046490332,1041425064);
sum1=W(0,1024529499,-1116828595,-1093042204,1043650965)+W(1,1015429414,1019425762,1033054902,1002731779)+W(2,-1098109922,1045029126,-1106337284,995804238)+W(3,1031945755,1040980232,-1092614541,1058500980)+W(4,1033182334,1032419541,-1146773895,-1160896989)+W(5,-1086741475,1055608303,-1109695552,-1179835378)+W(6,1029605664,1052617834,-1091564618,1058257970)+W(7,-1174108025,1044059953,1004520717,1015420456)+W(8,-1090483479,1019101890,1029823567,-1127672093)+W(9,1031502108,1044142352,-1094325635,1041689704)+W(10,-1123497953,1032927635,1024614604,1032157630)+W(11,-1086427940,1049761551,1041880275,1040104968);sum2=W(0,-1122431319,1026151548,-1122010793,1049905644)+W(1,-1102178930,-1124048569,-1114479591,-1106953243)+W(2,999999917,-1108260971,-1125976243,-1126306455)+W(3,1024826864,1048064546,992235770,1050719290)+W(4,-1123774104,1025075060,-1100833312,-1097347844)+W(5,1040448763,1045454882,-1096948195,-1105554812)+W(6,1043724086,1037967160,1044292364,1049686405)+W(7,1038302972,1034346164,-1109354990,-1109085075)+W(8,1032432738,-1111087807,-1108325988,-1114960687)+W(9,-1130104331,-1110876131,-1143420941,-1098496523)+W(10,-1118752296,994535386,1015245663,1007980535)+W(11,1040568157,1043523736,-1113347688,1032072922);WS(-1096079726,-1086813702);
sum1=W(0,-1135457777,-1105268453,1045566625,-1104980990)+W(1,-1105625101,-1128467237,1020632987,-1134572551)+W(2,1038076635,-1125909619,-1145052038,1035122115)+W(3,-1136898909,-1100910973,-1141635906,-1094783105)+W(4,1032999502,-1125440663,1041289173,-1166801940)+W(5,1058638213,1057673490,1030475041,1035865453)+W(6,1012368645,1038525034,-1104077708,-1100424110)+W(7,-1113674176,988204202,1002632984,-1102504381)+W(8,1033251913,-1111352769,-1113040784,-1119749552)+W(9,1024629150,1029902179,1009307365,1012100357)+W(10,992583714,1027550920,-1127204699,-1110256943)+W(11,1022942147,-1133590617,-1114381639,-1124393059);sum2=W(0,1009177065,-1117003048,1042183695,-1105766164)+W(1,-1112946812,1019480223,-1120740066,1013092463)+W(2,1025589372,1042721142,-1113055730,1026018809)+W(3,1031366584,-1102800003,-1111208570,-1149080533)+W(4,-1103263899,1020058227,1041576942,-1090661723)+W(5,1068855162,1040487387,1030911277,1007104581)+W(6,-1100270767,1059100650,-1085550755,1023619821)+W(7,-1103276630,1029611268,1045439690,-1097382737)+W(8,1044086134,-1099098175,-1114239046,-1162581429)+W(9,-1125959183,1022453518,1032267243,-1126080241)+W(10,-1107084863,1037226018,1033773937,-1106788899)+W(11,1025170288,-1106320787,1019625936,-1116554192);WS(1059841719,1028884484);
sum1=W(0,-1113543486,-1108411818,-1112074625,1058342439)+W(1,-1101044205,-1143395087,-1112448166,-1111506273)+W(2,1034453786,1041783662,-1112657624,-1122260358)+W(3,-1123514455,-1104706915,1033474668,1050338440)+W(4,-1103529079,-1124590486,1014814024,-1096756366)+W(5,1052483434,1043430567,-1099567912,-1132902244)+W(6,-1116573889,-1106354949,1048710884,-1116369607)+W(7,-1110811775,-1118491109,-1120616579,-1107115957)+W(8,1049505778,-1117001986,-1119641312,-1118809775)+W(9,-1132301434,-1117349474,1050151687,1011608836)+W(10,-1133908615,996976763,-1127146586,-1105758103)+W(11,1056594572,-1106214629,-1113349351,-1114523384);sum2=W(0,-1131846847,-1142019487,-1119272484,1043688817)+W(1,-1110979463,-1128104285,999597315,973346488)+W(2,-1113005256,-1112114230,-1112619479,1003422803)+W(3,997751878,-1127636492,-1113445057,1056371527)+W(4,-1097247478,1021279303,-1114921220,-1114646695)+W(5,1055277760,1041350431,1019660165,-1127196333)+W(6,1031101790,-1098897499,1032426103,1038923617)+W(7,-1105379211,-1138766624,-1115596944,1027087956)+W(8,1036539833,-1123786644,1026606310,-1129408714)+W(9,1024706196,-1111832500,-1114392819,-1130636099)+W(10,1012894502,-1130181692,-1120544321,1029100436)+W(11,1010252474,-1123180191,-1125326592,-1164469676);WS(-1092619630,-1089382730);
sum1=W(0,-1111364766,1023648980,1039669985,-1112475547)+W(1,-1102256285,1036516737,1043539187,1020312451)+W(2,-1096148415,1048019422,1027548272,-1110790259)+W(3,984781533,-1115220152,1055391282,-1085560118)+W(4,1048070471,1016263062,1030068626,-1101226428)+W(5,1026945555,1059189430,-1108016176,-1120756633)+W(6,1026274177,1038621209,-1081505706,1059392734)+W(7,1040580240,1007770772,-1111039089,-1105671421)+W(8,1045179252,-1105049488,1037378816,1034683832)+W(9,1024515101,-1101912057,-1132720100,1041558112)+W(10,1031071010,-1109624324,-1120853581,1015856825)+W(11,1027675681,-1133761880,1032748839,1021933410);sum2=W(0,1021752691,-1111677325,-1108952074,1033183913)+W(1,1044091848,-1113755692,-1117827136,1031932470)+W(2,-1110048197,1038437939,-1103930854,1027358915)+W(3,-1125983252,-1130612142,1045228241,1050756049)+W(4,1008734718,-1104619422,990310070,-1104195843)+W(5,1051763659,1045197632,-1105931725,1032921649)+W(6,-1109957501,-1168184730,1028013889,-1115591069)+W(7,-1149204891,-1117367196,1040724727,-1105272655)+W(8,-1136328910,-1123843648,1020655719,-1140627498)+W(9,-1109878975,1035492359,-1114456338,-1120329563)+W(10,-1120613434,1033876328,1031887118,-1103738768)+W(11,-1114723198,1035246991,-1121689275,-1121880867);WS(1051433070,1041054969);
sum1=W(0,1027474774,1025557871,-1105663671,1035613609)+W(1,1041537220,1027665948,995089009,1019369911)+W(2,1032468488,1037418314,1036952965,-1122283488)+W(3,1034863641,1049084179,-1096978722,1039456478)+W(4,1041156238,1041167849,-1109189270,1046403907)+W(5,-1082587707,-1080639932,1049567823,-1112387034)+W(6,1039503310,1044512531,-1102025153,1026454114)+W(7,1040087661,1039611744,-1126811322,1035909664)+W(8,-1107200379,1042549431,1039105725,-1137459494)+W(9,1033371404,1033234174,-1104819461,1042229543)+W(10,-1131034584,1031071714,1010666397,1028564471)+W(11,-1106755535,1034360184,1031577769,1033297350);sum2=W(0,1039097792,-1103860174,-1106228186,1004583985)+W(1,1031892389,-1133334119,-1128793460,-1106733661)+W(2,1050938198,-1097187313,1046933969,-1107245750)+W(3,-1140010118,1043000544,-1100268114,1021007203)+W(4,-1107049139,1039577114,1022871695,-1106671798)+W(5,1039252188,1053089515,1049075999,-1104825734)+W(6,-1138263433,1046664654,-1099105674,1048715277)+W(7,-1103930146,1030321621,-1112923836,-1123142296)+W(8,-1121884665,-1114597930,1022883749,-1117968576)+W(9,1026478628,1037719970,-1100173198,1047464456)+W(10,-1098080196,1036807670,-1110368657,1042580191)+W(11,1034926170,-1106315502,-1108178582,1018138445);WS(-1097236334,-1078251511);
sum1=W(0,-1147379729,-1107131303,-1102832418,1058323440)+W(1,1023750586,-1116361496,981774949,1007351583)+W(2,-1125527926,1053289720,-1121375351,-1124892056)+W(3,-1145120489,1033603653,-1095625930,1056660465)+W(4,1026746467,-1128008098,-1112510828,1043141838)+W(5,-1082084799,1032726417,1033795604,-1117973855)+W(6,975327689,1029606457,-1090577043,1058345481)+W(7,1025947909,-1148460889,1008364580,938727969)+W(8,-1093823475,1053416161,-1131151340,-1125502955)+W(9,-1140670990,1020032977,-1098508888,1046390514)+W(10,-1119905544,999577711,1022969831,-1108966769)+W(11,-1096801949,1049766564,1037296218,1010324189);sum2=W(0,1024894779,-1102276353,-1120020336,-1081787381)+W(1,1039662448,1023553607,1020144998,1025017931)+W(2,-1096890621,-1080908066,992888305,-1118655405)+W(3,-1118791847,-1107221556,1050182775,-1102161510)+W(4,-1130889346,-1120230550,1007750652,1046635995)+W(5,1039741552,1072604155,1039835396,-1126400334)+W(6,-1137666916,-1132306598,1043589185,1055213170)+W(7,-1110509653,1020541198,1023698735,1023586615)+W(8,-1108361045,-1115556916,-1122324709,1020891302)+W(9,1009542396,1030880679,-1114600836,1037616572)+W(10,1000980713,-1119304668,-1129126018,1015842286)+W(11,1024872627,-1105259074,-1124270218,1033066840);WS(-1095840110,1065907853);
sum1=W(0,-1149009607,-1123781617,1057715094,-1102734645)+W(1,-1101560548,1034276991,1029310442,-1130903741)+W(2,1048478500,1041326469,1036129479,1021921030)+W(3,-1122029108,-1115466131,1058442742,-1088947208)+W(4,-1107277134,1036949012,-1136794300,964920945)+W(5,1045634572,-1083008792,-1109559039,1024401462)+W(6,-1118254622,-1115351608,1052165513,-1096684061)+W(7,1036543086,-1114280609,-1132243967,1043406509)+W(8,1053323726,-1089856222,1024712701,1035777670)+W(9,-1126823604,-1116119295,1042519141,-1127763004)+W(10,1009014011,-1132072137,1010554921,1040435870)+W(11,1051535704,-1095672430,-1114598742,1024787534);sum2=W(0,-1122765153,-1112086475,1040388299,966593378)+W(1,-1114107386,975247631,-1119761608,-1118318168)+W(2,1023061820,-1102263327,-1113965021,-1137846028)+W(3,-1115823403,-1121250504,-1128744886,-1110151426)+W(4,1045334069,-1111548146,-1123357438,-1119202357)+W(5,1057284387,1059190541,-1118800384,1023792011)+W(6,-1105805209,1024515185,-1103324019,-1106793279)+W(7,-1164047122,-1112106446,1031734555,-1130234658)+W(8,1037222780,1050053336,1025627836,1020007628)+W(9,-1111986136,-1134784044,-1110952019,-1107073751)+W(10,-1114668630,-1125560981,-1126486235,1026675759)+W(11,-1117543075,1021583022,-1124432766,-1131408661);WS(1024351088,-1094038469);
sum1=W(0,1016930687,1038061004,1052546457,-1086527812)+W(1,1040515838,1006605995,1024919184,-1118029957)+W(2,1050276351,-1103330015,1027568116,1004978763)+W(3,988693323,1005748798,1052906127,-1085615881)+W(4,1040353352,1030413326,1038267403,1038925818)+W(5,1062157201,-1097782940,-1124671689,1031140124)+W(6,1001354275,1032752795,1055274272,-1088621706)+W(7,-1113419105,1009586849,-1123840710,1034287148)+W(8,1050137483,-1090365828,1017331974,1023985459)+W(9,-1125725377,-1110688307,1036684158,-1108159426)+W(10,1018660298,-1129057942,-1120680465,1036629872)+W(11,-1112935826,-1098987606,1039926041,-1120649652);sum2=W(0,1018662896,1033363591,-1101021011,-1107389045)+W(1,1013978472,-1120396150,-1131745232,1031409358)+W(2,-1109130821,1050735765,-1122086781,1024022584)+W(3,-1136728576,1036576685,-1097527529,1043333749)+W(4,1029525730,1015209616,-1110788716,1060006588)+W(5,1058553385,-1120731420,-1118628277,1030135008)+W(6,-1123530251,1052968790,1023922010,-1100470754)+W(7,-1117232951,1018906596,-1101470606,-1102632350)+W(8,1057288665,-1097217661,-1112638769,-1121049341)+W(9,-1110519714,-1105224546,-1111209476,1038218737)+W(10,-1121310567,1024891644,-1125138150,-1083015355)+W(11,1034932287,1047940150,1023530026,-1113292326);WS(-1086599863,1058406314);
sum1=W(0,-1165120005,1027409257,1060099497,-1093079745)+W(1,-1114693988,1019186220,-1133002117,-1121445206)+W(2,1049800473,-1099695891,1033258882,1025328858)+W(3,-1129945046,-1106007410,1059141168,-1091476505)+W(4,-1129815521,-1128567742,1024249318,-1105883025)+W(5,1051534797,-1093891126,-1124179562,1017248474)+W(6,-1119162837,-1105279538,1058010671,-1094225343)+W(7,-1106482085,-1123837177,1026085015,-1127421331)+W(8,1051659429,-1106347590,-1112036922,1031899202)+W(9,-1121003281,-1109094875,1047889907,-1098091099)+W(10,1030868870,-1123224348,-1127955907,1024561201)+W(11,1050835423,999784785,-1097732400,-1141903913);sum2=W(0,-1116781913,1031543998,1082393585,1050004941)+W(1,1025243259,-1123250937,1016621488,1029140379)+W(2,1078957479,1028477447,1010603263,-1125975170)+W(3,-1133566515,1044191480,-1080327233,-1104837212)+W(4,-1125439138,1007793087,-1124282558,-1105795809)+W(5,-1065075267,-1086493521,-1117319975,1028403247)+W(6,1034216133,1017978886,-1076777978,-1109285108)+W(7,988101688,-1125200922,-1128560494,-1175609568)+W(8,1030943022,1045155438,1024551608,1020903576)+W(9,991940908,-1120640387,-1110243052,1033432207)+W(10,-1129511338,-1119399555,1017899660,1019924506)+W(11,-1113970478,-1130476854,1020472787,1028374268);WS(-1102531292,-1104168529);
sum1=W(0,-1149508566,1032023755,1058049088,-1091020399)+W(1,-1123106485,1018386839,-1156103398,-1123937923)+W(2,1044530702,-1093487559,1028416434,1022122127)+W(3,1005530819,-1114986325,1057825341,-1088576155)+W(4,-1124442300,1027828556,1019304359,-1105594348)+W(5,1061967565,-1113700815,-1132463754,1023613146)+W(6,-1111288609,-1100927253,1057378026,-1096522221)+W(7,-1107169312,-1118265958,-1152861762,1042848102)+W(8,1043852869,-1100187457,1030031137,1031835352)+W(9,-1123770879,-1131000647,1032195229,-1097716728)+W(10,-1127676038,-1124424850,992160490,1048571064)+W(11,1021567685,-1095320739,1015048992,-1151822630);sum2=W(0,-1112466451,1034684305,-1101371049,-1100658772)+W(1,1043071493,-1119405084,-1130983341,1035765483)+W(2,-1113050760,-1100149859,1039321546,-1140521940)+W(3,1032826781,-1117553496,-1096382267,1042208912)+W(4,-1131759707,-1127348451,-1114093653,-1101908611)+W(5,1063677104,1062452463,-1106482074,1028341682)+W(6,1040752192,-1105770401,-1132405995,1047214162)+W(7,-1105645940,1022142418,-1154197073,-1106309648)+W(8,-1114901667,-1095028755,1034888818,-1118255322)+W(9,1026229169,984953298,1023704972,-1109270652)+W(10,1035103126,-1118485150,1032051747,-1113409477)+W(11,-1104964374,-1107539022,1008251057,1025943565);WS(-1107552696,-1110437397);
sum1=W(0,994440345,-1114854865,1038159592,-1169396004)+W(1,-1112745281,1003079356,-1123893979,-1115498472)+W(2,-1143015444,-1103811554,-1176837895,-1126823399)+W(3,-1123659045,-1107252796,1048547885,-1102945115)+W(4,-1113210869,-1127252913,1033249360,-1098484960)+W(5,1066459081,1054059005,-1092775086,1036761683)+W(6,-1115012423,-1105215024,1050116824,-1110458371)+W(7,-1107508006,-1117476787,1025628848,-1113844817)+W(8,-1114931568,1027966800,-1115481499,-1139958260)+W(9,-1120012907,1015022176,-1139703834,-1137430074)+W(10,-1123286831,-1143819946,-1138236651,-1112267573)+W(11,1030992175,1038350450,-1114208046,-1119805695);sum2=W(0,-1128900045,1032112026,-1122103841,1020429393)+W(1,-1123818335,1025087925,-1134566747,-1121844433)+W(2,1023900033,1031965476,-1168200234,-1116320886)+W(3,1023101249,1024457633,-1130431017,1010339139)+W(4,-1111989275,1037399444,-1119409466,1041370918)+W(5,1071310745,-1073631838,-1111141033,-1131868341)+W(6,1014344875,-1138667107,1015570157,1024644617)+W(7,-1128248465,1027301561,-1124604689,1023011873)+W(8,1025187637,1038341472,1032459330,-1118206868)+W(9,-1135550339,-1123574415,1029193653,-1117036677)+W(10,999769253,-1124415769,1011013307,1018662193)+W(11,-1118001398,1034637136,1020580065,-1136885571);WS(-1106869980,-1095812171);
sum1=W(0,998635262,1030538232,-1104276842,1021368885)+W(1,1037657452,1012233735,-1132768195,1032306163)+W(2,1027943897,1042581143,-1130589992,-1127936403)+W(3,1031165051,1040655940,-1094369165,1043839724)+W(4,1045125152,1030674671,-1109012795,1049530762)+W(5,-1079963696,-1098205560,1052736873,-1106402911)+W(6,1031921458,1035845131,-1094529094,1041010327)+W(7,1041646697,1035635524,959153786,1029124089)+W(8,-1138415831,1043286153,1033263566,-1117746707)+W(9,1015400066,1034791747,-1107836910,1040781721)+W(10,-1127518347,1026900011,1020404450,-1126776961)+W(11,-1127281161,1032119517,1032079673,1007765715);sum2=W(0,-1137391706,1016897725,-1122041158,1032188407)+W(1,959684203,1004755699,-1152109415,-1123613558)+W(2,-1117579022,1034093919,-1123954990,-1142267571)+W(3,1015680093,1031100358,1032233585,-1107212716)+W(4,-1144448755,1020208893,-1108578627,1031185182)+W(5,1068869480,-1079207220,-1112638895,-1131161181)+W(6,1012334874,1018767069,1031129926,-1118301998)+W(7,-1145613555,1014639674,-1126811133,1016912269)+W(8,-1135215962,1010098650,1002322227,1010341946)+W(9,-1146463859,-1123894542,-1172726683,1010207290)+W(10,-1163026381,-1128211133,1013671002,-1129388765)+W(11,1025914590,998321459,-1185201771,1014227898);WS(-1106551004,1058945856);
sum1=W(0,-1136733265,1027999917,1036329486,1021052191)+W(1,-1112842790,996925861,1029534949,-1110759309)+W(2,1039804839,-1090459221,1042972690,-1126301053)+W(3,1040114552,-1101184472,1055915689,-1088507490)+W(4,-1116549941,1035692146,1023973738,-1136820001)+W(5,1045009467,-1102642413,1048917175,-1116120689)+W(6,1008178533,-1120539979,-1099722578,1057115504)+W(7,-1103385510,1032281663,-1121731675,1050535890)+W(8,-1092228133,-1141944531,1042662182,1025401864)+W(9,-1122738710,1036280349,-1110742697,1036514925)+W(10,-1123309658,-1122836256,998670125,-1112884987)+W(11,-1133144549,1024140334,1040183891,1009223461);sum2=W(0,-1166199047,1029866216,-1143586281,1016771040)+W(1,-1123676489,-1174784654,1008667864,-1111274931)+W(2,1037662319,1050961303,1039205717,-1119230230)+W(3,-1137339492,1026227362,1052978055,1073672156)+W(4,1048063806,-1117826448,-1142224481,-1119220040)+W(5,-1079795268,-1075413433,1028203090,1028246046)+W(6,-1152330850,1031356244,-1109068899,1029037052)+W(7,-1113725553,-1160612324,1020018908,-1116678638)+W(8,1041694498,1026323256,-1115208722,1024440460)+W(9,-1116618549,1026327024,-1122243464,1021575344)+W(10,1002430881,-1126523302,1015962596,-1189397276)+W(11,1027749752,-1119692611,-1114291930,1031666290);WS(1045979868,-1116118129);
sum1=W(0,1019079208,-1115974509,1054347779,-1096855346)+W(1,-1118610636,-1120438410,-1124899402,-1114857165)+W(2,1046800787,-1098629066,1029706377,1017939836)+W(3,-1142300538,-1110287856,1053005207,-1093283235)+W(4,1028644213,-1131155654,1011594153,-1099509298)+W(5,1063937495,-1097005655,1015974258,-1116499825)+W(6,-1134190949,-1112842949,1058166871,-1090046872)+W(7,1040979430,-1119992573,-1132197046,-1107483943)+W(8,1048177899,-1104885511,-1129150352,-1120133576)+W(9,-1116332853,-1111331677,1047873428,-1102896822)+W(10,1028514810,-1118080608,-1135144470,1018268010)+W(11,1056893199,-1096686406,-1118433447,-1112688517);sum2=W(0,-1132220574,1034058342,1008450820,-1132397996)+W(1,-1105536207,1025437040,-1115410889,-1116250603)+W(2,-1126553639,-1097158033,-1108668742,-1118211898)+W(3,1017347763,1029372102,-1105866140,1060185134)+W(4,-1106418349,1034066570,-1123931551,-1101916549)+W(5,1053545154,1060913993,-1104852271,-1102379864)+W(6,1027749497,-1104316591,1054419707,1033775493)+W(7,-1106993048,-1133416673,-1111299822,1035393713)+W(8,-1102688086,-1115290197,-1102129692,-1209279719)+W(9,1025854529,-1107314572,1036131430,-1106841697)+W(10,-1149271050,-1133826631,-1123916419,1033668899)+W(11,-1144517652,990325833,-1114889391,-1129688184);WS(1058774455,1069380246);
sum1=W(0,1032626516,-1114780225,1045065548,-1111975378)+W(1,1025328225,-1121960111,-1119757626,1038823639)+W(2,1040221656,-1115053555,1020222778,1037972921)+W(3,1033017026,-1098306133,1021036585,1050529784)+W(4,-1115391173,-1112361500,1015522813,1034533838)+W(5,-1082356272,-1095104409,1045288819,-1139302935)+W(6,-1128327131,-1103839696,1057244812,-1133328720)+W(7,-1116298540,1018289699,1036888920,-1112718001)+W(8,1032300191,-1111385431,1042918995,-1110693582)+W(9,1032769109,-1126986782,1043416793,-1124233691)+W(10,1029500622,1027375220,-1148588495,1012070438)+W(11,1045596067,-1105784401,1037659662,-1114680879);sum2=W(0,-1129789987,1017265095,-1124616639,-1116091154)+W(1,1033010488,1011223606,1019234847,-1124971531)+W(2,-1114025560,1022067335,-1114442452,-1117824661)+W(3,-1128803579,1043137983,-1132476030,-1102585265)+W(4,1028851843,1031833634,-1112792165,1047657371)+W(5,-1114992592,1052022695,-1115343414,-1136738894)+W(6,1011967806,1034970984,-1098689491,1033604172)+W(7,1002830796,988094894,995307959,1010908150)+W(8,-1115509379,1031244615,-1121158047,1025799099)+W(9,1018394359,-1107223361,1006851110,1032350856)+W(10,-1114060980,-1118870225,-1112288614,1027672251)+W(11,-1128503755,1024636851,1027935499,-1127411999);WS(1065814108,-1098421406);
sum1=W(0,1030554015,-1104400078,-1097091133,1050276747)+W(1,1045406982,-1119880969,-1131576032,1022555209)+W(2,-1099298246,1048827844,-1106685173,-1132305362)+W(3,1020712308,-1130072911,-1094842433,1057743463)+W(4,1040093248,-1122176686,1019668842,-1118231891)+W(5,-1084181571,1051719984,1018405640,1026194364)+W(6,-1178997255,1041059117,-1098796514,1058357819)+W(7,-1118903138,1004376640,1023970854,-1115494780)+W(8,-1094912271,1056339293,-1115388505,1024072531)+W(9,1011631425,1035736611,-1090107010,1051879221)+W(10,-1113309730,1009992363,1023862096,-1104560304)+W(11,-1092396649,1057941592,-1118151090,1029155252);sum2=W(0,-1104337717,-1085961218,1065899128,1055232204)+W(1,-1090132108,1023963317,1027104118,1036459641)+W(2,-1117484391,-1101810882,1052764213,1014918739)+W(3,-1114433477,-1092980271,1062039746,1049041629)+W(4,-1092098978,1035158266,-1122138940,-1101372003)+W(5,1077763913,1071302707,-1123596042,1027553578)+W(6,1048327612,-1098271754,-1088377514,-1084489503)+W(7,1027311380,-1115760458,1018207462,-1115566688)+W(8,-1079225367,-1087139921,1042626102,1025357528)+W(9,1015118770,-1101224844,-1106150830,1036291830)+W(10,-1105072819,1032466828,1054676844,-1105452167)+W(11,-1079350028,-1090077553,1053993534,-1115160051);WS(-1083527351,-1082119000);
sum1=W(0,1025283773,-1100516229,-1103907601,1054198743)+W(1,-1139734483,-1115248201,-1132057884,1028453762)+W(2,-1097545679,1048327710,-1114897689,1021031566)+W(3,1024000280,-1124447466,-1096840081,1054350616)+W(4,-1109407791,-1115380998,-1117776915,1027818609)+W(5,-1088298777,1057412078,-1112548849,-1139302503)+W(6,994019357,1030853236,-1090997910,1059405315)+W(7,-1107996896,1029448614,-1146975260,-1120656758)+W(8,-1097629690,1052404744,1035903152,-1119316016)+W(9,1021506300,1023329542,-1102673054,1051692752)+W(10,-1110888465,1026998601,1016847260,-1111423375)+W(11,-1097673748,1047886934,1034953432,-1149960989);sum2=W(0,1023717076,1034248479,-1110594365,-1113079527)+W(1,1030579691,999456782,996584188,-1120794590)+W(2,1045315954,-1094151830,-1113958061,1021526858)+W(3,-1122858228,1037241484,-1111180041,-1064957365)+W(4,-1106054130,1018369486,1005163886,-1124781820)+W(5,-1088752945,-1066051811,-1113733983,1031457177)+W(6,1025356913,-1115274025,-1100621689,1081496726)+W(7,1049150725,-1112407773,-1118691920,1026099362)+W(8,1052626156,1084041658,1032870315,1022214782)+W(9,1028885707,-1121079636,-1114153113,1034711477)+W(10,1042989109,-1108284893,-1114207359,1010502519)+W(11,1038857859,-1115018893,-1106741724,1023330420);WS(1031453552,-1108810221);
sum1=W(0,-1122540068,-1106571135,-1105389195,1051764564)+W(1,-1121040220,-1136080166,-1141490084,1028200745)+W(2,1023785053,-1104087736,1027661528,1023137883)+W(3,-1132153597,-1106394603,1041720002,1055195957)+W(4,-1111907522,-1123745267,1029503994,1029495448)+W(5,-1089108304,-1096098616,1031937892,1034024448)+W(6,-1126370513,-1118016922,1047749927,1047204316)+W(7,-1112974291,-1121356173,-1127727061,1043712879)+W(8,-1092241143,1028938666,1025162247,1028910871)+W(9,-1132743443,1035505061,998106632,1043190746)+W(10,-1152510101,-1121641711,1024122485,1041979953)+W(11,-1098695505,1039644831,1002213552,1025100697);sum2=W(0,1032316109,-1117365450,1028239450,-1106184057)+W(1,1039709205,-1127567978,-1122133197,1033736971)+W(2,-1104139010,1045998485,-1126266788,1029398164)+W(3,1021061413,-1117276879,-1090538079,-1087751568)+W(4,1056538813,-1106793212,-1122180337,1009179554)+W(5,1022309577,1065712953,-1098763613,1016414657)+W(6,-1115376331,1034450077,-1125496737,-1100319643)+W(7,1017435581,1032114232,-1123716599,-1100616286)+W(8,1059658657,-1100023584,1022563437,-1113653553)+W(9,1008734994,-1130550593,1014965154,-1115246006)+W(10,980175008,1034308617,-1144451812,-1102305630)+W(11,1053491799,-1107982835,-1103966134,1020870093);WS(1060627383,-1111244297);
sum1=W(0,-1124372048,1041984816,-1098607926,1048999428)+W(1,-1110297584,1037179887,-1124233202,1023856878)+W(2,-1097555068,1050454749,-1119853981,-1124350564)+W(3,-1115057922,1037843884,-1092180401,1057072683)+W(4,-1100337986,1037306108,-1126359548,1013283185)+W(5,1035134080,1037566628,-1117600845,-1180500637)+W(6,-1135390133,-1106598024,1055432750,-1088869991)+W(7,1045634091,-1107300041,999175032,-1109047521)+W(8,1050330552,-1097603878,1040799043,-1132131255)+W(9,-1137033126,-1108189319,1046692025,-1106138715)+W(10,-1129123036,-1126029544,-1120904377,-1127664786)+W(11,1039361415,-1115643873,1042168959,-1132202938);sum2=W(0,1027553654,-1105419467,-1141314538,1051401064)+W(1,1061407816,-1086513034,-1128416633,1035214610)+W(2,992160749,-1098506313,1048701957,1023990179)+W(3,-1120268362,-1102082588,1039698771,1041311911)+W(4,1065441970,-1083801169,1026192109,1034096310)+W(5,1028842291,1044707561,-1108357660,1027929117)+W(6,1010812163,-1109637676,-1128101012,1040877432)+W(7,-1080219839,1058347144,-1133939099,1042926233)+W(8,-1110346070,-1107620104,-1089748519,1054974548)+W(9,1033310247,-1103557522,1041169016,1044637450)+W(10,-1106511250,1012370076,1007338654,1039202903)+W(11,-1150310139,-1101325278,-1094091750,1054706164);WS(1037089208,-1117319375);
sum1=W(0,-1117307261,-1127081515,-1090315640,1055484319)+W(1,1019801962,-1140393804,-1109658215,1037266337)+W(2,-1103803502,1036834781,-1121027890,-1122236391)+W(3,-1104716662,1045840649,-1108965493,1059715066)+W(4,-1120952094,1007521585,-1095157370,1048384396)+W(5,-1089739445,1050929076,-1115632913,-1115666157)+W(6,-1115283233,1042005149,-1098438340,1059599591)+W(7,-1115851136,1038771059,-1113906562,1026318614)+W(8,-1090508193,1050537744,1036887192,-1114842616)+W(9,-1127634429,1035073906,-1096110967,1039184033)+W(10,-1109698481,1040209394,-1150522598,-1129730364)+W(11,-1090097982,1056916499,994450682,1023772594);sum2=W(0,-1096641595,1051991389,-1107135642,-1120991144)+W(1,-1123228782,-1119770484,-1086741683,1059199896)+W(2,1044105651,1025236133,1032269711,1020415755)+W(3,-1073585699,1069582799,1057042277,-1123268190)+W(4,-1116194138,-1119862022,-1071753138,1070628328)+W(5,1065961920,-1098135951,-1144560253,1033682735)+W(6,-1078410756,1067042424,1057516905,1032298014)+W(7,1026966393,-1113740644,-1096289506,1055331220)+W(8,-1098611055,-1106950583,-1155415556,1022995083)+W(9,-1145261363,1015112751,1043415065,1007537613)+W(10,992611856,-1144895945,997353903,1024293693)+W(11,-1101981251,1025642916,1011854094,-1130196038);WS(-1089262391,1050517969);
sum1=W(0,-1112721887,956356282,1041136081,-1112851037)+W(1,-1118798326,1033047322,1040766980,1032255106)+W(2,-1099047838,-1136806893,1044101949,-1110781188)+W(3,-1116916633,-1115255965,1050954387,1047658201)+W(4,-1099177336,1022949658,-1109323658,1053521294)+W(5,-1090918435,-1090498606,1048722524,984126311)+W(6,1043853249,-1109293354,1049475859,-1111100085)+W(7,1044026608,-1111349460,-1102481809,1024224759)+W(8,1046323061,-1101889105,-1109421665,-1151794972)+W(9,1025978335,1036451442,-1129023222,-1112184834)+W(10,1044252857,-1140137768,-1134508350,998852344)+W(11,-1126452038,1037224108,-1113020120,-1119083507);sum2=W(0,-1120544497,-1104964203,1056285145,-1109256198)+W(1,-1107706742,1033408182,1042905493,-1097077111)+W(2,-1118581415,1026029661,1025674690,-1118988963)+W(3,1045262161,-1098230931,-1079914544,1056552993)+W(4,-1103396776,1021102038,-1104438232,1057982485)+W(5,1057557770,-1104081201,1048351556,-1136298684)+W(6,1023630957,-1106247773,1048964135,-1114436673)+W(7,1018818866,-1112938187,-1122372280,1011970003)+W(8,1020547274,1033190701,-1103728916,1034200267)+W(9,1027866949,1026340389,-1113753028,-1107460568)+W(10,1046941904,-1117493164,-1121491826,1016978228)+W(11,1034078959,1034442922,-1106194166,-1172844144);WS(1055467886,-1126093527);
sum1=W(0,-1115675946,1037777366,1043818615,-1096353162)+W(1,-1150025924,1035905869,1039731987,-1126460340)+W(2,-1103677379,1012406341,1031349769,-1103947080)+W(3,-1108949528,-1145838757,1060367897,-1088026493)+W(4,1034695514,1034985426,1014043817,1049783617)+W(5,-1102044139,-1095567535,1044285022,-1129716323)+W(6,1025589529,991251120,-1109258124,1051881528)+W(7,1011738461,-1107675487,-1102050167,1042727635)+W(8,1049311757,-1095440907,-1115570324,1042590402)+W(9,1035820699,-1123043835,-1116399889,1032817677)+W(10,1040150333,-1104125432,-1114599603,1024161077)+W(11,1046137806,-1116994158,-1110796915,-1140552997);sum2=W(0,-1115939175,-1111463085,1026058510,1015189774)+W(1,-1116961377,1003109525,1042939513,1009748958)+W(2,-1101036999,1048391804,1019493983,-1128500291)+W(3,-1106984126,-1104760450,1046231331,-1101164712)+W(4,1013441892,-1127287103,1036071940,1026404786)+W(5,1060091622,1059732347,-1113485706,1036806652)+W(6,-1133154938,1042746589,-1109115274,-1090421446)+W(7,-1102245299,-1110906499,-1110872047,1018643239)+W(8,1042116887,-1092755101,-1104832958,1042929180)+W(9,1038271101,1024219237,-1104891113,1018386748)+W(10,1043357489,-1108912836,-1124388167,-1107044825)+W(11,-1137025366,-1112446842,-1123717753,1034520620);WS(1062208951,1065603754);
sum1=W(0,1032466911,1029341462,1059167044,-1090134924)+W(1,-1133534677,987089513,1012820793,1027274819)+W(2,1052950767,-1094303727,1027990706,1032570772)+W(3,1029562264,997585115,1057349364,-1085543304)+W(4,1035990447,-1136982833,1020285479,1040141401)+W(5,-1108524682,-1080037127,1037410929,-1125543221)+W(6,993753125,1032063722,1049874906,-1095616607)+W(7,1039846496,1015158861,1033268866,-1153074023)+W(8,1048703978,-1112675170,1023735025,-1145342854)+W(9,-1131051261,1015103815,1050186639,-1111683969)+W(10,1040888889,1031358985,1028903855,1040294280)+W(11,1053103700,-1091636059,-1118753424,1022936933);sum2=W(0,1035386648,1042887622,-1086410483,-1090258329)+W(1,1060158548,-1113981975,1023547272,-1099060438)+W(2,1053956416,-1112148135,1050315819,-1099847621)+W(3,1025878508,-1099619867,-1094814183,-1093316197)+W(4,1046080958,1046524888,1026832668,-1099104088)+W(5,1069089225,1060781490,-1103190742,-1112424275)+W(6,1029828312,1048769602,1044213412,-1091192206)+W(7,-1105160931,1051146364,-1098240729,-1121505868)+W(8,1035342184,-1105713821,-1084784918,1019461112)+W(9,1044150428,1040524432,1040447750,-1089411157)+W(10,1058372334,1028619520,-1103643200,-1115369075)+W(11,1049544904,1058550641,-1080579858,1040133188);WS(-1078970012,-1070975772);
sum1=W(0,1023443287,-1111813336,-1095332548,1048282532)+W(1,1036630695,999582566,1008154783,1034628686)+W(2,-1098370186,1052880922,-1109395910,-1140663171)+W(3,1008498119,1020510238,-1091304148,1054365856)+W(4,1031904252,-1128098380,1032996598,-1119594955)+W(5,-1097391342,1065196819,-1105409007,1030941172)+W(6,-1130007992,1037186855,-1088889903,1037830473)+W(7,1022933044,1003729918,1026985054,-1129455456)+W(8,-1093273302,1040256647,1030320779,-1138808617)+W(9,1001505728,1024916861,-1097878954,1042516535)+W(10,-1131972409,1018809669,1027285064,-1118416824)+W(11,-1097408559,1044458956,1037289397,1005961310);sum2=W(0,-1114009537,1019032853,1024640816,1029944441)+W(1,-1146945026,-1136399129,1035366037,-1143037026)+W(2,-1101234014,-1105571142,1031686749,1018164069)+W(3,-1111463643,-1122373240,1068131945,1044188353)+W(4,-1128619453,-1125359481,-1119334122,1056620469)+W(5,1075463933,-1093783941,1046426762,999713778)+W(6,-1132366661,-1103744316,-1075751794,1050699227)+W(7,-1109652943,-1123073190,1001109746,1002774938)+W(8,-1072865378,-1098127223,-1131952529,1019524751)+W(9,1035022899,-1102405348,1052446989,1028903402)+W(10,-1123943246,983357578,-1112054465,1046894720)+W(11,1019415611,-1119380340,1017598049,1013611461);WS(-1137905088,-1096938393);
sum1=W(0,-1127951952,-1116133184,-1092624022,1045295113)+W(1,1023908704,1031880695,-1139830244,1040763803)+W(2,-1104553656,1046745657,-1103252327,1040451684)+W(3,-1108742721,1041221580,-1090149133,1057147883)+W(4,-1103732914,1026434167,1019792636,1009683312)+W(5,1044078592,-1112574564,-1127338650,1007135764)+W(6,1018370522,-1107181880,1058802794,-1085568476)+W(7,1040869579,1014113348,1020799581,1002965001)+W(8,1043495791,-1103617227,991652540,-1125537591)+W(9,1021418002,1022849180,1033578226,1032014262)+W(10,1013121207,1016284007,-1148599498,1039287108)+W(11,-1113073030,1022418564,1011288682,-1116579933);sum2=W(0,1036469548,-1097965159,-1116680345,1001756270)+W(1,1032969412,-1131471357,1017461301,-1101551098)+W(2,-1125992347,-1115644020,-1124365977,1016380025)+W(3,1017339130,-1094477168,1058922542,1035448965)+W(4,1040541302,1001720584,-1095997080,1035631286)+W(5,-1103956246,-1105032669,-1112710338,-1115585175)+W(6,-1099654066,1054988432,1040393300,1039533461)+W(7,1017600743,1001178742,-1105423964,1047389393)+W(8,1040203374,-1122662741,-1114085496,1001141734)+W(9,-1113359567,1041958533,-1108890296,-1130070269)+W(10,-1134082186,1010209588,-1131580992,1043362318)+W(11,1024609216,1025676040,1015920174,-1122393401);WS(1017525984,1039916017);
sum1=W(0,-1124853567,1018048624,-1095739637,1045916039)+W(1,1035770156,1019449355,-1147061122,-1127291978)+W(2,-1104996150,1043181303,1038596810,-1118699785)+W(3,-1129462517,1049183858,-1085471393,1054258797)+W(4,1048116160,1018729693,-1119594613,1032566282)+W(5,-1090223247,1054999864,1024906308,-1125493497)+W(6,999306018,1036307723,-1104470177,-1108082389)+W(7,1035021201,-1111613764,-1156505185,-1150114695)+W(8,-1105492077,1055713893,-1114305018,1013642059)+W(9,1012193026,-1116656134,-1109848430,-1134406033)+W(10,1014226964,-1117195563,1010192066,-1111959392)+W(11,-1107232129,1049351719,-1132413284,990662981);sum2=W(0,1033095635,-1113611213,-1120605005,1010827478)+W(1,-1096460028,992544217,-1123818427,1038354785)+W(2,1043017802,1005632845,-1090567932,1043858115)+W(3,1023960168,-1136308834,1016597499,1067061797)+W(4,-1078682340,1041505996,-1115456886,1031365710)+W(5,-1105318511,1065783254,-1094955795,-1104546945)+W(6,-1130014725,-1121052824,1032279133,1033387493)+W(7,-1114814318,-1114466677,-1134763238,1037262635)+W(8,-1129541437,1024758296,994121897,-1115137122)+W(9,1020936831,-1129095405,1028982810,-1141733133)+W(10,-1126300988,1007094454,1030713030,1030934712)+W(11,969324748,973320358,-1148320949,-1122716507);WS(1033221560,1063777383);
sum1=W(0,1019126833,-1112638616,1057738402,-1088696201)+W(1,1044063732,-1130166589,1022703059,-1107233655)+W(2,1049316970,-1093677291,1018619290,-1127677637)+W(3,1034317754,-1107419652,1057780266,-1091493000)+W(4,1042363102,-1141893947,-1141147507,1017313945)+W(5,1039925560,-1105678958,-1123751101,-1141892011)+W(6,1023815261,1030431247,-1101232178,1054033952)+W(7,-1103422471,1028589441,-1145478905,1043218964)+W(8,-1097249286,1050643572,-1099574259,1032480102)+W(9,-1139797991,1030899327,-1105363093,1039373871)+W(10,-1109462943,1000558881,1017044691,1042038278)+W(11,-1097041200,1044902925,-1143343447,-1115509735);sum2=W(0,-1130982538,-1106875761,1056618334,1055977286)+W(1,-1102508839,1020425242,1021127838,1011019608)+W(2,1055137831,1058761027,-1115387544,1013848532)+W(3,1013698904,1024572751,1048771047,-1103617496)+W(4,-1128394642,1016018634,-1227267307,1039986653)+W(5,-1073860127,-1072531400,1043687089,-1112657573)+W(6,-1180063220,-1113103478,-1108123535,1052255088)+W(7,-1126700500,1035781641,-1130392938,-1104759550)+W(8,1059126644,1063802283,-1109991236,-1125248586)+W(9,-1129014326,1035543741,1045481337,1048895081)+W(10,1031917163,-1126407949,1032270489,-1129087757)+W(11,1042704754,1016319978,-1121934766,1030839801);WS(-1091503470,-1126838795);
sum1=W(0,-1124121237,-1134568843,1047693172,-1109412515)+W(1,-1129997061,1024589216,-1113414670,-1126036384)+W(2,1049117760,-1103447906,1034526751,-1113770234)+W(3,1028321829,1033159265,-1105247938,-1096437464)+W(4,-1143270742,1036105485,-1111356688,1037814911)+W(5,1058889082,-1098797565,1022658271,-1114645460)+W(6,1026686479,1031580097,1012762455,-1104719461)+W(7,-1109175079,1023714995,-1121133649,1040854417)+W(8,-1120516448,-1106636212,1042645116,-1138248951)+W(9,-1120913068,-1106928812,1049438209,-1129886751)+W(10,-1104071908,-1132081196,-1126384695,1027944427)+W(11,1040171928,-1106734009,1012750451,-1145462266);sum2=W(0,-1121971015,1025966975,-1127561691,1032121603)+W(1,-1118316871,-1147835451,-1109269766,1042653975)+W(2,1038662008,-1104797770,1018661176,1023052754)+W(3,-1096046215,1058579369,-1095336395,1041625968)+W(4,-1131103951,-1129857431,-1096349825,1055073186)+W(5,-1156170871,-1098327149,1035437895,-1114991229)+W(6,-1104467071,1043843774,1054347264,-1090818470)+W(7,1042639369,1011784142,-1105457821,1043492169)+W(8,-1116732629,1028261711,-1115472379,-1157273063)+W(9,-1114558576,-1138844670,1043300107,-1117277405)+W(10,-1115061521,1024244091,-1113812495,1035958317)+W(11,1025184897,-1130419167,-1130646919,-1148362739);WS(1065968028,1020949470);
sum1=W(0,1032158503,1043191673,1050691771,-1089572661)+W(1,983294118,1033006978,1018701500,1020082981)+W(2,1043953282,-1139338281,1041437600,-1139648989)+W(3,1028916776,999481917,1047062836,-1091936976)+W(4,1042367115,1033705422,1031923218,1033906881)+W(5,1032996498,-1081715803,1040306653,-1132542121)+W(6,-1143490705,-1123072324,1057457238,-1087112685)+W(7,1019100064,-1138694873,1005807263,1012896153)+W(8,1057445286,-1088032573,-1123572193,1033839136)+W(9,1028568398,1015001550,1051530049,-1100585253)+W(10,1039280729,1027376729,1026731038,1035245559)+W(11,1057446979,-1095410205,-1104642968,1015844228);sum2=W(0,-1107158830,-1098284578,1059620359,1059101624)+W(1,-1080819081,1041045600,-1114179967,1050997929)+W(2,-1120628180,-1084072333,1055292451,1041809552)+W(3,-1106205598,1032837846,1056621385,1033838752)+W(4,-1084530179,-1150759871,-1112529879,-1138556160)+W(5,1064698181,1049137220,-1118657190,1036987884)+W(6,1036191348,-1103494095,1049117565,-1100194061)+W(7,1035375516,1040790470,1045048740,1033058370)+W(8,-1087565422,-1096659207,1055648971,-1098721116)+W(9,-1112261511,-1109765233,1050635491,1042760064)+W(10,-1101810418,1028926760,1045813672,1040601336)+W(11,-1087363324,-1087988644,1059720072,-1118399816);WS(-1079370588,-1069938997);
sum1=W(0,-1107111607,1024046068,1034755057,-1106911318)+W(1,1032333322,-1122522177,1031876694,1040468568)+W(2,1048995971,-1106422470,1043602212,-1133546645)+W(3,-1108546779,-1110778478,1044693184,-1092550445)+W(4,-1124221431,-1123999146,1007409349,1041967908)+W(5,1056322870,-1089848952,1044063648,-1129245296)+W(6,-1119937056,1037532265,992363881,-1115839591)+W(7,-1137125241,-1121719236,-1110402417,1027170100)+W(8,-1123931633,-1098485404,1015794334,1009488187)+W(9,1034313646,1028424065,1041273350,1027494176)+W(10,1038675968,-1146748727,-1115195974,1030920188)+W(11,1034999584,-1101830589,1024639630,-1115284904);sum2=W(0,-1116010697,1044972838,-1107525170,1025111869)+W(1,-1115770744,1027404867,1039856206,-1094195694)+W(2,1054041965,-1105218154,1021276689,-1122132060)+W(3,1025692273,1041658757,-1095593913,1047241736)+W(4,-1113081166,1036997767,1047723216,-1090167008)+W(5,1054432792,-1103340827,1030984707,-1109230755)+W(6,1054500142,-1087657974,1048962216,-1105033641)+W(7,1026520309,1000189578,1045538686,-1114739465)+W(8,-1099510609,1043141319,1008623973,949401483)+W(9,1020883249,-1103808398,1041852115,-1104502432)+W(10,1031142833,-1121181330,1037455508,1025495534)+W(11,-1112321007,1020729805,1034321699,989367833);WS(1051966318,-1113875142);
sum1=W(0,1035883793,1040145278,1051696565,-1091560996)+W(1,-1133003627,-1126824689,-1111332346,-1135399329)+W(2,1051177307,-1096861164,-1117751383,1039745286)+W(3,1045917727,1017502534,1054251573,-1091248610)+W(4,-1178468754,1020593891,1006041029,-1096989371)+W(5,1061428120,-1087158964,-1126263439,1008594943)+W(6,-1129901007,1043615094,1037934795,-1098884432)+W(7,-1106662601,1037849734,1042663274,1025318012)+W(8,1050890887,-1096301045,1017933485,1035118155)+W(9,-1119690564,-1113005508,1046007992,-1093706893)+W(10,1038615540,-1114145271,1014471632,1043398529)+W(11,1049249377,-1093100168,-1116546293,1028529816);sum2=W(0,-1120038729,995641288,1035481768,1011267102)+W(1,1042749492,1026093812,1032134121,1034430176)+W(2,-1099098436,-1099374838,1055985885,-1113501317)+W(3,-1112337284,1011533369,960227969,1055781369)+W(4,1067101038,-1095011910,1014623636,1032554184)+W(5,-1122840036,1046041384,1069533386,-1086401299)+W(6,1015804972,-1114631943,-1123247827,1055178264)+W(7,1065618150,-1079450114,-1111055788,1037430467)+W(8,-1115890560,-1124103196,1058921177,-1075689828)+W(9,1025605092,1022278663,1022436109,1039303021)+W(10,-1106092627,-1082339747,-1118260382,1020696197)+W(11,1010081074,-1116158530,-1118372702,-1095588850);WS(-1087762743,-1114043214);
sum1=W(0,1028903325,1040067739,1045936105,-1095653187)+W(1,-1122706133,1029496147,-1111481047,981566559)+W(2,1050679259,-1096161947,1026181394,-1149217596)+W(3,1010874850,1032756947,1052053924,-1090950614)+W(4,1034645023,-1132850610,-1117223539,-1130847267)+W(5,1055533279,-1084280212,1030922562,-1154701224)+W(6,-1114811697,-1123313460,1059392176,-1097768267)+W(7,1030340896,-1113406339,1027957028,-1113871531)+W(8,1053658934,1005713692,-1102292436,1020850850)+W(9,-1115120063,-1126050567,1039338221,-1120312930)+W(10,-1107839810,1017761874,1025677743,-1113266015)+W(11,1051823712,-1118568631,-1112577800,-1117302546);sum2=W(0,1001016005,-1150454109,1001531747,983352173)+W(1,-1106746798,-1157019725,-1125241033,-1111980552)+W(2,1031575403,-1103460210,1036252996,1023495862)+W(3,1018218852,1033028659,1016765132,-1103428024)+W(4,-1128273041,1033057508,-1111720092,1037513337)+W(5,-1085543392,-1076627395,1046375720,-1112606370)+W(6,1015413875,-1109924763,1053354837,1074369634)+W(7,1055587240,1019967806,-1140722987,-1144232926)+W(8,1054900052,1051272122,-1094917738,-1107285947)+W(9,-1138333196,-1117260807,1041131548,-1098379064)+W(10,-1106193524,1012881631,1010568725,-1113652225)+W(11,1045881209,-1098914955,-1098562564,1031041657);WS(-1090517687,-1095444575);
sum1=W(0,1025742446,1032739299,1054789967,-1095546301)+W(1,1033023507,1028563508,-1111454559,-1106175885)+W(2,1031326631,-1101847659,-1107099097,-1117676152)+W(3,1040962578,-1110724347,1052551894,-1090925684)+W(4,1036045063,1036888990,1035513890,-1118213794)+W(5,1059778428,-1089262225,1035395209,1007580971)+W(6,1025779251,-1103218657,1045793474,-1096439373)+W(7,-1101529212,949923192,1041617005,1040368314)+W(8,1051667296,-1099734269,1050132438,1037985265)+W(9,-1106922364,-1105137317,1040121301,-1104705805)+W(10,-1102593253,-1113513373,1024699903,1024907982)+W(11,1052247674,-1097282993,1016797696,1026673059);sum2=W(0,1052208474,-1095438834,1040952518,-1101013864)+W(1,1045777263,-1125550479,1035064858,-1104348375)+W(2,-1095663473,1048824145,-1099869349,-1127115193)+W(3,1064043431,-1079843968,1060639651,-1097227129)+W(4,1049789703,1024044553,1055780907,-1084432555)+W(5,1054823629,-1105218176,-1118379111,972648308)+W(6,1048070172,-1106077690,-1098542607,1048082838)+W(7,-1102784042,1021849499,1057138231,-1086965748)+W(8,1057295667,-1106201667,1043327775,1016298873)+W(9,-1100953655,1048708391,-1095587456,1042233875)+W(10,-1107731485,-1116706874,1042120650,-1106942577)+W(11,1035260440,-1136871967,1006771796,1030896448);WS(-1115614648,1042425791);
sum1=W(0,-1120207204,-1115327070,-1093340989,1053481388)+W(1,1030984860,-1113874973,-1124027509,1016926292)+W(2,-1096731140,1053311332,-1116407641,1010793530)+W(3,-1144413692,1038910502,-1096554678,1057006919)+W(4,1038600290,-1116271283,-1105701711,1037845356)+W(5,-1085064420,1049566369,1043585442,-1114795809)+W(6,1014568102,1042236823,-1100005974,1056376458)+W(7,1018535375,992031960,-1120774251,-1105850383)+W(8,-1098496607,1048579325,-1122768840,-1130485552)+W(9,1029691462,-1134596907,-1135406214,1042582346)+W(10,-1120431498,1029193328,-1119274774,-1117126533)+W(11,-1098152617,1043887136,1035562443,-1140222054);sum2=W(0,-1127240204,-1079712608,1066527571,1049757184)+W(1,-1122509441,-1120167031,1024332524,-1082891577)+W(2,1063276166,1025750476,-1127423195,976948665)+W(3,-1145474239,-1081879450,1065092416,1045572932)+W(4,-1127801782,-1123809997,-1111478947,1047818786)+W(5,1033988518,-1093152038,-1126799575,1030959654)+W(6,1029335642,1066272635,-1081647719,-1129453741)+W(7,1033523902,995040830,-1112394176,1064292926)+W(8,-1085935960,-1107360776,-1109456127,1026103880)+W(9,1042612281,1048742105,-1090025738,1042389166)+W(10,1029374360,-1116538748,-1152251822,1063028070)+W(11,-1088819358,-1095668919,-1163717821,1033003323);WS(1005558656,-1134386388);
return clamp(mstd0 + 5.0 * vsum / wsum * mstd1, 0.0, 1.0);
} // nnedi3
vec4 hook() {
vec4 ret = vec4(0.0);
vec4 samples[12];
samples[0][0] = HOOKED_texOff(vec2(-3.0, -2.0)).x;
samples[0][1] = HOOKED_texOff(vec2(-3.0, -1.0)).x;
samples[0][2] = HOOKED_texOff(vec2(-3.0, 0.0)).x;
samples[0][3] = HOOKED_texOff(vec2(-3.0, 1.0)).x;
samples[1][0] = HOOKED_texOff(vec2(-3.0, 2.0)).x;
samples[1][1] = HOOKED_texOff(vec2(-3.0, 3.0)).x;
samples[1][2] = HOOKED_texOff(vec2(-2.0, -2.0)).x;
samples[1][3] = HOOKED_texOff(vec2(-2.0, -1.0)).x;
samples[2][0] = HOOKED_texOff(vec2(-2.0, 0.0)).x;
samples[2][1] = HOOKED_texOff(vec2(-2.0, 1.0)).x;
samples[2][2] = HOOKED_texOff(vec2(-2.0, 2.0)).x;
samples[2][3] = HOOKED_texOff(vec2(-2.0, 3.0)).x;
samples[3][0] = HOOKED_texOff(vec2(-1.0, -2.0)).x;
samples[3][1] = HOOKED_texOff(vec2(-1.0, -1.0)).x;
samples[3][2] = HOOKED_texOff(vec2(-1.0, 0.0)).x;
samples[3][3] = HOOKED_texOff(vec2(-1.0, 1.0)).x;
samples[4][0] = HOOKED_texOff(vec2(-1.0, 2.0)).x;
samples[4][1] = HOOKED_texOff(vec2(-1.0, 3.0)).x;
samples[4][2] = HOOKED_texOff(vec2(0.0, -2.0)).x;
samples[4][3] = HOOKED_texOff(vec2(0.0, -1.0)).x;
samples[5][0] = HOOKED_texOff(vec2(0.0, 0.0)).x;
samples[5][1] = HOOKED_texOff(vec2(0.0, 1.0)).x;
samples[5][2] = HOOKED_texOff(vec2(0.0, 2.0)).x;
samples[5][3] = HOOKED_texOff(vec2(0.0, 3.0)).x;
samples[6][0] = HOOKED_texOff(vec2(1.0, -2.0)).x;
samples[6][1] = HOOKED_texOff(vec2(1.0, -1.0)).x;
samples[6][2] = HOOKED_texOff(vec2(1.0, 0.0)).x;
samples[6][3] = HOOKED_texOff(vec2(1.0, 1.0)).x;
samples[7][0] = HOOKED_texOff(vec2(1.0, 2.0)).x;
samples[7][1] = HOOKED_texOff(vec2(1.0, 3.0)).x;
samples[7][2] = HOOKED_texOff(vec2(2.0, -2.0)).x;
samples[7][3] = HOOKED_texOff(vec2(2.0, -1.0)).x;
samples[8][0] = HOOKED_texOff(vec2(2.0, 0.0)).x;
samples[8][1] = HOOKED_texOff(vec2(2.0, 1.0)).x;
samples[8][2] = HOOKED_texOff(vec2(2.0, 2.0)).x;
samples[8][3] = HOOKED_texOff(vec2(2.0, 3.0)).x;
samples[9][0] = HOOKED_texOff(vec2(3.0, -2.0)).x;
samples[9][1] = HOOKED_texOff(vec2(3.0, -1.0)).x;
samples[9][2] = HOOKED_texOff(vec2(3.0, 0.0)).x;
samples[9][3] = HOOKED_texOff(vec2(3.0, 1.0)).x;
samples[10][0] = HOOKED_texOff(vec2(3.0, 2.0)).x;
samples[10][1] = HOOKED_texOff(vec2(3.0, 3.0)).x;
samples[10][2] = HOOKED_texOff(vec2(4.0, -2.0)).x;
samples[10][3] = HOOKED_texOff(vec2(4.0, -1.0)).x;
samples[11][0] = HOOKED_texOff(vec2(4.0, 0.0)).x;
samples[11][1] = HOOKED_texOff(vec2(4.0, 1.0)).x;
samples[11][2] = HOOKED_texOff(vec2(4.0, 2.0)).x;
samples[11][3] = HOOKED_texOff(vec2(4.0, 3.0)).x;
ret[0] = nnedi3(samples);
return ret;
} // hook
//!DESC NNEDI3 (combine_y, nns128, win8x6)
//!HOOK LUMA
//!BIND HOOKED
//!BIND nnedi3_int
//!HEIGHT 2 HOOKED.h *
//!OFFSET 0.000000 -0.500000
//!WHEN HOOKED.h OUTPUT.h / 0.707106 <
vec4 hook() {
vec2 dir = fract(HOOKED_pos * HOOKED_size) - 0.5;
if (dir.y < 0.0) {
return HOOKED_texOff(-dir);
} else {
return nnedi3_int_texOff(-dir);
}
}
//!DESC NNEDI3 (double_x, nns128, win8x6)
//!HOOK LUMA
//!BIND HOOKED
//!SAVE nnedi3_int
//!WHEN HOOKED.w OUTPUT.w / 0.707106 <
float nnedi3(vec4 samples[12]) {
float sum = 0.0, sumsq = 0.0;
for (int i = 0; i < 12; i++) {
sum += dot(samples[i], vec4(1.0));
sumsq += dot(samples[i], samples[i]);
}
float mstd0 = sum / 48.0;
float mstd1 = sumsq / 48.0 - mstd0 * mstd0;
float mstd2 = mix(0.0, inversesqrt(mstd1), mstd1 >= 1.192092896e-7);
mstd1 *= mstd2;
float vsum = 0.0, wsum = 0.0, sum1, sum2;
#define T(x) intBitsToFloat(x)
#define W(i,w0,w1,w2,w3) dot(samples[i],vec4(T(w0),T(w1),T(w2),T(w3)))
#define WS(w0,w1) sum1 = exp(sum1 * mstd2 + T(w0)); sum2 = sum2 * mstd2 + T(w1); wsum += sum1; vsum += sum1*(sum2/(1.0+abs(sum2)));
sum1=W(0,-1138315554,-1151849881,-1130100551,-1139428474)+W(1,-1115186183,1024054031,-1123693866,-1134121575)+W(2,1017020226,-1120184142,-1113913797,-1137890034)+W(3,-1105019328,1030136834,-1119041199,1009291685)+W(4,1054031418,1052033568,1057266643,1050615732)+W(5,1060278709,1051842684,1049323809,1050624038)+W(6,-1098719688,-1094289569,-1094215666,-1084764287)+W(7,-1093503073,-1122358095,-1104408867,-1101060057)+W(8,-1110814528,1026313661,-1136459684,1037955767)+W(9,-1125342359,-1118592012,-1141919603,-1117980571)+W(10,-1144117236,1029415347,-1122295896,-1158862002)+W(11,-1115484761,1027215228,-1148196514,-1131405947);sum2=W(0,1011608699,1021515189,-1133688887,-1109181339)+W(1,1032724543,-1120491130,997621755,1020760181)+W(2,-1112090344,1032910614,-1111235489,1050015381)+W(3,1041065097,-1106592726,-1112521193,1032648390)+W(4,1035039469,-1112298310,1068933685,1079505355)+W(5,-1082386736,-1067816278,-1094139890,-1123411157)+W(6,1018826733,-1103038162,1035541017,-1096237270)+W(7,1051919390,-1101133158,-1120644044,1029904493)+W(8,-1130070276,1030536589,1002846254,1047170650)+W(9,1012706615,-1108914015,1011888367,-1115273665)+W(10,-1126912052,1027816837,-1119314146,-1132054353)+W(11,1004049262,1017068057,1020965593,1017829425);WS(1038714296,1044827315);
sum1=W(0,1008773074,1000000044,-1125197471,-1155069097)+W(1,-1128457331,-1147450330,-1142834606,-1131672268)+W(2,-1137155124,-1139148008,-1110040196,-1114984084)+W(3,-1117135435,1038803511,-1110360429,1046900069)+W(4,1058392080,1051571686,1058043460,1059856605)+W(5,1053821137,1050763009,1046500044,1049636107)+W(6,-1100726684,-1106613964,-1093356205,-1087655353)+W(7,-1093486798,-1088451200,-1109846237,-1093848946)+W(8,-1097060854,1034039029,-1112523275,-1137125990)+W(9,-1134047198,-1131894321,1021083253,-1108292068)+W(10,1034472653,-1136883834,1033872898,-1122772178)+W(11,-1125370043,1027534056,-1126166913,1020331091);sum2=W(0,-1123255245,982126402,1020504368,1036976721)+W(1,-1113656730,-1157600449,-1129338356,1032297389)+W(2,-1116671780,-1111301077,1011773496,-1102830064)+W(3,1031803093,1045043848,1026389126,1022832316)+W(4,1046375724,1053914306,1013495848,-1106352300)+W(5,-1103067006,-1094946683,1036977493,-1098417421)+W(6,1061532718,1066141278,1064263836,1055449836)+W(7,-1076699072,-1085904680,-1099822488,-1092845936)+W(8,998291536,1041257894,1023442398,-1101238723)+W(9,-1103198508,1048924521,-1109968297,1053328593)+W(10,-1094346395,-1108898352,1023084860,1037821947)+W(11,-1123876988,1041381351,-1109391389,1023206676);WS(-1087781687,-1134030789);
sum1=W(0,1028179002,1037437606,-1106850597,1040743460)+W(1,-1123964671,-1122790273,1036030878,1027799500)+W(2,-1113846601,-1129634048,1045066941,-1108576055)+W(3,1030205873,-1117192467,1027547489,-1110675758)+W(4,-1090428884,-1098510574,-1095161561,-1094444002)+W(5,-1095134094,-1098192922,-1101066654,-1095206484)+W(6,1056064759,1049319247,1048732210,1054487227)+W(7,1044300425,1055338520,1034894336,1053272331)+W(8,-1116809458,-1105760812,1007721067,1050640540)+W(9,1040160031,-1106372902,-1109703824,-1138309939)+W(10,-1123784128,1016685513,-1105661778,1048222150)+W(11,-1110013906,1033480951,-1112122819,1033810456);sum2=W(0,1023697539,-1134698244,1018187921,1024534132)+W(1,-1145140771,-1142625275,-1141296989,1007645751)+W(2,-1119401943,1013558867,-1119659280,1038666215)+W(3,-1120396841,1035154544,-1131590401,1021197862)+W(4,1010071413,-1112961274,1019163177,-1097296472)+W(5,1033089456,-1105855221,-1156341795,-1120357988)+W(6,1025267901,1033970227,1048742053,1082848284)+W(7,1060700209,-1115995862,1035612397,-1123714371)+W(8,988018625,-1116217767,-1103390691,-1064739318)+W(9,-1086947071,1042818438,-1109434149,1029308077)+W(10,-1122026299,1005039212,-1115786374,1042066180)+W(11,1017803659,-1115628759,-1150181080,1011442501);WS(1060770743,-1108197568);
sum1=W(0,1016886775,-1160198547,1015246637,-1139668038)+W(1,1034731136,1019206597,-1123983389,-1115649126)+W(2,1029069588,1038531041,1041390628,1022402527)+W(3,-1103954605,-1112398730,-1117714338,1039312430)+W(4,-1095627128,-1096395039,-1086831062,1057717017)+W(5,1056693263,1053908426,1043180606,1038174992)+W(6,1046558478,1048524254,1058409012,1050284011)+W(7,-1083755424,-1092005688,-1101033824,-1131529899)+W(8,-1146067869,-1097778094,-1098986327,-1110221104)+W(9,1042951984,1037994808,1025216609,1000398449)+W(10,1009558662,1033422755,1033638277,1029754521)+W(11,-1119102757,-1130383710,-1114155844,-1129441697);sum2=W(0,-1104188915,1026676440,-1122447814,1024214572)+W(1,1036156927,1039804037,-1140508998,1023379743)+W(2,1041755532,-1099902739,1020538503,-1096783078)+W(3,-1094671115,-1096595186,-1108992818,1023478108)+W(4,1039915367,1048552390,-1105911641,1068731351)+W(5,-1096057439,-1091471401,1033306823,-1096750685)+W(6,1028942726,-1105392496,-1106738713,1066518668)+W(7,-1122053390,-1123632409,1032650381,-1109607147)+W(8,1030445090,-1104867005,-1106850996,-1126700225)+W(9,1025639958,-1113480650,-1115144981,1031767054)+W(10,-1104654601,1033528857,989961401,-1133955554)+W(11,-1153726297,1032072745,-1128986161,1023561226);WS(-1105940700,1068951582);
sum1=W(0,1000087558,1035444041,1016288952,1033866603)+W(1,1023501510,1030903912,-1121882082,-1139243976)+W(2,-1126610867,-1119652358,-1105308514,1025089333)+W(3,-1101500686,1024487034,1036868116,-1137536646)+W(4,1040363554,1048983991,-1129232537,1043404182)+W(5,1050470779,1032787659,1042688239,1051055933)+W(6,-1103531583,-1095183320,1035540828,-1091977028)+W(7,-1098956255,1016827662,-1107477027,-1111432589)+W(8,-1126498674,1041424541,-1116171169,-1108874003)+W(9,-1107291841,-1115835365,1038297635,-1101253029)+W(10,1033586531,1011542187,1018737568,1021129404)+W(11,1033496245,1023594100,1015384473,1034920923);sum2=W(0,-1123978268,-1122059260,-1123592170,1036141312)+W(1,-1111710804,-1127043568,1040694361,-1120657957)+W(2,-1102554320,1044079872,-1093658955,-1094337979)+W(3,1045282706,-1139302445,983065168,-1105233712)+W(4,1043643239,-1111536011,1042723115,1067907418)+W(5,-1118927202,1035940631,1016057395,1027935282)+W(6,1026913323,1056944699,-1093217948,1064662115)+W(7,-1091166584,-1092135065,1041761864,-1104693620)+W(8,1031431539,1037617295,-1103624535,-1090550375)+W(9,-1119161360,-1112133073,1014979737,-1106943303)+W(10,-1112242992,1005844362,-1101249260,1042545272)+W(11,-1111294278,1025042022,1026789959,-1114223884);WS(1061289911,-1074625008);
sum1=W(0,-1118986355,1042690449,1022020251,1032007652)+W(1,1040686510,-1108674269,-1123719572,1033202498)+W(2,1035013222,-1110099132,1048074309,-1101544522)+W(3,-1102744618,1043103143,-1099009366,1038471242)+W(4,1058027688,1047068971,1036127926,1058005973)+W(5,1048070472,1057593649,1043345580,1055515931)+W(6,-1087592511,1013931199,-1088015817,-1099315493)+W(7,-1091144488,-1088950448,1033106140,-1090129177)+W(8,-1107213995,1008030621,1042727509,-1093058723)+W(9,1042938237,1002612916,-1110941900,-1113377491)+W(10,1048036382,-1106703359,1044183504,1029001296)+W(11,-1106075703,1048869669,-1107279296,1042195418);sum2=W(0,1034897388,-1104469346,-1104312342,1033162274)+W(1,1001538203,-1119055011,1036889309,-1122390571)+W(2,1047600068,1074182899,1080728354,1077196082)+W(3,1039546617,-1121476275,-1113609974,-1124909535)+W(4,-1092005485,-1074957140,-1067981267,-1071410100)+W(5,-1101189403,1042351425,-1113906708,1037135096)+W(6,1032211690,-1124075063,-1100127529,-1093339345)+W(7,1036352485,1008083901,1032631324,1002134635)+W(8,1046053217,981988140,1036844207,1030504779)+W(9,1025223671,-1101604075,1034478190,-1113103836)+W(10,-1111289614,990179414,-1123826485,-1109598746)+W(11,1036519612,-1146561467,1017678167,-1132393287);WS(-1106894556,1030995446);
sum1=W(0,1025589699,-1123387156,1028556318,-1139656804)+W(1,980812294,-1128131860,-1137342353,1017797929)+W(2,1033805806,1025291593,-1127599047,-1105750398)+W(3,-1104274718,-1117867836,1018769427,-1114245906)+W(4,1034528997,1054610112,1039781117,1065523109)+W(5,1054896451,1045458038,1040199808,1047692618)+W(6,-1098701288,-1096105008,-1091536615,-1090836572)+W(7,-1097995702,1039238949,-1110811780,1001735913)+W(8,-1119393787,1037953340,-1120434724,-1103173850)+W(9,-1111869411,-1104116474,-1129786002,-1106977725)+W(10,1027839817,-1123546765,1027349522,1022652480)+W(11,-1135075504,-1125284461,-1152753902,-1131064048);sum2=W(0,1030581609,-1110091164,1024868796,-1124528958)+W(1,-1175372351,1022252519,-1123141270,-1123316826)+W(2,-1096073996,-1132437108,1051933742,1042406776)+W(3,-1117745155,-1117509823,-1110977956,1029056744)+W(4,-1104952058,1031847146,1077840619,-1071401906)+W(5,-1108532142,-1107574374,1034777920,1034383482)+W(6,1036583621,1040176294,1056082302,-1080138625)+W(7,1039833458,1041695761,-1119756119,977900031)+W(8,1006888722,-1120421639,-1114613612,1012484405)+W(9,1044393926,-1112420268,1028893644,1027961212)+W(10,1023568502,-1124563800,1026684617,-1114165836)+W(11,-1139194300,1023135287,-1122696127,1034470668);WS(-1094248046,1034739186);
sum1=W(0,-1121641997,-1148807918,-1119896808,-1118546659)+W(1,-1117202258,1027770003,-1121511758,-1114510703)+W(2,1043421097,-1114752489,1040593858,1043491504)+W(3,1033892386,1035924243,1032482905,1031829015)+W(4,-1090462057,-1097763033,-1089339622,-1089142502)+W(5,-1089696734,-1098379668,-1096843609,-1089945727)+W(6,1057979744,1045790578,1054873978,1054724534)+W(7,1056858543,1046524773,1049846778,1056083605)+W(8,1042504017,-1105205440,1029920941,-1114903193)+W(9,-1102740772,1042806872,-1103488653,1031492831)+W(10,1019430629,-1115505835,1008619887,1038945077)+W(11,1025474934,-1148381698,1017864241,1029503362);sum2=W(0,1032629114,1024571549,-1123705993,-1120833813)+W(1,1031286487,-1113289848,1033808184,1035572024)+W(2,-1111104155,1022922994,1036988882,-1104365480)+W(3,1038064580,-1119955010,1018164430,-1144675449)+W(4,-1111175727,1047799465,-1121840686,-1098359864)+W(5,1008715668,-1115327032,1042276675,-1114533548)+W(6,1069180600,1065968459,1066031139,1064223912)+W(7,1062275672,1060225053,1060364945,1057151625)+W(8,-1092657949,-1106624299,1026540087,1044325339)+W(9,1048614780,-1117772151,-1105153406,-1103516228)+W(10,-1081878912,-1085703668,-1080884055,-1079207816)+W(11,-1083548865,-1085294305,-1090372695,-1100806033);WS(-1095016302,1049780935);
sum1=W(0,-1140214663,1008440267,-1137823987,1035221148)+W(1,1007510683,1029727784,-1142229143,1025812851)+W(2,1050711943,-1110792724,1036012635,-1104496021)+W(3,-1145733059,-1109552317,-1115585956,-1142816275)+W(4,1044505338,1051364259,1051977632,1058946996)+W(5,1056967247,1057598839,1050931556,1058283380)+W(6,-1092537964,-1101785640,-1091742968,-1090015552)+W(7,-1090979415,-1088424934,-1096995861,-1095074239)+W(8,-1110639373,1026645590,-1130979716,-1106527650)+W(9,-1146016549,1015167915,1009720606,-1105047309)+W(10,1025322472,1024485132,1018037601,1032762847)+W(11,1010918699,1027572437,-1127055707,1011865435);sum2=W(0,1040969494,1036141535,-1136101349,1015318832)+W(1,-1112220931,-1111621316,1042180910,-1115487487)+W(2,-1087779211,1033693595,-1096934819,1042126031)+W(3,1036377831,1046621966,-1129542795,1052735842)+W(4,1056604611,-1095617275,1057610078,1059711341)+W(5,-1098744628,-1088974739,-1112239718,-1089093989)+W(6,1059045592,1037950807,1059474718,1079595174)+W(7,1065421414,-1079659864,-1077353318,-1076641223)+W(8,-1085730308,1051875566,-1104408796,1011257519)+W(9,-1102027272,-1097874228,-1123714793,-1089345613)+W(10,1035668628,-1110274633,-1106464684,-1106179801)+W(11,1035078820,1045400280,-1122902412,1057832501);WS(-1081166556,-1096725839);
sum1=W(0,-1146977357,-1130642485,1032268722,-1111253552)+W(1,1024786511,1021187873,-1115200917,1021141494)+W(2,-1114510289,-1119269199,1038356317,-1095921640)+W(3,1038758688,-1102108905,-1117501552,1024092394)+W(4,1050030946,1045921361,1039889859,1057711094)+W(5,1053078718,1045805544,1042557010,1052716334)+W(6,-1102646113,-1098664649,1027769520,-1089074675)+W(7,-1098156409,-1106011300,-1102728052,-1107570834)+W(8,-1113153825,992772066,1041426283,-1107182252)+W(9,1043642083,-1131324475,-1148235644,-1153593794)+W(10,-1114582784,1022415207,1025422681,-1098886685)+W(11,1036466489,-1129952762,-1133449046,1012650491);sum2=W(0,-1154116071,-1120032365,1033357218,-1132933754)+W(1,-1165588207,1029048100,-1115144648,1020455541)+W(2,1032309947,1017679770,-1118521489,1020082264)+W(3,-1122971142,1015972752,1021714009,-1134334294)+W(4,-1123962703,1025906643,1007375557,-1114291801)+W(5,-1114360955,1031540723,-1136421576,1014310369)+W(6,-1133231158,-1134787122,-1096414395,1064675801)+W(7,-1097709607,1040110606,-1121524587,-1119507729)+W(8,-1128886461,-1108727038,1020492423,-1080568363)+W(9,-1108104258,-1112615988,-1111963053,1028363593)+W(10,1035599863,1039832482,1035524914,1059399952)+W(11,1040378905,1024318985,1036458899,-1122706022);WS(1058284215,-1100256461);
sum1=W(0,-1136333391,977549609,1023954799,1032458293)+W(1,-1131855793,-1132003829,1014651348,1007647892)+W(2,1042064203,1017583666,-1103445177,1003134525)+W(3,1030077610,1044505715,1034368605,-1109681210)+W(4,1048792691,1037147366,1061193316,1055543997)+W(5,-1089393894,-1102389770,-1126089633,1030932473)+W(6,-1108621703,-1098054746,-1084539629,-1105743629)+W(7,1061657482,-1111653453,1032593324,-1134741175)+W(8,-1107171315,1036542212,1001865121,-1113492892)+W(9,-1095280499,1000070140,-1124982771,1012906393)+W(10,1009105958,-1118222526,1005641493,1001049989)+W(11,-1141919717,1031530183,957669220,-1123915241);sum2=W(0,1025749667,-1112523495,1034709000,1021531102)+W(1,-1129693762,1006685387,-1119027428,-1106459716)+W(2,1018718450,1033569638,-1099586256,-1096388774)+W(3,-1109846828,-1112379914,1008781387,1045287677)+W(4,-1104497483,-1111912018,-1087345020,1061077725)+W(5,1049253485,-1117456886,1038233914,-1135366091)+W(6,-1109821356,1026676021,-1092985416,1065372034)+W(7,1048850468,-1106255761,1013968523,-1138431127)+W(8,1032840840,-1114119398,1018773778,-1129773592)+W(9,-1101038787,1043058397,-1113511705,1037121278)+W(10,1009497507,1017944258,1033599708,-1109427758)+W(11,1029395381,-1106769492,1020319838,-1113647178);WS(1048665454,1062854025);
sum1=W(0,1004974300,1032679478,1041394910,1026224498)+W(1,-1128844481,-1137588617,-1115578718,-1128306202)+W(2,-1140401360,-1099989608,-1108003052,-1103518244)+W(3,1044968661,1040271757,1031459778,-1114933822)+W(4,1040482153,1038119146,1050737065,1054936910)+W(5,-1084409495,-1099872844,-1107158134,1038726400)+W(6,-1107105990,-1094089019,-1084721726,1054691719)+W(7,1057517320,1035416977,1033669936,1032390235)+W(8,-1113947114,1043046180,1044891839,1025601857)+W(9,1022006333,1017193535,1025595521,1023203548)+W(10,1004764812,-1132148363,1022372181,-1113753404)+W(11,1033354242,-1131287582,-1112957780,1012659010);sum2=W(0,-1120028750,-1137390044,1031876652,-1112211314)+W(1,1041988042,-1105672202,1032816067,-1122489809)+W(2,-1116919239,1034599590,-1110926857,1037510574)+W(3,-1091078601,1052042083,-1102117757,1043447553)+W(4,1026537129,-1105861815,-1114848017,1054207178)+W(5,1059021754,-1104155840,1047757772,-1115066040)+W(6,1032246372,-1095438265,-1093245727,1062401065)+W(7,-1115099719,-1100501338,-1112097107,-1102195598)+W(8,1047938064,1022176478,-1093210017,-1118385188)+W(9,-1104427658,1013766280,1027075631,1027463789)+W(10,-1102851233,-1129352893,1046245506,-1106645860)+W(11,1043294706,1016480352,-1113418727,1030659187);WS(1046819548,-1112403026);
sum1=W(0,1043575156,-1118831073,1028002987,1025124390)+W(1,1023377962,1034880715,-1125071779,-1144027915)+W(2,-1096536373,1040283909,1049135339,-1115136450)+W(3,-1127238030,1042113706,-1124049974,1045174012)+W(4,1028458839,1047473762,-1083606160,1052252597)+W(5,1054448495,-1106041242,1031800519,-1138801364)+W(6,1042563315,-1108795847,1040849058,1045384892)+W(7,-1081137782,1040945110,1026387221,-1122981994)+W(8,-1147631681,-1115473730,1015994849,-1102431101)+W(9,1046487189,1026652836,-1096718751,1030118403)+W(10,-1134760216,1037371629,1036578576,-1147407721)+W(11,1029054905,-1113175874,1032040846,-1121286085);sum2=W(0,-1116472244,1025044698,-1123391126,1003069456)+W(1,-1129719684,-1110477199,1023677849,989635105)+W(2,1036928405,-1122373594,-1111538981,-1111848203)+W(3,1027481573,990411281,-1136822924,-1136314996)+W(4,1035706238,1040619830,1046111644,1044878634)+W(5,1017226015,1030695866,-1114454329,1007553654)+W(6,-1121318128,-1104861162,1038958235,1050016986)+W(7,1040124875,-1116142138,-1113301330,-1112411005)+W(8,-1114868876,1034962287,1034772140,-1113883437)+W(9,-1114732111,-1102609372,1029458562,-1109652887)+W(10,1033058067,-1110745183,-1130393948,1005454840)+W(11,-1105702279,1029172520,-1112847239,-1150621057);WS(1054158702,-1098491196);
sum1=W(0,-1129450472,983582877,-1121209423,-1121678922)+W(1,1031290553,-1119715259,1032360987,-1115265987)+W(2,-1119237644,1026235385,1037197666,1031464488)+W(3,-1099798307,-1102325483,-1107157175,1036899466)+W(4,-1101713087,-1098493798,-1083899440,-1103778771)+W(5,1057005120,1046824098,1037130136,1011053924)+W(6,1033589815,1048228620,1060260620,1056756834)+W(7,-1093716116,-1102446942,-1111054172,-1132207900)+W(8,1034513750,-1123359016,-1103037013,-1122982297)+W(9,1049393023,1028221304,1041637742,992781927)+W(10,1023147092,-1173092218,1035595873,1020058530)+W(11,-1117980637,-1124996559,-1115548960,995105423);sum2=W(0,1022318336,-1115650269,1023537352,-1109544964)+W(1,-1104797311,1016525394,1034835508,1033208955)+W(2,1013555797,1016103802,1041650416,1052577828)+W(3,-1105646271,-1089308865,-1093424353,-1123233885)+W(4,-1107715656,-1119261847,1043696631,-1093802466)+W(5,1070961498,-1101461419,-1129647390,-1103638866)+W(6,1023151297,-1114491928,1042399799,-1088107917)+W(7,1046742027,1041655381,1027817568,-1123805293)+W(8,1033284778,-1130031974,-1108010060,1027122983)+W(9,-1123089325,1023301191,1010592861,1027104379)+W(10,-1133592549,-1142562170,-1132296546,1012286637)+W(11,-1129646858,-1123666701,1020078242,1017326494);WS(-1098756718,1025257793);
sum1=W(0,-1170432841,992949730,1001883457,1015181254)+W(1,-1113865961,1025052052,-1142935155,1028407518)+W(2,1023803110,-1138344011,1026014126,-1121590721)+W(3,-1118191492,-1131017933,992699702,-1125677724)+W(4,-1090131561,-1107275570,-1096556254,-1096688477)+W(5,-1094031636,-1105028073,-1106433523,-1094260670)+W(6,1057699745,1040420307,1054103406,1044394251)+W(7,1054646511,1053702338,1018441892,1056434389)+W(8,-1119694405,-1117188674,-1115724526,1029634610)+W(9,-1140440641,-1105231572,1028218227,-1115106656)+W(10,1012926412,-1123369303,-1127845816,1035099253)+W(11,-1114907963,1041135600,-1110839852,1033590433);sum2=W(0,-1113857499,1017397942,994248048,-1107301692)+W(1,-1114604929,-1099171315,-1128156929,-1105825924)+W(2,1035336978,977119295,1058657166,1082282453)+W(3,1081592322,1057428850,1029982493,1050573738)+W(4,1003212424,-1169985407,-1086726098,-1067974855)+W(5,-1065596346,-1101606461,-1114706375,-1113547007)+W(6,1016146718,-1139136560,1029663775,-1088717558)+W(7,1032721198,-1109521003,1035913834,-1115579388)+W(8,-1124908942,-1127032094,-1128987279,1045162011)+W(9,-1132432620,1001306728,-1127893472,1022139202)+W(10,1007728744,1015257206,-1139895388,989071903)+W(11,-1115423533,1026551071,-1124574009,999865176);WS(1057488311,1032489366);
sum1=W(0,998859696,-1126361486,1028022609,-1139957040)+W(1,1015295094,-1122345661,-1126668079,-1129886863)+W(2,-1107316871,1034785118,-1114064513,1048520075)+W(3,-1112481238,-1154023155,-1133481329,-1108825451)+W(4,-1130375162,-1098594694,-1105098668,-1099155379)+W(5,-1109749909,-1112014022,-1114013594,-1116334683)+W(6,1045821468,1031878554,1057263754,-1127500588)+W(7,1049599048,1025402492,1034877470,1046739556)+W(8,1009430200,-1137835434,-1104540630,1033795278)+W(9,-1105774078,1046311438,-1109189150,-1119327433)+W(10,-1127874328,-1124885440,-1121514949,1026343507)+W(11,1007199100,-1119007402,1026086402,-1138298796);sum2=W(0,-1131728975,1035973522,1044679054,1057647035)+W(1,1029801795,-1120435503,1040526136,1001204178)+W(2,1036764889,-1115068573,-1096357732,-1081650015)+W(3,1008652352,1020148594,1019038058,-1125968836)+W(4,-1111227173,1022919798,-1128128484,1064645808)+W(5,-1094730608,1034184152,-1110501324,-1141167471)+W(6,-1128881737,1043114423,-1098903856,-1105946360)+W(7,-1121257166,-1122224678,1033879187,-1125677560)+W(8,1037242625,990889655,1034691185,997618289)+W(9,-1119761613,-1123774451,1017411026,1017460301)+W(10,-1122740141,-1130091274,-1126568042,1036162942)+W(11,-1145265129,1016517254,1025838030,-1121815648);WS(1059796919,-1120566973);
sum1=W(0,-1128913552,-1121363289,-1114223569,-1170089852)+W(1,1032486790,1007200827,1031548233,1025411673)+W(2,-1112300176,1042197939,1034918960,1019526904)+W(3,-1097594444,-1109654209,-1121876014,-1114258964)+W(4,-1105877684,-1097436160,-1084964393,1000497399)+W(5,1058860547,1031553246,1038828418,-1106885131)+W(6,1051198984,1044389601,1058261945,1057668526)+W(7,-1083919657,-1093305914,-1113158982,1024357474)+W(8,1031319296,-1156941767,-1115209492,1032065846)+W(9,1045243539,1041280427,1014469175,-1128319413)+W(10,-1128535084,1024751122,1025460631,1032881746)+W(11,1010383044,986576750,1034628234,1012703988);sum2=W(0,-1143612781,1024653023,1031492195,-1118229715)+W(1,1037055061,-1103747903,1027878177,-1120661119)+W(2,1030657759,-1114346787,-1115709916,-1122961088)+W(3,1023143173,1032102149,1035049663,-1115297076)+W(4,-1142189493,-1145631357,1041520845,1058735511)+W(5,-1123318690,-1113230658,-1107577516,1029140405)+W(6,-1116365956,-1122350618,-1109597137,1063925227)+W(7,-1097941231,-1096423541,1034348655,-1104473650)+W(8,-1108113093,-1120960689,-1100459142,-1102646250)+W(9,-1097541479,-1119600722,994779835,1048901284)+W(10,-1144957229,1013910379,1028619709,1003281301)+W(11,1040501280,1015718737,-1116733621,-1122107736);WS(1025862512,-1097886171);
sum1=W(0,1017995501,1028206791,-1115115241,1023900364)+W(1,973319892,1028215869,1033665516,1031994596)+W(2,1039868615,1039095646,1044724702,1040670187)+W(3,1036683863,-1105649212,1040757263,-1101644966)+W(4,-1084617440,-1095591910,-1088992852,-1089161581)+W(5,-1092805231,-1107053347,-1107160205,-1102281943)+W(6,1048852846,1046495341,1053236428,1054642003)+W(7,1050422468,1049220624,1039010398,1042256548)+W(8,1036255511,1032043925,974144948,1024473755)+W(9,-1132527589,-1120787802,1025750940,1034960116)+W(10,1003283810,1031081728,-1128580235,1033561578)+W(11,1012484477,-1126192084,1035723265,-1141688154);sum2=W(0,1017309480,-1115898040,1026950620,-1131938440)+W(1,-1120377052,-1147724576,-1108926548,-1120540424)+W(2,-1113384832,-1105498372,-1140340528,-1101077232)+W(3,-1114410560,1042402941,-1114542528,1040078450)+W(4,1051665642,1043260681,-1109716244,1039662810)+W(5,-1113565360,-1097796100,-1108348496,-1097463639)+W(6,-1106075829,1041703091,-1109231476,1049668212)+W(7,1032262130,1040746517,-1140600496,1048026467)+W(8,1041533127,-1122221676,1047102067,-1109791178)+W(9,1039963022,-1131969000,1032294606,-1107112902)+W(10,-1143916576,-1119502308,1032670038,-1130795288)+W(11,-1112068676,1031201932,-1108483346,1028500076);WS(1059594295,-1081462343);
sum1=W(0,1027153262,978268098,1020914066,1037283618)+W(1,1001487768,1024040629,-1121199663,1022356543)+W(2,1043504002,-1116748340,1039643767,1038369681)+W(3,1034058802,1040894970,-1111840522,1036921959)+W(4,1052804111,1047257898,1049749519,1054855273)+W(5,1047397560,1052275873,1039603542,1026848211)+W(6,-1087238767,-1102654539,-1086204143,-1088075529)+W(7,-1086503800,-1098202447,-1107277965,-1098696769)+W(8,1041162890,1038115889,1044063108,1037006730)+W(9,-1117492081,1024505810,995252542,1036480704)+W(10,1012415888,-1165722369,1033818911,1032180390)+W(11,991868273,1034352017,-1131707508,-1136594828);sum2=W(0,1028621181,-1110777341,1027102605,1030597213)+W(1,-1106396561,1041951037,-1110468651,1026771477)+W(2,-1120219585,-1127812186,-1121966109,-1109734497)+W(3,-1139970197,1005564394,1027913013,1021745754)+W(4,1035384087,-1126856730,1038893967,1046142043)+W(5,-1102581665,1024169581,-1119264521,1045072501)+W(6,1034472183,-1129759266,-1123472797,1054407172)+W(7,-1114873213,1049042812,-1104920828,-1117275361)+W(8,-1123130413,-1106344343,-1121376361,-1110811845)+W(9,-1147353578,1023037898,-1123538565,-1108801471)+W(10,-1120488613,-1132463093,-1111137329,1013238549)+W(11,-1113345499,1010521365,-1123696429,934750635);WS(1001790336,1033193226);
sum1=W(0,-1113292474,-1131356554,-1133969725,-1118664394)+W(1,1027204153,-1111709325,1024655285,-1127980619)+W(2,1018580889,-1115176285,-1102427201,-1094752997)+W(3,-1105768635,-1119059021,-1121009370,-1131789226)+W(4,-1117909243,1046326027,1041639692,1062953181)+W(5,1031529696,1040555139,-1115548569,1030139737)+W(6,1052553934,-1113855449,1060794158,999804065)+W(7,-1122254720,-1110352445,1026923705,-1100154756)+W(8,-1104113579,-1112351060,-1095014251,-1105541862)+W(9,-1102735326,1031818996,1008421480,1016036429)+W(10,-1129785460,-1156866531,-1132017542,-1130622370)+W(11,1022740922,-1121415144,1008916224,-1122315305);sum2=W(0,999771042,-1130012060,-1123589256,1018901632)+W(1,-1124249760,1017234680,-1118367200,1016197020)+W(2,1019371878,-1137594745,1002965746,-1114341154)+W(3,-1115605194,1017493044,1015905000,1024661143)+W(4,1035878909,991329315,1042318306,1053769225)+W(5,1010690665,-1099274218,-1101115118,-1092869373)+W(6,-1106457448,1043986431,-1118271248,1057361082)+W(7,-1102884302,1037230696,-1112309114,1036147884)+W(8,1038257769,-1108709562,1025444512,-1113472862)+W(9,1015483632,-1115820708,1020142296,1016005876)+W(10,-1118330440,-1156785507,-1134019065,1021163648)+W(11,-1123825168,1025071687,-1126466092,1013380697);WS(-1096043118,-1087645231);
sum1=W(0,-1115587665,1032694426,1031441086,1023546425)+W(1,-1130229584,-1147531597,1019733960,-1115129818)+W(2,1029203067,-1099485226,-1113336032,-1121275799)+W(3,1051148019,-1118364796,-1127235090,-1119188228)+W(4,1045341850,1017432376,1054321442,1050158903)+W(5,-1081266857,1047006846,-1106232936,1041137522)+W(6,-1106908023,1052615508,-1082902530,1045376289)+W(7,1057440145,-1118131945,-1134199968,1018710010)+W(8,-1131991862,-1113683692,1050084000,-1116607496)+W(9,1027649766,-1120491559,1027530281,-1131853547)+W(10,-1114910160,-1127306394,998100766,-1147820543)+W(11,1021215128,991663462,-1123554607,-1124042776);sum2=W(0,-1129211209,1023861908,1038235290,1029997412)+W(1,-1125523437,-1107362446,-1114850415,1013933265)+W(2,1023515648,-1119658781,-1121364796,-1103304652)+W(3,-1109858923,1044349350,1032218024,1027861436)+W(4,1040374834,-1108471855,-1096619497,1039720436)+W(5,-1113539350,1038091910,-1121557752,982770184)+W(6,-1110890211,-1133136545,1044872450,1050855479)+W(7,-1117035130,-1107498682,-1130602657,-1128608489)+W(8,1020265593,1048083250,1034188808,-1102257516)+W(9,1022698753,1024895152,-1162309256,-1129090321)+W(10,1023672492,-1109425046,-1121333166,-1130250517)+W(11,1029442100,-1122118916,1020180841,939323929);WS(1062090935,1058767985);
sum1=W(0,1016379967,-1127587553,-1124869109,1030044278)+W(1,-1135267218,1021197901,-1146487047,1001072263)+W(2,-1111629724,1016014666,1045897412,1039181162)+W(3,-1111908667,1032078908,-1129970444,1037221664)+W(4,-1115487571,1046030390,-1089079359,-1107063038)+W(5,1056809425,-1100036461,1008766834,-1118068997)+W(6,1040669191,-1131263417,1049140321,1046027952)+W(7,-1082917799,1040408361,-1115518322,1034380765)+W(8,-1124650927,-1107621674,-1120715392,1035258018)+W(9,1051125844,-1117322707,-1115270659,-1135017032)+W(10,-1131647467,1039946613,-1197661491,1033161790)+W(11,-1129645073,-1124734374,1029976235,-1119763541);sum2=W(0,1033054007,-1116547758,-1123189128,1033469023)+W(1,-1122818756,1026371779,-1136838880,-1137766108)+W(2,-1111327982,1041352776,1032790615,1012971008)+W(3,-1098982462,1042838787,-1110172088,1004924993)+W(4,-1121722910,1034677105,1033549613,1033020303)+W(5,1051050782,-1098306997,1034801784,-1120000922)+W(6,1038740385,-1115132829,-1092378351,-1108961666)+W(7,-1121004928,1045175561,1019964530,1027487385)+W(8,-1119336676,-1124364804,-1102497930,-1106694042)+W(9,1035128176,1039643256,1015821086,1017988993)+W(10,-1124024618,1035204548,1032784783,1032253989)+W(11,1009754028,-1118316692,-1125398316,1028774587);WS(1065136439,1040354336);
sum1=W(0,-1140671753,-1120274067,1022747450,-1124666160)+W(1,-1123069063,-1131113682,-1118356003,-1126498983)+W(2,-1108811053,-1107804932,-1110160675,-1105899870)+W(3,1025125049,1033405406,-1129239633,1016924742)+W(4,1057254373,1050226223,1059609336,1031464345)+W(5,-1093137163,-1111386668,-1105328992,-1111235284)+W(6,-1099781359,-1098842784,-1092867554,1000731409)+W(7,1058399851,1055942809,1044975810,1051704028)+W(8,1009251305,1010162395,1036945681,-1114655220)+W(9,-1109467235,-1101547023,-1113825780,-1104493413)+W(10,1003726785,-1112753158,-1120831377,-1112429520)+W(11,-1119063979,-1146511789,-1116155918,-1117793303);sum2=W(0,-1139839138,998321428,-1134067290,1024466364)+W(1,1008723794,-1119932526,1028368392,-1132382549)+W(2,1034041544,1018598993,987604943,-1102834025)+W(3,-1131349085,-1118877643,1031347596,-1113750023)+W(4,1034669108,-1116818777,1007335842,1061492513)+W(5,-1121214551,-1116983417,-1114752830,-1103912225)+W(6,-1095769692,-1114897304,-1102588486,1062722215)+W(7,-1107691916,-1117176868,1009572226,1035794880)+W(8,-1105759439,-1105398904,-1108283066,-1098749835)+W(9,-1108418109,1041629273,-1103951670,1046707789)+W(10,1039138956,-1145690340,1018314989,1025712340)+W(11,1022467761,-1121476700,1033232162,-1110829011);WS(1015535328,-1084984071);
sum1=W(0,-1114800552,1017574081,-1121052395,-1121642214)+W(1,1031943978,-1119258038,1015340962,-1152091148)+W(2,-1108603860,-1120445077,-1120661414,1038434434)+W(3,1004694578,983354644,-1131668588,-1117988144)+W(4,-1099862310,-1098244185,-1094435959,-1091868509)+W(5,-1100742889,-1090330210,-1106546547,-1096238847)+W(6,1058689409,1050368026,1059588503,1053265766)+W(7,1053762387,1049777811,1042220181,1044693386)+W(8,-1114937124,-1113854018,-1120887600,1038069402)+W(9,1032168457,1033335786,-1112611163,1033654385)+W(10,-1119809253,-1119794874,-1117398367,-1124845785)+W(11,-1126829041,-1124490374,-1122991451,1025017029);sum2=W(0,-1113763234,-1113925793,-1117079348,1016562523)+W(1,-1106152769,1021767953,-1110489214,-1118706081)+W(2,-1123863865,-1117743388,1031541130,1034144457)+W(3,-1108434934,1028245712,-1107854239,-1131124226)+W(4,-1152383745,1049718598,1054034272,1045174355)+W(5,1019958281,1048832333,1037079656,1041167636)+W(6,-1153318001,-1115051721,-1111062529,1029337732)+W(7,-1107848604,1036566626,-1106439039,-1100833945)+W(8,1032880554,-1108241407,1025815300,1040219109)+W(9,-1122950542,1032317223,-1114917041,1023645948)+W(10,-1112434267,1017487533,-1115045873,-1115252534)+W(11,-1112234054,-1144290245,-1111099643,-1123196065);WS(1058837943,1069665989);
sum1=W(0,962159770,-1131526763,-1123587520,1016761717)+W(1,-1116652202,1020359383,-1124916236,-1120750038)+W(2,-1123278397,-1133106088,-1111839826,-1119033369)+W(3,-1112323118,-1123741278,-1111587013,1031183749)+W(4,1059574623,1052414436,1056026369,1050778647)+W(5,1057288447,1051933055,1049400292,1050858601)+W(6,-1100091288,-1100255560,-1090882007,-1089604336)+W(7,-1090318286,-1098258189,-1098860821,-1113801599)+W(8,-1106975399,1034080493,1026032901,1030312842)+W(9,-1115237492,-1123145400,1023272149,-1102573630)+W(10,1026912571,1026538575,-1128992103,-1142474253)+W(11,-1126485147,1024876312,-1130617057,-1147252941);sum2=W(0,1031825723,-1121672345,-1128689519,1003655756)+W(1,-1112729716,1021714543,-1143241256,1015056847)+W(2,1031898082,-1123032728,-1149677000,1042326937)+W(3,1016978721,-1135526098,1017362221,-1115756346)+W(4,-1068962638,-1070958719,1062859919,1079716701)+W(5,1069238165,-1106783417,1038638730,1030095799)+W(6,-1097279430,1042495248,1042236169,-1097154173)+W(7,1043003442,-1101596383,-1114855682,1029691669)+W(8,-1106804175,1004890268,1033261211,1047991146)+W(9,1029430153,1006662138,1016716693,-1116617969)+W(10,1033946762,1015278793,-1125393239,-1129356209)+W(11,-1130449529,-1143028884,1021676019,1007567766);WS(1027937136,1051433372);
sum1=W(0,1024223452,-1131494490,1034208027,-1113660825)+W(1,1026687777,1007645322,1019229306,1023660333)+W(2,1027262836,1034970897,1041574867,1051529138)+W(3,1043759333,1035492122,1025216066,1033175550)+W(4,-1095583884,-1102510757,-1088128354,-1082034838)+W(5,-1107709564,1021392868,-1116281753,1019915650)+W(6,1036904555,1043230726,1043513377,-1088109312)+W(7,1040837474,1023668834,1033050768,1041627229)+W(8,1037383306,-1126475809,1038022750,1049740992)+W(9,1043020088,1040579632,968839375,1040383308)+W(10,1026871330,-1131579916,1022249046,-1121104697)+W(11,1030621125,-1128113439,1026071912,1024084817);sum2=W(0,-1122636491,-1114076695,-1122337791,-1121313911)+W(1,1019616565,1032037049,-1121846167,1035628188)+W(2,1019704225,1037288383,1038646185,-1113812515)+W(3,-1115379683,-1144905268,-1124810757,-1104091459)+W(4,1049771287,1032297878,1050229287,1058219066)+W(5,-1126947029,-1089173556,-1109798125,-1085784913)+W(6,-1108218455,1029534785,1038576544,1058416091)+W(7,-1096957025,1029636273,-1112204367,1039375301)+W(8,1003686724,-1114871835,1026526587,-1129529893)+W(9,1020162449,1011141050,1015768281,-1169657505)+W(10,1007985666,1019192761,-1146139348,1021492965)+W(11,-1131201101,-1129337357,-1117257463,1026702945);WS(-1087300279,1060388257);
sum1=W(0,-1129462823,1031115364,-1114720439,1025637865)+W(1,-1150727557,1019407412,1005184420,-1144567588)+W(2,1023690092,1041026294,1027269348,1022155151)+W(3,1032140389,1019365849,1035913085,-1142073248)+W(4,-1095623283,-1092905754,-1093094418,-1092295181)+W(5,-1091295733,-1094422277,-1097873082,-1089577936)+W(6,-1106106692,1045171988,1058204318,1060821043)+W(7,1047241920,1051757075,1047453654,1052799910)+W(8,1037669414,-1113959460,-1142625182,1044954958)+W(9,1031904715,1022315054,-1121754201,1027854342)+W(10,-1130365587,-1127843579,-1122973026,1027810288)+W(11,1008074737,1005685302,1011776124,1023937224);sum2=W(0,-1120594034,-1141459412,-1136839806,1028313984)+W(1,-1127607807,-1122936307,1007613018,-1134584398)+W(2,-1166872476,1004777140,-1113289360,1013932442)+W(3,1019995585,-1124945717,-1145964804,-1157638606)+W(4,1040489823,-1122900789,1021539093,-1095750682)+W(5,1045364618,1031026044,1033830372,-1125456395)+W(6,-1102509951,-1110936244,1067324619,1045560576)+W(7,-1096904945,-1100965201,1000232964,-1108078168)+W(8,-1086857984,-1095818924,-1093760272,1065644346)+W(9,-1123950010,1042979309,-1121148085,1026162850)+W(10,1045679794,-1104593759,-1110068744,-1103109579)+W(11,1034732462,1018809021,-1152320711,980148252);WS(-1090838638,1050174926);
sum1=W(0,1024715784,1033853293,-1106406969,1042483832)+W(1,1025782733,-1138965820,1038488261,-1139164262)+W(2,-1109115088,1049593122,994296459,1045373935)+W(3,1015694078,-1112080289,1045351388,-1114987669)+W(4,-1106716164,-1120751425,-1094496661,-1086184702)+W(5,-1092092861,-1095245812,-1100690449,-1094326222)+W(6,1038102082,1051782073,1043814476,1058236139)+W(7,1045378621,1042079876,1050438570,1040938025)+W(8,-1115525408,-1136454131,-1105105482,1033520471)+W(9,1029286795,-1106373991,1034575399,-1122199803)+W(10,1016756989,1035169257,-1108133484,1042591993)+W(11,-1140252101,-1115290814,1041627941,1001134058);sum2=W(0,1051544715,1047565246,1046232208,-1105592564)+W(1,-1094324661,-1105924841,1021200095,-1103932050)+W(2,-1087153288,-1111682644,-1081925443,1060283907)+W(3,1062548140,-1127110112,1051334754,1033462267)+W(4,-1090874159,-1099176408,-1105576760,1048906709)+W(5,-1112367085,1049091960,-1107585156,1048824237)+W(6,1047568122,1032035298,-1119008010,1036693685)+W(7,-1119206793,-1158298480,1036759049,-1114785543)+W(8,-1111412903,1040133461,-1140028602,-1107739759)+W(9,1044620924,-1096403637,1046459856,-1114351857)+W(10,1034895049,-1131191613,-1112144320,1040322447)+W(11,-1130045765,1011461326,1012649582,-1111955333);WS(1039738296,1044009556);
sum1=W(0,1031992376,-1118478209,1036413734,1042319122)+W(1,1025321013,1019779694,-1126468451,1028741314)+W(2,-1113116036,-1126664684,1028656912,-1095949365)+W(3,1046101634,-1104617834,-1111694091,1029160593)+W(4,1058890327,1042459434,1054229481,1057173004)+W(5,1048940614,1052520321,1047137387,1057385245)+W(6,-1088719167,-1107130859,-1088309806,-1090115281)+W(7,-1090901446,-1096019759,-1098195015,-1090793697)+W(8,1040542090,-1129453002,1042227988,-1127816747)+W(9,1048439133,-1119199044,1036380619,1040359505)+W(10,-1107110028,1036863629,-1133301245,-1121635021)+W(11,-1120611033,1022364232,-1108092830,-1129794251);sum2=W(0,-1088996856,-1089163817,-1081345153,-1080285142)+W(1,-1079794071,-1089981167,-1091438196,-1099490886)+W(2,1009251693,-1107842867,-1124806950,1052635731)+W(3,-1106464080,-1125456570,-1115606726,-1106662163)+W(4,1062110924,1057525018,1064189433,1067630395)+W(5,1063058829,1062842970,1054193960,1053790298)+W(6,-1115283476,1042234988,-1104109471,-1112028150)+W(7,-1113992476,1045262592,1042247754,-1104249669)+W(8,1030923639,1032774718,-1126776930,1034769026)+W(9,-1106165885,-1136163037,1032379012,-1108359351)+W(10,1034262626,-1123202523,-1130902850,1036915346)+W(11,-1110986466,1035294670,-1135519157,1024576891);WS(-1096394862,1050867114);
sum1=W(0,975777376,1035680965,1017323049,-1164976624)+W(1,-1126109949,-1117859264,1011370603,-1122131819)+W(2,1011677768,-1097606072,1017467204,-1122057965)+W(3,1039142936,-1137149130,1023416416,-1112401517)+W(4,1050217928,1041761501,1059053443,-1098739346)+W(5,-1089683010,-1104430516,-1115445691,1042596520)+W(6,-1095631255,-1108785275,-1088500104,-1111108333)+W(7,1062642602,1040456976,1016594173,-1120553683)+W(8,-1105375964,1035556439,1042635014,1025006046)+W(9,1038036638,1027021261,1041295544,1029575724)+W(10,1033079080,-1107649602,1020084753,-1112750027)+W(11,-1142614292,1017623258,-1113983747,-1124248029);sum2=W(0,-1131210775,1024840523,1024067225,1022860453)+W(1,-1125865258,-1130239171,1024964869,-1117571915)+W(2,1029829507,-1108448221,1046565608,-1107856867)+W(3,1042031083,-1106481128,-1127390051,-1124576676)+W(4,1018275001,-1117395779,1042461338,-1092962046)+W(5,1053212914,-1102214835,-1114692565,991892650)+W(6,-1122984086,-1132016729,1059140985,-1089805596)+W(7,1058514952,1027704725,-1118917379,1032905776)+W(8,-1096338526,-1114466007,-1107995649,-1166014069)+W(9,1052927486,1041713274,1037010892,1032336370)+W(10,1033255054,-1103146109,-1119288636,-1099911282)+W(11,-1113255745,-1106771914,-1111017176,1000523989);WS(-1112511928,1031640207);
sum1=W(0,1037301926,-1130112569,-1119711398,1044751592)+W(1,-1102628100,1042267541,1021159833,-1122521821)+W(2,-1102373753,1048837234,-1091456672,1045582560)+W(3,-1119033858,-1093436941,1050238014,-1100593739)+W(4,1058068053,1051625169,1054040787,1044375881)+W(5,1057193534,1051238780,1045936610,1058222955)+W(6,-1091912761,-1095738529,-1101742756,-1090186767)+W(7,-1090190311,-1110077161,-1098844722,-1090967581)+W(8,1030698115,1045615952,-1104227307,1051640030)+W(9,-1111999463,1008998972,1050341641,-1108465231)+W(10,-1112730073,1045904421,-1098654019,-1111879892)+W(11,-1123401908,-1101737376,1043894710,-1112695488);sum2=W(0,1016218439,1009444234,-1111008440,1026480303)+W(1,1015374231,-1115006890,1027237715,-1122692269)+W(2,1024549194,-1117974589,1042315856,-1106327815)+W(3,1040022175,1025059842,-1110870197,1033099318)+W(4,-1121292007,-1111737758,1047393563,-1089871257)+W(5,-1115783084,1043300713,-1103999090,1022298131)+W(6,1037076368,-1110249739,-1086831522,-1069929292)+W(7,-1085683537,1033002057,1033912191,1032775289)+W(8,-1112700443,1020335555,1038599637,-1111547810)+W(9,1049254465,-1118960414,-1118358651,-1104218510)+W(10,1032984152,-1112172263,1060801772,1079084175)+W(11,1057876572,1033693800,-1104475663,1045399536);WS(-1106120924,1033431669);
sum1=W(0,1016553159,-1146851238,1024375743,1026515514)+W(1,1005429062,1029812010,1008887700,1021177962)+W(2,1035990878,1041817850,1041767260,1047579686)+W(3,1031819293,1026577053,1014785832,1011005202)+W(4,-1101729723,1024013341,-1116899488,-1085522812)+W(5,-1090064383,-1118087802,-1126747713,1025078601)+W(6,1042266392,1027850273,977256084,-1090381288)+W(7,1048109660,-1113190325,1024173993,-1127218683)+W(8,1024064284,1026394008,990294084,1048833585)+W(9,1038017843,1040657490,1020235411,1041410670)+W(10,1018305971,1021653787,996614956,-1125739905)+W(11,1016883609,-1121801815,1027952623,-1132785763);sum2=W(0,1032555846,1019641904,1015684488,-1123545328)+W(1,-1118308408,-1117707424,-1137876352,-1152988290)+W(2,-1110721648,-1116342888,-1102693078,1027573888)+W(3,1043950970,1021888896,1007632640,1023916088)+W(4,-1094136567,-1089264280,-1097199465,1056898914)+W(5,1037769558,1041236542,1026403708,1046276806)+W(6,1030929664,-1112511004,1046449598,1052843165)+W(7,1024674316,-1109778580,-1123597216,-1105717038)+W(8,-1146526593,1032788860,1012812816,1033507644)+W(9,-1106559340,1017687520,1028523456,-1122312832)+W(10,1018020888,-1125819008,1004426241,-1122415072)+W(11,1028547840,996318210,-1149117889,-1132920416);WS(1034973624,1056792353);
sum1=W(0,-1120658336,-1121055921,-1128295926,1021962732)+W(1,-1127490506,-1119904327,-1122942113,-1119710033)+W(2,-1130821617,-1114464179,-1106629009,-1093463666)+W(3,-1097245927,-1132912612,-1118132038,-1115274080)+W(4,-1114903379,-1125024178,1008426736,1062068439)+W(5,1050479246,-1107542555,1028006365,1025872901)+W(6,-1130597942,-1102939831,-1118485143,1067744046)+W(7,1049107361,1045213129,-1113875250,1036565277)+W(8,-1109039532,-1115164458,-1104109440,-1094141737)+W(9,-1105858697,-1119937620,-1141854766,-1121170098)+W(10,-1124529164,-1124681556,-1138254780,993935312)+W(11,-1132704804,-1120970067,-1122550700,-1120520661);sum2=W(0,1020401308,1017661559,-1129375401,-1130735541)+W(1,-1146688164,-1166762145,-1130185789,-1137125822)+W(2,-1120501349,996214904,-1140432422,1024553914)+W(3,1006774606,-1124013507,1033491675,-1117903931)+W(4,1037264768,-1116129767,1035443152,1051779064)+W(5,1039827062,1025600009,-1114545658,1032817572)+W(6,-1090330474,-1084580575,-1097846115,1064606263)+W(7,1048687051,1019182043,-1117487855,1037037513)+W(8,-1105802125,1032645479,-1102145888,1038402436)+W(9,1000828364,1025151371,1028059566,-1112238814)+W(10,1023925581,-1119976615,1025111856,-1136822486)+W(11,-1121332237,1015612208,-1119338761,999461036);WS(-1082445367,-1085006700);
sum1=W(0,-1131835086,1034878908,-1106661648,1037617118)+W(1,-1121819052,1022066011,1036207796,1033542412)+W(2,1041974800,1043293403,1042063924,1045196135)+W(3,1037212703,-1105403448,1046411795,-1100599618)+W(4,-1081109875,-1092276724,-1086386347,-1094524616)+W(5,-1094507255,-1104988703,-1105674409,-1096619449)+W(6,1054173212,1051286356,1055927462,1058619216)+W(7,1050138098,1028915053,1041419787,-1130824962)+W(8,1035072463,1034209806,-1114712644,1036390662)+W(9,1015171028,-1139447658,1026111277,1045523870)+W(10,-1137431795,1038048136,-1110863483,1042877649)+W(11,-1123146704,-1114994477,1040360493,-1121943708);sum2=W(0,-1112963339,1025676326,-1117465202,1036266015)+W(1,-1124864900,1019242508,1017632828,1039721851)+W(2,1043137200,1000796272,993751520,-1098528956)+W(3,1032573075,-1097473255,1049454991,-1090503899)+W(4,1014823768,1031859059,1020211292,1055374057)+W(5,986723264,-1125510524,-1111044051,1007293144)+W(6,-1089890678,-1102855534,1018575516,1061198225)+W(7,1038055959,1050136287,-1109681619,1054985311)+W(8,1022229356,1031913791,-1120060570,-1098119563)+W(9,-1106568385,-1098582022,1030233630,-1101215648)+W(10,-1128614108,1018516204,-1138611816,1020738140)+W(11,-1132953832,-1123833514,1035860627,-1110059149);WS(-1089141943,1068474134);
sum1=W(0,1024130588,-1101143803,1039148539,-1124204515)+W(1,1026773217,1018218693,-1104179471,-1123573325)+W(2,-1121972404,1041396360,-1105946681,1052602058)+W(3,-1091638882,1032280890,1041946144,-1138642417)+W(4,1032495505,1045416789,-1106461946,-1094942270)+W(5,1059099726,-1106993164,1045088278,1009482242)+W(6,1036801227,-1094238571,1057861426,-1098420551)+W(7,1040764762,1033290001,-1105244536,1037819035)+W(8,-1117579092,1039470024,-1113046718,1047303536)+W(9,-1094617668,1040300696,-1110195745,-1108347351)+W(10,-1114425265,1024684838,-1108918837,-1127532529)+W(11,1027200645,-1103088708,1043167338,-1116739793);sum2=W(0,1016644168,998892514,-1116049462,1033248586)+W(1,-1110140123,1041609896,-1103095555,1030835892)+W(2,-1134771145,-1114282184,1042383274,1025008594)+W(3,-1104878488,-1101611481,1048842205,-1122288558)+W(4,-1129326838,1049635340,-1147070546,-1102476512)+W(5,-1090718582,1046973498,-1115539252,1028769716)+W(6,-1114142714,-1101404122,-1095734150,1060588986)+W(7,1052949499,-1143476482,-1110997031,1022411808)+W(8,1012771369,-1114952606,1057697290,-1111850310)+W(9,-1096580248,-1114336646,1031782132,-1118966953)+W(10,1025799488,1041138771,-1095991584,1027653952)+W(11,-1127102864,1035005082,992902692,-1120028296);WS(1055908206,1023803300);
sum1=W(0,1033033649,-1128828388,1027156540,1024886583)+W(1,-1122498726,1032744244,-1114524705,1005980052)+W(2,-1114766205,1011459483,-1106069078,-1116675477)+W(3,-1116893112,1045609495,-1113403236,1049123968)+W(4,1059767687,1054454099,1057986836,1059734148)+W(5,1056528229,1043829406,1047712168,1049516377)+W(6,-1093070812,-1094569204,-1086765600,-1090099632)+W(7,-1094363024,-1102732570,-1103438026,-1098493775)+W(8,-1106762950,1029622486,991938588,-1098865153)+W(9,-1101593593,-1139103892,1022039246,-1097177334)+W(10,-1139512861,1016172182,1027600816,1027525694)+W(11,-1135964969,1036132330,-1117700205,1035501771);sum2=W(0,1025334517,-1115143239,-1112308287,-1115511381)+W(1,1042864237,1031444191,1040795754,-1111573417)+W(2,1052224655,1029199567,1050599738,-1137182696)+W(3,-1101494467,-1094150391,-1116631442,-1092627938)+W(4,-1085507535,-1092254017,-1091835304,1050309385)+W(5,1052849573,1058681981,-1093246396,1066882777)+W(6,-1083097675,-1079915962,-1078367265,-1085955474)+W(7,1077549274,1068550083,1054678659,1059124396)+W(8,-1097828858,-1092877982,-1101001669,1031547399)+W(9,974314816,-1100178328,1046838481,-1088438520)+W(10,1062578782,1029921983,1036651638,1017725718)+W(11,-1103762806,-1106558945,1039431488,-1098096651);WS(-1078207964,-1098790270);
sum1=W(0,-1117816013,1039615439,1040159636,1032454162)+W(1,1029735698,1026856980,-1128361629,1002339317)+W(2,1017293260,-1121106131,-1098516348,-1100564368)+W(3,-1142189601,-1115831559,-1129405415,-1114960439)+W(4,1049047675,-1100078274,1057717203,1041647209)+W(5,-1090236946,1041839801,-1114821509,1034781465)+W(6,-1100878354,1049964833,-1094050686,-1119951725)+W(7,1052197359,-1110599850,1009705546,1020602063)+W(8,1032784131,-1107321921,1040450075,-1099964381)+W(9,-1116032848,1034137049,1036993018,993360895)+W(10,-1126192007,-1122801847,1034337038,1014677674)+W(11,1028031798,1027844545,-1121696025,-1130484229);sum2=W(0,1025029135,-1115606678,-1098891737,-1111864983)+W(1,-1112278329,1017169741,-1123958951,1031819582)+W(2,-1104367710,-1132455965,1054704406,1035843132)+W(3,1038310704,1037432870,-1137648567,-1122384617)+W(4,-1119205162,1051294613,-1118431701,1040638061)+W(5,1033551568,-1095570314,1040693441,1008777251)+W(6,1051361304,-1090262380,-1094584814,1042639742)+W(7,1042180969,1054301740,1006683771,1032304440)+W(8,-1097951274,1046775583,-1111734067,-1115582191)+W(9,-1116801751,-1102111461,-1108749213,-1103720876)+W(10,1037239658,1027534783,-1137589907,-1161598998)+W(11,-1113612863,-1137659371,1017443081,1038413214);WS(1060561207,-1110135205);
sum1=W(0,-1114856118,-1124131449,-1121034566,-1112340961)+W(1,-1112123800,1034679769,-1115322038,-1107671902)+W(2,1049197464,-1108658488,1041962623,1047635080)+W(3,1029521634,1045001085,1019494819,1038785126)+W(4,-1091745710,-1095755605,-1091090769,-1089785676)+W(5,-1088312300,-1105390912,-1095959893,-1089779917)+W(6,1057921518,1045522218,1055093690,1056738433)+W(7,1057086969,1048793054,1049205462,1057170552)+W(8,1045672489,-1100746808,1019645080,-1111234056)+W(9,-1095870350,1047514180,-1099214252,1022895484)+W(10,1021270499,-1112929307,-1157317541,1036938084)+W(11,-1148757666,1026507103,1019330670,1029094240);sum2=W(0,-1110883135,-1122184691,1008834310,1033395903)+W(1,-1110716892,1024095030,-1113505190,-1113542640)+W(2,1041894205,-1115970606,982318965,1040255170)+W(3,-1134396672,1031402202,-1121857157,1031923695)+W(4,-1114700148,-1118217955,-1097954058,-1109327580)+W(5,-1107386491,-1114148625,-1116084956,-1128842340)+W(6,-1082032478,-1081043792,-1085641610,-1095688614)+W(7,-1084362127,-1093205100,-1087863650,-1094939475)+W(8,1046875162,1049320576,982336213,-1107088758)+W(9,1032307660,-1122373488,1045820748,1044473869)+W(10,1064081845,1059051295,1064706681,1066526360)+W(11,1060847547,1058657081,1055302318,1041403755);WS(-1088848183,-1091270356);
sum1=W(0,-1113444636,-1127291412,-1131637032,-1105736260)+W(1,1030983166,-1127378047,1037357901,-1115666437)+W(2,1022583331,1011517178,1047190142,1040877723)+W(3,1035565944,-1097520394,-1114602800,-1108205485)+W(4,-1092936920,-1094397598,-1092945549,-1086200137)+W(5,-1102025475,-1104020948,-1116833526,-1102830535)+W(6,1050793382,1055228191,1056457416,1051083611)+W(7,1056969730,1051399464,1044492479,1047811509)+W(8,1035173048,-1112816343,1039723405,1039289519)+W(9,1015654008,-1108815670,-1116817631,1032741190)+W(10,-1115063927,1007040780,-1118782984,-1114815627)+W(11,998545680,-1127143385,1025703109,-1123886254);sum2=W(0,1023906737,-1110646223,-1119411664,1010017751)+W(1,-1108429461,1029589423,-1110439418,-1125097343)+W(2,1067295699,1065087692,1065459703,-1118952488)+W(3,-1081475488,-1083105366,-1095503285,-1083389324)+W(4,-1081442287,-1085042817,-1083251842,1050008558)+W(5,1064700095,1064469883,1057972141,1061045473)+W(6,-1097077469,1037915281,-1096872835,-1110920551)+W(7,1006981249,1036080906,-1106015672,1051761632)+W(8,1029195957,1015927544,1018101230,1042598936)+W(9,-1103158035,1041992018,-1108943564,-1114827780)+W(10,1026431960,-1132623721,1018762696,-1124571002)+W(11,1020104602,-1114107558,1036691137,-1119006739);WS(1034259896,1039623341);
sum1=W(0,1016878676,1028460795,1034359235,1011385345)+W(1,1015855070,1016831138,-1128588247,1025908283)+W(2,-1137539339,-1104998988,-1129847248,1015052988)+W(3,1032818160,1044006969,1033445320,1043524531)+W(4,1055868742,1047938201,1058114664,1043619008)+W(5,-1096687428,-1092418872,-1100196186,-1095896370)+W(6,-1088089066,-1091378989,-1090213650,-1114958501)+W(7,1054476715,1049053750,1040121848,1044746961)+W(8,1043298073,1036240559,1043122195,-1119276751)+W(9,-1110579607,-1101201217,-1106781444,1018213241)+W(10,984347141,-1121755284,932956556,1018241806)+W(11,1026808723,1034235663,1010316760,-1120101215);sum2=W(0,951810592,1033659165,1002259560,1037243759)+W(1,-1112310958,1034753865,992340497,-1114454490)+W(2,-1108037836,-1102042508,-1103529440,-1102191435)+W(3,-1111056455,-1119026649,-1101647251,1024637657)+W(4,-1092018666,-1107310314,-1101738099,1066447662)+W(5,1032823775,1031795157,1040899047,1046257437)+W(6,-1130209970,-1115641842,1041635941,1067062587)+W(7,-1098661250,-1099014553,-1117726225,-1111013301)+W(8,1022643242,-1110096702,1034513697,-1100161415)+W(9,1027860693,-1096684817,-1114962434,-1112982645)+W(10,1009312276,1032067593,-1114108683,1041326077)+W(11,-1120382671,1026651225,1038338139,-1106704138);WS(-1096556910,1067967914);
sum1=W(0,1032707155,1024354487,-1131915011,1043480447)+W(1,-1118942187,-1132633269,1031302952,1031513592)+W(2,-1122886335,1031668012,1021347526,1041914807)+W(3,1036630543,1034774528,-1125222297,-1106257250)+W(4,-1095119782,-1103532312,-1095435756,-1090836352)+W(5,-1091218783,-1104917967,-1100801113,-1104067043)+W(6,1055235700,1048353625,1044387963,1053060297)+W(7,1041581564,1052242886,1033613430,1050269976)+W(8,-1120012638,-1105977207,-1105830818,-1133082414)+W(9,1017318739,-1121967338,-1130484760,-1109204860)+W(10,1031514684,-1126996321,-1116416117,1043128001)+W(11,-1110350280,1039162573,-1148985233,1034839630);sum2=W(0,-1125934657,-1120747465,-1126946517,1019390634)+W(1,-1140291646,1045993569,-1110717499,1038335355)+W(2,1041393774,1032139854,-1107151652,1046075673)+W(3,-1090083756,1024325836,-1116058677,-1097350707)+W(4,-1097497496,-1114660789,-1096477783,1057927405)+W(5,-1110210473,-1137735680,1033250412,-1127153776)+W(6,1047775001,-1105604596,1048515105,1059160295)+W(7,1043731078,1039621515,-1116506490,987432265)+W(8,-1131783044,1018330620,-1096755902,1041946221)+W(9,-1091797353,1046026631,-1106745231,-1124643180)+W(10,-1122059316,-1129241452,-1147658728,1011994599)+W(11,1032850220,-1126091098,1009337229,-1124186068);WS(1061843767,-1077951557);
sum1=W(0,1026388735,-1120114128,1037862893,1029309653)+W(1,1036389538,-1122000006,-1126306304,1030215888)+W(2,-1106366502,-1131166601,1029755951,-1091391038)+W(3,1048316317,-1099454574,-1106178153,1034019808)+W(4,1059311576,1043697070,1054385928,1057568381)+W(5,1054220568,1049723715,1050234615,1058416302)+W(6,-1088217072,-1105977039,-1091419383,-1089136642)+W(7,-1092475601,-1095416897,-1096877448,-1091809363)+W(8,1041378862,-1130669927,1047467576,-1111164306)+W(9,1053509792,-1108260705,1038585474,1045917860)+W(10,-1102542817,1039925540,989452730,-1105668215)+W(11,-1138232735,-1130981221,-1107228323,-1116719540);sum2=W(0,1061533858,1062451832,1068272760,1070735043)+W(1,1070929067,1058522058,1059576348,1052624489)+W(2,1041546460,1044663473,1019905335,-1103665132)+W(3,1027882908,1053579543,1030217484,1042937819)+W(4,-1081881922,-1084977950,-1081565785,-1079025547)+W(5,-1082597652,-1079765468,-1088759123,-1090364693)+W(6,-1104625991,-1116240264,-1115490290,-1094934042)+W(7,1002519540,-1096683616,-1103272320,1039524167)+W(8,1020257203,-1107478927,1038097782,-1129735749)+W(9,1043320870,997759194,-1110736144,1041293151)+W(10,-1112819836,-1146254682,1018218872,-1108448519)+W(11,1032555484,-1111378699,1018278443,-1120119454);WS(-1084224055,-1088316584);
sum1=W(0,-1113613001,1003388692,-1106869627,1016662735)+W(1,1022316973,-1136760929,1028746387,984919127)+W(2,-1107673717,1028109079,1012698375,1027116933)+W(3,-1094644889,1023495179,-1107590588,1024116594)+W(4,1006747746,-1098426505,-1088923256,-1097246285)+W(5,1057877820,1033746004,1041863252,1022736621)+W(6,1039555654,1048291572,1059475506,1054502102)+W(7,-1093203288,-1098003683,-1105649846,-1114921814)+W(8,1033838821,1024741190,-1120760050,1019707757)+W(9,1048977331,1036081339,1041797102,-1127589064)+W(10,-1159624430,-1124153911,1033833840,1010228666)+W(11,-1114819581,-1110624834,-1119454813,-1122201606);sum2=W(0,1015245257,-1113948506,-1130594159,1007533655)+W(1,-1122336092,-1131246557,-1121042747,-1112003767)+W(2,-1113301472,-1150409563,-1113241340,988101766)+W(3,-1114338752,1042344950,1024929700,1034588627)+W(4,-1126889814,1027745966,1053517180,-1115083078)+W(5,-1120298083,1009652067,1023796132,1015099871)+W(6,-1122805777,-1121614859,1035094088,-1117590123)+W(7,1041346715,1010321235,1022595647,1021357977)+W(8,1024783162,1024732276,1035927962,1033594898)+W(9,-1136757529,-1112303516,-1107129305,-1116844702)+W(10,-1125306444,-1120982285,-1117285071,-1115586407)+W(11,-1179946326,-1122655190,1031780006,-1109817399);WS(1056759150,1060224665);
sum1=W(0,-1139374311,995010733,-1111414410,-1108849608)+W(1,1028987391,1016981889,-1123115291,-1129401942)+W(2,-1132085157,1023919167,1047983919,1035204919)+W(3,1044747100,1009635916,1026679904,-1133052010)+W(4,-1099925456,-1105275165,-1089721802,1047380996)+W(5,-1111752399,-1106656308,-1119632759,-1103728616)+W(6,1041263149,-1143162806,1045591848,1054640011)+W(7,-1086265361,1052567064,-1119813375,1036660778)+W(8,1033127353,1020125661,1047176279,-1109178223)+W(9,1047077327,1025513390,1020940735,1026259564)+W(10,-1131329248,-1128574472,-1124813330,-1115433611)+W(11,1014274699,-1114033239,-1135589654,-1154487021);sum2=W(0,1023227060,1023565277,1023373012,-1127246210)+W(1,1035525242,-1115895934,1032252451,-1115664904)+W(2,-1114834111,-1123243930,-1110717616,-1119831250)+W(3,995075850,-1112704991,-1137853837,-1177558227)+W(4,-1123255684,1036838581,-1121973236,-1128787384)+W(5,-1106791563,1017209933,1025363014,-1117762720)+W(6,-1111609489,-1109001470,-1106028739,1068968933)+W(7,-1084327071,1049794788,-1103092626,1033559138)+W(8,1029177075,1046335474,1040383540,-1085459757)+W(9,1055427968,-1106438120,1039281515,-1108939748)+W(10,1009084849,-1110362282,1030364025,1038001226)+W(11,1004844681,-1109625554,1026824663,1027051057);WS(1059198391,-1114206899);
sum1=W(0,-1123230572,1033309054,-1136657179,1042361008)+W(1,-1127872354,1026831155,1034821095,1027013917)+W(2,1047908609,-1113872057,-1131612168,1032838544)+W(3,1018582917,1025662981,-1122684754,1042918755)+W(4,-1086695351,1005036838,1053830093,1063074340)+W(5,1022976638,1048968528,1037218004,1045668084)+W(6,-1111534963,-1127426130,-1097279138,1032841926)+W(7,-1102974814,-1086802103,-1094977286,-1080167184)+W(8,1041894153,1035651728,-1114797926,1042266564)+W(9,1036160183,1043048448,1028546130,1051954532)+W(10,-1168813170,1029018614,1015674230,-1115081892)+W(11,1022213546,-1119589535,1023015663,-1121567905);sum2=W(0,-1109294951,1044771761,-1106240469,1037653814)+W(1,-1132138943,-1129034439,1027920896,-1126749735)+W(2,-1116747636,-1095594447,-1091993541,-1098134808)+W(3,1045429231,-1112675284,1030264036,1027709116)+W(4,1053044316,-1102224225,1065361960,1060397410)+W(5,-1095097189,-1139768526,-1100471477,-1095674438)+W(6,-1093594252,1044254591,-1103264547,1059446961)+W(7,1053539276,-1147713757,-1115698004,-1131922215)+W(8,-1105874671,-1148207325,-1098859579,-1110887683)+W(9,-1103270924,1018090127,-1105560593,1044415945)+W(10,1036768486,-1122217612,1038496462,-1106764847)+W(11,1035231626,-1112984312,1037287074,-1106415399);WS(-1081905372,1072993545);
sum1=W(0,1004609681,-1113931058,1017897178,-1110350900)+W(1,-1119842647,1029593625,-1114320538,1026419555)+W(2,-1111485397,1044870886,-1101161424,1042868018)+W(3,1016958866,1036666966,1034341084,-1123516147)+W(4,-1100618406,-1103601459,-1117978262,-1088871615)+W(5,-1096217303,-1090419947,-1105396084,-1100180286)+W(6,1052555682,1050421002,1053397115,1057434595)+W(7,1037835279,1054502387,1036260396,1041011339)+W(8,-1113666277,-1125853837,-1109207833,-1108715676)+W(9,1041223333,-1131918060,1046093262,-1108472674)+W(10,-1113131956,-1119475260,-1119057377,-1116054255)+W(11,1033629886,1019600139,1034832815,1025124935);sum2=W(0,1027207918,-1131003531,-1155176792,-1144704129)+W(1,-1120277627,1018692534,-1122116985,1016313728)+W(2,-1134820995,1019005665,1018656479,1016837667)+W(3,-1133755465,1007330736,1008190855,1024160458)+W(4,-1123507780,992028222,1020777698,-1093100477)+W(5,-1106617270,1026210395,1015481059,1009441727)+W(6,1022927690,1039006609,-1108026125,-1075529389)+W(7,-1071234400,-1098388857,1043410538,-1127804151)+W(8,-1148644129,-1114458430,985006155,-1165905039)+W(9,1009164120,1080134310,1068769301,1038162442)+W(10,-1124904791,1019252639,1019665619,-1148497627)+W(11,-1154476856,1041946375,-1120913968,-1102924087);WS(1052536174,-1151096569);
sum1=W(0,991116371,1033302347,-1116642336,-1115536654)+W(1,1020657940,-1114833734,1031490598,-1158391502)+W(2,-1128173243,-1146822742,1036050892,1034768509)+W(3,-1102372039,1030675614,-1114628406,1032401267)+W(4,-1103836723,1034951935,-1087917523,-1106200391)+W(5,1061554222,1041046871,1046795201,1027714602)+W(6,1032573088,-1120898050,1057405287,-1120590821)+W(7,-1082912644,1002819162,-1124848916,-1124036191)+W(8,999976938,-1138114279,-1098834165,-1118223722)+W(9,1047922098,-1107937520,1038688870,-1118805976)+W(10,1037991630,1035558856,1042054293,986260550)+W(11,-1130396508,1023135729,-1142052488,-1177279769);sum2=W(0,1035223119,-1127800761,1038890181,1028905699)+W(1,994981383,-1127955051,998786660,-1121293280)+W(2,1038869307,1034423710,-1109261585,-1095895125)+W(3,-1098712671,1032845262,1030375171,-1114148994)+W(4,-1108836158,-1116666352,-1087753137,1061176216)+W(5,-1099737664,-1208820627,-1126035264,1042226462)+W(6,-1105867416,-1109342419,1027333841,1057224086)+W(7,1049674522,1011854042,1017325847,-1120003540)+W(8,-1106282608,1047028407,-1148256348,-1148022324)+W(9,-1103462952,1043242553,-1121350765,-1117125009)+W(10,1028503999,-1119414296,-1113209005,1010099974)+W(11,1020393479,-1115953239,1024565993,1001260628);WS(1058902967,-1081860445);
sum1=W(0,-1121371387,1029881036,992316765,-1117974353)+W(1,1019164800,-1115308289,1031905998,-1118946572)+W(2,-1116017491,-1110722656,-1103068528,-1120254383)+W(3,-1111729689,-1123116948,-1110978129,1027465948)+W(4,-1114517185,-1096281750,-1110556335,-1087192661)+W(5,-1138608617,-1119671953,1026716344,1026550240)+W(6,-1144385454,1046612526,1050079932,1061346066)+W(7,1054224317,1023689473,1034730016,990814541)+W(8,1031405875,1032371736,-1114542190,-1113719056)+W(9,-1147587566,-1121094047,1032702160,1025765741)+W(10,-1133995267,-1118231237,1037331941,-1117606232)+W(11,1027634660,-1114416951,-1150819433,1002408318);sum2=W(0,-1127268449,1008157504,1022079949,-1129508015)+W(1,1023435994,987488696,-1149203238,1025441916)+W(2,1017520494,-1110533731,-1110799425,1038116680)+W(3,-1149062134,-1109564641,1031926637,-1140288129)+W(4,1046612660,1053115740,1042237616,-1081939523)+W(5,1046590815,1019421448,1025089506,1002014090)+W(6,-1104246964,-1126879265,1071620340,-1082767624)+W(7,-1091995420,-1133233221,-1113723868,1008464055)+W(8,-1098833757,-1103206877,1047260740,1046386206)+W(9,1034566387,-1113663072,-1131415815,-1120607589)+W(10,1019779427,-1135658469,-1112586418,1021781126)+W(11,1021597755,1025921212,1022181144,-1133866981);WS(-1118927728,-1114990634);
sum1=W(0,-1123938375,1040612950,1024746402,1022214714)+W(1,1038811590,-1112630087,-1118622728,1031232344)+W(2,1033195056,-1114716774,1048819881,-1104426015)+W(3,-1105195831,1042575344,-1098438774,1038434900)+W(4,1057535917,1047260544,1042772673,1057677234)+W(5,1045869257,1057533694,1042859777,1055588422)+W(6,-1087859524,-1132924433,-1087499341,-1097320317)+W(7,-1091890215,-1089715893,1029276300,-1091230428)+W(8,-1107191040,1007112943,1043648426,-1093740782)+W(9,1042013107,1020754614,-1107815558,-1113991309)+W(10,1047574307,-1106834116,1044210486,1028537764)+W(11,-1106862316,1047539199,-1107232885,1041569343);sum2=W(0,-1117938617,1034943831,1047294563,-1112881764)+W(1,-1113196518,1017166837,-1119652380,-1122537978)+W(2,-1098776947,-1074997876,-1067348911,-1073328658)+W(3,-1106856879,1007574096,1040326435,1003760381)+W(4,1052841626,1071950042,1078478928,1075942353)+W(5,1048374094,-1110198115,1016518417,-1132261857)+W(6,-1111689798,1008522816,1042633900,-1105497105)+W(7,-1100859969,1027760421,-1106280857,-1146348222)+W(8,-1101990052,1023979086,-1106116215,1040726051)+W(9,-1128120408,1041816709,1015116440,1015700123)+W(10,1034353164,1019125592,1021696573,1032192788)+W(11,-1129459590,-1114781060,983174391,1019612376);WS(1034111416,-1106797037);
sum1=W(0,-1127934684,-1146675705,1006977829,-1113401378)+W(1,1019549798,1016064490,-1139061950,998716411)+W(2,-1113852291,1035613338,1034804131,1037672145)+W(3,1044038057,-1106829090,1033066250,995721454)+W(4,-1096035023,-1102929642,-1090308252,-1089088820)+W(5,-1096624416,-1097224209,-1104516203,-1095532026)+W(6,1052464285,1042719307,1054858571,1057164897)+W(7,1050796251,1048920159,1042039981,1049209393)+W(8,1032415443,-1114220817,1032020487,-1123663635)+W(9,1035431737,-1131720964,-1114943722,1041424208)+W(10,-1113420426,1025128440,-1114922591,-1136503085)+W(11,1026704599,-1109868785,1024811962,-1138798477);sum2=W(0,1018373307,-1117669473,1036793172,-1107254646)+W(1,1027210469,983011887,-1124389554,999841656)+W(2,1030944977,1035483586,-1120221588,-1138388666)+W(3,-1119036598,1026801669,-1120993070,1036234905)+W(4,-1120549779,-1113169149,1031305133,-1118729068)+W(5,-1123944089,-1136088418,1045466087,-1110162376)+W(6,-1139755202,-1114451942,1047991436,1050438576)+W(7,1058194810,-1103576008,1037255439,-1114267729)+W(8,-1101691927,-1102665013,-1083948126,-1083351573)+W(9,-1081291530,-1106933299,-1095248620,-1124771645)+W(10,1049483493,1049560407,1057078402,1060878230)+W(11,1058504911,1044728114,1047223280,1036725012);WS(1038841272,1052605132);
sum1=W(0,1031922765,-1104568331,1037544250,-1109808312)+W(1,-1115625903,1042593752,-1105481799,1033924054)+W(2,-1100459309,1046914264,-1120141702,-1117060814)+W(3,1046551204,-1097718198,1032086688,-1112841053)+W(4,1037270288,1041702805,-1098675705,1045728636)+W(5,1017164043,999474559,1031450455,1034794943)+W(6,1026910357,-1101939446,1040827436,1037079325)+W(7,-1095425143,1046662664,-1103113592,1015870568)+W(8,1023447506,-1114279623,1048352911,-1115507167)+W(9,1040518727,1038294495,-1106032688,1041969331)+W(10,-1104596348,1044685961,-1104877098,-1117405559)+W(11,1032200833,-1104511859,1039045107,-1111795079);sum2=W(0,-1119788132,1033659476,-1112158198,1008462738)+W(1,-1128623485,-1135723434,1030330775,-1125624097)+W(2,992683382,-1104347191,1044081475,1034564598)+W(3,1037093866,-1118342628,1008221186,-1116661382)+W(4,1018867293,1020892153,-1090780387,-1098943438)+W(5,1024702018,1037085984,-1108937272,1041747819)+W(6,1022669528,1043646320,1053457206,-1103925357)+W(7,-1094689316,-1130567667,-1111881166,1006874186)+W(8,1044098145,1022003003,1053806225,1061138285)+W(9,1061570617,1042502677,1045330453,1015917808)+W(10,-1102594356,-1105788334,-1097169858,-1089462725)+W(11,-1090351234,-1124000960,-1102638867,-1119261652);WS(1059476151,-1123203418);
sum1=W(0,-1111725774,1032359159,-1110577724,-1105544893)+W(1,-1121304930,-1115245634,1036887935,-1110517831)+W(2,1035594491,1034919857,-1111760306,1046155316)+W(3,1044165509,1020829292,1039852002,-1120384574)+W(4,-1091810916,-1140486487,-1084838663,-1086139015)+W(5,-1095808892,-1096673622,-1127813812,-1090491960)+W(6,1057461865,1048140086,1060577506,1052038472)+W(7,1057513991,1053266340,1045123672,1055106407)+W(8,1016189354,1034245225,-1104347695,1027870402)+W(9,-1103056264,-1108853472,1031021091,-1133152957)+W(10,-1123857235,1028750247,-1113205590,-1121460986)+W(11,-1148349487,-1113141864,1036934292,1011178567);sum2=W(0,-1114868977,-1107973502,1044770988,-1101288212)+W(1,1025917421,1028043472,-1111158861,-1123193100)+W(2,1026556603,-1115461868,-1104823400,-1105554340)+W(3,1036199790,-1116199065,1020651575,-1128075734)+W(4,1004734644,-1092079110,1059587552,1045430990)+W(5,1037874646,-1137785064,-1093651456,-1127404110)+W(6,1034344926,1042028492,1024895663,1050688149)+W(7,1047334362,-1116948841,1044938016,1042458099)+W(8,1040708934,-1103991549,1051421807,-1095880897)+W(9,-1118101029,-1122024357,-1099771430,1007412048)+W(10,-1131620842,-1105590488,1029419915,-1114582112)+W(11,1015496806,-1121536685,-1121478353,-1127827256);WS(-1096078190,-1082738059);
sum1=W(0,1007239809,-1114850361,-1130257143,-1112210107)+W(1,-1118665957,1028242343,-1116764258,1022403683)+W(2,-1108860284,1046670329,-1103368477,1045976117)+W(3,1029494103,1036298605,1029804679,-1128309634)+W(4,-1100207850,-1101169270,-1116530972,-1088435015)+W(5,-1092482434,-1090334611,-1105280439,-1099682433)+W(6,1053165251,1050939564,1051252601,1056131912)+W(7,1045571555,1053021861,1035862579,1038809821)+W(8,-1112013420,-1126100266,-1112810720,-1124484747)+W(9,1041969097,1032260218,1044490698,-1114977769)+W(10,-1115685558,-1124400725,-1112871192,-1117830909)+W(11,1031308937,-1143992478,1037078646,1016808747);sum2=W(0,-1133820219,-1147891684,-1127336652,-1127200453)+W(1,1020736496,1001166860,1022486646,-1135690985)+W(2,1027229337,1032424255,-1137665638,1045946307)+W(3,-1116510358,-1145031593,-1116471963,-1126621635)+W(4,-1115513384,-1107406978,1037916056,-1096925824)+W(5,1031285965,-1138759126,1020254812,-1122394148)+W(6,1007940354,-1125237780,1044701152,1067148595)+W(7,1076670751,1039470145,-1109537872,1025436583)+W(8,-1156542700,1031863482,-1113898133,1048747828)+W(9,-1101339101,-1070343554,-1082365934,-1107321525)+W(10,1020775992,994071912,-1127018949,-1115116116)+W(11,-1122694416,-1106720041,1034791139,1039293842);WS(1056919406,-1123699093);
sum1=W(0,-1153021483,1016658279,-1169964908,-1131540465)+W(1,-1116724456,1018808083,986184318,1026972628)+W(2,985933670,-1142160193,1032391598,-1109380555)+W(3,-1112807501,-1115139838,1023499017,-1119658051)+W(4,-1089586019,-1106728023,-1095447822,-1095937215)+W(5,-1092279079,-1105250414,-1104943256,-1093497009)+W(6,1058308826,1043832952,1054485203,1051425640)+W(7,1057168451,1053123845,1034402292,1056025192)+W(8,-1122912091,-1111941676,-1114359010,1038539876)+W(9,-1129000267,-1105627696,1011544866,-1129701482)+W(10,-1130942473,-1162334614,-1115887538,1035573952)+W(11,-1120065804,1037216107,-1114397383,1031803900);sum2=W(0,1034281368,-1126716121,-1121241308,1045372780)+W(1,1035929285,1047600787,1004087438,1041718259)+W(2,-1104410341,1032410612,-1087414339,-1068615761)+W(3,-1067644471,-1091405946,-1118166494,-1097556864)+W(4,1018060402,1017706532,1061712823,1078313037)+W(5,1079888634,1048822788,1023636550,1035128990)+W(6,-1138447737,-1115589617,1021983592,-1100339818)+W(7,-1123293195,1030149270,-1120625820,1021734756)+W(8,994323516,1029627322,-1133709215,1015111478)+W(9,1023885100,-1124744731,1010097407,1009567515)+W(10,-1140256393,-1133676977,1012505315,-1130902073)+W(11,1028720332,-1123320040,1022959192,-1136405679);WS(1057577783,-1116545908);
sum1=W(0,-1140559047,-1119858755,1001413734,1019558160)+W(1,1027838711,-1123065945,-1133184076,-1116764451)+W(2,1023488522,1007841757,-1099448121,-1135636631)+W(3,-1106014610,-1112832085,-1132115376,1007686986)+W(4,1031631673,1034355893,1034820815,-1095265297)+W(5,-1133110549,976310772,1031909175,1033492939)+W(6,-1127758170,-1102068668,-1139646818,1043309332)+W(7,1058446926,1018622064,1033516923,1033353766)+W(8,1037581685,1038802963,1020321573,-1118918103)+W(9,-1104027725,-1110623851,-1124259695,-1114622946)+W(10,-1129099776,1023940956,1023108226,-1133216315)+W(11,1027058075,-1123708581,1025545342,-1118432359);sum2=W(0,-1139693312,1036960926,-1143311649,990661185)+W(1,1015972640,1000525745,-1129692664,1028832752)+W(2,-1124752720,-1121090060,-1099787410,-1112556974)+W(3,-1123282486,-1104610584,1028371280,-1104217347)+W(4,-1098950560,-1103693150,1033289622,1052753541)+W(5,-1106573325,1031872996,-1115662969,-1115847157)+W(6,999696497,1034222778,-1104157082,1058657457)+W(7,1042484509,1044261031,1026599244,1041506121)+W(8,-1111434581,-1119707404,1018041096,-1108624084)+W(9,-1111132399,-1121815492,1018446608,-1129135268)+W(10,1026280044,1014405392,-1121205834,1023217352)+W(11,1005957425,1017712752,-1139874592,1010211304);WS(1063874743,-1123600943);
sum1=W(0,1026726381,1005084141,-1121313992,1022502021)+W(1,1010678471,1012880846,1016038684,1031948511)+W(2,-1110972995,1029034162,1029564141,1019350337)+W(3,1021423943,-1112342611,1036724585,-1096649610)+W(4,-1088392527,-1096434085,-1088422197,-1089197156)+W(5,-1089730182,-1099324833,-1105649226,-1102131796)+W(6,1060534134,1052968261,1061531727,1048937234)+W(7,1053585019,1049533342,1044791660,1047748258)+W(8,-1131352649,-1125442370,-1111100967,1007055431)+W(9,-1124123103,1037169096,-1119334386,1048887628)+W(10,1017113381,1023149165,-1121647548,1028622922)+W(11,-1132301739,-1122598880,1017220849,-1134858375);sum2=W(0,1041516351,-1114001722,1031962338,-1127882717)+W(1,1024371132,-1116893380,-1137233618,1035584360)+W(2,-1098661524,-1113317539,1041960143,-1113172562)+W(3,1057245216,-1108932190,1040530840,-1090505328)+W(4,1065773241,1066164852,-1094243603,-1071023147)+W(5,-1087722937,1043021464,1059923771,1062948018)+W(6,1067471192,1062194047,-1131590099,-1071391818)+W(7,-1082288010,1036914992,1056604249,1065534266)+W(8,-1095722385,1029392016,1045112423,1027735196)+W(9,1047570295,-1110460182,1008215114,-1096088381)+W(10,1025030832,1015621429,1033273068,-1106774969)+W(11,1021784721,-1147670187,-1157997580,1025226110);WS(-1081605212,1037230241);
sum1=W(0,-1129286954,-1127382348,-1114123448,-1119205995)+W(1,-1116053850,-1114061454,1024011222,-1165173963)+W(2,-1115600951,-1127078325,1045220821,1032978341)+W(3,1031622828,1039357911,1020277751,1026874614)+W(4,-1139829872,1037397159,-1103957592,1057561887)+W(5,1057799156,-1103125195,1035843369,-1159950147)+W(6,1042245092,-1101819637,1057239854,-1089716883)+W(7,-1088291628,-1162281827,-1111135597,-1144308089)+W(8,-1130516890,1025459530,-1098019463,1040837167)+W(9,1039979404,-1123433113,1008116332,-1115664788)+W(10,-1191245347,-1140137724,-1135821456,-1153142562)+W(11,-1123070334,-1115244132,975751222,-1121723210);sum2=W(0,-1129847377,-1132201467,-1111059277,1032250249)+W(1,1003251981,-1175110606,-1119100754,1007928974)+W(2,1027890930,-1115667911,-1109124506,-1115518668)+W(3,-1131706033,1033851379,1008685286,-1130851063)+W(4,1045384717,-1139027758,1062718876,-1088514518)+W(5,1043614591,-1096199608,1038009999,-1126833063)+W(6,-1131041629,-1086235324,1071241567,-1104078593)+W(7,-1091065468,1021865867,-1113376611,-1120766781)+W(8,-1118537275,1015945835,-1090110249,1050303031)+W(9,-1130925231,1030828678,-1128909271,-1121346672)+W(10,-1129495121,1022067627,-1139816838,-1109320206)+W(11,1035917053,-1140186118,1027374356,-1130315761);WS(1048635758,-1111558989);
sum1=W(0,-1116715915,1007517554,-1125319757,-1130676803)+W(1,1032051720,-1122176818,1019813529,-1125995833)+W(2,-1114167026,-1144951432,1032434734,-1116349759)+W(3,1007313161,1037795522,1011561671,1022555096)+W(4,1019884197,-1100411873,-1082609609,-1099356457)+W(5,-1114189151,-1098216348,-1118483848,-1115419480)+W(6,1046236914,1042364482,1057088310,1060062511)+W(7,-1105629450,1032549225,-1156935944,1017135051)+W(8,1023679491,1030303424,1025882348,1027068912)+W(9,1046455412,1037080648,1024380849,1020138940)+W(10,-1123924777,-1115625243,1018952757,-1117219752)+W(11,-1128015465,-1117338239,1001454266,1015509889);sum2=W(0,1017200252,-1128076598,1020177744,1027061114)+W(1,-1120062015,1007295183,1005463470,-1120999608)+W(2,1032764106,1032749056,1042154489,-1091917968)+W(3,-1115647155,-1109350747,-1136438311,-1152745757)+W(4,-1100965710,1036328960,-1079875623,1069362278)+W(5,1041923814,-1121245377,1023734232,-1115720719)+W(6,-1120952053,-1105592489,-1093732085,1053281179)+W(7,1053015354,1023497366,1044015507,1040619345)+W(8,1023440400,1037836738,-1110726007,-1110949820)+W(9,-1097734576,1029656316,-1107014120,1039138178)+W(10,1026555164,-1121478225,1032334674,1004458190)+W(11,1030547292,-1115087241,1024950244,-1107079388);WS(1057226679,-1099093504);
sum1=W(0,-1117743115,-1111361838,-1142218540,-1115584496)+W(1,-1144474236,-1112915081,-1118048876,-1124754680)+W(2,-1106860569,-1097721634,1017711998,-1098477656)+W(3,1017808579,-1127808199,-1110778360,988685674)+W(4,1059123761,1043835217,1054886149,1036645937)+W(5,-1096319852,-1102898152,-1108186916,-1103594844)+W(6,-1116606854,-1113320356,-1098795498,1036044245)+W(7,1058878095,1054951826,1042821748,1057715322)+W(8,-1117312579,1021938430,1024346219,-1113074392)+W(9,-1113306631,-1104150268,-1109837016,-1104945799)+W(10,-1126837697,-1108681130,-1128001843,-1126342351)+W(11,-1145404316,1022603516,-1113519979,-1166667748);sum2=W(0,1017552406,-1121365003,1024315197,-1126393870)+W(1,1006096662,1026122801,-1115019758,1010820131)+W(2,-1115134458,-1113297695,-1121331284,1034056828)+W(3,-1116036592,-1122098200,-1138309587,-1114451237)+W(4,-1123239700,1033578978,1032104202,-1122610502)+W(5,1042239151,-1128246386,-1130645774,1021632898)+W(6,1040415751,-1119377084,1033268884,1042552247)+W(7,1014688747,1038912262,1011328923,1013103251)+W(8,1024802817,-1140510683,1031096569,1027588477)+W(9,-1116363642,-1106292650,-1119712705,-1106135611)+W(10,-1116030864,-1154029132,-1127078294,-1123710517)+W(11,-1142638070,1002524342,-1123496021,1026182445);WS(-1108758968,-1120615143);
sum1=W(0,1007512449,-1118729201,1033236958,-1188181540)+W(1,1032455763,-1139132956,-1126666947,1028445809)+W(2,1043847294,-1115009907,1038269372,-1103491829)+W(3,1026842103,1028990457,-1112992067,1045480960)+W(4,1041722714,1047642150,1052029054,1056274631)+W(5,1057598894,1044856958,1049081300,1008203541)+W(6,-1089504654,-1097300100,-1092318719,-1092329088)+W(7,-1088834696,-1094694701,-1102944265,-1095636207)+W(8,1035899020,1024857813,1041772976,-1115586563)+W(9,1037648114,1028932916,1031373190,987483733)+W(10,1021562716,-1157490338,1033997944,-1127937658)+W(11,1034853541,-1139535439,999073631,1033314299);sum2=W(0,1022601823,1027503424,-1114440342,1031020236)+W(1,-1115479573,1028798660,-1137878778,973255146)+W(2,-1119857460,1016942723,-1113768249,1049278985)+W(3,1023747258,1008539869,1030670036,-1124354630)+W(4,-1099325942,-1112391205,1050839307,-1097330938)+W(5,1019565806,-1108724816,-1143955309,-1115374863)+W(6,-1068582801,-1076271776,1067690352,1077639092)+W(7,1061065209,-1120523343,1002861982,1029925423)+W(8,1035739756,-1104095012,1026494027,1047876791)+W(9,1016405011,-1115660355,1022661839,1033007729)+W(10,1015907333,1016973548,-1122697579,1015148595)+W(11,-1106941761,1032414836,-1126087053,-1124658022);WS(-1125070560,-1096513533);
sum1=W(0,-1112401838,-1141896047,-1114813980,-1125005414)+W(1,1026386210,-1115056418,1012901881,-1125623196)+W(2,1032850683,1035442769,1027743049,1036941992)+W(3,-1104378805,1037833707,1022681350,1033887999)+W(4,-1111199410,-1105684773,-1093508577,-1099350541)+W(5,1060063436,-1112618105,1035294797,988362813)+W(6,1046757622,1047296038,1061969278,-1107426238)+W(7,-1092774776,1028130403,-1127381572,1016528878)+W(8,1033951818,1013771590,-1100008383,1023589122)+W(9,-1122038496,-1110298148,1030080099,-1106008748)+W(10,-1110786345,-1113414691,-1131095256,-1114443933)+W(11,996299870,-1117830096,-1140100259,1014753608);sum2=W(0,-1128089453,-1110645236,-1130916401,1026446699)+W(1,-1115610756,1032679495,-1114433002,-1123355757)+W(2,1024340419,1043920397,-1129344777,1009781987)+W(3,-1102796808,1037523581,1023912055,1026431795)+W(4,-1102023306,-1114712453,1028225499,1057874897)+W(5,1052660862,-1102216434,-1127455825,-1128264837)+W(6,-1103821003,-1097377481,972074333,1059140954)+W(7,1038144249,-1107293486,1006589878,-1102041035)+W(8,1043342989,-1109265540,-1100613575,-1103696793)+W(9,-1116201867,-1131885037,-1105206442,-1127587329)+W(10,-1119644228,1026656603,1034952995,1032660433)+W(11,-1130501689,1029362471,1013212643,1005668278);WS(1049867118,1034735186);
sum1=W(0,-1127774262,-1117373036,1031064438,-1112922680)+W(1,1012648832,-1132535687,-1120670652,-1140537009)+W(2,1029333619,-1123455456,-1105261096,-1096141178)+W(3,-1120189874,1024540628,-1138107141,1000234461)+W(4,1019113028,1040322517,1040279186,-1101685436)+W(5,1044944438,-1121818673,1035373868,1032620736)+W(6,1024964758,1032014380,1048588372,1050135703)+W(7,1034886579,1040490120,1016312768,1034120602)+W(8,1007980364,1019723167,-1114399774,-1100797936)+W(9,-1113398479,-1150021355,-1128775361,1008873398)+W(10,-1121402761,-1118901061,-1126411220,-1110911420)+W(11,1019321608,-1114680743,-1121234663,-1121766352);sum2=W(0,-1161289046,1020587590,1029682388,1031608572)+W(1,-1117304231,-1129471662,965398246,-1134569151)+W(2,-1111556088,-1127668568,-1095922552,-1092239431)+W(3,-1165373610,-1120133906,1007233453,1019046119)+W(4,1038429491,-1130067243,1050898724,1058359401)+W(5,1040200303,1044552317,-1132308256,1031851372)+W(6,1024158411,1018324827,-1123472030,-1093717514)+W(7,-1118204561,-1112781150,1017795291,-1120826542)+W(8,-1123794133,1035096674,-1142905112,1042534485)+W(9,-1137719883,-1136196985,1027736448,-1128305748)+W(10,1016121349,-1127328688,-1126947701,-1126252937)+W(11,-1122434117,-1137031592,-1121369248,-1162116006);WS(1063598519,1040709546);
sum1=W(0,989424433,1025004011,-1117397173,1010227902)+W(1,-1116859551,1035862832,1012428267,1028295307)+W(2,-1129964132,1018517694,1036280904,1042042835)+W(3,1025484624,-1108371497,1028794752,-1105766207)+W(4,-1092181324,-1096845618,-1092686069,-1082263275)+W(5,-1087946945,-1124000752,977020321,-1108973663)+W(6,1056340507,1052096915,1055848084,-1117189370)+W(7,1053023013,1053676604,1044581128,1048031389)+W(8,-1140166214,-1124688156,1027380346,1041673920)+W(9,1025279965,1021321051,-1125256895,1035434166)+W(10,1007420926,1025298052,-1114706068,1030527159)+W(11,1004378644,-1130325786,1025029349,1015026205);sum2=W(0,-1128989779,-1132752301,-1121498089,-1112228563)+W(1,1023519830,-1111737432,1023675120,-1134051546)+W(2,1040099849,992269838,1034828720,1034859451)+W(3,1034954038,-1122349299,1019899084,-1112348174)+W(4,-1100874000,1034251701,-1104384455,1044543345)+W(5,1046406891,1028583216,-1114022376,1040182737)+W(6,1021993174,-1130867684,-1113539068,1053848304)+W(7,-1104908283,-1100179639,-1111378604,-1097476412)+W(8,-1130783901,1034483450,-1122004711,1016645052)+W(9,1032774629,1016210650,1033297067,1025418184)+W(10,1011642260,-1123860313,1016725938,-1122625223)+W(11,1011006880,-1114528083,1021084026,-1141294629);WS(1052377710,-1116561061);
sum1=W(0,-1122160137,-1112995181,1021266631,1017022397)+W(1,1032809511,-1105019076,1019774100,-1119221338)+W(2,1026711393,1046449684,-1094207935,1051777944)+W(3,-1105978112,1045042328,-1140860791,-1140595366)+W(4,1034438088,-1103073456,1059878180,-1091454284)+W(5,-1108523806,-1137740923,-1113848547,1015748571)+W(6,1023922180,-1112523427,1031595583,-1107259466)+W(7,1059633699,-1094439010,1048809290,1019553093)+W(8,-1115207840,1036366239,-1096200621,1043506315)+W(9,-1105628259,1043730779,-1114298535,-1117446555)+W(10,1014756539,-1110629817,1025340632,-1122333286)+W(11,-1126028515,-1114494718,1024493780,-1121208702);sum2=W(0,-1125003387,-1110204990,1008672566,-1110854180)+W(1,1015432805,1007507570,-1129875419,-1145172348)+W(2,1023545558,-1122326332,1039271760,997586352)+W(3,1043658401,-1126010948,-1128126180,1018354299)+W(4,1001356924,1049948311,-1104177316,-1099440370)+W(5,-1101604747,-1112581048,1034699764,-1118892801)+W(6,1019826271,-1106041547,1040609653,1057375034)+W(7,-1098469549,1041033112,-1108980340,1026776081)+W(8,1029018751,-1122275300,1017003703,-1099421810)+W(9,1052007058,1018898909,-1118843549,-1123423040)+W(10,-1114113554,1028296019,-1143932072,-1122149120)+W(11,-1118594118,-1129527698,1031512617,-1147650596);WS(1066846108,1044745002);
sum1=W(0,1019372186,978233216,-1129136976,1025331363)+W(1,-1142297744,1015116199,1015645340,1016287548)+W(2,1049403789,-1107121557,1041504923,-1134682116)+W(3,1039399714,-1122699462,-1121336819,1026221102)+W(4,1042475733,1051348497,1048713517,1054698948)+W(5,1049146911,1058118606,1046729314,1056609718)+W(6,-1091781177,-1100692098,-1091573825,-1089263023)+W(7,-1091452887,-1090043533,-1102394372,-1091564925)+W(8,-1124410122,1039801345,1032893815,1040511932)+W(9,-1146055296,1032222216,-1115550793,-1107840672)+W(10,1015897062,1009376476,-1126291000,1006187856)+W(11,1016897132,1012743170,1010428515,1000566800);sum2=W(0,-1121498998,1025173682,-1127952317,-1123064681)+W(1,1031325102,1031547392,-1116804726,1013263415)+W(2,1040076187,-1110698495,1046879062,-1114452496)+W(3,1037259271,-1113826794,-1113826560,-1114840697)+W(4,1040991236,1027215822,-1097422534,-1079622690)+W(5,-1113150532,1059352243,1032134129,1048220488)+W(6,-1097642453,1032193313,-1089335507,-1070315938)+W(7,-1080614075,1063284099,1075195474,1071802337)+W(8,1041191639,-1107046015,1027648922,-1107556506)+W(9,1040688678,1044912350,-1107091577,1050907604)+W(10,-1143069461,-1127878497,1033858873,1031644922)+W(11,-1125227083,-1135729999,-1112123781,-1104322253);WS(-1083170743,1032719415);
sum1=W(0,1023701883,1027723212,-1122560214,989186599)+W(1,1018265472,-1118377474,1034616094,-1143849572)+W(2,-1115388842,1037576352,1028066352,1034436696)+W(3,1046871436,1036384970,1041769608,1033711598)+W(4,-1095142736,-1104329709,-1093573195,-1091782714)+W(5,-1090370147,-1088395265,-1092608855,-1085234190)+W(6,-1131637740,1047136718,1050356544,1058921626)+W(7,1057401704,1046747968,1048250192,1051022467)+W(8,1043889005,-1114738168,1032119470,1035779088)+W(9,-1119260798,1026791695,1007978244,1035213927)+W(10,1012236805,-1143133226,-1126174356,1024911192)+W(11,1033076018,-1122725807,1033024419,1028803056);sum2=W(0,1040592912,-1148866748,1032765896,-1113675298)+W(1,1035431068,-1111525482,1031171080,-1111672592)+W(2,-1091007599,1043419584,-1111893630,-1100951705)+W(3,1030657616,-1123081200,1009914590,1048594219)+W(4,-1122569720,-1102576481,-1114969246,1060370086)+W(5,1018512847,-1112438148,1033713452,-1120657004)+W(6,1061904811,-1110256028,1042199718,1060838438)+W(7,1061366749,-1086083341,1029235040,-1090315205)+W(8,-1096410255,-1106770914,-1108992598,-1088153932)+W(9,-1091610254,1039676388,-1104419583,1040642594)+W(10,-1107753434,1043044202,-1138614142,-1121677972)+W(11,1049599377,-1117594428,-1154941432,1041324320);WS(-1087374135,1068569819);
sum1=W(0,1034522569,-1114460210,1040675195,-1156322949)+W(1,-1126356143,1038944141,-1123272884,-1147588893)+W(2,1036038485,-1134485343,998999958,-1102898978)+W(3,1032174021,1032843110,-1112707068,1041667373)+W(4,1051494643,1048850073,1055860825,1058980799)+W(5,1050366134,1048730421,1043911796,1049367775)+W(6,-1092286050,-1097395434,-1093950865,-1086427635)+W(7,-1097745188,-1098221875,-1095510475,-1093210118)+W(8,1024631242,-1155697773,1034953465,1036357020)+W(9,-1115522123,1020968428,1032316940,-1134843155)+W(10,-1124293233,1035227470,1022306499,-1115248568)+W(11,1025097211,1020281868,-1112095119,1003691067);sum2=W(0,1036982689,-1109420523,1038171016,-1114883799)+W(1,1032698755,1023400751,-1119043865,1034471555)+W(2,-1101176821,1040154700,-1103427381,1011961296)+W(3,-1115041464,-1112162319,-1114657793,-1117007917)+W(4,1032029724,1008871494,1053639476,-1094943648)+W(5,1046242469,1015257266,1018562568,1031877719)+W(6,1031712503,1051308638,-1103617514,-1090481186)+W(7,1048516585,-1110670159,1026474691,1044794303)+W(8,-1095262307,-1089037290,-1077227331,-1077304111)+W(9,-1075605762,-1086532256,-1115849955,-1110424851)+W(10,-1135236510,1036178124,1056219784,1063074442)+W(11,1070767205,1074120487,1066414901,1052188053);WS(-1094340206,1025238393);
sum1=W(0,1025401267,-1120317764,1029217422,1017691154)+W(1,1015273200,1006374863,-1149759301,1023921508)+W(2,1041212259,-1123694073,1040075594,-1128349902)+W(3,1030937834,1030337996,-1112880429,1048792866)+W(4,1051626551,1044638395,1051991350,1049159169)+W(5,1055056667,1045537234,1047952828,-1109761292)+W(6,-1087771683,-1099303356,-1089805402,-1090474853)+W(7,-1089928234,-1095611655,-1103717662,-1097665994)+W(8,1026720107,1027277160,1042793877,1032035372)+W(9,1038797403,1028636183,1034683820,1024357062)+W(10,1024873417,1003045609,1025974530,-1140916353)+W(11,1026491292,-1125445197,1018728702,1024842472);sum2=W(0,1016272983,-1125328223,1019432157,-1136495190)+W(1,1024638490,-1122054341,1016158573,-1137665190)+W(2,-1117564089,1007328518,1038058236,-1106032359)+W(3,1036423350,-1129861056,-1141592892,1032273458)+W(4,1054344808,1047318060,-1095657702,-1084625245)+W(5,-1124414562,1036648948,-1120282232,1033205457)+W(6,1082928383,1074423709,-1074337637,-1066615612)+W(7,-1087090886,1034359725,999766988,-1114245215)+W(8,1043627742,1037006400,1040243063,-1106132294)+W(9,-1119023275,1004167460,1002865564,-1113153751)+W(10,-1113989008,-1137080694,1017883877,-1126758430)+W(11,1040797418,-1113361096,1023713345,1022755221);WS(-1098231918,1035887052);
sum1=W(0,1007686525,-1112046456,-1136641001,1025581173)+W(1,-1121240420,-1165513922,-1114143760,-1123656209)+W(2,-1117693688,-1119004197,-1104788790,-1092353842)+W(3,-1104580134,-1146015939,-1162096818,-1117522176)+W(4,1048268202,1036810732,1055375147,1069647932)+W(5,1052170270,1020096363,-1125578169,1031911554)+W(6,-1105099271,-1097653932,-1098720398,1066085926)+W(7,-1093227035,-1123833253,-1107379122,-1130540403)+W(8,-1110112236,-1130249512,-1106155488,-1091717545)+W(9,-1110987409,-1108464746,-1156567122,-1106840908)+W(10,1016554315,-1115219957,-1142876018,-1143806946)+W(11,-1113561092,-1123809427,-1113074326,-1120698772);sum2=W(0,-1125891647,-1139529830,-1127048511,-1119620679)+W(1,1015042367,-1133002574,1001053676,-1136336990)+W(2,-1121500935,1033326245,-1110257678,1033808587)+W(3,-1152963927,1023704513,-1125968895,-1159911790)+W(4,1021750179,-1133323886,1040835222,1061147710)+W(5,-1110018076,1035246842,-1123027527,-1144777900)+W(6,1017645919,-1167588957,-1108825416,1055027509)+W(7,-1105425292,-1090179180,1035235033,-1104047270)+W(8,-1130193055,1018366499,-1144215516,1035778772)+W(9,-1105010302,1019226535,-1113493000,-1137733870)+W(10,-1118741587,1021086319,-1113356630,-1123951235)+W(11,-1124596863,995355927,-1135606974,-1141401292);WS(-1081201436,-1083122818);
sum1=W(0,1024396773,1040103323,-1104054160,1042893967)+W(1,-1121710378,-1122190892,1038539251,1020559724)+W(2,-1118776317,-1121204906,1048678635,-1101546374)+W(3,1036673102,-1112386175,1022162966,-1111471555)+W(4,-1090317103,-1098486564,-1094484293,-1101075087)+W(5,-1095873942,-1099326495,-1101153544,-1095630377)+W(6,1056470156,1048677796,1048629197,1052113969)+W(7,1033707976,1057451847,1027207978,1053998976)+W(8,-1120183581,-1105729174,1032093347,1048228642)+W(9,1044099610,-1102747354,-1114063013,-1125760751)+W(10,-1124728406,1010393788,-1105359341,1048587688)+W(11,-1107414311,1034642220,-1109685144,1033222029);sum2=W(0,-1130151079,-1128601535,1016586775,-1116462462)+W(1,1006316053,-1136401487,-1134837023,1015531121)+W(2,1029357099,-1139320303,1016703563,1036545095)+W(3,1027702761,-1115282656,1025282364,-1128863347)+W(4,-1141051917,1027307392,1040480663,-1084177500)+W(5,1027514935,1033882273,975470826,1013565163)+W(6,-1126143047,-1124015138,-1090482710,-1061542668)+W(7,-1081711054,1042416533,-1107083018,1030037156)+W(8,-1138853383,1026568428,1051692940,1087807110)+W(9,1065457143,-1101742731,1035528582,-1123914522)+W(10,1016378649,-1128887123,1024508650,-1109325640)+W(11,-1115450794,1030137534,1016609727,-1122133136);WS(1056806766,1019813151);
sum1=W(0,-1109922347,1027672232,-1113027385,-1106442907)+W(1,-1119504732,-1127683323,1015134384,-1122196904)+W(2,1038862168,-1098777292,1057340869,-1131946518)+W(3,1048903346,-1100586740,1027127869,-1136830686)+W(4,-1094336356,1025923920,-1089223672,1049099726)+W(5,-1102142547,-1122538541,-1099585557,-1100472159)+W(6,1045176100,1046907893,1028090813,1060367739)+W(7,-1102839017,1052174932,1024110556,1047790604)+W(8,1023835087,-1097985673,1044113854,1010151151)+W(9,1051267347,-1093148714,1029024221,-1137237669)+W(10,-1117706029,-1143840774,-1111671123,1025756788)+W(11,-1111600768,1040843731,-1107564881,-1131252120);sum2=W(0,1016054025,-1116580030,-1128856269,1024017790)+W(1,-1120027976,1003808451,-1120561807,1020365697)+W(2,-1119367753,1033363716,-1107794961,-1129548157)+W(3,1034251322,1039517400,1019337653,-1174223189)+W(4,-1115811972,-1119979151,1046175546,1051115205)+W(5,-1095340379,-1127431641,976018325,-1148320619)+W(6,1024987046,-1114756690,-1100926142,1048732221)+W(7,1044324276,-1104827086,-1139095561,-1138276477)+W(8,1016843613,1025664850,1028330842,1029232538)+W(9,-1105635461,1042504965,-1118828309,-1117203320)+W(10,1007599121,-1120202841,-1144919563,-1123931557)+W(11,-1122027017,-1118580981,1016896817,1009819353);WS(1067549148,1061168738);
sum1=W(0,-1136860560,1019396970,1034693791,1031876061)+W(1,-1126960466,1026075051,-1129065354,-1125694250)+W(2,1041916271,-1102760394,-1100215160,-1127917744)+W(3,1038708237,1042570959,1024557450,-1114527138)+W(4,1043173595,1046914407,1063664325,1041579695)+W(5,-1084953669,-1099553438,-1111656016,1036161892)+W(6,-1099729080,-1097589844,-1085101004,1044764001)+W(7,1062969721,1046958554,1031927572,-1129394940)+W(8,1028345500,1036811500,1044130369,-1111608196)+W(9,-1096862061,-1104831702,-1121741642,1028864534)+W(10,-1117900922,-1118556558,-1118557363,-1148658183)+W(11,1028601293,1014732126,999719805,-1111432076);sum2=W(0,1037988572,-1109648154,-1115314649,-1110735622)+W(1,1029414023,-1115532881,-1114457629,-1123631499)+W(2,-1097183834,-1096035348,-1106718097,1044362532)+W(3,1044653749,-1118097482,1036871139,1035597348)+W(4,-1096111302,1046143856,1065688064,-1100541529)+W(5,1022961930,1041170408,-1121640520,-1109551474)+W(6,-1112255513,1047451704,1048785443,-1089624797)+W(7,1040629892,-1135819985,-1109975688,1030316886)+W(8,1025606252,-1109281762,1025033440,-1124926742)+W(9,1024229044,-1109992198,1007526703,1031542857)+W(10,-1131066844,1021094187,-1118872350,1035314838)+W(11,-1132267648,1004115214,-1128646118,-1117895342);WS(-1090126519,1034760182);
sum1=W(0,1022234099,987019599,1021371561,-1125185183)+W(1,1040030303,1005824514,1028122555,-1120592523)+W(2,1038732905,1040082783,1042926010,1019049563)+W(3,-1101231100,-1108355337,-1115211984,1035983309)+W(4,-1095221408,-1096833350,-1090005917,1049172122)+W(5,1056956325,1052986466,1046568014,1025899358)+W(6,1049091087,1049531159,1052645704,1048882035)+W(7,-1086324445,-1089320760,-1101798768,-1123937043)+W(8,-1141106060,-1100657291,-1098472859,-1113910991)+W(9,1041783487,1033537135,1037621024,-1125397784)+W(10,-1130848127,1036771650,1035488804,1025403478)+W(11,1007113098,-1138596020,-1128732298,-1127374557);sum2=W(0,1016736022,1011977196,-1137999416,1019963070)+W(1,1030437859,-1122046802,-1142727409,1018753414)+W(2,1032939170,-1102682487,1037611888,-1102949496)+W(3,1039010410,-1110345340,-1124097437,-1113761662)+W(4,-1122689775,1060510561,1051792579,-1073351999)+W(5,1059164734,1062467108,1031495287,-1101619274)+W(6,-1102551566,1060805847,1057985083,-1073393989)+W(7,1057367527,1062012989,-1147452225,-1099879364)+W(8,-1122487238,-1122236502,1036808922,-1103029047)+W(9,1039165500,-1106860549,-1143421321,1015482390)+W(10,1026411789,-1128029215,1019619350,-1125796177)+W(11,1024266957,-1119780381,1024156551,1016465010);WS(-1089242039,-1127205581);
sum1=W(0,-1124452989,1037734344,-1136469606,1045032037)+W(1,-1131176455,1029283077,1038076384,1029887056)+W(2,1047404342,-1111320098,-1115981071,1038279993)+W(3,1006926037,1030509432,-1123275877,1043334248)+W(4,-1086849964,1001557948,1055753134,1059294849)+W(5,1006841992,1049404683,1037635838,1044156233)+W(6,-1114062493,998659036,-1096047365,-1107330927)+W(7,-1105936042,-1087265492,-1095492784,-1080260267)+W(8,1042532510,1038364441,-1118490271,1044317529)+W(9,1035319841,1043122385,1027367204,1053177470)+W(10,1010360274,1032729828,1015888923,-1118190491)+W(11,1021147727,-1123196402,1027584778,-1118995315);sum2=W(0,1029897599,-1114965417,1025776431,-1121485495)+W(1,-1140617930,-1113546368,1031651703,-1117524097)+W(2,-1102843967,1046605828,1033633995,1048791648)+W(3,-1104898739,1031053127,-1108448442,-1108356905)+W(4,1001547796,1025076963,-1090433692,1044097140)+W(5,1042488362,-1118485295,1045463546,1040816680)+W(6,1049416264,-1100594038,-1096668289,-1117020477)+W(7,-1102246327,1034926551,1047237110,1044694712)+W(8,-1120840401,1041915682,1040646462,1042521794)+W(9,-1112857889,-1109164591,1015998805,-1109851905)+W(10,-1115391670,1020641677,-1111492899,1034331443)+W(11,-1115861875,-1134127978,-1120855845,-1124879769);WS(-1081567068,-1085072352);
sum1=W(0,1026202077,1017630556,1034866076,-1120073907)+W(1,990337572,-1122725732,1016189565,-1135328058)+W(2,1008391383,-1102096537,-1105309517,-1113888457)+W(3,1038015146,1010107993,1035371298,-1107104879)+W(4,1043376377,1035138955,1062685095,-1088326467)+W(5,-1087780001,-1095652846,-1111927693,-1134788873)+W(6,-1106037014,-1113878797,-1091962582,-1099527071)+W(7,1065743931,1048331161,1035819857,1033560764)+W(8,-1119432853,1041401156,1028045374,1036249665)+W(9,-1122166240,1030964177,1030882915,1034792920)+W(10,1015626934,-1112723700,995954372,-1112822301)+W(11,1036674595,-1165855255,1020668626,-1140134473);sum2=W(0,-1101998430,1034880732,-1111573656,1034691412)+W(1,1017688506,1032207084,1002612774,995363580)+W(2,1025808817,-1110518368,-1090739547,-1098171169)+W(3,1047617175,-1112107064,1027687639,1035291452)+W(4,1026331301,1035202798,-1095903349,1068344140)+W(5,-1085314459,-1108916250,-1113844364,-1111293323)+W(6,1041383807,1044537615,1045506861,1069658374)+W(7,-1090700374,-1135142667,-1106371211,-1105384559)+W(8,1033833028,-1096440885,1030373631,-1094064924)+W(9,-1106284721,-1113568166,1043762008,-1113615358)+W(10,-1108635033,1042833515,-1107072548,1037649108)+W(11,-1117475933,996218700,-1115713024,1031725587);WS(-1122270064,-1083487436);
sum1=W(0,1022021054,1000846209,-1120651002,-1133172181)+W(1,1015175368,1008528664,1014262402,1032206792)+W(2,-1111938972,1031069285,1035108132,-1122478547)+W(3,1022898156,-1109542844,1003755051,-1099224128)+W(4,-1089129474,-1092279467,-1089405705,-1088959911)+W(5,-1101358829,-1113192731,-1110785838,-1105614817)+W(6,1061173530,1053406092,1061891890,1046812368)+W(7,1052509753,1035774995,1040815801,1041852206)+W(8,-1117042135,-1112839626,-1115403968,1035227362)+W(9,983155781,1035355065,-1114859906,1046440556)+W(10,990992466,997371026,-1123767278,-1136588785)+W(11,1014548513,-1120262163,-1139309996,-1196238920);sum2=W(0,1044179919,1022028328,1040258943,-1118974089)+W(1,1033279863,-1117110809,1031745329,-1103290765)+W(2,-1111986018,998943655,-1095034556,-1095846499)+W(3,-1110448374,-1099083231,-1120681553,-1101323001)+W(4,-1080384748,-1088604014,-1104000317,1073459027)+W(5,-1098039236,1045892370,-1111672860,1055006842)+W(6,-1092393621,1029389095,-1090514887,1071708766)+W(7,1012336831,1049307354,-1100485937,1051814517)+W(8,1048581079,1009323699,1015383036,-1097133430)+W(9,-1122793353,-1097759856,1041920736,-1091667564)+W(10,1031858735,1021777892,1024626196,1024702395)+W(11,1031448400,1030521846,1016567237,1029007432);WS(-1097130350,-1073679750);
sum1=W(0,-1154560184,1025389788,-1145657140,1000633100)+W(1,-1120139600,1032643785,1008755251,1030414749)+W(2,-1142702368,1008724804,1035954194,1046084016)+W(3,1042008657,-1106616153,1025929714,-1102859291)+W(4,-1095841490,-1096179481,-1095185831,-1085973126)+W(5,-1089907161,-1096805620,-1098086361,-1107347576)+W(6,1034517635,1053502809,1045830013,1057148843)+W(7,1051926551,1052799826,1043469780,1050172789)+W(8,1044574577,-1112918112,1042446427,1025817904)+W(9,1017272605,-1123577295,-1143679882,1014891512)+W(10,992206103,-1143244972,-1122388570,-1139683234)+W(11,1018417129,1017209342,1016358830,1026775680);sum2=W(0,1021941992,-1140009235,1026649920,1025391436)+W(1,1033557641,-1110654493,-1117894486,1031221238)+W(2,-1106123822,-1137197699,-1104678389,-1103278668)+W(3,1049392706,1026389826,1046385471,-1107040085)+W(4,1031547466,1040410800,-1091687878,-1069452203)+W(5,1071493698,1075377385,-1093315115,-1101021764)+W(6,-1135582819,1048777558,-1102399061,-1086654414)+W(7,1036526271,1051671224,1003979070,1042747507)+W(8,1018035752,-1114989513,1038853959,-1112110740)+W(9,-1155541821,-1119910153,-1130248744,-1119798403)+W(10,1017098260,-1129449426,-1170697076,-1134437671)+W(11,1030635558,-1127657747,1010389927,1007123883);WS(-1110542776,1046722292);
sum1=W(0,-1112464600,1016022658,1027765771,981819586)+W(1,1026835189,1025143735,-1111607705,1024330241)+W(2,1033517476,-1108629467,-1106997347,-1113497042)+W(3,-1116788199,-1106078850,1041100086,-1124631714)+W(4,1047470894,-1133454244,1053995028,-1100439522)+W(5,-1093531706,1048713001,-1106135867,-1115421707)+W(6,-1131671638,1032980471,-1092318054,1042288212)+W(7,1061947018,-1121614518,1012478420,1041393523)+W(8,1005087552,-1105826521,1042584756,-1109105451)+W(9,-1098489206,-1105038597,977775992,-1114990145)+W(10,-1142745264,1026603482,-1129658366,1017901338)+W(11,-1142191304,1040275689,1016467704,1020475210);sum2=W(0,1031452303,992881643,978475180,-1121457613)+W(1,1034445399,-1130052481,1032145701,-1116902843)+W(2,-1132232893,-1116591675,1016124301,-1114931492)+W(3,-1094590847,1040974964,-1110729382,1035934107)+W(4,-1109510079,1032912109,-1114514404,1032060799)+W(5,1051504728,-1087149232,1039284419,1032317221)+W(6,1018866101,-1116915567,1055420465,1059251768)+W(7,-1088887374,1044275534,-1114948355,-1104983612)+W(8,1014551643,1024567259,-1097097100,-1118272021)+W(9,1048490818,1035881493,1032922179,1032032409)+W(10,1032688527,-1114177042,1042584708,-1109972047)+W(11,1024892699,-1108606213,-1121421993,-1133789139);WS(1059165367,-1104520251);
sum1=W(0,1007492796,-1117692608,1009135144,-1115310467)+W(1,1014125520,-1113191163,-1129119585,-1118876992)+W(2,-1108628644,1046236477,-1120534447,1052736188)+W(3,-1118278150,1036684740,1015268651,1008090175)+W(4,-1117534006,-1094176525,1053590938,1041258594)+W(5,1001540436,-1106455985,-1112388022,-1114551242)+W(6,1041312427,-1118419948,-1107420459,-1097199722)+W(7,1055263011,-1100739533,1040471133,1020553106)+W(8,-1113108212,1029454180,-1110779368,1053879643)+W(9,-1098892966,1045621277,-1126748266,1026632706)+W(10,-1124001749,-1113899741,-1131761404,-1114949702)+W(11,1025063448,-1105125705,-1126282358,-1127494856);sum2=W(0,1027505664,-1115834059,1029084872,1029257304)+W(1,-1128264406,-1138405484,-1118563560,-1127212263)+W(2,-1104527074,1048986559,-1089420265,-1098414029)+W(3,-1104406791,1040673804,-1203758566,-1117936348)+W(4,1034957797,-1098163961,1051828462,1053778056)+W(5,1048509414,-1106881855,-1113115951,-1136870020)+W(6,1041601252,-1125657446,1045110551,1041501740)+W(7,1041829791,-1119286592,1045914276,1022365337)+W(8,-1108054404,1041896195,-1099714824,-1129563106)+W(9,-1092212913,1049994472,-1105182054,-1139619400)+W(10,-1122847824,1034858548,-1116127595,-1170669534)+W(11,1037831890,-1107117839,1031508216,-1127498142);WS(1064754871,1064755352);
sum1=W(0,-1124996947,-1126765813,-1111973122,995438583)+W(1,-1131935965,1011044801,1017902933,-1117569083)+W(2,1039345889,1034558935,1025078634,1031530717)+W(3,-1102805216,-1112086641,-1108706152,-1125705364)+W(4,-1096693846,-1096907004,-1092723587,1042155040)+W(5,1055052309,1050402072,1045488762,1036105095)+W(6,1051509189,1048609181,1055455058,1038916133)+W(7,-1085470304,-1096310694,-1110967031,-1114430562)+W(8,-1110987505,-1122110878,-1103910610,1036071207)+W(9,1036962198,1042970795,999916154,1043170799)+W(10,1036233792,981607022,1033037628,1028131846)+W(11,-1113728073,-1155599823,-1121653045,-1131031997);sum2=W(0,-1133117125,1023646322,1023723550,1016880452)+W(1,-1128763803,1032406499,-1112596197,1024272758)+W(2,1035315397,-1104375670,1045506061,-1100884270)+W(3,1037072250,-1100571834,1043010850,-1106522969)+W(4,1034291601,1023753609,-1107539440,1046403885)+W(5,-1123261308,1040670310,-1109210140,1037357283)+W(6,-1093657955,1053589289,-1104725243,1040733712)+W(7,987308827,1047435788,-1103530057,1046389911)+W(8,-1083656994,-1096844972,-1079943056,-1108767061)+W(9,1066015084,1056439411,1038430454,1050581867)+W(10,1063017252,-1117431336,1065218548,-1110535684)+W(11,-1088643610,-1092199491,-1140617522,-1093142505);WS(-1141889920,-1150694570);
sum1=W(0,-1121776659,1035438770,-1107472311,1029335145)+W(1,1032163820,-1122959321,1035788170,1006930832)+W(2,-1156363954,1043244278,1039611642,1044045394)+W(3,1031781705,-1113754566,1041298854,-1113010266)+W(4,-1110656781,-1108191526,-1092681840,-1089342271)+W(5,-1107172434,-1110931796,-1106653204,-1098776751)+W(6,-1150990554,1049522698,1047918398,1044281805)+W(7,-1142656241,-1118178969,1044014582,1035377494)+W(8,1001967189,1024784007,-1120026675,1041259438)+W(9,1035091531,-1114065315,1037418924,968315538)+W(10,1009891810,1026909213,-1115519345,1032535224)+W(11,-1156224954,-1114416227,1034927023,-1127266575);sum2=W(0,-1096670021,-1102787949,-1099441746,1043637876)+W(1,1052388948,1042101483,-1135324433,1042670443)+W(2,1059540854,1039622534,1064198145,-1086802625)+W(3,-1085971065,-1113298762,-1098667485,-1104634628)+W(4,1045575353,1037899964,1030855272,-1101655681)+W(5,1033969343,-1105771070,1036465297,-1104173140)+W(6,-1133958494,1013042349,1040028330,1036771998)+W(7,1032851236,-1120619083,981463467,1030229840)+W(8,1031038260,-1110193614,-1117097690,-1125265460)+W(9,-1103569731,1049976190,-1101523135,1035574893)+W(10,-1118270456,988987510,1032105974,-1117707023)+W(11,-1134648980,1021389004,-1119296945,1035007302);WS(1060329015,-1107100438);
sum1=W(0,-1139109867,-1126768152,-1154508124,1024792785)+W(1,-1145234942,-1121126338,-1165337473,-1128378904)+W(2,1016013223,-1108878752,-1139382101,1046477388)+W(3,1046417836,1044791733,-1115375281,1030070044)+W(4,1052529520,1042283693,1051369597,1051787130)+W(5,1040695538,1046651812,1039020124,1046922680)+W(6,-1098269535,-1103310414,-1093610355,-1088582834)+W(7,-1090008057,-1097854544,-1110993568,-1105218789)+W(8,-1120993331,1033078264,1033661966,1015463488)+W(9,1035018943,1029328303,980238373,-1121430349)+W(10,1025836257,-1113589378,1029380042,-1124637616)+W(11,-1127749832,1030094510,-1117533511,1016154976);sum2=W(0,-1122821091,1016851522,-1106087013,-1109184296)+W(1,1045004090,1015529466,1026918939,-1115690469)+W(2,1039646422,-1156337616,-1131895450,-1080883791)+W(3,-1074990048,-1105476432,-1104782698,1022339242)+W(4,-1126218548,-1123806894,1035943528,1071805249)+W(5,1071092779,-1126394390,1031828962,-1122803425)+W(6,1020520346,-1105518185,999070248,-1096231655)+W(7,-1125969764,1028426171,1030594487,-1127395662)+W(8,1030755819,1031650855,1015158698,1043321474)+W(9,-1125796080,1026097175,-1140334484,-1110808154)+W(10,1003947528,980292032,-1123933765,-1122746065)+W(11,1018391998,-1126690400,1018627618,-1149029768);WS(1004067712,1029538397);
sum1=W(0,1039684517,-1113057966,1034662227,976341006)+W(1,-1116361615,1039793800,-1114202454,1023346679)+W(2,1025050595,-1112884456,-1120136235,-1106127376)+W(3,-1108532672,-1136083213,-1109109944,1026195563)+W(4,1055781642,1052279792,1057037092,1048957300)+W(5,1059667231,1049781884,1046150498,1052752022)+W(6,-1093421305,-1096595713,-1096171643,-1083333863)+W(7,-1093970477,1050503466,-1098876866,-1119746148)+W(8,-1134522377,1008080123,1038845557,-1104830972)+W(9,-1107387175,-1105145436,-1111371224,-1106375815)+W(10,1033902960,-1134909265,1000314570,1017566030)+W(11,-1120056627,1034175935,-1129568684,1002478074);sum2=W(0,996458418,1033154491,-1124552606,983965669)+W(1,-1113544599,-1118592979,1024911403,-1120675710)+W(2,1023361218,-1129026548,-1113149678,-1096377075)+W(3,-1108470744,-1107366613,1040480632,978762058)+W(4,1020176326,1036155261,-1107309754,1064108379)+W(5,-1113642974,-1147140265,-1123866147,-1127049668)+W(6,-1105686968,-1136279909,-1101182829,1059185253)+W(7,-1094171461,-1097506500,1038318571,1027330889)+W(8,-1112170015,1029838361,-1110765232,1029555247)+W(9,1048386684,995412594,1045927904,-1102738273)+W(10,1016740014,-1122796554,1027141165,-1111484496)+W(11,1033692775,-1108579478,-1126067866,1023291782);WS(1047133404,-1079170418);
sum1=W(0,1009155056,-1116032717,-1135035740,-1132905800)+W(1,1006908676,-1123509635,-1129150906,-1147535977)+W(2,-1122581460,-1127398915,-1111731450,-1098422622)+W(3,-1136427723,1019095722,1037504657,1012838771)+W(4,1042667713,1041078541,1051022508,1065228285)+W(5,1042380775,1050271906,-1107182030,1023931745)+W(6,1030334583,-1113404572,-1111377849,-1104817319)+W(7,-1091891141,-1103926112,-1121675713,-1123007382)+W(8,-1108143194,-1123819760,-1112180142,-1102890728)+W(9,-1111098047,1023382911,-1136273159,-1123177070)+W(10,1027163842,-1122554086,1023811915,-1133181796)+W(11,1001483047,-1116735535,1015217807,-1130799202);sum2=W(0,-1151544588,-1155029688,1018065470,1007239987)+W(1,-1125453823,-1118997712,1007542759,-1133631258)+W(2,1017708852,-1121981859,-1114670464,1049278985)+W(3,1041079714,-1156221672,-1120658712,-1113215345)+W(4,-1147640076,-1129630940,-1093073209,-1077783117)+W(5,1074285479,1034878186,1016277382,1033160981)+W(6,1008923057,1024218233,-1119653793,-1083801634)+W(7,1047560438,1028846010,1036336794,1022080564)+W(8,1011942449,998377109,-1131988255,1041518161)+W(9,-1114079754,-1118519138,-1121956184,1027490516)+W(10,1018406594,-1133221663,1025316590,-1123603132)+W(11,-1131599727,1024940191,-1131785133,-1130450701);WS(1043550940,1028476494);
sum1=W(0,-1115183742,-1121780237,-1117842775,-1110838377)+W(1,991794198,-1111061058,1015980795,-1113960535)+W(2,-1130981802,-1102302048,-1117998761,-1094318158)+W(3,-1102037997,-1115328139,-1113105937,-1106426583)+W(4,-1100607937,-1105099981,-1096882923,1062548805)+W(5,-1103616404,-1097580450,-1103768718,-1100373208)+W(6,1051762223,1040535662,1059510884,1068023761)+W(7,1055882697,1041348961,1034161697,1044552262)+W(8,1000007075,-1138550724,-1102853271,-1099046056)+W(9,-1102330336,-1131654944,-1112888641,-1110284503)+W(10,-1121847282,-1111548899,-1132334487,1013492582)+W(11,1018468811,-1119471984,-1129682576,-1148988811);sum2=W(0,1029690847,-1115037203,-1127742454,1036903221)+W(1,-1106227374,1039025001,-1108879063,1016988574)+W(2,-1103820712,1043435491,-1100462798,1028701483)+W(3,-1121926871,-1126383902,1017141302,-1115441627)+W(4,998970743,-1096312501,1044923803,1041049643)+W(5,1030485727,-1125321886,1008577020,1033537170)+W(6,1028297515,1046052979,-1099477234,1065575031)+W(7,-1098681477,1040854499,-1106467082,-1122382559)+W(8,-1122562191,-1115911439,1030898927,-1096910875)+W(9,1034498637,-1115709255,1013474716,-1129067614)+W(10,-1133991676,1007821180,-1113716427,1036974934)+W(11,-1111652935,-1126914630,-1128843302,-1114648723);WS(-1079050332,-1087647968);
sum1=W(0,-1138480508,-1122115440,1024624314,-1106223181)+W(1,1029330596,-1120448614,-1134294785,1004544641)+W(2,-1112879708,1026750308,1027382179,-1116109267)+W(3,1024806390,-1128868784,1022822666,-1115751616)+W(4,-1095708941,-1102419558,-1136300523,-1083772539)+W(5,-1103579129,-1102450653,-1100406055,-1099401009)+W(6,1054719611,1048762675,1057423590,1057166968)+W(7,1058690419,1049252525,1046884233,1051036287)+W(8,1031575959,-1106236805,-1115045376,-1096438944)+W(9,-1115914082,-1116410163,-1127656777,1031406769)+W(10,-1122888245,-1139407140,-1136279992,-1112079518)+W(11,1025354440,-1128866725,1008311211,1030150228);sum2=W(0,1018441725,1018735508,-1106801879,1042307735)+W(1,-1108191465,-1153036923,1023515972,-1130614305)+W(2,-1121226957,-1128043345,1036012925,-1105109021)+W(3,1026535678,1024075219,-1143871918,-1115606924)+W(4,1025980595,1035475244,-1093599779,1063056253)+W(5,-1097885523,1035122552,1028845741,-1124060823)+W(6,-1143973174,1028848366,-1119821797,1055391108)+W(7,-1118265757,1031788992,-1122707515,-1149779899)+W(8,-1145354702,1010180031,-1106432772,-1103238145)+W(9,-1114258989,-1114303163,1031455538,-1117711701)+W(10,-1118705847,1001175670,-1114705464,1024485983)+W(11,-1109715589,1025382280,-1125366621,-1122890135);WS(1061221431,1002405371);
sum1=W(0,-1123061017,-1109190069,-1111043962,-1094345134)+W(1,-1146354418,-1113941840,-1145213652,1017803349)+W(2,-1123480946,1033046959,1050201177,1042710035)+W(3,1050099666,1026923762,1032794752,1029204218)+W(4,-1090405194,-1104934581,-1102475777,-1086823335)+W(5,-1097235340,-1091215734,-1094526523,-1089600016)+W(6,1054235011,1044209302,1057895846,1052530935)+W(7,1058601910,1050794548,1041457976,1055600534)+W(8,1026563665,-1108435303,1037490845,-1102625680)+W(9,1033897294,-1126650490,-1110275296,1021417496)+W(10,1000058490,-1121369187,1030151784,-1111380603)+W(11,1040756961,-1126829850,1032331475,1033488871);sum2=W(0,1049937345,1058657690,1071079778,1072348129)+W(1,1066389113,1049150259,-1119844839,-1113785170)+W(2,-1089706816,-1087536311,-1078069733,-1078647761)+W(3,-1079714039,-1090508646,1022376790,-1103849791)+W(4,1050626093,-1106625833,1020012689,-1094966474)+W(5,-1098171132,1050328795,-1105718319,1052174137)+W(6,1030967529,-1105431871,1044296437,-1112600090)+W(7,1038432439,1044145959,-1126694997,1034822829)+W(8,-1115709839,1036734782,-1122006247,-1122763227)+W(9,-1130276743,1024733405,1021875579,-1112758982)+W(10,1039088353,-1109192755,1031394755,-1116226089)+W(11,1022577738,1012728894,-1123093509,1013882918);WS(-1092893294,-1089220584);
sum1=W(0,1008699951,1010493299,-1124403149,1025199074)+W(1,-1117387089,1015178277,-1125915034,-1130896954)+W(2,-1127519944,-1118558929,-1106263811,-1113928672)+W(3,-1098638288,1041393441,-1112838969,1035998582)+W(4,1053766130,1051919929,1056071340,1052175436)+W(5,1062605050,1047707912,1053546873,1049473086)+W(6,-1103359682,-1096189801,-1097091836,-1086367179)+W(7,-1096005139,-1102452900,-1101730612,-1095432549)+W(8,-1104704049,1032200864,-1111082358,1015736929)+W(9,-1120379023,-1123219920,1019333603,-1136688761)+W(10,998920846,1028526614,-1149496748,1019181009)+W(11,-1115659002,1027645503,-1131717807,-1136451331);sum2=W(0,-1143112647,992704062,-1124855502,1038449046)+W(1,-1105916124,1035072543,-1114904409,1019251456)+W(2,1034689803,-1109431235,1033324328,-1098090520)+W(3,1038361982,1040866773,1032024575,-1164332444)+W(4,-1115356591,1039097516,-1073085951,-1063972596)+W(5,1062319475,1085456662,1062308854,-1102205120)+W(6,-1121270233,1048248946,-1106299172,-1091325299)+W(7,-1090314642,1056006422,1043935118,-1107459099)+W(8,1017968792,-1124530814,1023517229,-1113483013)+W(9,-1141826407,1034240002,-1124783482,1032935811)+W(10,1021729984,1005857263,-1126326370,1015994888)+W(11,1013997779,-1134900259,-1135264403,1001043447);WS(-1104754908,-1106735671);
sum1=W(0,1030490103,1032595044,-1128810020,1032319302)+W(1,1019231224,1025969502,1016077744,1024124136)+W(2,-1117923535,1002237924,-1122216143,-1120462507)+W(3,1025980110,-1123369072,1034830735,-1104242198)+W(4,-1088908700,-1094516030,-1092804364,-1102093923)+W(5,-1088198897,-1096286026,-1102086589,-1103741447)+W(6,1033028505,1029213684,1050263192,1063837581)+W(7,1058220138,1054477272,1045907999,1049334234)+W(8,1045999740,-1144798556,1022746927,-1106958295)+W(9,-1107413149,995801516,-1115665070,1030012489)+W(10,-1120248133,1015682178,-1129595020,1030078356)+W(11,1021953856,-1153493672,1019926661,1022398552);sum2=W(0,-1116247065,1015145430,986051432,-1117862601)+W(1,-1114715779,1034116930,-1144744186,1026244953)+W(2,1035833889,-1107082251,-1114579693,1043695503)+W(3,1039299404,-1114493167,-1120378069,1019204162)+W(4,-1087068607,-1079268655,1022672030,1067901888)+W(5,1059152338,1008422125,1020328850,-1111927269)+W(6,-1107323417,-1102842161,1049680335,1032100715)+W(7,1040660749,-1115195239,1018816198,1021018582)+W(8,-1109274147,1016322550,-1111459111,1026073955)+W(9,992278036,-1173738319,1033325633,-1123657301)+W(10,1021616338,-1133554677,1010843781,1017398706)+W(11,998891466,-1139208557,-1138764845,1016479082);WS(-1092340590,-1082645376);
sum1=W(0,1018128252,1018184990,1028162329,-1117677972)+W(1,-1115495745,-1115409474,1015642046,-1118723567)+W(2,1033191659,-1106475329,-1101261661,-1102532636)+W(3,1031605429,1010011868,-1127814216,-1112449263)+W(4,1040446513,1036685563,1061713267,1042646693)+W(5,-1089327101,-1106573237,-1105713919,-1112423953)+W(6,-1112709788,-1105689791,-1086509296,1038532783)+W(7,1064314083,1046976369,1039016129,1030956248)+W(8,1031456758,1040219053,1042438664,-1111899057)+W(9,-1100451664,-1105951352,1010066702,1022848097)+W(10,-1113441282,-1127103440,-1123459213,1018898486)+W(11,1033438227,1029058545,1013299750,-1130132966);sum2=W(0,-1107775669,-1121347079,-1118975841,-1121125435)+W(1,-1123325897,1012434826,-1129695564,1006663086)+W(2,1040551451,1042459857,1031184422,-1152381105)+W(3,-1105935240,-1115286413,-1124425722,-1111096901)+W(4,1027302533,-1122087227,1016161914,989383522)+W(5,1045806619,-1125562074,-1111270899,-1114174571)+W(6,1033412933,-1113656153,1035641742,-1114487413)+W(7,1041762467,1029416951,1028252326,-1127668218)+W(8,-1135101756,1017950151,-1109563699,1046120628)+W(9,-1114574520,1035110196,998528980,997585257)+W(10,-1131050762,-1130160250,1017438602,987844130)+W(11,-1117833439,-1173771715,-1121778743,-1126450718);WS(1052284526,1042464092);
sum1=W(0,1010280196,-1136974408,1026365340,1020617774)+W(1,1023947782,-1127515216,-1129271461,1007810505)+W(2,999914700,-1110845507,-1109035161,-1110448219)+W(3,-1110075532,1038195741,-1114945332,1019473092)+W(4,1057530557,1046554367,1060667985,1063323154)+W(5,1043924417,1050039723,1042422080,1052688005)+W(6,-1098111272,-1100087104,-1090659644,-1094987596)+W(7,-1095988958,-1097163609,-1105136802,-1095692091)+W(8,-1101387838,-1110795931,-1102616600,-1105684762)+W(9,-1124311688,1018127786,-1124435598,-1114597706)+W(10,1027464615,-1128121686,1001926272,1025859742)+W(11,1017827156,1034844538,-1130637466,1027019478);sum2=W(0,1025355846,-1124685033,1029205900,1011755468)+W(1,-1113277680,1035269289,-1122502097,1013457876)+W(2,-1119913429,1010871130,1016143206,1033794365)+W(3,-1140030878,1020099653,991986873,1035095720)+W(4,1034044275,1036346050,-1128364593,-1133342818)+W(5,1020927778,1035477071,1011575434,1029499077)+W(6,-1140464466,1032812135,1071964190,1067600837)+W(7,1039362648,1033733070,1008065452,994468553)+W(8,-1091074448,-1086522508,-1074918519,-1089329657)+W(9,-1106053895,-1108456989,-1146528221,-1106105254)+W(10,1041357090,1037018199,1033277276,-1111447139)+W(11,-1118126225,1032003060,-1117647411,1009180302);WS(-1085785015,-1080175544);
sum1=W(0,1035373246,-1125806618,-1118822551,1044894533)+W(1,-1102223008,1041222777,1023709757,-1122183565)+W(2,-1103151077,1045216768,-1094452856,1039875576)+W(3,-1151103277,-1094574331,1048044105,-1103877399)+W(4,1058377668,1050584367,1054861331,1046782533)+W(5,1057861265,1051791466,1043274206,1058273114)+W(6,-1091874455,-1094766367,-1107649205,-1090132878)+W(7,-1090472533,-1111571937,-1098390656,-1092114299)+W(8,1025579124,1043611260,-1106387815,1049375324)+W(9,-1115030560,-1137989279,1049548184,-1106419572)+W(10,-1111695537,1043525714,-1102079139,-1105407270)+W(11,-1144672552,-1102123612,1041305154,-1116205169);sum2=W(0,998449416,-1121990028,1039055377,-1115523342)+W(1,-1132069983,1032292249,-1128335569,998312734)+W(2,-1118465870,1035743758,-1103571680,1049274722)+W(3,-1106547389,-1126693677,1034009109,-1116877357)+W(4,-1124628345,1040306990,-1098483719,964150684)+W(5,1024621733,-1103504000,1043582890,-1116867442)+W(6,-1148690252,1001004257,1060096717,1077176219)+W(7,1060014437,1016774454,-1107960970,-1139511962)+W(8,1037770975,-1132010249,-1108861100,1047972499)+W(9,-1098623231,1034159573,1020716885,1042264637)+W(10,-1105952484,1037805583,-1087084008,-1070507600)+W(11,-1092504349,-1105946989,1041667680,-1102914489);WS(1041580764,1025947967);
sum1=W(0,1032565172,-1116825273,1019951750,1022134396)+W(1,-1111515158,1034025399,-1110133221,-1159719714)+W(2,1034662848,-1104706235,-1115255997,-1107214727)+W(3,-1098820316,1032808736,-1102823188,1021100817)+W(4,1053611982,1050747028,1050206724,1063007652)+W(5,1060757006,1052025888,1043880105,1052817434)+W(6,-1093835868,-1092905173,-1095669879,-1096926641)+W(7,-1089733625,1049974094,-1099659531,-1119725058)+W(8,-1131110976,-1131069497,1036897764,-1105182467)+W(9,-1098715869,-1104277767,-1106501955,-1106408671)+W(10,1036244351,-1119290642,1017394926,1029927621)+W(11,-1106823604,1037476046,-1114565306,-1122404893);sum2=W(0,-1132209742,986836209,-1121945777,-1170553346)+W(1,-1138085578,-1127752664,1024317954,-1170071298)+W(2,1031078182,1029631070,-1119773491,1020231728)+W(3,1023900693,-1133642976,1016594015,-1123929889)+W(4,-1131885988,1025515900,1029199828,-1120148774)+W(5,-1122079840,1019687015,1019770946,-1134784812)+W(6,-1109418986,-1129378830,-1113141662,1055904551)+W(7,1057958803,1044815557,-1115676013,1040873658)+W(8,969823813,1027058278,1030656895,-1099466937)+W(9,-1089769002,-1096970616,-1105180704,-1104818759)+W(10,-1135041624,1012367442,-1116640321,1014349374)+W(11,1019607807,1019685270,1040370156,1020720783);WS(-1101021916,-1101341893);
sum1=W(0,1026213188,-1128959914,1026395551,-1114900877)+W(1,-1152047246,1012420650,1006057769,1026345301)+W(2,-1104193847,1029994953,-1146733010,1036038140)+W(3,1031817213,-1118727997,1021561044,-1106810537)+W(4,-1099125811,-1096018912,-1093634574,-1086773562)+W(5,-1090412335,-1107844781,-1104575744,-1104632714)+W(6,1055643976,1049220736,1055313981,1052012604)+W(7,1060627153,1051291321,1049980081,1047342967)+W(8,1025577212,-1111820508,-1119144868,-1127551698)+W(9,-1111302883,1025725832,-1112108341,1003961523)+W(10,-1110018309,1025253614,-1114303945,-1123712161)+W(11,1028280877,-1119269431,1031833384,999050183);sum2=W(0,-1131988010,1023490159,-1126411872,-1164111651)+W(1,-1121501747,1031886393,-1117332099,1035364539)+W(2,-1111316079,1007442131,-1122871173,1046145376)+W(3,1040330964,-1109560063,1016982738,1005935896)+W(4,1041465340,-1100903601,1038743702,-1093182708)+W(5,1049859497,-1098635398,1035352171,-1113093917)+W(6,1024389323,1055734435,1080207498,1078445253)+W(7,-1068399047,-1066503158,-1109489195,1012210427)+W(8,-1121573843,-1125698351,1043717463,1049726225)+W(9,-1122596352,-1100760677,-1113462329,1035980752)+W(10,-1149117460,-1131908940,-1114017647,-1119425741)+W(11,1019240934,1009702615,1032687935,-1141270643);WS(1046490332,1041425064);
sum1=W(0,1024529499,1033054902,1031945755,-1146773895)+W(1,1029605664,1004520717,1031502108,1024614604)+W(2,-1116828595,1002731779,1040980232,-1160896989)+W(3,1052617834,1015420456,1044142352,1032157630)+W(4,-1093042204,-1098109922,-1092614541,-1086741475)+W(5,-1091564618,-1090483479,-1094325635,-1086427940)+W(6,1043650965,1045029126,1058500980,1055608303)+W(7,1058257970,1019101890,1041689704,1049761551)+W(8,1015429414,-1106337284,1033182334,-1109695552)+W(9,-1174108025,1029823567,-1123497953,1041880275)+W(10,1019425762,995804238,1032419541,-1179835378)+W(11,1044059953,-1127672093,1032927635,1040104968);sum2=W(0,-1122431319,-1114479591,1024826864,-1100833312)+W(1,1043724086,-1109354990,-1130104331,1015245663)+W(2,1026151548,-1106953243,1048064546,-1097347844)+W(3,1037967160,-1109085075,-1110876131,1007980535)+W(4,-1122010793,999999917,992235770,1040448763)+W(5,1044292364,1032432738,-1143420941,1040568157)+W(6,1049905644,-1108260971,1050719290,1045454882)+W(7,1049686405,-1111087807,-1098496523,1043523736)+W(8,-1102178930,-1125976243,-1123774104,-1096948195)+W(9,1038302972,-1108325988,-1118752296,-1113347688)+W(10,-1124048569,-1126306455,1025075060,-1105554812)+W(11,1034346164,-1114960687,994535386,1032072922);WS(-1096079726,-1086813702);
sum1=W(0,-1135457777,1020632987,-1136898909,1041289173)+W(1,1012368645,1002632984,1024629150,-1127204699)+W(2,-1105268453,-1134572551,-1100910973,-1166801940)+W(3,1038525034,-1102504381,1029902179,-1110256943)+W(4,1045566625,1038076635,-1141635906,1058638213)+W(5,-1104077708,1033251913,1009307365,1022942147)+W(6,-1104980990,-1125909619,-1094783105,1057673490)+W(7,-1100424110,-1111352769,1012100357,-1133590617)+W(8,-1105625101,-1145052038,1032999502,1030475041)+W(9,-1113674176,-1113040784,992583714,-1114381639)+W(10,-1128467237,1035122115,-1125440663,1035865453)+W(11,988204202,-1119749552,1027550920,-1124393059);sum2=W(0,1009177065,-1120740066,1031366584,1041576942)+W(1,-1100270767,1045439690,-1125959183,1033773937)+W(2,-1117003048,1013092463,-1102800003,-1090661723)+W(3,1059100650,-1097382737,1022453518,-1106788899)+W(4,1042183695,1025589372,-1111208570,1068855162)+W(5,-1085550755,1044086134,1032267243,1025170288)+W(6,-1105766164,1042721142,-1149080533,1040487387)+W(7,1023619821,-1099098175,-1126080241,-1106320787)+W(8,-1112946812,-1113055730,-1103263899,1030911277)+W(9,-1103276630,-1114239046,-1107084863,1019625936)+W(10,1019480223,1026018809,1020058227,1007104581)+W(11,1029611268,-1162581429,1037226018,-1116554192);WS(1059841719,1028884484);
sum1=W(0,-1113543486,-1112448166,-1123514455,1014814024)+W(1,-1116573889,-1120616579,-1132301434,-1127146586)+W(2,-1108411818,-1111506273,-1104706915,-1096756366)+W(3,-1106354949,-1107115957,-1117349474,-1105758103)+W(4,-1112074625,1034453786,1033474668,1052483434)+W(5,1048710884,1049505778,1050151687,1056594572)+W(6,1058342439,1041783662,1050338440,1043430567)+W(7,-1116369607,-1117001986,1011608836,-1106214629)+W(8,-1101044205,-1112657624,-1103529079,-1099567912)+W(9,-1110811775,-1119641312,-1133908615,-1113349351)+W(10,-1143395087,-1122260358,-1124590486,-1132902244)+W(11,-1118491109,-1118809775,996976763,-1114523384);sum2=W(0,-1131846847,999597315,997751878,-1114921220)+W(1,1031101790,-1115596944,1024706196,-1120544321)+W(2,-1142019487,973346488,-1127636492,-1114646695)+W(3,-1098897499,1027087956,-1111832500,1029100436)+W(4,-1119272484,-1113005256,-1113445057,1055277760)+W(5,1032426103,1036539833,-1114392819,1010252474)+W(6,1043688817,-1112114230,1056371527,1041350431)+W(7,1038923617,-1123786644,-1130636099,-1123180191)+W(8,-1110979463,-1112619479,-1097247478,1019660165)+W(9,-1105379211,1026606310,1012894502,-1125326592)+W(10,-1128104285,1003422803,1021279303,-1127196333)+W(11,-1138766624,-1129408714,-1130181692,-1164469676);WS(-1092619630,-1089382730);
sum1=W(0,-1111364766,1043539187,984781533,1030068626)+W(1,1026274177,-1111039089,1024515101,-1120853581)+W(2,1023648980,1020312451,-1115220152,-1101226428)+W(3,1038621209,-1105671421,-1101912057,1015856825)+W(4,1039669985,-1096148415,1055391282,1026945555)+W(5,-1081505706,1045179252,-1132720100,1027675681)+W(6,-1112475547,1048019422,-1085560118,1059189430)+W(7,1059392734,-1105049488,1041558112,-1133761880)+W(8,-1102256285,1027548272,1048070471,-1108016176)+W(9,1040580240,1037378816,1031071010,1032748839)+W(10,1036516737,-1110790259,1016263062,-1120756633)+W(11,1007770772,1034683832,-1109624324,1021933410);sum2=W(0,1021752691,-1117827136,-1125983252,990310070)+W(1,-1109957501,1040724727,-1109878975,1031887118)+W(2,-1111677325,1031932470,-1130612142,-1104195843)+W(3,-1168184730,-1105272655,1035492359,-1103738768)+W(4,-1108952074,-1110048197,1045228241,1051763659)+W(5,1028013889,-1136328910,-1114456338,-1114723198)+W(6,1033183913,1038437939,1050756049,1045197632)+W(7,-1115591069,-1123843648,-1120329563,1035246991)+W(8,1044091848,-1103930854,1008734718,-1105931725)+W(9,-1149204891,1020655719,-1120613434,-1121689275)+W(10,-1113755692,1027358915,-1104619422,1032921649)+W(11,-1117367196,-1140627498,1033876328,-1121880867);WS(1051433070,1041054969);
sum1=W(0,1027474774,995089009,1034863641,-1109189270)+W(1,1039503310,-1126811322,1033371404,1010666397)+W(2,1025557871,1019369911,1049084179,1046403907)+W(3,1044512531,1035909664,1033234174,1028564471)+W(4,-1105663671,1032468488,-1096978722,-1082587707)+W(5,-1102025153,-1107200379,-1104819461,-1106755535)+W(6,1035613609,1037418314,1039456478,-1080639932)+W(7,1026454114,1042549431,1042229543,1034360184)+W(8,1041537220,1036952965,1041156238,1049567823)+W(9,1040087661,1039105725,-1131034584,1031577769)+W(10,1027665948,-1122283488,1041167849,-1112387034)+W(11,1039611744,-1137459494,1031071714,1033297350);sum2=W(0,1039097792,-1128793460,-1140010118,1022871695)+W(1,-1138263433,-1112923836,1026478628,-1110368657)+W(2,-1103860174,-1106733661,1043000544,-1106671798)+W(3,1046664654,-1123142296,1037719970,1042580191)+W(4,-1106228186,1050938198,-1100268114,1039252188)+W(5,-1099105674,-1121884665,-1100173198,1034926170)+W(6,1004583985,-1097187313,1021007203,1053089515)+W(7,1048715277,-1114597930,1047464456,-1106315502)+W(8,1031892389,1046933969,-1107049139,1049075999)+W(9,-1103930146,1022883749,-1098080196,-1108178582)+W(10,-1133334119,-1107245750,1039577114,-1104825734)+W(11,1030321621,-1117968576,1036807670,1018138445);WS(-1097236334,-1078251511);
sum1=W(0,-1147379729,981774949,-1145120489,-1112510828)+W(1,975327689,1008364580,-1140670990,1022969831)+W(2,-1107131303,1007351583,1033603653,1043141838)+W(3,1029606457,938727969,1020032977,-1108966769)+W(4,-1102832418,-1125527926,-1095625930,-1082084799)+W(5,-1090577043,-1093823475,-1098508888,-1096801949)+W(6,1058323440,1053289720,1056660465,1032726417)+W(7,1058345481,1053416161,1046390514,1049766564)+W(8,1023750586,-1121375351,1026746467,1033795604)+W(9,1025947909,-1131151340,-1119905544,1037296218)+W(10,-1116361496,-1124892056,-1128008098,-1117973855)+W(11,-1148460889,-1125502955,999577711,1010324189);sum2=W(0,1024894779,1020144998,-1118791847,1007750652)+W(1,-1137666916,1023698735,1009542396,-1129126018)+W(2,-1102276353,1025017931,-1107221556,1046635995)+W(3,-1132306598,1023586615,1030880679,1015842286)+W(4,-1120020336,-1096890621,1050182775,1039741552)+W(5,1043589185,-1108361045,-1114600836,1024872627)+W(6,-1081787381,-1080908066,-1102161510,1072604155)+W(7,1055213170,-1115556916,1037616572,-1105259074)+W(8,1039662448,992888305,-1130889346,1039835396)+W(9,-1110509653,-1122324709,1000980713,-1124270218)+W(10,1023553607,-1118655405,-1120230550,-1126400334)+W(11,1020541198,1020891302,-1119304668,1033066840);WS(-1095840110,1065907853);
sum1=W(0,-1149009607,1029310442,-1122029108,-1136794300)+W(1,-1118254622,-1132243967,-1126823604,1010554921)+W(2,-1123781617,-1130903741,-1115466131,964920945)+W(3,-1115351608,1043406509,-1116119295,1040435870)+W(4,1057715094,1048478500,1058442742,1045634572)+W(5,1052165513,1053323726,1042519141,1051535704)+W(6,-1102734645,1041326469,-1088947208,-1083008792)+W(7,-1096684061,-1089856222,-1127763004,-1095672430)+W(8,-1101560548,1036129479,-1107277134,-1109559039)+W(9,1036543086,1024712701,1009014011,-1114598742)+W(10,1034276991,1021921030,1036949012,1024401462)+W(11,-1114280609,1035777670,-1132072137,1024787534);sum2=W(0,-1122765153,-1119761608,-1115823403,-1123357438)+W(1,-1105805209,1031734555,-1111986136,-1126486235)+W(2,-1112086475,-1118318168,-1121250504,-1119202357)+W(3,1024515185,-1130234658,-1134784044,1026675759)+W(4,1040388299,1023061820,-1128744886,1057284387)+W(5,-1103324019,1037222780,-1110952019,-1117543075)+W(6,966593378,-1102263327,-1110151426,1059190541)+W(7,-1106793279,1050053336,-1107073751,1021583022)+W(8,-1114107386,-1113965021,1045334069,-1118800384)+W(9,-1164047122,1025627836,-1114668630,-1124432766)+W(10,975247631,-1137846028,-1111548146,1023792011)+W(11,-1112106446,1020007628,-1125560981,-1131408661);WS(1024351088,-1094038469);
sum1=W(0,1016930687,1024919184,988693323,1038267403)+W(1,1001354275,-1123840710,-1125725377,-1120680465)+W(2,1038061004,-1118029957,1005748798,1038925818)+W(3,1032752795,1034287148,-1110688307,1036629872)+W(4,1052546457,1050276351,1052906127,1062157201)+W(5,1055274272,1050137483,1036684158,-1112935826)+W(6,-1086527812,-1103330015,-1085615881,-1097782940)+W(7,-1088621706,-1090365828,-1108159426,-1098987606)+W(8,1040515838,1027568116,1040353352,-1124671689)+W(9,-1113419105,1017331974,1018660298,1039926041)+W(10,1006605995,1004978763,1030413326,1031140124)+W(11,1009586849,1023985459,-1129057942,-1120649652);sum2=W(0,1018662896,-1131745232,-1136728576,-1110788716)+W(1,-1123530251,-1101470606,-1110519714,-1125138150)+W(2,1033363591,1031409358,1036576685,1060006588)+W(3,1052968790,-1102632350,-1105224546,-1083015355)+W(4,-1101021011,-1109130821,-1097527529,1058553385)+W(5,1023922010,1057288665,-1111209476,1034932287)+W(6,-1107389045,1050735765,1043333749,-1120731420)+W(7,-1100470754,-1097217661,1038218737,1047940150)+W(8,1013978472,-1122086781,1029525730,-1118628277)+W(9,-1117232951,-1112638769,-1121310567,1023530026)+W(10,-1120396150,1024022584,1015209616,1030135008)+W(11,1018906596,-1121049341,1024891644,-1113292326);WS(-1086599863,1058406314);
sum1=W(0,-1165120005,-1133002117,-1129945046,1024249318)+W(1,-1119162837,1026085015,-1121003281,-1127955907)+W(2,1027409257,-1121445206,-1106007410,-1105883025)+W(3,-1105279538,-1127421331,-1109094875,1024561201)+W(4,1060099497,1049800473,1059141168,1051534797)+W(5,1058010671,1051659429,1047889907,1050835423)+W(6,-1093079745,-1099695891,-1091476505,-1093891126)+W(7,-1094225343,-1106347590,-1098091099,999784785)+W(8,-1114693988,1033258882,-1129815521,-1124179562)+W(9,-1106482085,-1112036922,1030868870,-1097732400)+W(10,1019186220,1025328858,-1128567742,1017248474)+W(11,-1123837177,1031899202,-1123224348,-1141903913);sum2=W(0,-1116781913,1016621488,-1133566515,-1124282558)+W(1,1034216133,-1128560494,991940908,1017899660)+W(2,1031543998,1029140379,1044191480,-1105795809)+W(3,1017978886,-1175609568,-1120640387,1019924506)+W(4,1082393585,1078957479,-1080327233,-1065075267)+W(5,-1076777978,1030943022,-1110243052,-1113970478)+W(6,1050004941,1028477447,-1104837212,-1086493521)+W(7,-1109285108,1045155438,1033432207,-1130476854)+W(8,1025243259,1010603263,-1125439138,-1117319975)+W(9,988101688,1024551608,-1129511338,1020472787)+W(10,-1123250937,-1125975170,1007793087,1028403247)+W(11,-1125200922,1020903576,-1119399555,1028374268);WS(-1102531292,-1104168529);
sum1=W(0,-1149508566,-1156103398,1005530819,1019304359)+W(1,-1111288609,-1152861762,-1123770879,992160490)+W(2,1032023755,-1123937923,-1114986325,-1105594348)+W(3,-1100927253,1042848102,-1131000647,1048571064)+W(4,1058049088,1044530702,1057825341,1061967565)+W(5,1057378026,1043852869,1032195229,1021567685)+W(6,-1091020399,-1093487559,-1088576155,-1113700815)+W(7,-1096522221,-1100187457,-1097716728,-1095320739)+W(8,-1123106485,1028416434,-1124442300,-1132463754)+W(9,-1107169312,1030031137,-1127676038,1015048992)+W(10,1018386839,1022122127,1027828556,1023613146)+W(11,-1118265958,1031835352,-1124424850,-1151822630);sum2=W(0,-1112466451,-1130983341,1032826781,-1114093653)+W(1,1040752192,-1154197073,1026229169,1032051747)+W(2,1034684305,1035765483,-1117553496,-1101908611)+W(3,-1105770401,-1106309648,984953298,-1113409477)+W(4,-1101371049,-1113050760,-1096382267,1063677104)+W(5,-1132405995,-1114901667,1023704972,-1104964374)+W(6,-1100658772,-1100149859,1042208912,1062452463)+W(7,1047214162,-1095028755,-1109270652,-1107539022)+W(8,1043071493,1039321546,-1131759707,-1106482074)+W(9,-1105645940,1034888818,1035103126,1008251057)+W(10,-1119405084,-1140521940,-1127348451,1028341682)+W(11,1022142418,-1118255322,-1118485150,1025943565);WS(-1107552696,-1110437397);
sum1=W(0,994440345,-1123893979,-1123659045,1033249360)+W(1,-1115012423,1025628848,-1120012907,-1138236651)+W(2,-1114854865,-1115498472,-1107252796,-1098484960)+W(3,-1105215024,-1113844817,1015022176,-1112267573)+W(4,1038159592,-1143015444,1048547885,1066459081)+W(5,1050116824,-1114931568,-1139703834,1030992175)+W(6,-1169396004,-1103811554,-1102945115,1054059005)+W(7,-1110458371,1027966800,-1137430074,1038350450)+W(8,-1112745281,-1176837895,-1113210869,-1092775086)+W(9,-1107508006,-1115481499,-1123286831,-1114208046)+W(10,1003079356,-1126823399,-1127252913,1036761683)+W(11,-1117476787,-1139958260,-1143819946,-1119805695);sum2=W(0,-1128900045,-1134566747,1023101249,-1119409466)+W(1,1014344875,-1124604689,-1135550339,1011013307)+W(2,1032112026,-1121844433,1024457633,1041370918)+W(3,-1138667107,1023011873,-1123574415,1018662193)+W(4,-1122103841,1023900033,-1130431017,1071310745)+W(5,1015570157,1025187637,1029193653,-1118001398)+W(6,1020429393,1031965476,1010339139,-1073631838)+W(7,1024644617,1038341472,-1117036677,1034637136)+W(8,-1123818335,-1168200234,-1111989275,-1111141033)+W(9,-1128248465,1032459330,999769253,1020580065)+W(10,1025087925,-1116320886,1037399444,-1131868341)+W(11,1027301561,-1118206868,-1124415769,-1136885571);WS(-1106869980,-1095812171);
sum1=W(0,998635262,-1132768195,1031165051,-1109012795)+W(1,1031921458,959153786,1015400066,1020404450)+W(2,1030538232,1032306163,1040655940,1049530762)+W(3,1035845131,1029124089,1034791747,-1126776961)+W(4,-1104276842,1027943897,-1094369165,-1079963696)+W(5,-1094529094,-1138415831,-1107836910,-1127281161)+W(6,1021368885,1042581143,1043839724,-1098205560)+W(7,1041010327,1043286153,1040781721,1032119517)+W(8,1037657452,-1130589992,1045125152,1052736873)+W(9,1041646697,1033263566,-1127518347,1032079673)+W(10,1012233735,-1127936403,1030674671,-1106402911)+W(11,1035635524,-1117746707,1026900011,1007765715);sum2=W(0,-1137391706,-1152109415,1015680093,-1108578627)+W(1,1012334874,-1126811133,-1146463859,1013671002)+W(2,1016897725,-1123613558,1031100358,1031185182)+W(3,1018767069,1016912269,-1123894542,-1129388765)+W(4,-1122041158,-1117579022,1032233585,1068869480)+W(5,1031129926,-1135215962,-1172726683,1025914590)+W(6,1032188407,1034093919,-1107212716,-1079207220)+W(7,-1118301998,1010098650,1010207290,998321459)+W(8,959684203,-1123954990,-1144448755,-1112638895)+W(9,-1145613555,1002322227,-1163026381,-1185201771)+W(10,1004755699,-1142267571,1020208893,-1131161181)+W(11,1014639674,1010341946,-1128211133,1014227898);WS(-1106551004,1058945856);
sum1=W(0,-1136733265,1029534949,1040114552,1023973738)+W(1,1008178533,-1121731675,-1122738710,998670125)+W(2,1027999917,-1110759309,-1101184472,-1136820001)+W(3,-1120539979,1050535890,1036280349,-1112884987)+W(4,1036329486,1039804839,1055915689,1045009467)+W(5,-1099722578,-1092228133,-1110742697,-1133144549)+W(6,1021052191,-1090459221,-1088507490,-1102642413)+W(7,1057115504,-1141944531,1036514925,1024140334)+W(8,-1112842790,1042972690,-1116549941,1048917175)+W(9,-1103385510,1042662182,-1123309658,1040183891)+W(10,996925861,-1126301053,1035692146,-1116120689)+W(11,1032281663,1025401864,-1122836256,1009223461);sum2=W(0,-1166199047,1008667864,-1137339492,-1142224481)+W(1,-1152330850,1020018908,-1116618549,1015962596)+W(2,1029866216,-1111274931,1026227362,-1119220040)+W(3,1031356244,-1116678638,1026327024,-1189397276)+W(4,-1143586281,1037662319,1052978055,-1079795268)+W(5,-1109068899,1041694498,-1122243464,1027749752)+W(6,1016771040,1050961303,1073672156,-1075413433)+W(7,1029037052,1026323256,1021575344,-1119692611)+W(8,-1123676489,1039205717,1048063806,1028203090)+W(9,-1113725553,-1115208722,1002430881,-1114291930)+W(10,-1174784654,-1119230230,-1117826448,1028246046)+W(11,-1160612324,1024440460,-1126523302,1031666290);WS(1045979868,-1116118129);
sum1=W(0,1019079208,-1124899402,-1142300538,1011594153)+W(1,-1134190949,-1132197046,-1116332853,-1135144470)+W(2,-1115974509,-1114857165,-1110287856,-1099509298)+W(3,-1112842949,-1107483943,-1111331677,1018268010)+W(4,1054347779,1046800787,1053005207,1063937495)+W(5,1058166871,1048177899,1047873428,1056893199)+W(6,-1096855346,-1098629066,-1093283235,-1097005655)+W(7,-1090046872,-1104885511,-1102896822,-1096686406)+W(8,-1118610636,1029706377,1028644213,1015974258)+W(9,1040979430,-1129150352,1028514810,-1118433447)+W(10,-1120438410,1017939836,-1131155654,-1116499825)+W(11,-1119992573,-1120133576,-1118080608,-1112688517);sum2=W(0,-1132220574,-1115410889,1017347763,-1123931551)+W(1,1027749497,-1111299822,1025854529,-1123916419)+W(2,1034058342,-1116250603,1029372102,-1101916549)+W(3,-1104316591,1035393713,-1107314572,1033668899)+W(4,1008450820,-1126553639,-1105866140,1053545154)+W(5,1054419707,-1102688086,1036131430,-1144517652)+W(6,-1132397996,-1097158033,1060185134,1060913993)+W(7,1033775493,-1115290197,-1106841697,990325833)+W(8,-1105536207,-1108668742,-1106418349,-1104852271)+W(9,-1106993048,-1102129692,-1149271050,-1114889391)+W(10,1025437040,-1118211898,1034066570,-1102379864)+W(11,-1133416673,-1209279719,-1133826631,-1129688184);WS(1058774455,1069380246);
sum1=W(0,1032626516,-1119757626,1033017026,1015522813)+W(1,-1128327131,1036888920,1032769109,-1148588495)+W(2,-1114780225,1038823639,-1098306133,1034533838)+W(3,-1103839696,-1112718001,-1126986782,1012070438)+W(4,1045065548,1040221656,1021036585,-1082356272)+W(5,1057244812,1032300191,1043416793,1045596067)+W(6,-1111975378,-1115053555,1050529784,-1095104409)+W(7,-1133328720,-1111385431,-1124233691,-1105784401)+W(8,1025328225,1020222778,-1115391173,1045288819)+W(9,-1116298540,1042918995,1029500622,1037659662)+W(10,-1121960111,1037972921,-1112361500,-1139302935)+W(11,1018289699,-1110693582,1027375220,-1114680879);sum2=W(0,-1129789987,1019234847,-1128803579,-1112792165)+W(1,1011967806,995307959,1018394359,-1112288614)+W(2,1017265095,-1124971531,1043137983,1047657371)+W(3,1034970984,1010908150,-1107223361,1027672251)+W(4,-1124616639,-1114025560,-1132476030,-1114992592)+W(5,-1098689491,-1115509379,1006851110,-1128503755)+W(6,-1116091154,1022067335,-1102585265,1052022695)+W(7,1033604172,1031244615,1032350856,1024636851)+W(8,1033010488,-1114442452,1028851843,-1115343414)+W(9,1002830796,-1121158047,-1114060980,1027935499)+W(10,1011223606,-1117824661,1031833634,-1136738894)+W(11,988094894,1025799099,-1118870225,-1127411999);WS(1065814108,-1098421406);
sum1=W(0,1030554015,-1131576032,1020712308,1019668842)+W(1,-1178997255,1023970854,1011631425,1023862096)+W(2,-1104400078,1022555209,-1130072911,-1118231891)+W(3,1041059117,-1115494780,1035736611,-1104560304)+W(4,-1097091133,-1099298246,-1094842433,-1084181571)+W(5,-1098796514,-1094912271,-1090107010,-1092396649)+W(6,1050276747,1048827844,1057743463,1051719984)+W(7,1058357819,1056339293,1051879221,1057941592)+W(8,1045406982,-1106685173,1040093248,1018405640)+W(9,-1118903138,-1115388505,-1113309730,-1118151090)+W(10,-1119880969,-1132305362,-1122176686,1026194364)+W(11,1004376640,1024072531,1009992363,1029155252);sum2=W(0,-1104337717,1027104118,-1114433477,-1122138940)+W(1,1048327612,1018207462,1015118770,1054676844)+W(2,-1085961218,1036459641,-1092980271,-1101372003)+W(3,-1098271754,-1115566688,-1101224844,-1105452167)+W(4,1065899128,-1117484391,1062039746,1077763913)+W(5,-1088377514,-1079225367,-1106150830,-1079350028)+W(6,1055232204,-1101810882,1049041629,1071302707)+W(7,-1084489503,-1087139921,1036291830,-1090077553)+W(8,-1090132108,1052764213,-1092098978,-1123596042)+W(9,1027311380,1042626102,-1105072819,1053993534)+W(10,1023963317,1014918739,1035158266,1027553578)+W(11,-1115760458,1025357528,1032466828,-1115160051);WS(-1083527351,-1082119000);
sum1=W(0,1025283773,-1132057884,1024000280,-1117776915)+W(1,994019357,-1146975260,1021506300,1016847260)+W(2,-1100516229,1028453762,-1124447466,1027818609)+W(3,1030853236,-1120656758,1023329542,-1111423375)+W(4,-1103907601,-1097545679,-1096840081,-1088298777)+W(5,-1090997910,-1097629690,-1102673054,-1097673748)+W(6,1054198743,1048327710,1054350616,1057412078)+W(7,1059405315,1052404744,1051692752,1047886934)+W(8,-1139734483,-1114897689,-1109407791,-1112548849)+W(9,-1107996896,1035903152,-1110888465,1034953432)+W(10,-1115248201,1021031566,-1115380998,-1139302503)+W(11,1029448614,-1119316016,1026998601,-1149960989);sum2=W(0,1023717076,996584188,-1122858228,1005163886)+W(1,1025356913,-1118691920,1028885707,-1114207359)+W(2,1034248479,-1120794590,1037241484,-1124781820)+W(3,-1115274025,1026099362,-1121079636,1010502519)+W(4,-1110594365,1045315954,-1111180041,-1088752945)+W(5,-1100621689,1052626156,-1114153113,1038857859)+W(6,-1113079527,-1094151830,-1064957365,-1066051811)+W(7,1081496726,1084041658,1034711477,-1115018893)+W(8,1030579691,-1113958061,-1106054130,-1113733983)+W(9,1049150725,1032870315,1042989109,-1106741724)+W(10,999456782,1021526858,1018369486,1031457177)+W(11,-1112407773,1022214782,-1108284893,1023330420);WS(1031453552,-1108810221);
sum1=W(0,-1122540068,-1141490084,-1132153597,1029503994)+W(1,-1126370513,-1127727061,-1132743443,1024122485)+W(2,-1106571135,1028200745,-1106394603,1029495448)+W(3,-1118016922,1043712879,1035505061,1041979953)+W(4,-1105389195,1023785053,1041720002,-1089108304)+W(5,1047749927,-1092241143,998106632,-1098695505)+W(6,1051764564,-1104087736,1055195957,-1096098616)+W(7,1047204316,1028938666,1043190746,1039644831)+W(8,-1121040220,1027661528,-1111907522,1031937892)+W(9,-1112974291,1025162247,-1152510101,1002213552)+W(10,-1136080166,1023137883,-1123745267,1034024448)+W(11,-1121356173,1028910871,-1121641711,1025100697);sum2=W(0,1032316109,-1122133197,1021061413,-1122180337)+W(1,-1115376331,-1123716599,1008734994,-1144451812)+W(2,-1117365450,1033736971,-1117276879,1009179554)+W(3,1034450077,-1100616286,-1130550593,-1102305630)+W(4,1028239450,-1104139010,-1090538079,1022309577)+W(5,-1125496737,1059658657,1014965154,1053491799)+W(6,-1106184057,1045998485,-1087751568,1065712953)+W(7,-1100319643,-1100023584,-1115246006,-1107982835)+W(8,1039709205,-1126266788,1056538813,-1098763613)+W(9,1017435581,1022563437,980175008,-1103966134)+W(10,-1127567978,1029398164,-1106793212,1016414657)+W(11,1032114232,-1113653553,1034308617,1020870093);WS(1060627383,-1111244297);
sum1=W(0,-1124372048,-1124233202,-1115057922,-1126359548)+W(1,-1135390133,999175032,-1137033126,-1120904377)+W(2,1041984816,1023856878,1037843884,1013283185)+W(3,-1106598024,-1109047521,-1108189319,-1127664786)+W(4,-1098607926,-1097555068,-1092180401,1035134080)+W(5,1055432750,1050330552,1046692025,1039361415)+W(6,1048999428,1050454749,1057072683,1037566628)+W(7,-1088869991,-1097603878,-1106138715,-1115643873)+W(8,-1110297584,-1119853981,-1100337986,-1117600845)+W(9,1045634091,1040799043,-1129123036,1042168959)+W(10,1037179887,-1124350564,1037306108,-1180500637)+W(11,-1107300041,-1132131255,-1126029544,-1132202938);sum2=W(0,1027553654,-1128416633,-1120268362,1026192109)+W(1,1010812163,-1133939099,1033310247,1007338654)+W(2,-1105419467,1035214610,-1102082588,1034096310)+W(3,-1109637676,1042926233,-1103557522,1039202903)+W(4,-1141314538,992160749,1039698771,1028842291)+W(5,-1128101012,-1110346070,1041169016,-1150310139)+W(6,1051401064,-1098506313,1041311911,1044707561)+W(7,1040877432,-1107620104,1044637450,-1101325278)+W(8,1061407816,1048701957,1065441970,-1108357660)+W(9,-1080219839,-1089748519,-1106511250,-1094091750)+W(10,-1086513034,1023990179,-1083801169,1027929117)+W(11,1058347144,1054974548,1012370076,1054706164);WS(1037089208,-1117319375);
sum1=W(0,-1117307261,-1109658215,-1104716662,-1095157370)+W(1,-1115283233,-1113906562,-1127634429,-1150522598)+W(2,-1127081515,1037266337,1045840649,1048384396)+W(3,1042005149,1026318614,1035073906,-1129730364)+W(4,-1090315640,-1103803502,-1108965493,-1089739445)+W(5,-1098438340,-1090508193,-1096110967,-1090097982)+W(6,1055484319,1036834781,1059715066,1050929076)+W(7,1059599591,1050537744,1039184033,1056916499)+W(8,1019801962,-1121027890,-1120952094,-1115632913)+W(9,-1115851136,1036887192,-1109698481,994450682)+W(10,-1140393804,-1122236391,1007521585,-1115666157)+W(11,1038771059,-1114842616,1040209394,1023772594);sum2=W(0,-1096641595,-1086741683,-1073585699,-1071753138)+W(1,-1078410756,-1096289506,-1145261363,997353903)+W(2,1051991389,1059199896,1069582799,1070628328)+W(3,1067042424,1055331220,1015112751,1024293693)+W(4,-1107135642,1044105651,1057042277,1065961920)+W(5,1057516905,-1098611055,1043415065,-1101981251)+W(6,-1120991144,1025236133,-1123268190,-1098135951)+W(7,1032298014,-1106950583,1007537613,1025642916)+W(8,-1123228782,1032269711,-1116194138,-1144560253)+W(9,1026966393,-1155415556,992611856,1011854094)+W(10,-1119770484,1020415755,-1119862022,1033682735)+W(11,-1113740644,1022995083,-1144895945,-1130196038);WS(-1089262391,1050517969);
sum1=W(0,-1112721887,1040766980,-1116916633,-1109323658)+W(1,1043853249,-1102481809,1025978335,-1134508350)+W(2,956356282,1032255106,-1115255965,1053521294)+W(3,-1109293354,1024224759,1036451442,998852344)+W(4,1041136081,-1099047838,1050954387,-1090918435)+W(5,1049475859,1046323061,-1129023222,-1126452038)+W(6,-1112851037,-1136806893,1047658201,-1090498606)+W(7,-1111100085,-1101889105,-1112184834,1037224108)+W(8,-1118798326,1044101949,-1099177336,1048722524)+W(9,1044026608,-1109421665,1044252857,-1113020120)+W(10,1033047322,-1110781188,1022949658,984126311)+W(11,-1111349460,-1151794972,-1140137768,-1119083507);sum2=W(0,-1120544497,1042905493,1045262161,-1104438232)+W(1,1023630957,-1122372280,1027866949,-1121491826)+W(2,-1104964203,-1097077111,-1098230931,1057982485)+W(3,-1106247773,1011970003,1026340389,1016978228)+W(4,1056285145,-1118581415,-1079914544,1057557770)+W(5,1048964135,1020547274,-1113753028,1034078959)+W(6,-1109256198,1026029661,1056552993,-1104081201)+W(7,-1114436673,1033190701,-1107460568,1034442922)+W(8,-1107706742,1025674690,-1103396776,1048351556)+W(9,1018818866,-1103728916,1046941904,-1106194166)+W(10,1033408182,-1118988963,1021102038,-1136298684)+W(11,-1112938187,1034200267,-1117493164,-1172844144);WS(1055467886,-1126093527);
sum1=W(0,-1115675946,1039731987,-1108949528,1014043817)+W(1,1025589529,-1102050167,1035820699,-1114599603)+W(2,1037777366,-1126460340,-1145838757,1049783617)+W(3,991251120,1042727635,-1123043835,1024161077)+W(4,1043818615,-1103677379,1060367897,-1102044139)+W(5,-1109258124,1049311757,-1116399889,1046137806)+W(6,-1096353162,1012406341,-1088026493,-1095567535)+W(7,1051881528,-1095440907,1032817677,-1116994158)+W(8,-1150025924,1031349769,1034695514,1044285022)+W(9,1011738461,-1115570324,1040150333,-1110796915)+W(10,1035905869,-1103947080,1034985426,-1129716323)+W(11,-1107675487,1042590402,-1104125432,-1140552997);sum2=W(0,-1115939175,1042939513,-1106984126,1036071940)+W(1,-1133154938,-1110872047,1038271101,-1124388167)+W(2,-1111463085,1009748958,-1104760450,1026404786)+W(3,1042746589,1018643239,1024219237,-1107044825)+W(4,1026058510,-1101036999,1046231331,1060091622)+W(5,-1109115274,1042116887,-1104891113,-1137025366)+W(6,1015189774,1048391804,-1101164712,1059732347)+W(7,-1090421446,-1092755101,1018386748,-1112446842)+W(8,-1116961377,1019493983,1013441892,-1113485706)+W(9,-1102245299,-1104832958,1043357489,-1123717753)+W(10,1003109525,-1128500291,-1127287103,1036806652)+W(11,-1110906499,1042929180,-1108912836,1034520620);WS(1062208951,1065603754);
sum1=W(0,1032466911,1012820793,1029562264,1020285479)+W(1,993753125,1033268866,-1131051261,1028903855)+W(2,1029341462,1027274819,997585115,1040141401)+W(3,1032063722,-1153074023,1015103815,1040294280)+W(4,1059167044,1052950767,1057349364,-1108524682)+W(5,1049874906,1048703978,1050186639,1053103700)+W(6,-1090134924,-1094303727,-1085543304,-1080037127)+W(7,-1095616607,-1112675170,-1111683969,-1091636059)+W(8,-1133534677,1027990706,1035990447,1037410929)+W(9,1039846496,1023735025,1040888889,-1118753424)+W(10,987089513,1032570772,-1136982833,-1125543221)+W(11,1015158861,-1145342854,1031358985,1022936933);sum2=W(0,1035386648,1023547272,1025878508,1026832668)+W(1,1029828312,-1098240729,1044150428,-1103643200)+W(2,1042887622,-1099060438,-1099619867,-1099104088)+W(3,1048769602,-1121505868,1040524432,-1115369075)+W(4,-1086410483,1053956416,-1094814183,1069089225)+W(5,1044213412,1035342184,1040447750,1049544904)+W(6,-1090258329,-1112148135,-1093316197,1060781490)+W(7,-1091192206,-1105713821,-1089411157,1058550641)+W(8,1060158548,1050315819,1046080958,-1103190742)+W(9,-1105160931,-1084784918,1058372334,-1080579858)+W(10,-1113981975,-1099847621,1046524888,-1112424275)+W(11,1051146364,1019461112,1028619520,1040133188);WS(-1078970012,-1070975772);
sum1=W(0,1023443287,1008154783,1008498119,1032996598)+W(1,-1130007992,1026985054,1001505728,1027285064)+W(2,-1111813336,1034628686,1020510238,-1119594955)+W(3,1037186855,-1129455456,1024916861,-1118416824)+W(4,-1095332548,-1098370186,-1091304148,-1097391342)+W(5,-1088889903,-1093273302,-1097878954,-1097408559)+W(6,1048282532,1052880922,1054365856,1065196819)+W(7,1037830473,1040256647,1042516535,1044458956)+W(8,1036630695,-1109395910,1031904252,-1105409007)+W(9,1022933044,1030320779,-1131972409,1037289397)+W(10,999582566,-1140663171,-1128098380,1030941172)+W(11,1003729918,-1138808617,1018809669,1005961310);sum2=W(0,-1114009537,1035366037,-1111463643,-1119334122)+W(1,-1132366661,1001109746,1035022899,-1112054465)+W(2,1019032853,-1143037026,-1122373240,1056620469)+W(3,-1103744316,1002774938,-1102405348,1046894720)+W(4,1024640816,-1101234014,1068131945,1075463933)+W(5,-1075751794,-1072865378,1052446989,1019415611)+W(6,1029944441,-1105571142,1044188353,-1093783941)+W(7,1050699227,-1098127223,1028903402,-1119380340)+W(8,-1146945026,1031686749,-1128619453,1046426762)+W(9,-1109652943,-1131952529,-1123943246,1017598049)+W(10,-1136399129,1018164069,-1125359481,999713778)+W(11,-1123073190,1019524751,983357578,1013611461);WS(-1137905088,-1096938393);
sum1=W(0,-1127951952,-1139830244,-1108742721,1019792636)+W(1,1018370522,1020799581,1021418002,-1148599498)+W(2,-1116133184,1040763803,1041221580,1009683312)+W(3,-1107181880,1002965001,1022849180,1039287108)+W(4,-1092624022,-1104553656,-1090149133,1044078592)+W(5,1058802794,1043495791,1033578226,-1113073030)+W(6,1045295113,1046745657,1057147883,-1112574564)+W(7,-1085568476,-1103617227,1032014262,1022418564)+W(8,1023908704,-1103252327,-1103732914,-1127338650)+W(9,1040869579,991652540,1013121207,1011288682)+W(10,1031880695,1040451684,1026434167,1007135764)+W(11,1014113348,-1125537591,1016284007,-1116579933);sum2=W(0,1036469548,1017461301,1017339130,-1095997080)+W(1,-1099654066,-1105423964,-1113359567,-1131580992)+W(2,-1097965159,-1101551098,-1094477168,1035631286)+W(3,1054988432,1047389393,1041958533,1043362318)+W(4,-1116680345,-1125992347,1058922542,-1103956246)+W(5,1040393300,1040203374,-1108890296,1024609216)+W(6,1001756270,-1115644020,1035448965,-1105032669)+W(7,1039533461,-1122662741,-1130070269,1025676040)+W(8,1032969412,-1124365977,1040541302,-1112710338)+W(9,1017600743,-1114085496,-1134082186,1015920174)+W(10,-1131471357,1016380025,1001720584,-1115585175)+W(11,1001178742,1001141734,1010209588,-1122393401);WS(1017525984,1039916017);
sum1=W(0,-1124853567,-1147061122,-1129462517,-1119594613)+W(1,999306018,-1156505185,1012193026,1010192066)+W(2,1018048624,-1127291978,1049183858,1032566282)+W(3,1036307723,-1150114695,-1116656134,-1111959392)+W(4,-1095739637,-1104996150,-1085471393,-1090223247)+W(5,-1104470177,-1105492077,-1109848430,-1107232129)+W(6,1045916039,1043181303,1054258797,1054999864)+W(7,-1108082389,1055713893,-1134406033,1049351719)+W(8,1035770156,1038596810,1048116160,1024906308)+W(9,1035021201,-1114305018,1014226964,-1132413284)+W(10,1019449355,-1118699785,1018729693,-1125493497)+W(11,-1111613764,1013642059,-1117195563,990662981);sum2=W(0,1033095635,-1123818427,1023960168,-1115456886)+W(1,-1130014725,-1134763238,1020936831,1030713030)+W(2,-1113611213,1038354785,-1136308834,1031365710)+W(3,-1121052824,1037262635,-1129095405,1030934712)+W(4,-1120605005,1043017802,1016597499,-1105318511)+W(5,1032279133,-1129541437,1028982810,969324748)+W(6,1010827478,1005632845,1067061797,1065783254)+W(7,1033387493,1024758296,-1141733133,973320358)+W(8,-1096460028,-1090567932,-1078682340,-1094955795)+W(9,-1114814318,994121897,-1126300988,-1148320949)+W(10,992544217,1043858115,1041505996,-1104546945)+W(11,-1114466677,-1115137122,1007094454,-1122716507);WS(1033221560,1063777383);
sum1=W(0,1019126833,1022703059,1034317754,-1141147507)+W(1,1023815261,-1145478905,-1139797991,1017044691)+W(2,-1112638616,-1107233655,-1107419652,1017313945)+W(3,1030431247,1043218964,1030899327,1042038278)+W(4,1057738402,1049316970,1057780266,1039925560)+W(5,-1101232178,-1097249286,-1105363093,-1097041200)+W(6,-1088696201,-1093677291,-1091493000,-1105678958)+W(7,1054033952,1050643572,1039373871,1044902925)+W(8,1044063732,1018619290,1042363102,-1123751101)+W(9,-1103422471,-1099574259,-1109462943,-1143343447)+W(10,-1130166589,-1127677637,-1141893947,-1141892011)+W(11,1028589441,1032480102,1000558881,-1115509735);sum2=W(0,-1130982538,1021127838,1013698904,-1227267307)+W(1,-1180063220,-1130392938,-1129014326,1032270489)+W(2,-1106875761,1011019608,1024572751,1039986653)+W(3,-1113103478,-1104759550,1035543741,-1129087757)+W(4,1056618334,1055137831,1048771047,-1073860127)+W(5,-1108123535,1059126644,1045481337,1042704754)+W(6,1055977286,1058761027,-1103617496,-1072531400)+W(7,1052255088,1063802283,1048895081,1016319978)+W(8,-1102508839,-1115387544,-1128394642,1043687089)+W(9,-1126700500,-1109991236,1031917163,-1121934766)+W(10,1020425242,1013848532,1016018634,-1112657573)+W(11,1035781641,-1125248586,-1126407949,1030839801);WS(-1091503470,-1126838795);
sum1=W(0,-1124121237,-1113414670,1028321829,-1111356688)+W(1,1026686479,-1121133649,-1120913068,-1126384695)+W(2,-1134568843,-1126036384,1033159265,1037814911)+W(3,1031580097,1040854417,-1106928812,1027944427)+W(4,1047693172,1049117760,-1105247938,1058889082)+W(5,1012762455,-1120516448,1049438209,1040171928)+W(6,-1109412515,-1103447906,-1096437464,-1098797565)+W(7,-1104719461,-1106636212,-1129886751,-1106734009)+W(8,-1129997061,1034526751,-1143270742,1022658271)+W(9,-1109175079,1042645116,-1104071908,1012750451)+W(10,1024589216,-1113770234,1036105485,-1114645460)+W(11,1023714995,-1138248951,-1132081196,-1145462266);sum2=W(0,-1121971015,-1109269766,-1096046215,-1096349825)+W(1,-1104467071,-1105457821,-1114558576,-1113812495)+W(2,1025966975,1042653975,1058579369,1055073186)+W(3,1043843774,1043492169,-1138844670,1035958317)+W(4,-1127561691,1038662008,-1095336395,-1156170871)+W(5,1054347264,-1116732629,1043300107,1025184897)+W(6,1032121603,-1104797770,1041625968,-1098327149)+W(7,-1090818470,1028261711,-1117277405,-1130419167)+W(8,-1118316871,1018661176,-1131103951,1035437895)+W(9,1042639369,-1115472379,-1115061521,-1130646919)+W(10,-1147835451,1023052754,-1129857431,-1114991229)+W(11,1011784142,-1157273063,1024244091,-1148362739);WS(1065968028,1020949470);
sum1=W(0,1032158503,1018701500,1028916776,1031923218)+W(1,-1143490705,1005807263,1028568398,1026731038)+W(2,1043191673,1020082981,999481917,1033906881)+W(3,-1123072324,1012896153,1015001550,1035245559)+W(4,1050691771,1043953282,1047062836,1032996498)+W(5,1057457238,1057445286,1051530049,1057446979)+W(6,-1089572661,-1139338281,-1091936976,-1081715803)+W(7,-1087112685,-1088032573,-1100585253,-1095410205)+W(8,983294118,1041437600,1042367115,1040306653)+W(9,1019100064,-1123572193,1039280729,-1104642968)+W(10,1033006978,-1139648989,1033705422,-1132542121)+W(11,-1138694873,1033839136,1027376729,1015844228);sum2=W(0,-1107158830,-1114179967,-1106205598,-1112529879)+W(1,1036191348,1045048740,-1112261511,1045813672)+W(2,-1098284578,1050997929,1032837846,-1138556160)+W(3,-1103494095,1033058370,-1109765233,1040601336)+W(4,1059620359,-1120628180,1056621385,1064698181)+W(5,1049117565,-1087565422,1050635491,-1087363324)+W(6,1059101624,-1084072333,1033838752,1049137220)+W(7,-1100194061,-1096659207,1042760064,-1087988644)+W(8,-1080819081,1055292451,-1084530179,-1118657190)+W(9,1035375516,1055648971,-1101810418,1059720072)+W(10,1041045600,1041809552,-1150759871,1036987884)+W(11,1040790470,-1098721116,1028926760,-1118399816);WS(-1079370588,-1069938997);
sum1=W(0,-1107111607,1031876694,-1108546779,1007409349)+W(1,-1119937056,-1110402417,1034313646,-1115195974)+W(2,1024046068,1040468568,-1110778478,1041967908)+W(3,1037532265,1027170100,1028424065,1030920188)+W(4,1034755057,1048995971,1044693184,1056322870)+W(5,992363881,-1123931633,1041273350,1034999584)+W(6,-1106911318,-1106422470,-1092550445,-1089848952)+W(7,-1115839591,-1098485404,1027494176,-1101830589)+W(8,1032333322,1043602212,-1124221431,1044063648)+W(9,-1137125241,1015794334,1038675968,1024639630)+W(10,-1122522177,-1133546645,-1123999146,-1129245296)+W(11,-1121719236,1009488187,-1146748727,-1115284904);sum2=W(0,-1116010697,1039856206,1025692273,1047723216)+W(1,1054500142,1045538686,1020883249,1037455508)+W(2,1044972838,-1094195694,1041658757,-1090167008)+W(3,-1087657974,-1114739465,-1103808398,1025495534)+W(4,-1107525170,1054041965,-1095593913,1054432792)+W(5,1048962216,-1099510609,1041852115,-1112321007)+W(6,1025111869,-1105218154,1047241736,-1103340827)+W(7,-1105033641,1043141319,-1104502432,1020729805)+W(8,-1115770744,1021276689,-1113081166,1030984707)+W(9,1026520309,1008623973,1031142833,1034321699)+W(10,1027404867,-1122132060,1036997767,-1109230755)+W(11,1000189578,949401483,-1121181330,989367833);WS(1051966318,-1113875142);
sum1=W(0,1035883793,-1111332346,1045917727,1006041029)+W(1,-1129901007,1042663274,-1119690564,1014471632)+W(2,1040145278,-1135399329,1017502534,-1096989371)+W(3,1043615094,1025318012,-1113005508,1043398529)+W(4,1051696565,1051177307,1054251573,1061428120)+W(5,1037934795,1050890887,1046007992,1049249377)+W(6,-1091560996,-1096861164,-1091248610,-1087158964)+W(7,-1098884432,-1096301045,-1093706893,-1093100168)+W(8,-1133003627,-1117751383,-1178468754,-1126263439)+W(9,-1106662601,1017933485,1038615540,-1116546293)+W(10,-1126824689,1039745286,1020593891,1008594943)+W(11,1037849734,1035118155,-1114145271,1028529816);sum2=W(0,-1120038729,1032134121,-1112337284,1014623636)+W(1,1015804972,-1111055788,1025605092,-1118260382)+W(2,995641288,1034430176,1011533369,1032554184)+W(3,-1114631943,1037430467,1022278663,1020696197)+W(4,1035481768,-1099098436,960227969,-1122840036)+W(5,-1123247827,-1115890560,1022436109,1010081074)+W(6,1011267102,-1099374838,1055781369,1046041384)+W(7,1055178264,-1124103196,1039303021,-1116158530)+W(8,1042749492,1055985885,1067101038,1069533386)+W(9,1065618150,1058921177,-1106092627,-1118372702)+W(10,1026093812,-1113501317,-1095011910,-1086401299)+W(11,-1079450114,-1075689828,-1082339747,-1095588850);WS(-1087762743,-1114043214);
sum1=W(0,1028903325,-1111481047,1010874850,-1117223539)+W(1,-1114811697,1027957028,-1115120063,1025677743)+W(2,1040067739,981566559,1032756947,-1130847267)+W(3,-1123313460,-1113871531,-1126050567,-1113266015)+W(4,1045936105,1050679259,1052053924,1055533279)+W(5,1059392176,1053658934,1039338221,1051823712)+W(6,-1095653187,-1096161947,-1090950614,-1084280212)+W(7,-1097768267,1005713692,-1120312930,-1118568631)+W(8,-1122706133,1026181394,1034645023,1030922562)+W(9,1030340896,-1102292436,-1107839810,-1112577800)+W(10,1029496147,-1149217596,-1132850610,-1154701224)+W(11,-1113406339,1020850850,1017761874,-1117302546);sum2=W(0,1001016005,-1125241033,1018218852,-1111720092)+W(1,1015413875,-1140722987,-1138333196,1010568725)+W(2,-1150454109,-1111980552,1033028659,1037513337)+W(3,-1109924763,-1144232926,-1117260807,-1113652225)+W(4,1001531747,1031575403,1016765132,-1085543392)+W(5,1053354837,1054900052,1041131548,1045881209)+W(6,983352173,-1103460210,-1103428024,-1076627395)+W(7,1074369634,1051272122,-1098379064,-1098914955)+W(8,-1106746798,1036252996,-1128273041,1046375720)+W(9,1055587240,-1094917738,-1106193524,-1098562564)+W(10,-1157019725,1023495862,1033057508,-1112606370)+W(11,1019967806,-1107285947,1012881631,1031041657);WS(-1090517687,-1095444575);
sum1=W(0,1025742446,-1111454559,1040962578,1035513890)+W(1,1025779251,1041617005,-1106922364,1024699903)+W(2,1032739299,-1106175885,-1110724347,-1118213794)+W(3,-1103218657,1040368314,-1105137317,1024907982)+W(4,1054789967,1031326631,1052551894,1059778428)+W(5,1045793474,1051667296,1040121301,1052247674)+W(6,-1095546301,-1101847659,-1090925684,-1089262225)+W(7,-1096439373,-1099734269,-1104705805,-1097282993)+W(8,1033023507,-1107099097,1036045063,1035395209)+W(9,-1101529212,1050132438,-1102593253,1016797696)+W(10,1028563508,-1117676152,1036888990,1007580971)+W(11,949923192,1037985265,-1113513373,1026673059);sum2=W(0,1052208474,1035064858,1064043431,1055780907)+W(1,1048070172,1057138231,-1100953655,1042120650)+W(2,-1095438834,-1104348375,-1079843968,-1084432555)+W(3,-1106077690,-1086965748,1048708391,-1106942577)+W(4,1040952518,-1095663473,1060639651,1054823629)+W(5,-1098542607,1057295667,-1095587456,1035260440)+W(6,-1101013864,1048824145,-1097227129,-1105218176)+W(7,1048082838,-1106201667,1042233875,-1136871967)+W(8,1045777263,-1099869349,1049789703,-1118379111)+W(9,-1102784042,1043327775,-1107731485,1006771796)+W(10,-1125550479,-1127115193,1024044553,972648308)+W(11,1021849499,1016298873,-1116706874,1030896448);WS(-1115614648,1042425791);
sum1=W(0,-1120207204,-1124027509,-1144413692,-1105701711)+W(1,1014568102,-1120774251,1029691462,-1119274774)+W(2,-1115327070,1016926292,1038910502,1037845356)+W(3,1042236823,-1105850383,-1134596907,-1117126533)+W(4,-1093340989,-1096731140,-1096554678,-1085064420)+W(5,-1100005974,-1098496607,-1135406214,-1098152617)+W(6,1053481388,1053311332,1057006919,1049566369)+W(7,1056376458,1048579325,1042582346,1043887136)+W(8,1030984860,-1116407641,1038600290,1043585442)+W(9,1018535375,-1122768840,-1120431498,1035562443)+W(10,-1113874973,1010793530,-1116271283,-1114795809)+W(11,992031960,-1130485552,1029193328,-1140222054);sum2=W(0,-1127240204,1024332524,-1145474239,-1111478947)+W(1,1029335642,-1112394176,1042612281,-1152251822)+W(2,-1079712608,-1082891577,-1081879450,1047818786)+W(3,1066272635,1064292926,1048742105,1063028070)+W(4,1066527571,1063276166,1065092416,1033988518)+W(5,-1081647719,-1085935960,-1090025738,-1088819358)+W(6,1049757184,1025750476,1045572932,-1093152038)+W(7,-1129453741,-1107360776,1042389166,-1095668919)+W(8,-1122509441,-1127423195,-1127801782,-1126799575)+W(9,1033523902,-1109456127,1029374360,-1163717821)+W(10,-1120167031,976948665,-1123809997,1030959654)+W(11,995040830,1026103880,-1116538748,1033003323);WS(1005558656,-1134386388);
return clamp(mstd0 + 5.0 * vsum / wsum * mstd1, 0.0, 1.0);
} // nnedi3
vec4 hook() {
vec4 ret = vec4(0.0);
vec4 samples[12];
samples[0][0] = HOOKED_texOff(vec2(-2.0, -3.0)).x;
samples[0][1] = HOOKED_texOff(vec2(-2.0, -2.0)).x;
samples[0][2] = HOOKED_texOff(vec2(-2.0, -1.0)).x;
samples[0][3] = HOOKED_texOff(vec2(-2.0, 0.0)).x;
samples[1][0] = HOOKED_texOff(vec2(-2.0, 1.0)).x;
samples[1][1] = HOOKED_texOff(vec2(-2.0, 2.0)).x;
samples[1][2] = HOOKED_texOff(vec2(-2.0, 3.0)).x;
samples[1][3] = HOOKED_texOff(vec2(-2.0, 4.0)).x;
samples[2][0] = HOOKED_texOff(vec2(-1.0, -3.0)).x;
samples[2][1] = HOOKED_texOff(vec2(-1.0, -2.0)).x;
samples[2][2] = HOOKED_texOff(vec2(-1.0, -1.0)).x;
samples[2][3] = HOOKED_texOff(vec2(-1.0, 0.0)).x;
samples[3][0] = HOOKED_texOff(vec2(-1.0, 1.0)).x;
samples[3][1] = HOOKED_texOff(vec2(-1.0, 2.0)).x;
samples[3][2] = HOOKED_texOff(vec2(-1.0, 3.0)).x;
samples[3][3] = HOOKED_texOff(vec2(-1.0, 4.0)).x;
samples[4][0] = HOOKED_texOff(vec2(0.0, -3.0)).x;
samples[4][1] = HOOKED_texOff(vec2(0.0, -2.0)).x;
samples[4][2] = HOOKED_texOff(vec2(0.0, -1.0)).x;
samples[4][3] = HOOKED_texOff(vec2(0.0, 0.0)).x;
samples[5][0] = HOOKED_texOff(vec2(0.0, 1.0)).x;
samples[5][1] = HOOKED_texOff(vec2(0.0, 2.0)).x;
samples[5][2] = HOOKED_texOff(vec2(0.0, 3.0)).x;
samples[5][3] = HOOKED_texOff(vec2(0.0, 4.0)).x;
samples[6][0] = HOOKED_texOff(vec2(1.0, -3.0)).x;
samples[6][1] = HOOKED_texOff(vec2(1.0, -2.0)).x;
samples[6][2] = HOOKED_texOff(vec2(1.0, -1.0)).x;
samples[6][3] = HOOKED_texOff(vec2(1.0, 0.0)).x;
samples[7][0] = HOOKED_texOff(vec2(1.0, 1.0)).x;
samples[7][1] = HOOKED_texOff(vec2(1.0, 2.0)).x;
samples[7][2] = HOOKED_texOff(vec2(1.0, 3.0)).x;
samples[7][3] = HOOKED_texOff(vec2(1.0, 4.0)).x;
samples[8][0] = HOOKED_texOff(vec2(2.0, -3.0)).x;
samples[8][1] = HOOKED_texOff(vec2(2.0, -2.0)).x;
samples[8][2] = HOOKED_texOff(vec2(2.0, -1.0)).x;
samples[8][3] = HOOKED_texOff(vec2(2.0, 0.0)).x;
samples[9][0] = HOOKED_texOff(vec2(2.0, 1.0)).x;
samples[9][1] = HOOKED_texOff(vec2(2.0, 2.0)).x;
samples[9][2] = HOOKED_texOff(vec2(2.0, 3.0)).x;
samples[9][3] = HOOKED_texOff(vec2(2.0, 4.0)).x;
samples[10][0] = HOOKED_texOff(vec2(3.0, -3.0)).x;
samples[10][1] = HOOKED_texOff(vec2(3.0, -2.0)).x;
samples[10][2] = HOOKED_texOff(vec2(3.0, -1.0)).x;
samples[10][3] = HOOKED_texOff(vec2(3.0, 0.0)).x;
samples[11][0] = HOOKED_texOff(vec2(3.0, 1.0)).x;
samples[11][1] = HOOKED_texOff(vec2(3.0, 2.0)).x;
samples[11][2] = HOOKED_texOff(vec2(3.0, 3.0)).x;
samples[11][3] = HOOKED_texOff(vec2(3.0, 4.0)).x;
ret[0] = nnedi3(samples);
return ret;
} // hook
//!DESC NNEDI3 (combine_x, nns128, win8x6)
//!HOOK LUMA
//!BIND HOOKED
//!BIND nnedi3_int
//!WIDTH 2 HOOKED.w *
//!OFFSET -0.500000 0.000000
//!WHEN HOOKED.w OUTPUT.w / 0.707106 <
vec4 hook() {
vec2 dir = fract(HOOKED_pos * HOOKED_size) - 0.5;
if (dir.x < 0.0) {
return HOOKED_texOff(-dir);
} else {
return nnedi3_int_texOff(-dir);
}
}