From e87e376f618cf03420d4819b4f85f7313600dd74 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Wed, 29 Apr 2026 22:45:23 +0200 Subject: [PATCH 01/24] docs: add area light example --- .../examples/rendering/area-light/geometry.ts | 171 + .../examples/rendering/area-light/index.html | 1 + .../examples/rendering/area-light/index.ts | 189 + .../rendering/area-light/ltcTables.ts | 3301 +++++++++++++++++ .../examples/rendering/area-light/meta.json | 6 + .../examples/rendering/area-light/schemas.ts | 49 + .../examples/rendering/area-light/shaders.ts | 288 ++ .../rendering/area-light/thumbnail.png | Bin 0 -> 162194 bytes 8 files changed, 4005 insertions(+) create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/index.html create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/index.ts create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/ltcTables.ts create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/meta.json create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/thumbnail.png diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts new file mode 100644 index 0000000000..88c4fcec33 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -0,0 +1,171 @@ +import type { ExampleVertex } from './schemas.ts'; + +type Vec3 = [number, number, number]; + +const black: Vec3 = [0, 0, 0]; + +function add(a: Vec3, b: Vec3): Vec3 { + return [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; +} + +function sub(a: Vec3, b: Vec3): Vec3 { + return [a[0] - b[0], a[1] - b[1], a[2] - b[2]]; +} + +function mul(v: Vec3, scale: number): Vec3 { + return [v[0] * scale, v[1] * scale, v[2] * scale]; +} + +function normalize(v: Vec3): Vec3 { + const len = Math.hypot(v[0], v[1], v[2]); + return len > 0 ? [v[0] / len, v[1] / len, v[2] / len] : [0, 1, 0]; +} + +function vertex( + position: Vec3, + normal: Vec3, + albedo: Vec3, + roughness: number, + emissive: Vec3 = black, +): ExampleVertex { + return { position, normal, albedo, roughness, emissive }; +} + +function pushQuad( + vertices: ExampleVertex[], + center: Vec3, + axisU: Vec3, + axisV: Vec3, + normal: Vec3, + albedo: Vec3, + roughness: number, + emissive: Vec3 = black, +) { + const p0 = sub(sub(center, axisU), axisV); + const p1 = sub(add(center, axisU), axisV); + const p2 = add(add(center, axisU), axisV); + const p3 = add(sub(center, axisU), axisV); + vertices.push( + vertex(p0, normal, albedo, roughness, emissive), + vertex(p1, normal, albedo, roughness, emissive), + vertex(p2, normal, albedo, roughness, emissive), + vertex(p0, normal, albedo, roughness, emissive), + vertex(p2, normal, albedo, roughness, emissive), + vertex(p3, normal, albedo, roughness, emissive), + ); +} + +function pushSphere( + vertices: ExampleVertex[], + center: Vec3, + radius: number, + albedo: Vec3, + roughness: number, +) { + const segments = 48; + const rings = 24; + + function spherePoint(u: number, v: number): { position: Vec3; normal: Vec3 } { + const theta = v * Math.PI; + const phi = u * Math.PI * 2; + const normal = normalize([ + Math.sin(theta) * Math.cos(phi), + Math.cos(theta), + Math.sin(theta) * Math.sin(phi), + ]); + return { normal, position: add(center, mul(normal, radius)) }; + } + + for (let y = 0; y < rings; y++) { + const v0 = y / rings; + const v1 = (y + 1) / rings; + + for (let x = 0; x < segments; x++) { + const u0 = x / segments; + const u1 = (x + 1) / segments; + const a = spherePoint(u0, v0); + const b = spherePoint(u0, v1); + const c = spherePoint(u1, v1); + const d = spherePoint(u1, v0); + + vertices.push( + vertex(a.position, a.normal, albedo, roughness), + vertex(b.position, b.normal, albedo, roughness), + vertex(c.position, c.normal, albedo, roughness), + vertex(a.position, a.normal, albedo, roughness), + vertex(c.position, c.normal, albedo, roughness), + vertex(d.position, d.normal, albedo, roughness), + ); + } + } +} + +export const initialLight = { + center: [0, 3.2, -0.6] as Vec3, + dirX: [1, 0, 0] as Vec3, + dirY: [0, 0, 1] as Vec3, + halfSize: [1.25, 0.75] as [number, number], + color: [1, 0.78, 0.45] as Vec3, + intensity: 5.5, +}; + +export function createSceneVertices(light = initialLight, surfaceRoughness?: number) { + const vertices: ExampleVertex[] = []; + const floorRoughness = surfaceRoughness ?? 0.55; + const wallRoughness = surfaceRoughness ?? 0.42; + const sphereRoughness = surfaceRoughness ?? 0.18; + const blueSphereRoughness = surfaceRoughness ?? 0.46; + + pushQuad( + vertices, + [0, 0, 0], + [4.5, 0, 0], + [0, 0, -4.5], + [0, 1, 0], + [0.72, 0.7, 0.65], + floorRoughness, + ); + pushQuad( + vertices, + [0, 1.8, -4.5], + [4.5, 0, 0], + [0, 1.8, 0], + [0, 0, 1], + [0.48, 0.53, 0.61], + wallRoughness, + ); + pushQuad( + vertices, + [-4.5, 1.8, 0], + [0, 0, -4.5], + [0, 1.8, 0], + [1, 0, 0], + [0.6, 0.44, 0.42], + wallRoughness, + ); + pushQuad( + vertices, + [4.5, 1.8, 0], + [0, 0, 4.5], + [0, 1.8, 0], + [-1, 0, 0], + [0.4, 0.52, 0.48], + wallRoughness, + ); + + pushSphere(vertices, [-1.15, 0.82, -1.35], 0.82, [0.82, 0.87, 0.9], sphereRoughness); + pushSphere(vertices, [1.2, 0.58, 0.25], 0.58, [0.38, 0.62, 0.74], blueSphereRoughness); + + pushQuad( + vertices, + light.center, + mul(light.dirX, light.halfSize[0]), + mul(light.dirY, light.halfSize[1]), + [0, -1, 0], + [1, 1, 1], + 0.2, + light.color.map((channel) => channel * light.intensity) as Vec3, + ); + + return vertices; +} diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.html b/apps/typegpu-docs/src/examples/rendering/area-light/index.html new file mode 100644 index 0000000000..581d6789f8 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.html @@ -0,0 +1 @@ + diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts new file mode 100644 index 0000000000..90c7d8335f --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -0,0 +1,189 @@ +import tgpu, { d } from 'typegpu'; +import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; +import { defineControls } from '../../common/defineControls.ts'; +import { createSceneVertices, initialLight } from './geometry.ts'; +import { LTC_1, LTC_2 } from './ltcTables.ts'; +import { ltcLayout, RectLight, RenderParams, sceneLayout, vertexLayout } from './schemas.ts'; +import { mainFragment, mainVertex } from './shaders.ts'; + +const root = await tgpu.init(); +const canvas = document.querySelector('canvas') as HTMLCanvasElement; +const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); +const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); + +const currentLight = { + center: [...initialLight.center] as typeof initialLight.center, + dirX: [...initialLight.dirX] as typeof initialLight.dirX, + dirY: [...initialLight.dirY] as typeof initialLight.dirY, + halfSize: [...initialLight.halfSize] as typeof initialLight.halfSize, + color: [...initialLight.color] as typeof initialLight.color, + intensity: initialLight.intensity, +}; +let surfaceRoughness: number | undefined; + +function writeSceneVertices() { + vertexBuffer.write(createSceneVertices(currentLight, surfaceRoughness)); +} + +const vertices = createSceneVertices(currentLight, surfaceRoughness); +const vertexBuffer = root + .createBuffer(vertexLayout.schemaForCount(vertices.length), vertices) + .$usage('vertex'); + +const cameraUniform = root.createUniform(Camera); +const lightUniform = root.createUniform(RectLight, initialLight); +const paramsUniform = root.createUniform(RenderParams, { + exposure: 0.8, + ambient: 0.035, + specularStrength: 1, +}); + +const ltcMatTexture = root + .createTexture({ + size: [64, 64], + format: 'rgba32float', + }) + .$usage('sampled'); +ltcMatTexture.write(LTC_1); + +const ltcAmpTexture = root + .createTexture({ + size: [64, 64], + format: 'rgba32float', + }) + .$usage('sampled'); +ltcAmpTexture.write(LTC_2); + +const sceneBindGroup = root.createBindGroup(sceneLayout, { + camera: cameraUniform.buffer, + light: lightUniform.buffer, + params: paramsUniform.buffer, +}); + +const ltcBindGroup = root.createBindGroup(ltcLayout, { + ltcMat: ltcMatTexture, + ltcAmp: ltcAmpTexture, +}); + +let depthTexture = root + .createTexture({ + size: [canvas.width, canvas.height], + format: 'depth24plus', + }) + .$usage('render'); + +const pipeline = root.createRenderPipeline({ + attribs: vertexLayout.attrib, + vertex: mainVertex, + fragment: mainFragment, + targets: { format: presentationFormat }, + depthStencil: { + format: 'depth24plus', + depthWriteEnabled: true, + depthCompare: 'less', + }, + primitive: { cullMode: 'none' }, +}); + +const { cleanupCamera } = setupOrbitCamera( + canvas, + { + initPos: d.vec4f(4.2, 2.35, 5.1, 1), + target: d.vec4f(0, 1.05, -1.1, 1), + minZoom: 2.5, + maxZoom: 9, + }, + (updates) => cameraUniform.patch(updates), +); + +const resizeObserver = new ResizeObserver(() => { + depthTexture.destroy(); + depthTexture = root + .createTexture({ + size: [canvas.width, canvas.height], + format: 'depth24plus', + }) + .$usage('render'); +}); +resizeObserver.observe(canvas); + +let animationFrameId: number; + +function render() { + pipeline + .with(sceneBindGroup) + .with(ltcBindGroup) + .with(vertexLayout, vertexBuffer) + .withColorAttachment({ + view: context, + clearValue: [0.02, 0.022, 0.025, 1], + }) + .withDepthStencilAttachment({ + view: depthTexture, + depthClearValue: 1, + depthLoadOp: 'clear', + depthStoreOp: 'store', + }) + .draw(vertices.length); + + animationFrameId = requestAnimationFrame(render); +} + +animationFrameId = requestAnimationFrame(render); + +export const controls = defineControls({ + exposure: { + initial: 0.8, + min: 0.2, + max: 2, + step: 0.01, + onSliderChange: (exposure) => paramsUniform.patch({ exposure }), + }, + roughness: { + initial: 0.18, + min: 0.03, + max: 0.9, + step: 0.01, + onSliderChange: (roughness) => { + surfaceRoughness = roughness; + writeSceneVertices(); + }, + }, + intensity: { + initial: initialLight.intensity, + min: 0, + max: 12, + step: 0.1, + onSliderChange: (intensity) => { + currentLight.intensity = intensity; + lightUniform.patch({ intensity }); + writeSceneVertices(); + }, + }, + 'light color': { + initial: d.vec3f(...initialLight.color), + onColorChange: (color) => { + currentLight.color = [color.x, color.y, color.z]; + lightUniform.patch({ color }); + writeSceneVertices(); + }, + }, + 'light size': { + initial: d.vec2f(...initialLight.halfSize), + min: d.vec2f(0.25, 0.25), + max: d.vec2f(2.4, 1.6), + step: d.vec2f(0.01, 0.01), + onVectorSliderChange: (halfSize) => { + currentLight.halfSize = [halfSize.x, halfSize.y]; + lightUniform.patch({ halfSize }); + writeSceneVertices(); + }, + }, +}); + +export function onCleanup() { + cancelAnimationFrame(animationFrameId); + cleanupCamera(); + resizeObserver.disconnect(); + root.destroy(); +} diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltcTables.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltcTables.ts new file mode 100644 index 0000000000..c2b15934e3 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltcTables.ts @@ -0,0 +1,3301 @@ +// Precomputed GGX LTC lookup tables from selfshadow/ltc_code. +// Source: https://github.com/selfshadow/ltc_code/blob/master/fit/results/ltc.js +// +// Copyright (c) 2017, Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are permitted +// provided that the following conditions are met: +// * If you use (or adapt) the source code in your own work, please include a reference to the paper: +// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines. +// Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt. +// ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH 2016) 35(4), 2016. +// Project page: https://eheitzresearch.wordpress.com/415-2/ +// * Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, this list of +// conditions and the following disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY +// WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +export const LTC_1 = new Float32Array([ + 1, 0, 0, 2e-5, 1, 0, 0, 0.000503905, 1, 0, 0, 0.00201562, 1, 0, 0, 0.00453516, 1, 0, 0, + 0.00806253, 1, 0, 0, 0.0125978, 1, 0, 0, 0.018141, 1, 0, 0, 0.0246924, 1, 0, 0, 0.0322525, 1, 0, + 0, 0.0408213, 1, 0, 0, 0.0503999, 1, 0, 0, 0.0609894, 1, 0, 0, 0.0725906, 1, 0, 0, 0.0852058, 1, + 0, 0, 0.0988363, 1, 0, 0, 0.113484, 1, 0, 0, 0.129153, 1, 0, 0, 0.145839, 1, 0, 0, 0.163548, 1, 0, + 0, 0.182266, 1, 0, 0, 0.201942, 1, 0, 0, 0.222314, 1, 0, 0, 0.241906, 1, 0, 0, 0.262314, 1, 0, 0, + 0.285754, 1, 0, 0, 0.310159, 1, 0, 0, 0.335426, 1, 0, 0, 0.361341, 1, 0, 0, 0.387445, 1, 0, 0, + 0.412784, 1, 0, 0, 0.438197, 1, 0, 0, 0.466966, 1, 0, 0, 0.49559, 1, 0, 0, 0.523448, 1, 0, 0, + 0.549938, 1, 0, 0, 0.57979, 1, 0, 0, 0.608746, 1, 0, 0, 0.636185, 1, 0, 0, 0.664748, 1, 0, 0, + 0.69313, 1, 0, 0, 0.71966, 1, 0, 0, 0.747662, 1, 0, 0, 0.774023, 1, 0, 0, 0.799775, 1, 0, 0, + 0.825274, 1, 0, 0, 0.849156, 1, 0, 0, 0.873248, 1, 0, 0, 0.89532, 1, 0, 0, 0.917565, 1, 0, 0, + 0.937863, 1, 0, 0, 0.958139, 1, 0, 0, 0.976563, 1, 0, 0, 0.994658, 1, 0, 0, 1.0112, 1, 0, 0, + 1.02712, 1, 0, 0, 1.04189, 1, 0, 0, 1.05568, 1, 0, 0, 1.06877, 1, 0, 0, 1.08058, 1, 0, 0, 1.09194, + 1, 0, 0, 1.10191, 1, 0, 0, 1.11161, 1, 0, 0, 1.1199, 1, 0, 0, 1.12813, 0.999547, -4.48815e-7, + 0.0224417, 1.99902e-5, 0.999495, -1.13079e-5, 0.0224406, 0.000503651, 0.999496, -4.52317e-5, + 0.0224406, 0.00201461, 0.999496, -0.000101772, 0.0224406, 0.00453287, 0.999495, -0.000180928, + 0.0224406, 0.00805845, 0.999497, -0.000282702, 0.0224406, 0.0125914, 0.999496, -0.000407096, + 0.0224406, 0.0181319, 0.999498, -0.000554114, 0.0224406, 0.02468, 0.999499, -0.000723768, + 0.0224406, 0.0322363, 0.999495, -0.000916058, 0.0224405, 0.0408009, 0.999499, -0.00113101, + 0.0224408, 0.050375, 0.999494, -0.00136863, 0.0224405, 0.0609586, 0.999489, -0.00162896, + 0.0224401, 0.0725537, 0.999489, -0.00191201, 0.0224414, 0.0851619, 0.999498, -0.00221787, + 0.0224413, 0.0987867, 0.999492, -0.00254642, 0.0224409, 0.113426, 0.999507, -0.00289779, + 0.0224417, 0.129088, 0.999494, -0.0032716, 0.0224386, 0.145767, 0.999546, -0.0036673, 0.0224424, + 0.163472, 0.999543, -0.00408166, 0.0224387, 0.182182, 0.999499, -0.00450056, 0.0224338, 0.201843, + 0.999503, -0.00483661, 0.0224203, 0.222198, 0.999546, -0.00452928, 0.022315, 0.241714, 0.999508, + -0.00587403, 0.0224329, 0.262184, 0.999509, -0.00638806, 0.0224271, 0.285609, 0.999501, + -0.00691028, 0.0224166, 0.309998, 0.999539, -0.00741979, 0.0223989, 0.335262, 0.999454, + -0.00786282, 0.0223675, 0.361154, 0.999529, -0.00811928, 0.0222828, 0.387224, 0.999503, + -0.00799941, 0.0221063, 0.41252, 0.999561, -0.00952753, 0.0223057, 0.438006, 0.999557, -0.0099134, + 0.0222065, 0.466735, 0.999541, -0.0100935, 0.0220402, 0.495332, 0.999562, -0.00996821, 0.0218067, + 0.523197, 0.999556, -0.0105031, 0.0217096, 0.550223, 0.999561, -0.0114191, 0.0217215, 0.579498, + 0.999588, -0.0111818, 0.0213357, 0.608416, 0.999633, -0.0107725, 0.0208689, 0.635965, 0.999527, + -0.0121671, 0.0210149, 0.664476, 0.999508, -0.0116005, 0.020431, 0.692786, 0.999568, -0.0115604, + 0.0199791, 0.719709, 0.999671, -0.0121117, 0.0197415, 0.74737, 0.999688, -0.0110769, 0.0188846, + 0.773692, 0.99962, -0.0122368, 0.0188452, 0.799534, 0.999823, -0.0110325, 0.0178001, 0.825046, + 0.999599, -0.0114923, 0.0174221, 0.849075, 0.999619, -0.0105923, 0.0164345, 0.872999, 0.999613, + -0.0105988, 0.0158227, 0.895371, 0.99964, -0.00979861, 0.0148131, 0.917364, 0.99977, -0.00967238, + 0.0140721, 0.938002, 0.999726, -0.00869175, 0.0129543, 0.957917, 0.99973, -0.00866872, 0.0122329, + 0.976557, 0.999773, -0.00731956, 0.0108958, 0.994459, 0.999811, -0.00756027, 0.0102715, 1.01118, + 0.999862, -0.00583732, 0.00878781, 1.02701, 0.999835, -0.00631438, 0.00827529, 1.04186, 0.999871, + -0.00450785, 0.00674583, 1.05569, 0.999867, -0.00486079, 0.00621041, 1.06861, 0.999939, + -0.00322072, 0.00478301, 1.08064, 0.999918, -0.00318199, 0.00406395, 1.09181, 1.00003, + -0.00193348, 0.00280682, 1.10207, 0.999928, -0.00153729, 0.00198741, 1.11152, 0.999933, + -0.000623666, 0.000917714, 1.12009, 1, -1.02387e-6, 9.07581e-7, 1.12813, 0.997866, -8.96716e-7, + 0.0448334, 1.99584e-5, 0.997987, -2.25945e-5, 0.0448389, 0.000502891, 0.997987, -9.03781e-5, + 0.0448388, 0.00201156, 0.997985, -0.000203351, 0.0448388, 0.00452602, 0.997986, -0.000361514, + 0.0448388, 0.00804629, 0.997987, -0.00056487, 0.0448389, 0.0125724, 0.997988, -0.000813423, + 0.0448389, 0.0181045, 0.997984, -0.00110718, 0.0448387, 0.0246427, 0.997985, -0.00144616, + 0.0448388, 0.0321875, 0.997987, -0.00183038, 0.044839, 0.0407392, 0.997983, -0.00225987, + 0.0448387, 0.0502986, 0.997991, -0.00273467, 0.0448389, 0.0608667, 0.997984, -0.00325481, + 0.0448384, 0.0724444, 0.998002, -0.00382043, 0.044839, 0.0850348, 0.997997, -0.00443145, + 0.0448396, 0.0986372, 0.998007, -0.00508796, 0.0448397, 0.113255, 0.998008, -0.00578985, 0.04484, + 0.128891, 0.998003, -0.00653683, 0.0448384, 0.145548, 0.997983, -0.00732713, 0.0448358, 0.163221, + 0.997985, -0.00815454, 0.0448358, 0.181899, 0.998005, -0.00898985, 0.0448286, 0.201533, 0.998026, + -0.00964404, 0.0447934, 0.221821, 0.998055, -0.00922677, 0.044611, 0.241282, 0.99804, -0.0117361, + 0.0448245, 0.261791, 0.998048, -0.0127628, 0.0448159, 0.285181, 0.998088, -0.0138055, 0.0447996, + 0.30954, 0.998058, -0.0148206, 0.0447669, 0.334751, 0.998099, -0.0156998, 0.044697, 0.36061, + 0.998116, -0.0161976, 0.0445122, 0.386603, 0.998195, -0.015945, 0.0441711, 0.411844, 0.998168, + -0.0183947, 0.0444255, 0.43773, 0.998184, -0.0197913, 0.0443809, 0.466009, 0.998251, -0.0201426, + 0.0440689, 0.494574, 0.998305, -0.0198847, 0.0435632, 0.522405, 0.998273, -0.0210577, 0.043414, + 0.549967, 0.998254, -0.0227901, 0.0433943, 0.578655, 0.998349, -0.0223108, 0.0426529, 0.60758, + 0.99843, -0.0223088, 0.042, 0.635524, 0.998373, -0.0241141, 0.0418987, 0.663621, 0.998425, + -0.0231446, 0.0408118, 0.691906, 0.998504, -0.0233684, 0.0400565, 0.719339, 0.998443, -0.0241652, + 0.0394634, 0.74643, 0.99848, -0.0228715, 0.0380002, 0.773086, 0.998569, -0.023519, 0.0372322, + 0.798988, 0.998619, -0.0223108, 0.0356468, 0.824249, 0.998594, -0.0223105, 0.034523, 0.848808, + 0.998622, -0.0213426, 0.0328887, 0.87227, 0.998669, -0.0207912, 0.0314374, 0.895157, 0.998705, + -0.0198416, 0.0296925, 0.916769, 0.998786, -0.0189168, 0.0279634, 0.937773, 0.998888, -0.0178811, + 0.0261597, 0.957431, 0.99906, -0.0166845, 0.0242159, 0.976495, 0.999038, -0.0155464, 0.0222638, + 0.994169, 0.999237, -0.0141349, 0.0201967, 1.01112, 0.999378, -0.0129324, 0.0181744, 1.02692, + 0.999433, -0.0113192, 0.0159898, 1.04174, 0.999439, -0.0101244, 0.0140385, 1.05559, 0.999614, + -0.00837456, 0.0117826, 1.06852, 0.999722, -0.00721769, 0.00983745, 1.08069, 0.999817, + -0.00554067, 0.00769002, 1.09176, 0.99983, -0.00426961, 0.005782, 1.10211, 0.999964, -0.00273904, + 0.00374503, 1.11152, 1.00001, -0.00136739, 0.00187176, 1.12031, 0.999946, 3.93227e-5, -2.8919e-5, + 1.12804, 0.995847, -1.3435e-6, 0.0671785, 1.9916e-5, 0.995464, -3.38387e-5, 0.0671527, + 0.000501622, 0.99547, -0.000135355, 0.0671531, 0.00200649, 0.995471, -0.00030455, 0.0671532, + 0.00451461, 0.99547, -0.000541423, 0.0671531, 0.008026, 0.995471, -0.00084598, 0.0671531, + 0.0125407, 0.99547, -0.00121823, 0.0671531, 0.0180589, 0.99547, -0.00165817, 0.0671531, 0.0245806, + 0.995463, -0.00216583, 0.0671526, 0.0321062, 0.995468, -0.00274127, 0.0671527, 0.0406366, + 0.995474, -0.00338447, 0.0671534, 0.0501717, 0.995473, -0.00409554, 0.0671533, 0.0607131, + 0.995478, -0.00487451, 0.0671531, 0.0722618, 0.995476, -0.00572148, 0.0671532, 0.0848191, + 0.995477, -0.00663658, 0.0671539, 0.0983882, 0.995498, -0.00761986, 0.0671541, 0.112972, 0.995509, + -0.00867094, 0.0671542, 0.128568, 0.995509, -0.00978951, 0.0671531, 0.145183, 0.995503, + -0.0109725, 0.0671491, 0.162808, 0.995501, -0.012211, 0.0671465, 0.181441, 0.99553, -0.0134565, + 0.0671371, 0.201015, 0.99555, -0.014391, 0.0670831, 0.221206, 0.99558, -0.014351, 0.0668883, + 0.240813, 0.995577, -0.0173997, 0.0671055, 0.261257, 0.995602, -0.0191111, 0.0671178, 0.284467, + 0.995623, -0.0206705, 0.0670946, 0.308765, 0.995658, -0.022184, 0.0670472, 0.333905, 0.995705, + -0.0234832, 0.0669417, 0.359677, 0.995719, -0.0241933, 0.0666714, 0.385554, 0.995786, -0.0243539, + 0.066266, 0.410951, 0.995887, -0.0271866, 0.0664367, 0.437163, 0.995944, -0.0296012, 0.0664931, + 0.464842, 0.996004, -0.0301045, 0.0660105, 0.49332, 0.996128, -0.0298311, 0.0652694, 0.521131, + 0.996253, -0.0316426, 0.0650739, 0.549167, 0.996244, -0.0339043, 0.0649433, 0.57737, 0.996309, + -0.033329, 0.0638926, 0.606073, 0.996417, -0.0338935, 0.0630849, 0.634527, 0.996372, -0.0353104, + 0.0625083, 0.66256, 0.996542, -0.0348942, 0.0611986, 0.690516, 0.996568, -0.0351614, 0.060069, + 0.718317, 0.996711, -0.0354317, 0.0588522, 0.74528, 0.996671, -0.0349513, 0.0571902, 0.772061, + 0.996865, -0.0345622, 0.0555321, 0.798089, 0.996802, -0.0342566, 0.0537816, 0.823178, 0.996992, + -0.0330862, 0.0516095, 0.847949, 0.996944, -0.0324666, 0.0495537, 0.871431, 0.997146, -0.0309544, + 0.0470302, 0.894357, 0.997189, -0.0299372, 0.0446043, 0.916142, 0.997471, -0.0281389, 0.0418812, + 0.937193, 0.997515, -0.0268702, 0.0391823, 0.957, 0.997812, -0.0247166, 0.0361338, 0.975936, + 0.998027, -0.0233525, 0.0333945, 0.99391, 0.998233, -0.0209839, 0.0301917, 1.01075, 0.998481, + -0.0194309, 0.027271, 1.02669, 0.998859, -0.0169728, 0.0240162, 1.04173, 0.99894, -0.0152322, + 0.0210517, 1.05551, 0.999132, -0.0127497, 0.0178632, 1.06856, 0.999369, -0.0108282, 0.014787, + 1.08054, 0.999549, -0.00845886, 0.0116185, 1.09185, 0.999805, -0.0063937, 0.00867209, 1.10207, + 0.99985, -0.00414582, 0.00566823, 1.1117, 0.999912, -0.00207443, 0.00277562, 1.12022, 1.00001, + 8.70226e-5, -5.3766e-5, 1.12832, 0.991943, -1.78672e-6, 0.0893382, 1.98384e-5, 0.991952, + -4.50183e-5, 0.089339, 0.000499849, 0.991956, -0.000180074, 0.0893394, 0.0019994, 0.991955, + -0.000405167, 0.0893393, 0.00449867, 0.991953, -0.000720298, 0.0893391, 0.00799764, 0.991955, + -0.00112548, 0.0893393, 0.0124964, 0.991957, -0.0016207, 0.0893395, 0.0179951, 0.991958, + -0.00220601, 0.0893396, 0.0244939, 0.991947, -0.00288137, 0.0893385, 0.0319929, 0.991962, + -0.00364693, 0.0893399, 0.0404933, 0.991965, -0.00450264, 0.0893399, 0.049995, 0.99198, + -0.00544862, 0.0893411, 0.0604995, 0.99197, -0.00648491, 0.0893397, 0.0720074, 0.991976, + -0.00761164, 0.089341, 0.0845207, 0.99198, -0.00882891, 0.0893405, 0.0980413, 0.991982, + -0.0101367, 0.0893396, 0.112571, 0.992008, -0.011535, 0.0893415, 0.128115, 0.992026, -0.0130228, + 0.0893414, 0.144672, 0.992064, -0.0145966, 0.0893418, 0.162241, 0.992041, -0.0162421, 0.0893359, + 0.180801, 0.992086, -0.0178888, 0.0893214, 0.200302, 0.992157, -0.0190368, 0.0892401, 0.220332, + 0.992181, -0.0195584, 0.0890525, 0.240144, 0.992175, -0.0227257, 0.0892153, 0.260728, 0.99221, + -0.0254195, 0.089304, 0.283473, 0.99222, -0.0274883, 0.0892703, 0.307673, 0.992317, -0.0294905, + 0.0892027, 0.332729, 0.992374, -0.0311861, 0.0890577, 0.358387, 0.992505, -0.0320656, 0.0886994, + 0.384102, 0.992568, -0.0329715, 0.0883198, 0.409767, 0.992675, -0.036006, 0.0883602, 0.436145, + 0.992746, -0.0392897, 0.0884591, 0.463217, 0.992873, -0.0399337, 0.0878287, 0.491557, 0.992934, + -0.040231, 0.0870108, 0.519516, 0.993091, -0.0422013, 0.0865857, 0.547741, 0.993259, -0.0443503, + 0.0861937, 0.575792, 0.993455, -0.0446368, 0.0851187, 0.604233, 0.993497, -0.0454299, 0.0840576, + 0.632925, 0.993694, -0.0463296, 0.0829671, 0.660985, 0.993718, -0.0470619, 0.0817185, 0.688714, + 0.993973, -0.0468838, 0.0800294, 0.716743, 0.994207, -0.046705, 0.0781286, 0.74377, 0.994168, + -0.0469698, 0.0763337, 0.77042, 0.9945, -0.0456816, 0.0738184, 0.796659, 0.994356, -0.0455518, + 0.0715545, 0.821868, 0.994747, -0.0439488, 0.0686085, 0.846572, 0.994937, -0.0430056, 0.065869, + 0.870435, 0.995142, -0.0413414, 0.0626446, 0.893272, 0.995451, -0.0396521, 0.05929, 0.915376, + 0.995445, -0.0378453, 0.0558503, 0.936196, 0.995967, -0.0355219, 0.0520949, 0.956376, 0.996094, + -0.0335146, 0.048377, 0.975327, 0.996622, -0.030682, 0.0442575, 0.993471, 0.996938, -0.0285504, + 0.0404693, 1.01052, 0.997383, -0.0253399, 0.0360903, 1.02637, 0.997714, -0.0231651, 0.0322176, + 1.04139, 0.998249, -0.0198138, 0.0278433, 1.05542, 0.998596, -0.0174337, 0.0238759, 1.06846, + 0.998946, -0.0141349, 0.0195944, 1.08056, 0.99928, -0.0115603, 0.0156279, 1.09181, 0.999507, + -0.00839065, 0.0114607, 1.10213, 0.999697, -0.005666, 0.00763325, 1.11169, 0.999869, -0.00269902, + 0.00364946, 1.12042, 1.00001, 6.23836e-5, -3.19288e-5, 1.12832, 0.987221, -2.22675e-6, 0.111332, + 1.97456e-5, 0.98739, -5.61116e-5, 0.111351, 0.000497563, 0.987448, -0.000224453, 0.111357, + 0.00199031, 0.987441, -0.000505019, 0.111357, 0.0044782, 0.987442, -0.000897816, 0.111357, + 0.00796129, 0.987442, -0.00140284, 0.111357, 0.0124396, 0.987444, -0.00202012, 0.111357, + 0.0179132, 0.987442, -0.00274964, 0.111357, 0.0243824, 0.987446, -0.00359147, 0.111357, 0.0318474, + 0.987435, -0.00454562, 0.111356, 0.0403086, 0.987461, -0.00561225, 0.111358, 0.0497678, 0.987458, + -0.00679125, 0.111358, 0.0602239, 0.987443, -0.0080828, 0.111356, 0.0716792, 0.987476, -0.0094872, + 0.111358, 0.0841364, 0.98749, -0.0110044, 0.111361, 0.097597, 0.987508, -0.0126344, 0.111362, + 0.112062, 0.987494, -0.0143767, 0.111357, 0.127533, 0.987526, -0.0162307, 0.111359, 0.144015, + 0.987558, -0.0181912, 0.111361, 0.161502, 0.987602, -0.0202393, 0.111355, 0.179979, 0.987692, + -0.022273, 0.111346, 0.199386, 0.987702, -0.0235306, 0.111215, 0.219183, 0.987789, -0.0247628, + 0.111061, 0.239202, 0.987776, -0.0280668, 0.111171, 0.259957, 0.987856, -0.0316751, 0.111327, + 0.282198, 0.987912, -0.0342468, 0.111282, 0.306294, 0.988, -0.0367205, 0.111198, 0.331219, + 0.988055, -0.0387766, 0.110994, 0.356708, 0.988241, -0.0397722, 0.110547, 0.382234, 0.988399, + -0.0416076, 0.110198, 0.408227, 0.988539, -0.0448192, 0.110137, 0.434662, 0.988661, -0.0483793, + 0.110143, 0.461442, 0.988967, -0.0495895, 0.109453, 0.489318, 0.989073, -0.0506797, 0.108628, + 0.517516, 0.989274, -0.0526953, 0.108003, 0.545844, 0.989528, -0.054578, 0.107255, 0.573823, + 0.989709, -0.0561503, 0.106294, 0.601944, 0.989991, -0.056866, 0.104896, 0.630855, 0.990392, + -0.0572914, 0.103336, 0.658925, 0.990374, -0.0586224, 0.10189, 0.686661, 0.990747, -0.0584764, + 0.099783, 0.714548, 0.991041, -0.0582662, 0.0974309, 0.74186, 0.991236, -0.0584118, 0.0951678, + 0.768422, 0.991585, -0.0573055, 0.0921581, 0.794817, 0.991984, -0.0564241, 0.0891167, 0.820336, + 0.9921, -0.0553608, 0.085805, 0.84493, 0.992749, -0.0533816, 0.0820354, 0.868961, 0.99288, + -0.0518661, 0.0782181, 0.891931, 0.993511, -0.0492492, 0.0738935, 0.914186, 0.993617, -0.0471956, + 0.0696402, 0.93532, 0.99411, -0.044216, 0.0649659, 0.95543, 0.994595, -0.0416654, 0.0603177, + 0.974685, 0.994976, -0.0384314, 0.0553493, 0.992807, 0.995579, -0.0353491, 0.0503942, 1.00996, + 0.996069, -0.0319787, 0.0452123, 1.02606, 0.996718, -0.028472, 0.0400112, 1.04114, 0.997173, + -0.0250789, 0.0349456, 1.05517, 0.997818, -0.0213326, 0.029653, 1.0683, 0.998318, -0.0178509, + 0.024549, 1.0805, 0.998853, -0.0141118, 0.0194197, 1.09177, 0.999218, -0.0105914, 0.0143869, + 1.1022, 0.999594, -0.00693474, 0.00943517, 1.11175, 0.99975, -0.00340478, 0.00464051, 1.12056, + 1.00001, 0.000109172, -0.000112821, 1.12853, 0.983383, -2.66524e-6, 0.133358, 1.96534e-5, + 0.981942, -6.71009e-5, 0.133162, 0.000494804, 0.981946, -0.000268405, 0.133163, 0.00197923, + 0.981944, -0.000603912, 0.133163, 0.00445326, 0.981941, -0.00107362, 0.133162, 0.00791693, + 0.981946, -0.00167755, 0.133163, 0.0123703, 0.981944, -0.00241569, 0.133162, 0.0178135, 0.981945, + -0.00328807, 0.133163, 0.0242466, 0.981945, -0.00429472, 0.133162, 0.03167, 0.981955, -0.00543573, + 0.133164, 0.0400846, 0.981951, -0.00671105, 0.133163, 0.0494901, 0.981968, -0.00812092, 0.133165, + 0.0598886, 0.981979, -0.00966541, 0.133166, 0.0712811, 0.981996, -0.0113446, 0.133168, 0.083669, + 0.982014, -0.0131585, 0.133169, 0.0970533, 0.982011, -0.0151073, 0.133167, 0.111438, 0.982062, + -0.0171906, 0.133172, 0.126826, 0.9821, -0.0194067, 0.133175, 0.143215, 0.982149, -0.0217502, + 0.133176, 0.160609, 0.982163, -0.0241945, 0.133173, 0.178981, 0.982247, -0.0265907, 0.133148, + 0.198249, 0.982291, -0.027916, 0.132974, 0.217795, 0.982396, -0.0299663, 0.132868, 0.238042, + 0.982456, -0.0334544, 0.132934, 0.258901, 0.982499, -0.0378636, 0.133137, 0.280639, 0.982617, + -0.0409274, 0.133085, 0.304604, 0.98274, -0.0438523, 0.132985, 0.329376, 0.982944, -0.0462288, + 0.132728, 0.354697, 0.98308, -0.0475995, 0.132228, 0.380102, 0.983391, -0.0501901, 0.131924, + 0.406256, 0.983514, -0.0535899, 0.131737, 0.432735, 0.98373, -0.0571858, 0.131567, 0.459359, + 0.984056, -0.0592353, 0.130932, 0.486637, 0.984234, -0.0610488, 0.130092, 0.51509, 0.984748, + -0.0630758, 0.12923, 0.543461, 0.985073, -0.0647398, 0.128174, 0.571376, 0.985195, -0.0671941, + 0.127133, 0.599414, 0.985734, -0.0681345, 0.125576, 0.628134, 0.986241, -0.0686089, 0.123639, + 0.656399, 0.986356, -0.0698511, 0.121834, 0.684258, 0.986894, -0.0700931, 0.119454, 0.711818, + 0.987382, -0.0698321, 0.116718, 0.739511, 0.988109, -0.0693975, 0.113699, 0.766267, 0.988363, + -0.0689584, 0.110454, 0.792456, 0.989112, -0.0672353, 0.106602, 0.81813, 0.989241, -0.0662034, + 0.10267, 0.842889, 0.990333, -0.0638938, 0.0981381, 0.867204, 0.990591, -0.0618534, 0.0935388, + 0.89038, 0.991106, -0.0593117, 0.088553, 0.912576, 0.991919, -0.0562676, 0.0832187, 0.934118, + 0.992111, -0.0534085, 0.0778302, 0.954254, 0.992997, -0.0495459, 0.0720453, 0.973722, 0.993317, + -0.0463707, 0.0663458, 0.991949, 0.994133, -0.0421245, 0.0601883, 1.00936, 0.994705, -0.0384977, + 0.0542501, 1.02559, 0.995495, -0.0340956, 0.0479862, 1.04083, 0.996206, -0.030105, 0.041887, + 1.05497, 0.996971, -0.0256095, 0.0355355, 1.06824, 0.997796, -0.0213932, 0.0293655, 1.08056, + 0.998272, -0.0169612, 0.0232926, 1.09182, 0.998857, -0.0126756, 0.0172786, 1.10219, 0.99939, + -0.00832486, 0.0113156, 1.11192, 0.999752, -0.00410826, 0.00557892, 1.12075, 1, 0.000150957, + -0.000119101, 1.12885, 0.975169, -3.09397e-6, 0.154669, 1.95073e-5, 0.975439, -7.79608e-5, + 0.154712, 0.000491534, 0.975464, -0.000311847, 0.154716, 0.00196617, 0.975464, -0.000701656, + 0.154716, 0.00442387, 0.975462, -0.0012474, 0.154715, 0.0078647, 0.975461, -0.00194906, 0.154715, + 0.0122886, 0.975464, -0.00280667, 0.154715, 0.0176959, 0.975468, -0.00382025, 0.154716, 0.0240867, + 0.975471, -0.00498985, 0.154716, 0.0314612, 0.975472, -0.00631541, 0.154717, 0.0398199, 0.975486, + -0.00779719, 0.154718, 0.0491639, 0.975489, -0.00943505, 0.154718, 0.0594932, 0.975509, + -0.0112295, 0.154721, 0.0708113, 0.97554, -0.0131802, 0.154724, 0.0831176, 0.975557, -0.0152876, + 0.154726, 0.096415, 0.975585, -0.0175512, 0.154728, 0.110705, 0.975605, -0.0199713, 0.154729, + 0.125992, 0.975645, -0.0225447, 0.154729, 0.142272, 0.975711, -0.0252649, 0.154735, 0.159549, + 0.975788, -0.0280986, 0.154736, 0.177805, 0.975872, -0.0308232, 0.154704, 0.196911, 0.975968, + -0.0324841, 0.154525, 0.216324, 0.976063, -0.0351281, 0.154432, 0.236628, 0.976157, -0.0388618, + 0.15446, 0.257539, 0.976204, -0.0437704, 0.154665, 0.278975, 0.976358, -0.047514, 0.154652, + 0.302606, 0.976571, -0.0508638, 0.154535, 0.327204, 0.976725, -0.0534995, 0.154221, 0.352276, + 0.977013, -0.0555547, 0.153737, 0.377696, 0.977294, -0.0586728, 0.153403, 0.403855, 0.977602, + -0.0622715, 0.15312, 0.430333, 0.977932, -0.0658166, 0.152755, 0.456855, 0.978241, -0.0689877, + 0.152233, 0.483668, 0.978602, -0.0712805, 0.15132, 0.512097, 0.979234, -0.0732775, 0.150235, + 0.540455, 0.97977, -0.075163, 0.148978, 0.568486, 0.979995, -0.0778026, 0.147755, 0.596524, + 0.98078, -0.0791854, 0.146019, 0.624825, 0.981628, -0.0799666, 0.143906, 0.653403, 0.982067, + -0.0808532, 0.141561, 0.681445, 0.98271, -0.0816024, 0.139025, 0.708918, 0.983734, -0.0812511, + 0.135764, 0.736594, 0.98431, -0.0806201, 0.132152, 0.763576, 0.985071, -0.0801605, 0.12846, + 0.789797, 0.98618, -0.0784208, 0.124084, 0.815804, 0.986886, -0.0766643, 0.1193, 0.840869, + 0.987485, -0.0747744, 0.114236, 0.864952, 0.988431, -0.0716701, 0.108654, 0.888431, 0.988886, + -0.0691609, 0.102994, 0.910963, 0.990024, -0.0654048, 0.0967278, 0.932629, 0.990401, -0.0619765, + 0.090384, 0.95313, 0.991093, -0.0579296, 0.0837885, 0.972587, 0.992018, -0.0536576, 0.0770171, + 0.991184, 0.992536, -0.0493719, 0.0701486, 1.00863, 0.993421, -0.0444813, 0.062953, 1.02494, + 0.993928, -0.040008, 0.0560455, 1.04017, 0.994994, -0.0347982, 0.04856, 1.05463, 0.995866, + -0.0301017, 0.0416152, 1.06807, 0.996916, -0.0248225, 0.0342597, 1.08039, 0.997766, -0.0199229, + 0.0271668, 1.09177, 0.998479, -0.0147422, 0.0201387, 1.10235, 0.99921, -0.00980173, 0.0131944, + 1.11206, 0.999652, -0.0047426, 0.00640712, 1.12104, 0.999998, 8.91673e-5, -0.00010379, 1.12906, + 0.967868, -3.51885e-6, 0.175947, 1.93569e-5, 0.968001, -8.86733e-5, 0.175972, 0.000487782, + 0.96801, -0.000354697, 0.175973, 0.00195115, 0.968012, -0.000798063, 0.175974, 0.00439006, + 0.968011, -0.00141879, 0.175973, 0.00780461, 0.968011, -0.00221686, 0.175973, 0.0121948, 0.968016, + -0.00319231, 0.175974, 0.0175607, 0.968019, -0.00434515, 0.175974, 0.0239027, 0.968018, + -0.00567538, 0.175974, 0.0312208, 0.968033, -0.00718308, 0.175977, 0.0395158, 0.968049, + -0.00886836, 0.175979, 0.0487885, 0.968047, -0.0107312, 0.175978, 0.0590394, 0.968072, -0.0127719, + 0.175981, 0.0702705, 0.968108, -0.0149905, 0.175986, 0.0824836, 0.968112, -0.0173866, 0.175985, + 0.0956783, 0.968173, -0.0199611, 0.175993, 0.109862, 0.96827, -0.0227128, 0.176008, 0.125033, + 0.968292, -0.025639, 0.17601, 0.141193, 0.968339, -0.0287299, 0.176007, 0.158336, 0.968389, + -0.0319399, 0.176001, 0.176441, 0.968501, -0.034941, 0.175962, 0.195359, 0.968646, -0.0370812, + 0.175793, 0.214686, 0.968789, -0.0402329, 0.175708, 0.234973, 0.96886, -0.0442601, 0.1757, + 0.255871, 0.969013, -0.049398, 0.175876, 0.277238, 0.969242, -0.0539932, 0.17594, 0.300326, + 0.969419, -0.0577299, 0.175781, 0.324702, 0.969763, -0.0605643, 0.175432, 0.349527, 0.970093, + -0.0634488, 0.174992, 0.374976, 0.970361, -0.0670589, 0.174611, 0.401097, 0.970825, -0.0708246, + 0.174226, 0.427496, 0.971214, -0.0742871, 0.173684, 0.453858, 0.971622, -0.0782608, 0.173186, + 0.480637, 0.972175, -0.0813151, 0.172288, 0.508655, 0.972944, -0.0832678, 0.170979, 0.536973, + 0.973595, -0.0855964, 0.169573, 0.565138, 0.974345, -0.0882163, 0.168152, 0.593222, 0.975233, + -0.0901671, 0.166314, 0.621201, 0.976239, -0.0912111, 0.163931, 0.649919, 0.977289, -0.0916959, + 0.161106, 0.678011, 0.978076, -0.0927061, 0.158272, 0.705717, 0.979533, -0.0925562, 0.15475, + 0.733228, 0.980335, -0.0918159, 0.150638, 0.760454, 0.981808, -0.0908508, 0.146201, 0.786918, + 0.983061, -0.0896172, 0.141386, 0.812953, 0.984148, -0.0871588, 0.135837, 0.838281, 0.985047, + -0.0850624, 0.130135, 0.862594, 0.986219, -0.0818541, 0.123882, 0.88633, 0.987043, -0.0784523, + 0.117126, 0.908952, 0.988107, -0.0749601, 0.110341, 0.930744, 0.988955, -0.0703548, 0.102885, + 0.951728, 0.989426, -0.0662798, 0.0954167, 0.971166, 0.990421, -0.0610834, 0.0876331, 0.989984, + 0.991032, -0.0562936, 0.0797785, 1.00765, 0.992041, -0.0508154, 0.0718166, 1.02434, 0.992794, + -0.0454045, 0.0637125, 1.03976, 0.993691, -0.0398194, 0.0555338, 1.05418, 0.994778, -0.0341482, + 0.0473388, 1.06772, 0.995915, -0.028428, 0.0391016, 1.08028, 0.997109, -0.022642, 0.0309953, + 1.09185, 0.998095, -0.0168738, 0.0230288, 1.10247, 0.998985, -0.0111274, 0.0150722, 1.11229, + 0.999581, -0.00543881, 0.00740605, 1.12131, 1.00003, 0.000162239, -0.000105549, 1.12946, 0.959505, + -3.93734e-6, 0.196876, 1.91893e-5, 0.959599, -9.92157e-5, 0.196895, 0.000483544, 0.959641, + -0.000396868, 0.196903, 0.0019342, 0.959599, -0.000892948, 0.196895, 0.00435193, 0.959603, + -0.00158747, 0.196896, 0.0077368, 0.959604, -0.00248042, 0.196896, 0.0120888, 0.959605, + -0.00357184, 0.196896, 0.0174082, 0.959605, -0.00486169, 0.196896, 0.0236949, 0.959613, + -0.00635008, 0.196897, 0.0309497, 0.959619, -0.00803696, 0.196898, 0.0391725, 0.959636, + -0.00992255, 0.196901, 0.0483649, 0.959634, -0.0120067, 0.1969, 0.0585266, 0.959675, -0.0142898, + 0.196906, 0.0696609, 0.959712, -0.0167717, 0.196911, 0.0817678, 0.959752, -0.0194524, 0.196918, + 0.0948494, 0.959807, -0.0223321, 0.196925, 0.10891, 0.959828, -0.0254091, 0.196924, 0.123947, + 0.959906, -0.0286815, 0.196934, 0.139968, 0.960005, -0.0321371, 0.196944, 0.156968, 0.960071, + -0.0357114, 0.196936, 0.17491, 0.960237, -0.0389064, 0.196882, 0.193597, 0.960367, -0.041623, + 0.196731, 0.21285, 0.960562, -0.0452655, 0.196654, 0.233075, 0.960735, -0.0496207, 0.196643, + 0.253941, 0.960913, -0.0549379, 0.196774, 0.275278, 0.961121, -0.0603414, 0.196893, 0.297733, + 0.96139, -0.0644244, 0.196717, 0.321877, 0.961818, -0.067556, 0.196314, 0.346476, 0.962175, + -0.0712709, 0.195917, 0.371907, 0.96255, -0.0752848, 0.1955, 0.397916, 0.963164, -0.0792073, + 0.195026, 0.424229, 0.963782, -0.0828225, 0.194424, 0.450637, 0.964306, -0.0873119, 0.193831, + 0.477288, 0.964923, -0.0911051, 0.192973, 0.504716, 0.966048, -0.093251, 0.19151, 0.533053, + 0.967024, -0.0958983, 0.190013, 0.561366, 0.968038, -0.09835, 0.188253, 0.589464, 0.969152, + -0.100754, 0.186257, 0.617433, 0.970557, -0.102239, 0.183775, 0.645801, 0.972104, -0.102767, + 0.180645, 0.674278, 0.973203, -0.103492, 0.177242, 0.702004, 0.975123, -0.103793, 0.17345, + 0.729529, 0.97641, -0.102839, 0.168886, 0.756712, 0.978313, -0.101687, 0.163892, 0.783801, + 0.980036, -0.100314, 0.158439, 0.809671, 0.981339, -0.097836, 0.152211, 0.835402, 0.982794, + -0.0950006, 0.145679, 0.860081, 0.984123, -0.0920994, 0.138949, 0.883757, 0.984918, -0.0878641, + 0.131283, 0.90685, 0.985999, -0.083939, 0.123464, 0.928786, 0.987151, -0.0791234, 0.115324, + 0.94983, 0.987827, -0.0739332, 0.106854, 0.96962, 0.988806, -0.0688088, 0.0982691, 0.98861, + 0.989588, -0.0628962, 0.0893456, 1.00667, 0.990438, -0.0573146, 0.0805392, 1.02344, 0.991506, + -0.0509433, 0.0713725, 1.03933, 0.992492, -0.0448724, 0.0623732, 1.05378, 0.993663, -0.0383497, + 0.0530838, 1.06747, 0.994956, -0.0319593, 0.0439512, 1.08007, 0.99634, -0.025401, 0.0347803, + 1.09182, 0.99761, -0.0189687, 0.0257954, 1.1025, 0.99863, -0.0124441, 0.0169893, 1.11247, 0.99947, + -0.00614003, 0.00829498, 1.12151, 1.00008, 0.000216624, -0.000146107, 1.12993, 0.950129, + -4.34955e-6, 0.217413, 1.90081e-5, 0.950264, -0.00010957, 0.217444, 0.00047884, 0.9503, + -0.000438299, 0.217451, 0.00191543, 0.950246, -0.000986124, 0.21744, 0.00430951, 0.950246, + -0.00175311, 0.21744, 0.00766137, 0.950245, -0.00273923, 0.21744, 0.011971, 0.950253, -0.00394453, + 0.217441, 0.0172385, 0.950258, -0.00536897, 0.217442, 0.0234641, 0.950267, -0.00701262, 0.217444, + 0.030648, 0.950277, -0.00887551, 0.217446, 0.038791, 0.950284, -0.0109576, 0.217446, 0.0478931, + 0.950312, -0.0132591, 0.217451, 0.0579568, 0.950334, -0.01578, 0.217454, 0.0689821, 0.950378, + -0.0185204, 0.217462, 0.0809714, 0.950417, -0.0214803, 0.217467, 0.0939265, 0.950488, -0.0246594, + 0.217479, 0.10785, 0.950534, -0.0280565, 0.217483, 0.122743, 0.950633, -0.0316685, 0.217498, + 0.138611, 0.950698, -0.0354787, 0.217499, 0.155442, 0.950844, -0.0394003, 0.217507, 0.173208, + 0.950999, -0.0426812, 0.217419, 0.191605, 0.951221, -0.0461302, 0.217317, 0.21084, 0.951412, + -0.0502131, 0.217238, 0.230945, 0.951623, -0.0549183, 0.21722, 0.251745, 0.951867, -0.0604493, + 0.217306, 0.273001, 0.952069, -0.0665189, 0.217466, 0.294874, 0.952459, -0.0709179, 0.217266, + 0.318732, 0.952996, -0.0746112, 0.216891, 0.34318, 0.953425, -0.0789252, 0.216503, 0.36849, + 0.953885, -0.0833293, 0.216042, 0.394373, 0.954617, -0.087371, 0.215469, 0.420505, 0.955429, + -0.0914054, 0.214802, 0.446907, 0.956068, -0.0961671, 0.214146, 0.473522, 0.957094, -0.10048, + 0.213286, 0.50052, 0.958372, -0.103248, 0.211796, 0.528715, 0.959654, -0.106033, 0.21016, + 0.557065, 0.961305, -0.108384, 0.208149, 0.585286, 0.962785, -0.111122, 0.206024, 0.613334, + 0.964848, -0.112981, 0.203442, 0.641334, 0.966498, -0.113717, 0.19996, 0.669955, 0.968678, + -0.114121, 0.196105, 0.698094, 0.970489, -0.114524, 0.191906, 0.725643, 0.972903, -0.113792, + 0.186963, 0.752856, 0.974701, -0.112406, 0.181343, 0.780013, 0.976718, -0.110685, 0.175185, + 0.806268, 0.978905, -0.108468, 0.168535, 0.832073, 0.980267, -0.105061, 0.161106, 0.857149, + 0.981967, -0.101675, 0.153387, 0.881145, 0.983063, -0.0974492, 0.145199, 0.904255, 0.984432, + -0.0925815, 0.136527, 0.926686, 0.985734, -0.0877983, 0.127584, 0.947901, 0.986228, -0.081884, + 0.118125, 0.968111, 0.98719, -0.0761208, 0.108594, 0.98719, 0.988228, -0.0698196, 0.0989996, + 1.00559, 0.989046, -0.0632739, 0.0890074, 1.02246, 0.990242, -0.056522, 0.0790832, 1.03841, + 0.991252, -0.0495272, 0.0689182, 1.05347, 0.992542, -0.0425373, 0.0588592, 1.06724, 0.994096, + -0.0353198, 0.0486833, 1.08009, 0.995593, -0.028235, 0.0385977, 1.09177, 0.99711, -0.0209511, + 0.0286457, 1.10274, 0.998263, -0.0139289, 0.0188497, 1.11262, 0.999254, -0.0067359, 0.009208, + 1.12191, 0.999967, 0.000141846, -6.57764e-5, 1.13024, 0.935608, -4.74692e-6, 0.236466, 1.87817e-5, + 0.93996, -0.00011971, 0.237568, 0.000473646, 0.939959, -0.000478845, 0.237567, 0.0018946, + 0.939954, -0.0010774, 0.237566, 0.00426284, 0.939956, -0.00191538, 0.237566, 0.00757842, 0.939954, + -0.00299277, 0.237566, 0.0118413, 0.93996, -0.00430961, 0.237567, 0.0170518, 0.939969, + -0.00586589, 0.237569, 0.02321, 0.939982, -0.00766166, 0.237572, 0.0303164, 0.939987, -0.00969686, + 0.237572, 0.0383711, 0.939997, -0.0119715, 0.237574, 0.0473751, 0.940031, -0.0144858, 0.237581, + 0.0573298, 0.940073, -0.0172399, 0.237589, 0.0682366, 0.94012, -0.0202335, 0.237598, 0.080097, + 0.940162, -0.0234663, 0.237604, 0.0929116, 0.940237, -0.0269387, 0.237615, 0.106686, 0.940328, + -0.0306489, 0.237632, 0.121421, 0.940419, -0.0345917, 0.237645, 0.137115, 0.940522, -0.0387481, + 0.237654, 0.153766, 0.940702, -0.0429906, 0.237661, 0.17133, 0.940871, -0.0465089, 0.237561, + 0.189502, 0.941103, -0.050531, 0.23748, 0.208616, 0.941369, -0.0550657, 0.237423, 0.228595, + 0.941641, -0.0601337, 0.237399, 0.249287, 0.941903, -0.0658804, 0.237443, 0.270467, 0.942224, + -0.0722674, 0.237597, 0.292024, 0.942633, -0.0771788, 0.237419, 0.315272, 0.943172, -0.0815623, + 0.237068, 0.339579, 0.943691, -0.0863973, 0.236682, 0.364717, 0.944382, -0.0911536, 0.236213, + 0.390435, 0.945392, -0.0952967, 0.235562, 0.416425, 0.946185, -0.0998948, 0.234832, 0.442772, + 0.947212, -0.104796, 0.234114, 0.469347, 0.948778, -0.10928, 0.233222, 0.496162, 0.950149, + -0.113081, 0.231845, 0.523978, 0.951989, -0.115893, 0.230005, 0.552295, 0.953921, -0.11846, + 0.227862, 0.580569, 0.955624, -0.12115, 0.225439, 0.608698, 0.958234, -0.123373, 0.222635, + 0.636696, 0.960593, -0.124519, 0.219093, 0.665208, 0.963201, -0.124736, 0.214749, 0.693557, + 0.965642, -0.125012, 0.210059, 0.721334, 0.968765, -0.124661, 0.204935, 0.748613, 0.971753, + -0.122996, 0.198661, 0.776224, 0.973751, -0.120998, 0.191823, 0.802461, 0.976709, -0.118583, + 0.184359, 0.828399, 0.977956, -0.115102, 0.176437, 0.853693, 0.979672, -0.111077, 0.167681, + 0.877962, 0.981816, -0.10688, 0.158872, 0.901564, 0.98238, -0.101469, 0.149398, 0.924057, + 0.983964, -0.0960013, 0.139436, 0.945751, 0.984933, -0.0899626, 0.12943, 0.966272, 0.985694, + -0.0832973, 0.11894, 0.985741, 0.986822, -0.0767082, 0.108349, 1.00407, 0.987725, -0.0693614, + 0.0976026, 1.02154, 0.98877, -0.06211, 0.086652, 1.03757, 0.990129, -0.0544143, 0.0756182, + 1.05296, 0.991337, -0.046744, 0.0645753, 1.06683, 0.992978, -0.0387931, 0.0534683, 1.0798, + 0.994676, -0.030973, 0.0424137, 1.09181, 0.99645, -0.0230311, 0.0314035, 1.10286, 0.997967, + -0.0152065, 0.0206869, 1.11291, 0.99922, -0.00744837, 0.010155, 1.12237, 1.00002, 0.000240209, + -7.52767e-5, 1.13089, 0.922948, -5.15351e-6, 0.255626, 1.86069e-5, 0.928785, -0.000129623, + 0.257244, 0.000468009, 0.928761, -0.00051849, 0.257237, 0.00187202, 0.928751, -0.0011666, + 0.257235, 0.00421204, 0.928751, -0.00207395, 0.257234, 0.0074881, 0.928754, -0.00324055, 0.257235, + 0.0117002, 0.92876, -0.00466639, 0.257236, 0.0168486, 0.928763, -0.00635149, 0.257237, 0.0229334, + 0.928774, -0.00829584, 0.257239, 0.029955, 0.928791, -0.0104995, 0.257243, 0.0379139, 0.928804, + -0.0129623, 0.257245, 0.0468108, 0.928847, -0.0156846, 0.257255, 0.0566473, 0.92889, -0.0186661, + 0.257263, 0.0674246, 0.928924, -0.0219067, 0.257268, 0.0791433, 0.928989, -0.0254066, 0.257282, + 0.0918076, 0.92909, -0.0291651, 0.257301, 0.105419, 0.92918, -0.0331801, 0.257316, 0.119978, + 0.92929, -0.0374469, 0.257332, 0.135491, 0.929453, -0.041939, 0.257357, 0.151948, 0.929586, + -0.0464612, 0.257347, 0.169275, 0.929858, -0.0503426, 0.257269, 0.187257, 0.930125, -0.0548409, + 0.257199, 0.206204, 0.930403, -0.0598063, 0.257149, 0.22601, 0.930726, -0.0652437, 0.257122, + 0.246561, 0.931098, -0.0712376, 0.257153, 0.267618, 0.931396, -0.0777506, 0.257237, 0.288993, + 0.931947, -0.0832374, 0.257124, 0.311527, 0.932579, -0.0883955, 0.25683, 0.335697, 0.933194, + -0.0937037, 0.256444, 0.360634, 0.934013, -0.0987292, 0.255939, 0.386126, 0.935307, -0.103215, + 0.255282, 0.412018, 0.936374, -0.108234, 0.254538, 0.438292, 0.93776, -0.113234, 0.253728, + 0.464805, 0.939599, -0.118013, 0.25275, 0.491464, 0.941036, -0.122661, 0.251404, 0.518751, + 0.94337, -0.125477, 0.249435, 0.547133, 0.945318, -0.128374, 0.247113, 0.575456, 0.947995, + -0.130996, 0.244441, 0.60372, 0.950818, -0.133438, 0.241352, 0.63174, 0.954378, -0.135004, + 0.237849, 0.659971, 0.957151, -0.135313, 0.233188, 0.688478, 0.960743, -0.13521, 0.228001, + 0.716767, 0.964352, -0.135007, 0.222249, 0.744349, 0.967273, -0.133523, 0.21542, 0.771786, + 0.969767, -0.131155, 0.208039, 0.798639, 0.973195, -0.128492, 0.200076, 0.824774, 0.975557, + -0.125094, 0.191451, 0.850222, 0.977692, -0.120578, 0.18184, 0.874761, 0.98026, -0.115882, + 0.172102, 0.898497, 0.981394, -0.110372, 0.161859, 0.921636, 0.982386, -0.10415, 0.15108, + 0.943467, 0.983783, -0.0978128, 0.140407, 0.964045, 0.98422, -0.0906171, 0.129058, 0.98398, + 0.985447, -0.0832921, 0.117614, 1.00276, 0.986682, -0.0754412, 0.10585, 1.02047, 0.987326, + -0.0673885, 0.0940943, 1.03678, 0.988707, -0.0592565, 0.0822093, 1.05218, 0.990185, -0.050717, + 0.070192, 1.06652, 0.991866, -0.0423486, 0.0582081, 1.07965, 0.993897, -0.0336118, 0.0460985, + 1.09188, 0.995841, -0.0252178, 0.0342737, 1.10307, 0.997605, -0.0164893, 0.0224829, 1.11324, + 0.999037, -0.00817112, 0.0110647, 1.12262, 1.00003, 0.000291686, -0.000168673, 1.13139, 0.915304, + -5.52675e-6, 0.275999, 1.83285e-5, 0.91668, -0.000139285, 0.276414, 0.000461914, 0.916664, + -0.00055713, 0.276409, 0.00184763, 0.916653, -0.00125354, 0.276406, 0.00415715, 0.916651, + -0.00222851, 0.276405, 0.00739053, 0.916655, -0.00348205, 0.276406, 0.0115478, 0.916653, + -0.00501414, 0.276405, 0.0166291, 0.916667, -0.00682478, 0.276409, 0.0226346, 0.91668, + -0.00891398, 0.276412, 0.0295648, 0.91669, -0.0112817, 0.276413, 0.0374199, 0.916727, -0.013928, + 0.276422, 0.0462016, 0.916759, -0.0168528, 0.276429, 0.0559101, 0.916793, -0.0200558, 0.276436, + 0.0665466, 0.916849, -0.0235373, 0.276448, 0.0781139, 0.916964, -0.0272973, 0.276474, 0.0906156, + 0.917047, -0.0313344, 0.276491, 0.104051, 0.917152, -0.0356465, 0.276511, 0.118424, 0.917286, + -0.0402271, 0.276533, 0.133736, 0.917469, -0.0450408, 0.276564, 0.149978, 0.917686, -0.0497872, + 0.276563, 0.167057, 0.917953, -0.0540937, 0.276493, 0.184846, 0.918228, -0.0590709, 0.276437, + 0.203614, 0.918572, -0.0644277, 0.276398, 0.223212, 0.918918, -0.0702326, 0.276362, 0.243584, + 0.919356, -0.076484, 0.276383, 0.264465, 0.919842, -0.0830808, 0.276434, 0.285701, 0.920451, + -0.0892972, 0.276407, 0.307559, 0.921113, -0.095016, 0.276128, 0.331501, 0.921881, -0.100771, + 0.275754, 0.356207, 0.923027, -0.106029, 0.275254, 0.381477, 0.924364, -0.111029, 0.274595, + 0.40722, 0.925818, -0.116345, 0.273841, 0.433385, 0.92746, -0.121424, 0.272913, 0.459848, + 0.929167, -0.12657, 0.271837, 0.486493, 0.931426, -0.131581, 0.270575, 0.513432, 0.934001, + -0.135038, 0.268512, 0.541502, 0.936296, -0.138039, 0.266135, 0.569658, 0.939985, -0.140687, + 0.263271, 0.598375, 0.943516, -0.143247, 0.260058, 0.626563, 0.94782, -0.145135, 0.256138, + 0.654711, 0.951023, -0.145733, 0.251154, 0.683285, 0.955338, -0.145554, 0.245562, 0.711831, + 0.959629, -0.145008, 0.239265, 0.739573, 0.963123, -0.144003, 0.232064, 0.767027, 0.966742, + -0.141289, 0.224036, 0.794359, 0.969991, -0.138247, 0.215305, 0.820361, 0.973403, -0.134786, + 0.206051, 0.846548, 0.975317, -0.129966, 0.195914, 0.871541, 0.977647, -0.12471, 0.185184, + 0.895313, 0.980137, -0.119086, 0.174161, 0.918398, 0.981031, -0.112297, 0.162792, 0.940679, + 0.982037, -0.105372, 0.150952, 0.961991, 0.983164, -0.097821, 0.138921, 0.981913, 0.983757, + -0.0897245, 0.126611, 1.00109, 0.985036, -0.0815974, 0.114228, 1.01902, 0.986289, -0.0727725, + 0.101389, 1.03604, 0.987329, -0.0639323, 0.0886476, 1.05149, 0.989193, -0.0548109, 0.0756837, + 1.06619, 0.990716, -0.045687, 0.0627581, 1.07948, 0.992769, -0.0364315, 0.0498337, 1.09172, + 0.99524, -0.0271761, 0.0370305, 1.1033, 0.997154, -0.0179609, 0.0243959, 1.11353, 0.998845, + -0.00878063, 0.0119567, 1.12319, 1.00002, 0.000259038, -0.000108146, 1.13177, 0.903945, + -5.91681e-6, 0.295126, 1.81226e-5, 0.903668, -0.000148672, 0.295037, 0.000455367, 0.903677, + -0.000594683, 0.29504, 0.00182145, 0.903673, -0.00133805, 0.295039, 0.00409831, 0.903666, + -0.00237872, 0.295036, 0.00728584, 0.903668, -0.00371676, 0.295037, 0.0113842, 0.903679, + -0.00535212, 0.29504, 0.0163936, 0.903684, -0.00728479, 0.295041, 0.0223141, 0.903698, + -0.00951473, 0.295044, 0.0291462, 0.903718, -0.0120419, 0.295049, 0.0368904, 0.903754, -0.0148664, + 0.295058, 0.0455477, 0.903801, -0.017988, 0.29507, 0.0551194, 0.903851, -0.0214064, 0.295082, + 0.0656058, 0.903921, -0.0251219, 0.295097, 0.0770109, 0.904002, -0.0291337, 0.295116, 0.0893354, + 0.904111, -0.033441, 0.29514, 0.102583, 0.904246, -0.0380415, 0.295169, 0.116755, 0.904408, + -0.0429258, 0.295202, 0.131853, 0.904637, -0.0480468, 0.295245, 0.147869, 0.904821, -0.0529208, + 0.295214, 0.164658, 0.905163, -0.0577748, 0.295185, 0.182274, 0.905469, -0.0631763, 0.295143, + 0.200828, 0.905851, -0.068917, 0.295112, 0.2202, 0.906322, -0.0750861, 0.295104, 0.240372, + 0.906761, -0.0815855, 0.295086, 0.261082, 0.90735, -0.0882138, 0.295095, 0.282123, 0.908087, + -0.095082, 0.295139, 0.303563, 0.908826, -0.101488, 0.29492, 0.327028, 0.909832, -0.107577, + 0.294577, 0.351464, 0.911393, -0.113033, 0.294115, 0.376497, 0.912804, -0.118629, 0.293446, + 0.402115, 0.914081, -0.124232, 0.292581, 0.428111, 0.91637, -0.129399, 0.29166, 0.454442, 0.91814, + -0.134892, 0.290422, 0.481024, 0.921179, -0.140069, 0.289194, 0.507924, 0.924544, -0.144431, + 0.287421, 0.535557, 0.927995, -0.147498, 0.284867, 0.563984, 0.931556, -0.150197, 0.281722, + 0.5923, 0.935777, -0.152711, 0.278207, 0.620832, 0.940869, -0.154836, 0.274148, 0.649069, + 0.945994, -0.155912, 0.269057, 0.677746, 0.949634, -0.155641, 0.262799, 0.706293, 0.955032, + -0.154809, 0.256097, 0.734278, 0.95917, -0.153678, 0.248618, 0.761751, 0.962931, -0.151253, + 0.239794, 0.789032, 0.966045, -0.147625, 0.230281, 0.815422, 0.96971, -0.143964, 0.220382, + 0.841787, 0.972747, -0.139464, 0.209846, 0.867446, 0.975545, -0.133459, 0.198189, 0.892004, + 0.978381, -0.127424, 0.186362, 0.915458, 0.979935, -0.120506, 0.173964, 0.937948, 0.980948, + -0.11282, 0.161429, 0.959732, 0.982234, -0.104941, 0.148557, 0.980118, 0.982767, -0.0962905, + 0.135508, 0.999463, 0.983544, -0.0873625, 0.122338, 1.01756, 0.984965, -0.0783447, 0.108669, + 1.03492, 0.986233, -0.0684798, 0.0949911, 1.05087, 0.987796, -0.0590867, 0.0811386, 1.0656, + 0.989885, -0.0489145, 0.0673099, 1.0794, 0.991821, -0.0391, 0.0535665, 1.09174, 0.99448, + -0.029087, 0.0397529, 1.10341, 0.996769, -0.019114, 0.0261463, 1.11383, 0.998641, -0.00947007, + 0.0128731, 1.1237, 0.999978, 0.000446316, -0.000169093, 1.13253, 0.888362, -6.27064e-6, 0.312578, + 1.78215e-5, 0.889988, -0.000157791, 0.313148, 0.000448451, 0.889825, -0.000631076, 0.313092, + 0.00179356, 0.88984, -0.00141994, 0.313097, 0.00403554, 0.889828, -0.0025243, 0.313092, + 0.00717429, 0.889831, -0.00394421, 0.313093, 0.0112099, 0.889831, -0.00567962, 0.313093, + 0.0161425, 0.889844, -0.00773051, 0.313096, 0.0219724, 0.889858, -0.0100968, 0.3131, 0.0286999, + 0.889882, -0.0127786, 0.313106, 0.0363256, 0.889918, -0.0157757, 0.313116, 0.0448509, 0.889967, + -0.0190878, 0.313129, 0.0542758, 0.89003, -0.022715, 0.313145, 0.0646032, 0.890108, -0.0266566, + 0.313165, 0.0758339, 0.890218, -0.0309131, 0.313193, 0.0879729, 0.890351, -0.0354819, 0.313226, + 0.101019, 0.89051, -0.0403613, 0.313263, 0.114979, 0.890672, -0.0455385, 0.313294, 0.129848, + 0.890882, -0.0509444, 0.313333, 0.145616, 0.891189, -0.0559657, 0.313324, 0.162122, 0.891457, + -0.0613123, 0.313281, 0.179524, 0.891856, -0.0671488, 0.313281, 0.197855, 0.892312, -0.0732732, + 0.313268, 0.216991, 0.892819, -0.0797865, 0.313263, 0.236924, 0.893369, -0.0865269, 0.313247, + 0.257433, 0.894045, -0.0931592, 0.313205, 0.278215, 0.894884, -0.100532, 0.313276, 0.299467, + 0.895832, -0.107716, 0.313205, 0.322276, 0.897043, -0.114099, 0.312873, 0.34642, 0.898515, + -0.119941, 0.312331, 0.371187, 0.900191, -0.126044, 0.311731, 0.396656, 0.90188, -0.131808, + 0.310859, 0.422488, 0.904359, -0.137289, 0.309857, 0.448744, 0.906923, -0.142991, 0.308714, + 0.475239, 0.910634, -0.148253, 0.307465, 0.501983, 0.914502, -0.153332, 0.305774, 0.529254, + 0.919046, -0.156646, 0.303156, 0.557709, 0.923194, -0.159612, 0.299928, 0.586267, 0.928858, + -0.162027, 0.296245, 0.614925, 0.934464, -0.164203, 0.291832, 0.643187, 0.939824, -0.165602, + 0.286565, 0.671601, 0.944582, -0.165383, 0.280073, 0.700213, 0.949257, -0.164439, 0.272891, + 0.728432, 0.954389, -0.162953, 0.264771, 0.756082, 0.958595, -0.161007, 0.255927, 0.78369, + 0.962138, -0.157243, 0.245769, 0.810769, 0.966979, -0.152872, 0.235127, 0.836999, 0.969566, + -0.148209, 0.22347, 0.862684, 0.972372, -0.142211, 0.211147, 0.887847, 0.975916, -0.135458, + 0.198606, 0.911843, 0.978026, -0.128398, 0.185498, 0.934795, 0.979686, -0.120313, 0.17171, + 0.956787, 0.980748, -0.11166, 0.158159, 0.978046, 0.981622, -0.103035, 0.144399, 0.997693, + 0.982356, -0.0930328, 0.13001, 1.01642, 0.983308, -0.0834627, 0.115778, 1.03366, 0.985037, + -0.0732249, 0.101327, 1.05014, 0.986493, -0.0628145, 0.086554, 1.06507, 0.988484, -0.0526556, + 0.0720413, 1.07907, 0.991051, -0.0415744, 0.0571151, 1.09189, 0.993523, -0.0314275, 0.0426643, + 1.10369, 0.99628, -0.0203603, 0.0279325, 1.11423, 0.998344, -0.0102446, 0.0138182, 1.12421, + 0.999997, 0.00042612, -0.000193628, 1.1333, 0.871555, -6.60007e-6, 0.329176, 1.74749e-5, 0.875255, + -0.000166579, 0.330571, 0.000441051, 0.875644, -0.000666394, 0.330718, 0.00176441, 0.875159, + -0.00149903, 0.330536, 0.00396899, 0.87516, -0.00266493, 0.330536, 0.007056, 0.875158, + -0.00416393, 0.330535, 0.0110251, 0.87516, -0.00599598, 0.330535, 0.0158764, 0.875163, + -0.00816108, 0.330536, 0.0216101, 0.875174, -0.0106591, 0.330538, 0.0282266, 0.875199, -0.0134899, + 0.330545, 0.0357266, 0.875257, -0.0166538, 0.330563, 0.0441117, 0.875304, -0.0201501, 0.330575, + 0.0533821, 0.875373, -0.0239785, 0.330595, 0.0635395, 0.875464, -0.0281389, 0.330619, 0.0745872, + 0.875565, -0.0326301, 0.330645, 0.0865255, 0.875691, -0.0374516, 0.330676, 0.0993599, 0.875897, + -0.0425993, 0.330733, 0.113093, 0.876091, -0.0480576, 0.330776, 0.127722, 0.876353, -0.0537216, + 0.330826, 0.143227, 0.876649, -0.0589807, 0.330809, 0.159462, 0.877034, -0.0647865, 0.330819, + 0.176642, 0.877443, -0.0709789, 0.330817, 0.194702, 0.877956, -0.0774782, 0.330832, 0.213577, + 0.878499, -0.0843175, 0.330822, 0.233246, 0.879144, -0.0912714, 0.330804, 0.253512, 0.879982, + -0.0980824, 0.330766, 0.274137, 0.88097, -0.105823, 0.330864, 0.295209, 0.882051, -0.113671, + 0.330896, 0.317226, 0.883397, -0.120303, 0.330545, 0.341068, 0.884987, -0.12667, 0.330068, + 0.365613, 0.886789, -0.133118, 0.329418, 0.390807, 0.889311, -0.139024, 0.328683, 0.416494, + 0.891995, -0.144971, 0.327729, 0.442618, 0.895106, -0.150747, 0.326521, 0.469131, 0.899527, + -0.156283, 0.325229, 0.495921, 0.90504, -0.161707, 0.32378, 0.523162, 0.909875, -0.165661, + 0.32122, 0.55092, 0.91561, -0.168755, 0.317942, 0.579928, 0.921225, -0.171193, 0.313983, 0.608539, + 0.927308, -0.17319, 0.309636, 0.636854, 0.933077, -0.174819, 0.304262, 0.66523, 0.938766, + -0.175002, 0.297563, 0.693609, 0.943667, -0.173946, 0.289613, 0.722157, 0.949033, -0.172221, + 0.281227, 0.750021, 0.953765, -0.169869, 0.271545, 0.777466, 0.95804, -0.166578, 0.261034, + 0.804853, 0.962302, -0.161761, 0.249434, 0.831569, 0.966544, -0.156636, 0.237484, 0.857779, + 0.969372, -0.150784, 0.224395, 0.883051, 0.972486, -0.143672, 0.210786, 0.907864, 0.975853, + -0.135772, 0.196556, 0.931223, 0.977975, -0.127942, 0.182307, 0.954061, 0.979122, -0.118347, + 0.167607, 0.97531, 0.980719, -0.109112, 0.152739, 0.995666, 0.981223, -0.0991789, 0.137932, + 1.01475, 0.98216, -0.0883553, 0.122692, 1.03253, 0.983379, -0.0780825, 0.107493, 1.04917, + 0.985434, -0.0665646, 0.0917791, 1.06464, 0.987332, -0.0557714, 0.0764949, 1.07896, 0.990004, + -0.0442805, 0.060721, 1.09199, 0.992975, -0.0331676, 0.0452284, 1.10393, 0.995811, -0.0219547, + 0.0297934, 1.11476, 0.9982, -0.0107613, 0.0146415, 1.12484, 1.00002, 0.000248678, -0.00014555, + 1.13413, 0.859519, -6.93595e-6, 0.347264, 1.71673e-5, 0.859843, -0.00017503, 0.347394, + 0.000433219, 0.859656, -0.000700076, 0.347319, 0.00173277, 0.859671, -0.00157517, 0.347325, + 0.00389875, 0.859669, -0.00280028, 0.347324, 0.00693112, 0.85967, -0.0043754, 0.347324, 0.01083, + 0.859665, -0.00630049, 0.347321, 0.0155954, 0.859685, -0.0085755, 0.347328, 0.0212278, 0.859694, + -0.0112003, 0.347329, 0.0277273, 0.859718, -0.0141747, 0.347336, 0.0350946, 0.85976, -0.0174988, + 0.347348, 0.0433314, 0.85982, -0.0211722, 0.347366, 0.0524384, 0.859892, -0.0251941, 0.347387, + 0.0624168, 0.860006, -0.0295649, 0.347422, 0.0732708, 0.860122, -0.0342825, 0.347453, 0.0849999, + 0.860282, -0.0393462, 0.347499, 0.0976102, 0.860482, -0.0447513, 0.347554, 0.111104, 0.860719, + -0.0504775, 0.347614, 0.125479, 0.860998, -0.0563577, 0.347666, 0.140703, 0.861322, -0.0619473, + 0.347662, 0.156681, 0.861724, -0.0681277, 0.347684, 0.173597, 0.862198, -0.0746567, 0.347709, + 0.191371, 0.862733, -0.0815234, 0.347727, 0.209976, 0.863371, -0.0886643, 0.347744, 0.229351, + 0.86414, -0.0957908, 0.347734, 0.24934, 0.865138, -0.102912, 0.34772, 0.269797, 0.866182, + -0.110924, 0.3478, 0.290654, 0.867436, -0.119223, 0.347911, 0.312074, 0.869087, -0.126197, + 0.347649, 0.335438, 0.870859, -0.133145, 0.347222, 0.359732, 0.872997, -0.139869, 0.346645, + 0.38467, 0.875939, -0.146089, 0.345935, 0.41019, 0.879012, -0.152334, 0.345012, 0.436218, + 0.883353, -0.15821, 0.343924, 0.462641, 0.888362, -0.164097, 0.342636, 0.489449, 0.895026, + -0.169528, 0.341351, 0.516629, 0.900753, -0.174408, 0.339115, 0.544109, 0.906814, -0.17751, + 0.335809, 0.572857, 0.912855, -0.180101, 0.331597, 0.601554, 0.919438, -0.182116, 0.32698, + 0.630198, 0.925962, -0.183494, 0.321449, 0.658404, 0.931734, -0.184159, 0.314595, 0.686625, + 0.93762, -0.18304, 0.306462, 0.71531, 0.943858, -0.181323, 0.297514, 0.744272, 0.948662, + -0.178683, 0.287447, 0.771462, 0.953299, -0.175379, 0.276166, 0.798593, 0.957346, -0.170395, + 0.263758, 0.8256, 0.962565, -0.165042, 0.251019, 0.852575, 0.966075, -0.158655, 0.237011, + 0.878316, 0.969048, -0.151707, 0.222518, 0.90329, 0.972423, -0.143271, 0.207848, 0.927745, + 0.975833, -0.134824, 0.192463, 0.950859, 0.977629, -0.125444, 0.1768, 0.972947, 0.978995, + -0.114949, 0.161033, 0.993263, 0.980533, -0.104936, 0.145523, 1.01337, 0.980745, -0.0935577, + 0.129799, 1.03128, 0.981814, -0.0822956, 0.113486, 1.04825, 0.983943, -0.0710082, 0.0972925, + 1.06405, 0.986141, -0.0587931, 0.0808138, 1.0785, 0.988878, -0.0472755, 0.0644915, 1.09204, + 0.992132, -0.0349128, 0.0478128, 1.10413, 0.9953, -0.0232407, 0.031621, 1.11527, 0.998117, + -0.0112713, 0.0154935, 1.12551, 1.00003, 0.000339743, -0.000195763, 1.13504, 0.845441, + -7.29126e-6, 0.364305, 1.69208e-5, 0.843588, -0.000183164, 0.363506, 0.000425067, 0.843412, + -0.00073253, 0.36343, 0.00169999, 0.843401, -0.00164818, 0.363426, 0.00382495, 0.843399, + -0.00293008, 0.363425, 0.00679993, 0.843401, -0.00457822, 0.363425, 0.010625, 0.843394, + -0.00659249, 0.363421, 0.0153002, 0.843398, -0.00897282, 0.363421, 0.0208258, 0.843415, + -0.0117191, 0.363426, 0.0272024, 0.843438, -0.0148312, 0.363432, 0.0344305, 0.843483, -0.018309, + 0.363447, 0.0425116, 0.84356, -0.0221521, 0.363472, 0.0514471, 0.843646, -0.0263597, 0.363499, + 0.061238, 0.843743, -0.0309315, 0.363527, 0.0718873, 0.84388, -0.0358658, 0.363569, 0.0833969, + 0.844079, -0.0411624, 0.363631, 0.0957742, 0.844279, -0.0468128, 0.363688, 0.109015, 0.844549, + -0.0527923, 0.363761, 0.123124, 0.844858, -0.0588204, 0.363817, 0.138044, 0.84522, -0.0647573, + 0.36383, 0.153755, 0.845669, -0.0713181, 0.363879, 0.170394, 0.846155, -0.0781697, 0.363908, + 0.187861, 0.846789, -0.0853913, 0.363969, 0.206176, 0.847502, -0.0928086, 0.363999, 0.225244, + 0.8484, -0.10005, 0.363997, 0.244926, 0.849461, -0.107615, 0.364008, 0.265188, 0.850562, + -0.115814, 0.364055, 0.28587, 0.851962, -0.124334, 0.364179, 0.306926, 0.854326, -0.131995, + 0.364233, 0.329605, 0.856295, -0.139338, 0.363856, 0.35359, 0.858857, -0.146346, 0.363347, + 0.37831, 0.862428, -0.152994, 0.362807, 0.403722, 0.866203, -0.159463, 0.361963, 0.429537, + 0.871629, -0.165623, 0.36112, 0.456, 0.877365, -0.171649, 0.359917, 0.482773, 0.883744, -0.177151, + 0.35848, 0.509705, 0.890693, -0.182381, 0.356523, 0.537215, 0.897278, -0.186076, 0.3533, 0.565493, + 0.903958, -0.188602, 0.349095, 0.594293, 0.910908, -0.190755, 0.344215, 0.623165, 0.918117, + -0.192063, 0.338606, 0.651573, 0.924644, -0.192758, 0.331544, 0.679869, 0.931054, -0.192238, + 0.323163, 0.708668, 0.937303, -0.190035, 0.313529, 0.737201, 0.943387, -0.187162, 0.303152, + 0.764977, 0.948494, -0.183876, 0.29146, 0.792683, 0.952546, -0.178901, 0.277917, 0.819228, + 0.958077, -0.173173, 0.264753, 0.846559, 0.962462, -0.16645, 0.25002, 0.872962, 0.966569, + -0.159452, 0.234873, 0.898729, 0.969108, -0.15074, 0.218752, 0.923126, 0.973072, -0.141523, + 0.202673, 0.947278, 0.975452, -0.132075, 0.186326, 0.969938, 0.977784, -0.121257, 0.169396, + 0.991325, 0.97899, -0.110182, 0.153044, 1.01123, 0.979777, -0.0989634, 0.136485, 1.0299, 0.980865, + -0.0865894, 0.119343, 1.04727, 0.982432, -0.0746115, 0.102452, 1.06341, 0.984935, -0.0621822, + 0.0852423, 1.07834, 0.987776, -0.0495694, 0.0678546, 1.092, 0.99103, -0.0372386, 0.0506917, + 1.1043, 0.99474, -0.0244353, 0.0333316, 1.11576, 0.997768, -0.0121448, 0.0164348, 1.12617, + 1.00003, 0.00031774, -0.000169504, 1.13598, 0.825551, -7.56799e-6, 0.378425, 1.65099e-5, 0.82664, + -0.000190922, 0.378923, 0.000416504, 0.826323, -0.000763495, 0.378779, 0.0016656, 0.826359, + -0.00171789, 0.378795, 0.00374768, 0.82636, -0.00305402, 0.378795, 0.00666259, 0.826368, + -0.00477185, 0.378798, 0.0104104, 0.826364, -0.00687131, 0.378795, 0.0149912, 0.826368, + -0.00935232, 0.378795, 0.0204054, 0.826376, -0.0122146, 0.378797, 0.0266532, 0.826399, -0.0154581, + 0.378803, 0.0337355, 0.82646, -0.0190825, 0.378824, 0.0416537, 0.826525, -0.0230873, 0.378846, + 0.0504091, 0.826614, -0.0274719, 0.378876, 0.0600032, 0.82674, -0.0322355, 0.378917, 0.0704393, + 0.826888, -0.0373766, 0.378964, 0.0817195, 0.827078, -0.0428936, 0.379024, 0.0938492, 0.827318, + -0.0487778, 0.379099, 0.106828, 0.82764, -0.0549935, 0.379199, 0.120659, 0.827926, -0.0611058, + 0.379227, 0.13526, 0.828325, -0.0675054, 0.379275, 0.150713, 0.828801, -0.0743455, 0.379332, + 0.167034, 0.8294, -0.0815523, 0.379415, 0.184209, 0.830094, -0.0890779, 0.379495, 0.202203, + 0.8309, -0.096736, 0.379555, 0.220945, 0.831943, -0.104135, 0.379577, 0.240306, 0.833037, + -0.112106, 0.379604, 0.260317, 0.834278, -0.120554, 0.379668, 0.2808, 0.836192, -0.129128, 0.3799, + 0.301654, 0.838671, -0.137541, 0.380109, 0.323502, 0.840939, -0.14523, 0.379809, 0.347176, + 0.844575, -0.15248, 0.379593, 0.371706, 0.848379, -0.159607, 0.37909, 0.39688, 0.853616, + -0.166267, 0.378617, 0.422702, 0.858921, -0.172698, 0.377746, 0.448919, 0.865324, -0.178823, + 0.376749, 0.475661, 0.872207, -0.184542, 0.375363, 0.502599, 0.880018, -0.189836, 0.373657, + 0.529914, 0.88694, -0.194294, 0.370673, 0.557683, 0.894779, -0.197022, 0.36662, 0.586848, + 0.902242, -0.199108, 0.36138, 0.615831, 0.909914, -0.200398, 0.355434, 0.644478, 0.917088, + -0.20094, 0.348173, 0.672905, 0.923888, -0.200671, 0.339482, 0.701327, 0.930495, -0.198773, + 0.32956, 0.730101, 0.937247, -0.195394, 0.318363, 0.758383, 0.943108, -0.191956, 0.306323, + 0.786539, 0.948296, -0.187227, 0.292576, 0.813637, 0.953472, -0.181165, 0.278234, 0.840793, + 0.958485, -0.174119, 0.263054, 0.867712, 0.962714, -0.166564, 0.246756, 0.893635, 0.966185, + -0.158181, 0.229945, 0.919028, 0.970146, -0.148275, 0.212633, 0.943413, 0.973491, -0.138157, + 0.195229, 0.966627, 0.975741, -0.127574, 0.178048, 0.988817, 0.977238, -0.11554, 0.160312, + 1.00924, 0.978411, -0.10364, 0.142857, 1.02845, 0.979811, -0.0913122, 0.125317, 1.04648, 0.98116, + -0.0782558, 0.107627, 1.06284, 0.983543, -0.0655957, 0.0895862, 1.07798, 0.986789, -0.0520411, + 0.0713756, 1.092, 0.990292, -0.0389727, 0.053228, 1.10484, 0.994187, -0.025808, 0.0351945, + 1.11642, 0.997499, -0.0126071, 0.0173198, 1.12703, 0.999999, 0.000275604, -0.000148602, 1.13674, + 0.81075, -7.8735e-6, 0.394456, 1.61829e-5, 0.808692, -0.000198293, 0.393453, 0.000407564, 0.80846, + -0.000792877, 0.39334, 0.00162965, 0.808595, -0.00178416, 0.393407, 0.00366711, 0.808597, + -0.00317182, 0.393408, 0.00651934, 0.808598, -0.00495589, 0.393408, 0.0101866, 0.808591, + -0.00713627, 0.393403, 0.0146689, 0.808592, -0.00971285, 0.393402, 0.0199667, 0.80861, -0.0126855, + 0.393407, 0.0260803, 0.808633, -0.0160538, 0.393413, 0.0330107, 0.80868, -0.0198175, 0.393429, + 0.0407589, 0.808748, -0.0239758, 0.393453, 0.0493264, 0.808854, -0.0285286, 0.39349, 0.0587161, + 0.808992, -0.0334748, 0.39354, 0.0689304, 0.809141, -0.0388116, 0.393588, 0.0799707, 0.809352, + -0.0445375, 0.39366, 0.0918432, 0.809608, -0.0506427, 0.393742, 0.104549, 0.809915, -0.0570708, + 0.393834, 0.118085, 0.810253, -0.0633526, 0.393885, 0.132377, 0.810687, -0.0700966, 0.393953, + 0.147537, 0.811233, -0.0772274, 0.394047, 0.163543, 0.811865, -0.0847629, 0.394148, 0.180394, + 0.812648, -0.0925663, 0.394265, 0.198051, 0.813583, -0.100416, 0.394363, 0.216443, 0.814683, + -0.108119, 0.394402, 0.235502, 0.815948, -0.11644, 0.394489, 0.255242, 0.817278, -0.125036, + 0.394542, 0.275441, 0.819605, -0.133655, 0.39486, 0.296094, 0.822256, -0.142682, 0.395248, + 0.317309, 0.825349, -0.150756, 0.395241, 0.340516, 0.829605, -0.158392, 0.395285, 0.364819, + 0.83391, -0.165801, 0.394922, 0.389736, 0.839808, -0.172677, 0.394691, 0.415409, 0.845708, + -0.179448, 0.394006, 0.441546, 0.853025, -0.185746, 0.393279, 0.46832, 0.859666, -0.191684, + 0.391655, 0.495302, 0.86789, -0.197146, 0.390068, 0.52262, 0.875845, -0.201904, 0.38727, 0.550336, + 0.882634, -0.205023, 0.382688, 0.578825, 0.891076, -0.207098, 0.377543, 0.608103, 0.900589, + -0.208474, 0.371752, 0.63723, 0.90791, -0.209068, 0.364016, 0.665769, 0.915971, -0.208655, + 0.355593, 0.694428, 0.923455, -0.20729, 0.345439, 0.723224, 0.931514, -0.203821, 0.334099, + 0.751925, 0.937885, -0.19986, 0.321069, 0.780249, 0.943136, -0.194993, 0.306571, 0.8077, 0.948818, + -0.189132, 0.291556, 0.83497, 0.954433, -0.181617, 0.275745, 0.86188, 0.959078, -0.173595, + 0.258695, 0.888562, 0.962705, -0.164855, 0.240825, 0.914008, 0.966753, -0.155129, 0.22268, + 0.939145, 0.970704, -0.144241, 0.204542, 0.963393, 0.973367, -0.133188, 0.185927, 0.985983, + 0.975984, -0.121146, 0.167743, 1.00704, 0.976994, -0.108366, 0.149218, 1.02715, 0.978485, + -0.0956746, 0.13131, 1.0455, 0.980074, -0.0820733, 0.112513, 1.06221, 0.98225, -0.0684061, + 0.0938323, 1.07782, 0.98553, -0.0549503, 0.0749508, 1.09199, 0.989529, -0.0407857, 0.055848, + 1.10508, 0.993536, -0.0271978, 0.0368581, 1.11684, 0.997247, -0.0132716, 0.0181845, 1.12789, 1, + 0.000431817, -0.000198809, 1.13792, 0.785886, -8.12608e-6, 0.405036, 1.57669e-5, 0.790388, + -0.000205278, 0.407355, 0.000398297, 0.790145, -0.000820824, 0.407231, 0.00159263, 0.790135, + -0.00184681, 0.407226, 0.00358336, 0.790119, -0.00328316, 0.407218, 0.00637039, 0.790126, + -0.00512988, 0.40722, 0.0099539, 0.79013, -0.00738684, 0.407221, 0.0143339, 0.790135, -0.0100538, + 0.407221, 0.0195107, 0.790134, -0.0131306, 0.407217, 0.0254848, 0.79016, -0.0166169, 0.407224, + 0.0322572, 0.790197, -0.020512, 0.407236, 0.0398284, 0.790273, -0.0248157, 0.407263, 0.0482014, + 0.790381, -0.029527, 0.407304, 0.0573777, 0.790521, -0.0346446, 0.407355, 0.0673602, 0.790704, + -0.0401665, 0.40742, 0.0781522, 0.790925, -0.0460896, 0.407499, 0.0897582, 0.791195, -0.0524017, + 0.407589, 0.10218, 0.791522, -0.0590121, 0.407691, 0.11541, 0.791878, -0.0654876, 0.407748, + 0.12939, 0.792361, -0.0725207, 0.407849, 0.144237, 0.792942, -0.0799844, 0.407963, 0.159924, + 0.79362, -0.0877896, 0.408087, 0.176425, 0.794529, -0.0958451, 0.408259, 0.193733, 0.795521, + -0.103827, 0.408362, 0.211756, 0.796778, -0.111937, 0.408482, 0.230524, 0.798027, -0.120521, + 0.408547, 0.249967, 0.799813, -0.129242, 0.408721, 0.269926, 0.802387, -0.138048, 0.409148, + 0.290338, 0.805279, -0.147301, 0.409641, 0.311193, 0.809251, -0.155895, 0.410154, 0.333611, + 0.813733, -0.163942, 0.410297, 0.357615, 0.819081, -0.171666, 0.410373, 0.382339, 0.825427, + -0.178905, 0.410348, 0.407828, 0.83172, -0.185812, 0.409486, 0.434034, 0.83877, -0.192318, + 0.408776, 0.460493, 0.845817, -0.198249, 0.407176, 0.487346, 0.854664, -0.204034, 0.405719, + 0.514832, 0.863495, -0.208908, 0.403282, 0.542401, 0.871883, -0.212765, 0.399293, 0.570683, + 0.88065, -0.214911, 0.393803, 0.599947, 0.89004, -0.216214, 0.387536, 0.62932, 0.898476, + -0.216745, 0.379846, 0.658319, 0.906738, -0.216387, 0.370625, 0.687138, 0.914844, -0.215053, + 0.360139, 0.71601, 0.923877, -0.212007, 0.348849, 0.745124, 0.931925, -0.207481, 0.335639, + 0.773366, 0.938054, -0.202418, 0.320798, 0.801636, 0.943895, -0.196507, 0.304772, 0.829055, + 0.949468, -0.189009, 0.288033, 0.856097, 0.955152, -0.180539, 0.270532, 0.88301, 0.959403, + -0.171437, 0.251639, 0.909296, 0.963309, -0.161661, 0.232563, 0.934868, 0.967399, -0.150425, + 0.213231, 0.959662, 0.972009, -0.138659, 0.194247, 0.98302, 0.97433, -0.126595, 0.174718, 1.00517, + 0.975823, -0.113205, 0.155518, 1.02566, 0.976371, -0.0996096, 0.136709, 1.04418, 0.978705, + -0.0860754, 0.117571, 1.06146, 0.981477, -0.0714438, 0.0980046, 1.07777, 0.984263, -0.0572304, + 0.0782181, 1.09214, 0.988423, -0.0428875, 0.0584052, 1.10553, 0.993, -0.0282442, 0.038522, + 1.11758, 0.99704, -0.0140183, 0.0190148, 1.12864, 0.999913, 0.000369494, -0.000145203, 1.13901, + 0.777662, -8.4153e-6, 0.423844, 1.54403e-5, 0.770458, -0.000211714, 0.419915, 0.00038845, + 0.770716, -0.000846888, 0.420055, 0.00155386, 0.770982, -0.00190567, 0.420202, 0.00349653, + 0.770981, -0.00338782, 0.420201, 0.00621606, 0.77098, -0.00529338, 0.4202, 0.00971274, 0.770983, + -0.00762223, 0.4202, 0.0139867, 0.770985, -0.0103741, 0.420198, 0.0190381, 0.770996, -0.0135489, + 0.4202, 0.0248677, 0.771029, -0.0171461, 0.420212, 0.0314764, 0.771052, -0.0211647, 0.420215, + 0.0388648, 0.771131, -0.0256048, 0.420245, 0.047036, 0.771235, -0.0304647, 0.420284, 0.0559911, + 0.771383, -0.0357436, 0.420341, 0.0657346, 0.771591, -0.0414392, 0.420423, 0.0762694, 0.771819, + -0.0475462, 0.420506, 0.0875984, 0.772123, -0.0540506, 0.420617, 0.099727, 0.772464, -0.060797, + 0.42072, 0.112637, 0.772855, -0.0675393, 0.420799, 0.126313, 0.773317, -0.0748323, 0.420893, + 0.140824, 0.773981, -0.0825681, 0.421058, 0.15617, 0.774746, -0.0906307, 0.421226, 0.172322, + 0.77566, -0.0988982, 0.421397, 0.189253, 0.776837, -0.106994, 0.421569, 0.206912, 0.778097, + -0.115528, 0.421704, 0.225359, 0.779588, -0.124317, 0.421849, 0.24447, 0.781574, -0.133139, + 0.422097, 0.264156, 0.784451, -0.142179, 0.422615, 0.284318, 0.787682, -0.15165, 0.423269, + 0.304902, 0.792433, -0.160771, 0.424396, 0.3265, 0.797359, -0.169166, 0.424772, 0.35014, 0.803986, + -0.177149, 0.425475, 0.374768, 0.809504, -0.184745, 0.424996, 0.399928, 0.815885, -0.19173, + 0.424247, 0.425796, 0.823513, -0.198525, 0.423515, 0.452287, 0.832549, -0.204709, 0.422787, + 0.479321, 0.841653, -0.210447, 0.421187, 0.506718, 0.850401, -0.215501, 0.418519, 0.53432, + 0.859854, -0.219752, 0.414715, 0.56242, 0.869364, -0.222305, 0.409462, 0.591558, 0.878837, + -0.223744, 0.402926, 0.621074, 0.888636, -0.224065, 0.395043, 0.650538, 0.898132, -0.223742, + 0.38564, 0.679538, 0.907181, -0.222308, 0.375378, 0.708674, 0.915621, -0.219837, 0.363212, + 0.737714, 0.9239, -0.215233, 0.349313, 0.767014, 0.931644, -0.209592, 0.334162, 0.795133, + 0.938887, -0.203644, 0.317943, 0.823228, 0.945282, -0.196349, 0.300581, 0.850822, 0.950758, + -0.18742, 0.282195, 0.877594, 0.956146, -0.177879, 0.262481, 0.904564, 0.960355, -0.167643, + 0.242487, 0.930741, 0.965256, -0.156671, 0.222668, 0.955868, 0.968029, -0.144123, 0.201907, + 0.979869, 0.97251, -0.131305, 0.18202, 1.00291, 0.974925, -0.118335, 0.161909, 1.02392, 0.975402, + -0.103714, 0.142129, 1.0433, 0.976987, -0.089415, 0.122447, 1.06089, 0.979677, -0.0748858, + 0.102248, 1.07713, 0.983184, -0.0596086, 0.0814851, 1.09218, 0.987466, -0.0447671, 0.0609484, + 1.10585, 0.992348, -0.0295217, 0.0401835, 1.11829, 0.996674, -0.0143917, 0.0198163, 1.12966, + 1.00003, 0.000321364, -0.000149983, 1.1402, 0.757901, -8.69074e-6, 0.436176, 1.51011e-5, 0.751195, + -0.000217848, 0.432317, 0.000378533, 0.751178, -0.000871373, 0.432307, 0.0015141, 0.751195, + -0.00196061, 0.432317, 0.0034068, 0.751198, -0.00348552, 0.432318, 0.00605659, 0.751195, + -0.00544599, 0.432315, 0.00946353, 0.751207, -0.00784203, 0.43232, 0.013628, 0.751213, -0.0106732, + 0.43232, 0.0185499, 0.751221, -0.0139393, 0.432319, 0.0242302, 0.751244, -0.0176398, 0.432325, + 0.0306694, 0.7513, -0.0217743, 0.432348, 0.0378698, 0.751358, -0.0263412, 0.432367, 0.0458321, + 0.751458, -0.0313396, 0.432404, 0.0545587, 0.751608, -0.0367682, 0.432464, 0.0640543, 0.7518, + -0.0426246, 0.43254, 0.0743222, 0.752065, -0.0489031, 0.432645, 0.0853668, 0.752376, -0.0555828, + 0.432762, 0.0971911, 0.752715, -0.0623861, 0.432859, 0.109768, 0.753137, -0.069415, 0.432958, + 0.123126, 0.753676, -0.0770039, 0.433099, 0.137308, 0.754345, -0.084971, 0.433272, 0.15229, + 0.755235, -0.0932681, 0.433504, 0.168075, 0.756186, -0.10171, 0.433693, 0.184625, 0.757363, + -0.110019, 0.433857, 0.201897, 0.75884, -0.11887, 0.434102, 0.220014, 0.760467, -0.127881, + 0.434306, 0.238778, 0.762969, -0.136766, 0.434751, 0.258172, 0.765823, -0.14612, 0.43529, + 0.278062, 0.769676, -0.15566, 0.436236, 0.298437, 0.774909, -0.165177, 0.437754, 0.319532, + 0.77994, -0.17402, 0.438343, 0.342505, 0.785757, -0.182201, 0.438609, 0.366693, 0.792487, + -0.190104, 0.438762, 0.391668, 0.80038, -0.197438, 0.438795, 0.417494, 0.808494, -0.204365, + 0.438226, 0.443933, 0.817695, -0.210714, 0.437283, 0.470929, 0.828111, -0.216651, 0.436087, + 0.498569, 0.837901, -0.221804, 0.433717, 0.526165, 0.847813, -0.226318, 0.430133, 0.554155, + 0.858314, -0.229297, 0.425213, 0.582822, 0.868891, -0.230999, 0.418576, 0.612847, 0.878941, + -0.231155, 0.410405, 0.642445, 0.888809, -0.230935, 0.400544, 0.672024, 0.898089, -0.229343, + 0.389613, 0.701366, 0.908081, -0.226886, 0.377197, 0.730763, 0.916819, -0.222676, 0.363397, + 0.759642, 0.924968, -0.216835, 0.347437, 0.788775, 0.932906, -0.210245, 0.32995, 0.817135, + 0.940025, -0.202992, 0.312262, 0.844912, 0.946101, -0.19436, 0.293313, 0.872164, 0.952835, + -0.184125, 0.273638, 0.899443, 0.957347, -0.173657, 0.252385, 0.926389, 0.961434, -0.162204, + 0.231038, 0.951947, 0.965522, -0.14979, 0.209834, 0.976751, 0.969412, -0.136307, 0.188821, + 1.00022, 0.973902, -0.122527, 0.168013, 1.02229, 0.974045, -0.108213, 0.147634, 1.04199, 0.975775, + -0.0927397, 0.12705, 1.06019, 0.978383, -0.0778212, 0.106309, 1.07711, 0.98211, -0.0621216, + 0.0849279, 1.09245, 0.986517, -0.0463847, 0.0633519, 1.10651, 0.991696, -0.0309353, 0.0419698, + 1.11903, 0.996349, -0.0150914, 0.0206272, 1.13073, 1.00003, 0.000442449, -0.000231396, 1.14146, + 0.727498, -8.85074e-6, 0.441528, 1.45832e-5, 0.730897, -0.000223525, 0.443589, 0.000368298, + 0.730796, -0.000893996, 0.443528, 0.00147303, 0.730805, -0.00201149, 0.443533, 0.00331433, + 0.730814, -0.00357596, 0.443538, 0.00589222, 0.730815, -0.00558734, 0.443538, 0.00920678, + 0.730822, -0.00804544, 0.44354, 0.0132582, 0.730836, -0.0109501, 0.443545, 0.0180468, 0.730848, + -0.0143008, 0.443546, 0.0235732, 0.730871, -0.0180969, 0.443552, 0.0298382, 0.730915, -0.022338, + 0.443567, 0.0368438, 0.730982, -0.0270225, 0.443591, 0.044591, 0.731076, -0.0321491, 0.443627, + 0.0530831, 0.731245, -0.0377166, 0.443699, 0.0623243, 0.73144, -0.0437216, 0.443777, 0.0723181, + 0.7317, -0.0501576, 0.443881, 0.0830691, 0.732034, -0.0569942, 0.444014, 0.0945809, 0.732388, + -0.0638756, 0.444113, 0.106825, 0.732853, -0.071203, 0.444247, 0.119859, 0.733473, -0.0790076, + 0.444442, 0.13369, 0.734195, -0.0871937, 0.444645, 0.148304, 0.735069, -0.095696, 0.444877, + 0.163702, 0.736169, -0.10426, 0.445133, 0.179861, 0.73747, -0.112853, 0.44537, 0.196778, 0.738991, + -0.12199, 0.445651, 0.214496, 0.740865, -0.131153, 0.445958, 0.232913, 0.743637, -0.140245, + 0.446548, 0.251977, 0.746797, -0.149722, 0.447246, 0.271551, 0.751517, -0.159341, 0.448656, + 0.291774, 0.756156, -0.169106, 0.449866, 0.312455, 0.761519, -0.178436, 0.450919, 0.334552, + 0.768295, -0.186904, 0.451776, 0.358491, 0.776613, -0.195117, 0.452832, 0.383446, 0.783966, + -0.202695, 0.45249, 0.408945, 0.793542, -0.20985, 0.452587, 0.435364, 0.803192, -0.216403, + 0.451852, 0.462336, 0.813892, -0.22251, 0.450708, 0.48987, 0.824968, -0.227676, 0.4486, 0.517697, + 0.835859, -0.232443, 0.445156, 0.545975, 0.846825, -0.235775, 0.440351, 0.574483, 0.858085, + -0.237897, 0.433641, 0.604246, 0.868825, -0.238074, 0.425354, 0.634101, 0.879638, -0.237661, + 0.415383, 0.664201, 0.889966, -0.236186, 0.404136, 0.693918, 0.899479, -0.233599, 0.390917, + 0.723481, 0.908769, -0.229737, 0.376352, 0.75258, 0.917966, -0.223836, 0.360372, 0.781764, + 0.926304, -0.217067, 0.342551, 0.811139, 0.934626, -0.209309, 0.324238, 0.839585, 0.941841, + -0.20071, 0.304484, 0.867044, 0.94789, -0.190602, 0.283607, 0.894579, 0.954196, -0.179253, + 0.262205, 0.921743, 0.958383, -0.167646, 0.239847, 0.948026, 0.963119, -0.155073, 0.218078, + 0.973296, 0.966941, -0.141426, 0.195899, 0.998135, 0.970836, -0.126849, 0.174121, 1.02021, + 0.973301, -0.112296, 0.153052, 1.04085, 0.97448, -0.0964965, 0.131733, 1.05946, 0.977045, + -0.080489, 0.10997, 1.07693, 0.980751, -0.064844, 0.0881657, 1.09254, 0.985475, -0.0481938, + 0.0657987, 1.10697, 0.991089, -0.0319185, 0.0435215, 1.12004, 0.996122, -0.0158088, 0.0214779, + 1.13173, 1.00001, 0.000372455, -0.000200295, 1.14291, 0.708622, -9.07597e-6, 0.45304, 1.41962e-5, + 0.711162, -0.000228911, 0.454662, 0.000358052, 0.709812, -0.000914446, 0.453797, 0.00143034, + 0.709865, -0.00205819, 0.453834, 0.00321935, 0.709864, -0.00365894, 0.453833, 0.00572331, + 0.709855, -0.00571692, 0.453826, 0.00894278, 0.709862, -0.00823201, 0.453828, 0.012878, 0.709875, + -0.011204, 0.453832, 0.0175295, 0.709896, -0.0146323, 0.453839, 0.0228978, 0.709925, -0.0185163, + 0.453847, 0.0289839, 0.709974, -0.0228551, 0.453866, 0.0357894, 0.710045, -0.0276473, 0.453892, + 0.0433161, 0.710133, -0.032891, 0.453924, 0.0515665, 0.710292, -0.0385851, 0.453992, 0.0605458, + 0.710485, -0.0447254, 0.45407, 0.0702574, 0.710769, -0.0513051, 0.454192, 0.0807077, 0.711106, + -0.0582733, 0.454329, 0.091896, 0.711516, -0.0652866, 0.45446, 0.103814, 0.712071, -0.0728426, + 0.454653, 0.116508, 0.712676, -0.0808307, 0.45484, 0.129968, 0.713476, -0.0892216, 0.455096, + 0.144206, 0.714377, -0.0979047, 0.455346, 0.159212, 0.715579, -0.106531, 0.455647, 0.174973, + 0.716977, -0.115492, 0.455961, 0.191504, 0.71862, -0.124821, 0.456315, 0.208835, 0.72084, + -0.134079, 0.4568, 0.226869, 0.723786, -0.143427, 0.457521, 0.245582, 0.727464, -0.153061, + 0.458475, 0.264957, 0.732771, -0.162768, 0.460239, 0.284948, 0.736515, -0.172627, 0.460899, + 0.30522, 0.743519, -0.182487, 0.463225, 0.326717, 0.750041, -0.191295, 0.464027, 0.350113, + 0.758589, -0.199746, 0.465227, 0.374782, 0.767703, -0.207584, 0.465877, 0.400226, 0.777484, + -0.214973, 0.465996, 0.426442, 0.788792, -0.221796, 0.466019, 0.453688, 0.800194, -0.228038, + 0.465083, 0.481246, 0.811234, -0.233346, 0.462506, 0.509086, 0.822859, -0.238073, 0.459257, + 0.537338, 0.835082, -0.241764, 0.454863, 0.566108, 0.846332, -0.244241, 0.448163, 0.595126, + 0.858355, -0.244736, 0.439709, 0.625574, 0.87034, -0.244278, 0.429837, 0.65617, 0.881027, + -0.24255, 0.418002, 0.686029, 0.891007, -0.239912, 0.404325, 0.716039, 0.900874, -0.236133, + 0.389222, 0.745518, 0.911072, -0.230672, 0.373269, 0.775026, 0.920359, -0.22356, 0.355083, + 0.804521, 0.928604, -0.215591, 0.335533, 0.834045, 0.937175, -0.206503, 0.315278, 0.861612, + 0.942825, -0.196684, 0.293653, 0.889131, 0.949805, -0.185116, 0.271503, 0.916853, 0.955535, + -0.172703, 0.248821, 0.943541, 0.959843, -0.159978, 0.225591, 0.970132, 0.964393, -0.146375, + 0.202719, 0.994709, 0.968008, -0.131269, 0.179928, 1.0186, 0.971013, -0.11569, 0.158007, 1.03928, + 0.973334, -0.1003, 0.13624, 1.05887, 0.975775, -0.0833352, 0.1138, 1.07652, 0.979579, -0.0668981, + 0.0913141, 1.09297, 0.984323, -0.0500902, 0.0683051, 1.10734, 0.990351, -0.0332377, 0.0451771, + 1.12084, 0.995823, -0.0161491, 0.0221705, 1.13296, 1.0001, 0.000234083, -0.000108712, 1.14441, + 0.683895, -9.24677e-6, 0.46015, 1.37429e-5, 0.68833, -0.000233383, 0.463134, 0.000346865, + 0.688368, -0.000933547, 0.463159, 0.00138748, 0.688367, -0.00210049, 0.463159, 0.00312187, + 0.688369, -0.00373415, 0.463159, 0.00555004, 0.688377, -0.00583449, 0.463163, 0.00867216, + 0.688386, -0.00840128, 0.463166, 0.0124884, 0.688398, -0.0114343, 0.463169, 0.0169993, 0.688418, + -0.0149329, 0.463175, 0.0222054, 0.688453, -0.0188964, 0.463188, 0.028108, 0.688515, -0.0233239, + 0.463214, 0.0347085, 0.68857, -0.0282136, 0.463231, 0.0420091, 0.688679, -0.033564, 0.463276, + 0.0500132, 0.688854, -0.0393733, 0.463356, 0.0587255, 0.689038, -0.0456354, 0.46343, 0.0681476, + 0.689321, -0.0523433, 0.463553, 0.0782897, 0.689662, -0.059412, 0.463693, 0.0891501, 0.690188, + -0.0665736, 0.4639, 0.100735, 0.690755, -0.0743106, 0.464107, 0.113074, 0.691405, -0.0824722, + 0.464329, 0.126161, 0.692198, -0.0910484, 0.464585, 0.140007, 0.693196, -0.0998778, 0.464893, + 0.154612, 0.69454, -0.108651, 0.465285, 0.169984, 0.695921, -0.117855, 0.465596, 0.186106, + 0.697749, -0.12734, 0.466056, 0.203034, 0.700375, -0.136714, 0.466771, 0.220703, 0.703395, + -0.146386, 0.467579, 0.239062, 0.707904, -0.156096, 0.469067, 0.258188, 0.711673, -0.165904, + 0.469851, 0.277759, 0.717489, -0.175812, 0.471815, 0.297935, 0.724051, -0.185931, 0.47389, + 0.318916, 0.731965, -0.195238, 0.47587, 0.341591, 0.741151, -0.204021, 0.477523, 0.366062, + 0.751416, -0.212113, 0.478881, 0.391396, 0.761848, -0.21979, 0.479226, 0.417599, 0.771886, + -0.2267, 0.478495, 0.444401, 0.783998, -0.232991, 0.477622, 0.472084, 0.796523, -0.238645, + 0.475833, 0.500193, 0.808851, -0.243396, 0.472568, 0.52865, 0.821191, -0.247226, 0.467857, + 0.557362, 0.834261, -0.250102, 0.461871, 0.586768, 0.846762, -0.251056, 0.453543, 0.617085, + 0.859867, -0.250604, 0.443494, 0.647659, 0.871948, -0.248783, 0.431711, 0.678119, 0.882967, + -0.245855, 0.417911, 0.708399, 0.892826, -0.242168, 0.401993, 0.738256, 0.90332, -0.237062, + 0.385371, 0.767999, 0.913633, -0.22997, 0.366837, 0.798191, 0.922774, -0.221687, 0.346372, + 0.827756, 0.931371, -0.212345, 0.325682, 0.856425, 0.938929, -0.20206, 0.303665, 0.884299, + 0.944821, -0.190981, 0.280786, 0.912023, 0.951792, -0.178065, 0.2573, 0.939669, 0.957712, + -0.164634, 0.233448, 0.96655, 0.961912, -0.150863, 0.209504, 0.992366, 0.966382, -0.13577, + 0.18597, 1.01633, 0.969588, -0.119593, 0.162905, 1.03843, 0.971777, -0.103203, 0.14053, 1.05841, + 0.97433, -0.0865888, 0.117909, 1.07632, 0.978686, -0.0690829, 0.0944101, 1.09326, 0.983281, + -0.0516568, 0.0705671, 1.10796, 0.989562, -0.034558, 0.0468592, 1.12182, 0.995465, -0.0167808, + 0.0229846, 1.1342, 0.999991, 0.000373016, -0.000235606, 1.1459, 0.662251, -9.39016e-6, 0.468575, + 1.32714e-5, 0.666634, -0.000237624, 0.471675, 0.000335842, 0.666411, -0.000950385, 0.471516, + 0.00134321, 0.666399, -0.00213833, 0.471509, 0.00302221, 0.666386, -0.0038014, 0.471499, + 0.00537283, 0.666405, -0.00593958, 0.471511, 0.00839533, 0.666406, -0.00855253, 0.471508, + 0.0120898, 0.666428, -0.0116401, 0.471519, 0.0164569, 0.666444, -0.0152015, 0.471522, 0.0214971, + 0.66649, -0.0192362, 0.471543, 0.027212, 0.666537, -0.0237428, 0.471558, 0.033603, 0.666617, + -0.0287198, 0.471591, 0.0406728, 0.666718, -0.0341647, 0.471631, 0.0484238, 0.666889, -0.0400759, + 0.47171, 0.0568621, 0.667104, -0.0464479, 0.471805, 0.0659915, 0.667374, -0.0532677, 0.471923, + 0.0758178, 0.667772, -0.0603805, 0.472098, 0.0863425, 0.668371, -0.0677392, 0.472363, 0.0975917, + 0.668971, -0.0756028, 0.472596, 0.109567, 0.669696, -0.0839293, 0.472869, 0.122272, 0.670481, + -0.0926683, 0.473126, 0.135718, 0.6715, -0.1016, 0.473442, 0.149914, 0.672911, -0.110566, 0.47389, + 0.164882, 0.674512, -0.119984, 0.474354, 0.180602, 0.67651, -0.129574, 0.474922, 0.19711, + 0.679292, -0.139106, 0.475764, 0.214371, 0.682798, -0.148993, 0.476886, 0.232405, 0.686955, + -0.158737, 0.478179, 0.251153, 0.691406, -0.168754, 0.479432, 0.270436, 0.697438, -0.178703, + 0.481481, 0.290374, 0.704761, -0.188955, 0.484143, 0.311044, 0.713599, -0.198814, 0.487007, + 0.333003, 0.723194, -0.207869, 0.488962, 0.357144, 0.732601, -0.216189, 0.489815, 0.382169, + 0.744193, -0.22398, 0.490888, 0.408227, 0.754907, -0.231156, 0.490355, 0.434928, 0.767403, + -0.23747, 0.489548, 0.462599, 0.78107, -0.243503, 0.488274, 0.490908, 0.793893, -0.248114, + 0.484843, 0.519421, 0.807296, -0.25222, 0.4803, 0.548561, 0.820529, -0.255265, 0.474097, 0.577772, + 0.833716, -0.256741, 0.466041, 0.607782, 0.848403, -0.25637, 0.456547, 0.638807, 0.860755, + -0.254804, 0.443946, 0.670058, 0.874012, -0.251834, 0.430852, 0.700749, 0.885619, -0.247867, + 0.414903, 0.731446, 0.896069, -0.242634, 0.397276, 0.761191, 0.906266, -0.236093, 0.378535, + 0.791053, 0.916759, -0.227543, 0.358038, 0.821298, 0.92523, -0.21783, 0.335705, 0.850747, 0.93436, + -0.207534, 0.313797, 0.879258, 0.941631, -0.195983, 0.289671, 0.907734, 0.947564, -0.183567, + 0.265319, 0.935206, 0.953681, -0.169345, 0.240815, 0.962739, 0.960008, -0.154909, 0.216119, + 0.989227, 0.964145, -0.140161, 0.192096, 1.01465, 0.968171, -0.123411, 0.167855, 1.03737, + 0.969859, -0.106525, 0.144817, 1.05767, 0.972666, -0.0891023, 0.12149, 1.0761, 0.977055, + -0.0718094, 0.0975306, 1.09336, 0.982527, -0.0534213, 0.0730217, 1.10878, 0.989001, -0.0355579, + 0.0483366, 1.12285, 0.99512, -0.0176383, 0.023938, 1.13548, 1.00007, 0.000368831, -0.000211581, + 1.14744, 0.651047, -9.60845e-6, 0.484101, 1.2922e-5, 0.644145, -0.000241347, 0.478968, + 0.000324578, 0.64396, -0.000965142, 0.478831, 0.00129798, 0.64396, -0.00217154, 0.47883, + 0.00292046, 0.643968, -0.00386049, 0.478835, 0.00519202, 0.643974, -0.00603186, 0.478838, + 0.0081128, 0.643977, -0.0086854, 0.478836, 0.011683, 0.643982, -0.0118207, 0.478834, 0.0159031, + 0.644024, -0.0154374, 0.478856, 0.0207743, 0.644059, -0.0195343, 0.478868, 0.0262975, 0.644122, + -0.0241103, 0.478896, 0.0324747, 0.644207, -0.0291638, 0.478933, 0.039309, 0.64432, -0.0346919, + 0.478981, 0.0468029, 0.644481, -0.0406919, 0.479053, 0.0549614, 0.644722, -0.047159, 0.479169, + 0.0637909, 0.645013, -0.0540748, 0.479302, 0.0732974, 0.645503, -0.0612001, 0.479541, 0.0834898, + 0.646117, -0.0687303, 0.479829, 0.0943873, 0.646707, -0.0767846, 0.480061, 0.105991, 0.647431, + -0.0852465, 0.480343, 0.11831, 0.64831, -0.0940719, 0.48066, 0.131348, 0.649486, -0.103056, + 0.481083, 0.14514, 0.650864, -0.112261, 0.481528, 0.159676, 0.652604, -0.121852, 0.482102, + 0.174979, 0.654825, -0.131505, 0.482813, 0.191079, 0.657876, -0.141189, 0.483876, 0.207927, + 0.661339, -0.151239, 0.48499, 0.225586, 0.665463, -0.161091, 0.486279, 0.243947, 0.670542, + -0.171235, 0.487968, 0.262957, 0.677361, -0.181347, 0.49053, 0.282781, 0.685672, -0.191679, + 0.493862, 0.303311, 0.694551, -0.201781, 0.49699, 0.324607, 0.703753, -0.211164, 0.498884, + 0.347916, 0.713703, -0.219675, 0.500086, 0.372628, 0.725911, -0.227836, 0.501554, 0.398694, + 0.73862, -0.23533, 0.502193, 0.425529, 0.752118, -0.241786, 0.501811, 0.453209, 0.76579, + -0.247865, 0.500185, 0.481381, 0.779568, -0.252696, 0.497159, 0.51011, 0.793991, -0.256802, + 0.492765, 0.539322, 0.808182, -0.259942, 0.486827, 0.569078, 0.821698, -0.261703, 0.478386, + 0.598818, 0.836009, -0.262006, 0.468772, 0.629762, 0.849824, -0.260333, 0.456352, 0.661366, + 0.863888, -0.257398, 0.442533, 0.69295, 0.876585, -0.253264, 0.426573, 0.723608, 0.888665, + -0.248026, 0.408964, 0.754378, 0.899537, -0.241487, 0.389677, 0.784761, 0.9094, -0.233463, + 0.368516, 0.814688, 0.920166, -0.223397, 0.346624, 0.845009, 0.928899, -0.21255, 0.322717, + 0.874431, 0.937156, -0.200869, 0.298698, 0.902922, 0.943861, -0.188387, 0.273491, 0.931356, + 0.949557, -0.174341, 0.247866, 0.958854, 0.955862, -0.158994, 0.222496, 0.986098, 0.961721, + -0.143664, 0.197522, 1.01229, 0.965976, -0.127412, 0.17302, 1.03571, 0.968652, -0.109798, + 0.148954, 1.05699, 0.971084, -0.0916787, 0.125044, 1.07587, 0.975584, -0.0739634, 0.100577, + 1.09372, 0.98122, -0.055322, 0.0753666, 1.10948, 0.988253, -0.0366825, 0.0498899, 1.12394, + 0.99482, -0.0180389, 0.024611, 1.13694, 1.00001, 0.000229839, -0.000188283, 1.14919, 0.613867, + -9.64198e-6, 0.479449, 1.23452e-5, 0.621485, -0.000244534, 0.485399, 0.000313091, 0.621429, + -0.000978202, 0.485353, 0.00125245, 0.62112, -0.00220004, 0.485114, 0.00281687, 0.621119, + -0.0039111, 0.485112, 0.00500783, 0.621122, -0.00611091, 0.485112, 0.00782498, 0.621133, + -0.00879922, 0.485117, 0.0112687, 0.621152, -0.0119756, 0.485125, 0.0153394, 0.621183, -0.0156396, + 0.485139, 0.0200382, 0.621227, -0.0197898, 0.485158, 0.0253663, 0.621298, -0.0244253, 0.485192, + 0.0313261, 0.621388, -0.0295441, 0.485233, 0.0379204, 0.621507, -0.0351432, 0.485286, 0.0451523, + 0.621693, -0.0412198, 0.485378, 0.0530277, 0.621933, -0.0477673, 0.485495, 0.0615522, 0.622232, + -0.0547574, 0.485635, 0.0707316, 0.622809, -0.0619417, 0.485943, 0.0805883, 0.623407, -0.069625, + 0.486232, 0.0911267, 0.62406, -0.077796, 0.486516, 0.102354, 0.624835, -0.0863731, 0.486838, + 0.114279, 0.625758, -0.095251, 0.487188, 0.126902, 0.627043, -0.104299, 0.487695, 0.140285, + 0.628438, -0.113724, 0.488163, 0.154397, 0.630325, -0.123417, 0.488858, 0.169267, 0.632801, + -0.133137, 0.489754, 0.184941, 0.635784, -0.143052, 0.490815, 0.20136, 0.639406, -0.153132, + 0.492048, 0.218643, 0.643872, -0.163143, 0.49363, 0.236615, 0.6499, -0.17333, 0.496009, 0.255449, + 0.657201, -0.183622, 0.498994, 0.275006, 0.666221, -0.194019, 0.502888, 0.295354, 0.674419, + -0.204192, 0.505459, 0.316244, 0.683729, -0.21406, 0.507771, 0.33849, 0.695584, -0.222854, + 0.510245, 0.363166, 0.708583, -0.231315, 0.512293, 0.389071, 0.721233, -0.238911, 0.512747, + 0.415737, 0.735134, -0.245657, 0.512482, 0.443331, 0.750179, -0.251879, 0.511526, 0.471891, + 0.765073, -0.256911, 0.508935, 0.500892, 0.779794, -0.261144, 0.504341, 0.530294, 0.794801, + -0.264316, 0.498515, 0.560144, 0.810339, -0.266276, 0.491015, 0.590213, 0.824818, -0.266981, + 0.481126, 0.620865, 0.839375, -0.265778, 0.468685, 0.652687, 0.853043, -0.262748, 0.453925, + 0.684759, 0.867335, -0.258474, 0.437912, 0.716209, 0.88037, -0.253187, 0.419648, 0.747508, + 0.891711, -0.246476, 0.39982, 0.77797, 0.902896, -0.238735, 0.37879, 0.808586, 0.913601, -0.22885, + 0.355891, 0.838843, 0.923019, -0.217656, 0.331773, 0.869014, 0.933432, -0.205539, 0.307356, + 0.898512, 0.939691, -0.192595, 0.281321, 0.9269, 0.946938, -0.178945, 0.255441, 0.955297, + 0.952372, -0.163587, 0.229013, 0.983231, 0.95909, -0.147214, 0.203179, 1.00971, 0.963675, + -0.13064, 0.17792, 1.03438, 0.968247, -0.113121, 0.152898, 1.05625, 0.97001, -0.0945824, 0.128712, + 1.07598, 0.974458, -0.0755648, 0.103349, 1.094, 0.980168, -0.0571998, 0.0776731, 1.1104, 0.987295, + -0.0377994, 0.0514445, 1.12491, 0.994432, -0.0186417, 0.025429, 1.13851, 0.999975, 0.000542714, + -0.000282356, 1.15108, 0.592656, -9.80249e-6, 0.486018, 1.19532e-5, 0.598467, -0.000247275, + 0.490781, 0.000301531, 0.597934, -0.000988317, 0.490343, 0.00120517, 0.597903, -0.00222366, + 0.490319, 0.0027116, 0.597913, -0.00395315, 0.490327, 0.00482077, 0.597919, -0.00617653, 0.490329, + 0.00753264, 0.597936, -0.00889375, 0.490339, 0.0108478, 0.597956, -0.0121043, 0.490347, 0.0147668, + 0.597992, -0.0158073, 0.490365, 0.0192905, 0.598032, -0.0200017, 0.490382, 0.0244204, 0.598109, + -0.0246865, 0.49042, 0.0301593, 0.598215, -0.0298594, 0.490474, 0.03651, 0.59833, -0.0355167, + 0.490524, 0.0434757, 0.598525, -0.0416559, 0.490624, 0.0510629, 0.598778, -0.0482692, 0.490753, + 0.0592781, 0.599135, -0.0553114, 0.49094, 0.0681304, 0.599802, -0.062542, 0.491328, 0.0776467, + 0.600361, -0.0703638, 0.491598, 0.0878184, 0.60101, -0.0786256, 0.491882, 0.0986573, 0.601811, + -0.0872962, 0.492232, 0.11018, 0.602861, -0.0962284, 0.492684, 0.1224, 0.604167, -0.10538, + 0.493213, 0.135354, 0.605693, -0.114896, 0.493799, 0.149034, 0.607682, -0.124654, 0.494576, + 0.163469, 0.610672, -0.13456, 0.4959, 0.178747, 0.613313, -0.144581, 0.496713, 0.194723, 0.617603, + -0.154703, 0.498499, 0.211617, 0.622174, -0.16489, 0.500188, 0.229183, 0.628855, -0.175164, + 0.503072, 0.247786, 0.636963, -0.185565, 0.506798, 0.267116, 0.644866, -0.195911, 0.509719, + 0.28702, 0.653741, -0.206104, 0.512776, 0.307763, 0.664942, -0.216447, 0.516812, 0.329631, + 0.67633, -0.22552, 0.519181, 0.353515, 0.690012, -0.234316, 0.521681, 0.379226, 0.704243, + -0.242032, 0.523129, 0.405901, 0.719396, -0.249172, 0.523768, 0.433585, 0.734471, -0.255543, + 0.522541, 0.462085, 0.750539, -0.260697, 0.520217, 0.491233, 0.766365, -0.26501, 0.516293, + 0.521094, 0.781677, -0.268409, 0.509708, 0.551014, 0.797132, -0.270399, 0.501944, 0.581463, + 0.812655, -0.271247, 0.492025, 0.612402, 0.828592, -0.270708, 0.480424, 0.643798, 0.844044, + -0.268085, 0.465955, 0.67682, 0.857305, -0.263459, 0.448425, 0.708496, 0.87114, -0.258151, + 0.430243, 0.74046, 0.884936, -0.251171, 0.410578, 0.771583, 0.895772, -0.243305, 0.38862, + 0.802234, 0.906961, -0.234037, 0.365214, 0.833179, 0.917775, -0.222714, 0.34116, 0.86353, + 0.927883, -0.210175, 0.31572, 0.893557, 0.936617, -0.196925, 0.289159, 0.922976, 0.943384, + -0.182788, 0.261996, 0.951606, 0.949713, -0.167965, 0.235324, 0.979958, 0.955818, -0.151109, + 0.208408, 1.00765, 0.961344, -0.133834, 0.182591, 1.03329, 0.965469, -0.115987, 0.156958, 1.0557, + 0.968693, -0.09746, 0.132239, 1.07583, 0.973165, -0.0778514, 0.106195, 1.09451, 0.979387, + -0.0585067, 0.0797669, 1.11137, 0.98671, -0.0390409, 0.0530263, 1.12643, 0.994093, -0.019408, + 0.0263163, 1.14016, 1.00002, 0.000540029, -0.000194487, 1.15299, 0.574483, -9.89066e-6, 0.494533, + 1.14896e-5, 0.574478, -0.000249127, 0.494528, 0.000289403, 0.574607, -0.000996811, 0.494637, + 0.00115797, 0.574396, -0.00224241, 0.494458, 0.00260498, 0.574377, -0.00398632, 0.49444, + 0.00463102, 0.574386, -0.00622836, 0.494445, 0.00723623, 0.574401, -0.0089683, 0.494453, 0.010421, + 0.574419, -0.0122056, 0.49446, 0.0141859, 0.574459, -0.0159396, 0.494481, 0.0185322, 0.574525, + -0.0201692, 0.49452, 0.0234617, 0.574587, -0.0248924, 0.494547, 0.0289762, 0.574697, -0.0301074, + 0.494604, 0.0350797, 0.574853, -0.0358114, 0.494688, 0.0417767, 0.575027, -0.041999, 0.494772, + 0.0490718, 0.575294, -0.0486618, 0.494915, 0.0569728, 0.575733, -0.0557148, 0.495173, 0.0654955, + 0.576356, -0.0630489, 0.495537, 0.0746612, 0.576944, -0.0709285, 0.495836, 0.0844615, 0.57765, + -0.0792723, 0.496177, 0.0949142, 0.578491, -0.0880167, 0.496563, 0.10603, 0.579639, -0.0969462, + 0.497096, 0.117841, 0.580989, -0.10622, 0.497684, 0.130367, 0.582587, -0.115861, 0.498337, + 0.143609, 0.584951, -0.125605, 0.499414, 0.157625, 0.587602, -0.135608, 0.500518, 0.172413, + 0.59076, -0.145742, 0.501767, 0.187999, 0.594992, -0.155934, 0.503542, 0.20445, 0.600656, + -0.166303, 0.506135, 0.221764, 0.607816, -0.176681, 0.509542, 0.24002, 0.61522, -0.187071, + 0.51263, 0.258992, 0.623702, -0.197465, 0.516021, 0.278773, 0.634192, -0.207816, 0.520422, + 0.299377, 0.644936, -0.218183, 0.524073, 0.320802, 0.657888, -0.2278, 0.528049, 0.34384, 0.670666, + -0.236747, 0.52986, 0.36916, 0.685626, -0.24484, 0.531892, 0.395867, 0.701304, -0.252071, + 0.532727, 0.423488, 0.717727, -0.258714, 0.532146, 0.452201, 0.733914, -0.264211, 0.529883, + 0.481579, 0.750529, -0.26859, 0.5259, 0.511558, 0.76747, -0.272046, 0.51999, 0.542042, 0.785189, + -0.274225, 0.513083, 0.572799, 0.800954, -0.275189, 0.502936, 0.603816, 0.816962, -0.274946, + 0.490921, 0.635461, 0.83336, -0.272695, 0.47684, 0.6676, 0.848143, -0.268223, 0.459405, 0.70051, + 0.861818, -0.262768, 0.440319, 0.732902, 0.876828, -0.255872, 0.420123, 0.765084, 0.889312, + -0.247703, 0.398379, 0.796391, 0.900412, -0.238381, 0.374496, 0.827333, 0.912251, -0.227783, + 0.349874, 0.858385, 0.921792, -0.214832, 0.323181, 0.888652, 0.931273, -0.200949, 0.296624, + 0.917763, 0.940295, -0.186537, 0.269211, 0.947878, 0.946812, -0.171538, 0.241447, 0.977016, + 0.953588, -0.155254, 0.213829, 1.00501, 0.958841, -0.137156, 0.186807, 1.03179, 0.963746, + -0.118699, 0.160706, 1.05502, 0.966468, -0.0998358, 0.135504, 1.07568, 0.971178, -0.0805186, + 0.109131, 1.09479, 0.97831, -0.0599348, 0.0818293, 1.1123, 0.985886, -0.0399661, 0.0545872, + 1.12771, 0.994021, -0.0198682, 0.0269405, 1.14186, 1.00009, 0.000271022, -0.00012989, 1.15514, + 0.538716, -9.90918e-6, 0.486732, 1.09675e-5, 0.550656, -0.000250642, 0.497518, 0.000277412, + 0.55057, -0.00100265, 0.497441, 0.00110974, 0.550903, -0.00225672, 0.497733, 0.00249779, 0.550568, + -0.00401046, 0.497438, 0.00443906, 0.550574, -0.00626613, 0.49744, 0.00693637, 0.550591, + -0.0090226, 0.497449, 0.00998921, 0.550623, -0.0122795, 0.497469, 0.0135984, 0.550667, -0.0160361, + 0.497495, 0.0177654, 0.550724, -0.0202908, 0.497526, 0.0224915, 0.550792, -0.0250421, 0.497557, + 0.0277795, 0.550918, -0.0302878, 0.49763, 0.0336334, 0.551058, -0.0360241, 0.497701, 0.0400573, + 0.551276, -0.0422473, 0.497824, 0.0470585, 0.551551, -0.0489441, 0.497977, 0.0546433, 0.552074, + -0.0559596, 0.498312, 0.0628367, 0.552681, -0.0633978, 0.498679, 0.071646, 0.553324, -0.0713176, + 0.499031, 0.0810746, 0.554011, -0.0797268, 0.499365, 0.091129, 0.55488, -0.0885238, 0.499779, + 0.101837, 0.556171, -0.0974417, 0.500444, 0.113239, 0.557498, -0.106841, 0.501025, 0.125316, + 0.559299, -0.116533, 0.501864, 0.138128, 0.561647, -0.126298, 0.502967, 0.151695, 0.564347, + -0.136388, 0.504129, 0.16604, 0.567863, -0.146576, 0.505713, 0.181207, 0.572569, -0.156832, + 0.507953, 0.197259, 0.578919, -0.167323, 0.511186, 0.214258, 0.585387, -0.177712, 0.514042, + 0.232038, 0.593134, -0.188184, 0.517484, 0.250733, 0.603295, -0.198717, 0.522345, 0.270454, + 0.613854, -0.209177, 0.526751, 0.290807, 0.626092, -0.219644, 0.531595, 0.312202, 0.637868, + -0.229494, 0.534721, 0.334435, 0.652458, -0.238718, 0.538304, 0.359184, 0.666985, -0.247061, + 0.539875, 0.385637, 0.683301, -0.254652, 0.541042, 0.41328, 0.69998, -0.261376, 0.540735, + 0.441903, 0.717824, -0.267085, 0.539139, 0.471609, 0.734617, -0.271465, 0.534958, 0.501446, + 0.753663, -0.27528, 0.53032, 0.532571, 0.770512, -0.277617, 0.522134, 0.563641, 0.787356, + -0.278525, 0.51206, 0.595067, 0.806252, -0.278512, 0.50119, 0.627226, 0.822061, -0.277023, + 0.486791, 0.659402, 0.838959, -0.273175, 0.470467, 0.692874, 0.85379, -0.267238, 0.450688, + 0.725702, 0.868268, -0.260327, 0.429741, 0.75832, 0.881994, -0.251946, 0.407223, 0.790189, + 0.893885, -0.242432, 0.383214, 0.821625, 0.905118, -0.231904, 0.357297, 0.853011, 0.916045, + -0.219545, 0.330733, 0.883773, 0.927614, -0.205378, 0.303916, 0.914435, 0.936005, -0.190388, + 0.275941, 0.944502, 0.944533, -0.1749, 0.247493, 0.974439, 0.950758, -0.158588, 0.218996, 1.00286, + 0.957078, -0.141027, 0.191559, 1.0304, 0.962448, -0.121507, 0.164457, 1.05466, 0.964993, + -0.102068, 0.138636, 1.0761, 0.970017, -0.0822598, 0.111861, 1.09541, 0.97661, -0.062033, + 0.0843438, 1.11317, 0.985073, -0.0409832, 0.0558496, 1.12911, 0.993515, -0.020146, 0.0275331, + 1.1438, 1.00006, 0.00027329, -0.000107883, 1.15736, 0.525324, -9.99341e-6, 0.498153, 1.05385e-5, + 0.526513, -0.000251605, 0.499277, 0.000265329, 0.526517, -0.00100641, 0.499282, 0.0010613, + 0.526588, -0.00226466, 0.499337, 0.00238823, 0.526539, -0.0040255, 0.499302, 0.00424535, 0.526547, + -0.00628954, 0.499306, 0.00663364, 0.526561, -0.00905628, 0.499313, 0.00955337, 0.526593, + -0.0123253, 0.499334, 0.0130054, 0.526642, -0.0160957, 0.499365, 0.0169911, 0.5267, -0.0203661, + 0.499396, 0.0215122, 0.526792, -0.0251347, 0.499451, 0.0265718, 0.526904, -0.0303985, 0.499511, + 0.0321732, 0.527079, -0.0361554, 0.499617, 0.0383231, 0.527285, -0.0423982, 0.499731, 0.045026, + 0.527602, -0.0491121, 0.499924, 0.0522936, 0.528166, -0.0561127, 0.500306, 0.0601528, 0.52879, + -0.0635988, 0.5007, 0.0686059, 0.529421, -0.071581, 0.501048, 0.0776518, 0.530144, -0.0799854, + 0.501421, 0.0873148, 0.531062, -0.0888032, 0.501884, 0.0976084, 0.532374, -0.0977643, 0.50259, + 0.108588, 0.533828, -0.107197, 0.50329, 0.120234, 0.53581, -0.116887, 0.504312, 0.132602, + 0.538063, -0.126755, 0.505365, 0.145721, 0.5409, -0.136819, 0.506668, 0.159617, 0.544882, + -0.147117, 0.508731, 0.174369, 0.550238, -0.157446, 0.511601, 0.190028, 0.556038, -0.167988, + 0.514431, 0.206587, 0.563031, -0.178364, 0.517808, 0.224046, 0.571543, -0.189007, 0.521937, + 0.242503, 0.582255, -0.199546, 0.527415, 0.261977, 0.59272, -0.210084, 0.531682, 0.282162, + 0.605648, -0.220448, 0.537123, 0.303426, 0.61785, -0.230593, 0.540664, 0.325323, 0.632223, + -0.240238, 0.544467, 0.348993, 0.648819, -0.24887, 0.547594, 0.375462, 0.665825, -0.256657, + 0.54912, 0.403024, 0.683389, -0.263711, 0.549294, 0.431773, 0.701495, -0.269666, 0.547649, + 0.461494, 0.719197, -0.274169, 0.543786, 0.491623, 0.737906, -0.278124, 0.538644, 0.522994, + 0.756652, -0.280632, 0.531057, 0.554775, 0.775279, -0.281741, 0.521972, 0.586441, 0.792688, + -0.281652, 0.509613, 0.618596, 0.811894, -0.280345, 0.496497, 0.651462, 0.827938, -0.277128, + 0.47968, 0.684023, 0.844837, -0.271646, 0.460688, 0.718024, 0.859239, -0.264397, 0.438872, + 0.751207, 0.874088, -0.256144, 0.41577, 0.784232, 0.887693, -0.246311, 0.391369, 0.816191, + 0.899402, -0.235497, 0.365872, 0.847828, 0.910973, -0.223631, 0.338618, 0.87934, 0.92204, + -0.209874, 0.310803, 0.910325, 0.930987, -0.194265, 0.281802, 0.940695, 0.94, -0.178125, 0.252836, + 0.970958, 0.948018, -0.161479, 0.224239, 1.00078, 0.955141, -0.144038, 0.195857, 1.0288, 0.960513, + -0.124915, 0.168487, 1.05371, 0.963964, -0.104284, 0.141495, 1.07596, 0.968713, -0.0838732, + 0.114437, 1.09628, 0.975524, -0.0635579, 0.0863105, 1.11448, 0.98431, -0.042291, 0.0574774, + 1.13069, 0.992916, -0.0209131, 0.0284343, 1.14568, 0.999926, 0.000743097, -0.000379265, 1.15955, + 0.501042, -9.98428e-6, 0.498726, 1.00306e-5, 0.502992, -0.000252112, 0.500665, 0.000253283, + 0.502417, -0.00100791, 0.500092, 0.00101259, 0.502965, -0.00226919, 0.500621, 0.00227978, + 0.502318, -0.00403109, 0.499994, 0.00405011, 0.502333, -0.00629832, 0.500005, 0.00632868, + 0.502362, -0.00906907, 0.500027, 0.00911446, 0.502369, -0.0123423, 0.500023, 0.0124078, 0.50243, + -0.0161178, 0.500066, 0.016211, 0.502493, -0.0203937, 0.500103, 0.0205256, 0.502592, -0.0251684, + 0.500166, 0.0253548, 0.502707, -0.0304389, 0.50023, 0.0307029, 0.502881, -0.0362015, 0.500335, + 0.0365753, 0.503124, -0.0424507, 0.500488, 0.0429798, 0.503443, -0.0491582, 0.500686, 0.0499268, + 0.504083, -0.0561476, 0.501155, 0.0574541, 0.504668, -0.0636846, 0.501524, 0.0655408, 0.505319, + -0.0716834, 0.501904, 0.0742072, 0.50609, -0.0800925, 0.502321, 0.0834699, 0.507122, -0.0888425, + 0.502896, 0.0933603, 0.508414, -0.097855, 0.503603, 0.10391, 0.509955, -0.107304, 0.504416, + 0.115113, 0.512061, -0.116921, 0.505565, 0.127054, 0.514419, -0.12689, 0.506732, 0.139709, + 0.517529, -0.136934, 0.508338, 0.153173, 0.522085, -0.147327, 0.510987, 0.167528, 0.526986, + -0.157612, 0.513527, 0.182708, 0.533122, -0.168213, 0.516717, 0.198881, 0.540807, -0.178688, + 0.520832, 0.215986, 0.550687, -0.189511, 0.52632, 0.234335, 0.560567, -0.199998, 0.531009, + 0.253375, 0.571698, -0.210652, 0.535839, 0.273499, 0.584364, -0.220917, 0.541091, 0.294355, + 0.599066, -0.23137, 0.546875, 0.316525, 0.614148, -0.241206, 0.551306, 0.339671, 0.631157, + -0.250379, 0.555187, 0.36531, 0.647919, -0.258397, 0.556595, 0.392767, 0.666112, -0.265528, + 0.556949, 0.421397, 0.686158, -0.271827, 0.556617, 0.451433, 0.704838, -0.27674, 0.552975, + 0.482131, 0.723957, -0.280733, 0.547814, 0.513458, 0.74262, -0.283359, 0.53997, 0.545446, + 0.762009, -0.284541, 0.530422, 0.57775, 0.781314, -0.284507, 0.518546, 0.610434, 0.799116, + -0.283309, 0.504178, 0.643178, 0.817604, -0.280378, 0.48843, 0.676248, 0.83459, -0.275619, + 0.469457, 0.709698, 0.850974, -0.26856, 0.447698, 0.744245, 0.866747, -0.260094, 0.424791, + 0.777695, 0.881412, -0.249929, 0.399913, 0.810392, 0.8936, -0.239137, 0.37308, 0.842872, 0.905943, + -0.226818, 0.345705, 0.874677, 0.916408, -0.213699, 0.31706, 0.906257, 0.927215, -0.198428, + 0.288444, 0.936881, 0.935625, -0.181643, 0.258329, 0.96795, 0.944076, -0.164386, 0.228488, + 0.998216, 0.951229, -0.146339, 0.199763, 1.02689, 0.958793, -0.127709, 0.172153, 1.0535, 0.963219, + -0.107244, 0.144989, 1.07646, 0.967562, -0.0857764, 0.11685, 1.09675, 0.974866, -0.0645377, + 0.0880571, 1.11576, 0.983353, -0.0431732, 0.0587352, 1.13227, 0.992503, -0.0218356, 0.0294181, + 1.1478, 1.00003, 0.000605203, -0.000231013, 1.16207, 0.482935, -1.01177e-5, 0.504695, 9.68142e-6, + 0.477554, -0.000251521, 0.499071, 0.000240676, 0.477904, -0.00100683, 0.499436, 0.00096342, + 0.478368, -0.00226636, 0.499899, 0.0021687, 0.477977, -0.00402719, 0.499513, 0.00385384, 0.477993, + -0.00629226, 0.499525, 0.0060221, 0.478011, -0.00906011, 0.499536, 0.00867289, 0.478051, + -0.0123305, 0.499566, 0.0118074, 0.478089, -0.016102, 0.499587, 0.0154269, 0.478171, -0.0203736, + 0.499645, 0.0195341, 0.478254, -0.025143, 0.499692, 0.0241318, 0.47839, -0.0304071, 0.499779, + 0.0292247, 0.478588, -0.0361631, 0.499911, 0.0348196, 0.478812, -0.0424023, 0.500046, 0.0409231, + 0.479208, -0.0490724, 0.500326, 0.047552, 0.479841, -0.0560722, 0.500805, 0.0547377, 0.480392, + -0.0636125, 0.501152, 0.0624607, 0.481068, -0.0716134, 0.501561, 0.0707473, 0.481898, -0.0800062, + 0.502054, 0.0796118, 0.483022, -0.0886568, 0.502728, 0.0890974, 0.484332, -0.0977553, 0.503479, + 0.0992099, 0.486126, -0.107173, 0.504546, 0.10999, 0.488066, -0.11677, 0.50557, 0.121476, + 0.490521, -0.126725, 0.506849, 0.133672, 0.494232, -0.136793, 0.50911, 0.146731, 0.498302, + -0.147116, 0.511345, 0.160577, 0.503565, -0.157446, 0.514344, 0.175335, 0.510902, -0.168121, + 0.518824, 0.191207, 0.519263, -0.178799, 0.523666, 0.208058, 0.528204, -0.189407, 0.528296, + 0.225875, 0.538854, -0.200145, 0.533724, 0.244782, 0.551278, -0.210701, 0.539833, 0.264753, + 0.565222, -0.221303, 0.546131, 0.285745, 0.579403, -0.231688, 0.551496, 0.307592, 0.595469, + -0.241718, 0.556809, 0.330582, 0.610929, -0.250992, 0.559641, 0.354995, 0.629433, -0.259602, + 0.562379, 0.382471, 0.648504, -0.267038, 0.563676, 0.411126, 0.66756, -0.273388, 0.562092, + 0.440924, 0.689143, -0.278788, 0.560807, 0.472118, 0.709056, -0.282783, 0.555701, 0.503774, + 0.729855, -0.285836, 0.548698, 0.536364, 0.748954, -0.287078, 0.538544, 0.56895, 0.768373, + -0.287133, 0.526711, 0.601991, 0.78827, -0.285839, 0.512511, 0.635403, 0.807465, -0.283238, + 0.496323, 0.668797, 0.825194, -0.27906, 0.477638, 0.702584, 0.842203, -0.272286, 0.456253, + 0.736393, 0.857749, -0.263854, 0.432412, 0.77096, 0.874799, -0.253943, 0.407806, 0.80489, + 0.887497, -0.24237, 0.38033, 0.83771, 0.89966, -0.230278, 0.352446, 0.870376, 0.911753, -0.21646, + 0.323268, 0.902256, 0.923011, -0.202071, 0.294314, 0.933306, 0.932375, -0.185519, 0.264104, + 0.965177, 0.940537, -0.167604, 0.234035, 0.996303, 0.948904, -0.149068, 0.20412, 1.0261, 0.955263, + -0.129539, 0.175431, 1.05304, 0.960303, -0.109932, 0.148116, 1.07617, 0.965512, -0.0880572, + 0.119693, 1.09742, 0.973466, -0.0660548, 0.0901619, 1.11721, 0.98284, -0.0439228, 0.0599875, + 1.13436, 0.992216, -0.0219588, 0.0298975, 1.15006, 0.999946, 0.000119402, -2.08547e-5, 1.16471, + 0.447827, -1.00414e-5, 0.491543, 9.14833e-6, 0.454778, -0.000251257, 0.499172, 0.00022891, + 0.453519, -0.00100342, 0.497787, 0.000914184, 0.45357, -0.00225776, 0.497847, 0.00205701, + 0.453578, -0.00401371, 0.497855, 0.00365705, 0.45357, -0.00627107, 0.497841, 0.00571453, 0.453598, + -0.00902968, 0.497864, 0.00823019, 0.453627, -0.0122888, 0.497882, 0.0112049, 0.453684, + -0.0160475, 0.497923, 0.0146405, 0.453764, -0.0203044, 0.49798, 0.0185394, 0.453866, -0.0250576, + 0.498049, 0.0229054, 0.453996, -0.0303028, 0.49813, 0.0277424, 0.454196, -0.0360379, 0.498267, + 0.0330587, 0.454457, -0.0422521, 0.498445, 0.0388613, 0.454926, -0.0488393, 0.498812, 0.0451767, + 0.455525, -0.0558653, 0.499272, 0.0520153, 0.456074, -0.0633772, 0.499625, 0.0593754, 0.456752, + -0.0713606, 0.500049, 0.0672751, 0.457648, -0.07971, 0.500615, 0.0757447, 0.458849, -0.0883032, + 0.501399, 0.0848231, 0.46029, -0.0974095, 0.502293, 0.0945135, 0.462, -0.106729, 0.503301, + 0.104848, 0.464121, -0.116354, 0.504533, 0.115884, 0.466889, -0.126214, 0.506172, 0.127652, + 0.470744, -0.136324, 0.508667, 0.14024, 0.47488, -0.146595, 0.510995, 0.153673, 0.480845, + -0.157027, 0.514832, 0.168053, 0.488262, -0.167658, 0.519506, 0.183508, 0.496547, -0.178343, + 0.524347, 0.199948, 0.506254, -0.188916, 0.52983, 0.217503, 0.517961, -0.199975, 0.536357, + 0.236272, 0.531484, -0.210624, 0.543641, 0.256096, 0.545496, -0.221227, 0.550048, 0.277085, + 0.559497, -0.231568, 0.555076, 0.298615, 0.575752, -0.241698, 0.560541, 0.321547, 0.591999, + -0.251172, 0.564156, 0.345602, 0.610654, -0.260178, 0.567607, 0.371851, 0.630484, -0.268094, + 0.56923, 0.40076, 0.651807, -0.274661, 0.569779, 0.430801, 0.67239, -0.280331, 0.566791, 0.461939, + 0.693024, -0.284501, 0.562007, 0.493854, 0.715473, -0.287852, 0.555791, 0.526992, 0.736323, + -0.28929, 0.546345, 0.560102, 0.755771, -0.289405, 0.534, 0.593543, 0.775424, -0.2881, 0.519114, + 0.627256, 0.795447, -0.285562, 0.502543, 0.661464, 0.815319, -0.281416, 0.484773, 0.695206, + 0.831769, -0.275523, 0.463445, 0.729044, 0.849464, -0.267516, 0.440269, 0.764069, 0.866775, + -0.257584, 0.415049, 0.799089, 0.881252, -0.245817, 0.388049, 0.831948, 0.894209, -0.233127, + 0.35889, 0.865526, 0.906922, -0.219579, 0.329915, 0.89818, 0.919686, -0.204491, 0.300441, + 0.930013, 0.929044, -0.188962, 0.269445, 0.962061, 0.938393, -0.171079, 0.238402, 0.994214, + 0.94661, -0.15199, 0.208204, 1.02533, 0.953095, -0.131953, 0.178653, 1.0529, 0.958644, -0.111233, + 0.150684, 1.0771, 0.963925, -0.0903098, 0.122359, 1.09855, 0.971995, -0.0680505, 0.0923342, + 1.11874, 0.981658, -0.0448512, 0.0614195, 1.13635, 0.991649, -0.0221931, 0.0303582, 1.15238, + 0.999985, 0.000393403, -0.000111086, 1.16772, 0.396806, -9.71563e-6, 0.457671, 8.42355e-6, + 0.429186, -0.000249421, 0.495017, 0.00021625, 0.429324, -0.000998052, 0.495173, 0.000865322, + 0.429175, -0.00224487, 0.494999, 0.00194637, 0.429129, -0.00399041, 0.494952, 0.00346004, + 0.429153, -0.00623476, 0.494974, 0.00540684, 0.429168, -0.0089773, 0.494983, 0.00778714, 0.429207, + -0.0122175, 0.495012, 0.0106022, 0.429257, -0.0159542, 0.495047, 0.0138535, 0.429338, -0.0201864, + 0.495106, 0.0175443, 0.429431, -0.0249104, 0.495165, 0.0216774, 0.429587, -0.0301252, 0.495279, + 0.0262594, 0.429796, -0.0358249, 0.495432, 0.0312968, 0.430065, -0.0419972, 0.495621, 0.0367985, + 0.430588, -0.0485144, 0.496061, 0.042798, 0.43113, -0.0555028, 0.496472, 0.0492914, 0.431743, + -0.0629852, 0.496904, 0.0562907, 0.432448, -0.0709256, 0.497369, 0.0638056, 0.433414, -0.0791942, + 0.498032, 0.071885, 0.434638, -0.0877346, 0.498854, 0.0805517, 0.43611, -0.0968056, 0.499812, + 0.0898047, 0.437859, -0.106002, 0.500891, 0.0997142, 0.440017, -0.115648, 0.502198, 0.110289, + 0.443236, -0.125427, 0.504389, 0.121644, 0.44697, -0.135492, 0.506809, 0.133769, 0.451689, + -0.145746, 0.509858, 0.146787, 0.45811, -0.156219, 0.514247, 0.160793, 0.465305, -0.166834, + 0.518816, 0.175791, 0.474085, -0.177546, 0.524331, 0.191906, 0.484808, -0.188262, 0.53104, + 0.209199, 0.49732, -0.199346, 0.538511, 0.227825, 0.509693, -0.209951, 0.544554, 0.247269, + 0.524367, -0.220533, 0.551616, 0.267978, 0.539228, -0.231082, 0.557368, 0.289672, 0.55644, + -0.241342, 0.563782, 0.31268, 0.574204, -0.250964, 0.568851, 0.33651, 0.593388, -0.260306, + 0.57312, 0.362219, 0.613358, -0.268667, 0.574916, 0.390322, 0.634512, -0.275591, 0.575053, + 0.420478, 0.65563, -0.281328, 0.572404, 0.451614, 0.678265, -0.285948, 0.568893, 0.484112, + 0.70011, -0.289408, 0.561878, 0.517348, 0.723005, -0.291328, 0.55359, 0.551355, 0.743744, + -0.291418, 0.541099, 0.585109, 0.763949, -0.290252, 0.526489, 0.619487, 0.784186, -0.287648, + 0.509496, 0.65404, 0.804304, -0.283782, 0.491484, 0.688649, 0.823629, -0.278067, 0.470517, + 0.723133, 0.84094, -0.270588, 0.44705, 0.757163, 0.857852, -0.261188, 0.421252, 0.792816, + 0.874934, -0.249313, 0.394191, 0.827248, 0.888709, -0.236492, 0.365359, 0.861074, 0.902589, + -0.222185, 0.336016, 0.894417, 0.914201, -0.207314, 0.30527, 0.926825, 0.925978, -0.191146, + 0.274532, 0.9595, 0.93512, -0.174135, 0.243393, 0.991583, 0.943656, -0.155231, 0.212414, 1.02356, + 0.951719, -0.134403, 0.182005, 1.05239, 0.957164, -0.113023, 0.153043, 1.07754, 0.962656, + -0.0914493, 0.124186, 1.09984, 0.970695, -0.0694179, 0.0941654, 1.12, 0.980749, -0.0466199, + 0.0629671, 1.13849, 0.991205, -0.0227032, 0.0311146, 1.15494, 0.999884, 0.000632388, -0.000254483, + 1.1706, 0.379821, -9.57289e-6, 0.460637, 7.89337e-6, 0.405188, -0.000247483, 0.491396, + 0.000204064, 0.404796, -0.000989434, 0.490914, 0.000815853, 0.40483, -0.00222607, 0.490949, + 0.00183559, 0.40473, -0.00395723, 0.49084, 0.00326332, 0.404731, -0.00618287, 0.490836, + 0.00509945, 0.404768, -0.00890258, 0.490871, 0.00734463, 0.404791, -0.0121156, 0.490883, + 0.00999992, 0.404857, -0.0158214, 0.490938, 0.0130676, 0.404943, -0.0200178, 0.491004, 0.0165503, + 0.405059, -0.0247027, 0.491093, 0.0204521, 0.405213, -0.0298729, 0.491205, 0.0247788, 0.405399, + -0.0355226, 0.491333, 0.0295373, 0.405731, -0.0416352, 0.491604, 0.034741, 0.406303, -0.0480807, + 0.492116, 0.0404255, 0.406814, -0.0550458, 0.492506, 0.0465732, 0.407404, -0.0624652, 0.492926, + 0.0532058, 0.408149, -0.0702958, 0.493442, 0.0603442, 0.409128, -0.0784623, 0.494136, 0.0680297, + 0.410408, -0.087007, 0.495054, 0.0762786, 0.411813, -0.0959639, 0.495962, 0.0851046, 0.413735, + -0.105075, 0.497257, 0.0945878, 0.416137, -0.114646, 0.498882, 0.104725, 0.41934, -0.124394, + 0.501132, 0.11563, 0.423326, -0.134328, 0.503883, 0.127325, 0.428419, -0.14458, 0.50747, 0.139911, + 0.43484, -0.154979, 0.511964, 0.153481, 0.442641, -0.165628, 0.517328, 0.168114, 0.452511, + -0.176365, 0.524258, 0.183995, 0.463473, -0.187298, 0.531248, 0.200953, 0.475564, -0.198244, + 0.538367, 0.219176, 0.488664, -0.208938, 0.545175, 0.238514, 0.504073, -0.219599, 0.553227, + 0.259129, 0.520832, -0.230378, 0.560653, 0.280997, 0.538455, -0.240703, 0.567523, 0.303821, + 0.55709, -0.250548, 0.573287, 0.327948, 0.576646, -0.259964, 0.577795, 0.353362, 0.596705, + -0.268721, 0.580077, 0.380336, 0.618053, -0.276054, 0.58018, 0.4101, 0.640303, -0.282176, + 0.578747, 0.44161, 0.662365, -0.286931, 0.574294, 0.474106, 0.684542, -0.290521, 0.567035, + 0.507549, 0.707984, -0.292672, 0.558687, 0.541853, 0.730913, -0.293189, 0.547606, 0.576581, + 0.752948, -0.292199, 0.533471, 0.61172, 0.773452, -0.289508, 0.516395, 0.646339, 0.794715, + -0.285716, 0.497873, 0.682131, 0.814251, -0.280051, 0.476845, 0.716396, 0.833057, -0.272873, + 0.453449, 0.751503, 0.84959, -0.263982, 0.427857, 0.786085, 0.867022, -0.252745, 0.400335, + 0.821355, 0.882277, -0.239655, 0.371304, 0.85646, 0.895375, -0.225386, 0.340397, 0.890828, + 0.909347, -0.209587, 0.310005, 0.923532, 0.921885, -0.193433, 0.2796, 0.956419, 0.932127, + -0.176135, 0.247276, 0.989445, 0.941869, -0.157872, 0.216186, 1.02221, 0.949735, -0.137577, + 0.185602, 1.05195, 0.956617, -0.115285, 0.155767, 1.07822, 0.961974, -0.0928418, 0.126103, + 1.10149, 0.96972, -0.0700592, 0.0956758, 1.12207, 0.98012, -0.0474671, 0.0643269, 1.1408, + 0.990825, -0.0238113, 0.0320863, 1.1577, 0.999876, 0.000381574, -8.12203e-5, 1.17403, 0.367636, + -9.61342e-6, 0.469176, 7.53287e-6, 0.380377, -0.000244772, 0.485434, 0.000191797, 0.380416, + -0.000978857, 0.485475, 0.000767015, 0.380376, -0.00220165, 0.485435, 0.00172522, 0.380419, + -0.00391408, 0.485487, 0.00306734, 0.380438, -0.00611549, 0.485505, 0.00479332, 0.380462, + -0.00880558, 0.485525, 0.00690391, 0.380496, -0.0119837, 0.485551, 0.00940039, 0.38056, + -0.0156487, 0.485605, 0.0122848, 0.38064, -0.0197988, 0.485666, 0.0155601, 0.380767, -0.0244324, + 0.48577, 0.0192313, 0.380909, -0.0295444, 0.485871, 0.0233032, 0.381142, -0.0351321, 0.48606, + 0.0277861, 0.381472, -0.0411535, 0.486336, 0.0326939, 0.382015, -0.0475408, 0.486833, 0.0380565, + 0.382523, -0.0544395, 0.487231, 0.0438615, 0.383129, -0.061784, 0.487683, 0.0501332, 0.383952, + -0.0695085, 0.488313, 0.0568996, 0.38498, -0.0775819, 0.489077, 0.0641952, 0.386331, -0.0860443, + 0.490113, 0.0720324, 0.387788, -0.0948406, 0.491099, 0.0804379, 0.389808, -0.103899, 0.492566, + 0.0894899, 0.39252, -0.113313, 0.494601, 0.0992098, 0.395493, -0.123007, 0.496619, 0.109641, + 0.399826, -0.132859, 0.499912, 0.120919, 0.405341, -0.143077, 0.504061, 0.133107, 0.411932, + -0.153465, 0.508905, 0.146263, 0.420591, -0.164108, 0.515482, 0.160544, 0.43101, -0.174893, + 0.523191, 0.176123, 0.441881, -0.185839, 0.53026, 0.192757, 0.453919, -0.196633, 0.537295, + 0.210535, 0.468715, -0.207611, 0.546156, 0.229886, 0.485182, -0.218517, 0.555173, 0.250543, + 0.501926, -0.229249, 0.562728, 0.27221, 0.51785, -0.239481, 0.567494, 0.294892, 0.536947, + -0.249395, 0.573889, 0.318987, 0.557115, -0.259, 0.578831, 0.344348, 0.577966, -0.268075, + 0.582055, 0.371223, 0.599489, -0.276115, 0.583307, 0.399834, 0.62479, -0.282523, 0.583902, + 0.431415, 0.647504, -0.287663, 0.57953, 0.464301, 0.670601, -0.291538, 0.573103, 0.498123, + 0.693539, -0.293842, 0.563731, 0.532662, 0.717385, -0.294681, 0.553169, 0.567925, 0.741533, + -0.293717, 0.539908, 0.603502, 0.762142, -0.291156, 0.521902, 0.639074, 0.783014, -0.28719, + 0.502815, 0.674439, 0.805158, -0.281773, 0.482598, 0.710497, 0.823646, -0.274682, 0.458949, + 0.7456, 0.841879, -0.266184, 0.433129, 0.781085, 0.859515, -0.255682, 0.406064, 0.816, 0.875335, + -0.242849, 0.376509, 0.851074, 0.890147, -0.228329, 0.345502, 0.886473, 0.903144, -0.212491, + 0.31428, 0.920751, 0.916618, -0.195695, 0.282994, 0.954606, 0.927953, -0.178267, 0.251091, + 0.988402, 0.937414, -0.159549, 0.219107, 1.02141, 0.946823, -0.140022, 0.18896, 1.05167, 0.954651, + -0.118154, 0.158667, 1.07819, 0.959955, -0.0946636, 0.128808, 1.1025, 0.96858, -0.0711792, + 0.0973787, 1.12391, 0.97938, -0.0475046, 0.0650965, 1.14322, 0.990498, -0.024059, 0.0326267, + 1.16077, 0.999844, -5.12408e-5, 0.000112444, 1.17727, 0.316912, -9.34977e-6, 0.425996, 6.95559e-6, + 0.356423, -0.000241372, 0.479108, 0.000179562, 0.356272, -0.000965292, 0.478897, 0.00071811, + 0.356262, -0.00217182, 0.478894, 0.00161574, 0.356265, -0.00386092, 0.478895, 0.00287261, + 0.356278, -0.0060324, 0.478905, 0.00448907, 0.356293, -0.00868565, 0.478914, 0.00646572, 0.356346, + -0.0118207, 0.478965, 0.00880438, 0.356395, -0.0154355, 0.479001, 0.0115066, 0.356484, -0.019529, + 0.479075, 0.0145762, 0.356609, -0.0240991, 0.47918, 0.018018, 0.356766, -0.0291413, 0.479305, + 0.0218379, 0.357009, -0.0346498, 0.479512, 0.0260454, 0.357424, -0.0405462, 0.479909, 0.0306657, + 0.357899, -0.0468825, 0.480337, 0.0357054, 0.358424, -0.0536887, 0.480771, 0.0411728, 0.359041, + -0.0609416, 0.481242, 0.0470841, 0.359903, -0.0685239, 0.481943, 0.0534831, 0.360932, -0.0764883, + 0.482741, 0.0603795, 0.362196, -0.0848364, 0.483688, 0.0678028, 0.363847, -0.0935002, 0.484947, + 0.0758086, 0.365972, -0.102471, 0.486588, 0.0844173, 0.368741, -0.111751, 0.488787, 0.0937199, + 0.372146, -0.121334, 0.491405, 0.103732, 0.377114, -0.131147, 0.495604, 0.114608, 0.38226, + -0.141213, 0.499436, 0.126345, 0.389609, -0.151632, 0.505334, 0.139116, 0.397925, -0.162073, + 0.51168, 0.152995, 0.407824, -0.172819, 0.518876, 0.168071, 0.420014, -0.183929, 0.527639, + 0.184495, 0.434266, -0.195032, 0.537588, 0.20232, 0.447352, -0.205792, 0.544379, 0.221189, + 0.463726, -0.216704, 0.553422, 0.241616, 0.481406, -0.227531, 0.562074, 0.263298, 0.498707, + -0.238017, 0.568227, 0.286116, 0.518039, -0.247936, 0.574473, 0.3101, 0.538277, -0.257437, + 0.579191, 0.335401, 0.561166, -0.266829, 0.584807, 0.362246, 0.583189, -0.275329, 0.586476, + 0.390609, 0.606024, -0.28234, 0.585578, 0.420998, 0.632419, -0.287924, 0.584496, 0.454357, + 0.656128, -0.291972, 0.577766, 0.488233, 0.679953, -0.29456, 0.56875, 0.523248, 0.704654, + -0.295816, 0.558388, 0.559168, 0.729016, -0.295157, 0.544826, 0.595326, 0.752062, -0.292779, + 0.528273, 0.631864, 0.773138, -0.288681, 0.508482, 0.667793, 0.794869, -0.283358, 0.487341, + 0.704035, 0.815101, -0.27608, 0.46354, 0.739925, 0.834212, -0.26767, 0.438672, 0.775539, 0.852368, + -0.257397, 0.411239, 0.810895, 0.870207, -0.245689, 0.3829, 0.846472, 0.884063, -0.231452, + 0.351496, 0.881788, 0.898284, -0.215561, 0.31895, 0.917438, 0.912964, -0.198208, 0.287367, + 0.952422, 0.924666, -0.180426, 0.254487, 0.987551, 0.934429, -0.161525, 0.222226, 1.02142, + 0.943485, -0.141197, 0.191143, 1.05218, 0.9521, -0.120085, 0.161112, 1.07937, 0.957876, + -0.0975881, 0.130982, 1.10403, 0.966943, -0.0726842, 0.0990553, 1.12616, 0.978313, -0.0483705, + 0.0662818, 1.14619, 0.990048, -0.0239072, 0.0329243, 1.16413, 0.999984, 0.000461885, -7.72859e-5, + 1.18099, 0.321287, -9.35049e-6, 0.455413, 6.59662e-6, 0.332595, -0.000237513, 0.471437, + 0.000167562, 0.332729, -0.000949964, 0.471618, 0.000670192, 0.332305, -0.00213618, 0.471028, + 0.00150712, 0.332326, -0.00379765, 0.471055, 0.00267959, 0.332344, -0.00593353, 0.471072, + 0.00418751, 0.332356, -0.00854349, 0.471077, 0.00603172, 0.332403, -0.0116268, 0.471121, + 0.00821362, 0.332461, -0.0151824, 0.47117, 0.0107357, 0.332552, -0.0192088, 0.471251, 0.0136014, + 0.332657, -0.0237024, 0.47133, 0.0168152, 0.332835, -0.0286615, 0.471487, 0.0203853, 0.333083, + -0.0340765, 0.471708, 0.0243212, 0.333547, -0.0398563, 0.47219, 0.0286518, 0.333989, -0.0460916, + 0.472587, 0.0333763, 0.334532, -0.0527897, 0.473054, 0.0385084, 0.335167, -0.0599284, 0.473568, + 0.0440638, 0.33608, -0.0673514, 0.474362, 0.0500962, 0.337146, -0.0752237, 0.475231, 0.0566022, + 0.338462, -0.083418, 0.476282, 0.0636272, 0.34014, -0.0919382, 0.477615, 0.0712153, 0.342341, + -0.100741, 0.479404, 0.079417, 0.345088, -0.109905, 0.481618, 0.0882631, 0.349049, -0.119369, + 0.485081, 0.0978851, 0.353939, -0.129033, 0.489317, 0.108336, 0.359893, -0.139038, 0.494309, + 0.119698, 0.366945, -0.149411, 0.499983, 0.132024, 0.375814, -0.159843, 0.507185, 0.145558, + 0.387112, -0.170664, 0.516392, 0.160433, 0.40023, -0.181897, 0.526519, 0.176648, 0.412555, + -0.192785, 0.53423, 0.193922, 0.427023, -0.203663, 0.542741, 0.212662, 0.443685, -0.214695, + 0.552066, 0.232944, 0.461499, -0.225561, 0.560762, 0.254495, 0.480975, -0.236257, 0.569421, + 0.277531, 0.501, -0.24639, 0.576101, 0.301724, 0.521691, -0.256101, 0.581493, 0.327112, 0.543478, + -0.265289, 0.585221, 0.353917, 0.566094, -0.273938, 0.587614, 0.381941, 0.589578, -0.281679, + 0.587991, 0.41172, 0.614583, -0.287655, 0.585928, 0.444148, 0.641813, -0.292228, 0.582092, + 0.478617, 0.666189, -0.295172, 0.57398, 0.51397, 0.690475, -0.29648, 0.561676, 0.550118, 0.715543, + -0.296203, 0.548758, 0.586933, 0.740405, -0.293999, 0.532792, 0.62384, 0.762183, -0.28998, + 0.512735, 0.660723, 0.786069, -0.28478, 0.492402, 0.69807, 0.806812, -0.277568, 0.469058, + 0.734422, 0.826987, -0.268951, 0.443017, 0.770946, 0.844588, -0.259049, 0.415501, 0.80699, + 0.863725, -0.2471, 0.387328, 0.842107, 0.879137, -0.234157, 0.356108, 0.878078, 0.894634, + -0.218719, 0.324315, 0.914058, 0.909162, -0.201293, 0.291813, 0.949922, 0.92072, -0.18267, + 0.258474, 0.985337, 0.93158, -0.163212, 0.225593, 1.0205, 0.941238, -0.142771, 0.193986, 1.05273, + 0.949293, -0.120956, 0.163392, 1.08075, 0.956226, -0.0985743, 0.132934, 1.10559, 0.96546, + -0.075118, 0.101255, 1.12823, 0.977403, -0.0497921, 0.0675441, 1.149, 0.989648, -0.0241574, + 0.0334681, 1.16765, 1.00001, 0.0005762, -0.000184807, 1.18519, 0.303474, -9.16603e-6, 0.4542, + 6.1243e-6, 0.308894, -0.000232869, 0.462306, 0.000155592, 0.309426, -0.000931661, 0.463093, + 0.000622499, 0.308643, -0.0020949, 0.461933, 0.00139979, 0.308651, -0.0037242, 0.461941, + 0.00248874, 0.308662, -0.00581873, 0.46195, 0.00388933, 0.308687, -0.00837818, 0.461974, + 0.00560247, 0.308728, -0.0114016, 0.462011, 0.00762948, 0.308789, -0.0148884, 0.462067, + 0.00997326, 0.308882, -0.0188369, 0.462151, 0.0126375, 0.309007, -0.0232436, 0.462263, 0.0156271, + 0.30918, -0.0281054, 0.462417, 0.0189498, 0.309442, -0.0334065, 0.462667, 0.0226167, 0.309901, + -0.0390589, 0.463162, 0.0266614, 0.310331, -0.0452042, 0.463555, 0.0310715, 0.310858, -0.0517735, + 0.464019, 0.0358698, 0.311576, -0.0587359, 0.464669, 0.0410848, 0.312436, -0.0660383, 0.465406, + 0.0467453, 0.313526, -0.0737266, 0.466339, 0.0528718, 0.314903, -0.0817574, 0.467504, 0.0595039, + 0.316814, -0.090167, 0.469226, 0.0666888, 0.318965, -0.0987555, 0.470981, 0.0744658, 0.322077, + -0.107792, 0.473814, 0.082912, 0.325947, -0.117098, 0.477241, 0.0920846, 0.331008, -0.126602, + 0.48184, 0.102137, 0.337893, -0.136619, 0.488334, 0.113135, 0.345106, -0.146838, 0.494415, + 0.12511, 0.355111, -0.157357, 0.503275, 0.138356, 0.365095, -0.167955, 0.510966, 0.152686, + 0.378344, -0.179157, 0.521508, 0.16856, 0.391599, -0.190143, 0.530455, 0.18561, 0.407786, + -0.20123, 0.541275, 0.204308, 0.425294, -0.212456, 0.551784, 0.224623, 0.444021, -0.223568, + 0.561493, 0.246172, 0.463418, -0.234154, 0.569886, 0.268979, 0.484077, -0.244546, 0.577116, + 0.293411, 0.505513, -0.254301, 0.582914, 0.318936, 0.527672, -0.263564, 0.587208, 0.345856, + 0.550565, -0.272332, 0.589277, 0.374054, 0.573656, -0.280011, 0.588426, 0.403276, 0.59827, + -0.286924, 0.587504, 0.43474, 0.624731, -0.291994, 0.583401, 0.468767, 0.652396, -0.295159, + 0.576997, 0.504411, 0.67732, -0.296954, 0.565863, 0.54114, 0.703147, -0.296877, 0.552316, 0.57816, + 0.728715, -0.295147, 0.536773, 0.616124, 0.752448, -0.291275, 0.51771, 0.653885, 0.775169, + -0.285905, 0.496087, 0.691537, 0.799307, -0.279064, 0.474232, 0.729251, 0.819482, -0.270294, + 0.447676, 0.766267, 0.837659, -0.260032, 0.419656, 0.802616, 0.856903, -0.248497, 0.391328, + 0.838583, 0.873325, -0.235252, 0.360285, 0.874711, 0.889788, -0.221126, 0.329215, 0.91077, + 0.904486, -0.204304, 0.296392, 0.94653, 0.917711, -0.185562, 0.262159, 0.983828, 0.928969, + -0.165635, 0.229142, 1.01955, 0.939707, -0.14442, 0.19673, 1.05317, 0.948167, -0.122147, 0.165095, + 1.0823, 0.955222, -0.099098, 0.13451, 1.10791, 0.964401, -0.0755332, 0.102476, 1.1312, 0.976605, + -0.0513817, 0.0689667, 1.15218, 0.989085, -0.0258499, 0.034506, 1.17129, 0.999908, 0.000617773, + -0.000271268, 1.18961, 0.285803, -9.05752e-6, 0.452348, 5.72272e-6, 0.284689, -0.00022732, + 0.450581, 0.000143626, 0.285263, -0.000910214, 0.451482, 0.000575099, 0.285302, -0.00204784, + 0.451553, 0.00129395, 0.285318, -0.00364057, 0.451574, 0.0023006, 0.28533, -0.00568813, 0.451585, + 0.00359547, 0.285361, -0.00819001, 0.451618, 0.00517934, 0.285397, -0.0111458, 0.45165, 0.007054, + 0.285447, -0.0145536, 0.451688, 0.00922167, 0.285527, -0.0184127, 0.451758, 0.0116869, 0.285688, + -0.0227207, 0.451929, 0.0144555, 0.28584, -0.0274712, 0.452055, 0.0175341, 0.286136, -0.0326278, + 0.452369, 0.0209406, 0.286574, -0.0381792, 0.452853, 0.0246965, 0.287012, -0.0441879, 0.453272, + 0.0287996, 0.287542, -0.0506096, 0.453752, 0.033268, 0.288299, -0.0573634, 0.454488, 0.0381504, + 0.289186, -0.0645458, 0.455294, 0.0434447, 0.290302, -0.0720405, 0.456301, 0.0491973, 0.291776, + -0.0799046, 0.457648, 0.0554453, 0.29372, -0.088117, 0.459483, 0.0622311, 0.296052, -0.0965328, + 0.461571, 0.0695992, 0.299563, -0.105409, 0.465085, 0.077658, 0.30335, -0.114553, 0.468506, + 0.0864176, 0.309167, -0.123917, 0.474423, 0.0961078, 0.31529, -0.13381, 0.47995, 0.106643, + 0.324163, -0.144021, 0.488592, 0.118322, 0.333272, -0.154382, 0.496461, 0.131133, 0.344224, + -0.165015, 0.50562, 0.145208, 0.357733, -0.176168, 0.516719, 0.16073, 0.373046, -0.187468, + 0.528513, 0.177807, 0.38788, -0.198488, 0.537713, 0.196072, 0.405133, -0.209545, 0.547999, + 0.21605, 0.423845, -0.220724, 0.55759, 0.237484, 0.443777, -0.231518, 0.566246, 0.26039, 0.464824, + -0.242035, 0.574326, 0.284835, 0.486635, -0.251898, 0.58037, 0.310518, 0.51012, -0.261304, + 0.58568, 0.337678, 0.535301, -0.270384, 0.590197, 0.366242, 0.559193, -0.27841, 0.590569, + 0.395873, 0.583544, -0.285325, 0.588161, 0.426857, 0.608834, -0.291113, 0.584249, 0.459477, + 0.635753, -0.294882, 0.57763, 0.494734, 0.664367, -0.297088, 0.569479, 0.532023, 0.689688, + -0.297364, 0.555064, 0.569629, 0.715732, -0.295949, 0.539522, 0.608124, 0.741307, -0.292259, + 0.521613, 0.646231, 0.764949, -0.287063, 0.49969, 0.684938, 0.788599, -0.28012, 0.476747, + 0.723548, 0.81048, -0.27153, 0.45116, 0.761135, 0.831372, -0.261289, 0.424101, 0.798916, 0.850092, + -0.249559, 0.39443, 0.835952, 0.867777, -0.236348, 0.363849, 0.871606, 0.884632, -0.221569, + 0.332477, 0.907843, 0.90047, -0.20618, 0.300667, 0.944187, 0.914524, -0.188771, 0.266552, + 0.981371, 0.926892, -0.168362, 0.232349, 1.01841, 0.937951, -0.146761, 0.199359, 1.05308, + 0.947236, -0.123813, 0.1675, 1.0839, 0.954367, -0.099984, 0.136166, 1.11047, 0.963907, -0.0759278, + 0.103808, 1.13414, 0.976218, -0.0511367, 0.0697061, 1.15575, 0.988772, -0.0267415, 0.0352529, + 1.17531, 0.999888, -0.000520778, 0.000289926, 1.19389, 0.263546, -8.83274e-6, 0.441896, + 5.26783e-6, 0.262352, -0.000221849, 0.439889, 0.000132311, 0.262325, -0.000886683, 0.439848, + 0.000528824, 0.26228, -0.00199476, 0.439765, 0.00118975, 0.262372, -0.00354671, 0.439922, + 0.00211568, 0.26239, -0.00554141, 0.439941, 0.00330652, 0.262412, -0.00797888, 0.439961, + 0.00476346, 0.262453, -0.0108584, 0.440002, 0.00648818, 0.262528, -0.0141788, 0.440085, 0.0084835, + 0.262615, -0.017938, 0.440166, 0.0107533, 0.262744, -0.0221346, 0.440291, 0.0133044, 0.262939, + -0.026762, 0.440493, 0.0161445, 0.263277, -0.0317573, 0.440889, 0.0192974, 0.26368, -0.0371832, + 0.441338, 0.0227699, 0.264106, -0.0430371, 0.441753, 0.0265698, 0.264624, -0.0493035, 0.442227, + 0.0307178, 0.265378, -0.0558669, 0.442985, 0.0352616, 0.266253, -0.0628718, 0.443795, 0.0401968, + 0.267478, -0.0701569, 0.445008, 0.04559, 0.269062, -0.077845, 0.446599, 0.0514539, 0.270926, + -0.0857941, 0.448349, 0.0578382, 0.273693, -0.0940773, 0.451221, 0.0648363, 0.276746, -0.102704, + 0.454097, 0.0724389, 0.281693, -0.111735, 0.459517, 0.0808744, 0.287335, -0.121004, 0.46531, + 0.0901551, 0.29448, -0.130734, 0.472605, 0.100371, 0.30257, -0.140777, 0.480251, 0.111644, + 0.312465, -0.15111, 0.489444, 0.124111, 0.324856, -0.16189, 0.500919, 0.137979, 0.33774, + -0.172946, 0.511317, 0.153163, 0.35255, -0.184152, 0.522684, 0.169817, 0.367786, -0.19522, + 0.53248, 0.187886, 0.385474, -0.20632, 0.543326, 0.207634, 0.404976, -0.217744, 0.554109, + 0.229165, 0.425203, -0.228691, 0.563395, 0.252068, 0.446704, -0.239299, 0.571565, 0.276471, + 0.468951, -0.249348, 0.577935, 0.302323, 0.493487, -0.258933, 0.584309, 0.329882, 0.517861, + -0.268009, 0.58773, 0.358525, 0.543309, -0.276238, 0.589612, 0.388585, 0.569704, -0.28356, + 0.589294, 0.419787, 0.594871, -0.289497, 0.585137, 0.452114, 0.622555, -0.294452, 0.580356, + 0.486466, 0.651167, -0.296918, 0.57185, 0.523079, 0.677332, -0.297647, 0.558428, 0.5611, 0.703718, + -0.296321, 0.542232, 0.599592, 0.730262, -0.293339, 0.524541, 0.639138, 0.754304, -0.288036, + 0.502691, 0.677978, 0.778051, -0.281018, 0.479212, 0.716537, 0.801557, -0.272414, 0.454071, + 0.75586, 0.822559, -0.262419, 0.425952, 0.794477, 0.843051, -0.250702, 0.397313, 0.832664, + 0.86232, -0.237264, 0.366534, 0.869876, 0.879044, -0.222716, 0.334816, 0.906973, 0.896362, + -0.206827, 0.303143, 0.943558, 0.910342, -0.189659, 0.269699, 0.979759, 0.924119, -0.171108, + 0.236411, 1.01718, 0.935374, -0.149579, 0.202224, 1.05289, 0.944295, -0.126295, 0.16989, 1.08496, + 0.952227, -0.101511, 0.138089, 1.11256, 0.962041, -0.0766392, 0.105053, 1.1375, 0.97528, + -0.0511967, 0.070329, 1.15983, 0.988476, -0.025463, 0.0351268, 1.17987, 0.999962, 2.86808e-5, + 1.45564e-5, 1.19901, 0.227089, -8.41413e-6, 0.404216, 4.72707e-6, 0.239725, -0.000215083, + 0.426708, 0.000120833, 0.239904, -0.000860718, 0.427028, 0.000483555, 0.239911, -0.00193661, + 0.427039, 0.00108806, 0.239914, -0.00344276, 0.42704, 0.00193457, 0.239933, -0.00537907, 0.427064, + 0.00302363, 0.239944, -0.00774482, 0.427065, 0.00435604, 0.239993, -0.01054, 0.427122, 0.00593398, + 0.240052, -0.0137626, 0.427179, 0.00775987, 0.240148, -0.0174115, 0.427279, 0.00983854, 0.240278, + -0.021484, 0.42741, 0.0121763, 0.240472, -0.0259729, 0.427618, 0.0147827, 0.240839, -0.0308131, + 0.428086, 0.0176837, 0.241201, -0.0360893, 0.428482, 0.0208775, 0.241626, -0.0417723, 0.428907, + 0.0243821, 0.242207, -0.0478337, 0.42952, 0.0282228, 0.24298, -0.0542199, 0.430332, 0.0324333, + 0.243881, -0.0610015, 0.431222, 0.0370252, 0.245123, -0.0680874, 0.432512, 0.0420535, 0.24667, + -0.0755482, 0.434088, 0.0475414, 0.248779, -0.0832873, 0.436323, 0.0535542, 0.251665, -0.0913546, + 0.439509, 0.0601716, 0.255305, -0.0998489, 0.443478, 0.0674282, 0.260049, -0.108576, 0.448713, + 0.0754673, 0.266192, -0.117754, 0.455524, 0.084339, 0.273158, -0.127294, 0.4627, 0.0941683, + 0.282131, -0.137311, 0.472068, 0.10515, 0.293332, -0.147736, 0.483565, 0.117402, 0.304667, + -0.158357, 0.493702, 0.130824, 0.317785, -0.169274, 0.504708, 0.145724, 0.333245, -0.180595, + 0.517107, 0.16215, 0.349843, -0.191892, 0.528849, 0.180149, 0.367944, -0.203168, 0.540301, + 0.199746, 0.387579, -0.214443, 0.551514, 0.221047, 0.408247, -0.225624, 0.560906, 0.243981, + 0.43014, -0.236422, 0.56959, 0.268513, 0.452669, -0.24654, 0.576098, 0.294409, 0.476196, + -0.256157, 0.580925, 0.322002, 0.501157, -0.265289, 0.584839, 0.351052, 0.527632, -0.273671, + 0.587614, 0.3812, 0.555754, -0.281254, 0.589119, 0.412994, 0.581682, -0.287448, 0.585204, + 0.445498, 0.608196, -0.292614, 0.579006, 0.479505, 0.635661, -0.296068, 0.571297, 0.514643, + 0.664999, -0.297395, 0.560855, 0.552213, 0.691039, -0.296645, 0.544525, 0.591365, 0.7179, + -0.293785, 0.526535, 0.630883, 0.744059, -0.289089, 0.50545, 0.670932, 0.76863, -0.282239, + 0.482514, 0.710904, 0.793273, -0.273688, 0.457246, 0.750259, 0.814731, -0.26328, 0.428872, + 0.78948, 0.835603, -0.251526, 0.399384, 0.828597, 0.85489, -0.238339, 0.368811, 0.866892, + 0.872828, -0.223607, 0.336617, 0.90563, 0.889462, -0.207538, 0.303997, 0.943538, 0.904929, + -0.190297, 0.270812, 0.980591, 0.919101, -0.172034, 0.237453, 1.01935, 0.930536, -0.152058, + 0.204431, 1.05498, 0.941223, -0.129515, 0.172495, 1.08717, 0.94982, -0.104263, 0.140175, 1.11551, + 0.960592, -0.0781944, 0.106465, 1.14098, 0.974629, -0.051688, 0.0711592, 1.16418, 0.98811, + -0.0253929, 0.0354432, 1.18465, 1.00004, 0.000804378, -0.000330876, 1.20462, 0.214668, + -8.21282e-6, 0.406619, 4.33582e-6, 0.218053, -0.000208144, 0.413025, 0.000109887, 0.217987, + -0.000832212, 0.412901, 0.000439362, 0.217971, -0.00187246, 0.412876, 0.000988623, 0.217968, + -0.00332855, 0.41286, 0.00175772, 0.217985, -0.00520055, 0.412882, 0.00274729, 0.218014, + -0.00748814, 0.412916, 0.00395842, 0.218054, -0.0101901, 0.412957, 0.00539274, 0.218106, + -0.0133057, 0.413005, 0.00705348, 0.218217, -0.0168342, 0.413139, 0.00894581, 0.218338, + -0.0207707, 0.413258, 0.0110754, 0.21855, -0.0251001, 0.413509, 0.0134551, 0.218913, -0.0297861, + 0.413992, 0.0161081, 0.219265, -0.0348956, 0.414383, 0.0190307, 0.219696, -0.0403909, 0.414839, + 0.0222458, 0.220329, -0.0462003, 0.415567, 0.025792, 0.220989, -0.0524208, 0.41621, 0.0296637, + 0.222027, -0.058948, 0.417385, 0.0339323, 0.223301, -0.0658208, 0.418779, 0.0386055, 0.224988, + -0.0730347, 0.420665, 0.0437355, 0.227211, -0.0805274, 0.423198, 0.0493844, 0.230131, -0.088395, + 0.426566, 0.0556135, 0.233908, -0.0966208, 0.43091, 0.0624829, 0.239092, -0.105223, 0.437148, + 0.0701636, 0.245315, -0.11424, 0.444302, 0.0786949, 0.253166, -0.12368, 0.453262, 0.0882382, + 0.262374, -0.133569, 0.463211, 0.0988682, 0.273145, -0.143836, 0.474271, 0.110727, 0.285512, + -0.154577, 0.4863, 0.123945, 0.299512, -0.165501, 0.498817, 0.138581, 0.314287, -0.176698, + 0.510341, 0.154676, 0.331083, -0.188066, 0.522583, 0.172459, 0.349615, -0.199597, 0.534879, + 0.191979, 0.369318, -0.210843, 0.546083, 0.21309, 0.390377, -0.222068, 0.5562, 0.235998, 0.412411, + -0.233059, 0.564704, 0.260518, 0.435715, -0.24357, 0.572314, 0.286795, 0.461196, -0.253356, + 0.579395, 0.314559, 0.485587, -0.262362, 0.581985, 0.343581, 0.511908, -0.270895, 0.584347, + 0.374367, 0.539798, -0.278452, 0.58505, 0.406015, 0.567974, -0.284877, 0.583344, 0.439168, + 0.594303, -0.290124, 0.577348, 0.473005, 0.622951, -0.294183, 0.570751, 0.508534, 0.652404, + -0.296389, 0.561541, 0.544764, 0.679291, -0.296605, 0.546426, 0.582927, 0.706437, -0.294095, + 0.528599, 0.622681, 0.734485, -0.28978, 0.508676, 0.663567, 0.758841, -0.283363, 0.484768, + 0.704092, 0.78537, -0.275015, 0.460434, 0.745101, 0.807315, -0.264689, 0.432166, 0.784712, 0.8271, + -0.252597, 0.401807, 0.824241, 0.849191, -0.239154, 0.371458, 0.863803, 0.867046, -0.224451, + 0.338873, 0.903063, 0.8852, -0.208342, 0.306175, 0.942763, 0.901771, -0.190684, 0.272759, + 0.981559, 0.915958, -0.172105, 0.239306, 1.02048, 0.928046, -0.152214, 0.206071, 1.05765, + 0.939961, -0.130247, 0.17367, 1.08999, 0.948711, -0.10672, 0.142201, 1.11829, 0.959305, + -0.0808688, 0.108454, 1.14467, 0.973009, -0.0539145, 0.0728109, 1.16839, 0.987631, -0.0262947, + 0.0360625, 1.19004, 0.999978, 0.00132758, -0.000559424, 1.21058, 0.193925, -7.93421e-6, 0.391974, + 3.92537e-6, 0.196746, -0.000200315, 0.397675, 9.91033e-5, 0.19667, -0.000801099, 0.397521, + 0.000396342, 0.196633, -0.00180246, 0.397445, 0.000891829, 0.196654, -0.00320443, 0.397482, + 0.00158582, 0.196659, -0.00500647, 0.39748, 0.00247867, 0.196683, -0.0072086, 0.397506, + 0.00357167, 0.196728, -0.00981001, 0.397562, 0.00486675, 0.196792, -0.0128096, 0.397633, + 0.00636707, 0.19689, -0.0162055, 0.397746, 0.00807752, 0.197017, -0.0199943, 0.397884, 0.0100052, + 0.19729, -0.024139, 0.39827, 0.0121691, 0.197583, -0.0286671, 0.398639, 0.0145755, 0.197927, + -0.0335858, 0.399034, 0.0172355, 0.198383, -0.0388806, 0.399554, 0.0201718, 0.199002, -0.0444736, + 0.400289, 0.0234194, 0.199739, -0.0504583, 0.401111, 0.026984, 0.200784, -0.056729, 0.402349, + 0.0309217, 0.202075, -0.0633643, 0.403841, 0.0352496, 0.203898, -0.0703247, 0.406076, 0.0400313, + 0.206199, -0.0775565, 0.408841, 0.0453282, 0.209252, -0.085184, 0.41259, 0.0511794, 0.213638, + -0.0931994, 0.418288, 0.0577459, 0.21881, -0.101617, 0.424681, 0.0650508, 0.225642, -0.11052, + 0.433429, 0.0732759, 0.233717, -0.119772, 0.442897, 0.0824683, 0.242823, -0.129505, 0.452888, + 0.0927484, 0.254772, -0.139906, 0.466407, 0.104417, 0.266603, -0.150402, 0.477413, 0.117211, + 0.28073, -0.161395, 0.490519, 0.131598, 0.295399, -0.172465, 0.50201, 0.147407, 0.312705, + -0.183982, 0.515311, 0.165031, 0.331335, -0.195532, 0.52786, 0.184336, 0.351037, -0.206971, + 0.5392, 0.205361, 0.372175, -0.218117, 0.54941, 0.228043, 0.394548, -0.229327, 0.558642, 0.25267, + 0.419598, -0.240052, 0.567861, 0.279071, 0.443922, -0.249937, 0.573332, 0.306882, 0.471495, + -0.259407, 0.58013, 0.33661, 0.496769, -0.267749, 0.580564, 0.367328, 0.524951, -0.275524, + 0.581696, 0.399753, 0.55318, -0.282148, 0.579885, 0.433134, 0.581577, -0.287533, 0.575471, + 0.467534, 0.609231, -0.291612, 0.567445, 0.502943, 0.637478, -0.293911, 0.557657, 0.53871, + 0.667795, -0.295096, 0.546535, 0.576568, 0.694272, -0.294073, 0.529561, 0.614929, 0.722937, + -0.290386, 0.510561, 0.655909, 0.749682, -0.284481, 0.487846, 0.697663, 0.774754, -0.276188, + 0.462487, 0.738515, 0.799301, -0.266215, 0.43481, 0.779802, 0.820762, -0.254116, 0.404879, + 0.820045, 0.843231, -0.240393, 0.374559, 0.860294, 0.861857, -0.225503, 0.341582, 0.900965, + 0.880815, -0.209382, 0.308778, 0.941727, 0.89766, -0.19155, 0.275232, 0.980916, 0.912926, + -0.172346, 0.240938, 1.02162, 0.926391, -0.151799, 0.207223, 1.0597, 0.938429, -0.129968, 0.17484, + 1.09291, 0.947834, -0.10651, 0.142984, 1.12248, 0.958432, -0.0824098, 0.109902, 1.149, 0.972402, + -0.0565242, 0.0744454, 1.1733, 0.987191, -0.028427, 0.0373794, 1.19538, 0.999975, 3.85685e-5, + -4.203e-5, 1.21676, 0.178114, -7.66075e-6, 0.385418, 3.54027e-6, 0.176074, -0.000191966, 0.381002, + 8.87135e-5, 0.17601, -0.000767549, 0.380861, 0.000354715, 0.17598, -0.00172696, 0.380798, + 0.000798168, 0.175994, -0.00307012, 0.380824, 0.00141928, 0.176017, -0.00479684, 0.380858, + 0.00221859, 0.176019, -0.00690648, 0.380839, 0.00319714, 0.176072, -0.00939888, 0.380913, + 0.0043572, 0.176131, -0.0122726, 0.380979, 0.005702, 0.176239, -0.0155264, 0.38112, 0.00723689, + 0.176371, -0.0191551, 0.381272, 0.00896907, 0.176638, -0.023117, 0.381669, 0.0109194, 0.176912, + -0.0274633, 0.382015, 0.0130903, 0.177279, -0.032173, 0.382476, 0.0154949, 0.17774, -0.0372219, + 0.383041, 0.0181669, 0.178344, -0.0426132, 0.38378, 0.0211209, 0.179153, -0.0483309, 0.384773, + 0.0243899, 0.180197, -0.0543447, 0.386076, 0.0280062, 0.181581, -0.0607122, 0.387809, 0.032004, + 0.18344, -0.0673855, 0.390205, 0.036453, 0.186139, -0.0743989, 0.393944, 0.0414162, 0.189432, + -0.0817731, 0.39832, 0.0469394, 0.193795, -0.0895464, 0.404188, 0.0531442, 0.199641, -0.0978264, + 0.4121, 0.0601374, 0.206679, -0.106499, 0.421425, 0.0680078, 0.214865, -0.115654, 0.431504, + 0.076919, 0.224406, -0.125268, 0.442526, 0.0868835, 0.235876, -0.135475, 0.455465, 0.0981875, + 0.248335, -0.146023, 0.4681, 0.110759, 0.262868, -0.157016, 0.482069, 0.124885, 0.278962, + -0.168245, 0.496182, 0.140645, 0.295082, -0.17958, 0.507401, 0.157838, 0.313738, -0.191227, + 0.520252, 0.17695, 0.333573, -0.202718, 0.531708, 0.197817, 0.356433, -0.214424, 0.544509, + 0.220785, 0.378853, -0.225492, 0.55373, 0.245306, 0.402717, -0.236236, 0.561348, 0.271593, + 0.428375, -0.246568, 0.568538, 0.299776, 0.454724, -0.255941, 0.573462, 0.329433, 0.482291, + -0.264511, 0.576356, 0.360598, 0.509706, -0.272129, 0.576446, 0.393204, 0.538805, -0.278979, + 0.575298, 0.427227, 0.568919, -0.284528, 0.572154, 0.462157, 0.596804, -0.288801, 0.564691, + 0.497997, 0.625987, -0.291334, 0.555134, 0.534467, 0.656414, -0.292722, 0.545051, 0.571736, + 0.683916, -0.292185, 0.528813, 0.610158, 0.711809, -0.290043, 0.51106, 0.649061, 0.739547, + -0.285246, 0.490103, 0.690081, 0.766914, -0.277647, 0.465523, 0.732554, 0.791375, -0.267603, + 0.437718, 0.773982, 0.814772, -0.256109, 0.40882, 0.81609, 0.836691, -0.242281, 0.377823, + 0.856849, 0.856984, -0.227155, 0.34496, 0.898363, 0.876332, -0.210395, 0.311335, 0.939471, + 0.894988, -0.192612, 0.277703, 0.980799, 0.911113, -0.173236, 0.243019, 1.02215, 0.924092, + -0.152258, 0.209037, 1.06139, 0.936828, -0.129575, 0.175909, 1.09635, 0.946869, -0.10594, + 0.143852, 1.12707, 0.958284, -0.081318, 0.110289, 1.15419, 0.972325, -0.0556133, 0.0747232, + 1.17909, 0.986878, -0.0297899, 0.0383149, 1.20163, 0.999936, -0.00197169, 0.000912402, 1.22338, + 0.151174, -7.20365e-6, 0.351531, 3.09789e-6, 0.155594, -0.00018279, 0.361806, 7.8608e-5, 0.156099, + -0.000731569, 0.362982, 0.000314615, 0.156053, -0.00164578, 0.362869, 0.000707845, 0.156093, + -0.0029261, 0.362961, 0.00125884, 0.156099, -0.00457155, 0.362959, 0.00196783, 0.15612, + -0.00658224, 0.362982, 0.00283622, 0.156168, -0.00895774, 0.363048, 0.00386625, 0.156221, + -0.0116962, 0.363101, 0.00506109, 0.156324, -0.0147973, 0.363241, 0.00642675, 0.156476, + -0.0182503, 0.363448, 0.00797175, 0.156731, -0.0220266, 0.36384, 0.00971484, 0.156994, -0.026176, + 0.364179, 0.0116575, 0.157341, -0.0306701, 0.36462, 0.0138207, 0.157867, -0.0354591, 0.365364, + 0.0162356, 0.15846, -0.0406141, 0.366111, 0.0189092, 0.159308, -0.0460519, 0.367248, 0.021885, + 0.160426, -0.0518096, 0.368767, 0.0252004, 0.161877, -0.0578906, 0.370745, 0.0288825, 0.163995, + -0.0642812, 0.373831, 0.0330139, 0.16655, -0.0710067, 0.377366, 0.0376283, 0.170237, -0.0781522, + 0.382799, 0.0428493, 0.175096, -0.0857172, 0.389915, 0.0487324, 0.181069, -0.0938025, 0.398487, + 0.0554214, 0.188487, -0.102363, 0.408799, 0.0630189, 0.197029, -0.111343, 0.419991, 0.071634, + 0.206684, -0.120812, 0.431455, 0.0812797, 0.218698, -0.131033, 0.445746, 0.0923651, 0.230726, + -0.141373, 0.457471, 0.104545, 0.245516, -0.152387, 0.472388, 0.118449, 0.261551, -0.163628, + 0.486671, 0.133923, 0.277437, -0.174814, 0.49762, 0.150849, 0.296662, -0.186713, 0.51162, + 0.169924, 0.31795, -0.198513, 0.525435, 0.190848, 0.339422, -0.210119, 0.536267, 0.213504, + 0.362143, -0.221354, 0.545982, 0.237947, 0.387198, -0.23224, 0.555364, 0.264427, 0.412349, + -0.24257, 0.561489, 0.292519, 0.439274, -0.252284, 0.566903, 0.322561, 0.466779, -0.261023, + 0.569614, 0.353952, 0.496011, -0.26899, 0.571589, 0.387278, 0.524964, -0.275498, 0.570325, + 0.421356, 0.556518, -0.281449, 0.568792, 0.457314, 0.584363, -0.285526, 0.560268, 0.493199, + 0.614214, -0.28844, 0.55205, 0.530276, 0.645684, -0.289777, 0.541906, 0.56855, 0.673446, + -0.289722, 0.526464, 0.606927, 0.701924, -0.287792, 0.509872, 0.645945, 0.73037, -0.284315, + 0.490649, 0.685564, 0.757405, -0.278804, 0.467964, 0.726511, 0.784025, -0.269543, 0.441468, + 0.768601, 0.808255, -0.258117, 0.41216, 0.811321, 0.830739, -0.244728, 0.380606, 0.853496, + 0.851914, -0.229428, 0.348111, 0.895374, 0.872586, -0.212508, 0.314732, 0.937674, 0.891581, + -0.194025, 0.280338, 0.979869, 0.907641, -0.174711, 0.245203, 1.02253, 0.922233, -0.153509, + 0.21077, 1.06371, 0.935878, -0.130418, 0.177399, 1.09972, 0.946338, -0.105558, 0.144507, 1.13124, + 0.957265, -0.080059, 0.110508, 1.15973, 0.971668, -0.0539766, 0.0742311, 1.18515, 0.9866, + -0.0277101, 0.0375224, 1.20858, 1.00021, -0.000515531, 0.000135226, 1.23135, 0.137468, + -6.86011e-6, 0.345041, 2.73315e-6, 0.13703, -0.000173378, 0.343936, 6.90761e-5, 0.136986, + -0.000693048, 0.34383, 0.000276126, 0.136964, -0.00155931, 0.343761, 0.000621337, 0.137003, + -0.00277211, 0.343863, 0.00110494, 0.137012, -0.00433103, 0.343868, 0.00172744, 0.137043, + -0.00623606, 0.343916, 0.00249022, 0.13709, -0.0084868, 0.343986, 0.00339559, 0.137145, + -0.0110814, 0.344045, 0.00444687, 0.137242, -0.0140187, 0.344177, 0.00565007, 0.137431, + -0.0172713, 0.344491, 0.00701868, 0.137644, -0.0208605, 0.344805, 0.00856042, 0.13791, -0.024792, + 0.345172, 0.0102863, 0.138295, -0.0290461, 0.345734, 0.0122185, 0.138764, -0.0335957, 0.346371, + 0.0143771, 0.139415, -0.038467, 0.347298, 0.0167894, 0.140272, -0.0436176, 0.348527, 0.0194895, + 0.141457, -0.0491016, 0.350276, 0.0225043, 0.14303, -0.0548764, 0.352646, 0.0258962, 0.145289, + -0.0610096, 0.356206, 0.0297168, 0.148502, -0.0674777, 0.361488, 0.0340562, 0.152188, -0.074345, + 0.367103, 0.0389534, 0.157359, -0.0817442, 0.375247, 0.0445541, 0.16379, -0.0896334, 0.385064, + 0.0509535, 0.171376, -0.098005, 0.396082, 0.0582611, 0.179901, -0.106817, 0.407418, 0.06654, + 0.189892, -0.116239, 0.420031, 0.075994, 0.201838, -0.12627, 0.434321, 0.0867239, 0.214311, + -0.136701, 0.447631, 0.0987517, 0.228902, -0.147616, 0.462046, 0.112353, 0.245107, -0.158871, + 0.476942, 0.127605, 0.262292, -0.170261, 0.490285, 0.144469, 0.281215, -0.182017, 0.503783, + 0.163282, 0.301058, -0.193729, 0.515505, 0.183873, 0.322752, -0.205512, 0.52682, 0.206466, + 0.347547, -0.217214, 0.539473, 0.231194, 0.370969, -0.227966, 0.546625, 0.257288, 0.397533, + -0.238555, 0.55472, 0.285789, 0.42398, -0.248278, 0.559468, 0.315746, 0.452928, -0.257422, + 0.564095, 0.347724, 0.482121, -0.265306, 0.565426, 0.380922, 0.510438, -0.272043, 0.563205, + 0.415639, 0.541188, -0.277614, 0.561087, 0.451702, 0.571667, -0.281927, 0.554922, 0.48845, + 0.602432, -0.285015, 0.546838, 0.526442, 0.634126, -0.286512, 0.537415, 0.564896, 0.662816, + -0.286388, 0.522906, 0.604037, 0.692411, -0.284734, 0.507003, 0.643795, 0.720946, -0.281297, + 0.488398, 0.68298, 0.748293, -0.276262, 0.466353, 0.723466, 0.776931, -0.269978, 0.443573, + 0.764565, 0.801065, -0.260305, 0.415279, 0.805838, 0.825843, -0.247426, 0.384773, 0.849985, + 0.84807, -0.232437, 0.352555, 0.893174, 0.869122, -0.215806, 0.318642, 0.936564, 0.888963, + -0.197307, 0.28381, 0.980253, 0.905547, -0.177203, 0.247888, 1.02463, 0.918554, -0.155542, + 0.212904, 1.06714, 0.931395, -0.131948, 0.1787, 1.10451, 0.941749, -0.106723, 0.145902, 1.13694, + 0.954551, -0.0804939, 0.111193, 1.1666, 0.970279, -0.0534239, 0.0744697, 1.19249, 0.986117, + -0.0257452, 0.0368788, 1.21665, 0.999938, 0.00190634, -0.0010291, 1.23981, 0.118493, -6.47439e-6, + 0.32272, 2.3772e-6, 0.118765, -0.000163023, 0.323456, 5.98573e-5, 0.118772, -0.00065212, 0.323477, + 0.000239447, 0.118843, -0.00146741, 0.323657, 0.000538881, 0.118804, -0.00260846, 0.323553, + 0.00095826, 0.118826, -0.00407576, 0.323595, 0.00149845, 0.118846, -0.00586826, 0.323617, + 0.00216047, 0.118886, -0.00798578, 0.32367, 0.00294679, 0.118947, -0.0104273, 0.323753, + 0.00386124, 0.119055, -0.0131909, 0.323922, 0.00490999, 0.119241, -0.0162444, 0.324251, + 0.00610804, 0.11944, -0.0196339, 0.324544, 0.00745805, 0.119739, -0.0233378, 0.325026, 0.00897805, + 0.12011, -0.0273179, 0.325586, 0.0106895, 0.120571, -0.0316143, 0.326231, 0.0126073, 0.12124, + -0.0361939, 0.327264, 0.0147654, 0.122162, -0.0410511, 0.328733, 0.0172001, 0.123378, -0.0462233, + 0.330659, 0.0199375, 0.125183, -0.0517109, 0.333754, 0.0230498, 0.127832, -0.0575652, 0.338507, + 0.026597, 0.130909, -0.0637441, 0.343666, 0.0306345, 0.135221, -0.0704302, 0.351063, 0.035273, + 0.14082, -0.0776364, 0.360604, 0.0406137, 0.146781, -0.0852293, 0.369638, 0.0466788, 0.155121, + -0.0935351, 0.3827, 0.0537628, 0.16398, -0.102234, 0.39522, 0.0617985, 0.173926, -0.111465, + 0.40793, 0.07097, 0.185137, -0.121296, 0.42105, 0.0813426, 0.19826, -0.13169, 0.435735, 0.0931596, + 0.212938, -0.142614, 0.450932, 0.106547, 0.229046, -0.153884, 0.465726, 0.121575, 0.246246, + -0.165382, 0.479461, 0.138286, 0.264637, -0.176806, 0.492106, 0.15666, 0.284959, -0.188793, + 0.504774, 0.17728, 0.308157, -0.200763, 0.518805, 0.19988, 0.330951, -0.21239, 0.528231, 0.224293, + 0.3549, -0.223521, 0.536376, 0.250541, 0.381502, -0.234169, 0.544846, 0.278902, 0.409529, + -0.244077, 0.551717, 0.309227, 0.437523, -0.253363, 0.55517, 0.341426, 0.467624, -0.261659, + 0.557772, 0.37518, 0.497268, -0.268498, 0.556442, 0.41007, 0.528294, -0.274018, 0.553915, + 0.446445, 0.559053, -0.278169, 0.549153, 0.483779, 0.589329, -0.281229, 0.539878, 0.522249, + 0.622503, -0.282902, 0.53162, 0.561754, 0.652382, -0.282815, 0.518119, 0.601544, 0.681847, + -0.281247, 0.502187, 0.641574, 0.712285, -0.277986, 0.484824, 0.682633, 0.740094, -0.273017, + 0.463483, 0.723426, 0.768478, -0.266692, 0.441299, 0.763747, 0.794556, -0.258358, 0.415238, + 0.805565, 0.819408, -0.248807, 0.386912, 0.847254, 0.843411, -0.236214, 0.356165, 0.891091, + 0.862397, -0.219794, 0.320562, 0.936174, 0.883113, -0.201768, 0.285322, 0.982562, 0.90023, + -0.181672, 0.249713, 1.02862, 0.915192, -0.159279, 0.214546, 1.07163, 0.928458, -0.134725, + 0.180285, 1.10995, 0.94069, -0.10913, 0.147119, 1.14354, 0.953409, -0.0821315, 0.112492, 1.17372, + 0.969537, -0.0542677, 0.0752014, 1.20043, 0.985612, -0.0259096, 0.0370361, 1.22528, 0.999835, + 0.00298198, -0.00151801, 1.24959, 0.10097, -6.02574e-6, 0.300277, 2.02619e-6, 0.101577, + -0.000152164, 0.302077, 5.11662e-5, 0.101572, -0.000608889, 0.302066, 0.000204751, 0.101566, + -0.00136997, 0.302047, 0.000460753, 0.101592, -0.00243557, 0.302114, 0.000819497, 0.101608, + -0.0038053, 0.30214, 0.00128154, 0.101627, -0.00547906, 0.30216, 0.0018483, 0.101669, -0.00745647, + 0.302224, 0.00252223, 0.101732, -0.00973615, 0.302318, 0.00330716, 0.101844, -0.0123097, 0.302513, + 0.00421061, 0.102025, -0.0151681, 0.30285, 0.00524481, 0.102224, -0.0183334, 0.303166, 0.0064154, + 0.102515, -0.0217819, 0.303654, 0.00774063, 0.102886, -0.0255067, 0.304243, 0.0092398, 0.103395, + -0.029514, 0.305089, 0.0109339, 0.104109, -0.0337912, 0.306301, 0.0128561, 0.105074, -0.0383565, + 0.30798, 0.0150338, 0.10654, -0.0432132, 0.310726, 0.0175228, 0.108478, -0.0484244, 0.314351, + 0.0203648, 0.111015, -0.0539339, 0.319032, 0.0236325, 0.114682, -0.0598885, 0.32605, 0.0274188, + 0.11911, -0.0663375, 0.334109, 0.0317905, 0.124736, -0.0733011, 0.344013, 0.0368502, 0.131479, + -0.0807744, 0.355358, 0.0427104, 0.139283, -0.0888204, 0.367614, 0.0494788, 0.148054, -0.0973394, + 0.380072, 0.0572367, 0.159037, -0.10665, 0.395678, 0.0662704, 0.169794, -0.116221, 0.40795, + 0.0763192, 0.18314, -0.126632, 0.423546, 0.087956, 0.197515, -0.137383, 0.438213, 0.101042, + 0.213514, -0.148641, 0.453248, 0.115827, 0.23065, -0.160117, 0.46688, 0.132283, 0.249148, + -0.171807, 0.479962, 0.150644, 0.270219, -0.183695, 0.494618, 0.171073, 0.292338, -0.195574, + 0.506937, 0.193378, 0.314999, -0.207205, 0.516463, 0.217585, 0.340991, -0.218955, 0.528123, + 0.24428, 0.367982, -0.229917, 0.537025, 0.272784, 0.39432, -0.239737, 0.541627, 0.302742, + 0.423364, -0.249048, 0.546466, 0.335112, 0.453751, -0.257329, 0.549466, 0.369032, 0.48416, + -0.264623, 0.549503, 0.404577, 0.515262, -0.270411, 0.547008, 0.441337, 0.547036, -0.274581, + 0.542249, 0.479162, 0.576614, -0.277266, 0.533015, 0.517904, 0.611143, -0.279144, 0.525512, + 0.558508, 0.640989, -0.279001, 0.51154, 0.598995, 0.671182, -0.277324, 0.495641, 0.639935, + 0.700848, -0.273908, 0.477526, 0.681017, 0.729862, -0.269063, 0.457955, 0.722764, 0.758273, + -0.262282, 0.434846, 0.764349, 0.784121, -0.254281, 0.409203, 0.806206, 0.809798, -0.24505, + 0.382694, 0.848617, 0.834953, -0.233861, 0.354034, 0.892445, 0.856817, -0.221308, 0.321764, + 0.936263, 0.877609, -0.205996, 0.288118, 0.982401, 0.897489, -0.186702, 0.253277, 1.02975, + 0.913792, -0.164618, 0.217963, 1.07488, 0.92785, -0.140023, 0.183221, 1.11487, 0.940378, -0.11328, + 0.149385, 1.14947, 0.95273, -0.0853958, 0.114152, 1.1807, 0.969059, -0.0568698, 0.0769845, + 1.20912, 0.985574, -0.0276502, 0.0381186, 1.23498, 0.999943, 0.00239052, -0.00126861, 1.25987, + 0.0852715, -5.60067e-6, 0.279021, 1.71162e-6, 0.0854143, -0.000140871, 0.279483, 4.30516e-5, + 0.0854191, -0.000563385, 0.2795, 0.000172184, 0.0854188, -0.00126753, 0.279493, 0.000387464, + 0.0854229, -0.00225337, 0.279501, 0.00068918, 0.0854443, -0.00352086, 0.279549, 0.00107803, + 0.0854697, -0.00506962, 0.279591, 0.00155536, 0.0855093, -0.00689873, 0.279652, 0.00212354, + 0.0855724, -0.00900821, 0.279752, 0.00278703, 0.0856991, -0.0113799, 0.280011, 0.0035551, + 0.085855, -0.0140314, 0.280297, 0.00443449, 0.0860682, -0.016963, 0.280682, 0.00543636, 0.086344, + -0.0201438, 0.281159, 0.0065788, 0.0867426, -0.0235999, 0.281886, 0.00787977, 0.087239, + -0.0273069, 0.282745, 0.0093606, 0.0879815, -0.031269, 0.284139, 0.011056, 0.0891258, -0.035531, + 0.28647, 0.0130065, 0.0906909, -0.0400947, 0.289708, 0.0152495, 0.0927624, -0.0449638, 0.293904, + 0.0178454, 0.0958376, -0.0502427, 0.300471, 0.0208915, 0.0995827, -0.0559514, 0.30806, 0.0244247, + 0.104526, -0.0622152, 0.317874, 0.0285721, 0.110532, -0.0690046, 0.329332, 0.0334227, 0.117385, + -0.0763068, 0.341217, 0.0390466, 0.12522, -0.084184, 0.353968, 0.0455786, 0.134037, -0.0925248, + 0.366797, 0.0530773, 0.144014, -0.101487, 0.380209, 0.0617424, 0.156013, -0.111273, 0.395956, + 0.071777, 0.168872, -0.121431, 0.41053, 0.0830905, 0.183089, -0.132105, 0.425073, 0.0959341, + 0.198763, -0.143286, 0.439833, 0.110448, 0.216159, -0.154841, 0.454507, 0.126769, 0.234859, + -0.166588, 0.468368, 0.14495, 0.255879, -0.178626, 0.482846, 0.165233, 0.27677, -0.190218, + 0.493489, 0.187217, 0.301184, -0.202227, 0.506549, 0.211659, 0.325852, -0.213764, 0.5158, + 0.237922, 0.352824, -0.22487, 0.525442, 0.26632, 0.380882, -0.235246, 0.532487, 0.296691, + 0.410137, -0.244847, 0.537703, 0.329179, 0.439787, -0.253122, 0.540361, 0.363135, 0.472291, + -0.260517, 0.542734, 0.399222, 0.501856, -0.266519, 0.538826, 0.436352, 0.534816, -0.270905, + 0.535152, 0.474505, 0.565069, -0.273826, 0.525979, 0.513988, 0.597154, -0.275333, 0.516394, + 0.554852, 0.630473, -0.275314, 0.506206, 0.596592, 0.660574, -0.273323, 0.489769, 0.638117, + 0.692015, -0.270008, 0.472578, 0.680457, 0.720647, -0.265001, 0.452134, 0.723008, 0.750528, + -0.258311, 0.430344, 0.765954, 0.777568, -0.250046, 0.405624, 0.809012, 0.80387, -0.240114, + 0.378339, 0.852425, 0.828439, -0.228737, 0.349877, 0.895346, 0.851472, -0.216632, 0.318968, + 0.940695, 0.873906, -0.202782, 0.287489, 0.987235, 0.89467, -0.187059, 0.254394, 1.03348, + 0.912281, -0.168818, 0.221294, 1.07812, 0.927358, -0.146494, 0.18675, 1.11928, 0.940385, + -0.120009, 0.152322, 1.15609, 0.952672, -0.0917183, 0.117514, 1.18875, 0.968496, -0.0620321, + 0.0797405, 1.21821, 0.985236, -0.0314945, 0.0402383, 1.24523, 0.99998, -0.000575153, 0.000110644, + 1.27133, 0.0702429, -5.12222e-6, 0.255273, 1.40947e-6, 0.0702981, -0.000128826, 0.255469, + 3.54488e-5, 0.0703691, -0.000515562, 0.255727, 0.000141874, 0.0703805, -0.00116, 0.255754, + 0.00031929, 0.0703961, -0.00206224, 0.255813, 0.000567999, 0.0704102, -0.00322223, 0.255839, + 0.00088871, 0.0704298, -0.00463928, 0.255863, 0.00128272, 0.0704759, -0.00631375, 0.255953, + 0.00175283, 0.0705434, -0.00824317, 0.256079, 0.00230342, 0.0706693, -0.010412, 0.25636, + 0.0029443, 0.0708189, -0.0128439, 0.256647, 0.00368031, 0.0710364, -0.0155177, 0.257084, + 0.00452614, 0.0713223, -0.0184374, 0.257637, 0.00549706, 0.0717182, -0.0216002, 0.258416, + 0.00661246, 0.072321, -0.0249966, 0.259699, 0.00790147, 0.0731446, -0.0286566, 0.261475, + 0.0093884, 0.0743352, -0.0325888, 0.264132, 0.0111186, 0.0760676, -0.036843, 0.26815, 0.013145, + 0.078454, -0.0414292, 0.273636, 0.0155251, 0.0818618, -0.0464634, 0.281653, 0.0183525, 0.0857382, + -0.0519478, 0.289992, 0.0216642, 0.0908131, -0.0579836, 0.30066, 0.0255956, 0.0967512, -0.0645124, + 0.312204, 0.0301954, 0.103717, -0.0716505, 0.325001, 0.0356017, 0.111596, -0.0793232, 0.338129, + 0.041896, 0.120933, -0.087645, 0.352853, 0.0492447, 0.130787, -0.096492, 0.366192, 0.0576749, + 0.142311, -0.105973, 0.380864, 0.0673969, 0.155344, -0.116182, 0.396575, 0.0785899, 0.169535, + -0.126815, 0.411443, 0.0912377, 0.185173, -0.138015, 0.426256, 0.105607, 0.201755, -0.149325, + 0.439607, 0.121551, 0.221334, -0.161207, 0.455467, 0.139608, 0.241461, -0.173162, 0.469096, + 0.159591, 0.26294, -0.18504, 0.481014, 0.18156, 0.286776, -0.196881, 0.493291, 0.205781, 0.311596, + -0.208311, 0.503556, 0.231819, 0.338667, -0.219671, 0.513268, 0.260274, 0.366021, -0.230451, + 0.519414, 0.290862, 0.395875, -0.240131, 0.526766, 0.323196, 0.425564, -0.248566, 0.52905, + 0.357071, 0.457094, -0.256195, 0.530796, 0.393262, 0.488286, -0.262331, 0.528703, 0.430797, + 0.522291, -0.267141, 0.52727, 0.470231, 0.554172, -0.270411, 0.519848, 0.510477, 0.586427, + -0.271986, 0.510307, 0.551594, 0.619638, -0.27192, 0.499158, 0.593849, 0.650656, -0.269817, + 0.483852, 0.636314, 0.68284, -0.266267, 0.467515, 0.679679, 0.714356, -0.26113, 0.44931, 0.723884, + 0.742717, -0.254067, 0.425789, 0.767245, 0.770894, -0.245652, 0.401144, 0.811819, 0.797358, + -0.235554, 0.374224, 0.856315, 0.823377, -0.223896, 0.346167, 0.901077, 0.847456, -0.210865, + 0.316056, 0.946502, 0.870697, -0.196574, 0.284503, 0.993711, 0.891068, -0.180814, 0.251628, + 1.04134, 0.909267, -0.163314, 0.219065, 1.08609, 0.925653, -0.143304, 0.186446, 1.12702, 0.940017, + -0.121322, 0.153416, 1.16371, 0.952398, -0.0973872, 0.120334, 1.19712, 0.967568, -0.0698785, + 0.08352, 1.22791, 0.984772, -0.0390031, 0.0439209, 1.25672, 1.00026, -0.0070087, 0.00315668, + 1.28428, 0.0556653, -4.59654e-6, 0.227325, 1.12556e-6, 0.0565238, -0.000116382, 0.230826, + 2.84985e-5, 0.0565717, -0.000465666, 0.231026, 0.000114036, 0.0565859, -0.00104773, 0.231079, + 0.000256656, 0.0565761, -0.00186255, 0.231025, 0.00045663, 0.0565913, -0.00291002, 0.231058, + 0.000714664, 0.0566108, -0.00418998, 0.231085, 0.00103224, 0.0566532, -0.00570206, 0.231169, + 0.00141202, 0.0567473, -0.00743666, 0.231417, 0.00186018, 0.0568567, -0.00940298, 0.231661, + 0.00238264, 0.0569859, -0.0115991, 0.231895, 0.00298699, 0.0572221, -0.0140096, 0.232456, + 0.00368957, 0.057519, -0.0166508, 0.233096, 0.00450303, 0.0579534, -0.01951, 0.234094, 0.00544945, + 0.0585922, -0.0225991, 0.235629, 0.00655564, 0.0595647, -0.0259416, 0.238106, 0.00785724, + 0.0609109, -0.0295661, 0.241557, 0.00939127, 0.0628751, -0.0335126, 0.246652, 0.0112198, + 0.0656908, -0.0378604, 0.254091, 0.0134168, 0.0691347, -0.0426543, 0.262666, 0.0160374, 0.0732165, + -0.0478967, 0.272029, 0.0191514, 0.0782863, -0.0536716, 0.283007, 0.0228597, 0.0843973, + -0.0600683, 0.295732, 0.0272829, 0.0913598, -0.0670095, 0.308779, 0.032484, 0.0994407, -0.0745516, + 0.322886, 0.0385886, 0.108189, -0.082712, 0.336408, 0.0457133, 0.118574, -0.0914927, 0.351692, + 0.0539832, 0.129989, -0.100854, 0.366502, 0.0635162, 0.142722, -0.110837, 0.381675, 0.0744386, + 0.156654, -0.121353, 0.3963, 0.0868483, 0.172151, -0.132414, 0.411477, 0.100963, 0.188712, + -0.143809, 0.42508, 0.116795, 0.208093, -0.155765, 0.441328, 0.134715, 0.227936, -0.167608, + 0.454328, 0.154396, 0.249495, -0.179579, 0.467235, 0.176179, 0.27362, -0.191488, 0.480248, + 0.200193, 0.296371, -0.202618, 0.487886, 0.225775, 0.324234, -0.214133, 0.499632, 0.25441, + 0.353049, -0.225212, 0.509532, 0.285077, 0.381785, -0.234875, 0.514265, 0.317047, 0.414038, + -0.244205, 0.521282, 0.351874, 0.445251, -0.252145, 0.522931, 0.388279, 0.476819, -0.258433, + 0.520947, 0.425825, 0.509209, -0.263411, 0.517669, 0.465104, 0.542759, -0.266732, 0.512841, + 0.505741, 0.574822, -0.268263, 0.503317, 0.547611, 0.609324, -0.268489, 0.493035, 0.590953, + 0.641772, -0.266941, 0.478816, 0.63488, 0.674049, -0.263297, 0.462863, 0.679072, 0.705071, + -0.257618, 0.442931, 0.723487, 0.734709, -0.250625, 0.421299, 0.768708, 0.763704, -0.24179, + 0.397085, 0.814375, 0.791818, -0.231115, 0.370577, 0.859907, 0.817439, -0.21922, 0.34232, + 0.906715, 0.843202, -0.205658, 0.312627, 0.953943, 0.866639, -0.190563, 0.280933, 1.00185, + 0.888129, -0.173978, 0.248393, 1.05105, 0.907239, -0.155485, 0.216007, 1.09704, 0.923893, + -0.134782, 0.183233, 1.13857, 0.938882, -0.11249, 0.150376, 1.17539, 0.952464, -0.0890706, + 0.117177, 1.20924, 0.968529, -0.0646523, 0.0813095, 1.24055, 0.984763, -0.038606, 0.0439378, + 1.27018, 1.00053, -0.01238, 0.00598668, 1.29873, 0.0437928, -4.09594e-6, 0.204012, 8.79224e-7, + 0.0440166, -0.000103395, 0.205049, 2.21946e-5, 0.0440529, -0.000413633, 0.205225, 8.87981e-5, + 0.0440493, -0.000930594, 0.2052, 0.000199858, 0.0439884, -0.00165352, 0.204901, 0.000355495, + 0.0440716, -0.0025849, 0.205255, 0.000556983, 0.0440968, -0.00372222, 0.205311, 0.000805326, + 0.0441359, -0.00506478, 0.205391, 0.00110333, 0.0442231, -0.00660384, 0.205638, 0.00145768, + 0.0443254, -0.00835246, 0.205877, 0.00187275, 0.0444832, -0.0102992, 0.20627, 0.00235938, + 0.0447001, -0.0124449, 0.206796, 0.0029299, 0.0450168, -0.0147935, 0.207593, 0.0036005, 0.0454816, + -0.017336, 0.208819, 0.00439246, 0.0462446, -0.0201156, 0.211036, 0.00533864, 0.0473694, + -0.0231568, 0.214388, 0.00646984, 0.0490191, -0.0264941, 0.219357, 0.00783856, 0.0512776, + -0.030184, 0.226061, 0.00950182, 0.0541279, -0.0342661, 0.234094, 0.0115156, 0.0578989, + -0.0388539, 0.244297, 0.0139687, 0.0620835, -0.0438735, 0.254457, 0.0169015, 0.0673497, -0.04951, + 0.266706, 0.0204554, 0.0731759, -0.0556263, 0.278753, 0.0246606, 0.0803937, -0.0624585, 0.29309, + 0.0297126, 0.0879287, -0.0697556, 0.305856, 0.0355868, 0.0970669, -0.0778795, 0.321059, 0.0425768, + 0.106508, -0.0863541, 0.333873, 0.05056, 0.11776, -0.0955935, 0.349008, 0.0598972, 0.130081, + -0.105438, 0.363776, 0.0706314, 0.144454, -0.115899, 0.380112, 0.0828822, 0.1596, -0.126827, + 0.394843, 0.0967611, 0.176097, -0.138161, 0.409033, 0.112381, 0.194726, -0.149904, 0.424257, + 0.129952, 0.213944, -0.161675, 0.436945, 0.149333, 0.235516, -0.173659, 0.450176, 0.170892, + 0.260564, -0.185963, 0.466305, 0.194984, 0.285183, -0.197582, 0.477328, 0.220805, 0.311095, + -0.208697, 0.486566, 0.248694, 0.338924, -0.219519, 0.494811, 0.279015, 0.369757, -0.229766, + 0.504065, 0.311725, 0.3996, -0.238879, 0.507909, 0.345844, 0.430484, -0.246802, 0.509805, + 0.381749, 0.46413, -0.253924, 0.511436, 0.420251, 0.497077, -0.259319, 0.508787, 0.459957, + 0.530434, -0.263297, 0.50394, 0.501356, 0.565725, -0.265619, 0.49804, 0.544252, 0.599254, + -0.265842, 0.487346, 0.587856, 0.631251, -0.263978, 0.472975, 0.631969, 0.663972, -0.26043, + 0.457135, 0.677471, 0.697724, -0.255358, 0.439844, 0.723744, 0.727725, -0.248308, 0.417872, + 0.770653, 0.756417, -0.239181, 0.39273, 0.817357, 0.785419, -0.22814, 0.367839, 0.864221, 0.81266, + -0.215681, 0.339449, 0.912701, 0.839391, -0.201623, 0.309279, 0.962419, 0.86366, -0.185624, + 0.278029, 1.0122, 0.885028, -0.16797, 0.245294, 1.06186, 0.904639, -0.148336, 0.212689, 1.10934, + 0.922048, -0.12637, 0.179616, 1.15063, 0.936952, -0.102928, 0.146749, 1.18885, 0.951895, + -0.0785268, 0.112733, 1.22352, 0.967198, -0.0530153, 0.0760056, 1.25681, 0.984405, -0.02649, + 0.0383183, 1.28762, 1.00021, 0.00070019, -0.00020039, 1.31656, 0.0325964, -3.55447e-6, 0.176706, + 6.55682e-7, 0.0329333, -8.99174e-5, 0.178527, 1.65869e-5, 0.0329181, -0.000359637, 0.178453, + 6.63498e-5, 0.0329085, -0.000808991, 0.178383, 0.000149332, 0.0329181, -0.00143826, 0.178394, + 0.000265873, 0.0329425, -0.00224678, 0.178517, 0.000416597, 0.0329511, -0.00323575, 0.17849, + 0.000603299, 0.033011, -0.00439875, 0.178695, 0.000829422, 0.0330733, -0.00574059, 0.178843, + 0.00109908, 0.0331857, -0.00725896, 0.179176, 0.00141933, 0.0333445, -0.00895289, 0.179618, + 0.0017999, 0.0335674, -0.0108219, 0.180238, 0.00225316, 0.033939, -0.0128687, 0.181417, + 0.00279765, 0.0345239, -0.015114, 0.183395, 0.0034564, 0.0354458, -0.017596, 0.186616, 0.00425864, + 0.0368313, -0.0203524, 0.191547, 0.00524936, 0.0386115, -0.0234105, 0.197508, 0.00647033, + 0.0410303, -0.0268509, 0.205395, 0.00798121, 0.0442245, -0.0307481, 0.215365, 0.0098557, + 0.0478659, -0.0350863, 0.225595, 0.0121417, 0.0522416, -0.0399506, 0.236946, 0.0149385, 0.0574513, + -0.045357, 0.249442, 0.0183189, 0.0631208, -0.0512863, 0.261222, 0.0223644, 0.0701124, -0.0579273, + 0.275418, 0.0272418, 0.0777331, -0.0650652, 0.288989, 0.0329458, 0.0862709, -0.0728813, 0.302546, + 0.0396819, 0.096103, -0.081363, 0.317164, 0.04757, 0.106976, -0.0904463, 0.331733, 0.0567012, + 0.119175, -0.100105, 0.34661, 0.067202, 0.132919, -0.110375, 0.362249, 0.0792588, 0.147727, + -0.121115, 0.376978, 0.0928672, 0.163618, -0.132299, 0.390681, 0.108228, 0.182234, -0.143887, + 0.406571, 0.125502, 0.201809, -0.155827, 0.42042, 0.144836, 0.225041, -0.168357, 0.438411, + 0.166706, 0.247621, -0.18004, 0.450368, 0.189909, 0.27097, -0.191536, 0.460083, 0.215251, + 0.296658, -0.203024, 0.469765, 0.243164, 0.325892, -0.214056, 0.481837, 0.273388, 0.35406, + -0.224104, 0.487474, 0.305344, 0.384372, -0.233489, 0.492773, 0.339741, 0.41749, -0.241874, + 0.498451, 0.376287, 0.45013, -0.248834, 0.499632, 0.414195, 0.481285, -0.254658, 0.495233, + 0.454077, 0.519183, -0.259367, 0.496401, 0.496352, 0.551544, -0.261818, 0.487686, 0.538798, + 0.587349, -0.262964, 0.479453, 0.583626, 0.621679, -0.262128, 0.467709, 0.629451, 0.654991, + -0.258998, 0.452123, 0.67566, 0.686873, -0.254119, 0.433495, 0.723248, 0.719801, -0.246946, + 0.413657, 0.771156, 0.750355, -0.237709, 0.390366, 0.81989, 0.780033, -0.226549, 0.364947, + 0.868601, 0.809254, -0.214186, 0.337256, 0.920034, 0.836576, -0.199639, 0.307395, 0.971706, + 0.861774, -0.183169, 0.275431, 1.02479, 0.885707, -0.165111, 0.243431, 1.07837, 0.904742, + -0.144363, 0.210921, 1.12783, 0.915604, -0.121305, 0.17647, 1.17254, 0.930959, -0.0962119, + 0.143106, 1.21012, 0.948404, -0.069969, 0.108112, 1.24474, 0.967012, -0.0427586, 0.0708478, + 1.27718, 0.984183, -0.0147043, 0.032335, 1.3083, 0.999577, 0.0142165, -0.00726867, 1.3382, + 0.0229227, -2.99799e-6, 0.148623, 4.62391e-7, 0.0232194, -7.58796e-5, 0.15054, 1.17033e-5, + 0.0232315, -0.000303636, 0.15063, 4.68397e-5, 0.0232354, -0.000683189, 0.150624, 0.000105472, + 0.0232092, -0.0012136, 0.150445, 0.000187744, 0.0232523, -0.00189765, 0.150679, 0.000294847, + 0.0232828, -0.00273247, 0.150789, 0.000428013, 0.0233371, -0.00371287, 0.150995, 0.000591134, + 0.0234015, -0.00484794, 0.15118, 0.000787642, 0.023514, -0.00612877, 0.151562, 0.00102547, + 0.023679, -0.00756125, 0.152116, 0.00131351, 0.0239559, -0.00914651, 0.153162, 0.00166594, + 0.0244334, -0.010904, 0.155133, 0.00210182, 0.025139, -0.0128615, 0.158035, 0.00264406, 0.0262598, + -0.0150628, 0.162751, 0.00332923, 0.0277875, -0.0175532, 0.168944, 0.00419773, 0.0298472, + -0.0203981, 0.176835, 0.00530034, 0.0325444, -0.023655, 0.186686, 0.00669777, 0.0355581, + -0.0272982, 0.196248, 0.00842661, 0.0392841, -0.0314457, 0.207352, 0.0105854, 0.0436815, + -0.0361157, 0.219279, 0.0132458, 0.0485272, -0.0412932, 0.230728, 0.0164736, 0.0541574, + -0.0470337, 0.242994, 0.0203715, 0.0609479, -0.0535002, 0.257042, 0.0250953, 0.0685228, + -0.0605409, 0.27102, 0.0306856, 0.0768042, -0.0680553, 0.28406, 0.037193, 0.0864844, -0.0765011, + 0.299186, 0.0449795, 0.0969415, -0.0852674, 0.3132, 0.0538316, 0.108478, -0.0947333, 0.327138, + 0.0641149, 0.121705, -0.10481, 0.342345, 0.0759185, 0.136743, -0.115474, 0.358472, 0.0894116, + 0.152986, -0.126536, 0.374067, 0.104562, 0.170397, -0.138061, 0.388267, 0.121632, 0.191392, + -0.150203, 0.406467, 0.140996, 0.211566, -0.161751, 0.418641, 0.161696, 0.233567, -0.173407, + 0.430418, 0.184557, 0.257769, -0.185397, 0.44277, 0.210092, 0.28531, -0.197048, 0.457191, + 0.237827, 0.311726, -0.20784, 0.464712, 0.267253, 0.340537, -0.218345, 0.472539, 0.299332, + 0.372921, -0.228306, 0.482331, 0.333988, 0.402924, -0.236665, 0.484378, 0.369722, 0.434475, + -0.244097, 0.484717, 0.407836, 0.469736, -0.250547, 0.487093, 0.448465, 0.505045, -0.25511, + 0.485575, 0.490263, 0.540262, -0.258444, 0.481225, 0.534495, 0.576347, -0.259903, 0.473481, + 0.579451, 0.608656, -0.259572, 0.4603, 0.625604, 0.646679, -0.257908, 0.450341, 0.674511, + 0.679902, -0.253663, 0.431561, 0.723269, 0.714159, -0.247419, 0.412684, 0.773263, 0.745345, + -0.239122, 0.389388, 0.824182, 0.778248, -0.228837, 0.365361, 0.876634, 0.807208, -0.216197, + 0.337667, 0.92945, 0.835019, -0.201772, 0.307197, 0.985261, 0.860261, -0.185291, 0.274205, + 1.04299, 0.877601, -0.165809, 0.240178, 1.09816, 0.898211, -0.143897, 0.207571, 1.14694, 0.915789, + -0.119513, 0.174904, 1.19008, 0.931831, -0.0932919, 0.141423, 1.2297, 0.949244, -0.0656528, + 0.105603, 1.26553, 0.967527, -0.0370262, 0.0679551, 1.29986, 0.984139, -0.00730117, 0.0283133, + 1.33252, 0.999713, 0.0234648, -0.0121785, 1.36397, 0.0152135, -2.45447e-6, 0.122795, 3.04092e-7, + 0.0151652, -6.15778e-5, 0.122399, 7.6292e-6, 0.0151181, -0.000245948, 0.122023, 3.04802e-5, + 0.0151203, -0.000553394, 0.12203, 6.86634e-5, 0.015125, -0.000983841, 0.122037, 0.000122463, + 0.0151427, -0.00153774, 0.12214, 0.000192706, 0.0151708, -0.0022103, 0.122237, 0.000281219, + 0.0152115, -0.00300741, 0.12238, 0.000390804, 0.0152877, -0.00392494, 0.1227, 0.000526317, + 0.015412, -0.00496597, 0.123244, 0.00069443, 0.0156201, -0.00613314, 0.124228, 0.00090547, + 0.0159658, -0.00744113, 0.125945, 0.0011732, 0.0165674, -0.00892546, 0.129098, 0.00151888, + 0.017487, -0.010627, 0.133865, 0.00197007, 0.018839, -0.0126043, 0.140682, 0.0025637, 0.020554, + -0.0148814, 0.148534, 0.00333637, 0.0226727, -0.0175123, 0.157381, 0.00433738, 0.0251879, + -0.0205266, 0.166685, 0.00561664, 0.0283635, -0.0240319, 0.177796, 0.00725563, 0.0318694, + -0.0279432, 0.188251, 0.00928811, 0.0361044, -0.0324313, 0.200038, 0.011835, 0.0406656, + -0.0373527, 0.210685, 0.0149146, 0.0463846, -0.0430132, 0.224182, 0.0187254, 0.0525696, + -0.0491013, 0.23634, 0.0232283, 0.0598083, -0.0559175, 0.250013, 0.0286521, 0.0679437, -0.0633657, + 0.263981, 0.0350634, 0.0771181, -0.0714602, 0.278072, 0.0425882, 0.0881273, -0.0803502, 0.29511, + 0.0514487, 0.0996628, -0.0896903, 0.309976, 0.0615766, 0.112702, -0.099644, 0.325611, 0.0732139, + 0.126488, -0.109829, 0.339321, 0.0862324, 0.142625, -0.120859, 0.35574, 0.101275, 0.15953, + -0.131956, 0.369845, 0.117892, 0.176991, -0.143145, 0.38146, 0.136205, 0.199715, -0.155292, + 0.40052, 0.157252, 0.220787, -0.167066, 0.412055, 0.179966, 0.243697, -0.178396, 0.423133, + 0.204418, 0.272106, -0.190433, 0.439524, 0.232141, 0.297637, -0.201265, 0.447041, 0.261109, + 0.325273, -0.211834, 0.454488, 0.292627, 0.357219, -0.221889, 0.465004, 0.326669, 0.387362, + -0.230729, 0.468527, 0.362426, 0.423131, -0.23924, 0.475836, 0.401533, 0.45543, -0.246067, + 0.475017, 0.441902, 0.493393, -0.251557, 0.478017, 0.484239, 0.526253, -0.255571, 0.4709, + 0.528586, 0.560554, -0.257752, 0.463167, 0.574346, 0.599306, -0.258076, 0.456452, 0.621655, + 0.634541, -0.256471, 0.443725, 0.670492, 0.668907, -0.253283, 0.428719, 0.721943, 0.705619, + -0.247562, 0.411348, 0.772477, 0.739034, -0.240626, 0.388939, 0.8264, 0.771408, -0.231493, + 0.36425, 0.881702, 0.803312, -0.220125, 0.337321, 0.9385, 0.828457, -0.206645, 0.305364, 0.997437, + 0.854819, -0.190664, 0.273715, 1.05693, 0.878666, -0.171429, 0.242218, 1.11251, 0.898404, + -0.149235, 0.209556, 1.16398, 0.917416, -0.12435, 0.176863, 1.21014, 0.933133, -0.0972703, + 0.142775, 1.25178, 0.95066, -0.0683607, 0.106735, 1.29028, 0.968589, -0.0378724, 0.0681609, + 1.32703, 0.984776, -0.00605712, 0.0273966, 1.36158, 0.99994, 0.0263276, -0.0138124, 1.3943, + 0.00867437, -1.86005e-6, 0.0928979, 1.73682e-7, 0.00864003, -4.66389e-5, 0.0925237, 4.35505e-6, + 0.00864593, -0.000186594, 0.0925806, 1.74322e-5, 0.00864095, -0.000419639, 0.0924903, 3.92862e-5, + 0.00863851, -0.000746272, 0.0924589, 7.02598e-5, 0.00868531, -0.00116456, 0.0929, 0.000111188, + 0.00869667, -0.00167711, 0.0928529, 0.000163867, 0.00874332, -0.00228051, 0.0930914, 0.00023104, + 0.00882709, -0.00297864, 0.0935679, 0.00031741, 0.00898874, -0.00377557, 0.0946165, 0.000430186, + 0.00929346, -0.00469247, 0.0967406, 0.000580383, 0.00978271, -0.00575491, 0.100084, 0.000783529, + 0.0105746, -0.00701514, 0.105447, 0.00106304, 0.0116949, -0.00851797, 0.112494, 0.00144685, + 0.0130419, -0.0102757, 0.119876, 0.00196439, 0.0148375, -0.012381, 0.129034, 0.00266433, + 0.0168725, -0.01482, 0.137812, 0.00358364, 0.0193689, -0.0176563, 0.147696, 0.00478132, 0.0222691, + -0.0209211, 0.157795, 0.00631721, 0.0256891, -0.0246655, 0.168431, 0.00826346, 0.0294686, + -0.0288597, 0.178587, 0.0106714, 0.0340412, -0.0336441, 0.190251, 0.0136629, 0.0393918, -0.039033, + 0.202999, 0.0173272, 0.0453947, -0.0450087, 0.215655, 0.0217448, 0.0521936, -0.0515461, 0.228686, + 0.0269941, 0.0600279, -0.058817, 0.242838, 0.033272, 0.0692398, -0.0667228, 0.258145, 0.0406457, + 0.0793832, -0.0752401, 0.273565, 0.0492239, 0.0902297, -0.0841851, 0.287735, 0.0590105, 0.102014, + -0.0936479, 0.301161, 0.0702021, 0.116054, -0.103967, 0.317438, 0.0832001, 0.13191, -0.114622, + 0.334166, 0.0977951, 0.148239, -0.125452, 0.348192, 0.113985, 0.165809, -0.136453, 0.361094, + 0.131928, 0.184616, -0.147648, 0.373534, 0.151811, 0.207491, -0.159607, 0.39101, 0.174476, + 0.230106, -0.171119, 0.402504, 0.198798, 0.257036, -0.182906, 0.418032, 0.225796, 0.281172, + -0.193605, 0.425468, 0.254027, 0.312034, -0.204771, 0.440379, 0.285713, 0.340402, -0.214988, + 0.445406, 0.319196, 0.370231, -0.224711, 0.44968, 0.35537, 0.407105, -0.233516, 0.460747, + 0.393838, 0.439037, -0.240801, 0.460624, 0.433747, 0.47781, -0.24762, 0.465957, 0.477234, + 0.510655, -0.251823, 0.460054, 0.52044, 0.550584, -0.255552, 0.459172, 0.567853, 0.585872, + -0.257036, 0.450311, 0.615943, 0.620466, -0.257535, 0.437763, 0.667693, 0.660496, -0.255248, + 0.426639, 0.718988, 0.695578, -0.251141, 0.409185, 0.772503, 0.732176, -0.244718, 0.39015, + 0.827023, 0.760782, -0.236782, 0.362594, 0.885651, 0.79422, -0.225923, 0.33711, 0.943756, + 0.824521, -0.213855, 0.308272, 1.00874, 0.854964, -0.197723, 0.278529, 1.06764, 0.878065, + -0.179209, 0.246208, 1.12836, 0.899834, -0.157569, 0.21329, 1.18318, 0.918815, -0.133206, + 0.181038, 1.23161, 0.934934, -0.106545, 0.146993, 1.27644, 0.952115, -0.0780574, 0.111175, + 1.31842, 0.96906, -0.0478279, 0.0728553, 1.35839, 0.985178, -0.0160014, 0.032579, 1.39697, + 1.00039, 0.0173126, -0.0095256, 1.43312, 0.00384146, -1.24311e-6, 0.0613583, 7.78271e-8, + 0.00390023, -3.14043e-5, 0.0622919, 1.96626e-6, 0.00389971, -0.000125622, 0.0622632, 7.87379e-6, + 0.00389491, -0.000282352, 0.0620659, 1.778e-5, 0.00391618, -0.000502512, 0.0624687, 3.20918e-5, + 0.00392662, -0.000784458, 0.0625113, 5.15573e-5, 0.00396053, -0.00112907, 0.0628175, 7.78668e-5, + 0.00401911, -0.00153821, 0.0633286, 0.000113811, 0.00414994, -0.0020208, 0.0646443, 0.00016445, + 0.00441223, -0.00260007, 0.0673886, 0.000237734, 0.00484427, -0.0033097, 0.0716528, 0.000345929, + 0.00549109, -0.00418966, 0.0774998, 0.000505987, 0.00636293, -0.00527331, 0.0844758, 0.000739208, + 0.00746566, -0.00660428, 0.0921325, 0.00107347, 0.00876625, -0.00818826, 0.0997067, 0.00153691, + 0.0103125, -0.0100811, 0.107433, 0.00217153, 0.0123309, -0.0123643, 0.117088, 0.00303427, + 0.0146274, -0.0150007, 0.126438, 0.00416018, 0.0172295, -0.0180531, 0.135672, 0.00561513, + 0.0204248, -0.0215962, 0.146244, 0.007478, 0.0241597, -0.0256234, 0.157481, 0.00981046, 0.0284693, + -0.0302209, 0.169125, 0.0127148, 0.033445, -0.0353333, 0.181659, 0.0162453, 0.0391251, -0.0410845, + 0.1944, 0.0205417, 0.0454721, -0.0473451, 0.207082, 0.0256333, 0.0530983, -0.0542858, 0.221656, + 0.0317036, 0.0615356, -0.0618384, 0.236036, 0.0388319, 0.0703363, -0.0697631, 0.248398, 0.046974, + 0.0810391, -0.0784757, 0.263611, 0.0565246, 0.0920144, -0.0873488, 0.275857, 0.0671724, 0.105584, + -0.0973652, 0.292555, 0.0798105, 0.119506, -0.107271, 0.306333, 0.0935945, 0.134434, -0.117608, + 0.318888, 0.109106, 0.153399, -0.128938, 0.337552, 0.127074, 0.171258, -0.139944, 0.349955, + 0.14643, 0.191059, -0.151288, 0.361545, 0.168, 0.215069, -0.163018, 0.378421, 0.192082, 0.237838, + -0.174226, 0.38879, 0.217838, 0.266965, -0.186063, 0.405857, 0.246931, 0.292827, -0.196909, + 0.414146, 0.277505, 0.324352, -0.207473, 0.426955, 0.310711, 0.354427, -0.217713, 0.433429, + 0.346794, 0.389854, -0.227183, 0.443966, 0.385237, 0.420749, -0.235131, 0.44471, 0.424955, + 0.459597, -0.242786, 0.451729, 0.468446, 0.495316, -0.248767, 0.45072, 0.513422, 0.534903, + -0.253351, 0.450924, 0.560618, 0.572369, -0.256277, 0.445266, 0.609677, 0.612383, -0.2576, + 0.438798, 0.660995, 0.644037, -0.256931, 0.421693, 0.713807, 0.686749, -0.254036, 0.4109, + 0.767616, 0.719814, -0.249785, 0.390151, 0.82533, 0.754719, -0.244283, 0.367847, 0.888311, + 0.792022, -0.235076, 0.345013, 0.948177, 0.822404, -0.225061, 0.316193, 1.01661, 0.853084, + -0.211113, 0.287013, 1.08075, 0.879871, -0.19449, 0.255424, 1.14501, 0.901655, -0.174023, + 0.222879, 1.20203, 0.919957, -0.1509, 0.18989, 1.25698, 0.938412, -0.124923, 0.15606, 1.30588, + 0.953471, -0.0968139, 0.120512, 1.3529, 0.970451, -0.066734, 0.0828515, 1.3986, 0.985522, + -0.034734, 0.0424458, 1.44148, 1.00099, -0.00102222, 0.000678929, 1.48398, 0.000965494, + -6.27338e-7, 0.0306409, 1.97672e-8, 0.00099168, -1.58573e-5, 0.0314638, 4.99803e-7, 0.000991068, + -6.34012e-5, 0.031363, 2.00682e-6, 0.000974567, -0.00014144, 0.03036, 4.57312e-6, 0.000998079, + -0.000252812, 0.031496, 8.60131e-6, 0.00102243, -0.000396506, 0.0319955, 1.48288e-5, 0.00107877, + -0.000577593, 0.0331376, 2.49141e-5, 0.00121622, -0.000816816, 0.0359396, 4.23011e-5, 0.0014455, + -0.00113761, 0.0399652, 7.24613e-5, 0.00178791, -0.00156959, 0.0450556, 0.000123929, 0.00225668, + -0.00214064, 0.0508025, 0.000208531, 0.00285627, -0.00287655, 0.0568443, 0.000341969, 0.0035991, + -0.00380271, 0.0630892, 0.000544158, 0.00455524, -0.00496264, 0.0702204, 0.000842423, 0.00569143, + -0.0063793, 0.0773426, 0.00126704, 0.00716928, -0.00813531, 0.0860839, 0.00186642, 0.00885307, + -0.0101946, 0.0944079, 0.00267014, 0.0109316, -0.0126386, 0.103951, 0.00374033, 0.0133704, + -0.0154876, 0.113786, 0.0051304, 0.0161525, -0.0187317, 0.123477, 0.00688858, 0.0194267, + -0.0224652, 0.133986, 0.00910557, 0.0230967, -0.0265976, 0.143979, 0.0118074, 0.0273627, + -0.0312848, 0.154645, 0.0151266, 0.0323898, -0.0365949, 0.166765, 0.0191791, 0.0379225, + -0.0422914, 0.177932, 0.0239236, 0.0447501, -0.0487469, 0.19167, 0.0296568, 0.0519391, -0.0556398, + 0.203224, 0.0362924, 0.0599464, -0.0631646, 0.215652, 0.0440585, 0.0702427, -0.0714308, 0.232089, + 0.0531619, 0.0806902, -0.0800605, 0.245258, 0.0634564, 0.0923194, -0.0892815, 0.258609, 0.0752481, + 0.106938, -0.09931, 0.276654, 0.0888914, 0.121238, -0.109575, 0.289847, 0.104055, 0.138817, + -0.120461, 0.307566, 0.121266, 0.15595, -0.131209, 0.320117, 0.139944, 0.178418, -0.143049, + 0.339677, 0.161591, 0.197875, -0.154074, 0.349886, 0.184303, 0.224368, -0.166307, 0.369352, + 0.210669, 0.252213, -0.178051, 0.386242, 0.238895, 0.277321, -0.189335, 0.395294, 0.269182, + 0.310332, -0.200683, 0.412148, 0.302508, 0.338809, -0.210856, 0.418266, 0.337264, 0.372678, + -0.220655, 0.428723, 0.374881, 0.405632, -0.230053, 0.433887, 0.415656, 0.442293, -0.237993, + 0.439911, 0.457982, 0.477256, -0.244897, 0.440175, 0.502831, 0.515592, -0.250657, 0.441079, + 0.550277, 0.550969, -0.255459, 0.435219, 0.601102, 0.592883, -0.257696, 0.432882, 0.651785, + 0.629092, -0.259894, 0.421054, 0.708961, 0.672033, -0.258592, 0.41177, 0.763806, 0.709147, + -0.256525, 0.395267, 0.824249, 0.745367, -0.254677, 0.375013, 0.8951, 0.784715, -0.247892, + 0.353906, 0.959317, 0.818107, -0.240162, 0.327801, 1.03153, 0.847895, -0.229741, 0.298821, + 1.10601, 0.879603, -0.213084, 0.269115, 1.164, 0.902605, -0.195242, 0.236606, 1.22854, 0.922788, + -0.174505, 0.203442, 1.29017, 0.944831, -0.150169, 0.169594, 1.34157, 0.959656, -0.124099, + 0.135909, 1.3956, 0.972399, -0.0960626, 0.0990563, 1.45128, 0.986549, -0.0657097, 0.0602348, + 1.50312, 1.00013, -0.0333558, 0.0186694, 1.55364, 6.19747e-6, -1e-7, 0.00778326, 7.96756e-11, + 2.37499e-8, -9.99999e-8, 2.82592e-5, 1.14596e-10, 1.00292e-6, -1.66369e-6, 0.000250354, + 6.77492e-9, 3.50752e-6, -6.37769e-6, 0.000357289, 6.31655e-8, 8.26445e-6, -1.74689e-5, + 0.000516179, 3.1851e-7, 2.42481e-5, -4.50868e-5, 0.0010223, 1.30577e-6, 4.55631e-5, -8.9044e-5, + 0.00144302, 3.74587e-6, 9.71222e-5, -0.000178311, 0.00241912, 1.02584e-5, 0.000171403, + -0.000313976, 0.00354938, 2.36481e-5, 0.000292747, -0.000520026, 0.00513765, 4.96014e-5, + 0.000789827, -0.00118187, 0.0238621, 0.000139056, 0.00114093, -0.00171827, 0.0286691, 0.000244093, + 0.00176119, -0.00249667, 0.0368565, 0.000420623, 0.0022233, -0.00333742, 0.0400469, 0.00065673, + 0.00343382, -0.00481976, 0.0535751, 0.00109323, 0.00427602, -0.00600755, 0.057099, 0.00155268, + 0.00461435, -0.00737637, 0.0551084, 0.00215031, 0.00695698, -0.00971401, 0.0715767, 0.00316529, + 0.00867619, -0.0120943, 0.0793314, 0.00436995, 0.0106694, -0.0148202, 0.0869391, 0.0058959, + 0.0140351, -0.0183501, 0.101572, 0.00798757, 0.0168939, -0.022006, 0.11018, 0.0104233, 0.020197, + -0.0261568, 0.119041, 0.0134167, 0.0254702, -0.0312778, 0.135404, 0.0173009, 0.0298384, + -0.0362469, 0.1437, 0.0215428, 0.035159, -0.042237, 0.15512, 0.0268882, 0.0427685, -0.0488711, + 0.17128, 0.033235, 0.0494848, -0.0557997, 0.181813, 0.0404443, 0.0592394, -0.0635578, 0.198745, + 0.0490043, 0.0681463, -0.071838, 0.210497, 0.0588239, 0.0804753, -0.0809297, 0.228864, 0.0702835, + 0.0942205, -0.0906488, 0.247008, 0.0834012, 0.106777, -0.100216, 0.258812, 0.0975952, 0.124471, + -0.110827, 0.278617, 0.114162, 0.138389, -0.121193, 0.287049, 0.131983, 0.159543, -0.13253, + 0.307151, 0.152541, 0.176432, -0.143611, 0.31564, 0.174673, 0.201723, -0.15548, 0.33538, 0.199842, + 0.229721, -0.167166, 0.355256, 0.227097, 0.250206, -0.178238, 0.360047, 0.256014, 0.282118, + -0.189905, 0.378761, 0.28855, 0.312821, -0.201033, 0.39181, 0.323348, 0.341482, -0.211584, + 0.397716, 0.360564, 0.377368, -0.221314, 0.410141, 0.400004, 0.418229, -0.230474, 0.423485, + 0.442371, 0.444881, -0.239443, 0.418874, 0.488796, 0.488899, -0.245987, 0.427545, 0.535012, + 0.520317, -0.253948, 0.422147, 0.589678, 0.568566, -0.256616, 0.42719, 0.637683, 0.599607, + -0.26376, 0.415114, 0.703363, 0.64222, -0.268687, 0.408715, 0.771363, 0.685698, -0.2694, 0.399722, + 0.83574, 0.732327, -0.266642, 0.388651, 0.897764, 0.769873, -0.267712, 0.369198, 0.983312, + 0.806733, -0.263479, 0.346802, 1.06222, 0.843466, -0.254575, 0.321368, 1.13477, 0.873008, + -0.242749, 0.29211, 1.20712, 0.908438, -0.22725, 0.262143, 1.27465, 0.936321, -0.207621, 0.228876, + 1.33203, 0.950353, -0.187932, 0.19484, 1.40439, 0.96442, -0.165154, 0.163178, 1.4732, 0.979856, + -0.139302, 0.127531, 1.53574, 0.982561, -0.11134, 0.0903457, 1.59982, 0.996389, -0.0808124, + 0.0489007, 1.6577, +]); + +export const LTC_2 = new Float32Array([ + 1, 0, 0, 0, 1, 7.91421e-31, 0, 0, 1, 1.04392e-24, 0, 0, 1, 3.49405e-21, 0, 0, 1, 1.09923e-18, 0, + 0, 1, 9.47414e-17, 0, 0, 1, 3.59627e-15, 0, 0, 1, 7.72053e-14, 0, 0, 1, 1.08799e-12, 0, 0, 1, + 1.10655e-11, 0, 0, 1, 8.65818e-11, 0, 0, 0.999998, 5.45037e-10, 0, 0, 0.999994, 2.85095e-9, 0, 0, + 0.999989, 1.26931e-8, 0, 0, 0.999973, 4.89938e-8, 0, 0, 0.999947, 1.66347e-7, 0, 0, 0.999894, + 5.02694e-7, 0, 0, 0.999798, 1.36532e-6, 0, 0, 0.999617, 3.35898e-6, 0, 0, 0.999234, 7.52126e-6, 0, + 0, 0.998258, 1.52586e-5, 0, 0, 0.99504, 2.66207e-5, 0, 0, 0.980816, 2.36802e-5, 0, 0, 0.967553, + 2.07684e-6, 0, 0, 0.966877, 4.03733e-6, 0, 0, 0.965752, 7.41174e-6, 0, 0, 0.96382, 1.27746e-5, 0, + 0, 0.960306, 2.02792e-5, 0, 0, 0.953619, 2.80232e-5, 0, 0, 0.941103, 2.78816e-5, 0, 0, 0.926619, + 1.60221e-5, 0, 0, 0.920983, 2.35164e-5, 0, 0, 0.912293, 3.11924e-5, 0, 0.0158731, 0.899277, + 3.48118e-5, 0, 0.0476191, 0.880884, 2.6041e-5, 0, 0.0793651, 0.870399, 3.38726e-5, 0, 0.111111, + 0.856138, 3.92906e-5, 0, 0.142857, 0.837436, 3.72874e-5, 0, 0.174603, 0.820973, 3.92558e-5, 0, + 0.206349, 0.803583, 4.34658e-5, 0, 0.238095, 0.782168, 4.0256e-5, 0, 0.269841, 0.764107, + 4.48159e-5, 0, 0.301587, 0.743092, 4.57627e-5, 0, 0.333333, 0.721626, 4.55314e-5, 0, 0.365079, + 0.700375, 4.77335e-5, 0, 0.396825, 0.677334, 4.61072e-5, 0, 0.428571, 0.655702, 4.84393e-5, 0, + 0.460317, 0.632059, 4.64583e-5, 0, 0.492064, 0.610125, 4.83923e-5, 0, 0.52381, 0.58653, + 4.64342e-5, 0, 0.555556, 0.564508, 4.77033e-5, 0, 0.587302, 0.541405, 4.59263e-5, 0, 0.619048, + 0.519556, 4.6412e-5, 0, 0.650794, 0.497292, 4.48913e-5, 0, 0.68254, 0.475898, 4.45789e-5, 0, + 0.714286, 0.454722, 4.33496e-5, 0, 0.746032, 0.434042, 4.23054e-5, 0, 0.777778, 0.414126, + 4.13737e-5, 0, 0.809524, 0.394387, 3.97265e-5, 0, 0.84127, 0.375841, 3.90709e-5, 0, 0.873016, + 0.357219, 3.69938e-5, 0, 0.904762, 0.340084, 3.65618e-5, 0, 0.936508, 0.322714, 3.42533e-5, 0, + 0.968254, 0.306974, 3.39596e-5, 0, 1, 1, 1.01524e-18, 0, 0, 1, 1.0292e-18, 0, 0, 1, 1.30908e-18, + 0, 0, 1, 4.73331e-18, 0, 0, 1, 6.25319e-17, 0, 0, 1, 1.07932e-15, 0, 0, 1, 1.63779e-14, 0, 0, 1, + 2.03198e-13, 0, 0, 1, 2.04717e-12, 0, 0, 0.999999, 1.68995e-11, 0, 0, 0.999998, 1.15855e-10, 0, 0, + 0.999996, 6.6947e-10, 0, 0, 0.999991, 3.30863e-9, 0, 0, 0.999983, 1.41737e-8, 0, 0, 0.999968, + 5.32626e-8, 0, 0, 0.99994, 1.77431e-7, 0, 0, 0.999891, 5.28835e-7, 0, 0, 0.999797, 1.42169e-6, 0, + 0, 0.999617, 3.47057e-6, 0, 0, 0.999227, 7.7231e-6, 0, 0, 0.998239, 1.55753e-5, 0, 0, 0.994937, + 2.68495e-5, 0, 0, 0.980225, 2.13742e-5, 0, 0, 0.967549, 2.1631e-6, 0, 0, 0.966865, 4.17989e-6, 0, + 0, 0.965739, 7.63341e-6, 0, 0, 0.963794, 1.30892e-5, 0, 0, 0.960244, 2.06456e-5, 0, 0, 0.953495, + 2.82016e-5, 0, 0.000148105, 0.940876, 2.71581e-5, 0, 0.002454, 0.926569, 1.64159e-5, 0, + 0.00867491, 0.920905, 2.39521e-5, 0, 0.01956, 0.912169, 3.15127e-5, 0, 0.035433, 0.899095, + 3.46626e-5, 0, 0.056294, 0.882209, 2.90223e-5, 0, 0.0818191, 0.870272, 3.42992e-5, 0, 0.111259, + 0.855977, 3.94164e-5, 0, 0.142857, 0.837431, 3.72343e-5, 0, 0.174603, 0.820826, 3.96691e-5, 0, + 0.206349, 0.803408, 4.35395e-5, 0, 0.238095, 0.782838, 4.19579e-5, 0, 0.269841, 0.763941, + 4.50953e-5, 0, 0.301587, 0.742904, 4.55847e-5, 0, 0.333333, 0.721463, 4.58833e-5, 0, 0.365079, + 0.700197, 4.77159e-5, 0, 0.396825, 0.677501, 4.70641e-5, 0, 0.428571, 0.655527, 4.84732e-5, 0, + 0.460317, 0.6324, 4.76834e-5, 0, 0.492064, 0.609964, 4.84213e-5, 0, 0.52381, 0.586839, 4.75541e-5, + 0, 0.555556, 0.564353, 4.76951e-5, 0, 0.587302, 0.541589, 4.67611e-5, 0, 0.619048, 0.519413, + 4.63493e-5, 0, 0.650794, 0.497337, 4.53994e-5, 0, 0.68254, 0.475797, 4.45308e-5, 0, 0.714286, + 0.454659, 4.35787e-5, 0, 0.746032, 0.434065, 4.24839e-5, 0, 0.777778, 0.414018, 4.1436e-5, 0, + 0.809524, 0.39455, 4.01902e-5, 0, 0.84127, 0.375742, 3.90813e-5, 0, 0.873016, 0.357501, + 3.77116e-5, 0, 0.904762, 0.339996, 3.6535e-5, 0, 0.936508, 0.323069, 3.51265e-5, 0, 0.968254, + 0.306897, 3.39112e-5, 0, 1, 1, 1.0396e-15, 0, 0, 1, 1.04326e-15, 0, 0, 1, 1.10153e-15, 0, 0, 1, + 1.44668e-15, 0, 0, 1, 3.4528e-15, 0, 0, 1, 1.75958e-14, 0, 0, 1, 1.2627e-13, 0, 0, 1, 9.36074e-13, + 0, 0, 1, 6.45742e-12, 0, 0, 0.999998, 4.01228e-11, 0, 0, 0.999997, 2.22338e-10, 0, 0, 0.999995, + 1.0967e-9, 0, 0, 0.999991, 4.82132e-9, 0, 0, 0.999981, 1.89434e-8, 0, 0, 0.999967, 6.67716e-8, 0, + 0, 0.999938, 2.12066e-7, 0, 0, 0.999886, 6.0977e-7, 0, 0, 0.999792, 1.59504e-6, 0, 0, 0.999608, + 3.81191e-6, 0, 0, 0.999209, 8.33727e-6, 0, 0, 0.998179, 1.65288e-5, 0, 0, 0.994605, 2.74387e-5, 0, + 0, 0.979468, 1.67316e-5, 0, 0, 0.967529, 2.42877e-6, 0, 0, 0.966836, 4.61696e-6, 0, 0, 0.96569, + 8.30977e-6, 0, 0, 0.963706, 1.40427e-5, 0, 2.44659e-6, 0.960063, 2.17353e-5, 0, 0.000760774, + 0.953113, 2.86606e-5, 0, 0.00367261, 0.940192, 2.47691e-5, 0, 0.00940263, 0.927731, 1.95814e-5, 0, + 0.018333, 0.920669, 2.52531e-5, 0, 0.0306825, 0.911799, 3.24277e-5, 0, 0.0465556, 0.89857, + 3.40982e-5, 0, 0.0659521, 0.883283, 3.19622e-5, 0, 0.0887677, 0.86989, 3.5548e-5, 0, 0.114784, + 0.855483, 3.97143e-5, 0, 0.143618, 0.837987, 3.91665e-5, 0, 0.174606, 0.820546, 4.11306e-5, 0, + 0.206349, 0.802878, 4.36753e-5, 0, 0.238095, 0.783402, 4.44e-5, 0, 0.269841, 0.763439, 4.58726e-5, + 0, 0.301587, 0.742925, 4.67097e-5, 0, 0.333333, 0.721633, 4.78887e-5, 0, 0.365079, 0.69985, + 4.81251e-5, 0, 0.396825, 0.67783, 4.91811e-5, 0, 0.428571, 0.655126, 4.88199e-5, 0, 0.460318, + 0.632697, 4.96025e-5, 0, 0.492064, 0.609613, 4.8829e-5, 0, 0.52381, 0.587098, 4.92754e-5, 0, + 0.555556, 0.564119, 4.82625e-5, 0, 0.587302, 0.541813, 4.82807e-5, 0, 0.619048, 0.519342, + 4.71552e-5, 0, 0.650794, 0.497514, 4.66765e-5, 0, 0.68254, 0.475879, 4.55582e-5, 0, 0.714286, + 0.454789, 4.46007e-5, 0, 0.746032, 0.434217, 4.35382e-5, 0, 0.777778, 0.414086, 4.21753e-5, 0, + 0.809524, 0.394744, 4.12093e-5, 0, 0.84127, 0.375782, 3.96634e-5, 0, 0.873016, 0.357707, + 3.86419e-5, 0, 0.904762, 0.340038, 3.70345e-5, 0, 0.936508, 0.323284, 3.59725e-5, 0, 0.968254, + 0.306954, 3.436e-5, 0, 1, 1, 5.99567e-14, 0, 0, 1, 6.00497e-14, 0, 0, 1, 6.14839e-14, 0, 0, 1, + 6.86641e-14, 0, 0, 1, 9.72658e-14, 0, 0, 1, 2.21271e-13, 0, 0, 1, 8.33195e-13, 0, 0, 1, + 4.03601e-12, 0, 0, 0.999999, 2.06001e-11, 0, 0, 0.999998, 1.01739e-10, 0, 0, 0.999997, + 4.70132e-10, 0, 0, 0.999993, 2.00436e-9, 0, 0, 0.999988, 7.83682e-9, 0, 0, 0.999979, 2.80338e-8, + 0, 0, 0.999962, 9.17033e-8, 0, 0, 0.999933, 2.74514e-7, 0, 0, 0.999881, 7.53201e-7, 0, 0, + 0.999783, 1.89826e-6, 0, 0, 0.999594, 4.40279e-6, 0, 0, 0.999178, 9.3898e-6, 0, 0, 0.998073, + 1.81265e-5, 0, 0, 0.993993, 2.80487e-5, 0, 0, 0.979982, 1.49422e-5, 0, 0, 0.968145, 3.78481e-6, 0, + 0, 0.966786, 5.3771e-6, 0, 0, 0.965611, 9.47508e-6, 0, 3.88934e-5, 0.963557, 1.56616e-5, 0, + 0.0009693, 0.959752, 2.35144e-5, 0, 0.00370329, 0.952461, 2.91568e-5, 0, 0.00868428, 0.940193, + 2.40102e-5, 0, 0.0161889, 0.929042, 2.31235e-5, 0, 0.0263948, 0.920266, 2.73968e-5, 0, 0.0394088, + 0.911178, 3.37915e-5, 0, 0.0552818, 0.897873, 3.33629e-5, 0, 0.0740138, 0.884053, 3.51405e-5, 0, + 0.0955539, 0.869455, 3.78034e-5, 0, 0.119795, 0.854655, 3.99378e-5, 0, 0.14656, 0.838347, + 4.19108e-5, 0, 0.175573, 0.820693, 4.40831e-5, 0, 0.206388, 0.802277, 4.45599e-5, 0, 0.238095, + 0.783634, 4.72691e-5, 0, 0.269841, 0.763159, 4.76984e-5, 0, 0.301587, 0.742914, 4.91487e-5, 0, + 0.333333, 0.721662, 5.02312e-5, 0, 0.365079, 0.699668, 5.02817e-5, 0, 0.396825, 0.677839, + 5.1406e-5, 0, 0.428571, 0.655091, 5.11095e-5, 0, 0.460317, 0.632665, 5.16067e-5, 0, 0.492064, + 0.609734, 5.12255e-5, 0, 0.52381, 0.587043, 5.10263e-5, 0, 0.555556, 0.564298, 5.0565e-5, 0, + 0.587302, 0.541769, 4.97951e-5, 0, 0.619048, 0.519529, 4.92698e-5, 0, 0.650794, 0.497574, + 4.82066e-5, 0, 0.68254, 0.476028, 4.73689e-5, 0, 0.714286, 0.454961, 4.61941e-5, 0, 0.746032, + 0.434341, 4.50618e-5, 0, 0.777778, 0.414364, 4.38355e-5, 0, 0.809524, 0.394832, 4.24196e-5, 0, + 0.84127, 0.376109, 4.12563e-5, 0, 0.873016, 0.35779, 3.96226e-5, 0, 0.904762, 0.340379, + 3.84886e-5, 0, 0.936508, 0.323385, 3.68214e-5, 0, 0.968254, 0.307295, 3.56636e-5, 0, 1, 1, + 1.06465e-12, 0, 0, 1, 1.06555e-12, 0, 0, 1, 1.07966e-12, 0, 0, 1, 1.14601e-12, 0, 0, 1, + 1.37123e-12, 0, 0, 1, 2.1243e-12, 0, 0, 0.999999, 4.89653e-12, 0, 0, 0.999999, 1.60283e-11, 0, 0, + 0.999998, 6.2269e-11, 0, 0, 0.999997, 2.51859e-10, 0, 0, 0.999996, 9.96192e-10, 0, 0, 0.999992, + 3.74531e-9, 0, 0, 0.999986, 1.32022e-8, 0, 0, 0.999975, 4.33315e-8, 0, 0, 0.999959, 1.31956e-7, 0, + 0, 0.999927, 3.72249e-7, 0, 0, 0.999871, 9.72461e-7, 0, 0, 0.999771, 2.35343e-6, 0, 0, 0.999572, + 5.2768e-6, 0, 0, 0.999133, 1.09237e-5, 0, 0, 0.997912, 2.03675e-5, 0, 0, 0.993008, 2.79396e-5, 0, + 0, 0.980645, 1.39604e-5, 0, 0, 0.970057, 6.46596e-6, 0, 0, 0.966717, 6.5089e-6, 0, 4.74145e-5, + 0.965497, 1.11863e-5, 0, 0.00089544, 0.96334, 1.79857e-5, 0, 0.0032647, 0.959294, 2.59045e-5, 0, + 0.0075144, 0.951519, 2.92327e-5, 0, 0.0138734, 0.940517, 2.49769e-5, 0, 0.0224952, 0.93014, + 2.6803e-5, 0, 0.0334828, 0.91972, 3.03656e-5, 0, 0.0468973, 0.910294, 3.53323e-5, 0, 0.0627703, + 0.897701, 3.51002e-5, 0, 0.0811019, 0.884522, 3.88104e-5, 0, 0.10186, 0.869489, 4.12932e-5, 0, + 0.124985, 0.853983, 4.15781e-5, 0, 0.150372, 0.838425, 4.54066e-5, 0, 0.177868, 0.820656, + 4.71624e-5, 0, 0.207245, 0.801875, 4.75243e-5, 0, 0.238143, 0.783521, 5.05621e-5, 0, 0.269841, + 0.763131, 5.0721e-5, 0, 0.301587, 0.74261, 5.23293e-5, 0, 0.333333, 0.72148, 5.28699e-5, 0, + 0.365079, 0.699696, 5.38677e-5, 0, 0.396825, 0.677592, 5.39255e-5, 0, 0.428571, 0.65525, + 5.46367e-5, 0, 0.460317, 0.632452, 5.41348e-5, 0, 0.492064, 0.609903, 5.44976e-5, 0, 0.52381, + 0.586928, 5.36201e-5, 0, 0.555556, 0.564464, 5.35185e-5, 0, 0.587302, 0.541801, 5.24949e-5, 0, + 0.619048, 0.519681, 5.1812e-5, 0, 0.650794, 0.497685, 5.07687e-5, 0, 0.68254, 0.47622, 4.96243e-5, + 0, 0.714286, 0.455135, 4.85714e-5, 0, 0.746032, 0.4346, 4.71847e-5, 0, 0.777778, 0.414564, + 4.59294e-5, 0, 0.809524, 0.395165, 4.44705e-5, 0, 0.84127, 0.376333, 4.30772e-5, 0, 0.873016, + 0.358197, 4.16229e-5, 0, 0.904762, 0.34064, 4.01019e-5, 0, 0.936508, 0.323816, 3.86623e-5, 0, + 0.968254, 0.307581, 3.70933e-5, 0, 1, 1, 9.91541e-12, 0, 0, 1, 9.92077e-12, 0, 0, 1, 1.00041e-11, + 0, 0, 1, 1.0385e-11, 0, 0, 1, 1.15777e-11, 0, 0, 1, 1.50215e-11, 0, 0, 0.999999, 2.54738e-11, 0, + 0, 0.999999, 5.98822e-11, 0, 0, 0.999998, 1.79597e-10, 0, 0, 0.999997, 6.02367e-10, 0, 0, + 0.999994, 2.06835e-9, 0, 0, 0.99999, 6.94952e-9, 0, 0, 0.999984, 2.23363e-8, 0, 0, 0.999972, + 6.78578e-8, 0, 0, 0.999952, 1.93571e-7, 0, 0, 0.999919, 5.16594e-7, 0, 0, 0.99986, 1.28739e-6, 0, + 0, 0.999753, 2.99298e-6, 0, 0, 0.999546, 6.48258e-6, 0, 0, 0.999074, 1.29985e-5, 0, 0, 0.997671, + 2.32176e-5, 0, 0, 0.991504, 2.56701e-5, 0, 0, 0.981148, 1.31141e-5, 0, 0, 0.971965, 8.69048e-6, 0, + 2.80182e-5, 0.966624, 8.08301e-6, 0, 0.000695475, 0.965344, 1.35235e-5, 0, 0.00265522, 0.963048, + 2.10592e-5, 0, 0.00622975, 0.958673, 2.87473e-5, 0, 0.0116234, 0.950262, 2.81379e-5, 0, 0.018976, + 0.940836, 2.71089e-5, 0, 0.0283844, 0.930996, 3.0926e-5, 0, 0.0399151, 0.919848, 3.48359e-5, 0, + 0.0536063, 0.909136, 3.66092e-5, 0, 0.0694793, 0.897554, 3.84162e-5, 0, 0.0875342, 0.884691, + 4.30971e-5, 0, 0.107749, 0.869414, 4.47803e-5, 0, 0.130087, 0.853462, 4.52858e-5, 0, 0.154481, + 0.838187, 4.95769e-5, 0, 0.180833, 0.820381, 5.02709e-5, 0, 0.209005, 0.801844, 5.22713e-5, 0, + 0.238791, 0.783061, 5.41505e-5, 0, 0.269869, 0.763205, 5.53712e-5, 0, 0.301587, 0.742362, + 5.64909e-5, 0, 0.333333, 0.721393, 5.72646e-5, 0, 0.365079, 0.699676, 5.81012e-5, 0, 0.396825, + 0.677395, 5.8096e-5, 0, 0.428571, 0.655208, 5.85766e-5, 0, 0.460317, 0.632451, 5.83602e-5, 0, + 0.492064, 0.609839, 5.80234e-5, 0, 0.52381, 0.587093, 5.77161e-5, 0, 0.555556, 0.564467, + 5.68447e-5, 0, 0.587302, 0.542043, 5.63166e-5, 0, 0.619048, 0.519826, 5.5156e-5, 0, 0.650794, + 0.497952, 5.41682e-5, 0, 0.68254, 0.476477, 5.28971e-5, 0, 0.714286, 0.455412, 5.14952e-5, 0, + 0.746032, 0.434926, 5.02222e-5, 0, 0.777778, 0.4149, 4.85779e-5, 0, 0.809524, 0.395552, + 4.72242e-5, 0, 0.84127, 0.376712, 4.54891e-5, 0, 0.873016, 0.358622, 4.40924e-5, 0, 0.904762, + 0.341048, 4.22984e-5, 0, 0.936508, 0.324262, 4.08582e-5, 0, 0.968254, 0.308013, 3.90839e-5, 0, 1, + 1, 6.13913e-11, 0, 0, 1, 6.14145e-11, 0, 0, 1, 6.17708e-11, 0, 0, 1, 6.33717e-11, 0, 0, 1, + 6.81648e-11, 0, 0, 1, 8.08291e-11, 0, 0, 1, 1.14608e-10, 0, 0, 0.999998, 2.10507e-10, 0, 0, + 0.999997, 4.99595e-10, 0, 0, 0.999995, 1.39897e-9, 0, 0, 0.999994, 4.19818e-9, 0, 0, 0.999988, + 1.27042e-8, 0, 0, 0.999979, 3.75153e-8, 0, 0, 0.999965, 1.06206e-7, 0, 0, 0.999945, 2.85381e-7, 0, + 0, 0.999908, 7.23611e-7, 0, 0, 0.999846, 1.7255e-6, 0, 0, 0.999733, 3.86104e-6, 0, 0, 0.999511, + 8.08493e-6, 0, 0, 0.998993, 1.56884e-5, 0, 0, 0.997326, 2.65538e-5, 0, 0, 0.989706, 2.06466e-5, 0, + 0, 0.981713, 1.30756e-5, 0, 7.0005e-6, 0.973636, 1.06473e-5, 0, 0.000464797, 0.966509, 1.0194e-5, + 0, 0.00201743, 0.965149, 1.65881e-5, 0, 0.00497549, 0.962669, 2.49147e-5, 0, 0.00953262, 0.95786, + 3.17449e-5, 0, 0.0158211, 0.949334, 2.81045e-5, 0, 0.0239343, 0.941041, 3.03263e-5, 0, 0.0339372, + 0.931575, 3.56754e-5, 0, 0.0458738, 0.920102, 3.97075e-5, 0, 0.059772, 0.908002, 3.84886e-5, 0, + 0.075645, 0.897269, 4.3027e-5, 0, 0.0934929, 0.884559, 4.79925e-5, 0, 0.113302, 0.869161, + 4.8246e-5, 0, 0.135045, 0.853342, 5.09505e-5, 0, 0.158678, 0.837633, 5.42846e-5, 0, 0.184136, + 0.820252, 5.54139e-5, 0, 0.211325, 0.801872, 5.81412e-5, 0, 0.240113, 0.782418, 5.85535e-5, 0, + 0.270306, 0.7631, 6.10923e-5, 0, 0.301594, 0.742183, 6.13678e-5, 0, 0.333333, 0.721098, + 6.27275e-5, 0, 0.365079, 0.699512, 6.29413e-5, 0, 0.396825, 0.677372, 6.36351e-5, 0, 0.428571, + 0.655059, 6.33555e-5, 0, 0.460317, 0.632567, 6.36513e-5, 0, 0.492064, 0.609784, 6.28965e-5, 0, + 0.52381, 0.587237, 6.25546e-5, 0, 0.555556, 0.564525, 6.15825e-5, 0, 0.587302, 0.542181, + 6.05048e-5, 0, 0.619048, 0.520017, 5.96329e-5, 0, 0.650794, 0.498204, 5.81516e-5, 0, 0.68254, + 0.476742, 5.69186e-5, 0, 0.714286, 0.455803, 5.53833e-5, 0, 0.746032, 0.435251, 5.37807e-5, 0, + 0.777778, 0.415374, 5.22025e-5, 0, 0.809524, 0.395921, 5.03421e-5, 0, 0.84127, 0.377253, + 4.88211e-5, 0, 0.873016, 0.359021, 4.68234e-5, 0, 0.904762, 0.341637, 4.53269e-5, 0, 0.936508, + 0.3247, 4.33014e-5, 0, 0.968254, 0.308625, 4.18007e-5, 0, 1, 1, 2.86798e-10, 0, 0, 1, 2.86877e-10, + 0, 0, 1, 2.88094e-10, 0, 0, 1, 2.93506e-10, 0, 0, 1, 3.09262e-10, 0, 0, 0.999999, 3.48593e-10, 0, + 0, 0.999999, 4.44582e-10, 0, 0, 0.999998, 6.88591e-10, 0, 0, 0.999996, 1.34391e-9, 0, 0, 0.999993, + 3.17438e-9, 0, 0, 0.999989, 8.35609e-9, 0, 0, 0.999983, 2.28677e-8, 0, 0, 0.999974, 6.23361e-8, 0, + 0, 0.999959, 1.65225e-7, 0, 0, 0.999936, 4.19983e-7, 0, 0, 0.999896, 1.01546e-6, 0, 0, 0.99983, + 2.32376e-6, 0, 0, 0.999709, 5.0156e-6, 0, 0, 0.999469, 1.0167e-5, 0, 0, 0.998886, 1.90775e-5, 0, + 0, 0.996819, 3.00511e-5, 0, 0, 0.988837, 1.85092e-5, 0, 1.68222e-7, 0.982178, 1.34622e-5, 0, + 0.000259622, 0.975017, 1.25961e-5, 0, 0.00142595, 0.967101, 1.3507e-5, 0, 0.00382273, 0.964905, + 2.05003e-5, 0, 0.00764164, 0.96218, 2.9546e-5, 0, 0.0130121, 0.956821, 3.43738e-5, 0, 0.0200253, + 0.948829, 3.05063e-5, 0, 0.0287452, 0.941092, 3.46487e-5, 0, 0.039218, 0.931883, 4.12061e-5, 0, + 0.0514748, 0.920211, 4.44651e-5, 0, 0.0655351, 0.907307, 4.31252e-5, 0, 0.0814082, 0.89684, + 4.90382e-5, 0, 0.0990939, 0.884119, 5.3334e-5, 0, 0.118583, 0.869148, 5.4114e-5, 0, 0.139856, + 0.853377, 5.78536e-5, 0, 0.162882, 0.836753, 5.92285e-5, 0, 0.187615, 0.820063, 6.22787e-5, 0, + 0.213991, 0.801694, 6.45492e-5, 0, 0.241918, 0.782116, 6.5353e-5, 0, 0.271267, 0.762673, + 6.74344e-5, 0, 0.301847, 0.742133, 6.82788e-5, 0, 0.333333, 0.720779, 6.91959e-5, 0, 0.365079, + 0.699386, 6.96817e-5, 0, 0.396826, 0.67732, 6.99583e-5, 0, 0.428572, 0.654888, 6.98447e-5, 0, + 0.460318, 0.632499, 6.94063e-5, 0, 0.492064, 0.609825, 6.91612e-5, 0, 0.52381, 0.587287, + 6.81576e-5, 0, 0.555556, 0.564743, 6.74138e-5, 0, 0.587302, 0.542409, 6.61617e-5, 0, 0.619048, + 0.520282, 6.47785e-5, 0, 0.650794, 0.498506, 6.33836e-5, 0, 0.68254, 0.477102, 6.15905e-5, 0, + 0.714286, 0.456167, 6.01013e-5, 0, 0.746032, 0.435728, 5.81457e-5, 0, 0.777778, 0.415809, + 5.64215e-5, 0, 0.809524, 0.396517, 5.44997e-5, 0, 0.84127, 0.377737, 5.25061e-5, 0, 0.873016, + 0.359698, 5.06831e-5, 0, 0.904762, 0.342164, 4.8568e-5, 0, 0.936508, 0.325417, 4.67826e-5, 0, + 0.968254, 0.309186, 4.46736e-5, 0, 1, 1, 1.09018e-9, 0, 0, 1, 1.0904e-9, 0, 0, 1, 1.09393e-9, 0, + 0, 1, 1.1095e-9, 0, 0, 1, 1.154e-9, 0, 0, 1, 1.26089e-9, 0, 0, 0.999999, 1.5059e-9, 0, 0, + 0.999997, 2.07899e-9, 0, 0, 0.999994, 3.48164e-9, 0, 0, 0.999993, 7.05728e-9, 0, 0, 0.999987, + 1.63692e-8, 0, 0, 0.999981, 4.06033e-8, 0, 0, 0.999969, 1.0245e-7, 0, 0, 0.999953, 2.55023e-7, 0, + 0, 0.999925, 6.1511e-7, 0, 0, 0.999881, 1.42218e-6, 0, 0, 0.99981, 3.13086e-6, 0, 0, 0.99968, + 6.53119e-6, 0, 0, 0.999418, 1.2832e-5, 0, 0, 0.998748, 2.32497e-5, 0, 0, 0.996066, 3.29522e-5, 0, + 0, 0.988379, 1.79613e-5, 0, 0.000108799, 0.982567, 1.43715e-5, 0, 0.000921302, 0.976097, + 1.48096e-5, 0, 0.00280738, 0.968475, 1.78905e-5, 0, 0.00596622, 0.964606, 2.53921e-5, 0, + 0.0105284, 0.961564, 3.48623e-5, 0, 0.0165848, 0.955517, 3.57612e-5, 0, 0.0242, 0.948381, + 3.43493e-5, 0, 0.03342, 0.941095, 4.05849e-5, 0, 0.0442777, 0.931923, 4.75394e-5, 0, 0.0567958, + 0.91996, 4.84328e-5, 0, 0.0709879, 0.907419, 5.02146e-5, 0, 0.086861, 0.89618, 5.61654e-5, 0, + 0.104415, 0.88337, 5.87612e-5, 0, 0.123643, 0.869046, 6.18057e-5, 0, 0.144531, 0.853278, + 6.57392e-5, 0, 0.167057, 0.836091, 6.6303e-5, 0, 0.191188, 0.819644, 7.04445e-5, 0, 0.216878, + 0.801246, 7.14071e-5, 0, 0.244062, 0.782031, 7.40093e-5, 0, 0.272649, 0.762066, 7.4685e-5, 0, + 0.302509, 0.741964, 7.66647e-5, 0, 0.333442, 0.720554, 7.66328e-5, 0, 0.365079, 0.699098, + 7.77857e-5, 0, 0.396826, 0.677189, 7.74633e-5, 0, 0.428572, 0.65484, 7.76235e-5, 0, 0.460318, + 0.632496, 7.70316e-5, 0, 0.492064, 0.609908, 7.62669e-5, 0, 0.52381, 0.587312, 7.53972e-5, 0, + 0.555556, 0.564938, 7.39994e-5, 0, 0.587302, 0.542577, 7.28382e-5, 0, 0.619048, 0.52062, + 7.1112e-5, 0, 0.650794, 0.498819, 6.94004e-5, 0, 0.68254, 0.477555, 6.75575e-5, 0, 0.714286, + 0.456568, 6.53449e-5, 0, 0.746032, 0.436278, 6.36068e-5, 0, 0.777778, 0.41637, 6.13466e-5, 0, + 0.809524, 0.397144, 5.94177e-5, 0, 0.84127, 0.378412, 5.70987e-5, 0, 0.873016, 0.360376, + 5.50419e-5, 0, 0.904762, 0.342906, 5.27422e-5, 0, 0.936508, 0.326136, 5.06544e-5, 0, 0.968254, + 0.30997, 4.84307e-5, 0, 1, 1, 3.54014e-9, 0, 0, 1, 3.54073e-9, 0, 0, 1, 3.54972e-9, 0, 0, 1, + 3.58929e-9, 0, 0, 1, 3.70093e-9, 0, 0, 0.999999, 3.96194e-9, 0, 0, 0.999998, 4.53352e-9, 0, 0, + 0.999997, 5.78828e-9, 0, 0, 0.999994, 8.63812e-9, 0, 0, 0.999991, 1.53622e-8, 0, 0, 0.999985, + 3.16356e-8, 0, 0, 0.999977, 7.12781e-8, 0, 0, 0.999964, 1.66725e-7, 0, 0, 0.999945, 3.90501e-7, 0, + 0, 0.999912, 8.95622e-7, 0, 0, 0.999866, 1.98428e-6, 0, 0, 0.999786, 4.21038e-6, 0, 0, 0.999647, + 8.50239e-6, 0, 0, 0.999356, 1.62059e-5, 0, 0, 0.998563, 2.82652e-5, 0, 0, 0.994928, 3.36309e-5, 0, + 2.44244e-5, 0.987999, 1.78458e-5, 0, 0.000523891, 0.982893, 1.59162e-5, 0, 0.00194729, 0.977044, + 1.78056e-5, 0, 0.00451099, 0.969972, 2.30624e-5, 0, 0.00835132, 0.964237, 3.13922e-5, 0, 0.013561, + 0.960791, 4.06145e-5, 0, 0.0202056, 0.954292, 3.72796e-5, 0, 0.0283321, 0.948052, 4.03199e-5, 0, + 0.0379739, 0.940938, 4.79537e-5, 0, 0.0491551, 0.931689, 5.45292e-5, 0, 0.0618918, 0.91987, + 5.4038e-5, 0, 0.0761941, 0.907665, 5.89909e-5, 0, 0.0920672, 0.895281, 6.42651e-5, 0, 0.109511, + 0.882621, 6.59707e-5, 0, 0.12852, 0.86873, 7.09973e-5, 0, 0.149085, 0.853008, 7.42221e-5, 0, + 0.171189, 0.835944, 7.61754e-5, 0, 0.194809, 0.818949, 7.97052e-5, 0, 0.21991, 0.800951, + 8.12434e-5, 0, 0.246447, 0.781847, 8.38075e-5, 0, 0.274352, 0.761649, 8.4501e-5, 0, 0.303535, + 0.74152, 8.60258e-5, 0, 0.333857, 0.720495, 8.66233e-5, 0, 0.365104, 0.698742, 8.68326e-5, 0, + 0.396826, 0.677096, 8.7133e-5, 0, 0.428572, 0.654782, 8.63497e-5, 0, 0.460318, 0.632335, + 8.60206e-5, 0, 0.492064, 0.610031, 8.49337e-5, 0, 0.52381, 0.587457, 8.38279e-5, 0, 0.555556, + 0.56513, 8.2309e-5, 0, 0.587302, 0.542877, 8.03542e-5, 0, 0.619048, 0.5209, 7.86928e-5, 0, + 0.650794, 0.499291, 7.65171e-5, 0, 0.68254, 0.477971, 7.44753e-5, 0, 0.714286, 0.457221, + 7.2209e-5, 0, 0.746032, 0.436803, 6.97448e-5, 0, 0.777778, 0.417083, 6.75333e-5, 0, 0.809524, + 0.397749, 6.48058e-5, 0, 0.84127, 0.379177, 6.25759e-5, 0, 0.873016, 0.361061, 5.98584e-5, 0, + 0.904762, 0.343713, 5.75797e-5, 0, 0.936508, 0.326894, 5.49999e-5, 0, 0.968254, 0.310816, + 5.27482e-5, 0, 1, 1, 1.0153e-8, 0, 0, 1, 1.01544e-8, 0, 0, 1, 1.01751e-8, 0, 0, 1, 1.02662e-8, 0, + 0, 1, 1.0521e-8, 0, 0, 0.999999, 1.11049e-8, 0, 0, 0.999999, 1.23408e-8, 0, 0, 0.999996, + 1.4924e-8, 0, 0, 0.999992, 2.04471e-8, 0, 0, 0.999989, 3.26539e-8, 0, 0, 0.99998, 6.03559e-8, 0, + 0, 0.999971, 1.23936e-7, 0, 0, 0.999955, 2.69058e-7, 0, 0, 0.999933, 5.93604e-7, 0, 0, 0.999901, + 1.29633e-6, 0, 0, 0.999847, 2.75621e-6, 0, 0, 0.999761, 5.64494e-6, 0, 0, 0.999607, 1.10485e-5, 0, + 0, 0.999282, 2.04388e-5, 0, 0, 0.99831, 3.41084e-5, 0, 2.2038e-7, 0.993288, 2.94949e-5, 0, + 0.000242388, 0.987855, 1.92736e-5, 0, 0.0012503, 0.983167, 1.82383e-5, 0, 0.0032745, 0.977908, + 2.18633e-5, 0, 0.00646321, 0.971194, 2.90662e-5, 0, 0.0109133, 0.963867, 3.86401e-5, 0, 0.0166927, + 0.95982, 4.62827e-5, 0, 0.0238494, 0.953497, 4.20705e-5, 0, 0.0324178, 0.947621, 4.77743e-5, 0, + 0.0424225, 0.940611, 5.68258e-5, 0, 0.0538808, 0.931174, 6.18061e-5, 0, 0.0668047, 0.919919, + 6.27098e-5, 0, 0.0812014, 0.907856, 6.94714e-5, 0, 0.0970745, 0.894509, 7.35008e-5, 0, 0.114424, + 0.881954, 7.63369e-5, 0, 0.133246, 0.868309, 8.21896e-5, 0, 0.153534, 0.852511, 8.3769e-5, 0, + 0.175275, 0.835821, 8.81615e-5, 0, 0.198453, 0.817981, 8.96368e-5, 0, 0.223042, 0.800504, + 9.30906e-5, 0, 0.249009, 0.78141, 9.45056e-5, 0, 0.276304, 0.761427, 9.63605e-5, 0, 0.304862, + 0.74094, 9.68088e-5, 0, 0.334584, 0.720233, 9.81481e-5, 0, 0.365322, 0.698592, 9.79122e-5, 0, + 0.396826, 0.676763, 9.81057e-5, 0, 0.428571, 0.654808, 9.73956e-5, 0, 0.460318, 0.632326, + 9.62619e-5, 0, 0.492064, 0.610049, 9.52996e-5, 0, 0.52381, 0.58763, 9.33334e-5, 0, 0.555556, + 0.565261, 9.17573e-5, 0, 0.587302, 0.543244, 8.96636e-5, 0, 0.619048, 0.521273, 8.73304e-5, 0, + 0.650794, 0.499818, 8.52648e-5, 0, 0.68254, 0.478536, 8.23961e-5, 0, 0.714286, 0.457826, + 7.9939e-5, 0, 0.746032, 0.437549, 7.7126e-5, 0, 0.777778, 0.41776, 7.43043e-5, 0, 0.809524, + 0.39863, 7.16426e-5, 0, 0.84127, 0.379954, 6.86456e-5, 0, 0.873016, 0.362025, 6.60514e-5, 0, + 0.904762, 0.344581, 6.30755e-5, 0, 0.936508, 0.327909, 6.05439e-5, 0, 0.968254, 0.311736, + 5.76345e-5, 0, 1, 1, 2.63344e-8, 0, 0, 1, 2.63373e-8, 0, 0, 1, 2.63815e-8, 0, 0, 1, 2.65753e-8, 0, + 0, 1, 2.71132e-8, 0, 0, 0.999999, 2.83279e-8, 0, 0, 0.999997, 3.0833e-8, 0, 0, 0.999995, + 3.58711e-8, 0, 0, 0.999992, 4.61266e-8, 0, 0, 0.999985, 6.7574e-8, 0, 0, 0.999977, 1.1358e-7, 0, + 0, 0.999966, 2.13657e-7, 0, 0, 0.999948, 4.31151e-7, 0, 0, 0.999923, 8.96656e-7, 0, 0, 0.999884, + 1.86603e-6, 0, 0, 0.999826, 3.81115e-6, 0, 0, 0.999732, 7.54184e-6, 0, 0, 0.999561, 1.43192e-5, 0, + 0, 0.999191, 2.57061e-5, 0, 0, 0.997955, 4.05724e-5, 0, 7.44132e-5, 0.992228, 2.76537e-5, 0, + 0.000716477, 0.987638, 2.08885e-5, 0, 0.0022524, 0.983395, 2.15226e-5, 0, 0.00484816, 0.978614, + 2.70795e-5, 0, 0.00860962, 0.972389, 3.65282e-5, 0, 0.0136083, 0.964392, 4.74747e-5, 0, 0.0198941, + 0.95861, 5.09141e-5, 0, 0.0275023, 0.952806, 4.8963e-5, 0, 0.0364584, 0.94712, 5.71119e-5, 0, + 0.04678, 0.940104, 6.71704e-5, 0, 0.0584799, 0.930398, 6.87586e-5, 0, 0.0715665, 0.919866, + 7.38161e-5, 0, 0.086045, 0.907853, 8.13235e-5, 0, 0.101918, 0.894078, 8.34582e-5, 0, 0.119186, + 0.881177, 8.92093e-5, 0, 0.137845, 0.867575, 9.44548e-5, 0, 0.157891, 0.852107, 9.69607e-5, 0, + 0.179316, 0.835502, 0.000101456, 0, 0.202106, 0.81756, 0.000103256, 0, 0.226243, 0.79984, + 0.000106954, 0, 0.251704, 0.780998, 0.000108066, 0, 0.278451, 0.761132, 0.000110111, 0, 0.306436, + 0.740429, 0.000110459, 0, 0.335586, 0.719836, 0.000111219, 0, 0.365796, 0.698467, 0.00011145, 0, + 0.3969, 0.676446, 0.000110393, 0, 0.428571, 0.654635, 0.000110035, 0, 0.460318, 0.632411, + 0.000108548, 0, 0.492064, 0.609986, 0.000106963, 0, 0.52381, 0.587872, 0.000105238, 0, 0.555556, + 0.565528, 0.000102665, 0, 0.587302, 0.543563, 0.000100543, 0, 0.619048, 0.52176, 9.76182e-5, 0, + 0.650794, 0.500188, 9.47099e-5, 0, 0.68254, 0.479204, 9.19929e-5, 0, 0.714286, 0.458413, + 8.86139e-5, 0, 0.746032, 0.438314, 8.57839e-5, 0, 0.777778, 0.418573, 8.2411e-5, 0, 0.809524, + 0.39947, 7.92211e-5, 0, 0.84127, 0.380892, 7.59546e-5, 0, 0.873016, 0.362953, 7.27571e-5, 0, + 0.904762, 0.345601, 6.95738e-5, 0, 0.936508, 0.328895, 6.64907e-5, 0, 0.968254, 0.312808, + 6.34277e-5, 0, 1, 1, 6.28647e-8, 0, 0, 1, 6.28705e-8, 0, 0, 1, 6.29587e-8, 0, 0, 1, 6.33441e-8, 0, + 0, 0.999999, 6.44087e-8, 0, 0, 0.999998, 6.67856e-8, 0, 0, 0.999997, 7.15889e-8, 0, 0, 0.999995, + 8.09577e-8, 0, 0, 0.999989, 9.92764e-8, 0, 0, 0.999983, 1.35834e-7, 0, 0, 0.999974, 2.10482e-7, 0, + 0, 0.999959, 3.65215e-7, 0, 0, 0.999939, 6.86693e-7, 0, 0, 0.999911, 1.3472e-6, 0, 0, 0.999868, + 2.6731e-6, 0, 0, 0.999804, 5.24756e-6, 0, 0, 0.9997, 1.00403e-5, 0, 0, 0.99951, 1.85019e-5, 0, 0, + 0.999078, 3.22036e-5, 0, 6.20676e-6, 0.997428, 4.70002e-5, 0, 0.000341552, 0.99162, 2.87123e-5, 0, + 0.00143727, 0.987479, 2.34706e-5, 0, 0.00349201, 0.983582, 2.60083e-5, 0, 0.0066242, 0.979186, + 3.37927e-5, 0, 0.0109113, 0.97325, 4.54689e-5, 0, 0.0164064, 0.965221, 5.73759e-5, 0, 0.0231463, + 0.957262, 5.44114e-5, 0, 0.0311571, 0.952211, 5.87006e-5, 0, 0.0404572, 0.946631, 6.92256e-5, 0, + 0.0510592, 0.939391, 7.87819e-5, 0, 0.0629723, 0.929795, 7.92368e-5, 0, 0.0762025, 0.91965, + 8.75075e-5, 0, 0.090753, 0.907737, 9.50903e-5, 0, 0.106626, 0.893899, 9.72963e-5, 0, 0.123822, + 0.880239, 0.00010459, 0, 0.142337, 0.866562, 0.000107689, 0, 0.16217, 0.85164, 0.000113081, 0, + 0.183314, 0.835021, 0.000116636, 0, 0.20576, 0.817311, 0.000120074, 0, 0.229496, 0.798845, + 0.000121921, 0, 0.254502, 0.780479, 0.00012475, 0, 0.280753, 0.760694, 0.000125255, 0, 0.308212, + 0.740142, 0.000126719, 0, 0.336825, 0.719248, 0.00012636, 0, 0.366517, 0.698209, 0.000126712, 0, + 0.397167, 0.676398, 0.000125769, 0, 0.428578, 0.654378, 0.000124432, 0, 0.460318, 0.632484, + 0.000123272, 0, 0.492064, 0.610113, 0.00012085, 0, 0.52381, 0.587931, 0.000118411, 0, 0.555556, + 0.565872, 0.00011569, 0, 0.587302, 0.543814, 0.000112521, 0, 0.619048, 0.522265, 0.000109737, 0, + 0.650794, 0.500835, 0.000106228, 0, 0.68254, 0.479818, 0.000102591, 0, 0.714286, 0.459258, + 9.91288e-5, 0, 0.746032, 0.439061, 9.52325e-5, 0, 0.777778, 0.419552, 9.1895e-5, 0, 0.809524, + 0.400399, 8.79051e-5, 0, 0.84127, 0.381976, 8.44775e-5, 0, 0.873016, 0.364009, 8.06316e-5, 0, + 0.904762, 0.346761, 7.71848e-5, 0, 0.936508, 0.330049, 7.35429e-5, 0, 0.968254, 0.314018, + 7.02103e-5, 0, 1, 1, 1.39968e-7, 0, 0, 1, 1.39979e-7, 0, 0, 1, 1.40145e-7, 0, 0, 1, 1.4087e-7, 0, + 0, 0.999999, 1.42865e-7, 0, 0, 0.999998, 1.47279e-7, 0, 0, 0.999997, 1.56057e-7, 0, 0, 0.999992, + 1.7276e-7, 0, 0, 0.999989, 2.04352e-7, 0, 0, 0.99998, 2.6494e-7, 0, 0, 0.999969, 3.83435e-7, 0, 0, + 0.999953, 6.18641e-7, 0, 0, 0.999929, 1.08755e-6, 0, 0, 0.999898, 2.01497e-6, 0, 0, 0.999849, + 3.81346e-6, 0, 0, 0.999778, 7.19815e-6, 0, 0, 0.999661, 1.33215e-5, 0, 0, 0.999451, 2.38313e-5, 0, + 0, 0.998936, 4.01343e-5, 0, 0.000113724, 0.99662, 5.17346e-5, 0, 0.000820171, 0.991094, + 3.04323e-5, 0, 0.00238143, 0.987487, 2.81757e-5, 0, 0.00493527, 0.983731, 3.20048e-5, 0, + 0.00856859, 0.979647, 4.23905e-5, 0, 0.0133393, 0.973837, 5.62935e-5, 0, 0.0192863, 0.96584, + 6.77442e-5, 0, 0.0264369, 0.956309, 6.23073e-5, 0, 0.03481, 0.951523, 7.04131e-5, 0, 0.0444184, + 0.946003, 8.36594e-5, 0, 0.0552713, 0.938454, 9.11736e-5, 0, 0.0673749, 0.929279, 9.38264e-5, 0, + 0.0807329, 0.919239, 0.000103754, 0, 0.0953479, 0.907293, 0.000109928, 0, 0.111221, 0.893936, + 0.000115257, 0, 0.128352, 0.879674, 0.000122265, 0, 0.14674, 0.865668, 0.000125733, 0, 0.166382, + 0.850998, 0.000132305, 0, 0.187276, 0.834498, 0.000134844, 0, 0.209413, 0.816903, 0.000139276, 0, + 0.232786, 0.798235, 0.000140984, 0, 0.257382, 0.779724, 0.00014378, 0, 0.283181, 0.760251, + 0.000144623, 0, 0.310156, 0.739808, 0.000145228, 0, 0.338269, 0.718762, 0.00014539, 0, 0.367461, + 0.697815, 0.000144432, 0, 0.397646, 0.67631, 0.000143893, 0, 0.428685, 0.654278, 0.000141846, 0, + 0.460318, 0.632347, 0.00013935, 0, 0.492064, 0.610296, 0.000137138, 0, 0.52381, 0.588039, + 0.000133806, 0, 0.555556, 0.566218, 0.000130755, 0, 0.587302, 0.544346, 0.000127128, 0, 0.619048, + 0.522701, 0.000123002, 0, 0.650794, 0.501542, 0.000119443, 0, 0.68254, 0.480508, 0.000115055, 0, + 0.714286, 0.460092, 0.000111032, 0, 0.746032, 0.440021, 0.000106635, 0, 0.777778, 0.420446, + 0.000102162, 0, 0.809524, 0.401512, 9.8184e-5, 0, 0.84127, 0.38299, 9.36497e-5, 0, 0.873016, + 0.365232, 8.9813e-5, 0, 0.904762, 0.347865, 8.53073e-5, 0, 0.936508, 0.331342, 8.17068e-5, 0, + 0.968254, 0.315202, 7.73818e-5, 0, 1, 1, 2.9368e-7, 0, 0, 1, 2.937e-7, 0, 0, 1, 2.93998e-7, 0, 0, + 1, 2.95298e-7, 0, 0, 0.999999, 2.98865e-7, 0, 0, 0.999998, 3.067e-7, 0, 0, 0.999995, 3.22082e-7, + 0, 0, 0.999992, 3.50767e-7, 0, 0, 0.999986, 4.03538e-7, 0, 0, 0.999976, 5.01372e-7, 0, 0, + 0.999964, 6.8562e-7, 0, 0, 0.999945, 1.0374e-6, 0, 0, 0.999919, 1.71269e-6, 0, 0, 0.999882, + 3.00175e-6, 0, 0, 0.999829, 5.42144e-6, 0, 0, 0.999749, 9.84182e-6, 0, 0, 0.99962, 1.76213e-5, 0, + 0, 0.999382, 3.05995e-5, 0, 1.38418e-5, 0.998751, 4.96686e-5, 0, 0.000389844, 0.995344, + 5.10733e-5, 0, 0.00150343, 0.990768, 3.45829e-5, 0, 0.00352451, 0.987464, 3.42841e-5, 0, + 0.00655379, 0.983846, 3.99072e-5, 0, 0.0106554, 0.980007, 5.33219e-5, 0, 0.0158723, 0.974494, + 6.96992e-5, 0, 0.0222333, 0.96622, 7.76754e-5, 0, 0.029758, 0.956273, 7.47718e-5, 0, 0.0384596, + 0.950952, 8.64611e-5, 0, 0.0483473, 0.945215, 0.000100464, 0, 0.0594266, 0.937287, 0.000103729, 0, + 0.0717019, 0.928649, 0.000111665, 0, 0.0851752, 0.918791, 0.00012353, 0, 0.0998479, 0.906685, + 0.000127115, 0, 0.115721, 0.893706, 0.00013628, 0, 0.132794, 0.879248, 0.000142427, 0, 0.151067, + 0.864685, 0.000148091, 0, 0.170538, 0.850032, 0.000153517, 0, 0.191204, 0.833853, 0.000157322, 0, + 0.213063, 0.816353, 0.000161086, 0, 0.236107, 0.797834, 0.000164111, 0, 0.260329, 0.778831, + 0.000165446, 0, 0.285714, 0.759756, 0.000167492, 0, 0.312243, 0.739419, 0.000166928, 0, 0.339887, + 0.718491, 0.000167, 0, 0.368604, 0.697392, 0.000165674, 0, 0.398329, 0.676102, 0.000163815, 0, + 0.428961, 0.654243, 0.000162003, 0, 0.460331, 0.632176, 0.000158831, 0, 0.492064, 0.610407, + 0.000155463, 0, 0.52381, 0.588394, 0.000152062, 0, 0.555556, 0.56645, 0.000147665, 0, 0.587302, + 0.5449, 0.00014375, 0, 0.619048, 0.523276, 0.000138905, 0, 0.650794, 0.502179, 0.000134189, 0, + 0.68254, 0.481359, 0.000129392, 0, 0.714286, 0.46092, 0.000124556, 0, 0.746032, 0.441084, + 0.00011957, 0, 0.777778, 0.421517, 0.000114652, 0, 0.809524, 0.402721, 0.000109688, 0, 0.84127, + 0.384222, 0.000104667, 0, 0.873016, 0.366534, 9.99633e-5, 0, 0.904762, 0.349205, 9.50177e-5, 0, + 0.936508, 0.332702, 9.07301e-5, 0, 0.968254, 0.316599, 8.59769e-5, 0, 1, 1, 5.85473e-7, 0, 0, 1, + 5.85507e-7, 0, 0, 1, 5.8602e-7, 0, 0, 0.999999, 5.88259e-7, 0, 0, 0.999999, 5.94381e-7, 0, 0, + 0.999998, 6.07754e-7, 0, 0, 0.999995, 6.33729e-7, 0, 0, 0.99999, 6.8137e-7, 0, 0, 0.999984, + 7.67003e-7, 0, 0, 0.999973, 9.21212e-7, 0, 0, 0.999959, 1.20218e-6, 0, 0, 0.999936, 1.72024e-6, 0, + 0, 0.999907, 2.68088e-6, 0, 0, 0.999866, 4.45512e-6, 0, 0, 0.999806, 7.68481e-6, 0, 0, 0.999716, + 1.342e-5, 0, 0, 0.999576, 2.32473e-5, 0, 0, 0.9993, 3.91694e-5, 0, 0.000129917, 0.998498, + 6.08429e-5, 0, 0.000845035, 0.994132, 4.89743e-5, 0, 0.00237616, 0.99031, 3.84644e-5, 0, + 0.00484456, 0.987409, 4.21768e-5, 0, 0.00832472, 0.983981, 5.04854e-5, 0, 0.0128643, 0.980268, + 6.71028e-5, 0, 0.0184947, 0.974875, 8.52749e-5, 0, 0.025237, 0.966063, 8.5531e-5, 0, 0.0331046, + 0.956779, 9.00588e-5, 0, 0.0421067, 0.950259, 0.00010577, 0, 0.0522487, 0.944239, 0.000119458, 0, + 0.0635343, 0.936341, 0.000122164, 0, 0.0759654, 0.928047, 0.000134929, 0, 0.0895434, 0.918065, + 0.000145544, 0, 0.104269, 0.906267, 0.000150531, 0, 0.120142, 0.893419, 0.000161652, 0, 0.137163, + 0.878758, 0.00016593, 0, 0.15533, 0.863699, 0.000174014, 0, 0.174645, 0.848876, 0.000177877, 0, + 0.195106, 0.833032, 0.000184049, 0, 0.21671, 0.815557, 0.000186088, 0, 0.239454, 0.797323, + 0.00019054, 0, 0.263332, 0.778124, 0.000191765, 0, 0.288336, 0.758929, 0.000192535, 0, 0.314451, + 0.738979, 0.000192688, 0, 0.341658, 0.718213, 0.000191522, 0, 0.369924, 0.696947, 0.000190491, 0, + 0.399202, 0.675807, 0.000187913, 0, 0.429416, 0.654147, 0.000184451, 0, 0.460447, 0.63229, + 0.000181442, 0, 0.492064, 0.610499, 0.000177139, 0, 0.523809, 0.588747, 0.000172596, 0, 0.555555, + 0.566783, 0.000167457, 0, 0.587301, 0.545359, 0.000162518, 0, 0.619048, 0.523984, 0.000156818, 0, + 0.650794, 0.502917, 0.000151884, 0, 0.68254, 0.482294, 0.000145514, 0, 0.714286, 0.461945, + 0.000140199, 0, 0.746032, 0.442133, 0.000134101, 0, 0.777778, 0.422705, 0.000128374, 0, 0.809524, + 0.403916, 0.000122996, 0, 0.84127, 0.38554, 0.000116808, 0, 0.873016, 0.367909, 0.000111973, 0, + 0.904762, 0.350651, 0.000105938, 0, 0.936508, 0.334208, 0.000101355, 0, 0.968254, 0.318123, + 9.57629e-5, 0, 1, 1, 1.11633e-6, 0, 0, 1, 1.11639e-6, 0, 0, 1, 1.11725e-6, 0, 0, 1, 1.12096e-6, 0, + 0, 0.999999, 1.1311e-6, 0, 0, 0.999997, 1.15315e-6, 0, 0, 0.999995, 1.1956e-6, 0, 0, 0.999989, + 1.27239e-6, 0, 0, 0.999981, 1.40772e-6, 0, 0, 0.999969, 1.64541e-6, 0, 0, 0.999952, 2.06607e-6, 0, + 0, 0.999928, 2.81783e-6, 0, 0, 0.999895, 4.16835e-6, 0, 0, 0.999848, 6.58728e-6, 0, 0, 0.999781, + 1.08648e-5, 0, 0, 0.999682, 1.82579e-5, 0, 0, 0.999523, 3.06003e-5, 0, 1.59122e-5, 0.999205, + 4.99862e-5, 0, 0.000391184, 0.998131, 7.3306e-5, 0, 0.00147534, 0.993334, 5.13229e-5, 0, + 0.0034227, 0.99016, 4.67783e-5, 0, 0.00632232, 0.987321, 5.23413e-5, 0, 0.0102295, 0.984099, + 6.4267e-5, 0, 0.0151794, 0.980432, 8.43042e-5, 0, 0.0211947, 0.974976, 0.000102819, 0, 0.0282899, + 0.966429, 9.96234e-5, 0, 0.0364739, 0.957633, 0.000111074, 0, 0.0457522, 0.949422, 0.000128644, 0, + 0.0561278, 0.943045, 0.000140076, 0, 0.0676023, 0.935448, 0.000146349, 0, 0.0801762, 0.927225, + 0.000161854, 0, 0.0938499, 0.917033, 0.000169135, 0, 0.108623, 0.905762, 0.000179987, 0, 0.124496, + 0.892879, 0.000189832, 0, 0.141469, 0.878435, 0.000195881, 0, 0.159541, 0.863114, 0.00020466, 0, + 0.178713, 0.84776, 0.000209473, 0, 0.198985, 0.832084, 0.000214861, 0, 0.220355, 0.814915, + 0.000217695, 0, 0.242823, 0.796711, 0.000220313, 0, 0.266385, 0.777603, 0.00022313, 0, 0.291036, + 0.757991, 0.000222471, 0, 0.316767, 0.738371, 0.000222869, 0, 0.343563, 0.717872, 0.000221243, 0, + 0.371402, 0.696619, 0.000218089, 0, 0.400248, 0.675379, 0.00021562, 0, 0.430047, 0.65411, + 0.00021169, 0, 0.460709, 0.63241, 0.000206947, 0, 0.492079, 0.61046, 0.000201709, 0, 0.52381, + 0.58903, 0.000196753, 0, 0.555556, 0.567267, 0.000189637, 0, 0.587302, 0.545886, 0.000184735, 0, + 0.619048, 0.524714, 0.000177257, 0, 0.650794, 0.503789, 0.000171424, 0, 0.68254, 0.483204, + 0.000164688, 0, 0.714286, 0.462976, 0.000157172, 0, 0.746032, 0.443294, 0.000151341, 0, 0.777778, + 0.423988, 0.000143737, 0, 0.809524, 0.405325, 0.000138098, 0, 0.84127, 0.386981, 0.000130698, 0, + 0.873016, 0.369436, 0.000125276, 0, 0.904762, 0.35219, 0.000118349, 0, 0.936508, 0.335804, + 0.00011312, 0, 0.968254, 0.319749, 0.000106687, 0, 1, 1, 2.04685e-6, 0, 0, 1, 2.04694e-6, 0, 0, 1, + 2.04831e-6, 0, 0, 0.999999, 2.05428e-6, 0, 0, 0.999999, 2.07056e-6, 0, 0, 0.999997, 2.10581e-6, 0, + 0, 0.999993, 2.1732e-6, 0, 0, 0.999987, 2.29365e-6, 0, 0, 0.999979, 2.50243e-6, 0, 0, 0.999965, + 2.86127e-6, 0, 0, 0.999947, 3.48028e-6, 0, 0, 0.999918, 4.55588e-6, 0, 0, 0.999881, 6.43303e-6, 0, + 0, 0.999828, 9.70064e-6, 0, 0, 0.999753, 1.53233e-5, 0, 0, 0.999642, 2.4793e-5, 0, 0, 0.999464, + 4.02032e-5, 0, 0.000122947, 0.999089, 6.35852e-5, 0, 0.000807414, 0.997567, 8.57026e-5, 0, + 0.00227206, 0.992903, 5.94912e-5, 0, 0.00462812, 0.990011, 5.78515e-5, 0, 0.00794162, 0.987192, + 6.5399e-5, 0, 0.0122534, 0.98418, 8.19675e-5, 0, 0.0175888, 0.980491, 0.000105514, 0, 0.0239635, + 0.974779, 0.000121532, 0, 0.031387, 0.96675, 0.000119144, 0, 0.0398644, 0.958248, 0.000136125, 0, + 0.0493982, 0.948884, 0.000155408, 0, 0.0599896, 0.941673, 0.000162281, 0, 0.0716382, 0.934521, + 0.000176754, 0, 0.0843437, 0.926205, 0.000192873, 0, 0.0981056, 0.916089, 0.000200038, 0, + 0.112923, 0.904963, 0.000213624, 0, 0.128796, 0.892089, 0.000221834, 0, 0.145725, 0.878028, + 0.000232619, 0, 0.163709, 0.86249, 0.000238632, 0, 0.182749, 0.846587, 0.000247002, 0, 0.202847, + 0.830988, 0.000250702, 0, 0.224001, 0.814165, 0.000255562, 0, 0.246214, 0.796135, 0.000257505, 0, + 0.269482, 0.777052, 0.000258625, 0, 0.293805, 0.757201, 0.000258398, 0, 0.319176, 0.737655, + 0.000256714, 0, 0.345587, 0.717477, 0.000255187, 0, 0.373021, 0.696433, 0.000251792, 0, 0.401454, + 0.675084, 0.000247223, 0, 0.430844, 0.653907, 0.000242213, 0, 0.461125, 0.632561, 0.000237397, 0, + 0.492187, 0.610658, 0.000229313, 0, 0.52381, 0.589322, 0.000224402, 0, 0.555556, 0.567857, + 0.000216116, 0, 0.587302, 0.54652, 0.000209124, 0, 0.619048, 0.525433, 0.000201601, 0, 0.650794, + 0.504679, 0.000192957, 0, 0.68254, 0.484203, 0.000186052, 0, 0.714286, 0.464203, 0.000177672, 0, + 0.746032, 0.444549, 0.000170005, 0, 0.777778, 0.425346, 0.000162401, 0, 0.809524, 0.406706, + 0.0001544, 0, 0.84127, 0.388576, 0.000147437, 0, 0.873016, 0.37094, 0.000139493, 0, 0.904762, + 0.353996, 0.000133219, 0, 0.936508, 0.337391, 0.000125573, 0, 0.968254, 0.321648, 0.000119867, 0, + 1, 1, 3.62511e-6, 0, 0, 1, 3.62525e-6, 0, 0, 1, 3.62739e-6, 0, 0, 0.999999, 3.63673e-6, 0, 0, + 0.999998, 3.66214e-6, 0, 0, 0.999996, 3.71698e-6, 0, 0, 0.999992, 3.82116e-6, 0, 0, 0.999986, + 4.00554e-6, 0, 0, 0.999976, 4.32058e-6, 0, 0, 0.999961, 4.85194e-6, 0, 0, 0.999938, 5.74808e-6, 0, + 0, 0.999908, 7.26643e-6, 0, 0, 0.999865, 9.84707e-6, 0, 0, 0.999807, 1.42217e-5, 0, 0, 0.999723, + 2.15581e-5, 0, 0, 0.999602, 3.36114e-5, 0, 1.19113e-5, 0.999398, 5.27353e-5, 0, 0.000355813, + 0.998946, 8.05809e-5, 0, 0.00137768, 0.996647, 9.42908e-5, 0, 0.00322469, 0.992298, 6.68733e-5, 0, + 0.00597897, 0.989802, 7.16564e-5, 0, 0.00968903, 0.987019, 8.21355e-5, 0, 0.0143845, 0.984219, + 0.000104555, 0, 0.0200831, 0.980425, 0.000131245, 0, 0.0267948, 0.974241, 0.000139613, 0, + 0.034525, 0.967006, 0.000145931, 0, 0.0432757, 0.95893, 0.000167153, 0, 0.0530471, 0.949157, + 0.000188146, 0, 0.0638386, 0.94062, 0.000194625, 0, 0.0756487, 0.933509, 0.000213721, 0, + 0.0884762, 0.925088, 0.000229616, 0, 0.10232, 0.915178, 0.000239638, 0, 0.117178, 0.904093, + 0.000254814, 0, 0.133051, 0.891337, 0.000263685, 0, 0.149939, 0.877326, 0.000274789, 0, 0.167841, + 0.861794, 0.000280534, 0, 0.18676, 0.845758, 0.000289534, 0, 0.206696, 0.829792, 0.000294446, 0, + 0.22765, 0.813037, 0.000296877, 0, 0.249625, 0.795285, 0.000300217, 0, 0.27262, 0.776323, + 0.000299826, 0, 0.296636, 0.756673, 0.000299787, 0, 0.321671, 0.736856, 0.000297867, 0, 0.347718, + 0.716883, 0.000294052, 0, 0.374768, 0.696089, 0.000289462, 0, 0.402804, 0.67505, 0.000285212, 0, + 0.431796, 0.653509, 0.00027653, 0, 0.461695, 0.63258, 0.000271759, 0, 0.49242, 0.61104, + 0.000262811, 0, 0.523822, 0.589567, 0.000255151, 0, 0.555556, 0.568322, 0.000246434, 0, 0.587302, + 0.547235, 0.000237061, 0, 0.619048, 0.52616, 0.000228343, 0, 0.650794, 0.505716, 0.000219236, 0, + 0.68254, 0.485274, 0.000209595, 0, 0.714286, 0.465411, 0.000201011, 0, 0.746032, 0.445854, + 0.00019109, 0, 0.777778, 0.426911, 0.000182897, 0, 0.809524, 0.408222, 0.000173569, 0, 0.84127, + 0.390307, 0.000165496, 0, 0.873016, 0.372624, 0.000156799, 0, 0.904762, 0.355804, 0.00014917, 0, + 0.936508, 0.33924, 0.000140907, 0, 0.968254, 0.323534, 0.000134062, 0, 1, 1, 6.22487e-6, 0, 0, 1, + 6.2251e-6, 0, 0, 1, 6.22837e-6, 0, 0, 0.999999, 6.24259e-6, 0, 0, 0.999998, 6.28127e-6, 0, 0, + 0.999996, 6.36451e-6, 0, 0, 0.999991, 6.5218e-6, 0, 0, 0.999984, 6.79782e-6, 0, 0, 0.999973, + 7.26361e-6, 0, 0, 0.999955, 8.03644e-6, 0, 0, 0.999931, 9.31397e-6, 0, 0, 0.999896, 1.14299e-5, 0, + 0, 0.999847, 1.49402e-5, 0, 0, 0.999784, 2.07461e-5, 0, 0, 0.999692, 3.02493e-5, 0, 0, 0.999554, + 4.54957e-5, 0, 9.97275e-5, 0.999326, 6.90762e-5, 0, 0.000724813, 0.998757, 0.000101605, 0, + 0.0020972, 0.995367, 9.58745e-5, 0, 0.00432324, 0.99209, 8.32808e-5, 0, 0.00746347, 0.989517, + 8.87601e-5, 0, 0.0115534, 0.987008, 0.00010564, 0, 0.0166134, 0.98421, 0.000133179, 0, 0.0226552, + 0.98021, 0.000161746, 0, 0.0296838, 0.973676, 0.000161821, 0, 0.0377016, 0.967052, 0.000178635, 0, + 0.0467079, 0.959385, 0.000206765, 0, 0.0567013, 0.949461, 0.00022476, 0, 0.0676796, 0.939578, + 0.00023574, 0, 0.0796403, 0.932416, 0.00025893, 0, 0.0925812, 0.923759, 0.000271228, 0, 0.106501, + 0.914223, 0.000289165, 0, 0.121397, 0.902942, 0.000301156, 0, 0.13727, 0.890419, 0.000313852, 0, + 0.15412, 0.876639, 0.000324408, 0, 0.171946, 0.861316, 0.00033249, 0, 0.190751, 0.84496, + 0.000338497, 0, 0.210537, 0.828427, 0.000345861, 0, 0.231305, 0.811871, 0.000347863, 0, 0.253057, + 0.794397, 0.000350225, 0, 0.275797, 0.775726, 0.000349915, 0, 0.299525, 0.75617, 0.000347297, 0, + 0.324242, 0.736091, 0.000344232, 0, 0.349947, 0.716213, 0.000340835, 0, 0.376633, 0.695736, + 0.000332369, 0, 0.404289, 0.674961, 0.000327943, 0, 0.432895, 0.653518, 0.000318533, 0, 0.462415, + 0.632574, 0.000310391, 0, 0.492788, 0.61134, 0.000300755, 0, 0.523909, 0.590017, 0.000290506, 0, + 0.555556, 0.568752, 0.000280446, 0, 0.587302, 0.548061, 0.000269902, 0, 0.619048, 0.52711, + 0.000258815, 0, 0.650794, 0.506682, 0.000248481, 0, 0.68254, 0.486524, 0.000237141, 0, 0.714286, + 0.466812, 0.000226872, 0, 0.746032, 0.44732, 0.000216037, 0, 0.777778, 0.428473, 0.000205629, 0, + 0.809524, 0.409921, 0.000195691, 0, 0.84127, 0.392028, 0.000185457, 0, 0.873016, 0.374606, + 0.000176436, 0, 0.904762, 0.357601, 0.000166508, 0, 0.936508, 0.341348, 0.000158385, 0, 0.968254, + 0.32542, 0.000149203, 0, 1, 1, 1.03967e-5, 0, 0, 1, 1.0397e-5, 0, 0, 1, 1.04019e-5, 0, 0, + 0.999999, 1.04231e-5, 0, 0, 0.999998, 1.04806e-5, 0, 0, 0.999995, 1.06042e-5, 0, 0, 0.999991, + 1.08366e-5, 0, 0, 0.999982, 1.12415e-5, 0, 0, 0.999968, 1.19174e-5, 0, 0, 0.99995, 1.30227e-5, 0, + 0, 0.999922, 1.48176e-5, 0, 0, 0.999884, 1.77303e-5, 0, 0, 0.99983, 2.24564e-5, 0, 0, 0.999758, + 3.00966e-5, 0, 0, 0.999654, 4.23193e-5, 0, 5.49083e-6, 0.999503, 6.14848e-5, 0, 0.000296087, + 0.999237, 9.03576e-5, 0, 0.00123144, 0.998491, 0.0001271, 0, 0.00295954, 0.994594, 0.000107754, 0, + 0.00555829, 0.99178, 0.000103025, 0, 0.00907209, 0.989265, 0.00011154, 0, 0.0135257, 0.986998, + 0.000136296, 0, 0.0189327, 0.984137, 0.000169154, 0, 0.0252993, 0.979798, 0.000196671, 0, + 0.0326272, 0.97337, 0.000196678, 0, 0.0409157, 0.967239, 0.000223121, 0, 0.0501623, 0.959543, + 0.000253809, 0, 0.0603638, 0.949466, 0.000265972, 0, 0.0715171, 0.939074, 0.000288372, 0, + 0.0836187, 0.931118, 0.000310983, 0, 0.0966657, 0.922525, 0.000325561, 0, 0.110656, 0.912983, + 0.000345725, 0, 0.125588, 0.901617, 0.0003556, 0, 0.141461, 0.889487, 0.000374012, 0, 0.158275, + 0.875787, 0.000383445, 0, 0.176031, 0.860654, 0.000393972, 0, 0.19473, 0.844417, 0.000400311, 0, + 0.214374, 0.82741, 0.000405004, 0, 0.234967, 0.810545, 0.000407378, 0, 0.256512, 0.793312, + 0.000407351, 0, 0.279011, 0.774847, 0.000406563, 0, 0.302468, 0.755621, 0.000404903, 0, 0.326887, + 0.735511, 0.000397486, 0, 0.352266, 0.715435, 0.00039357, 0, 0.378605, 0.695403, 0.000384739, 0, + 0.405897, 0.674681, 0.000376108, 0, 0.43413, 0.65359, 0.000365997, 0, 0.463277, 0.632471, + 0.000354957, 0, 0.493295, 0.61151, 0.000343593, 0, 0.524106, 0.59064, 0.000331841, 0, 0.555561, + 0.569386, 0.000318891, 0, 0.587302, 0.548785, 0.0003072, 0, 0.619048, 0.528146, 0.00029361, 0, + 0.650794, 0.507872, 0.000281709, 0, 0.68254, 0.487805, 0.000268627, 0, 0.714286, 0.468196, + 0.000255887, 0, 0.746032, 0.448922, 0.000243997, 0, 0.777778, 0.430093, 0.000231662, 0, 0.809524, + 0.411845, 0.000220339, 0, 0.84127, 0.393808, 0.000208694, 0, 0.873016, 0.376615, 0.000198045, 0, + 0.904762, 0.359655, 0.000187375, 0, 0.936508, 0.343452, 0.000177371, 0, 0.968254, 0.32765, + 0.000167525, 0, 1, 1, 1.69351e-5, 0, 0, 1, 1.69356e-5, 0, 0, 1, 1.69427e-5, 0, 0, 0.999999, + 1.69736e-5, 0, 0, 0.999998, 1.70575e-5, 0, 0, 0.999995, 1.72372e-5, 0, 0, 0.99999, 1.75739e-5, 0, + 0, 0.999979, 1.81568e-5, 0, 0, 0.999966, 1.91206e-5, 0, 0, 0.999944, 2.0677e-5, 0, 0, 0.999912, + 2.31644e-5, 0, 0, 0.999869, 2.71268e-5, 0, 0, 0.999811, 3.34272e-5, 0, 0, 0.99973, 4.33979e-5, 0, + 0, 0.999617, 5.90083e-5, 0, 6.80315e-5, 0.999445, 8.29497e-5, 0, 0.000612796, 0.999138, + 0.000118019, 0, 0.00187408, 0.998095, 0.000156712, 0, 0.00395791, 0.993919, 0.000125054, 0, + 0.00692144, 0.991333, 0.000126091, 0, 0.0107962, 0.989226, 0.000144912, 0, 0.0155986, 0.986954, + 0.000175737, 0, 0.0213364, 0.983982, 0.000213883, 0, 0.0280114, 0.979128, 0.000234526, 0, + 0.0356226, 0.973327, 0.000243725, 0, 0.0441668, 0.967416, 0.0002773, 0, 0.0536399, 0.959729, + 0.000308799, 0, 0.0640376, 0.949758, 0.000322447, 0, 0.0753554, 0.939173, 0.000350021, 0, + 0.0875893, 0.9296, 0.000370089, 0, 0.100736, 0.921181, 0.000391365, 0, 0.114793, 0.91164, + 0.000413636, 0, 0.129759, 0.900435, 0.000427068, 0, 0.145632, 0.888183, 0.000441046, 0, 0.162412, + 0.874772, 0.000454968, 0, 0.180101, 0.859566, 0.000461882, 0, 0.1987, 0.843579, 0.000471556, 0, + 0.218213, 0.826453, 0.000474335, 0, 0.238641, 0.809164, 0.000477078, 0, 0.259989, 0.792179, + 0.00047755, 0, 0.282262, 0.773866, 0.000472573, 0, 0.305464, 0.754944, 0.000469765, 0, 0.329599, + 0.735133, 0.000462371, 0, 0.35467, 0.714858, 0.000453674, 0, 0.380678, 0.694829, 0.000443888, 0, + 0.407622, 0.674453, 0.000432052, 0, 0.435493, 0.653685, 0.000420315, 0, 0.464275, 0.632666, + 0.000406829, 0, 0.493938, 0.611676, 0.000392234, 0, 0.524422, 0.591193, 0.000379208, 0, 0.555624, + 0.570145, 0.00036319, 0, 0.587302, 0.549566, 0.000349111, 0, 0.619048, 0.529278, 0.000334166, 0, + 0.650794, 0.509026, 0.000318456, 0, 0.68254, 0.489186, 0.00030449, 0, 0.714286, 0.469662, + 0.000289051, 0, 0.746032, 0.450691, 0.000275494, 0, 0.777778, 0.431841, 0.000261437, 0, 0.809524, + 0.413752, 0.000247846, 0, 0.84127, 0.395951, 0.000235085, 0, 0.873016, 0.378633, 0.000222245, 0, + 0.904762, 0.36194, 0.000210533, 0, 0.936508, 0.345599, 0.000198494, 0, 0.968254, 0.329999, + 0.000188133, 0, 1, 1, 2.69663e-5, 0, 0, 1, 2.6967e-5, 0, 0, 1, 2.69772e-5, 0, 0, 0.999999, + 2.70214e-5, 0, 0, 0.999998, 2.71415e-5, 0, 0, 0.999994, 2.7398e-5, 0, 0, 0.999988, 2.78771e-5, 0, + 0, 0.999977, 2.87019e-5, 0, 0, 0.999961, 3.00544e-5, 0, 0, 0.999937, 3.22138e-5, 0, 0, 0.999904, + 3.56163e-5, 0, 0, 0.999854, 4.09465e-5, 0, 0, 0.99979, 4.92651e-5, 0, 0, 0.999699, 6.21722e-5, 0, + 8.8288e-7, 0.999572, 8.19715e-5, 0, 0.000223369, 0.999381, 0.000111689, 0, 0.00105414, 0.999016, + 0.000153862, 0, 0.0026493, 0.997437, 0.000187667, 0, 0.00508608, 0.993545, 0.000155672, 0, + 0.00840554, 0.991135, 0.000161455, 0, 0.012629, 0.989157, 0.000188241, 0, 0.0177661, 0.986874, + 0.000226229, 0, 0.0238198, 0.983714, 0.000268668, 0, 0.0307887, 0.978301, 0.000277109, 0, + 0.0386688, 0.973227, 0.000303446, 0, 0.0474554, 0.967317, 0.000341851, 0, 0.0571428, 0.959477, + 0.000370885, 0, 0.0677256, 0.950012, 0.000392753, 0, 0.0791988, 0.939484, 0.00042781, 0, + 0.0915576, 0.928135, 0.000443866, 0, 0.104798, 0.919819, 0.000472959, 0, 0.118918, 0.910049, + 0.000491551, 0, 0.133915, 0.899181, 0.000512616, 0, 0.149788, 0.886881, 0.000523563, 0, 0.166537, + 0.87359, 0.000540183, 0, 0.184164, 0.858613, 0.000547386, 0, 0.202669, 0.842809, 0.000554809, 0, + 0.222056, 0.825727, 0.000558316, 0, 0.242329, 0.808086, 0.000557824, 0, 0.263492, 0.790728, + 0.000556346, 0, 0.285551, 0.772987, 0.000552672, 0, 0.30851, 0.7541, 0.000543738, 0, 0.332376, + 0.734669, 0.000536107, 0, 0.357153, 0.714411, 0.000523342, 0, 0.382845, 0.694196, 0.000512238, 0, + 0.409454, 0.674252, 0.000497465, 0, 0.436977, 0.65357, 0.000481096, 0, 0.465404, 0.632999, + 0.000467054, 0, 0.494713, 0.611994, 0.000448771, 0, 0.524864, 0.591604, 0.000431889, 0, 0.555779, + 0.571134, 0.000415238, 0, 0.587302, 0.550528, 0.000396369, 0, 0.619048, 0.530292, 0.000379477, 0, + 0.650794, 0.510364, 0.000361488, 0, 0.68254, 0.490749, 0.000343787, 0, 0.714286, 0.471266, + 0.000327822, 0, 0.746032, 0.452462, 0.000310626, 0, 0.777778, 0.433907, 0.000295352, 0, 0.809524, + 0.415659, 0.000279179, 0, 0.84127, 0.398138, 0.000264685, 0, 0.873016, 0.380833, 0.000249905, 0, + 0.904762, 0.364247, 0.000236282, 0, 0.936508, 0.348041, 0.000222905, 0, 0.968254, 0.332389, + 0.000210522, 0, 1, 1, 4.20604e-5, 0, 0, 1, 4.20614e-5, 0, 0, 1, 4.20757e-5, 0, 0, 0.999999, + 4.2138e-5, 0, 0, 0.999997, 4.23067e-5, 0, 0, 0.999993, 4.26668e-5, 0, 0, 0.999986, 4.33372e-5, 0, + 0, 0.999974, 4.44857e-5, 0, 0, 0.999956, 4.63554e-5, 0, 0, 0.99993, 4.93105e-5, 0, 0, 0.999892, + 5.39077e-5, 0, 0, 0.999838, 6.10005e-5, 0, 0, 0.999767, 7.18822e-5, 0, 0, 0.999666, 8.84581e-5, 0, + 3.65471e-5, 0.999525, 0.000113398, 0, 0.000485623, 0.999311, 0.000150043, 0, 0.00162096, 0.998865, + 0.000200063, 0, 0.00355319, 0.996278, 0.000211014, 0, 0.00633818, 0.992956, 0.000189672, 0, + 0.0100043, 0.991017, 0.000210262, 0, 0.0145648, 0.989055, 0.000244292, 0, 0.0200237, 0.986741, + 0.000290481, 0, 0.0263798, 0.983288, 0.000334303, 0, 0.033629, 0.977784, 0.000340307, 0, + 0.0417652, 0.973037, 0.000377864, 0, 0.0507821, 0.967181, 0.0004239, 0, 0.060673, 0.958971, + 0.000443854, 0, 0.0714314, 0.950093, 0.000483039, 0, 0.0830518, 0.939552, 0.000517934, 0, + 0.0955288, 0.927678, 0.000539449, 0, 0.108859, 0.918278, 0.000568604, 0, 0.123038, 0.908449, + 0.000588505, 0, 0.138065, 0.897713, 0.000612473, 0, 0.153938, 0.885533, 0.000625575, 0, 0.170657, + 0.872131, 0.00063854, 0, 0.188224, 0.857517, 0.000647034, 0, 0.20664, 0.841796, 0.00065209, 0, + 0.225909, 0.824726, 0.0006544, 0, 0.246035, 0.807297, 0.000655744, 0, 0.267022, 0.789058, + 0.000646716, 0, 0.288878, 0.77189, 0.000643898, 0, 0.311607, 0.753082, 0.000629973, 0, 0.335216, + 0.7341, 0.000621564, 0, 0.359713, 0.714094, 0.000605171, 0, 0.385103, 0.693839, 0.000588752, 0, + 0.41139, 0.673891, 0.000573294, 0, 0.438576, 0.653565, 0.000552682, 0, 0.466656, 0.633326, + 0.000533446, 0, 0.495617, 0.612582, 0.000514635, 0, 0.525431, 0.59205, 0.00049303, 0, 0.556041, + 0.571918, 0.000471842, 0, 0.587338, 0.551572, 0.000451713, 0, 0.619048, 0.531553, 0.000430049, 0, + 0.650794, 0.51175, 0.000410445, 0, 0.68254, 0.49238, 0.000390098, 0, 0.714286, 0.473143, + 0.000370033, 0, 0.746032, 0.45423, 0.000351205, 0, 0.777778, 0.435963, 0.000332049, 0, 0.809524, + 0.41787, 0.000315021, 0, 0.84127, 0.400387, 0.000297315, 0, 0.873016, 0.383332, 0.000281385, 0, + 0.904762, 0.366665, 0.000265397, 0, 0.936508, 0.350633, 0.000250601, 0, 0.968254, 0.334964, + 0.00023589, 0, 1, 1, 6.43736e-5, 0, 0, 1, 6.4375e-5, 0, 0, 1, 6.43947e-5, 0, 0, 0.999999, + 6.4481e-5, 0, 0, 0.999997, 6.47143e-5, 0, 0, 0.999994, 6.52119e-5, 0, 0, 0.999985, 6.61359e-5, 0, + 0, 0.999972, 6.77116e-5, 0, 0, 0.999952, 7.02599e-5, 0, 0, 0.999922, 7.42517e-5, 0, 0, 0.99988, + 8.03906e-5, 0, 0, 0.99982, 8.97315e-5, 0, 0, 0.999741, 0.000103838, 0, 0, 0.999629, 0.00012496, 0, + 0.000149024, 0.999474, 0.000156161, 0, 0.000861027, 0.999229, 0.000201034, 0, 0.00231198, + 0.998662, 0.000259069, 0, 0.00458147, 0.995299, 0.000245439, 0, 0.00770895, 0.992732, 0.00024498, + 0, 0.0117126, 0.990847, 0.000273211, 0, 0.0165989, 0.988911, 0.000316492, 0, 0.0223674, 0.98654, + 0.00037161, 0, 0.0290135, 0.982636, 0.000410352, 0, 0.0365309, 0.977346, 0.000421756, 0, + 0.0449117, 0.972909, 0.000475578, 0, 0.0541481, 0.966821, 0.000522482, 0, 0.0642326, 0.958686, + 0.000545008, 0, 0.075158, 0.949754, 0.000589286, 0, 0.0869181, 0.939184, 0.000619995, 0, + 0.0995074, 0.927505, 0.000654266, 0, 0.112922, 0.916606, 0.000682362, 0, 0.127157, 0.906707, + 0.000704286, 0, 0.142212, 0.895937, 0.000725909, 0, 0.158085, 0.883913, 0.000743939, 0, 0.174776, + 0.870642, 0.000755157, 0, 0.192287, 0.856241, 0.000764387, 0, 0.210619, 0.84069, 0.000771032, 0, + 0.229775, 0.823728, 0.000765906, 0, 0.249761, 0.806481, 0.000767604, 0, 0.270582, 0.787924, + 0.000754385, 0, 0.292243, 0.770588, 0.000749668, 0, 0.314753, 0.751991, 0.000731613, 0, 0.338118, + 0.733407, 0.000717655, 0, 0.362347, 0.713688, 0.000700604, 0, 0.387447, 0.693595, 0.000678765, 0, + 0.413424, 0.673426, 0.000657042, 0, 0.440284, 0.65359, 0.000635892, 0, 0.468027, 0.633576, + 0.000611569, 0, 0.496645, 0.613144, 0.000586011, 0, 0.526122, 0.592711, 0.000563111, 0, 0.556417, + 0.572722, 0.000537699, 0, 0.587451, 0.552762, 0.000512556, 0, 0.619048, 0.532985, 0.000489757, 0, + 0.650794, 0.513219, 0.000464139, 0, 0.68254, 0.493992, 0.000442193, 0, 0.714286, 0.47509, + 0.000418629, 0, 0.746032, 0.456287, 0.000397045, 0, 0.777778, 0.438152, 0.000375504, 0, 0.809524, + 0.420294, 0.00035492, 0, 0.84127, 0.402749, 0.000335327, 0, 0.873016, 0.385879, 0.000316422, 0, + 0.904762, 0.369352, 0.000298333, 0, 0.936508, 0.353301, 0.000281417, 0, 0.968254, 0.337781, + 0.000265203, 0, 1, 1, 9.68267e-5, 0, 0, 1, 9.68284e-5, 0, 0, 1, 9.68556e-5, 0, 0, 0.999999, + 9.69733e-5, 0, 0, 0.999997, 9.72913e-5, 0, 0, 0.999993, 9.79688e-5, 0, 0, 0.999984, 9.92239e-5, 0, + 0, 0.999969, 0.000101356, 0, 0, 0.999946, 0.000104784, 0, 0, 0.999913, 0.000110111, 0, 0, + 0.999868, 0.000118217, 0, 0, 0.999801, 0.000130396, 0, 0, 0.999712, 0.000148523, 0, 1.24907e-5, + 0.999589, 0.000175233, 0, 0.000355405, 0.999416, 0.000213999, 0, 0.0013528, 0.999136, 0.000268529, + 0, 0.00312557, 0.998367, 0.000333088, 0, 0.00573045, 0.994701, 0.000304757, 0, 0.00919397, + 0.992497, 0.000318031, 0, 0.0135261, 0.990608, 0.000353863, 0, 0.0187278, 0.988715, 0.000409044, + 0, 0.0247947, 0.986241, 0.000472967, 0, 0.0317196, 0.981696, 0.000495104, 0, 0.039494, 0.977097, + 0.000532873, 0, 0.0481087, 0.972583, 0.000594447, 0, 0.0575549, 0.966142, 0.000636867, 0, + 0.0678242, 0.95823, 0.000669899, 0, 0.0789089, 0.949677, 0.000719499, 0, 0.0908023, 0.939226, + 0.000750584, 0, 0.103499, 0.927501, 0.000793183, 0, 0.116993, 0.915199, 0.00081995, 0, 0.131282, + 0.90498, 0.000847654, 0, 0.146364, 0.894243, 0.000868929, 0, 0.162237, 0.882154, 0.000884278, 0, + 0.178902, 0.869161, 0.000898108, 0, 0.196358, 0.854751, 0.000901254, 0, 0.21461, 0.839368, + 0.00090679, 0, 0.23366, 0.822874, 0.000901541, 0, 0.253512, 0.805514, 0.000897297, 0, 0.274174, + 0.78716, 0.000881856, 0, 0.29565, 0.769061, 0.000870032, 0, 0.31795, 0.751, 0.000851719, 0, + 0.341081, 0.732614, 0.000830671, 0, 0.365053, 0.713171, 0.000806569, 0, 0.389874, 0.693472, + 0.00078338, 0, 0.415553, 0.673528, 0.000756404, 0, 0.442098, 0.653397, 0.000726872, 0, 0.469512, + 0.633781, 0.000700494, 0, 0.497794, 0.613877, 0.00067105, 0, 0.526935, 0.593506, 0.000640361, 0, + 0.556908, 0.573667, 0.000613502, 0, 0.587657, 0.553932, 0.000583177, 0, 0.61906, 0.534345, + 0.000554375, 0, 0.650794, 0.515042, 0.000527811, 0, 0.68254, 0.495674, 0.000499367, 0, 0.714286, + 0.477132, 0.00047429, 0, 0.746032, 0.458609, 0.000447726, 0, 0.777778, 0.440354, 0.000424205, 0, + 0.809524, 0.422765, 0.000399549, 0, 0.84127, 0.405472, 0.000378315, 0, 0.873016, 0.388482, + 0.000355327, 0, 0.904762, 0.372191, 0.000336122, 0, 0.936508, 0.356099, 0.000315247, 0, 0.968254, + 0.340737, 0.00029794, 0, 1, 1, 0.000143327, 0, 0, 1, 0.00014333, 0, 0, 1, 0.000143366, 0, 0, + 0.999999, 0.000143524, 0, 0, 0.999996, 0.000143952, 0, 0, 0.999991, 0.000144862, 0, 0, 0.999981, + 0.000146544, 0, 0, 0.999966, 0.000149391, 0, 0, 0.999941, 0.000153946, 0, 0, 0.999905, + 0.000160971, 0, 0, 0.999852, 0.000171562, 0, 0, 0.99978, 0.00018729, 0, 0, 0.999681, 0.000210386, + 0, 8.26239e-5, 0.999546, 0.000243906, 0, 0.000664807, 0.999352, 0.000291739, 0, 0.00196192, + 0.999027, 0.000357419, 0, 0.00405941, 0.997886, 0.000422349, 0, 0.00699664, 0.99419, 0.000385008, + 0, 0.0107896, 0.99214, 0.000409775, 0, 0.0154415, 0.990274, 0.000456418, 0, 0.0209488, 0.988455, + 0.000527008, 0, 0.0273037, 0.985804, 0.000597685, 0, 0.0344969, 0.98103, 0.000613124, 0, + 0.0425183, 0.976674, 0.000668321, 0, 0.0513575, 0.972021, 0.000736985, 0, 0.0610046, 0.965274, + 0.000773789, 0, 0.0714508, 0.958046, 0.000830852, 0, 0.0826877, 0.949333, 0.000875766, 0, + 0.0947085, 0.939135, 0.000917088, 0, 0.107507, 0.927119, 0.000952244, 0, 0.121078, 0.91469, + 0.000990626, 0, 0.135419, 0.903006, 0.00101304, 0, 0.150526, 0.892368, 0.00103834, 0, 0.166399, + 0.880231, 0.00105002, 0, 0.183038, 0.867432, 0.00106331, 0, 0.200443, 0.853208, 0.00106783, 0, + 0.218618, 0.837956, 0.00106458, 0, 0.237566, 0.821772, 0.00105945, 0, 0.257291, 0.804328, + 0.00104685, 0, 0.2778, 0.786465, 0.00103178, 0, 0.2991, 0.768004, 0.00101077, 0, 0.321199, + 0.74972, 0.000985504, 0, 0.344106, 0.731682, 0.000962893, 0, 0.36783, 0.712813, 0.000932146, 0, + 0.392383, 0.693139, 0.00089871, 0, 0.417774, 0.673566, 0.000869678, 0, 0.444013, 0.653483, + 0.000835525, 0, 0.471107, 0.633891, 0.000799853, 0, 0.49906, 0.614433, 0.000766838, 0, 0.527869, + 0.594586, 0.000732227, 0, 0.557517, 0.574769, 0.000696442, 0, 0.587966, 0.555149, 0.000663935, 0, + 0.61913, 0.535898, 0.000629826, 0, 0.650794, 0.516753, 0.000596486, 0, 0.68254, 0.497816, + 0.000567078, 0, 0.714286, 0.479034, 0.000534399, 0, 0.746032, 0.460975, 0.000507013, 0, 0.777778, + 0.442935, 0.000477421, 0, 0.809524, 0.425263, 0.000451101, 0, 0.84127, 0.408248, 0.000424964, 0, + 0.873016, 0.391339, 0.00039993, 0, 0.904762, 0.37513, 0.000377619, 0, 0.936508, 0.359172, + 0.000354418, 0, 0.968254, 0.343876, 0.000334823, 0, 1, 1, 0.000209042, 0, 0, 1, 0.000209045, 0, 0, + 1, 0.000209093, 0, 0, 0.999999, 0.000209304, 0, 0, 0.999996, 0.000209871, 0, 0, 0.999991, + 0.000211078, 0, 0, 0.999979, 0.000213304, 0, 0, 0.999963, 0.000217061, 0, 0, 0.999933, + 0.000223042, 0, 0, 0.999894, 0.000232206, 0, 0, 0.999837, 0.000245901, 0, 0, 0.999756, + 0.000266023, 0, 1.02927e-6, 0.999648, 0.000295204, 0, 0.000233468, 0.999499, 0.000336958, 0, + 0.00108237, 0.999283, 0.000395563, 0, 0.00268832, 0.998896, 0.000473785, 0, 0.00511138, 0.997006, + 0.000520008, 0, 0.00837705, 0.993819, 0.000497261, 0, 0.0124928, 0.991632, 0.000523722, 0, + 0.0174561, 0.989875, 0.000587258, 0, 0.0232596, 0.988109, 0.000676329, 0, 0.0298932, 0.985155, + 0.000747701, 0, 0.0373453, 0.980479, 0.000768803, 0, 0.0456045, 0.976271, 0.000841054, 0, + 0.0546593, 0.971347, 0.000911469, 0, 0.0644994, 0.964528, 0.000953057, 0, 0.0751152, 0.957632, + 0.00102221, 0, 0.0864981, 0.948681, 0.00106122, 0, 0.0986407, 0.938716, 0.00111857, 0, 0.111537, + 0.926629, 0.00114762, 0, 0.125182, 0.914025, 0.00118995, 0, 0.139571, 0.901026, 0.00121228, 0, + 0.154703, 0.890358, 0.00123946, 0, 0.170576, 0.878283, 0.0012527, 0, 0.18719, 0.865459, + 0.00125536, 0, 0.204547, 0.851407, 0.00126134, 0, 0.222648, 0.836276, 0.00124759, 0, 0.241498, + 0.820436, 0.00124443, 0, 0.261101, 0.803253, 0.00122071, 0, 0.281465, 0.785562, 0.00120107, 0, + 0.302595, 0.76718, 0.00117762, 0, 0.324501, 0.748551, 0.00114289, 0, 0.347192, 0.730564, + 0.00110872, 0, 0.370679, 0.712253, 0.00107636, 0, 0.394973, 0.692867, 0.00103646, 0, 0.420085, + 0.673695, 0.000996793, 0, 0.446027, 0.653912, 0.00095675, 0, 0.47281, 0.634129, 0.000916739, 0, + 0.500441, 0.615004, 0.000874401, 0, 0.528921, 0.595587, 0.000833411, 0, 0.558244, 0.575965, + 0.000794556, 0, 0.588384, 0.5566, 0.00075196, 0, 0.619281, 0.537428, 0.000716381, 0, 0.650795, + 0.518623, 0.000676558, 0, 0.68254, 0.499964, 0.00064074, 0, 0.714286, 0.481356, 0.000605984, 0, + 0.746032, 0.463279, 0.000570256, 0, 0.777778, 0.445673, 0.000540138, 0, 0.809524, 0.428032, + 0.000507299, 0, 0.84127, 0.411112, 0.000479553, 0, 0.873016, 0.394444, 0.000450737, 0, 0.904762, + 0.378247, 0.000424269, 0, 0.936508, 0.362415, 0.000399111, 0, 0.968254, 0.347103, 0.000375274, 0, + 1, 1, 0.000300729, 0, 0, 1, 0.000300733, 0, 0, 1, 0.000300797, 0, 0, 0.999998, 0.000301072, 0, 0, + 0.999996, 0.000301817, 0, 0, 0.999989, 0.000303398, 0, 0, 0.999977, 0.000306309, 0, 0, 0.999958, + 0.000311209, 0, 0, 0.999927, 0.000318975, 0, 0, 0.999884, 0.000330804, 0, 0, 0.99982, 0.00034834, + 0, 0, 0.999733, 0.000373854, 0, 3.26995e-5, 0.999613, 0.000410424, 0, 0.000477174, 0.999447, + 0.000462047, 0, 0.00161099, 0.999204, 0.000533322, 0, 0.00353153, 0.998725, 0.000624964, 0, + 0.00627965, 0.995871, 0.000631786, 0, 0.0098693, 0.993194, 0.000632017, 0, 0.0143011, 0.991541, + 0.00068923, 0, 0.019568, 0.989773, 0.000766892, 0, 0.0256593, 0.987647, 0.000863668, 0, 0.0325625, + 0.984193, 0.000922089, 0, 0.0402647, 0.980016, 0.000970749, 0, 0.0487532, 0.975859, 0.00106027, 0, + 0.058016, 0.970514, 0.00112239, 0, 0.0680419, 0.963625, 0.00117212, 0, 0.0788208, 0.956959, + 0.00125211, 0, 0.0903439, 0.947956, 0.00129411, 0, 0.102604, 0.93809, 0.00135879, 0, 0.115594, + 0.92659, 0.00139309, 0, 0.129309, 0.913829, 0.00143253, 0, 0.143745, 0.90005, 0.00145809, 0, + 0.158901, 0.888129, 0.0014748, 0, 0.174774, 0.87607, 0.00148756, 0, 0.191365, 0.863461, + 0.00148714, 0, 0.208674, 0.849594, 0.00148892, 0, 0.226705, 0.834531, 0.00146496, 0, 0.245461, + 0.81903, 0.0014579, 0, 0.264947, 0.802122, 0.00143039, 0, 0.28517, 0.78445, 0.00139717, 0, + 0.306137, 0.766434, 0.00136312, 0, 0.327857, 0.747816, 0.00132597, 0, 0.350341, 0.729519, + 0.00128323, 0, 0.373598, 0.711454, 0.00123803, 0, 0.397642, 0.692699, 0.00119097, 0, 0.422485, + 0.673723, 0.00114565, 0, 0.448139, 0.654386, 0.00109552, 0, 0.474619, 0.634673, 0.00104553, 0, + 0.501933, 0.615554, 0.00099985, 0, 0.530089, 0.596462, 0.000948207, 0, 0.559087, 0.577385, + 0.000902299, 0, 0.588913, 0.558257, 0.000856448, 0, 0.619525, 0.5392, 0.000810395, 0, 0.650826, + 0.520543, 0.000768558, 0, 0.68254, 0.502206, 0.0007239, 0, 0.714286, 0.48402, 0.000685794, 0, + 0.746032, 0.465779, 0.00064471, 0, 0.777778, 0.448455, 0.000609583, 0, 0.809524, 0.431091, + 0.00057227, 0, 0.84127, 0.414147, 0.00054042, 0, 0.873016, 0.39765, 0.000506545, 0, 0.904762, + 0.381576, 0.000477635, 0, 0.936508, 0.365881, 0.000448446, 0, 0.968254, 0.350582, 0.000421424, 0, + 1, 1, 0.000427144, 0, 0, 1, 0.000427151, 0, 0, 1, 0.000427232, 0, 0, 0.999998, 0.00042759, 0, 0, + 0.999995, 0.000428555, 0, 0, 0.999988, 0.000430603, 0, 0, 0.999976, 0.000434368, 0, 0, 0.999952, + 0.000440688, 0, 0, 0.999919, 0.000450667, 0, 0, 0.999871, 0.00046578, 0, 0, 0.999801, 0.000488024, + 0, 0, 0.999704, 0.000520092, 0, 0.000129791, 0.999572, 0.000565553, 0, 0.000821056, 0.999389, + 0.000628906, 0, 0.00225241, 0.999114, 0.000714911, 0, 0.00449109, 0.998488, 0.000819218, 0, + 0.00756249, 0.995234, 0.00080415, 0, 0.0114716, 0.993021, 0.000830181, 0, 0.0162131, 0.991407, + 0.000902645, 0, 0.021776, 0.989625, 0.000996934, 0, 0.0281471, 0.987064, 0.00109707, 0, 0.0353118, + 0.983265, 0.00114353, 0, 0.0432562, 0.979535, 0.0012272, 0, 0.0519665, 0.975224, 0.00132642, 0, + 0.0614298, 0.969574, 0.00138092, 0, 0.0716348, 0.963021, 0.00145896, 0, 0.0825709, 0.956046, + 0.00152834, 0, 0.094229, 0.947136, 0.00158217, 0, 0.106602, 0.937313, 0.0016347, 0, 0.119682, + 0.926073, 0.00168383, 0, 0.133465, 0.913121, 0.00171627, 0, 0.147947, 0.899165, 0.00174229, 0, + 0.163125, 0.885891, 0.00176137, 0, 0.178998, 0.873783, 0.00176406, 0, 0.195566, 0.861331, + 0.00176156, 0, 0.21283, 0.847569, 0.00175346, 0, 0.230793, 0.832785, 0.00172753, 0, 0.249459, + 0.817442, 0.00170204, 0, 0.268832, 0.800613, 0.00166576, 0, 0.28892, 0.783597, 0.00162909, 0, + 0.30973, 0.76571, 0.0015826, 0, 0.331271, 0.747021, 0.00153106, 0, 0.353554, 0.728593, 0.00148036, + 0, 0.37659, 0.710661, 0.00142808, 0, 0.400391, 0.692426, 0.00136906, 0, 0.424973, 0.673623, + 0.00131066, 0, 0.450347, 0.65494, 0.00125569, 0, 0.476531, 0.635448, 0.00119517, 0, 0.503535, + 0.616221, 0.00113828, 0, 0.531372, 0.597531, 0.0010816, 0, 0.560047, 0.578795, 0.00102673, 0, + 0.589554, 0.559892, 0.000970985, 0, 0.619869, 0.541307, 0.000919773, 0, 0.650923, 0.522608, + 0.000868479, 0, 0.68254, 0.504484, 0.00082137, 0, 0.714286, 0.486603, 0.000772916, 0, 0.746032, + 0.468802, 0.000730353, 0, 0.777778, 0.451172, 0.000684955, 0, 0.809524, 0.434348, 0.000647565, 0, + 0.84127, 0.417445, 0.000605863, 0, 0.873016, 0.401077, 0.000571885, 0, 0.904762, 0.385039, + 0.000536034, 0, 0.936508, 0.369483, 0.000504227, 0, 0.968254, 0.354272, 0.000473165, 0, 1, 1, + 0.000599525, 0, 0, 1, 0.000599533, 0, 0, 1, 0.000599639, 0, 0, 0.999998, 0.000600097, 0, 0, + 0.999994, 0.000601336, 0, 0, 0.999987, 0.000603958, 0, 0, 0.999972, 0.000608775, 0, 0, 0.999949, + 0.000616842, 0, 0, 0.999912, 0.000629534, 0, 0, 0.999857, 0.000648658, 0, 0, 0.999781, + 0.000676615, 0, 5.38873e-6, 0.999674, 0.000716574, 0, 0.000308602, 0.999528, 0.000772641, 0, + 0.00127003, 0.999326, 0.000849806, 0, 0.00300783, 0.999009, 0.000952682, 0, 0.00556637, 0.998112, + 0.00106394, 0, 0.00895889, 0.994496, 0.00102228, 0, 0.0131827, 0.992806, 0.00108586, 0, 0.0182277, + 0.991211, 0.0011759, 0, 0.0240795, 0.989415, 0.00128955, 0, 0.030723, 0.986499, 0.00139038, 0, + 0.0381418, 0.982679, 0.00144539, 0, 0.046321, 0.978839, 0.00153954, 0, 0.0552459, 0.974295, + 0.00164417, 0, 0.0649034, 0.968784, 0.00171517, 0, 0.0752814, 0.962324, 0.00180282, 0, 0.0863693, + 0.954956, 0.00186387, 0, 0.0981578, 0.94624, 0.00193817, 0, 0.110639, 0.936517, 0.00198156, 0, + 0.123806, 0.925186, 0.00203042, 0, 0.137655, 0.91252, 0.0020664, 0, 0.15218, 0.898441, 0.00207822, + 0, 0.16738, 0.884394, 0.0020992, 0, 0.183253, 0.871273, 0.00208748, 0, 0.199799, 0.859057, + 0.00208686, 0, 0.21702, 0.845243, 0.00205519, 0, 0.234918, 0.830723, 0.00202868, 0, 0.253496, + 0.815801, 0.00199501, 0, 0.272761, 0.79914, 0.00194193, 0, 0.292719, 0.782372, 0.00188824, 0, + 0.313377, 0.76482, 0.00183695, 0, 0.334745, 0.746586, 0.00177418, 0, 0.356833, 0.7281, 0.00170628, + 0, 0.379654, 0.709842, 0.00164063, 0, 0.403221, 0.692019, 0.00157355, 0, 0.427548, 0.67364, + 0.00150262, 0, 0.452651, 0.655277, 0.00143473, 0, 0.478545, 0.636438, 0.00136371, 0, 0.505246, + 0.617364, 0.00129911, 0, 0.532768, 0.598603, 0.00123014, 0, 0.561122, 0.580195, 0.00116587, 0, + 0.590309, 0.561786, 0.00110398, 0, 0.620318, 0.543377, 0.00104148, 0, 0.651102, 0.525093, + 0.000983984, 0, 0.682545, 0.506791, 0.00092667, 0, 0.714286, 0.489291, 0.000874326, 0, 0.746032, + 0.471811, 0.000821734, 0, 0.777778, 0.454435, 0.000774698, 0, 0.809524, 0.437493, 0.000727302, 0, + 0.84127, 0.420977, 0.000684039, 0, 0.873016, 0.404729, 0.00064373, 0, 0.904762, 0.388756, + 0.00060285, 0, 0.936508, 0.373344, 0.00056765, 0, 0.968254, 0.358191, 0.000531929, 0, 1, 1, + 0.000832169, 0, 0, 1, 0.000832178, 0, 0, 1, 0.00083231, 0, 0, 0.999998, 0.000832893, 0, 0, + 0.999995, 0.000834465, 0, 0, 0.999985, 0.000837791, 0, 0, 0.999969, 0.000843893, 0, 0, 0.999944, + 0.000854086, 0, 0, 0.999903, 0.000870071, 0, 0, 0.999843, 0.000894042, 0, 0, 0.999759, + 0.000928865, 0, 5.31805e-5, 0.999643, 0.000978242, 0, 0.000579365, 0.99948, 0.00104684, 0, + 0.00182774, 0.999255, 0.00114012, 0, 0.00387804, 0.998885, 0.00126188, 0, 0.00675709, 0.997405, + 0.00135888, 0, 0.010468, 0.99424, 0.00133626, 0, 0.0150018, 0.992458, 0.00140905, 0, 0.0203443, + 0.990929, 0.00152305, 0, 0.0264786, 0.989116, 0.00165882, 0, 0.0333875, 0.985624, 0.00174128, 0, + 0.0410536, 0.982003, 0.00182108, 0, 0.0494609, 0.978336, 0.00194498, 0, 0.0585941, 0.973184, + 0.00202708, 0, 0.0684396, 0.9678, 0.00212166, 0, 0.0789851, 0.961348, 0.00221366, 0, 0.0902199, + 0.953841, 0.00228219, 0, 0.102134, 0.94534, 0.00235662, 0, 0.114721, 0.935552, 0.00240572, 0, + 0.127972, 0.924064, 0.00244405, 0, 0.141884, 0.911827, 0.00247557, 0, 0.156451, 0.897731, + 0.00248374, 0, 0.171672, 0.883409, 0.00249863, 0, 0.187545, 0.868625, 0.00246688, 0, 0.20407, + 0.856529, 0.00246523, 0, 0.221249, 0.842999, 0.00242368, 0, 0.239083, 0.828505, 0.00237354, 0, + 0.257578, 0.813825, 0.00232588, 0, 0.276738, 0.797813, 0.00226731, 0, 0.296569, 0.781097, + 0.00219704, 0, 0.31708, 0.764038, 0.00212394, 0, 0.338281, 0.746067, 0.00204786, 0, 0.360181, + 0.727687, 0.00196728, 0, 0.382794, 0.709571, 0.00188779, 0, 0.406133, 0.691503, 0.00180532, 0, + 0.430213, 0.673673, 0.00171849, 0, 0.45505, 0.655732, 0.00164147, 0, 0.480662, 0.637399, + 0.00155858, 0, 0.507065, 0.618616, 0.00147641, 0, 0.534278, 0.60005, 0.00140125, 0, 0.562313, + 0.581713, 0.00132441, 0, 0.59118, 0.563546, 0.00125014, 0, 0.620875, 0.545605, 0.00118249, 0, + 0.651373, 0.527559, 0.0011116, 0, 0.682593, 0.509764, 0.00104979, 0, 0.714286, 0.49193, + 0.000985977, 0, 0.746032, 0.475011, 0.000928592, 0, 0.777778, 0.457878, 0.000873466, 0, 0.809524, + 0.440979, 0.000819585, 0, 0.84127, 0.424613, 0.000772365, 0, 0.873016, 0.408549, 0.000722195, 0, + 0.904762, 0.392771, 0.000680014, 0, 0.936508, 0.377317, 0.000636797, 0, 0.968254, 0.362352, + 0.000598318, 0, 1, 1, 0.00114313, 0, 0, 1, 0.00114314, 0, 0, 0.999999, 0.00114331, 0, 0, 0.999998, + 0.00114404, 0, 0, 0.999994, 0.00114601, 0, 0, 0.999984, 0.00115019, 0, 0, 0.999967, 0.00115784, 0, + 0, 0.999937, 0.0011706, 0, 0, 0.999894, 0.00119054, 0, 0, 0.999828, 0.00122031, 0, 0, 0.999735, + 0.00126331, 0, 0.000169263, 0.999606, 0.00132382, 0, 0.000949167, 0.999426, 0.0014071, 0, + 0.00249668, 0.999173, 0.00151895, 0, 0.00486392, 0.99873, 0.00166102, 0, 0.00806323, 0.996243, + 0.0017023, 0, 0.0120895, 0.993779, 0.00172782, 0, 0.0169288, 0.9919, 0.0018108, 0, 0.0225633, + 0.990524, 0.00196028, 0, 0.028974, 0.98868, 0.00212014, 0, 0.036142, 0.984663, 0.00217598, 0, + 0.044049, 0.981457, 0.00230563, 0, 0.0526781, 0.977608, 0.00243966, 0, 0.0620137, 0.972215, + 0.00251336, 0, 0.0720418, 0.966798, 0.0026285, 0, 0.0827499, 0.960241, 0.00271409, 0, 0.0941271, + 0.952489, 0.00278381, 0, 0.106164, 0.944127, 0.00285399, 0, 0.118852, 0.934282, 0.00290994, 0, + 0.132185, 0.923271, 0.00294558, 0, 0.146157, 0.910803, 0.00296269, 0, 0.160766, 0.896705, + 0.00296803, 0, 0.176007, 0.88238, 0.00296637, 0, 0.19188, 0.867116, 0.00293163, 0, 0.208385, + 0.853636, 0.00289418, 0, 0.225523, 0.840469, 0.00284663, 0, 0.243296, 0.82639, 0.00278594, 0, + 0.261709, 0.811759, 0.00271618, 0, 0.280767, 0.796113, 0.00263187, 0, 0.300476, 0.779518, + 0.00254589, 0, 0.320845, 0.763142, 0.00246003, 0, 0.341883, 0.745464, 0.00236529, 0, 0.363601, + 0.727491, 0.00226536, 0, 0.386011, 0.709414, 0.00216375, 0, 0.409128, 0.691396, 0.00207127, 0, + 0.432967, 0.67368, 0.00197106, 0, 0.457545, 0.656049, 0.00187022, 0, 0.482881, 0.638188, + 0.00177605, 0, 0.508992, 0.620177, 0.00168482, 0, 0.535899, 0.601506, 0.00158909, 0, 0.563619, + 0.58362, 0.00150583, 0, 0.592165, 0.565496, 0.00141791, 0, 0.621544, 0.54789, 0.00133693, 0, + 0.651743, 0.530323, 0.00126038, 0, 0.682709, 0.512795, 0.00118556, 0, 0.714286, 0.495199, + 0.00111527, 0, 0.746032, 0.478101, 0.0010489, 0, 0.777778, 0.461511, 0.000984264, 0, 0.809524, + 0.444879, 0.00092591, 0, 0.84127, 0.428424, 0.000866582, 0, 0.873016, 0.412495, 0.000814463, 0, + 0.904762, 0.396975, 0.000764498, 0, 0.936508, 0.381614, 0.000715967, 0, 0.968254, 0.366732, + 0.000672483, 0, 1, 1, 0.00155501, 0, 0, 1, 0.00155503, 0, 0, 1, 0.00155524, 0, 0, 0.999998, + 0.00155615, 0, 0, 0.999994, 0.0015586, 0, 0, 0.999983, 0.00156379, 0, 0, 0.999963, 0.0015733, 0, + 0, 0.999932, 0.00158911, 0, 0, 0.999882, 0.00161376, 0, 0, 0.99981, 0.00165041, 0, 1.00875e-5, + 0.999708, 0.00170304, 0, 0.000367658, 0.999565, 0.00177658, 0, 0.0014234, 0.999368, 0.00187688, 0, + 0.00327939, 0.999081, 0.00200989, 0, 0.00596629, 0.99852, 0.00217177, 0, 0.0094852, 0.99549, + 0.0021745, 0, 0.013824, 0.993252, 0.00222357, 0, 0.0189642, 0.991727, 0.00235022, 0, 0.0248856, + 0.989951, 0.00250561, 0, 0.0315669, 0.988029, 0.00268829, 0, 0.0389882, 0.984029, 0.0027496, 0, + 0.0471302, 0.980683, 0.00289793, 0, 0.0559754, 0.976554, 0.00303315, 0, 0.0655081, 0.97139, + 0.00313257, 0, 0.0757138, 0.965544, 0.00323656, 0, 0.08658, 0.95912, 0.00333432, 0, 0.0980954, + 0.951183, 0.0034039, 0, 0.110251, 0.942974, 0.00347515, 0, 0.123038, 0.932642, 0.00350381, 0, + 0.13645, 0.922158, 0.00354519, 0, 0.150482, 0.909404, 0.00353851, 0, 0.165129, 0.896071, + 0.0035435, 0, 0.18039, 0.881206, 0.00349936, 0, 0.196263, 0.866077, 0.00347256, 0, 0.212748, + 0.85093, 0.003415, 0, 0.229847, 0.837703, 0.00333367, 0, 0.247561, 0.823878, 0.003249, 0, + 0.265895, 0.809449, 0.00316347, 0, 0.284854, 0.794379, 0.00306351, 0, 0.304445, 0.778138, + 0.0029499, 0, 0.324675, 0.761997, 0.00284099, 0, 0.345555, 0.744938, 0.00272104, 0, 0.367095, + 0.727212, 0.00260715, 0, 0.389309, 0.709549, 0.00248855, 0, 0.41221, 0.691704, 0.00236783, 0, + 0.435814, 0.673689, 0.00225178, 0, 0.460138, 0.656453, 0.00213765, 0, 0.485203, 0.639128, + 0.00202178, 0, 0.511028, 0.621512, 0.00191443, 0, 0.537634, 0.603598, 0.00180977, 0, 0.565041, + 0.58559, 0.00170456, 0, 0.593268, 0.567852, 0.00160927, 0, 0.622327, 0.5503, 0.00151395, 0, + 0.652217, 0.533033, 0.00142499, 0, 0.682907, 0.515942, 0.00133955, 0, 0.714296, 0.498814, + 0.0012602, 0, 0.746032, 0.481595, 0.00118188, 0, 0.777778, 0.465117, 0.00111171, 0, 0.809524, + 0.448865, 0.00104091, 0, 0.84127, 0.432711, 0.000976618, 0, 0.873016, 0.416822, 0.00091859, 0, + 0.904762, 0.401272, 0.000857704, 0, 0.936508, 0.386226, 0.000807172, 0, 0.968254, 0.371321, + 0.00075464, 0, 1, 1, 0.00209596, 0, 0, 1, 0.00209598, 0, 0, 1, 0.00209624, 0, 0, 0.999997, + 0.00209736, 0, 0, 0.999991, 0.00210039, 0, 0, 0.999979, 0.00210678, 0, 0, 0.999959, 0.00211847, 0, + 0, 0.999925, 0.0021379, 0, 0, 0.99987, 0.00216809, 0, 0, 0.999791, 0.00221281, 0, 6.81487e-5, + 0.999677, 0.00227669, 0, 0.000658161, 0.999521, 0.00236533, 0, 0.00200635, 0.999301, 0.00248514, + 0, 0.0041779, 0.998977, 0.00264185, 0, 0.00718648, 0.998191, 0.00281695, 0, 0.0110239, 0.994801, + 0.00278518, 0, 0.015672, 0.993091, 0.00288774, 0, 0.0211091, 0.991571, 0.00303931, 0, 0.0273123, + 0.9897, 0.00321643, 0, 0.034259, 0.987023, 0.00337332, 0, 0.0419282, 0.983289, 0.00346146, 0, + 0.0502998, 0.979892, 0.00363704, 0, 0.0593562, 0.975111, 0.00373601, 0, 0.069081, 0.970351, + 0.0038842, 0, 0.0794598, 0.964131, 0.00397053, 0, 0.0904798, 0.957747, 0.00408078, 0, 0.10213, + 0.949536, 0.00413533, 0, 0.1144, 0.941372, 0.00420305, 0, 0.127284, 0.931049, 0.00422815, 0, + 0.140772, 0.920647, 0.00425048, 0, 0.154862, 0.908033, 0.0042281, 0, 0.169548, 0.895028, + 0.00422026, 0, 0.184828, 0.879968, 0.00415042, 0, 0.200701, 0.864875, 0.00408821, 0, 0.217167, + 0.84918, 0.00400909, 0, 0.234227, 0.834934, 0.00391178, 0, 0.251884, 0.821397, 0.00380066, 0, + 0.270141, 0.807135, 0.00367974, 0, 0.289004, 0.792363, 0.00355172, 0, 0.308479, 0.776661, + 0.003411, 0, 0.328575, 0.760705, 0.00328123, 0, 0.349301, 0.744408, 0.00314003, 0, 0.370668, + 0.726994, 0.0029906, 0, 0.392689, 0.709598, 0.00285034, 0, 0.415379, 0.692112, 0.00271179, 0, + 0.438754, 0.674435, 0.00257185, 0, 0.46283, 0.65676, 0.00243425, 0, 0.48763, 0.639982, 0.00230351, + 0, 0.513173, 0.622983, 0.0021777, 0, 0.539482, 0.605471, 0.00204991, 0, 0.566579, 0.58796, + 0.00193759, 0, 0.594488, 0.570463, 0.00181976, 0, 0.623226, 0.553058, 0.00171497, 0, 0.6528, + 0.535894, 0.00161109, 0, 0.683198, 0.519089, 0.00151394, 0, 0.714354, 0.502454, 0.00142122, 0, + 0.746032, 0.485681, 0.00133488, 0, 0.777778, 0.468935, 0.00124975, 0, 0.809524, 0.452951, + 0.00117309, 0, 0.84127, 0.437139, 0.00110155, 0, 0.873016, 0.421446, 0.00103124, 0, 0.904762, + 0.405951, 0.000966387, 0, 0.936508, 0.391003, 0.000908119, 0, 0.968254, 0.376198, 0.000848057, 0, + 1, 1, 0.00280076, 0, 0, 1, 0.00280078, 0, 0, 0.999999, 0.00280109, 0, 0, 0.999997, 0.00280246, 0, + 0, 0.999992, 0.00280616, 0, 0, 0.999979, 0.00281396, 0, 0, 0.999956, 0.00282822, 0, 0, 0.999916, + 0.00285186, 0, 0, 0.999857, 0.0028885, 0, 0, 0.999768, 0.00294259, 0, 0.000196026, 0.999645, + 0.00301946, 0, 0.00104842, 0.99947, 0.00312541, 0, 0.00270199, 0.999229, 0.00326733, 0, + 0.00519449, 0.998852, 0.00344992, 0, 0.00852602, 0.997558, 0.00361052, 0, 0.0126804, 0.994417, + 0.0035898, 0, 0.017635, 0.992824, 0.00372393, 0, 0.023365, 0.991344, 0.00390695, 0, 0.0298456, + 0.989337, 0.00410392, 0, 0.0370529, 0.985811, 0.00420987, 0, 0.0449651, 0.982772, 0.00437488, 0, + 0.0535615, 0.979001, 0.00455069, 0, 0.0628243, 0.974102, 0.00464462, 0, 0.0727368, 0.969197, + 0.00480577, 0, 0.0832844, 0.962759, 0.00487818, 0, 0.0944545, 0.956207, 0.00498176, 0, 0.106236, + 0.947909, 0.00503392, 0, 0.118619, 0.939596, 0.00507474, 0, 0.131595, 0.929642, 0.00509798, 0, + 0.145159, 0.918807, 0.00508476, 0, 0.159305, 0.906921, 0.00505634, 0, 0.174028, 0.893312, + 0.00498845, 0, 0.189327, 0.878933, 0.0049133, 0, 0.2052, 0.863986, 0.0048259, 0, 0.221647, + 0.847936, 0.00470848, 0, 0.23867, 0.832253, 0.00456889, 0, 0.25627, 0.818619, 0.00442726, 0, + 0.274453, 0.804788, 0.00427677, 0, 0.293222, 0.790241, 0.00411906, 0, 0.312585, 0.775162, + 0.00394833, 0, 0.33255, 0.759463, 0.00377366, 0, 0.353126, 0.743598, 0.00361026, 0, 0.374324, + 0.72697, 0.00343627, 0, 0.396158, 0.709646, 0.00326422, 0, 0.418641, 0.69277, 0.00309717, 0, + 0.44179, 0.675371, 0.0029356, 0, 0.465624, 0.657863, 0.00277712, 0, 0.490163, 0.640772, + 0.00261738, 0, 0.515429, 0.624441, 0.0024737, 0, 0.541445, 0.607497, 0.00233125, 0, 0.568236, + 0.590438, 0.00218994, 0, 0.595828, 0.573224, 0.0020664, 0, 0.624242, 0.556168, 0.00193526, 0, + 0.653496, 0.539232, 0.00182463, 0, 0.683588, 0.522352, 0.00170735, 0, 0.714482, 0.506172, + 0.00160555, 0, 0.746032, 0.489842, 0.00150451, 0, 0.777778, 0.473463, 0.00140938, 0, 0.809524, + 0.457266, 0.00132568, 0, 0.84127, 0.441609, 0.0012376, 0, 0.873016, 0.426348, 0.00116265, 0, + 0.904762, 0.411002, 0.00108935, 0, 0.936508, 0.396045, 0.00101946, 0, 0.968254, 0.381448, + 0.000955665, 0, 1, 1, 0.0037121, 0, 0, 1, 0.00371213, 0, 0, 1, 0.00371251, 0, 0, 0.999997, + 0.00371417, 0, 0, 0.99999, 0.00371863, 0, 0, 0.999977, 0.00372807, 0, 0, 0.99995, 0.00374529, 0, + 0, 0.999908, 0.0037738, 0, 0, 0.999843, 0.00381789, 0, 1.23596e-5, 0.999745, 0.00388273, 0, + 0.000407442, 0.999608, 0.00397443, 0, 0.0015447, 0.999415, 0.00409998, 0, 0.00351385, 0.999143, + 0.00426662, 0, 0.0063316, 0.9987, 0.00447625, 0, 0.00998679, 0.996363, 0.00455323, 0, 0.0144569, + 0.994021, 0.00461052, 0, 0.0197151, 0.992372, 0.00476359, 0, 0.0257344, 0.991007, 0.00499101, 0, + 0.0324882, 0.988767, 0.0051972, 0, 0.0399517, 0.984872, 0.00528407, 0, 0.0481022, 0.982004, + 0.00548926, 0, 0.0569191, 0.977714, 0.00564385, 0, 0.0663839, 0.973076, 0.0057693, 0, 0.0764801, + 0.967565, 0.0058924, 0, 0.0871928, 0.961384, 0.00599629, 0, 0.0985095, 0.954435, 0.00605998, 0, + 0.110419, 0.946303, 0.0061133, 0, 0.122912, 0.937662, 0.00612028, 0, 0.13598, 0.927867, + 0.00612209, 0, 0.149617, 0.916475, 0.00604813, 0, 0.163817, 0.90541, 0.00603088, 0, 0.178577, + 0.891591, 0.00592218, 0, 0.193894, 0.877573, 0.00578854, 0, 0.209767, 0.862511, 0.00566648, 0, + 0.226196, 0.846861, 0.00551481, 0, 0.243182, 0.83068, 0.00533754, 0, 0.260728, 0.815725, + 0.00515487, 0, 0.278837, 0.802321, 0.0049655, 0, 0.297515, 0.787826, 0.00475421, 0, 0.316768, + 0.773454, 0.00456002, 0, 0.336605, 0.758224, 0.00434727, 0, 0.357034, 0.74265, 0.00414444, 0, + 0.378067, 0.726729, 0.00393738, 0, 0.399717, 0.710155, 0.00373575, 0, 0.421998, 0.693312, + 0.00353736, 0, 0.444928, 0.67653, 0.00334368, 0, 0.468523, 0.659444, 0.00315981, 0, 0.492806, + 0.642051, 0.00297809, 0, 0.517798, 0.625758, 0.00280592, 0, 0.543525, 0.609615, 0.00264254, 0, + 0.570012, 0.592919, 0.00248459, 0, 0.597288, 0.576298, 0.00233327, 0, 0.625379, 0.559489, + 0.00219519, 0, 0.654307, 0.542891, 0.00205441, 0, 0.684084, 0.526255, 0.00193385, 0, 0.714693, + 0.509853, 0.00180745, 0, 0.746044, 0.494131, 0.00169817, 0, 0.777778, 0.478114, 0.0015913, 0, + 0.809524, 0.462274, 0.00148981, 0, 0.84127, 0.446412, 0.00139537, 0, 0.873016, 0.431274, + 0.00130984, 0, 0.904762, 0.41635, 0.00122403, 0, 0.936508, 0.401476, 0.00114809, 0, 0.968254, + 0.386993, 0.00107563, 0, 1, 1, 0.00488216, 0, 0, 1, 0.0048822, 0, 0, 1, 0.00488265, 0, 0, + 0.999997, 0.00488463, 0, 0, 0.999988, 0.00488999, 0, 0, 0.999974, 0.00490129, 0, 0, 0.999946, + 0.00492191, 0, 0, 0.999897, 0.00495598, 0, 0, 0.999825, 0.00500855, 0, 7.44791e-5, 0.999718, + 0.00508559, 0, 0.000712744, 0.999565, 0.005194, 0, 0.00215249, 0.999352, 0.00534147, 0, + 0.00444576, 0.999046, 0.00553523, 0, 0.00759218, 0.998492, 0.00577016, 0, 0.0115714, 0.995564, + 0.00578487, 0, 0.0163557, 0.993339, 0.00586414, 0, 0.021915, 0.991834, 0.00606002, 0, 0.0282201, + 0.990496, 0.00633312, 0, 0.0352433, 0.987826, 0.00651941, 0, 0.042959, 0.98383, 0.00660842, 0, + 0.0513439, 0.98109, 0.00685523, 0, 0.0603772, 0.976131, 0.00695778, 0, 0.0700402, 0.971922, + 0.00714236, 0, 0.0803163, 0.965901, 0.00721437, 0, 0.0911908, 0.959606, 0.00732017, 0, 0.102651, + 0.952504, 0.00735788, 0, 0.114686, 0.944365, 0.00738493, 0, 0.127286, 0.935652, 0.00737969, 0, + 0.140443, 0.925813, 0.00733612, 0, 0.154151, 0.914397, 0.00723094, 0, 0.168405, 0.903257, + 0.00714002, 0, 0.183201, 0.890015, 0.00700149, 0, 0.198536, 0.876014, 0.00682813, 0, 0.214409, + 0.861436, 0.00665567, 0, 0.23082, 0.845752, 0.00644526, 0, 0.24777, 0.829169, 0.00621635, 0, + 0.265263, 0.813435, 0.00597789, 0, 0.283301, 0.799701, 0.00575694, 0, 0.301889, 0.785726, + 0.00549866, 0, 0.321035, 0.77152, 0.0052503, 0, 0.340746, 0.75683, 0.00499619, 0, 0.361032, + 0.741951, 0.0047543, 0, 0.381904, 0.726367, 0.0045084, 0, 0.403374, 0.710537, 0.00426784, 0, + 0.425457, 0.693965, 0.00403487, 0, 0.448169, 0.677724, 0.0038075, 0, 0.47153, 0.66117, 0.00359431, + 0, 0.495561, 0.644274, 0.00338354, 0, 0.520284, 0.627449, 0.00318163, 0, 0.545725, 0.611645, + 0.00299672, 0, 0.571911, 0.595614, 0.00281016, 0, 0.598873, 0.579426, 0.00264252, 0, 0.62664, + 0.563016, 0.00247509, 0, 0.655239, 0.546728, 0.00232647, 0, 0.684692, 0.530539, 0.00217803, 0, + 0.714999, 0.514164, 0.00204216, 0, 0.746106, 0.498344, 0.00191403, 0, 0.777778, 0.482957, + 0.00179203, 0, 0.809524, 0.467336, 0.00167695, 0, 0.84127, 0.451994, 0.00157567, 0, 0.873016, + 0.436514, 0.00147113, 0, 0.904762, 0.42178, 0.00138034, 0, 0.936508, 0.407271, 0.00129219, 0, + 0.968254, 0.392822, 0.0012098, 0, 1, 1, 0.00637427, 0, 0, 1, 0.00637431, 0, 0, 0.999999, + 0.00637485, 0, 0, 0.999996, 0.00637721, 0, 0, 0.999987, 0.00638357, 0, 0, 0.999971, 0.006397, 0, + 0, 0.999939, 0.00642142, 0, 0, 0.999888, 0.00646177, 0, 0, 0.999807, 0.00652387, 0, 0.000207916, + 0.999689, 0.00661454, 0, 0.00112051, 0.99952, 0.00674155, 0, 0.00287719, 0.999283, 0.00691313, 0, + 0.00550145, 0.998936, 0.00713598, 0, 0.00897928, 0.998165, 0.00738501, 0, 0.0132829, 0.994847, + 0.00734388, 0, 0.01838, 0.993182, 0.00749991, 0, 0.0242381, 0.991665, 0.0077246, 0, 0.030826, + 0.989708, 0.00797579, 0, 0.0381152, 0.986663, 0.00813011, 0, 0.0460794, 0.983288, 0.00830365, 0, + 0.0546951, 0.980104, 0.00853496, 0, 0.0639411, 0.974855, 0.00861045, 0, 0.0737988, 0.97045, + 0.00879133, 0, 0.0842516, 0.964509, 0.00886377, 0, 0.0952848, 0.957594, 0.00890346, 0, 0.106886, + 0.950546, 0.00893289, 0, 0.119044, 0.942225, 0.00890074, 0, 0.131749, 0.933365, 0.00886826, 0, + 0.144994, 0.923202, 0.0087316, 0, 0.158772, 0.912605, 0.00863082, 0, 0.173078, 0.901099, + 0.00847403, 0, 0.187908, 0.888177, 0.00825838, 0, 0.203261, 0.873955, 0.00801834, 0, 0.219134, + 0.860091, 0.00779026, 0, 0.235527, 0.84434, 0.00752478, 0, 0.252443, 0.828517, 0.00724074, 0, + 0.269883, 0.81239, 0.00693769, 0, 0.287851, 0.79721, 0.00664817, 0, 0.306352, 0.783489, + 0.00634763, 0, 0.325393, 0.769514, 0.00604221, 0, 0.344981, 0.755419, 0.00573568, 0, 0.365126, + 0.741083, 0.00544359, 0, 0.385839, 0.726059, 0.00515515, 0, 0.407132, 0.710809, 0.00487139, 0, + 0.42902, 0.695052, 0.00459846, 0, 0.45152, 0.678886, 0.00433412, 0, 0.474651, 0.663042, + 0.00407981, 0, 0.498433, 0.646634, 0.00384264, 0, 0.52289, 0.630117, 0.00360897, 0, 0.548048, + 0.613804, 0.00338863, 0, 0.573936, 0.598338, 0.00318486, 0, 0.600584, 0.582687, 0.00298377, 0, + 0.628027, 0.566809, 0.00280082, 0, 0.656295, 0.550817, 0.00262255, 0, 0.685417, 0.534937, + 0.00245835, 0, 0.715406, 0.519151, 0.00230574, 0, 0.74624, 0.503118, 0.0021549, 0, 0.777778, + 0.487723, 0.00202008, 0, 0.809524, 0.472725, 0.00189355, 0, 0.84127, 0.457599, 0.00177108, 0, + 0.873016, 0.442558, 0.00165843, 0, 0.904762, 0.427624, 0.00155494, 0, 0.936508, 0.413171, + 0.00145273, 0, 0.968254, 0.399122, 0.00136454, 0, 1, 1, 0.00826496, 0, 0, 1, 0.00826499, 0, 0, 1, + 0.00826564, 0, 0, 0.999996, 0.00826842, 0, 0, 0.999987, 0.00827589, 0, 0, 0.999967, 0.00829167, 0, + 0, 0.999933, 0.00832037, 0, 0, 0.999876, 0.00836768, 0, 1.09338e-5, 0.999786, 0.00844031, 0, + 0.000427145, 0.999655, 0.00854603, 0, 0.0016384, 0.999468, 0.00869337, 0, 0.00372392, 0.999203, + 0.008891, 0, 0.00668513, 0.998803, 0.00914387, 0, 0.0104968, 0.99748, 0.00935838, 0, 0.015125, + 0.994446, 0.00933309, 0, 0.0205338, 0.99292, 0.00953084, 0, 0.0266884, 0.991414, 0.0097893, 0, + 0.0335565, 0.989049, 0.0100228, 0, 0.0411086, 0.98582, 0.0101664, 0, 0.0493181, 0.982441, + 0.0103582, 0, 0.0581613, 0.978595, 0.0105292, 0, 0.0676169, 0.973495, 0.0106274, 0, 0.0776661, + 0.968405, 0.0107261, 0, 0.0882926, 0.962717, 0.0108234, 0, 0.0994817, 0.955478, 0.0108102, 0, + 0.111221, 0.948275, 0.0107914, 0, 0.123499, 0.940006, 0.0107161, 0, 0.136308, 0.930831, 0.0106309, + 0, 0.149639, 0.920648, 0.0104083, 0, 0.163485, 0.910205, 0.0102312, 0, 0.177843, 0.898445, + 0.0100051, 0, 0.192707, 0.885986, 0.00971928, 0, 0.208077, 0.872204, 0.00940747, 0, 0.22395, + 0.858436, 0.0091085, 0, 0.240326, 0.843454, 0.00876595, 0, 0.257208, 0.827437, 0.00839794, 0, + 0.274596, 0.811488, 0.00803692, 0, 0.292496, 0.796039, 0.00767352, 0, 0.310911, 0.781083, + 0.0073097, 0, 0.329849, 0.767642, 0.00694032, 0, 0.349316, 0.753901, 0.00657476, 0, 0.369323, + 0.740131, 0.00622699, 0, 0.38988, 0.725845, 0.0058838, 0, 0.410999, 0.710991, 0.00555586, 0, + 0.432696, 0.696002, 0.00523089, 0, 0.454987, 0.680461, 0.00492494, 0, 0.47789, 0.664875, + 0.00463464, 0, 0.501426, 0.649273, 0.00435422, 0, 0.52562, 0.63302, 0.0040875, 0, 0.550498, + 0.61705, 0.00384075, 0, 0.576089, 0.601154, 0.00359557, 0, 0.602427, 0.586008, 0.00337636, 0, + 0.629544, 0.570699, 0.00316019, 0, 0.657479, 0.555166, 0.00296033, 0, 0.686264, 0.539645, + 0.00277552, 0, 0.715924, 0.524159, 0.00259499, 0, 0.746459, 0.508682, 0.00243257, 0, 0.777789, + 0.493163, 0.00227851, 0, 0.809524, 0.478004, 0.00213083, 0, 0.84127, 0.46347, 0.00199502, 0, + 0.873016, 0.448778, 0.00186967, 0, 0.904762, 0.434105, 0.00174732, 0, 0.936508, 0.419576, + 0.00163861, 0, 0.968254, 0.405541, 0.00153341, 0, 1, 1, 0.0106462, 0, 0, 1, 0.0106462, 0, 0, + 0.999999, 0.010647, 0, 0, 0.999995, 0.0106502, 0, 0, 0.999985, 0.0106589, 0, 0, 0.999964, + 0.0106773, 0, 0, 0.999925, 0.0107106, 0, 0, 0.999861, 0.0107655, 0, 7.12986e-5, 0.999763, + 0.0108497, 0, 0.000743959, 0.999616, 0.0109716, 0, 0.00227361, 0.999408, 0.0111408, 0, 0.0046983, + 0.999112, 0.0113659, 0, 0.00800158, 0.998637, 0.0116475, 0, 0.0121493, 0.996223, 0.0117231, 0, + 0.0171023, 0.994006, 0.0118064, 0, 0.0228218, 0.992444, 0.0120254, 0, 0.0292711, 0.991028, + 0.0123314, 0, 0.036417, 0.98803, 0.0124954, 0, 0.0442295, 0.984816, 0.0126538, 0, 0.0526815, + 0.981399, 0.0128537, 0, 0.0617492, 0.977085, 0.0129694, 0, 0.0714114, 0.972154, 0.013091, 0, + 0.0816495, 0.966617, 0.0131166, 0, 0.0924472, 0.960628, 0.0131583, 0, 0.10379, 0.953295, + 0.0131094, 0, 0.115665, 0.94575, 0.0129966, 0, 0.128062, 0.937654, 0.0128796, 0, 0.140972, + 0.927716, 0.0126477, 0, 0.154387, 0.917932, 0.0123889, 0, 0.168301, 0.907719, 0.012131, 0, + 0.182709, 0.89584, 0.0118013, 0, 0.197608, 0.883526, 0.0114145, 0, 0.212994, 0.870301, 0.0110075, + 0, 0.228867, 0.856272, 0.0106019, 0, 0.245227, 0.842251, 0.0101938, 0, 0.262074, 0.826466, + 0.00973254, 0, 0.279412, 0.810859, 0.0092846, 0, 0.297244, 0.795051, 0.00883304, 0, 0.315575, + 0.780053, 0.00840272, 0, 0.334412, 0.76575, 0.00796438, 0, 0.35376, 0.752298, 0.00752526, 0, + 0.373631, 0.739153, 0.00711486, 0, 0.394034, 0.725514, 0.00670361, 0, 0.414983, 0.711473, + 0.00632656, 0, 0.436491, 0.696936, 0.00595206, 0, 0.458575, 0.682126, 0.00559191, 0, 0.481253, + 0.667027, 0.00525362, 0, 0.504547, 0.651875, 0.00493805, 0, 0.528481, 0.636463, 0.00462848, 0, + 0.553081, 0.620641, 0.00433936, 0, 0.578377, 0.604931, 0.00407, 0, 0.604404, 0.589549, 0.00380864, + 0, 0.631197, 0.574712, 0.00357049, 0, 0.658795, 0.559775, 0.00334466, 0, 0.687238, 0.544514, + 0.00312505, 0, 0.716559, 0.529555, 0.00293199, 0, 0.746776, 0.514402, 0.00274204, 0, 0.777849, + 0.499302, 0.00256647, 0, 0.809524, 0.484114, 0.00239901, 0, 0.84127, 0.469308, 0.00225148, 0, + 0.873016, 0.455133, 0.00210178, 0, 0.904762, 0.440939, 0.0019727, 0, 0.936508, 0.426627, + 0.00184382, 0, 0.968254, 0.412509, 0.00172548, 0, 1, 1, 0.013628, 0, 0, 1, 0.0136281, 0, 0, + 0.999999, 0.0136289, 0, 0, 0.999995, 0.0136327, 0, 0, 0.999983, 0.0136427, 0, 0, 0.99996, + 0.0136638, 0, 0, 0.999917, 0.0137022, 0, 0, 0.999846, 0.0137652, 0, 0.000204597, 0.999736, + 0.0138615, 0, 0.00116837, 0.999573, 0.0140007, 0, 0.00303325, 0.99934, 0.0141927, 0, 0.00580613, + 0.999004, 0.0144457, 0, 0.00945626, 0.998407, 0.0147489, 0, 0.0139421, 0.995464, 0.014731, 0, + 0.0192202, 0.993328, 0.0148283, 0, 0.0252495, 0.991799, 0.0150797, 0, 0.0319921, 0.990397, + 0.0154316, 0, 0.0394138, 0.986835, 0.0155005, 0, 0.0474843, 0.983938, 0.0157308, 0, 0.0561763, + 0.980154, 0.0158753, 0, 0.0654661, 0.975659, 0.0159581, 0, 0.0753326, 0.970171, 0.0159832, 0, + 0.0857571, 0.964803, 0.0160084, 0, 0.0967236, 0.958366, 0.0159484, 0, 0.108218, 0.950613, + 0.0158001, 0, 0.120227, 0.942874, 0.0155845, 0, 0.132741, 0.935005, 0.0154292, 0, 0.145751, + 0.924991, 0.0150742, 0, 0.159249, 0.914814, 0.0146757, 0, 0.17323, 0.904743, 0.0143097, 0, + 0.187687, 0.893216, 0.0138695, 0, 0.202619, 0.880769, 0.0133706, 0, 0.218021, 0.868136, 0.0128606, + 0, 0.233894, 0.85469, 0.0123403, 0, 0.250238, 0.840593, 0.0118091, 0, 0.267052, 0.825808, + 0.011253, 0, 0.284341, 0.81009, 0.0107099, 0, 0.302106, 0.79504, 0.0101636, 0, 0.320354, 0.779757, + 0.00964041, 0, 0.33909, 0.764697, 0.00911896, 0, 0.358322, 0.750913, 0.00859533, 0, 0.378059, + 0.738175, 0.00811592, 0, 0.398311, 0.725242, 0.00764504, 0, 0.41909, 0.711864, 0.00718885, 0, + 0.440412, 0.698009, 0.00675843, 0, 0.462292, 0.683841, 0.00634984, 0, 0.484748, 0.669391, + 0.00595502, 0, 0.507802, 0.654731, 0.00558671, 0, 0.531477, 0.639805, 0.00523578, 0, 0.555802, + 0.624789, 0.00490834, 0, 0.580805, 0.609325, 0.00459448, 0, 0.606522, 0.593975, 0.00430342, 0, + 0.63299, 0.578983, 0.00403019, 0, 0.66025, 0.564442, 0.0037707, 0, 0.688346, 0.549835, 0.0035316, + 0, 0.717319, 0.535039, 0.00330255, 0, 0.7472, 0.520403, 0.00308932, 0, 0.777982, 0.505687, + 0.00289335, 0, 0.809524, 0.490939, 0.00270818, 0, 0.84127, 0.476233, 0.0025343, 0, 0.873016, + 0.461624, 0.00237097, 0, 0.904762, 0.447833, 0.00222065, 0, 0.936508, 0.433992, 0.00207561, 0, + 0.968254, 0.420147, 0.00194955, 0, 1, 1, 0.0173415, 0, 0, 1, 0.0173416, 0, 0, 0.999999, 0.0173426, + 0, 0, 0.999995, 0.0173468, 0, 0, 0.999983, 0.0173582, 0, 0, 0.999954, 0.0173822, 0, 0, 0.999908, + 0.0174258, 0, 6.69501e-6, 0.999828, 0.0174973, 0, 0.000427399, 0.999705, 0.0176063, 0, 0.00171019, + 0.999524, 0.0177631, 0, 0.0039248, 0.999263, 0.0179781, 0, 0.00705382, 0.998878, 0.018258, 0, + 0.0110552, 0.998012, 0.0185551, 0, 0.0158812, 0.994614, 0.0184264, 0, 0.0214852, 0.993132, + 0.0186385, 0, 0.0278239, 0.991563, 0.0189067, 0, 0.0348585, 0.989298, 0.0191577, 0, 0.0425544, + 0.986036, 0.0192522, 0, 0.050881, 0.982558, 0.0194063, 0, 0.059811, 0.978531, 0.019486, 0, + 0.0693209, 0.974198, 0.0195847, 0, 0.0793895, 0.968148, 0.0194749, 0, 0.0899984, 0.962565, + 0.0194277, 0, 0.101132, 0.956041, 0.0192991, 0, 0.112775, 0.947749, 0.0189893, 0, 0.124917, + 0.94018, 0.018704, 0, 0.137547, 0.93165, 0.0183458, 0, 0.150655, 0.921798, 0.0178775, 0, 0.164236, + 0.911573, 0.0173618, 0, 0.178281, 0.901569, 0.0168482, 0, 0.192788, 0.890341, 0.016265, 0, + 0.207752, 0.877835, 0.0156199, 0, 0.223171, 0.865472, 0.0149516, 0, 0.239044, 0.852905, 0.0143274, + 0, 0.255371, 0.838906, 0.0136643, 0, 0.272153, 0.824888, 0.0129903, 0, 0.289393, 0.809977, + 0.0123218, 0, 0.307093, 0.794697, 0.0116572, 0, 0.325259, 0.780028, 0.0110307, 0, 0.343896, + 0.765124, 0.0104236, 0, 0.363012, 0.750411, 0.0098219, 0, 0.382617, 0.737264, 0.00924397, 0, + 0.402719, 0.724799, 0.00868719, 0, 0.423332, 0.712253, 0.00816476, 0, 0.444469, 0.699267, + 0.00767262, 0, 0.466146, 0.685618, 0.00719746, 0, 0.488383, 0.671736, 0.00673916, 0, 0.511199, + 0.657777, 0.00631937, 0, 0.534618, 0.643497, 0.00592411, 0, 0.558668, 0.62889, 0.00553928, 0, + 0.58338, 0.614299, 0.0051934, 0, 0.608787, 0.599197, 0.00485985, 0, 0.634929, 0.584175, + 0.00454357, 0, 0.661849, 0.569541, 0.00425787, 0, 0.689594, 0.555193, 0.00397905, 0, 0.718211, + 0.540947, 0.00372364, 0, 0.747742, 0.526593, 0.00348599, 0, 0.778205, 0.512335, 0.00326103, 0, + 0.80953, 0.498017, 0.00305137, 0, 0.84127, 0.483609, 0.00285485, 0, 0.873016, 0.469368, + 0.00267472, 0, 0.904762, 0.455037, 0.00249945, 0, 0.936508, 0.441493, 0.00234792, 0, 0.968254, + 0.428147, 0.00219936, 0, 1, 1, 0.0219422, 0, 0, 1, 0.0219423, 0, 0, 0.999998, 0.0219434, 0, 0, + 0.999993, 0.0219481, 0, 0, 0.999981, 0.021961, 0, 0, 0.999949, 0.0219879, 0, 0, 0.999896, + 0.0220367, 0, 5.93194e-5, 0.999808, 0.0221167, 0, 0.00075364, 0.99967, 0.0222383, 0, 0.00237884, + 0.999466, 0.0224125, 0, 0.00495612, 0.999174, 0.0226495, 0, 0.00844887, 0.998725, 0.0229525, 0, + 0.0128058, 0.996979, 0.0231123, 0, 0.0179742, 0.994317, 0.0230742, 0, 0.0239047, 0.992781, + 0.0232895, 0, 0.0305526, 0.991191, 0.0235734, 0, 0.0378786, 0.987787, 0.0236152, 0, 0.0458475, + 0.985092, 0.0237994, 0, 0.0544287, 0.981121, 0.0238553, 0, 0.0635952, 0.976924, 0.0238706, 0, + 0.0733233, 0.97218, 0.0238704, 0, 0.0835922, 0.965956, 0.0236598, 0, 0.0943839, 0.959998, + 0.0234735, 0, 0.105682, 0.953245, 0.0232277, 0, 0.117474, 0.944445, 0.0226973, 0, 0.129747, + 0.937087, 0.0223527, 0, 0.142491, 0.928341, 0.0218144, 0, 0.155697, 0.9184, 0.0211516, 0, + 0.169358, 0.907959, 0.0204553, 0, 0.183469, 0.89808, 0.0197673, 0, 0.198024, 0.887047, 0.0189915, + 0, 0.21302, 0.875221, 0.0182082, 0, 0.228455, 0.86269, 0.0173584, 0, 0.244329, 0.850735, + 0.0165718, 0, 0.260639, 0.837545, 0.0157524, 0, 0.277389, 0.823639, 0.0149482, 0, 0.29458, + 0.809699, 0.0141431, 0, 0.312216, 0.794797, 0.0133527, 0, 0.3303, 0.780578, 0.0126193, 0, 0.34884, + 0.766019, 0.0118914, 0, 0.367842, 0.751447, 0.0111839, 0, 0.387315, 0.737275, 0.010514, 0, + 0.40727, 0.724545, 0.00987277, 0, 0.427717, 0.712644, 0.00926569, 0, 0.448671, 0.700432, + 0.00869029, 0, 0.470149, 0.687664, 0.00814691, 0, 0.492167, 0.674288, 0.00763012, 0, 0.514746, + 0.660966, 0.00714437, 0, 0.537911, 0.647264, 0.00668457, 0, 0.561688, 0.633431, 0.00626581, 0, + 0.586108, 0.619133, 0.00585593, 0, 0.611206, 0.604935, 0.00548188, 0, 0.637022, 0.590236, + 0.00513288, 0, 0.663599, 0.575473, 0.0047906, 0, 0.690989, 0.561228, 0.00448895, 0, 0.719242, + 0.547054, 0.00420233, 0, 0.748411, 0.533175, 0.00392869, 0, 0.778531, 0.519163, 0.00367445, 0, + 0.809583, 0.505328, 0.00344097, 0, 0.84127, 0.491446, 0.00322003, 0, 0.873016, 0.477356, + 0.00301283, 0, 0.904762, 0.46356, 0.00282592, 0, 0.936508, 0.449623, 0.00264956, 0, 0.968254, + 0.436068, 0.00246956, 0, 1, 1, 0.0276135, 0, 0, 1, 0.0276136, 0, 0, 0.999998, 0.0276148, 0, 0, + 0.999993, 0.0276201, 0, 0, 0.999976, 0.0276342, 0, 0, 0.999945, 0.027664, 0, 0, 0.999884, + 0.0277179, 0, 0.00018679, 0.999784, 0.027806, 0, 0.00119607, 0.99963, 0.0279394, 0, 0.00318407, + 0.999401, 0.0281295, 0, 0.00613601, 0.999066, 0.0283858, 0, 0.00999963, 0.998524, 0.0287027, 0, + 0.0147164, 0.995702, 0.0286256, 0, 0.0202295, 0.993593, 0.0286733, 0, 0.0264876, 0.992067, + 0.0288989, 0, 0.0334452, 0.990548, 0.0292135, 0, 0.0410621, 0.986775, 0.0291296, 0, 0.0493032, + 0.984054, 0.0293099, 0, 0.0581381, 0.979481, 0.0291881, 0, 0.0675397, 0.975297, 0.0291598, 0, + 0.0774848, 0.96981, 0.028954, 0, 0.0879528, 0.963524, 0.028628, 0, 0.0989258, 0.957398, 0.0283135, + 0, 0.110388, 0.950088, 0.0278469, 0, 0.122327, 0.941538, 0.0271798, 0, 0.134729, 0.933332, + 0.0265388, 0, 0.147587, 0.924392, 0.0257776, 0, 0.160889, 0.914581, 0.024916, 0, 0.174631, + 0.904347, 0.0240242, 0, 0.188806, 0.894324, 0.0231229, 0, 0.203409, 0.883724, 0.022153, 0, + 0.218437, 0.872207, 0.0211355, 0, 0.233888, 0.859927, 0.0201048, 0, 0.249761, 0.848373, 0.0191263, + 0, 0.266056, 0.836023, 0.0181306, 0, 0.282774, 0.82289, 0.0171718, 0, 0.299917, 0.809324, + 0.0162196, 0, 0.317488, 0.795361, 0.0152622, 0, 0.335493, 0.781253, 0.01439, 0, 0.353936, + 0.767338, 0.013533, 0, 0.372825, 0.753156, 0.0127244, 0, 0.392168, 0.739122, 0.0119454, 0, + 0.411976, 0.725358, 0.0112054, 0, 0.432259, 0.712949, 0.010487, 0, 0.453032, 0.701621, 0.00984032, + 0, 0.47431, 0.689703, 0.00921495, 0, 0.496111, 0.677216, 0.00862492, 0, 0.518456, 0.664217, + 0.00806882, 0, 0.541367, 0.65137, 0.00755922, 0, 0.564872, 0.638, 0.00705705, 0, 0.589001, + 0.62453, 0.00661266, 0, 0.613789, 0.610601, 0.00618432, 0, 0.639277, 0.59676, 0.00578033, 0, + 0.66551, 0.582433, 0.00540927, 0, 0.692539, 0.568026, 0.00506104, 0, 0.720422, 0.55414, 0.0047353, + 0, 0.749216, 0.540178, 0.00442889, 0, 0.778974, 0.526513, 0.00414363, 0, 0.809711, 0.512954, + 0.00388237, 0, 0.84127, 0.499403, 0.00362875, 0, 0.873016, 0.486026, 0.00340827, 0, 0.904762, + 0.472345, 0.00318598, 0, 0.936508, 0.458828, 0.00297635, 0, 0.968254, 0.445379, 0.00279447, 0, 1, + 1, 0.0345716, 0, 0, 1, 0.0345717, 0, 0, 0.999999, 0.034573, 0, 0, 0.999991, 0.0345787, 0, 0, + 0.999974, 0.0345941, 0, 0, 0.999937, 0.0346263, 0, 1.88589e-6, 0.999869, 0.0346847, 0, + 0.000409238, 0.999757, 0.0347798, 0, 0.0017674, 0.999582, 0.0349233, 0, 0.00413658, 0.999322, + 0.0351265, 0, 0.00747408, 0.998939, 0.0353967, 0, 0.0117157, 0.998219, 0.0357018, 0, 0.0167966, + 0.994974, 0.0354726, 0, 0.0226572, 0.993201, 0.0355621, 0, 0.0292445, 0.991573, 0.0357641, 0, + 0.0365123, 0.989301, 0.0359252, 0, 0.0444203, 0.985712, 0.0358017, 0, 0.0529334, 0.982411, + 0.0358353, 0, 0.0620214, 0.977827, 0.035617, 0, 0.0716574, 0.973278, 0.0354398, 0, 0.0818186, + 0.967397, 0.0350483, 0, 0.0924846, 0.960696, 0.0344795, 0, 0.103638, 0.954349, 0.0339861, 0, + 0.115263, 0.946066, 0.0331323, 0, 0.127348, 0.938012, 0.032359, 0, 0.13988, 0.929413, 0.0314413, + 0, 0.152849, 0.920355, 0.0304103, 0, 0.166248, 0.910586, 0.0292785, 0, 0.18007, 0.900609, + 0.0281391, 0, 0.194308, 0.890093, 0.0269103, 0, 0.208958, 0.880013, 0.0257269, 0, 0.224018, + 0.869001, 0.0244671, 0, 0.239485, 0.85751, 0.0232252, 0, 0.255359, 0.84582, 0.0220117, 0, + 0.271638, 0.834383, 0.0208274, 0, 0.288324, 0.822158, 0.0196628, 0, 0.305419, 0.809056, 0.0185306, + 0, 0.322927, 0.795832, 0.0174174, 0, 0.340851, 0.782547, 0.0163758, 0, 0.359199, 0.7689, 0.015391, + 0, 0.377975, 0.755526, 0.0144488, 0, 0.397189, 0.741681, 0.0135372, 0, 0.416851, 0.728178, + 0.0126957, 0, 0.436971, 0.714642, 0.0118812, 0, 0.457564, 0.702756, 0.0111165, 0, 0.478644, + 0.69175, 0.0104145, 0, 0.500229, 0.680159, 0.00974439, 0, 0.522339, 0.668073, 0.00911926, 0, + 0.544997, 0.655405, 0.00851393, 0, 0.56823, 0.642921, 0.00797637, 0, 0.592068, 0.629993, + 0.00745119, 0, 0.616546, 0.616828, 0.00696972, 0, 0.641705, 0.603305, 0.00652425, 0, 0.66759, + 0.589833, 0.00610188, 0, 0.694255, 0.575945, 0.00570834, 0, 0.72176, 0.561745, 0.00533384, 0, + 0.750168, 0.548277, 0.00500001, 0, 0.779545, 0.534467, 0.00467582, 0, 0.809933, 0.521032, + 0.00438092, 0, 0.841272, 0.507877, 0.00410348, 0, 0.873016, 0.494654, 0.00383618, 0, 0.904762, + 0.481592, 0.00358699, 0, 0.936508, 0.468509, 0.00337281, 0, 0.968254, 0.455293, 0.00316196, 0, 1, + 1, 0.0430698, 0, 0, 1, 0.0430699, 0, 0, 0.999998, 0.0430713, 0, 0, 0.999991, 0.0430773, 0, 0, + 0.99997, 0.0430936, 0, 0, 0.999928, 0.0431277, 0, 4.06396e-5, 0.999852, 0.0431893, 0, 0.000744376, + 0.999724, 0.0432895, 0, 0.0024806, 0.999527, 0.0434397, 0, 0.00524779, 0.99923, 0.0436507, 0, + 0.00898164, 0.998783, 0.0439255, 0, 0.0136083, 0.997507, 0.0441104, 0, 0.0190582, 0.994418, + 0.0438225, 0, 0.0252694, 0.992864, 0.0439396, 0, 0.0321879, 0.991127, 0.0440962, 0, 0.039767, + 0.987331, 0.0438408, 0, 0.0479667, 0.984819, 0.0438991, 0, 0.056752, 0.980384, 0.0435906, 0, + 0.0660929, 0.975846, 0.0432543, 0, 0.075963, 0.970748, 0.0428293, 0, 0.0863398, 0.964303, + 0.042153, 0, 0.0972035, 0.95772, 0.0414111, 0, 0.108537, 0.950747, 0.0405893, 0, 0.120325, + 0.942533, 0.0394887, 0, 0.132554, 0.934045, 0.0383544, 0, 0.145215, 0.924942, 0.037057, 0, + 0.158296, 0.915811, 0.0356993, 0, 0.17179, 0.90612, 0.0342401, 0, 0.185691, 0.896434, 0.0328078, + 0, 0.199993, 0.886021, 0.031288, 0, 0.214691, 0.876081, 0.0297776, 0, 0.229782, 0.865608, + 0.0282334, 0, 0.245265, 0.854924, 0.026749, 0, 0.261138, 0.843607, 0.02526, 0, 0.277401, 0.832456, + 0.0238214, 0, 0.294056, 0.821342, 0.0224682, 0, 0.311104, 0.809303, 0.0211297, 0, 0.328548, + 0.796468, 0.0198387, 0, 0.346394, 0.784046, 0.0186227, 0, 0.364645, 0.771262, 0.0174561, 0, + 0.38331, 0.758118, 0.0163806, 0, 0.402396, 0.745075, 0.0153287, 0, 0.421912, 0.731926, 0.0143647, + 0, 0.44187, 0.71863, 0.0134363, 0, 0.462283, 0.705414, 0.0125603, 0, 0.483165, 0.693792, + 0.0117508, 0, 0.504535, 0.683108, 0.0110016, 0, 0.52641, 0.67183, 0.0102757, 0, 0.548816, 0.66015, + 0.00962044, 0, 0.571776, 0.647907, 0.00898031, 0, 0.595323, 0.635734, 0.00840811, 0, 0.619489, + 0.623208, 0.00786211, 0, 0.644317, 0.610438, 0.00734953, 0, 0.669852, 0.597345, 0.00687688, 0, + 0.696148, 0.584138, 0.00643469, 0, 0.723267, 0.5707, 0.00602236, 0, 0.75128, 0.556966, 0.0056324, + 0, 0.780258, 0.543607, 0.00528277, 0, 0.810268, 0.530213, 0.00493999, 0, 0.841311, 0.516912, + 0.00462265, 0, 0.873016, 0.503916, 0.0043307, 0, 0.904762, 0.491146, 0.00406858, 0, 0.936508, + 0.478439, 0.00381436, 0, 0.968254, 0.465834, 0.00358003, 0, 1, 1, 0.0534039, 0, 0, 1, 0.053404, 0, + 0, 0.999998, 0.0534055, 0, 0, 0.999989, 0.0534116, 0, 0, 0.999968, 0.0534283, 0, 0, 0.999918, + 0.0534633, 0, 0.000155895, 0.99983, 0.0535262, 0, 0.00120914, 0.999685, 0.0536281, 0, 0.00334944, + 0.999461, 0.0537799, 0, 0.00653077, 0.999119, 0.0539902, 0, 0.0106718, 0.998582, 0.0542524, 0, + 0.0156907, 0.995919, 0.0540318, 0, 0.0215147, 0.993735, 0.0538914, 0, 0.0280801, 0.992126, + 0.0539557, 0, 0.0353323, 0.990266, 0.0540401, 0, 0.0432247, 0.986317, 0.0536064, 0, 0.0517172, + 0.983213, 0.0534425, 0, 0.0607754, 0.978303, 0.0528622, 0, 0.0703698, 0.973665, 0.0523363, 0, + 0.0804742, 0.968091, 0.0516165, 0, 0.0910667, 0.961026, 0.0505434, 0, 0.102128, 0.954333, + 0.049523, 0, 0.113641, 0.946372, 0.0481698, 0, 0.125591, 0.938254, 0.0467674, 0, 0.137965, + 0.929516, 0.0452341, 0, 0.150754, 0.920106, 0.0435083, 0, 0.163947, 0.910899, 0.0417399, 0, + 0.177537, 0.901532, 0.0399389, 0, 0.191516, 0.891919, 0.0380901, 0, 0.205881, 0.882006, 0.0362341, + 0, 0.220626, 0.871965, 0.0343444, 0, 0.235749, 0.862145, 0.0324832, 0, 0.251248, 0.852058, + 0.0306681, 0, 0.267121, 0.84161, 0.0289097, 0, 0.283368, 0.830806, 0.0272079, 0, 0.299992, + 0.820476, 0.0256089, 0, 0.316992, 0.809514, 0.0240394, 0, 0.334374, 0.797865, 0.0225379, 0, + 0.35214, 0.785621, 0.0211235, 0, 0.370296, 0.773765, 0.0197908, 0, 0.388849, 0.761629, 0.0185235, + 0, 0.407807, 0.748891, 0.0173358, 0, 0.427178, 0.736437, 0.0162305, 0, 0.446974, 0.723707, + 0.0151778, 0, 0.467207, 0.710606, 0.0141791, 0, 0.487892, 0.698019, 0.0132592, 0, 0.509046, + 0.686203, 0.0123887, 0, 0.530687, 0.675692, 0.0115976, 0, 0.552839, 0.664826, 0.0108325, 0, + 0.575527, 0.65349, 0.0101348, 0, 0.59878, 0.641774, 0.00947756, 0, 0.622634, 0.629794, 0.00886058, + 0, 0.647128, 0.617647, 0.00828526, 0, 0.672308, 0.60534, 0.00775312, 0, 0.698231, 0.592718, + 0.00726033, 0, 0.724958, 0.579746, 0.00679731, 0, 0.752563, 0.566763, 0.00636111, 0, 0.781127, + 0.553515, 0.00595228, 0, 0.810733, 0.540118, 0.00556876, 0, 0.841426, 0.527325, 0.00523051, 0, + 0.873016, 0.514265, 0.00490712, 0, 0.904762, 0.501406, 0.00460297, 0, 0.936508, 0.488922, + 0.00431247, 0, 0.968254, 0.476541, 0.0040472, 0, 1, 1, 0.0659184, 0, 0, 1, 0.0659185, 0, 0, + 0.999998, 0.06592, 0, 0, 0.999988, 0.0659259, 0, 0, 0.999963, 0.0659423, 0, 0, 0.999907, + 0.0659764, 0, 0.000374198, 0.999806, 0.0660376, 0, 0.00182071, 0.999639, 0.0661361, 0, 0.0043894, + 0.999378, 0.0662814, 0, 0.00800055, 0.998985, 0.0664779, 0, 0.0125594, 0.998285, 0.0666914, 0, + 0.0179786, 0.995071, 0.0661989, 0, 0.0241822, 0.993172, 0.0660454, 0, 0.031106, 0.991438, + 0.0660105, 0, 0.0386952, 0.988428, 0.0656875, 0, 0.0469032, 0.985218, 0.0652913, 0, 0.0556905, + 0.981128, 0.0647107, 0, 0.065023, 0.976015, 0.0638491, 0, 0.0748717, 0.97097, 0.062993, 0, + 0.0852112, 0.964582, 0.0617927, 0, 0.0960199, 0.957383, 0.0603626, 0, 0.107279, 0.949969, + 0.0588128, 0, 0.118971, 0.941843, 0.0570274, 0, 0.131084, 0.933624, 0.0551885, 0, 0.143604, + 0.924543, 0.053122, 0, 0.156521, 0.914919, 0.0508897, 0, 0.169825, 0.905773, 0.0486418, 0, + 0.18351, 0.896434, 0.0463364, 0, 0.197569, 0.887195, 0.0440623, 0, 0.211997, 0.877706, 0.0417799, + 0, 0.226789, 0.867719, 0.03945, 0, 0.241944, 0.858587, 0.037243, 0, 0.257458, 0.849317, 0.0350956, + 0, 0.273331, 0.839585, 0.0329852, 0, 0.289563, 0.829856, 0.0310028, 0, 0.306154, 0.819589, + 0.0290953, 0, 0.323108, 0.809714, 0.0272738, 0, 0.340426, 0.79934, 0.0255631, 0, 0.358113, + 0.788224, 0.0239175, 0, 0.376175, 0.776619, 0.0223831, 0, 0.394616, 0.76521, 0.0209298, 0, + 0.413445, 0.753716, 0.0195786, 0, 0.432671, 0.741564, 0.0183001, 0, 0.452305, 0.729413, 0.0171259, + 0, 0.472358, 0.717146, 0.0159933, 0, 0.492845, 0.70436, 0.0149495, 0, 0.513783, 0.69219, + 0.0139681, 0, 0.535189, 0.680289, 0.0130577, 0, 0.557087, 0.669611, 0.0122198, 0, 0.5795, + 0.659113, 0.0114174, 0, 0.602459, 0.648148, 0.0106729, 0, 0.625997, 0.636905, 0.00998997, 0, + 0.650154, 0.625154, 0.00934313, 0, 0.674976, 0.613481, 0.00874839, 0, 0.700518, 0.60154, + 0.00818265, 0, 0.726845, 0.58943, 0.00766889, 0, 0.754032, 0.576828, 0.00717153, 0, 0.782167, + 0.564194, 0.00672696, 0, 0.811344, 0.551501, 0.00630863, 0, 0.841644, 0.538635, 0.00592177, 0, + 0.873016, 0.525724, 0.00554888, 0, 0.904762, 0.513209, 0.00520225, 0, 0.936508, 0.500457, + 0.00488231, 0, 0.968254, 0.48799, 0.00457153, 0, 1, 1, 0.0810131, 0, 0, 1, 0.0810133, 0, 0, + 0.999997, 0.0810145, 0, 0, 0.999985, 0.08102, 0, 0, 0.999956, 0.0810347, 0, 1.95026e-5, 0.999893, + 0.0810656, 0, 0.000719316, 0.999777, 0.0811205, 0, 0.00259774, 0.999583, 0.081208, 0, 0.00561807, + 0.999281, 0.0813343, 0, 0.00967472, 0.998813, 0.0814969, 0, 0.0146627, 0.997597, 0.0815217, 0, + 0.0204902, 0.994379, 0.0808502, 0, 0.0270802, 0.992744, 0.0806792, 0, 0.0343674, 0.990745, + 0.0804589, 0, 0.0422974, 0.986646, 0.0796107, 0, 0.0508242, 0.983611, 0.0790913, 0, 0.0599087, + 0.978869, 0.0780746, 0, 0.0695175, 0.973475, 0.0768218, 0, 0.0796223, 0.967845, 0.0754926, 0, + 0.0901983, 0.960778, 0.0737063, 0, 0.101224, 0.953333, 0.0718052, 0, 0.112682, 0.945274, + 0.0695946, 0, 0.124555, 0.936955, 0.0672492, 0, 0.136831, 0.928319, 0.0647732, 0, 0.149496, + 0.919075, 0.0620947, 0, 0.162542, 0.909114, 0.0591816, 0, 0.175958, 0.900137, 0.0563917, 0, + 0.189739, 0.891069, 0.0535392, 0, 0.203877, 0.882262, 0.0507642, 0, 0.218368, 0.873232, 0.0479793, + 0, 0.233208, 0.864042, 0.045226, 0, 0.248393, 0.855002, 0.0425413, 0, 0.263923, 0.846569, + 0.0400126, 0, 0.279796, 0.837714, 0.0375269, 0, 0.296012, 0.828918, 0.0352027, 0, 0.312573, + 0.819783, 0.0330011, 0, 0.329479, 0.810129, 0.0308908, 0, 0.346734, 0.800866, 0.0289112, 0, + 0.364342, 0.79093, 0.0270255, 0, 0.382307, 0.780593, 0.0252758, 0, 0.400637, 0.769511, 0.0236178, + 0, 0.419337, 0.758558, 0.0220652, 0, 0.438418, 0.747632, 0.0206289, 0, 0.457889, 0.736146, + 0.0192873, 0, 0.477761, 0.724093, 0.0180333, 0, 0.49805, 0.71234, 0.0168264, 0, 0.51877, 0.700201, + 0.015746, 0, 0.53994, 0.687949, 0.0147027, 0, 0.561581, 0.676163, 0.0137512, 0, 0.583718, + 0.665001, 0.0128655, 0, 0.60638, 0.65472, 0.0120366, 0, 0.629599, 0.644213, 0.0112604, 0, + 0.653415, 0.633382, 0.0105413, 0, 0.677874, 0.62212, 0.00986498, 0, 0.70303, 0.610631, 0.00923308, + 0, 0.728948, 0.599078, 0.00864206, 0, 0.755706, 0.587519, 0.00811784, 0, 0.783396, 0.575505, + 0.00761237, 0, 0.812121, 0.563148, 0.00713949, 0, 0.841989, 0.550828, 0.00668379, 0, 0.873035, + 0.538458, 0.00627715, 0, 0.904762, 0.525905, 0.00588336, 0, 0.936508, 0.513517, 0.00552687, 0, + 0.968254, 0.501395, 0.00519681, 0, 1, 1, 0.0991506, 0, 0, 1, 0.0991504, 0, 0, 0.999996, 0.0991515, + 0, 0, 0.999984, 0.0991558, 0, 0, 0.999947, 0.0991672, 0, 0.000114389, 0.999874, 0.0991912, 0, + 0.00121503, 0.999739, 0.0992331, 0, 0.00356108, 0.999514, 0.0992983, 0, 0.00705578, 0.999159, + 0.0993877, 0, 0.011574, 0.998586, 0.0994837, 0, 0.017003, 0.995731, 0.0988425, 0, 0.0232484, + 0.993384, 0.098276, 0, 0.0302318, 0.991615, 0.0979269, 0, 0.0378884, 0.989029, 0.0973432, 0, + 0.0461641, 0.985373, 0.0963539, 0, 0.0550136, 0.981278, 0.0952306, 0, 0.0643988, 0.975777, + 0.0936233, 0, 0.0742868, 0.970526, 0.0920219, 0, 0.0846501, 0.963755, 0.0898912, 0, 0.0954644, + 0.956676, 0.0876064, 0, 0.106709, 0.948099, 0.0847751, 0, 0.118367, 0.939718, 0.0818638, 0, + 0.130423, 0.931305, 0.078857, 0, 0.142862, 0.922342, 0.0756127, 0, 0.155674, 0.912842, 0.0721473, + 0, 0.168849, 0.903304, 0.0686195, 0, 0.182378, 0.89411, 0.0650589, 0, 0.196255, 0.885512, + 0.0616022, 0, 0.210473, 0.877193, 0.0582434, 0, 0.225027, 0.86877, 0.0548979, 0, 0.239915, + 0.860267, 0.0516095, 0, 0.255132, 0.851915, 0.048468, 0, 0.270678, 0.843912, 0.0454447, 0, + 0.286551, 0.83604, 0.0425612, 0, 0.302751, 0.828245, 0.0398752, 0, 0.31928, 0.820159, 0.0373198, + 0, 0.336138, 0.81167, 0.034916, 0, 0.35333, 0.802659, 0.0326402, 0, 0.370858, 0.793921, 0.0304901, + 0, 0.388728, 0.784713, 0.0284857, 0, 0.406944, 0.774946, 0.0266186, 0, 0.425515, 0.76448, + 0.0248593, 0, 0.444449, 0.753793, 0.0232114, 0, 0.463756, 0.743506, 0.0217039, 0, 0.483447, + 0.732555, 0.0202841, 0, 0.503535, 0.720965, 0.0189648, 0, 0.524036, 0.709422, 0.0177189, 0, + 0.544968, 0.697756, 0.0165626, 0, 0.56635, 0.685565, 0.015483, 0, 0.588208, 0.673987, 0.0144892, + 0, 0.610569, 0.66244, 0.0135607, 0, 0.633466, 0.651675, 0.0126956, 0, 0.656936, 0.641598, + 0.0118788, 0, 0.681025, 0.63121, 0.0111261, 0, 0.705788, 0.620514, 0.010437, 0, 0.731289, + 0.609366, 0.00978747, 0, 0.757606, 0.598137, 0.00917257, 0, 0.784834, 0.586966, 0.00859778, 0, + 0.813085, 0.575549, 0.00806803, 0, 0.842485, 0.563797, 0.00757294, 0, 0.87313, 0.551758, + 0.00710592, 0, 0.904762, 0.539894, 0.0066841, 0, 0.936508, 0.527901, 0.00627901, 0, 0.968254, + 0.515819, 0.00590506, 0, 1, 1, 0.120864, 0, 0, 1, 0.120864, 0, 0, 0.999996, 0.120864, 0, 0, + 0.99998, 0.120867, 0, 0, 0.99994, 0.120872, 0, 0.000323781, 0.999852, 0.120884, 0, 0.00188693, + 0.999693, 0.120903, 0, 0.00473489, 0.999426, 0.120929, 0, 0.00872704, 0.999002, 0.120955, 0, + 0.0137237, 0.998235, 0.120918, 0, 0.0196068, 0.994608, 0.119764, 0, 0.0262803, 0.992997, 0.119265, + 0, 0.0336657, 0.990968, 0.11863, 0, 0.0416987, 0.987002, 0.117261, 0, 0.0503261, 0.983524, + 0.116009, 0, 0.0595035, 0.97875, 0.114252, 0, 0.0691935, 0.972652, 0.11193, 0, 0.0793645, + 0.966613, 0.109555, 0, 0.0899894, 0.959275, 0.106612, 0, 0.101045, 0.951272, 0.103375, 0, + 0.112512, 0.942323, 0.0996594, 0, 0.124372, 0.933679, 0.0958841, 0, 0.136611, 0.924822, 0.0919265, + 0, 0.149216, 0.915742, 0.0878061, 0, 0.162176, 0.906348, 0.0834894, 0, 0.175482, 0.896883, + 0.079085, 0, 0.189125, 0.88774, 0.0746745, 0, 0.203098, 0.87986, 0.0705773, 0, 0.217396, 0.871998, + 0.0665005, 0, 0.232015, 0.864325, 0.0625413, 0, 0.24695, 0.856685, 0.0586781, 0, 0.2622, 0.84925, + 0.0550063, 0, 0.277761, 0.841719, 0.0514727, 0, 0.293634, 0.834755, 0.0481398, 0, 0.309819, + 0.827853, 0.0450172, 0, 0.326315, 0.820888, 0.0420969, 0, 0.343126, 0.813616, 0.0393702, 0, + 0.360254, 0.805767, 0.0367771, 0, 0.377701, 0.797338, 0.0343274, 0, 0.395474, 0.789122, 0.0320529, + 0, 0.413577, 0.780601, 0.0299485, 0, 0.432018, 0.771424, 0.0279812, 0, 0.450804, 0.761502, + 0.0261054, 0, 0.469944, 0.751166, 0.0243942, 0, 0.489451, 0.741276, 0.0228087, 0, 0.509337, + 0.730898, 0.0213265, 0, 0.529617, 0.719878, 0.0199307, 0, 0.550307, 0.708379, 0.0186574, 0, + 0.571428, 0.697165, 0.0174446, 0, 0.593003, 0.685554, 0.0163144, 0, 0.615059, 0.673631, 0.015276, + 0, 0.637628, 0.662385, 0.0143003, 0, 0.660746, 0.651059, 0.0134112, 0, 0.68446, 0.640451, + 0.0125794, 0, 0.70882, 0.630536, 0.011793, 0, 0.733893, 0.620316, 0.0110547, 0, 0.759756, + 0.609722, 0.0103668, 0, 0.786505, 0.598804, 0.00973009, 0, 0.814259, 0.587871, 0.00912812, 0, + 0.843157, 0.577121, 0.00858916, 0, 0.87334, 0.566019, 0.00807333, 0, 0.904762, 0.554664, + 0.00759687, 0, 0.936508, 0.543101, 0.00714759, 0, 0.968254, 0.531558, 0.00673418, 0, 1, 1, + 0.146767, 0, 0, 1, 0.146767, 0, 0, 0.999997, 0.146767, 0, 0, 0.999977, 0.146765, 0, 3.20658e-6, + 0.999929, 0.146762, 0, 0.000682576, 0.999823, 0.146753, 0, 0.00276402, 0.999633, 0.146735, 0, + 0.00614771, 0.999314, 0.146699, 0, 0.0106613, 0.998796, 0.14662, 0, 0.0161546, 0.997124, 0.146107, + 0, 0.0225063, 0.994062, 0.144857, 0, 0.0296198, 0.992154, 0.144011, 0, 0.037417, 0.989186, + 0.142712, 0, 0.0458348, 0.985279, 0.140926, 0, 0.0548211, 0.980826, 0.13885, 0, 0.0643326, + 0.975056, 0.136168, 0, 0.074333, 0.969005, 0.133217, 0, 0.0847917, 0.961554, 0.12959, 0, + 0.0956828, 0.954206, 0.125886, 0, 0.106984, 0.945046, 0.121335, 0, 0.118675, 0.935678, 0.116492, + 0, 0.130741, 0.926748, 0.111635, 0, 0.143166, 0.917764, 0.106625, 0, 0.155939, 0.908358, 0.101325, + 0, 0.169049, 0.899219, 0.0960249, 0, 0.182487, 0.890089, 0.0906527, 0, 0.196245, 0.881488, + 0.0853905, 0, 0.210317, 0.874031, 0.0804177, 0, 0.224697, 0.866932, 0.0756005, 0, 0.23938, + 0.859976, 0.0709019, 0, 0.254364, 0.853375, 0.0664391, 0, 0.269646, 0.846971, 0.0622012, 0, + 0.285223, 0.840483, 0.058129, 0, 0.301096, 0.833969, 0.0542762, 0, 0.317265, 0.82806, 0.0507042, + 0, 0.333729, 0.822128, 0.047368, 0, 0.350491, 0.815989, 0.044272, 0, 0.367554, 0.809336, + 0.0413444, 0, 0.38492, 0.802177, 0.038601, 0, 0.402594, 0.79441, 0.0360227, 0, 0.420582, 0.786573, + 0.0336383, 0, 0.438891, 0.778619, 0.0314321, 0, 0.457527, 0.77, 0.029362, 0, 0.476499, 0.760698, + 0.0274102, 0, 0.49582, 0.750932, 0.0256146, 0, 0.5155, 0.740993, 0.023974, 0, 0.535555, 0.731159, + 0.0224182, 0, 0.556, 0.720836, 0.0209889, 0, 0.576855, 0.709913, 0.0196411, 0, 0.598143, 0.698415, + 0.0183824, 0, 0.619888, 0.68745, 0.0172222, 0, 0.642123, 0.676154, 0.0161509, 0, 0.664883, + 0.664383, 0.0151397, 0, 0.688211, 0.6533, 0.0141873, 0, 0.71216, 0.642072, 0.0133105, 0, 0.736792, + 0.631412, 0.0124932, 0, 0.762186, 0.621622, 0.0117408, 0, 0.788439, 0.611681, 0.0110358, 0, + 0.815672, 0.60142, 0.0103775, 0, 0.844034, 0.59083, 0.00975623, 0, 0.873699, 0.580254, 0.00918084, + 0, 0.904765, 0.569841, 0.00864721, 0, 0.936508, 0.559224, 0.00815731, 0, 0.968254, 0.548315, + 0.00767924, 0, 1, 1, 0.177563, 0, 0, 1, 0.177563, 0, 0, 0.999994, 0.177562, 0, 0, 0.999972, + 0.177555, 0, 6.64171e-5, 0.999914, 0.177536, 0, 0.0012276, 0.999787, 0.177496, 0, 0.00388025, + 0.999556, 0.17742, 0, 0.00783463, 0.999165, 0.177285, 0, 0.0128953, 0.9985, 0.177037, 0, + 0.0189053, 0.995388, 0.175634, 0, 0.025742, 0.993102, 0.174375, 0, 0.033309, 0.990992, 0.173121, + 0, 0.0415298, 0.986932, 0.170896, 0, 0.0503425, 0.982786, 0.16847, 0, 0.0596964, 0.977592, + 0.165455, 0, 0.0695498, 0.971075, 0.161676, 0, 0.0798676, 0.963967, 0.157458, 0, 0.0906201, + 0.956397, 0.152836, 0, 0.101783, 0.947489, 0.147467, 0, 0.113333, 0.937564, 0.14145, 0, 0.125254, + 0.928182, 0.135383, 0, 0.137529, 0.919027, 0.129212, 0, 0.150144, 0.909618, 0.12276, 0, 0.163088, + 0.900492, 0.116273, 0, 0.176351, 0.891671, 0.1098, 0, 0.189924, 0.883146, 0.103362, 0, 0.203799, + 0.875151, 0.0970799, 0, 0.21797, 0.868338, 0.0911732, 0, 0.232433, 0.862033, 0.0854966, 0, + 0.247182, 0.856107, 0.0800691, 0, 0.262216, 0.850644, 0.0749618, 0, 0.27753, 0.845261, 0.070079, + 0, 0.293124, 0.839885, 0.0654321, 0, 0.308997, 0.834609, 0.0610975, 0, 0.325149, 0.829083, + 0.0569741, 0, 0.341581, 0.82404, 0.0531736, 0, 0.358294, 0.818968, 0.049665, 0, 0.37529, 0.813496, + 0.0463856, 0, 0.392573, 0.807533, 0.0433217, 0, 0.410148, 0.80099, 0.0404402, 0, 0.428019, + 0.793891, 0.0377578, 0, 0.446192, 0.786281, 0.0352616, 0, 0.464676, 0.778773, 0.0329577, 0, + 0.483478, 0.770737, 0.030808, 0, 0.502608, 0.762094, 0.0287964, 0, 0.522079, 0.752898, 0.0269254, + 0, 0.541905, 0.743306, 0.0251926, 0, 0.5621, 0.733416, 0.023595, 0, 0.582684, 0.723742, 0.0221155, + 0, 0.603677, 0.713542, 0.0207435, 0, 0.625106, 0.702755, 0.019434, 0, 0.646998, 0.691484, + 0.0182046, 0, 0.66939, 0.680531, 0.0170771, 0, 0.692324, 0.66953, 0.0160339, 0, 0.715849, + 0.658126, 0.0150677, 0, 0.740028, 0.646933, 0.0141551, 0, 0.764937, 0.636107, 0.0133179, 0, + 0.790673, 0.625271, 0.0125284, 0, 0.817358, 0.615225, 0.0117937, 0, 0.84515, 0.605678, 0.0111181, + 0, 0.874244, 0.59583, 0.0104759, 0, 0.904828, 0.585704, 0.00986672, 0, 0.936508, 0.575413, + 0.00929712, 0, 0.968254, 0.565373, 0.00876713, 0, 1, 1, 0.214058, 0, 0, 0.999999, 0.214058, 0, 0, + 0.999994, 0.214055, 0, 0, 0.999966, 0.214039, 0, 0.000259642, 0.999893, 0.213998, 0, 0.00200075, + 0.999737, 0.21391, 0, 0.00527775, 0.999449, 0.213745, 0, 0.00983959, 0.99896, 0.213458, 0, + 0.0154755, 0.9979, 0.212855, 0, 0.0220249, 0.994278, 0.210779, 0, 0.0293654, 0.992254, 0.20926, 0, + 0.0374021, 0.98881, 0.206908, 0, 0.0460604, 0.984715, 0.204009, 0, 0.0552802, 0.979738, 0.200471, + 0, 0.0650127, 0.972884, 0.195813, 0, 0.0752175, 0.965996, 0.190856, 0, 0.0858612, 0.957974, + 0.185077, 0, 0.0969155, 0.949155, 0.17868, 0, 0.108356, 0.939288, 0.171513, 0, 0.120163, 0.928996, + 0.163838, 0, 0.132319, 0.919563, 0.156246, 0, 0.144808, 0.910004, 0.148359, 0, 0.157618, 0.900791, + 0.140417, 0, 0.170737, 0.892135, 0.132569, 0, 0.184155, 0.883803, 0.124741, 0, 0.197866, 0.876034, + 0.117091, 0, 0.211861, 0.869219, 0.109835, 0, 0.226134, 0.863062, 0.102859, 0, 0.240682, 0.857795, + 0.0962928, 0, 0.255499, 0.853009, 0.0900725, 0, 0.270583, 0.848603, 0.0842101, 0, 0.285931, + 0.844335, 0.0786527, 0, 0.301542, 0.840208, 0.0734397, 0, 0.317415, 0.836035, 0.0685334, 0, + 0.33355, 0.83172, 0.0639275, 0, 0.349948, 0.827135, 0.0595909, 0, 0.36661, 0.822797, 0.0556204, 0, + 0.383539, 0.818387, 0.0519394, 0, 0.400738, 0.813565, 0.0485317, 0, 0.41821, 0.808142, 0.0453138, + 0, 0.435961, 0.802212, 0.0423354, 0, 0.453997, 0.79573, 0.0395553, 0, 0.472324, 0.788741, + 0.036988, 0, 0.490951, 0.781093, 0.0345688, 0, 0.509887, 0.773597, 0.0323297, 0, 0.529144, + 0.765622, 0.0302719, 0, 0.548735, 0.757083, 0.0283477, 0, 0.568674, 0.747992, 0.0265562, 0, + 0.588979, 0.738591, 0.0248844, 0, 0.609671, 0.728719, 0.0233342, 0, 0.630773, 0.719146, 0.0219081, + 0, 0.652314, 0.709165, 0.0205711, 0, 0.674328, 0.69875, 0.0193248, 0, 0.696854, 0.687884, + 0.0181582, 0, 0.719942, 0.676818, 0.0170746, 0, 0.743651, 0.666247, 0.0160718, 0, 0.768057, + 0.655284, 0.0151262, 0, 0.793253, 0.64401, 0.0142561, 0, 0.819363, 0.633353, 0.0134327, 0, + 0.846547, 0.622674, 0.012653, 0, 0.875017, 0.612265, 0.0119354, 0, 0.905021, 0.602455, 0.0112533, + 0, 0.936508, 0.593147, 0.0106234, 0, 0.968254, 0.583592, 0.0100213, 0, 1, 1, 0.25717, 0, 0, 1, + 0.25717, 0, 0, 0.999992, 0.257164, 0, 0, 0.999958, 0.257135, 0, 0.000641715, 0.999864, 0.25706, 0, + 0.00305314, 0.999666, 0.256897, 0, 0.00700975, 0.999302, 0.256596, 0, 0.0122194, 0.998663, + 0.25607, 0, 0.0184622, 0.995607, 0.254123, 0, 0.0255773, 0.993094, 0.252081, 0, 0.0334439, 0.9907, + 0.249867, 0, 0.0419696, 0.98594, 0.246118, 0, 0.0510823, 0.981214, 0.242049, 0, 0.0607242, + 0.974966, 0.236869, 0, 0.0708486, 0.967589, 0.230724, 0, 0.081417, 0.95915, 0.223635, 0, + 0.0923974, 0.950257, 0.21596, 0, 0.103763, 0.940165, 0.207296, 0, 0.115491, 0.929396, 0.197901, 0, + 0.127562, 0.919288, 0.188437, 0, 0.13996, 0.909428, 0.178762, 0, 0.15267, 0.900105, 0.169072, 0, + 0.165679, 0.891418, 0.159478, 0, 0.178979, 0.883347, 0.15002, 0, 0.192558, 0.875992, 0.140813, 0, + 0.20641, 0.869466, 0.13196, 0, 0.220529, 0.863699, 0.123501, 0, 0.234907, 0.858553, 0.115436, 0, + 0.249542, 0.854379, 0.107901, 0, 0.264428, 0.850894, 0.10088, 0, 0.279564, 0.847632, 0.0942296, 0, + 0.294947, 0.844571, 0.0879861, 0, 0.310575, 0.84163, 0.0821534, 0, 0.326448, 0.838542, 0.0766409, + 0, 0.342566, 0.835412, 0.0715322, 0, 0.358929, 0.831899, 0.0666883, 0, 0.37554, 0.828177, + 0.0622175, 0, 0.392399, 0.82416, 0.0580452, 0, 0.409511, 0.820393, 0.054267, 0, 0.426878, + 0.816068, 0.0507172, 0, 0.444506, 0.811201, 0.0474041, 0, 0.4624, 0.805785, 0.0443174, 0, + 0.480566, 0.799878, 0.0414562, 0, 0.499013, 0.793469, 0.0388147, 0, 0.517749, 0.786473, 0.0363453, + 0, 0.536785, 0.778874, 0.0340225, 0, 0.556134, 0.771277, 0.0318599, 0, 0.575809, 0.763426, + 0.0298859, 0, 0.595827, 0.755044, 0.0280357, 0, 0.616207, 0.746161, 0.0262979, 0, 0.636973, + 0.737124, 0.0247295, 0, 0.65815, 0.72761, 0.0232514, 0, 0.679772, 0.717822, 0.0218755, 0, + 0.701876, 0.708279, 0.0205942, 0, 0.724509, 0.698333, 0.0193947, 0, 0.74773, 0.68802, 0.0182717, + 0, 0.771609, 0.677321, 0.0172044, 0, 0.79624, 0.666504, 0.0162122, 0, 0.821743, 0.656184, + 0.0152924, 0, 0.84828, 0.64556, 0.0144326, 0, 0.876069, 0.634636, 0.0136157, 0, 0.905404, + 0.624124, 0.0128612, 0, 0.936508, 0.613914, 0.0121435, 0, 0.968254, 0.603589, 0.0114887, 0, 1, 1, + 0.307946, 0, 0, 0.999999, 0.307945, 0, 0, 0.999988, 0.307934, 0, 2.04479e-5, 0.999944, 0.307886, + 0, 0.00127833, 0.999824, 0.307756, 0, 0.00445047, 0.999565, 0.30748, 0, 0.00914673, 0.999085, + 0.306966, 0, 0.0150498, 0.998103, 0.306004, 0, 0.0219367, 0.994249, 0.303028, 0, 0.0296485, + 0.991807, 0.300435, 0, 0.038068, 0.987773, 0.296554, 0, 0.0471062, 0.982673, 0.2916, 0, 0.0566942, + 0.976623, 0.285641, 0, 0.0667768, 0.968757, 0.27815, 0, 0.0773099, 0.959849, 0.269529, 0, + 0.088257, 0.950663, 0.260248, 0, 0.0995879, 0.940129, 0.249704, 0, 0.111277, 0.92895, 0.238291, 0, + 0.123304, 0.917996, 0.226501, 0, 0.13565, 0.907813, 0.214669, 0, 0.148299, 0.898305, 0.202835, 0, + 0.161237, 0.889626, 0.191158, 0, 0.174455, 0.88175, 0.179695, 0, 0.187941, 0.874715, 0.168548, 0, + 0.201687, 0.868746, 0.15792, 0, 0.215687, 0.863703, 0.147807, 0, 0.229933, 0.859315, 0.138149, 0, + 0.24442, 0.855538, 0.128993, 0, 0.259145, 0.852428, 0.120414, 0, 0.274103, 0.850168, 0.112498, 0, + 0.289293, 0.848132, 0.105054, 0, 0.304711, 0.846291, 0.0981087, 0, 0.320357, 0.844431, 0.0915942, + 0, 0.33623, 0.842493, 0.0855056, 0, 0.35233, 0.840368, 0.0798204, 0, 0.368658, 0.83798, 0.0745097, + 0, 0.385214, 0.83523, 0.0695424, 0, 0.402002, 0.832091, 0.0649092, 0, 0.419023, 0.828667, + 0.0606291, 0, 0.436282, 0.824805, 0.0566523, 0, 0.453782, 0.820988, 0.0530229, 0, 0.471529, + 0.816635, 0.0496364, 0, 0.489528, 0.811725, 0.0464658, 0, 0.507788, 0.806316, 0.0435082, 0, + 0.526317, 0.800469, 0.0407873, 0, 0.545124, 0.794107, 0.038255, 0, 0.564221, 0.787218, 0.0358825, + 0, 0.583621, 0.779872, 0.0336785, 0, 0.603341, 0.772097, 0.0316379, 0, 0.623397, 0.764484, + 0.0297379, 0, 0.643812, 0.756428, 0.0279581, 0, 0.664611, 0.748022, 0.0263153, 0, 0.685824, + 0.739268, 0.0247799, 0, 0.707488, 0.73024, 0.0233385, 0, 0.729646, 0.720893, 0.0220035, 0, + 0.752354, 0.71119, 0.0207555, 0, 0.77568, 0.701791, 0.0195843, 0, 0.799715, 0.692184, 0.0184891, + 0, 0.824574, 0.682258, 0.0174541, 0, 0.850417, 0.67206, 0.0164873, 0, 0.877466, 0.661717, + 0.0155959, 0, 0.90604, 0.651462, 0.0147519, 0, 0.936528, 0.641467, 0.0139727, 0, 0.968254, + 0.631229, 0.0132363, 0, 1, 1, 0.367573, 0, 0, 0.999999, 0.367571, 0, 0, 0.999984, 0.367553, 0, + 0.000183382, 0.999925, 0.367473, 0, 0.00225254, 0.999759, 0.367259, 0, 0.00628165, 0.99941, + 0.366801, 0, 0.0117858, 0.998739, 0.365946, 0, 0.0184359, 0.995529, 0.363191, 0, 0.0260114, + 0.992875, 0.360171, 0, 0.0343581, 0.989135, 0.355981, 0, 0.0433637, 0.984166, 0.350401, 0, + 0.0529438, 0.977871, 0.343348, 0, 0.0630334, 0.96951, 0.334341, 0, 0.0735805, 0.959964, 0.323862, + 0, 0.0845437, 0.950162, 0.312521, 0, 0.095889, 0.938882, 0.299577, 0, 0.107588, 0.926992, + 0.285573, 0, 0.119617, 0.915589, 0.271212, 0, 0.131957, 0.904791, 0.256611, 0, 0.144591, 0.895177, + 0.242224, 0, 0.157503, 0.886403, 0.227952, 0, 0.170682, 0.878957, 0.214192, 0, 0.184117, 0.872418, + 0.200795, 0, 0.197799, 0.867029, 0.188015, 0, 0.21172, 0.862835, 0.175975, 0, 0.225873, 0.859411, + 0.164526, 0, 0.240253, 0.856655, 0.153693, 0, 0.254854, 0.854519, 0.14352, 0, 0.269673, 0.852828, + 0.13397, 0, 0.284707, 0.851412, 0.124984, 0, 0.299953, 0.850609, 0.116748, 0, 0.315408, 0.849855, + 0.10905, 0, 0.331073, 0.849017, 0.101839, 0, 0.346946, 0.848079, 0.0951359, 0, 0.363028, 0.846911, + 0.0888774, 0, 0.379318, 0.845445, 0.0830375, 0, 0.395818, 0.84362, 0.0775844, 0, 0.41253, + 0.841411, 0.0725054, 0, 0.429457, 0.838768, 0.0677691, 0, 0.446602, 0.835801, 0.0634016, 0, + 0.463968, 0.832341, 0.0593095, 0, 0.481561, 0.828424, 0.0555121, 0, 0.499386, 0.824312, 0.052024, + 0, 0.51745, 0.819918, 0.0487865, 0, 0.535761, 0.815072, 0.0457801, 0, 0.554328, 0.809863, + 0.0430184, 0, 0.573162, 0.804164, 0.0404245, 0, 0.592275, 0.798034, 0.0380146, 0, 0.611681, + 0.791436, 0.0357436, 0, 0.631398, 0.784498, 0.0336475, 0, 0.651445, 0.777125, 0.0316666, 0, + 0.671845, 0.769365, 0.0298122, 0, 0.692628, 0.761579, 0.0281001, 0, 0.713827, 0.753746, 0.0265049, + 0, 0.735484, 0.745573, 0.0250067, 0, 0.75765, 0.737083, 0.0236026, 0, 0.78039, 0.728545, + 0.0223302, 0, 0.803789, 0.719691, 0.0211243, 0, 0.82796, 0.710569, 0.0199983, 0, 0.853056, + 0.701216, 0.0189569, 0, 0.879298, 0.692094, 0.0179702, 0, 0.907014, 0.682909, 0.0170418, 0, + 0.936691, 0.673509, 0.0161732, 0, 0.968254, 0.663863, 0.0153406, 0, 1, 1, 0.437395, 0, 0, + 0.999998, 0.437394, 0, 0, 0.99998, 0.437363, 0, 0.000616704, 0.999891, 0.437232, 0, 0.00367925, + 0.999656, 0.436877, 0, 0.00867446, 0.999148, 0.436121, 0, 0.0150679, 0.997959, 0.434564, 0, + 0.022531, 0.993464, 0.430134, 0, 0.0308507, 0.990606, 0.426077, 0, 0.0398805, 0.985027, 0.419397, + 0, 0.0495148, 0.978491, 0.41118, 0, 0.0596749, 0.969643, 0.40048, 0, 0.0703001, 0.959189, 0.38769, + 0, 0.0813427, 0.948223, 0.373575, 0, 0.0927641, 0.935955, 0.357622, 0, 0.104533, 0.923237, + 0.34043, 0, 0.116624, 0.911074, 0.322735, 0, 0.129015, 0.899724, 0.30479, 0, 0.141687, 0.890189, + 0.287392, 0, 0.154626, 0.881796, 0.270248, 0, 0.167818, 0.874781, 0.253659, 0, 0.181252, 0.869166, + 0.237786, 0, 0.194918, 0.864725, 0.222618, 0, 0.208807, 0.861565, 0.208356, 0, 0.222913, 0.859284, + 0.194867, 0, 0.237229, 0.857677, 0.18212, 0, 0.25175, 0.856714, 0.17018, 0, 0.266473, 0.856155, + 0.158969, 0, 0.281392, 0.8558, 0.148413, 0, 0.296505, 0.855672, 0.138578, 0, 0.311811, 0.855538, + 0.129345, 0, 0.327306, 0.855689, 0.120861, 0, 0.342991, 0.855767, 0.112969, 0, 0.358864, 0.855618, + 0.105593, 0, 0.374925, 0.85525, 0.0987451, 0, 0.391176, 0.854583, 0.0923727, 0, 0.407616, + 0.853534, 0.0864143, 0, 0.424249, 0.852061, 0.0808338, 0, 0.441076, 0.850253, 0.0756771, 0, + 0.4581, 0.848004, 0.0708612, 0, 0.475324, 0.845333, 0.0663784, 0, 0.492754, 0.842376, 0.0622631, + 0, 0.510394, 0.838956, 0.0584112, 0, 0.528251, 0.835121, 0.0548328, 0, 0.546331, 0.830842, + 0.0514838, 0, 0.564644, 0.826212, 0.048355, 0, 0.583198, 0.821522, 0.0454714, 0, 0.602005, + 0.816551, 0.0428263, 0, 0.621078, 0.811211, 0.0403612, 0, 0.640434, 0.805479, 0.038039, 0, + 0.660089, 0.799409, 0.0358739, 0, 0.680066, 0.79306, 0.0338727, 0, 0.70039, 0.786395, 0.0319985, + 0, 0.721094, 0.779416, 0.030241, 0, 0.742215, 0.77214, 0.0285951, 0, 0.7638, 0.764636, 0.0270747, + 0, 0.785912, 0.756836, 0.0256354, 0, 0.808628, 0.749315, 0.0243027, 0, 0.832055, 0.741561, + 0.0230497, 0, 0.856338, 0.733589, 0.0218801, 0, 0.88169, 0.725479, 0.020784, 0, 0.908441, + 0.717255, 0.0197702, 0, 0.937125, 0.708829, 0.0188168, 0, 0.968254, 0.700191, 0.0179113, 0, 1, 1, + 0.518937, 0, 0, 0.999998, 0.518933, 0, 0, 0.999967, 0.518883, 0, 0.00147741, 0.999832, 0.51866, 0, + 0.00573221, 0.999466, 0.518057, 0, 0.011826, 0.998644, 0.516752, 0, 0.0192116, 0.994458, 0.512347, + 0, 0.027573, 0.991223, 0.507675, 0, 0.0367099, 0.985515, 0.500188, 0, 0.046487, 0.978308, + 0.490408, 0, 0.0568071, 0.968359, 0.477357, 0, 0.0675984, 0.95682, 0.461752, 0, 0.0788059, + 0.943929, 0.443796, 0, 0.090386, 0.930224, 0.423893, 0, 0.102304, 0.916514, 0.402682, 0, 0.114532, + 0.903653, 0.380914, 0, 0.127047, 0.892315, 0.359212, 0, 0.139828, 0.882942, 0.338102, 0, 0.152861, + 0.875438, 0.31773, 0, 0.16613, 0.869642, 0.298186, 0, 0.179624, 0.865304, 0.279491, 0, 0.193332, + 0.862382, 0.261804, 0, 0.207247, 0.860666, 0.245146, 0, 0.22136, 0.859788, 0.229406, 0, 0.235666, + 0.859608, 0.214605, 0, 0.250158, 0.859912, 0.200691, 0, 0.264832, 0.86053, 0.187623, 0, 0.279684, + 0.861368, 0.17539, 0, 0.294711, 0.862237, 0.163901, 0, 0.309911, 0.863127, 0.153175, 0, 0.32528, + 0.863923, 0.143147, 0, 0.340819, 0.864567, 0.133781, 0, 0.356524, 0.865013, 0.125042, 0, 0.372397, + 0.86539, 0.116952, 0, 0.388438, 0.865591, 0.109476, 0, 0.404645, 0.865517, 0.102542, 0, 0.421022, + 0.865084, 0.0960688, 0, 0.437569, 0.864309, 0.0900499, 0, 0.454287, 0.863151, 0.0844328, 0, + 0.471181, 0.861649, 0.0792218, 0, 0.488253, 0.859742, 0.0743482, 0, 0.505507, 0.857446, 0.0697963, + 0, 0.522947, 0.854757, 0.0655364, 0, 0.54058, 0.851783, 0.061608, 0, 0.558412, 0.848516, + 0.0579701, 0, 0.576449, 0.844897, 0.0545742, 0, 0.594701, 0.840956, 0.0514167, 0, 0.613178, + 0.836676, 0.0484598, 0, 0.631892, 0.832075, 0.0456934, 0, 0.650856, 0.827191, 0.0431178, 0, + 0.670088, 0.822295, 0.0407718, 0, 0.689606, 0.817294, 0.0386032, 0, 0.709434, 0.812013, 0.0365675, + 0, 0.7296, 0.806465, 0.0346547, 0, 0.750138, 0.800691, 0.0328717, 0, 0.771093, 0.794709, 0.031211, + 0, 0.792519, 0.788493, 0.0296504, 0, 0.814488, 0.782049, 0.0281782, 0, 0.837097, 0.775403, + 0.0267965, 0, 0.860481, 0.76857, 0.0255002, 0, 0.884842, 0.761536, 0.0242759, 0, 0.910494, + 0.754303, 0.0231142, 0, 0.937985, 0.74692, 0.0220305, 0, 0.968254, 0.739745, 0.0210192, 0, 1, 1, + 0.613914, 0, 0, 0.999996, 0.613907, 0, 9.63597e-5, 0.999942, 0.613814, 0, 0.00301247, 0.999704, + 0.613407, 0, 0.00870385, 0.999046, 0.612302, 0, 0.0160714, 0.995516, 0.608266, 0, 0.0245899, + 0.991726, 0.602863, 0, 0.0339681, 0.985157, 0.593956, 0, 0.0440254, 0.97642, 0.581748, 0, + 0.0546409, 0.964404, 0.565183, 0, 0.0657284, 0.950601, 0.545273, 0, 0.0772246, 0.935158, 0.522129, + 0, 0.0890812, 0.919364, 0.496782, 0, 0.10126, 0.904754, 0.470571, 0, 0.113731, 0.89176, 0.444037, + 0, 0.126469, 0.881492, 0.418322, 0, 0.139454, 0.873656, 0.393522, 0, 0.15267, 0.868053, 0.369795, + 0, 0.166101, 0.864336, 0.347171, 0, 0.179736, 0.862259, 0.325737, 0, 0.193565, 0.861556, 0.305532, + 0, 0.207578, 0.861776, 0.286416, 0, 0.221769, 0.862661, 0.268355, 0, 0.23613, 0.864015, 0.251334, + 0, 0.250656, 0.865711, 0.235352, 0, 0.265343, 0.867519, 0.220302, 0, 0.280187, 0.869351, 0.206161, + 0, 0.295183, 0.871144, 0.192908, 0, 0.31033, 0.872839, 0.180505, 0, 0.325624, 0.874307, 0.168848, + 0, 0.341065, 0.875667, 0.158021, 0, 0.35665, 0.876758, 0.147877, 0, 0.37238, 0.87764, 0.138441, 0, + 0.388253, 0.878237, 0.129627, 0, 0.404269, 0.878563, 0.121415, 0, 0.42043, 0.878572, 0.113741, 0, + 0.436735, 0.87842, 0.106652, 0, 0.453187, 0.878057, 0.100097, 0, 0.469786, 0.877413, 0.0940128, 0, + 0.486536, 0.87646, 0.0883462, 0, 0.503439, 0.875233, 0.0830924, 0, 0.520498, 0.8737, 0.0781975, 0, + 0.537717, 0.871873, 0.07364, 0, 0.555102, 0.86978, 0.0694103, 0, 0.572657, 0.867405, 0.0654696, 0, + 0.59039, 0.864751, 0.0617914, 0, 0.608307, 0.861818, 0.0583491, 0, 0.626419, 0.858645, 0.0551443, + 0, 0.644733, 0.855307, 0.0521894, 0, 0.663264, 0.851736, 0.0494334, 0, 0.682025, 0.847927, + 0.0468504, 0, 0.701032, 0.843888, 0.0444261, 0, 0.720308, 0.839629, 0.0421497, 0, 0.739875, + 0.835158, 0.0400082, 0, 0.759764, 0.830509, 0.0380076, 0, 0.780014, 0.825714, 0.0361488, 0, + 0.800673, 0.820729, 0.0343956, 0, 0.821803, 0.815751, 0.0327781, 0, 0.843492, 0.810752, 0.031275, + 0, 0.86586, 0.805587, 0.0298542, 0, 0.889087, 0.800317, 0.0285397, 0, 0.913466, 0.79489, + 0.0272948, 0, 0.93952, 0.789314, 0.0261139, 0, 0.96835, 0.783593, 0.0249938, 0, 1, 1, 0.724258, 0, + 0, 0.999992, 0.724243, 0, 0.000726889, 0.99987, 0.724044, 0, 0.00569574, 0.999336, 0.72317, 0, + 0.0131702, 0.996271, 0.719432, 0, 0.0220738, 0.991159, 0.712576, 0, 0.0319405, 0.982465, 0.700927, + 0, 0.0425202, 0.97049, 0.684297, 0, 0.0536599, 0.953973, 0.661244, 0, 0.065258, 0.935546, + 0.633804, 0, 0.0772427, 0.916596, 0.603071, 0, 0.0895616, 0.899353, 0.57105, 0, 0.102175, + 0.885216, 0.539206, 0, 0.11505, 0.875076, 0.508714, 0, 0.128164, 0.868334, 0.479571, 0, 0.141495, + 0.864414, 0.451796, 0, 0.155026, 0.862678, 0.425328, 0, 0.168745, 0.862835, 0.400352, 0, 0.182639, + 0.864067, 0.376532, 0, 0.196699, 0.866086, 0.35391, 0, 0.210915, 0.868557, 0.332424, 0, 0.225282, + 0.871271, 0.312053, 0, 0.239792, 0.874058, 0.292764, 0, 0.25444, 0.8768, 0.27453, 0, 0.269223, + 0.87939, 0.257297, 0, 0.284135, 0.8819, 0.24114, 0, 0.299174, 0.884187, 0.225934, 0, 0.314337, + 0.886262, 0.211669, 0, 0.329622, 0.888119, 0.198311, 0, 0.345026, 0.889709, 0.185783, 0, 0.360549, + 0.891054, 0.174063, 0, 0.376189, 0.892196, 0.163143, 0, 0.391946, 0.893101, 0.152952, 0, 0.407819, + 0.893803, 0.143475, 0, 0.423808, 0.894277, 0.134647, 0, 0.439914, 0.894532, 0.126434, 0, 0.456137, + 0.894576, 0.1188, 0, 0.472479, 0.894393, 0.111694, 0, 0.48894, 0.893976, 0.105069, 0, 0.505523, + 0.893346, 0.0989077, 0, 0.52223, 0.892502, 0.0931724, 0, 0.539064, 0.891441, 0.0878276, 0, + 0.556028, 0.890276, 0.082903, 0, 0.573125, 0.888972, 0.0783505, 0, 0.590361, 0.887469, 0.0741083, + 0, 0.607741, 0.885785, 0.0701633, 0, 0.62527, 0.883914, 0.0664835, 0, 0.642957, 0.881872, + 0.0630567, 0, 0.660809, 0.879651, 0.0598527, 0, 0.678836, 0.877267, 0.0568615, 0, 0.69705, + 0.874717, 0.05406, 0, 0.715465, 0.872012, 0.0514378, 0, 0.734098, 0.869157, 0.0489805, 0, + 0.752968, 0.866155, 0.0466727, 0, 0.772101, 0.863014, 0.0445056, 0, 0.791529, 0.859748, 0.0424733, + 0, 0.81129, 0.856416, 0.0405957, 0, 0.831438, 0.852958, 0.0388273, 0, 0.852044, 0.849382, + 0.0371619, 0, 0.87321, 0.845694, 0.0355959, 0, 0.89509, 0.841893, 0.0341155, 0, 0.917932, + 0.837981, 0.0327141, 0, 0.942204, 0.833963, 0.0313856, 0, 0.968981, 0.829847, 0.0301275, 0, 1, 1, + 0.85214, 0, 0, 0.999969, 0.852095, 0, 0.00279627, 0.999483, 0.851408, 0, 0.0107635, 0.994545, + 0.84579, 0, 0.0206454, 0.986188, 0.835231, 0, 0.0315756, 0.969847, 0.814687, 0, 0.0432021, + 0.945951, 0.783735, 0, 0.0553396, 0.91917, 0.746074, 0, 0.0678766, 0.895488, 0.706938, 0, + 0.0807395, 0.878232, 0.669534, 0, 0.0938767, 0.868252, 0.635168, 0, 0.10725, 0.863873, 0.603069, + 0, 0.120832, 0.863369, 0.572514, 0, 0.134598, 0.86545, 0.543169, 0, 0.148533, 0.868803, 0.514578, + 0, 0.16262, 0.872794, 0.486762, 0, 0.176849, 0.87702, 0.459811, 0, 0.19121, 0.881054, 0.433654, 0, + 0.205694, 0.884974, 0.408574, 0, 0.220294, 0.888587, 0.384525, 0, 0.235005, 0.891877, 0.36156, 0, + 0.24982, 0.894793, 0.339661, 0, 0.264737, 0.89743, 0.318913, 0, 0.279751, 0.899796, 0.299302, 0, + 0.294859, 0.901943, 0.280843, 0, 0.310058, 0.903858, 0.263481, 0, 0.325346, 0.905574, 0.247197, 0, + 0.340721, 0.907069, 0.231915, 0, 0.356181, 0.908379, 0.217614, 0, 0.371725, 0.90952, 0.20425, 0, + 0.387353, 0.910483, 0.191758, 0, 0.403063, 0.91128, 0.180092, 0, 0.418854, 0.911936, 0.169222, 0, + 0.434727, 0.912454, 0.159098, 0, 0.450682, 0.912835, 0.149668, 0, 0.466718, 0.913078, 0.140884, 0, + 0.482837, 0.913192, 0.132709, 0, 0.499038, 0.913175, 0.125095, 0, 0.515324, 0.91304, 0.118012, 0, + 0.531695, 0.912781, 0.111417, 0, 0.548153, 0.91241, 0.105281, 0, 0.5647, 0.911924, 0.0995691, 0, + 0.581338, 0.911331, 0.0942531, 0, 0.59807, 0.910637, 0.0893076, 0, 0.6149, 0.90984, 0.0846998, 0, + 0.63183, 0.908941, 0.0804044, 0, 0.648865, 0.907944, 0.0763984, 0, 0.666011, 0.906857, 0.0726638, + 0, 0.683273, 0.90568, 0.0691783, 0, 0.700659, 0.904416, 0.0659222, 0, 0.718176, 0.903067, + 0.0628782, 0, 0.735834, 0.901637, 0.0600307, 0, 0.753646, 0.900128, 0.0573647, 0, 0.771625, + 0.898544, 0.0548668, 0, 0.78979, 0.89689, 0.052527, 0, 0.808162, 0.895165, 0.0503306, 0, 0.826771, + 0.893371, 0.0482668, 0, 0.845654, 0.891572, 0.0463605, 0, 0.864863, 0.889763, 0.0445998, 0, + 0.884472, 0.887894, 0.0429451, 0, 0.904592, 0.885967, 0.0413884, 0, 0.925407, 0.883984, 0.0399225, + 0, 0.947271, 0.881945, 0.0385405, 0, 0.97105, 0.879854, 0.0372362, 0, 1, 0.999804, 0.995833, 0, 0, + 0.938155, 0.933611, 0, 0.0158731, 0.864755, 0.854311, 0, 0.0317461, 0.888594, 0.865264, 0, + 0.0476191, 0.905575, 0.863922, 0, 0.0634921, 0.915125, 0.850558, 0, 0.0793651, 0.920665, 0.829254, + 0, 0.0952381, 0.924073, 0.802578, 0, 0.111111, 0.926304, 0.772211, 0, 0.126984, 0.927829, + 0.739366, 0, 0.142857, 0.928924, 0.705033, 0, 0.15873, 0.92973, 0.670019, 0, 0.174603, 0.930339, + 0.634993, 0, 0.190476, 0.930811, 0.600485, 0, 0.206349, 0.931191, 0.566897, 0, 0.222222, 0.93149, + 0.534485, 0, 0.238095, 0.931737, 0.503429, 0, 0.253968, 0.931939, 0.473811, 0, 0.269841, 0.932108, + 0.445668, 0, 0.285714, 0.93225, 0.418993, 0, 0.301587, 0.932371, 0.393762, 0, 0.31746, 0.932474, + 0.369939, 0, 0.333333, 0.932562, 0.347479, 0, 0.349206, 0.932638, 0.326336, 0, 0.365079, 0.932703, + 0.306462, 0, 0.380952, 0.93276, 0.287805, 0, 0.396825, 0.932809, 0.270313, 0, 0.412698, 0.932851, + 0.253933, 0, 0.428571, 0.932887, 0.23861, 0, 0.444444, 0.932917, 0.224289, 0, 0.460317, 0.932943, + 0.210917, 0, 0.47619, 0.932965, 0.19844, 0, 0.492063, 0.932982, 0.186807, 0, 0.507937, 0.932995, + 0.175966, 0, 0.52381, 0.933005, 0.165869, 0, 0.539683, 0.933011, 0.156468, 0, 0.555556, 0.933013, + 0.147719, 0, 0.571429, 0.933013, 0.139579, 0, 0.587302, 0.93301, 0.132007, 0, 0.603175, 0.933004, + 0.124965, 0, 0.619048, 0.932994, 0.118416, 0, 0.634921, 0.932982, 0.112326, 0, 0.650794, 0.932968, + 0.106663, 0, 0.666667, 0.93295, 0.101397, 0, 0.68254, 0.932931, 0.0964993, 0, 0.698413, 0.932908, + 0.0919438, 0, 0.714286, 0.932883, 0.0877057, 0, 0.730159, 0.932856, 0.0837623, 0, 0.746032, + 0.932827, 0.0800921, 0, 0.761905, 0.932796, 0.0766754, 0, 0.777778, 0.932762, 0.0734936, 0, + 0.793651, 0.932727, 0.0705296, 0, 0.809524, 0.932689, 0.0677676, 0, 0.825397, 0.93265, 0.0651929, + 0, 0.84127, 0.932609, 0.0627917, 0, 0.857143, 0.932565, 0.0605515, 0, 0.873016, 0.932521, + 0.0584606, 0, 0.888889, 0.932474, 0.0565082, 0, 0.904762, 0.932427, 0.0546841, 0, 0.920635, + 0.932377, 0.0529793, 0, 0.936508, 0.932326, 0.0513851, 0, 0.952381, 0.932274, 0.0498936, 0, + 0.968254, 0.93222, 0.0484975, 0, 0.984127, 0.932164, 0.0471899, 0, 1, +]); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/meta.json b/apps/typegpu-docs/src/examples/rendering/area-light/meta.json new file mode 100644 index 0000000000..0b18387af0 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/meta.json @@ -0,0 +1,6 @@ +{ + "title": "Area Light (LTC)", + "category": "rendering", + "tags": ["3d", "lighting", "rasterization"], + "coolFactor": 8 +} diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts new file mode 100644 index 0000000000..97ab2e1a8e --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -0,0 +1,49 @@ +import tgpu, { d } from 'typegpu'; +import { Camera } from '../../common/setup-orbit-camera.ts'; + +export const Vertex = d.struct({ + position: d.vec3f, + normal: d.vec3f, + albedo: d.vec3f, + roughness: d.f32, + emissive: d.vec3f, +}); + +export const RectLight = d.struct({ + center: d.vec3f, + dirX: d.vec3f, + dirY: d.vec3f, + halfSize: d.vec2f, + color: d.vec3f, + intensity: d.f32, +}); + +export const RenderParams = d.struct({ + exposure: d.f32, + ambient: d.f32, + specularStrength: d.f32, +}); + +export const HorizonClip = d.struct({ + l0: d.vec3f, + l1: d.vec3f, + l2: d.vec3f, + l3: d.vec3f, + l4: d.vec3f, + count: d.u32, +}); + +export const vertexLayout = tgpu.vertexLayout(d.arrayOf(Vertex)); + +export const sceneLayout = tgpu.bindGroupLayout({ + camera: { uniform: Camera }, + light: { uniform: RectLight }, + params: { uniform: RenderParams }, +}); + +export const ltcLayout = tgpu.bindGroupLayout({ + ltcMat: { texture: d.texture2d(d.f32), sampleType: 'unfilterable-float' }, + ltcAmp: { texture: d.texture2d(d.f32), sampleType: 'unfilterable-float' }, +}); + +export type ExampleVertex = d.InferInput; diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts new file mode 100644 index 0000000000..80edb7b921 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -0,0 +1,288 @@ +import tgpu, { d, std } from 'typegpu'; +import { HorizonClip, ltcLayout, sceneLayout, Vertex, vertexLayout } from './schemas.ts'; + +export { vertexLayout }; + +const LUT_SIZE = 64; +const LUT_SCALE = (LUT_SIZE - 1) / LUT_SIZE; +const LUT_BIAS = 0.5 / LUT_SIZE; + +function saturate(value: number) { + 'use gpu'; + return std.clamp(value, 0, 1); +} + +function luminance(color: d.v3f) { + 'use gpu'; + return std.dot(color, d.vec3f(0.2126, 0.7152, 0.0722)); +} + +function integrateEdgeVec(v1: d.v3f, v2: d.v3f) { + 'use gpu'; + const x = std.dot(v1, v2); + const y = std.abs(x); + const a = 0.8543985 + (0.4965155 + 0.0145206 * y) * y; + const b = 3.417594 + (4.1616724 + y) * y; + const v = a / b; + const thetaSinTheta = std.select(0.5 * std.inverseSqrt(std.max(1 - x * x, 1e-7)) - v, v, x > 0); + return std.cross(v1, v2) * thetaSinTheta; +} + +function integrateEdge(v1: d.v3f, v2: d.v3f) { + 'use gpu'; + return integrateEdgeVec(v1, v2).z; +} + +function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { + 'use gpu'; + let l0 = d.vec3f(p0); + let l1 = d.vec3f(p1); + let l2 = d.vec3f(p2); + let l3 = d.vec3f(p3); + let l4 = d.vec3f(p0); + + let config = d.i32(0); + if (l0.z > 0) { + config += 1; + } + if (l1.z > 0) { + config += 2; + } + if (l2.z > 0) { + config += 4; + } + if (l3.z > 0) { + config += 8; + } + + let count = d.u32(0); + + if (config === 1) { + count = d.u32(3); + l1 = -l1.z * l0 + l0.z * l1; + l2 = -l3.z * l0 + l0.z * l3; + } else if (config === 2) { + count = d.u32(3); + l0 = -l0.z * l1 + l1.z * l0; + l2 = -l2.z * l1 + l1.z * l2; + } else if (config === 3) { + count = d.u32(4); + l2 = -l2.z * l1 + l1.z * l2; + l3 = -l3.z * l0 + l0.z * l3; + } else if (config === 4) { + count = d.u32(3); + l0 = -l3.z * l2 + l2.z * l3; + l1 = -l1.z * l2 + l2.z * l1; + } else if (config === 6) { + count = d.u32(4); + l0 = -l0.z * l1 + l1.z * l0; + l3 = -l3.z * l2 + l2.z * l3; + } else if (config === 7) { + count = d.u32(5); + l4 = -l3.z * l0 + l0.z * l3; + l3 = -l3.z * l2 + l2.z * l3; + } else if (config === 8) { + count = d.u32(3); + l0 = -l0.z * l3 + l3.z * l0; + l1 = -l2.z * l3 + l3.z * l2; + l2 = d.vec3f(l3); + } else if (config === 9) { + count = d.u32(4); + l1 = -l1.z * l0 + l0.z * l1; + l2 = -l2.z * l3 + l3.z * l2; + } else if (config === 11) { + count = d.u32(5); + l4 = d.vec3f(l3); + l3 = -l2.z * l3 + l3.z * l2; + l2 = -l2.z * l1 + l1.z * l2; + } else if (config === 12) { + count = d.u32(4); + l1 = -l1.z * l2 + l2.z * l1; + l0 = -l0.z * l3 + l3.z * l0; + } else if (config === 13) { + count = d.u32(5); + l4 = d.vec3f(l3); + l3 = d.vec3f(l2); + l2 = -l1.z * l2 + l2.z * l1; + l1 = -l1.z * l0 + l0.z * l1; + } else if (config === 14) { + count = d.u32(5); + l4 = -l0.z * l3 + l3.z * l0; + l0 = -l0.z * l1 + l1.z * l0; + } else if (config === 15) { + count = d.u32(4); + } + + if (count === d.u32(3)) { + l3 = d.vec3f(l0); + } + if (count === d.u32(4)) { + l4 = d.vec3f(l0); + } + + return HorizonClip({ l0, l1, l2, l3, l4, count }); +} + +function ltcEvaluate(N: d.v3f, V: d.v3f, P: d.v3f, Minv: d.m3x3f) { + 'use gpu'; + let T1 = V - N * std.dot(V, N); + if (std.dot(T1, T1) < 1e-5) { + let up = d.vec3f(0, 0, 1); + if (std.abs(N.z) > 0.999) { + up = d.vec3f(0, 1, 0); + } + T1 = std.cross(up, N); + } + T1 = std.normalize(T1); + const T2 = std.cross(N, T1); + + const light = sceneLayout.$.light; + const ex = light.dirX * light.halfSize.x; + const ey = light.dirY * light.halfSize.y; + const p0 = light.center - ex - ey; + const p1 = light.center + ex - ey; + const p2 = light.center + ex + ey; + const p3 = light.center - ex + ey; + + const basis = std.transpose(d.mat3x3f(T1, T2, N)); + const transform = Minv * basis; + + const clipped = clipQuadToHorizon( + transform * (p0 - P), + transform * (p1 - P), + transform * (p2 - P), + transform * (p3 - P), + ); + + if (clipped.count === d.u32(0)) { + return d.f32(0); + } + + const l0 = std.normalize(clipped.l0); + const l1 = std.normalize(clipped.l1); + const l2 = std.normalize(clipped.l2); + const l3 = std.normalize(clipped.l3); + const l4 = std.normalize(clipped.l4); + + let sum = integrateEdge(l0, l1) + integrateEdge(l1, l2) + integrateEdge(l2, l3); + if (clipped.count >= d.u32(4)) { + sum += integrateEdge(l3, l4); + } + if (clipped.count === d.u32(5)) { + sum += integrateEdge(l4, l0); + } + + return std.abs(sum); +} + +function sampleLtcTexelMat(x: number, y: number) { + 'use gpu'; + const coord = d.vec2u(d.u32(x), d.u32(y)); + return std.textureLoad(ltcLayout.$.ltcMat, coord, 0); +} + +function sampleLtcTexelAmp(x: number, y: number) { + 'use gpu'; + const coord = d.vec2u(d.u32(x), d.u32(y)); + return std.textureLoad(ltcLayout.$.ltcAmp, coord, 0); +} + +function sampleLtcBilinearMat(uv: d.v2f) { + 'use gpu'; + const pos = std.clamp(uv * LUT_SIZE - 0.5, d.vec2f(0), d.vec2f(LUT_SIZE - 1)); + const base = std.floor(pos); + const frac = pos - base; + const next = std.min(base + 1, d.vec2f(LUT_SIZE - 1)); + + const t00 = sampleLtcTexelMat(base.x, base.y); + const t10 = sampleLtcTexelMat(next.x, base.y); + const t01 = sampleLtcTexelMat(base.x, next.y); + const t11 = sampleLtcTexelMat(next.x, next.y); + + return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); +} + +function sampleLtcAmp(uv: d.v2f) { + 'use gpu'; + const pos = std.clamp(uv * LUT_SIZE - 0.5, d.vec2f(0), d.vec2f(LUT_SIZE - 1)); + const base = std.floor(pos); + const frac = pos - base; + const next = std.min(base + 1, d.vec2f(LUT_SIZE - 1)); + + const t00 = sampleLtcTexelAmp(base.x, base.y); + const t10 = sampleLtcTexelAmp(next.x, base.y); + const t01 = sampleLtcTexelAmp(base.x, next.y); + const t11 = sampleLtcTexelAmp(next.x, next.y); + + return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); +} + +function sampleLtcMat(uv: d.v2f) { + 'use gpu'; + const t = sampleLtcBilinearMat(uv); + return d.mat3x3f(d.vec3f(t.x, 0, t.y), d.vec3f(0, 1, 0), d.vec3f(t.z, 0, t.w)); +} + +function tonemap(color: d.v3f) { + 'use gpu'; + const exposed = color * sceneLayout.$.params.exposure; + const mapped = exposed / (exposed + 1); + return std.pow(std.max(mapped, d.vec3f(0)), d.vec3f(1 / 2.2)); +} + +export const mainVertex = tgpu.vertexFn({ + in: Vertex.propTypes, + out: { + pos: d.builtin.position, + worldPos: d.vec3f, + normal: d.vec3f, + albedo: d.vec3f, + roughness: d.f32, + emissive: d.vec3f, + }, +})(({ position, normal, albedo, roughness, emissive }) => { + 'use gpu'; + const camera = sceneLayout.$.camera; + return { + pos: camera.projection * camera.view * d.vec4f(position, 1), + worldPos: position, + normal, + albedo, + roughness, + emissive, + }; +}); + +export const mainFragment = tgpu.fragmentFn({ + in: { + worldPos: d.vec3f, + normal: d.vec3f, + albedo: d.vec3f, + roughness: d.f32, + emissive: d.vec3f, + }, + out: d.vec4f, +})(({ worldPos, normal, albedo, roughness, emissive }) => { + 'use gpu'; + if (luminance(emissive) > 0) { + return d.vec4f(tonemap(emissive), 1); + } + + const N = std.normalize(normal); + const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); + const NdotV = saturate(std.dot(N, V)); + const uv = d.vec2f(std.clamp(roughness, 0.01, 1), std.sqrt(1 - NdotV)) * LUT_SCALE + LUT_BIAS; + + const Minv = sampleLtcMat(uv); + const brdf = sampleLtcAmp(uv); + + const diffuse = ltcEvaluate(N, V, worldPos, d.mat3x3f.identity()); + const specularLtc = ltcEvaluate(N, V, worldPos, Minv); + const specularColor = d.vec3f(0.04 * sceneLayout.$.params.specularStrength); + const specular = (specularColor * brdf.x + (1 - specularColor) * brdf.y) * specularLtc; + + const direct = + sceneLayout.$.light.color * sceneLayout.$.light.intensity * (albedo * diffuse + specular); + const ambient = albedo * sceneLayout.$.params.ambient; + return d.vec4f(tonemap(direct + ambient), 1); +}); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/thumbnail.png b/apps/typegpu-docs/src/examples/rendering/area-light/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..df9558b690905c28b15b155e311dc4aa10487919 GIT binary patch literal 162194 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�SF^O9%^H^Be!)Ss<`jkq1^={ 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

+tXbf?I)TP?OR=cZ8{XZEO+l?1 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%0A8z5UQWBGr^?}*oHm{|)2)UbcJ;=r<`KX(!ic!$ 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

  • $MVr;KEfG`$q<^DJz~HB1T^m|GR!I0=p2qpI63l8GKBJVz7=FXqAEJSdo3J$E#qcG% zHA`%O<;?{?ZY9Cp^Yjdrs!Rai=ofRLpdtXP)=|;KHvS1|f(k)osj;kR5hik2q%42h z;3Y)iy>PMQ5R>nGPCE#6{r|iGqOtRkc699huQ0S*yKal?kJ+?a9;On;nClis&tGO* z&g0@9cj7ZygoN9%>%IYg#`sWAtsJPI56F#}ZARQx8$giPL-#@6yYrGYTHDggX)e0G4 z#z5zle6UkQH-|AMt5Nt-D?w&1?Yy=sF4>zu*!YZl@3}MDB36i-UWu;ABx(( z&wWhnv%lDtRSZw!X@0fd6#N$dD~~>Z^MK9*?(sV)`Hl0e)ZM&2TQ@q7rHPszqnb5B zPvGdYzm$*;rT=p19yR-9tVaN&=^1sXjEp^H9>6>K!^T<2hyCljfMBD56dkGNCg9g7 zDQUKAn{P;Whkr;k%~LC*PdR&-S;)q&(i_9b}B^RU;bh#C_WzL>6V^8B_ zgqncq9SVC<=^$+cvQJ4OJevVy;ZbydXtH;!z`^q8`=|0<%Li9GnRxhGHa_P%;qKF{ zCQo|4uzwjaf}b<)#B*cxwXbuPuKM?@K%s~4>R{VH%g!nIXmVq^lrn4yYd}G>}~{WCQ%ruv@coodDyF(4j!!w2Nd|a%B#?@`~dWrboVfNfD3`HX8)|=J_xU6GT`UvY*R&{iSj|edWc-ke-`xO=bAQ@`sGk zfJ^uegFbZwh|7Bp@+?3UL6lEaT1{!#J#lx{bhiait1U_7YjFgr!VIccO1UUcijuX} z*9VwjxnIlFS`A70%VbdKLVmHj>I1hxcq&oVlun6&>1KUp8V3lSjzi4Wl0S*LJ&Ias zGV5|kl<`+uOdZJ~erMBy2>_{*?kM)enUf7-xsWNX^TMQ ze(?nS2@Afh=f7j7!(v67V(0hxTa!I3cBm{`;hr+gWk!xLzuG8C{>tb4P8Oc2%`9S^ zBcmW#H^TL>OaL0nV|;xYp-}N*^&t0w4yu(j>&F&i|L$F&AX=8xDQW#Htk-BXf93>F zmcQ)OPbL{<)n-Q$w>lb`#zPT=D}RNS=#Y-EMSS!2Bz%EZSmSV8`-H|e;F-_ksiiDE zp10ZWEm{i^MC!vbQb@WQh>qelz;_e4nMp){PC7qC*G4q%T7vg2QU$}Ar1sLcGZ44N zKioaqmNBY8La*Tj8ui!gP2>%kQO2A!878BW4qK(Q8l_{3Ejwb}sC$v%##u@e4R$ft z#J3;#^4q_1%a`k^2=4Ckm+cD8iI2n)&Po8^Iyeq+NYI6zpzb#xATBQE3c3(|y;0WJ zYM^`m8)w5d%ZST=GN+bOw*IESx!UY0op2uh9kXq9wDM1b#V}WbAK;8n06?3;;KEAb zYD2VU{L`kd^j4a&6ut-blhV_}zwQyGUV_oI*f5QuMoFrJ8e7e8dhv9uF1s4|1<{lw z6V`R$x+qiYYg1=q)0irJEp!pl-ve%&J8D==ABc$F zjfr2~{rn~;Fv~4#K!PPpW23-tn-ur6N20jXw6a7tEDTqF7AjAEC)%JfN^nB|Nei`O z<^AmQqkEFJ!~CyB0h##lgf0onDd8igVMtv5v`A>XXoSFVwA)IsNe#j+b$S0U#|l!& zs-cpLUkrp$OkY57CJP0;JRc8tp-X!7Q9Js;sa#-2yg_>CQCin^G%E<3(@GL-_>rPs z5>cTS52ZgqH|7;bj+q!!RE?dQgdi-WlCOrOK(2L4Lf4d2;{$~u=yhhjJ`k#Y!@cIno77-N?Is$yUl~p_n6Lqd0OPM89w_f@~N;*o+Kr# zGSLJQF0MLm6 z_J%vxn&@f}VniZ1Rd#F&Uj>die`q@1{VkK`i1L*l*u%SPV@u4IufnS**OnkXj*l&ul#M$BT9ijIfyw^zq(2=PY?}%lvM#_0e@Igqc zJ#h*DnqpLk0Aq1H`N!xfX?Rok2$B!gQ zoBOr~Lp_$5L|o`AEP{$SBeJ%iKiGSF0o97 zeMw7QNPnB>_{kET`X%EyCAXX9RA{hDx2&t0KOpXPRA`QSNn8Eue2C zBO4Ql8V=5t=J@KS+8i2HM4YoE{M5yPR@>Jb(G?jiFUsay;R)Keb_ZI56#szPTAzE-}ByEH1My$ zoQ2?LlSuioVc52l1ywx6EiK8V%%BBwtV1rL?|+5gPz)tWR=}Y$P3I5kmfzU8y>(xA z_b(`KzHR0W4; zfsD09Aw8oH2WS6hzek_v=hq+U<;vJ~mpHqwxVWa;`E?R9uS~Mq!w`~3e`07TeFAOt zK5vy$Ku{PHcq;Z4p76&JjiE)aiDQ-lMEM}FDg6v#9_mT^DMbzzp09nm=T|J;B`10> zBkP`IP33x&Y5YEPY_X6f@Jy~x?p}LokhjBEt@)PG8QAVMXgh_!7LzDj_lvC-$@$h$ z3*ZR9`9)&`#*y`>?h=>X@OtAgXtSBz1f8ety6pA1Eq^5iI-E{FB`HH$A~XZm)g>8g zP*xgE*~j@n4Jt})DUB1apHfd!9%8H%vZ7LXc4gIuJ`LUuZfs>CP!u2B)a*pi3q#eL zC}ZGuDT}UPKpXJu8-~{IwE&qXUSXE94};(}SB`v%D@hWNDLo!Xz_L*858lgJU^)rk zgFbw6=%Q)bp4nQAT`4<+T^pUtO?0Hj#@2@Zh2hicijMusi(gP{^O6?<^!H|HTcPql z7CrBr$84)+D(pA{9A_8k!%f6hk^!OV8y4`T<6$MjJjB`36oayreD5ds;QR@kyssYu z+r*d#zdqzybiz5PT*X48feu}??8kN`Dmb2ks6gdyom1;8zn7u*HTIVCEzNbwD2{ zOjnOWkPE0!^N&Yg{8%6E&+e9X36G5}O);2gGA)SSX=C@mlFiicw_Km@sh>{$Z)j!V z58AjO?vnHKIPiCL9I=aqoTz%17NzujQvY~Kj6eMxTZfT0)h}YfJshKvH@t|%YXPNj z-B(y}oNn<5SJP`xHSdz-S;$z3*sP|YAe*L4v7u&0^yN0yIEH@;Ox1-@zh97A#Yv~| ziu7*9;dNsIZCq>v`#vdE8+C?%T*Uzn3R#`pk^M(PVFg?FFCR|KbR+qxf=A9r*&9cR zCl-f`erd~H|Ly)Dz63Z*`OVhDP_jhQs~jcWng8(%F#SQuOi*dm6%*lTJphBd$KNKG za=g(Dy#(o~U(8w^tlp`ff?P6N1;Vx>%VNXpXC1?^ayGChB-X0unSz>ME7!&a;Io<{ zFNX?anb{i02Zcb=v%%?N5XP{E5VOk6fFgevxst_Iuo7a`4)^^a$GiPQ(kWDnEyEiA z+tAN2e~hqJPuPzGG_({}fTh9lW9&K|`*L0rAU6IWys%`E7~Ye44xx*#x{T7A4=2P; z80Ut}g5DL_y-<$h7isD5)5+i(YIkXO?h?M}aP_J-T#mf3do+=7EgYvaqYrF}cfiOp zT#CBH>g9_u^*=^n%Q18Mi zTr-JkTn&%LRLKaChb1A1UeFW$hIMtIG*1hWO&bN$at%NS+NTKP*Dd#a#Rw5Bj`=V} zi3`S6Oz_(VSF+=d^B@Eq(JK`#kH=|aSisuJ)!8t-^p2~1`euXwTE&;-{uc(=L^%?= zSz);gC@~iUm{B30Hs7wdo3~JsmbW1HXwmZhVipBQ7^eOg1qGie;A4sR!)A$gn zQXKmMoP`J;>toc^vN(-l+OdH#Zu>qj1cgGim>v-A6nej-Mb=CD){zc1dUKsa&fYAX zrK%BI`KrSPgZcvQckC}I?U>f8rU6>3HDqUnr&(W&xwHSJqT&c$B^&rnb>ur_N|MvT zbd}%FZ9-Q>|EAEs$X}M>el>l4Sr4ag==2U~2kjI^2__46slu?NwTiGR1%Yqhk@cvF zrV9s>1&_tG_=F^c{Ei8`?yzf4j5K}>7!x}>#jaULHOgi;5GqrVsRo7*0l75$jYIW7pi06)&8InwVICu^{tD)R=qmJGMG)4iPL;KKK zB&=*^wCCDnpG*e5tn-!qtwFQC7^Wa8A+TVUbBHuwS>T#eht~BU9@zdr9wLKeJbp%c z&QdcdOXZ~Di(*6@@ z=1?12`m>2xmB})82xWxI3syH-th~L2*ViUY5OP-0>hG0ZCygSku4?e_aYbz@`|&Mw zmg(ajP~p0H6rSWA*~#N=S}Ptqf1Qlq{)O&Pdw=EelVx}}r`skLkDpG8rdinYG^0ZBI6@=A0PJ1&^R9_OzY?)Au9^Wu2@GORK#u#K5OwX!dHqapyv@G{evjn(% zpO$*3ztb0Gd*Efa>{S@ty_1mc*eE81aP6q+iC^o>n6f4S7oF~)a} zPQvY@miJ_3a?E5kRW$_5lmnEqMMw>01+Mamahg!e!$mdCV?Fp) ziHUA(DtM8NMp9q%WpKm{5vuj|^}%+Dz?ykfBIcguml;`6a1`=Mi2M+i$2n|L*S?^H zxosCdmk7k7#pc~NHW=bqT+ocQr=gZqLH-p!RP?OJI@}7 zRd=5Rh4Pg(ar1^#Kbjpu&cM+g75LDGCM9{^{d^mCZXu%}vAPNt8QdgyV7ol~Et0P9 zkDIit31}PBC+pbnj21HSqA{;mk0VZ;yAb0Ba;xcb@VQx4xR>a|BpNK8!>ZW$hd)NW z1zmpW6|oK=)f=AIv0wf{A5uVpM?^%b*Pa}M-633T0A-z}aIM=28E;F?0bHU2aef!4 z!_2Hed5>D<%mlOXHTI#4OM_ngdOw;(CXvCR>CtCgS>dkPOZFuv#N@4U5@6vA&94B@ z>6M!#u~gcI`hD%eM8wdLVEAWI*YoesnfM8IZ?nd8s%GuwA~p8M9cblg!BIG3)IPR2 zt~$N3;^Z|;gTM3m%fX>~FRJx27UO9s1|r~e(1iOv2i8NC42UH+=X zb`cNz?5r`l?|o(zq@8y>$=-rxQ~g515>q_^hfk4$4I$`eZXe8ZQyNe%eZSFFb(Is%4W2y;O*e(uDg^STdOML1I<-e82u1;M?%_S5*d48Yujkh{Pj|8GFKB~_ zmkz^o-cLKs-p;rDNWk!ISj>mtkF}(>r~6@8tEgqrbl+9j-FjxJkL$+!$6>+!&Te{9 z%ZH5ApC&t_nU}LopPr-x9UtxT0ZN`xJBO8r^`)W)a}dJn7nahN5uo;2WTRR1GE z*yCQ_I?HsZ5Qq5iJ6%Ey>0_qkQ1go*cwDhMy)nep*|CGgxZBu@Ut42rAa}437+I27 z#2hXY6+f4o++FZ5uDCp_&(*Rt7!Ex;q9Z~rCZ?Jb1eWpH?0le`R0(#92Sw|60-7CN^I}a^t)}% zFN)DL3>jOcu*HwHL~5TC4mI%TQ~rAw0)`JrT}x9-e!Ij3sq0x}B*X%>K@2V#LAEZG zlrcmm+WB${hqBb^Ct3e)vkroHSzZwG=cG-!3|r=r`c3^!oR10Poamf= z{kZE<1}-BFF**>cU(dMTNJ9AkFu+(^UV}3!+Py#;;FvWy1fRBWuO8u)?`^-UC%(#J zuVxRT!6r^I@*8&&*R`S@5d+RRjx_kStjda&911tt>~hfL-%87A*_ewP#bK@@CV|cK zzKm6ti9M~ah(3QibKIdj2X-2}w zNxcid=y{9S*l?sv>`b`9>Y{5dS0l`uV_tp)d|%s#XIa}lVw&PI&#$QZy>s^Tz9%1? z~5To{q?}1xvrFGF4&4-95Qk80}{L&1u^;Ai=|sX4$hNE@aRnhDd1#%=k%HX>=;x| zfPN<%%Q}w8PLk>Gi zu;dM^vO2$8B*)&56ANnOt~)?U1C$DLBO8QkDQQQ*-QvA#Rqdk`JXw4y;zU zkW)xu4WlHPT(;A2gvogEe*g|*o47w_M#=P!YJ1h%A=j=CB4#RpQ*TTS{eD5c5t~4_ zp7Jw>wf40`F$jLMcwa2Z7e+_-9SC=T=gd$F89%bFH-h_Ey zy_2f{7_{~yy6*TTq$_;pwW~eJm{6S$OUZF4mRMxh6nvFdRi^k^Gy`KXb`Fc-va*E^ zR%r^s&qI5VUAT>nW=J%(C*%Rz1st8o>mZA1tlVkav-45KC&&JouZZ)Kt`mc|p4`&Q z?@g+rX!1XRBCD>vAY2XRD|-xkN9Gbw+^z(qWp!Giz6Nd+%FCb5O=$Fxiu09r>B{4gS=nR1hE{7YK1ovaoM z#=;%$k|S=gO;wzUXFa8F(yc4UZksvL+=Fx!*~(s4th>urKXES4c06N92HNQq^&jY@ zp5?MJq1qHZ7U?l6YV1e_#M1Q2A5I+Wt+Q=m){N1L(!{lBBcj&CTR3FMr-6ES{Qp?+ zV%A)DAs2$HOk`BF5BR0a_{#%>T-8C|LV-`A=Hw2nid%8`#VO*6y%Ka7%V1PI9Mbqv z5csHXP+8KXvUKEHM6;f0_J243<@>92I%RxK*tR7Z3eoH3<*=o)|5Q+=$&xOGN3xj_ z#Djp_pkDLVS3BgPCC>vjx+XyA6fe|WN3D>BR_xQGCESNFf+ z&4vQXFyfBq2J5S&O@Yprn}_A$=;_(R z`pw+;^4khG>zB*^#@=?gf`7<>?ty|Ex3Kz6rsoo;`qudfuV4$8#|@SvmFbz`Yx_9e zm@-$+E;k=Jl5a5Dnh+Q)w?lRd^OrpFZ*#7`@U$)j%kFPie`0O8y>Sd&Hs*NzsE9Zi zDfs=a{Uk4fl*E6s0QNn_@3GVn6Dukwt-c6i+z_lLQ{vDF>S-;f#!)6NyG8yLN2oqM zP&-&*pRBoBxzX{BX6m3h*u^1%hQCDe^b}s@j(C38TSy|+Qzaxif;nTAJila#% zp~kO_@%zkZQ+okqq8}n$6-b6W1M6zYk7m8{!y=(h5r*Nk4_+C)If`7;8NVTtPtO$% z87U)r7A+70rVC}>GRg(X1n^N)Tx3X=K! zCjq8y`1-tn+YIS08O%H}18ngMWhnQM9my|m@X5@EpxtPqMEK8+cl_X8OFt<= zRk7*FfBf#wK%(Q*ZR2((d*MsljMzJ#{7L@{{#6z z2EW9RBmnHi7VrpiROyQ>SO}r_hQMP8Ki_}2+#UHxrlA|xD3UDga(fpQv|^@=8oN3Z+N%J&yTar%5DQ$59w=k0mQ%i!?)Xz z;%3wKe09EjTOAI+Ggl$U^yZi-)lQ0HavE)SZLOp<)ZRT&q5DY}MetluE}#Id3naMh zBM*W2VhXl=kpo-&$b3m`(2+cTA^xC`By~`@G7N0D?oF4U@3Eo&Mqd`CIZ}pjY?bl> zTogqD)TNwpj1ihRU?LBKbfG2C__&Qw5PA6UaQXD)J(@6OG@a7j%A8Y?Bs^wo_9M4? zcCpz7k;5N@h2z;6-)y+|V-K4+_Upp1=ZSsxUHQ`CJYR`{yaNOuhqdia5b5yT@tfuC z%k9(Um!~hV#=~8pSPa2+T^B`Q;-WPiyAfz6IfJ;46C17()o3#0FOz>@+$&5i9lG*9 z(WasFRKqem*%{6-OOC_(T(yxk)%uYF2TLs`=|t|gv_9jcP3tyd_=oT048;(9tmWOq z<@V9WKLf|-8V8;$ZtAqz>s?RF2-mDF9B`VTiE2A{v<=gn|NQrVYp5M(`qzL#OV3+d zRtZoMw|$Lh7Xnn&74b;mVeC-M2DqVW=G1K$fIavoCY-r9G0luw*_hi2ko1YtZhdJ& z6#7EYcW&;OxgDtDvflt)oGWz0qz-yinEe~>JgY(`i%3#z^H};5&)fWpm!bu?eV+SJ zh5sD|J---_hu?6tZZK`->AC$99(U)0VC^|*1q`~CW*wgE5c#E`j_B9SFNk35 z<>O!(q53ccR(2c6R>)g;?8;qu`T3a(AoY3D8<(nGzk|+_^(Ryq6lBw;KB%AM`2#(N#1WjCeysMFzM6$ttN3r z_NKfI$H{H;F=QRKSNCRv3l_#dbMZSUElP6$;Q!zyfTKUW7$Qt0=puNy(m}&+4eq=JokOZZnjsvTjba0P!tJ;5nk7!KmwCj{)4?t zYdL3=c+#qMJgn(#WPhzAQ>8}?en9R>Sr_$zNYZg?WFV)_b73uR`m15|+RNSLbvDpx zVaHWEEbn4t+q6EToORrC5riL;1;+zCPLUpu^)xbA7E zE*k4SmcCS=R>w80mkwzzXSus4aXa zi9K76ur6XbT9=z)ko+PrY*;aX*UMhuZ)hvpt>X5v($+e$hYcJbgCZ$-+`)@@aX!LF zuauuFBo>lr&yi)OrQ~|Km$@X#`Z+B55bC%d9v4aaw%Be+Y0PvC-OBs+9^WSdMUlrx z`s-2t3)1wLr16dr*hx$g1SVy=m;%mGE*CmvUy`{K=WdZ9h~{$oB9m5X`|DC-JH&!* zG`yMM;)ThCx%eHF7Nt1=@PF_Uz`>usxT1BroaZ>U720e00!u1}(EFNTzQ*T}{{)Z9 zy4`w_#inmYWlzQyNxs3k%hzhSk=L9*l#VPxql1kLu+z9iFAUIC@ zjM_e4({}xG`+WHg{`lcZt@G8w2z3+IYM9_CFV)5o5Sd^l6dTx40-0L`smaBcw1iWP zkXLEb!bDVJE7^qg*};*fkb^YJG!3hEREV5g_~vz=^g#x+tkKfm;`>2hjs6IKtnm5r zaCw41f|1V?Y|p2c9sYnp0t~jXs}(!i%__QM#A6vW(M{#H-mvR|00YoGvz!0?w}0JW zp1aHW%yq`*=uy7z&e1rc(Rj1)-Klf~IkQ2y=}wnz2Fh6DPcs&0IazfwsWu;`<6N9u z21Tj263gXI^si!|tAHzFfz8S4PI2TBTTf6Nd4!Ylp3hFH^n{Lo zCDjG)1npZ8!6e$pQCsVDV%Wg((GcO|udoP$g^x28KiYF-qeE5I&I4JE>nr-^FW^;_gYMi~BzeG)v1<>SeW4w>jdH0?IPeJfv@ z9QqSqltv<1)Tyu*S8aGL&F#rb*`#$it-EL=a=}NQ)^_$S>vC%GF_yQN8~FJIf2e?k z5U7p09~>!o;|%;ufNK>>%;}1oEen^nZo_n?sxzX3DRO1Zb!OoRts75HY-2%0Wdo$* z>K&M($s%R!ln?_>hQbelQxYr9k^`U?eK-I|WPEC-x$_1`BmT7S8m;DF3keEepQMSh z=9-I`NN6qoy4Ck_ahWh|WZqCEkWgVJAF>hK(3XqAI&Y;P9cZ0T?I9nt zWsl1UP)uzx`W z^K2huZLQPKVFSkph~(WL4oE3_dDhE%%q^_P_%1J8m*EFr znErQ{Pt`(*j8|)fuURO`$4c^*ww1SFhFjy*Fhj1^TMmU$V2)VCEdup;aDd79yH!vu z=A#0xh)q^5#t}NA;Kyn#2arNw!Y`>4Sk2T6E|X18fuXgvTn?}Dg&#q#^e5)nIxZZM zvS@1+@U$dfz}e$SR9#-_-aD~WUYT6!yYSN~;PL7NJFrJ6kkH*DR47RW5(m1Qh)(!- z^M1J;QxL%pEFXW%h-@GR4bD~oQB!r+u|3(rL7SAy)?;yP8prqc_=s!AX31{;{y8=_ z_{gL0m#>!>D2P1K3t0J`BB>yPFJ+a&2%N{_1rPYazak-}g6N7EwdM+c18IO&WPZDx0tqSv{-SM>UxH+W0o8;HuxL|@#bwT86cY$o~-5YZd=AYN!t8E?GW_|qV zVF3g`^InRM-i{fCW1?Vx;L{Q8cX*rj&)!;gKmxqpDr`L|!H47zXfTuHSM}5@KM+J0nRFgleaw&#sS~zG;(>c2K+8NYa_h?n8+xC}x9~m@DTu&bBCvD4xOa=-g$>m4s>L*qh{*VtG+qm2A5AL* zP=QIZnIrnzeC21|ynW(#*j$kh-6Ja!YE1wGCS6=X1H5n&48t11e6S5lvEhp>;={f( z1a6N-8VF0aM`!X z^0|SPA(TECT8JRJZWGq&>N-=?>$R7AAnPo0iB33?Vaqh@gy)v;2tgX}2Ep|h-xKob zyY~)8f8;77?}Iy}d7q0E_70*zaum6;;J%5qC?3Vp-8uBvMa|ECn#qi|qq9qWw^V{G%2 zK%;Ci4WBKuQJo!=gMxM@xmSUNPVPH%*a|zgAR^hekK49Ze5e)-`tJS^o8bsz*wtoJ zb(hU?p#A!8kJaOPRExA)z z@pr0##qAem#Nhg`q62Ao#Dou@9w@9R@|Jvvumdkp)6$~CD<_ji>oZ|>b@8&kCQDvR zg-?2slee(8;j$a$z#z@M`ojc}@f{(zaL3fcQHPFL&WoP$Y*7BFY|TfbfZg2(H_%OedKoYGy|YuZ3Va+6t4jnZ$j= zNkb*pQ(AZK70)<{3SDWf-g06RrI8R#Y8$EuG8n@|2oa^Kl!ygs>S}>i{3yGO9?6z$HO=`7mZQ1>HWT+gdJw(96%m3((ssEqQBO zx3rb%x@B?#-Q4k*K95Zpp}9RAN$7f!N3tBnUVT4@KP>$I{EaS%Ji}l16$O#vy&`-; z1LsrRKV@De8qc8lKMVuwaXid26n1JO8y&PafG^J-dH<$wwNof5^_uJ$6nJbv!2g*h z4Tz#2ytopC0A$*>a`6RqbTI~tAi$(z$lc}h1FUI-7hoi6R~vIgv|+l;e}LY|2)v8Q z;kuo?Zgk#H=M+J%*OT2NPY7ULSWeFtU*PTAzd>Q-F%(AV4wFpQ$V#Av6=}3kqWE$*6s9W+Wf(A|?t6Es^(5|`k$hv6*kfpLqYcD&L^;hIx zt7S;@Pr4%niykV^V-0~5qkF{yJhOlzNx5@8v7Z%+&^O)d& zF@X~TbZb)#?1zQ_J*#{d*XzCL}0VhI10C>BNVeIj(1NPL$FtU|DJ@*N|1 z0RtBvlnKojHE69u8Ecs!T8}^g6mpGu+jMz8$@@2bs~tf}VLSVF>iB4mX~mG3KStD_szQT)&~Ie~aDsRjpL2HfT3JaEWZhjL z*UH-NsJmt{$$4^9D;pCk5)gG<8>&lv$^xMh9-@b$=b^Lq!YPqSs&M32%OU&u?RwcV7Gpa zJYwY1cvz}8HlA;C3GPDe`a(%>M4M+1N1k_c-*(*A_GIs1Ryw`;kH6`6h^+MD8;04>BCAQ7YUmK zat)OM6RrcykY!*`|8xSSN05|4ZL*|htntB&5gCsared(tTMAO~n*fQjP|GFM*{J>_ zuyxF>?Ui?Ow#rw3H==uW${1xXvBJ0O=gkUlE?>U#%L1R&-6Yet?TT^3f(YIra=oLl zjEr}F;OAke0D=~!FO+WijL!XAVjXY0ZoKxG-)8oGU9V1x6b6SV+}G{mtNU@|^n%|#e`L>72}zev4@V#tSwhs%fO6uC&<6D-0P0iM?% zvez~O@9N+l=S#F;Z#bNIKGSthS1lb6-X*OJF=~@%J{XlbHo|)Rls>G4I4g?&g;-D%tj7-m+1G-{pk6>pda<>5 z;H)6xgji5B%zzS;DDl>4n_yb*8paE%rti|0;e$q{o1G=2M<1S4%}$9OPVw87TZlK( zjV`|<4&OSqzTZoMX_8}DbQZ4dst8i%a28QUJHD{1rn z7Sh-&Z7hJ`=fll?$NNC`%7Ri@{k2P0yEv8YxRY}jLA-0^w->yFl z3({v4K_tf`MoePmZ8LV*S8|&X-n^p(_6@wlr1hB)vgLkI*Bl+=s|(o$GHy39iv^KY z`K&UMerz)KrQUssfWDQ57FG@d`sWSz%bq zVT!zU?6d=v$6*`a)@FGqR*`KNxwdNPD|~6@vC8BKt}kelkv~oEc@1!@hs18v2Gma&V_SFX@FC&}Ze%!7-H${K~DIVdk^S{45UcSMP6h@?_ zwI5DmvD@kVfN9Joog47L@cFJCBu_>?0a&micAqaG2_pGOYe!b3$F$Yh2mF$Qg%Y`o1kYR7KYDBSSXD=*8i*{$ z&8q%pDQ^CK%^f0}J2K{A5xodl99zhEQDh7>gWVgxoFJcTzD>|G#%zxlb`Uw$&N zXZAuDK-LvMbZRp*!;5R$_j{w~bbj7^IcNOm^lDBnzL)c7=;u90Ili=plt{b0eGH8bH3z0{4$eke%@VJf-H*je)Y>VZ=iU}=4k3`H& zEAGHYcHl~}-a}uz_w6ffg9E~v%{+Ll;JXcQj(CK>%!WGptNWO~&&Ynd!!jveVN3Zn zBwudf(lZ=G|NZS(c-Pb&(dL{0k1zU<=K?%9wHEUio%AK=8AIO!nbhj_)VkD#57B6u z(7MfOCa64>ZeQh#V#)`B73a&(!lER24S&??(1w7EoFA*)1rSk{U zH$Zh&(xhK}>X{^T1p|OO#%e4V{JFxGPn`!F_w++sA?=2Z!bs$1#J9CI=V)45mJ$ll z{#s>ZUD7^iMU%PtN6(zKuOqJpq@l9oN5F10*;dh2g$?m7j!2T*S)z)67wO}>2L z_mK>k7f`PtBA_)r!ve^|r!9AXNc6m2lTGf!@@wXL>*2L>^T$#~V$QrO-p1SgdN!WR zdW*Nwi=O^(?I{*TzCuyt86KbY1TR~sLI~X~(RY|k4Z`3-!@%GJ82%4!u%b5Lkd8kHL0&y3>;CTY za0in6i0S|UKmbWZK~&E!hl2j{hXOCd_C)NR!s1T4XXg&^{Vw|V);qa=Kj|77b&O#V z|Kmn1~pKs5P@YmQ+AbPochjrr-_%nUF`r4cDRA=p=9V=zq!H!xz3}0@zK=LcR zcLdKD< zRxekM^GdUnN#?+^mPx#HX(}Js273L5~cyHtCFS?-b71iBW5Nj zOH3(2gF;#eQjCVmdIDe@n|x}@*hD508tT$j^l2Te|~e3`;B8O&pGpOD}vQsr16nQ3SUV;=%)D?~Mi)$UE^(u14GZa8O`;J2ibx}+ zeXtR)Euat|ND&TY@dx}69f~3Fh(&y72tK~!o-K8zfsVl(-HxIo!@lMnY-tm`)xJ@` z-fHKTHtKqP?}&YZ_Zs}^1K;h8?>L}OFy^N2={pof9;rxjfg%ae2Np@{Sq+TY6ek1m z0<>dQ9Ctd=Vrf{Opq~D81CJ|$^9FhUh!jRJ4Jmx&t=8o<^Yo2h?GGfF=SXW{!wT0! z{n5P8UaMtDV*%s=@0kMn6Hw@NkGnv0u1M$o&Gmcp6knaI?Hw=oKfC|BQ1S$S1ho9< zt=SpmJvPDJFIHd^UgxI(n5Dx%9}M1=OZ zQ{aAbD2INx!^k=7+Tc+=2$xPJvqXt*?OB5HWSHprJVZx+9T4hIc20OeAJ4MK=UugV zae?F;fqL#BSt^L2BZ+_okX!i6TxwUn`y_owx_j$0lxhCO-BnXh{y zrTw-K{R4H(2z2a=VG-y+rj+lYDDwQ3E^Kg7L>`-!TDj1H`ykP<=<@!^E&Wb`I`YZ{ z(;*Ci4WFW0O6}xbcx!!Cj>lY$d?Z8RB4!tm)C8JzK+}Jgp-3*opn~Vw;0qW+VJkL7 zBOheg(&Ib$0uH{=_4ECQ%iT-z&ne|ROQ(My6vpKJ+IAw7`~vgl`UV|(bA4LahC8cU z!^uSuz7quL^y!_eWpnva_9&G2ky7T1)Mf{Z5t@L`k!||eTe)_Kq(B1q5XJY8@Z&e3 z*SP-E4`$C1ke839TQbp&wrL$@OU(;iYtaJll)}3|;4L7uz8+Eh$orT^E7u&r zOe@5Z@u^S}Uf>S*PQxA4>29c2j&DhK^Kb4QA}cq;g4u$4Y+R!=CL%lL#h|M`stPt= zP@5RD8FRkvFh*1fPM8L;t_m7x>X;PN#biQeGhuQODMBp62ybDQ%M;JEF6lwehv@V*}bv6zI^?a{CWkFT0tb<{qd0>Hz0gxf|Fol{hSmu zT(q0z?V5hBGk!}wo;Rm2MPmIqN1-qGH-Q?S?8_}yN}Q3Qq6oiJMD7&PcZn2ti@>kP zxG&0u47%8XZuKwDnwF5BOmumR0o2EGN^xZ}jc=fmAY`V`h*_D|<8W(a!Wt(t}7_Uf4+x@WWirS@+Sn_W9)Wxy_l|aZxQ&40B^2O(4jZi zr*rO4`7mSQ|Yuh&g1dfdV~imm+Nz%_~= zDQoAr)XF_+*&chw= zOqZ5=gMGo1rofQM?)eLtoG??^f863we$cKHwuO#1-2# zmVrtFl~r~I4ijX8F-70;TpBnQghuetid?mPQ3rM5hhClzg%IR{#z$n`KipqF-@s!% zx(8dOzeG|lOQ4rOs(oz_aR?CpCeWcKVdZBd-rH-&Z!XqS~VXX{*{C}6-1aPhK(fv9+hm)OW9o~OE z_<`2Pv+RpcPjC-O_~Vk7@G7>an`{Sie7z=-Ul0jfWcLjN0rbFc9XK~%S6D{sgq4Q5 zWXX}N%DG*IFW{K~eg&vlCNUuzFkcm?=5I9S9Cl*u6)}#rMmJY;)5Ub5s8&X2k#v!D^&9vEl+hv)Ikxq11{mL1>!>+FLw#_jmA8qIpzd^j4o1AqR} z>*&N&C|>+JIpt_*yCf=d(dJb1h_1plH_{;IPqir5PmG!(F-@{r)g4%M9~ zS284P@(dPP<1|XkqDxXup~`(6B&9IMD#jR#6iSOE&zCGEZ2$;uTCgU3@FPVK6bem+ z5a98hR9Fo8`0(NKL4IS8u~!l)`IQbfnCbm!gPT*CzUn?X$vdJ`jrTiB2Hyknmrs93 zJ(eQKs_v_~w!V2~z7G*HV5UuJ0FI%V0U%I9cay+hVIz0O7r3X6V1{KMwEisgX|h!N z6^@OU7v5o_Klr|qo{!wwkz@0MN3IvXFN&b|X%EdI+ZNcPL*rM5@EkdC7FY<;MG#8a zN$>?;D}$f6P#n4W*MI(Jr;FUdt>5I>+40u+ttMGjlu-ttr7=p@Iv6;qE})r!*-V&a zOWFp+R|TnUGS8Ncej*|IBuJF#RI8MVQ~)8ZHgb^=oZr@AK~n)##C{M@3J$Cf%Xuav zven*J8xCZ*_E_l-u{}V~)Z`D<_Sj3^?8(jbp$zxW5;9l_vY-xK@JHF}A6*>r6uZm% zbKE_ZBEXq*E0Wz=aNJm2Z(rOpgvX7~mMqa$O=VkMUCsXWjCL5Jz6twk<2fTRU2u0C zJ;N_{-=4o;@J=`>h{$8Jp5fWbxIf}AiSY*)Kl+a{aELnbt7(+wyuy)M_|cXEj~Wf) zJ106buC(K82_FgU%F=gWIKzD+KBFN|XPLQ<+a=CE}2?^9ZZ?Zu~=`v$x zGa;LVb)(dwgo`APh`ef%MD>hvIrCRJl2^#KvNoS0w=f)M$mOscD%%5x;; zXCAXF;kh>Q?$VtJnazaJL%8T(S65O217)K~<=K*iDS%dBIc1+IGByA!QeUi`Te5@) zNvSY~3u=Qc7-h_)5)|NVg8e*i%WIzXhJ#ThvHqCukH7b}=<7qsSEa2;H6oM9it~!N z5p;R+X}|BVrc%HRcD~^v!t(C$$uAeDZ60 z++`n|oMW>CuRy6U*Gszi2(2$qUoVeO@LEay!Cw&Jhl(J0=LqbaML`5*=pb*kOacf- zc-?{yKZk54j5TQ|GvgSiUo8b8|A*c&fI|mN$b&e-2_7VUE+ljL#-h7@0kxX}VQegx>1#aQnGOVaJ+R>EXOQj@Tw;KePPXY-J1v z#nWQcM+~ojT=#SJ1UkC^8glID#x9V3#^(C_<(k3TXDrravSd@vZ%YBB&f(lhi!0#UeEZ6XT90Z7v-2VjBQc_9T}lnzy%M%gN*(ohJT0$ z8t(?df{4609g89O`Q!a(cwb28NW~n;bf2%zRQ3sefY;OZZ$n}mOb;0GcO3$YAfN6( zTt44_yzreMGJoK(ggHcy5Q%yZblC9Dwzr~;Gb}SkB)RA{KxCoiRRfsJFv@d0;Vd}k z(j&LD&UCML@AGsK9;39Vq2<9SO^DGE`&|TFQlF z!o(&@dm*W>B3P*k5~Wb2c5UeN%LcAN{JfO3n)Q{HuF4YOg@H84A?N0 z5z5k?$lB-=9ZzvJ|L7Z7+ngTE&&LUJ=sv*XQR!DE&R8$?FFTP-siy_!z{er&u`WEWNS&bGwwi=`5 zLZk2SNt8&AY2$uWnHb~mMhTeCkH991fnpayhB{JWt7U;FJ=3>vR|sP6;1O9^4Ec2T zaJlb&Ur0(|&VXHOL(Iv(-^(fbxkC~=xa=R)AIPNC3T>ZfG`;w?IHnygh^D?2f}C!W0C6g#43<;>>N>MXA#6%QHF1`-KG&3iNbMR zQ$VK+j*q?15w~I;Q)9VLPAWi2W+C~cyoBv5fu$qMBgV_*85?11iE7*~hw@8I7x+NX z@ki6P&b_vLxAk`1di(fX=eQp4X=$;&@1@WAl5O+I{Cvpcl*w|6lbt%)cFTLt>)3zV zJ@K`=0D_2C5hVBU{qE)R+cP{u3yUJ~NP%a%TLd4S1&`5^f(Y!?R2ab)9CQ^%Fi^mo zn4Zi46a!fOv7FY7(Z!yyFe%3UM;XT72S_HIoCkoA{<8t!1%f%EKKvjjG(92<3Lvq) zy?nU8zkIxXpsR)KrL&K{;8}y&nbv7whxhxyfCq*;&Gvj{iAWLTPam-e@`2|7>O-14 z=n#f4ki^~*o!B5R1QDNz#!dk$)|QwkQFCyVk#l8f6iS|w@Ye#+$BTu=hmtEF1W8{} zV@-hz0xXhz4|kC0$8SZ$6A(7{gA!8Pv?tojUz$!VXdPW$dN0 z@6k0jnRxl3Y~LK+sGT7@rUcjh93dy^j&YWM#;y+U`f-I2LhY3LmzCAQcQaIp?iOPY z$FDW-J;oyUxo&K(dpzfTSi`UD_nJs+Y}~nOjiXsMX6`b~tO#$$kH2U6(zA6Miy(Lh z2!2KiAhmvcy?MI)^7uOxM4%V~j~bw#P!uum6~P@IesIsC!idvi4ACKtpPXkYDYl;t zwGP6S6Cm#e@SW`raos0*;0P9g5RWNnQBLs#jT+QvKU4^z_l4lyA(zXa@Gr)nZZA(T zGWdg^@0aI16_Wq>YK*|H)8DSn8=X?B6QrQB`9W4j;Opbp%in+eyUU+G{DB^eg);=r z5jYQkja-Kz4yOp#a!WvT90{5uI8>4`U;9owia%8*y?9`pBPRgJgUTWjXXC`Ohqw>+ zjvNqCn%sqON)SAGd0JH9ph4>K1Vs{?UmB8KD7zuLLmZl8cUEz?8?e|9I&F+rZX@a0 zv^>P&%J%3yum~b|G9UF=td&D!%=RmeEUX8hzWEpL4w1%|D^;b$^e$%te9$WQvI{Q@ zZ_Bwmq?s_WiPAnv>Z>A*)dA#S9Z|HEa|1bXND80AUo!lURag!z3PJKxs!9o=GjYZy zhn-Z@o|H{QHOe}xs=G-FK8p6tZR1+x^z#Zw{>G5?;gz_bN~MGc=_e&ce*>IRTQBD2OJEz3rev=S`dT_SR5tFC1|D>F}2|UJ9^jV zEezkzrj`qpl4m>*Ab2nc7dP>0B}qb?3L+p!Jj&^ZAC0Bo74jM0A@FxE@K@s!$Z5ZY z!U){I6N@Dd?EQ&`c9_xJX^SL;gzXwZ zJ*cb;5vlB%RDv)BDTSm<6oLW=jh3fE$qU_8g8Yn+jxobu(?{xj6IN3mnrkfyM}DTf zrsT45JIN4D$wi!PXphcg@4G>8C=TmWc(hjkdq;XFeYHWA$<4p~<3AOBD+Ht62M47O zmB2~Jd?EGHQe&0WnJ}@5N?<(6*PKr?BmgUTR~&^*MAi>OCkZ8{l%Tnh8pe0dkOt6E zIU?VALt6FGGw=<+qN@5Az~*+Jqb1LK(mGS=?LK{|1WV!_!%o_LQm)e|?sTy|)mSKU zIO?cvyZ|yB=_rHzNH{9)9&z4MU$%}<$5;TQ1GP1g1MSb(n_?as8jaD}#&JHuh2!=8 zi3Y|o?uC(%;VJ~8nA&0i1lJvG??#XCjVXSI8&96#g|)vt!i(48rR(zeEWT3&F2%z* zVv$3B@V6m4Mo<<;Ar?WD3{_FCM=QfKFF^zc z-`Mg+O`w4x8s+eF8`>M#uD9@>kUO|DOJ-K^=~b=2T~A;lcPfY>GR)T{^9dKkmS!l{rv@bJlb*IkfWYSo&oeX83h>2 z!*!|ZK9dxQ0tdvTxjXtLBFybZXsmhe&pHc;I&xCEIhj3Fa+R;Y( z$UNRu5u`Ehc=yN)Oy+TZYhV{uvM4Cv%|FM2$l&G!_@IRfdmU0QqO}a1F_LvRnj}o3 zq7n#>qa`KHzZM|4)QQAZkuYfzC042pN{g|aLK8{aHYA$FK17Kk8a^5-Z-KKvJv3A?I;^K+wiXw-C^x8F#{h^3^gRiq~ z_UqMK>(82zYK(!Saztx_p1|h%Jz4(UrFRBdIh;GYUzyc;%&ss##a>B*Lb_>;*iYgUWf9%nfCDUy{PF}v5qiG}6h`7B3h>f9{DW;FMG;x6^ESVrC3?v>=S7~| zMfnZ{4N2vsDE+lI{wf2=Fn);+X9{31e$W+iu@HhZydQ*$A^2!4_`yQR9lR&xkMJ_( zkMMY`HJ^}5VTzC0!YzcK{fZ<99f${oDF*Rcg7?|2U==T{xmqK1 zVuRk1CYiElQVB3GN)Es9lXQs+au8S<8IX-Gj(qDZl!*0kYX^DQJU8(Bl%uZ0pDnl5 z`AptsxHVSivcsl4GMD#K2=O-4SGZgI{(&Eh>*=eq#=-yvk$-G%za947YM!$d`2y+r zcgH3ZCN@#p7st_(k`BKP#9tUngrlNxHm2n=FG|Uz5@b+edve#AxgK4iMBugqVhtJ` z`%)ei*)SVarNd&X`{Z^opPBG0BymW{Z9)2ug?u}V?HwaAdgflnsD1}hN%Dl7e9JD* zVNDNbQI2hwvt-?u$6M~((g>)&E3#$P32V7Hk?yG8@J!G%2kkaEt;uM&peJz*8byM3X;$TQq6@+9vUffkDy`41XMkt1)lE~k;F z5Bd~(sqH;@JGT{eJ;TyDff^IxrN!SJ&_sA_u@GW@s2Boeu22ZMy}N_ELOxtRKHtGz zA?S_M_nZO4iDQp<)?eYpECRPNxj#8uOG3~T6&uj?+~dKL_B=0bAS26pDus- ziHjqD{^=hg&3HNL+a8k^sK6u{dScE_t=XJRrq-%vr~AS_lbxXgV`P#|5|YHQD6z>> zNX7)DZNw|#@GF@o&xs-gV?k);Nry!ed~rK|bisrKJzpt_9&|UR%(vV05a1c}8_H>? z?Iwdil#3Yc)EFEVU_nIPF`{3*jv=H_BD93n z7q2u;dN@FvyULPYf;8GVK9v&}(q}qzmq^gjxdVWy@DYA#GDQ%;(POc&4TX@8cTfbm zyT5#bLdZ2fvF{!NdTf_6{_7w940n-m zk>szcU?O%Lql}c!g_15(K^b{+7Ut$C%;sv4XOfTtNTUsk6hk&v7PXZeB02%JM^sY? zFPA8bwvvq!uz64zS1Sw;aI!3zu{`ggbTz-E-y7VL-XSDlzpOIl4jycXIdFdXv zowpx$r#qKPeP42OR6ctbLXPUk(s+7$T?i5VNI@h!Wfd1id-G5KSNjf;!r~-?)WQ5T z)+ShJ3xQl~aTMqZ#1%~l#9I1p1FfIb0h6%nq7Zgostk68d5qYhsY9ZdoLFI!yD0cQ zd=^0l1jppF?-X^w+GY278sB~U)Vm2QhhK+zd&{r)+YVjZR<0a|IGu8~{fZX1O6RO1 zCMRy&+vvoJ52W^n`xv_xiGgt`p>w>HeqXc1oi~o^&^eZXqk4P3-{AJ@c{tG0@s=nr zT4JlKcgJ@bi~H z{KMt1KQYZQ;adfdGVvJI2^1-qpYaoUpomTak+3(A`@g5*8o`hV3~Z7oK%|QJXjJA9 zWx*$*lH(|4zrnk0$gcoN74)|Eg1{C4{9g+LZAak|-p_@1k>Cd}g!a6fBseOXm{y@V zkKn91F6QOzGkcEeVm^BY&wL-1%X=?^(4A%QNLsujB>(glM4VID+*RaXML{HWsD0{L zXbS=NyL#a-;45Zf&{&&tiep(2(a!=n;>3dyBqmV;RBfirSOAt1WliKlnmN4Smm?G= z-GV)RcPG&R_UAW$Dm{2z%0{8DKmFsAxu49g-^c4cSnqSJbG7a4$vxRvwAYHRZ>QJV zBR}sq(9dcYstSK77Nm2%Ed)EE`l@q5-|{eJ)Oz~4%Upe6AEyk|Y$whE=AC0>0R%3C z!;8@I+cBD*SJR&#-7M*BXc-6i(a49NTXeWl4hyC5sAY{Q#XKO|ocfJW6DaLYM?h zl)$`xagI4Q6-i#2kKD@bB+}X1v*y{%tK129AJ%3*yGJhr9Fb2vPkhEdsF@#ezQ=N$ zwn)6YK|Fs;1(EFZ)pJqEPFE1IooJs%8m(bcKfPbfNUQLQOokcA=9R$$%YNXy?lAKT ztic+_s`8K)n)!8qL6iQ8vRzbXFmbh*1gMDQ-_QOZi`6t#SI*?t^2{En4b- zx1*K7p5wQ4-OhTQ&oau0#M@6i8TzcrN8-IcYS^==Zf-2W@fe*b_25!~FIZ9U*}Gt|v#v)6SFj>=`vyFrfX z!@3dXJHfu;ondr$SU5RcaMmh_IH$1--dKIrf{0Ce`IOKg3?qGQoL(!uBE=9|B?VG( z3R9Bu%R#A065}f}kw`$GT&XK$vqq1NUt)rvhP%?HA(`c;5yGgBj>o|Vr;EKl6 zG>K5JuCwj%m-EpLSTs|M;iNUqAmD%M%7hd=PPy7|jPMPWEIUdGQzpHiE1PDQK{d zc+?~&P5%KG4T0zXQNl!smt06j2}gDc02=0k%r;Sr4x$wikxOy}iMOOCDSz4V5JQCG zBet$xBym$#*=u9^u4KO!G4f;@#gLFTRSN8~$flFkytzm z%VY7=$B&m!A3qdnsMFR$wgXQ$S<9gX@ z9%6p{Y(mP|d6}QzlfVD@(yR8Sl9Ijy1oK;d3|7TarE_EGij&Ra zpa`;dgea=bF>r;@EK70j3ZupyC;2zYP)@EzzGS9W1_OXlk z=^bdFP(xm0UPD&>>C7TB60WwqulB1_b|ibft*=MW>M{fgmZgg+R=bB2l7iv>7;K z8;1R=J$&{@FOg+FmFb}(E27RcMh}=1X7skK6 zz&#}RB6b*O{6QK&!p943s1GiptilJe+fc6AiHR-U)*I zwjzj|rV^&nO_Wllw^f#N}eqX=sSJIwS~=$=ip!=zM!&zDq8p@H8xl3P%aZ01Ue>(kZj$6doS&>!=LRRsEN#~lC3eL2oKplzgEp4)v{gPOFi0&G zL2`GTaXs(6Ad;QJ=I*-qO$8B~Kt1t16GB$uNs*}Fp%Ab|8R&@#MKI?vas*=5L%B+t%kEj2-*3qw8`^4-Hm^KZE2X$6-EC)Q4te z!Yj?{dAuJ@I!Y3CNbeWINfG2`;U$mvp)hg-cL?AG^Zw650u@K=tSZii#r@Iyk(|WS z?F&3w3orIOLxJRp-ajJg<%JO`hDa+oyz;elC{kY835pavbSpIa#_jsy1|EL}kHW$` zKyKg>Y4T2x82fO-jqO0T7o@gY=9F_bQIV%pjac&1+6nggs*6< ziYF{f8Z@)M$&a{+z#KznXe>x-jdx%?Edog%l}to7dW4vz5PKOBL;ye3mEQTKx0`i;y&jf|GyQ%9>Fp=EEa%ad_Tc?@ zV@dNw?NNK*UR|D)|0Fl-dwKN))~CM4@;(WZ~x- z3X)HE?DFZh@8zS6p7i}=zTZBOKgQ6E;oC2WEN^grFUenMT=0=wfBF2UI7Vy@-~1os z$seENMFiV~6F-H@eh;*z0dK9q820>8d5dHgHzXLe3PgTvFQ1uVBg4SB5mn7m*QheF8H z6FvrYeZ=*adyMJWnbVdch|Zp)`muK}h}iRFKM9>|PFs7eEqxh@VYD67MU}|GJEGtS zG?_AE%YY~$P!ZY3Drxi`38l;v(JG)_lMEBt2DqV$=Cg^#nDOY2#OxFX{4M9;^(R}4 z2I3t9^>Q|m7Xb#nnmH&;<&Kc`(d+Y9-%xC|Uy9=Gf4QvS#p&`cFUU90uHOf)-}x1} zuQ1uapQlV}d$&(`9Pu%~b7DKY-@akqng>39rXEF|&Zr22zsSLkRTe^OS%*XE{ z>G$nrx6Rt~*drT{I&Q&vNTEcs!V6rFH*m2WS~_fN$8HFSMGyRU_X6KQ^L2Js7R3(< z656huyFi)aUD$RaZS5`zxlZK*01ZzDY|ZDIa-annvP3FA zLP}53JHrW?qd1NNNC+tbfU2Rb=OfXqu}G;kUolQ;fD*c!=Tp+K$Do?G&DQP)|u@>r|u&!it2av3&Q+Xv5XIruWd^E)QX?*bXK zhGh$jBDXhi7tw^fMt-aTqr=bmtBu>$0zvlEwc}kK6jIS0o81itHzO zV{s-0VM5@kZ{T91v_M9E+^*0*>m6@B;eX4wo!8P>0WpW$RMXc%4vn{!;F2-hY869 zGC!_7A~!;Mnjm?!W7V-G8ft>vo$gnhF-7-a`c7<@hDiR$LLHneoRQ?kR+SW#ni@#N z)K7+1IboAvX)qiaCDLrtj}bEeLfwHUEHrD>uSN+*09wTzJ{yM(O_0^Nf>h#R!heDl z+dUsnQ;nOH`fIilECpi0X*0)D{@Pa0eTglfp`|SHhc(=y1wuKNG-u(|9l?^PxGh!n zi1{YsO|Xs_c{-*82Y-m;zZ^vB{7u(+0=FE>1P2$0u?pyONRJAL&59ahZX-lv>rs1v z?XyVQF?B3@GzUdvmPg|r$1Ted^-24p=+jO_vKSzNS!A_2Y}1Mz^~?f^t;?LQM`~R@ z1IoqBNms4gs^GbdcH{r_?jNVShr8YU&v!hw|HiB+`v3XQe{*U4>p%V3(FW7rR1&^@ zcg}*J{6W`=0L6?1LrMu&2#r_JP%J<2e2Icif-(C=Ja101AkV%+|6bKnu!(qJ>v)Es zk>fEqdW)G+3<#D-U@%f@S-?Hvl0go!J#u_=VrxU`X@ayN9%A=)1+hgVL&k)H2`2eJ2N#|`@%VRjo5v-%PT5Ly}sSFAt(hGvD>ML|V z2w=RxQ0=Jgnt_YPVL$%Hl+N6;T zHvt!D_o4S`2d=t?b|J+sn-!E(pC*lNwyRYxpe-(Q%d@N^R26dh=lRni6(9{1D<4W# zQa^{&5F>V`1u`pe4hs%LeI)vuGUDh)KUmE91vIiztG1c!Z&bFbHEIx#4<1!=#~R`tJe( z-?||~Z7G{0W}T81A4ep^Kw3u`O7|U)#nx#RsOOp>f!e->S=oEK5h9%~xL1)d7212b zI^`N73^DTE^6D>t`g62j+kkv%E&wEAHjCAk)P%Aim7*9FRWd;rZ3K3f1b{Y-HZAtk zr_ENpjdmFenzqY)3l}O3H4sYcko`Gq8{hJ*`!cL*R~7mro(k!}9MO2*)#J`w8mfl9 zcB4%YpRo_AbhP>#EVy|Q13^arn#JKc!uwjATFWKXEmgg>GpgXLkkp`J_{_y?9Vjc5 zRi0}rz~>=tjpmlB5v@@zAN+{Kp5;&WG^!`o`#BU=`S?wcFye4ruMt|*AG6hl6M8R= z=OgC4&G9q`B^P50e^~^}tXtv}IwQ{P5+37C5aGXzY!8;!8#%#xBfDJCyRuqMIhlHr zxmpMpV5-2=Xo!p-JL8sfjv(J8`EvRZ)+NE2Boq_8)Bo0y<(iG9IRv;NCJr&eW`UH_ zy|dIt8_-ZJf$#Vd1xNnav$Z1;H|Wy;Mwi~m-k}&G_Un8(#iX@k2B?Ow zOht^$r^bj~z#Z2pnbagljj~OD!vtwWrdyo=JO~zh+`0l&tky$z0*6&bPfBo~HD@PH#*REO}u$6dd46)L%tZued zl|m3zTjeP+0D#3930TQm8(;dW(Jq$k(U29?pjVRXcwGD|dD{oJEvuqdQ8=E}6j%r1 z2osPVEr@XdsBlS126EM5Fc6ONsg8IU@Ho{J5%*IDgLR#eLY_NtzUIOPX!&a9B>}{& zVdOAk%<^>JINKZ;(`po+L(_mOKx2L<7Iz|4CDj43KeswAy#s#MHt~7XJdNgg{*91Q zW$N{lvq)aPd==c#*X>K*OS1KlrPq00<{`=WTIo67=b*I49O%LI5*r}+8k-3c;H@%D zSLoAAy4XL>=7{|uJM`z-Dm(kEK+n4&vi#s$j;SbU>HyW6C|0Yo2`l}7R4~ruZ9B}B{s)F2Vdxqz+wUfzgNN6}t&IX7Y zFkwg>%~vClm*N9#Z=)o%_mLfgs>fH?h%#w3`CNGPl<*|KA94LbmVEma)^%b8ab+{S_!0Rn{$}q8?2dt89&Hg)lJidpsciNd{JG> zu|(>~=rE}qLP_}jnDxqMHL`+b*(`=t0BT?Yi#h%Aj_l(e8`7;un%Brn(%I?*+>L-> znr{TfeUrMGWIcng25FBY+?8O1Q2J`uryaOT4U2$9VG8Z(@wPb#rqoTID^mbFK+3*1 zD&j_NI?B?h8lPu9*Y8FrE2+h?mmKxx^|YHHrAnc!URyVd1RfiN4HN&ewsi<^(m|~R zD7W1kdnyHDWmZ>d0#A*N0dO2HGH77l9Y3%F z11BP<9@h#&4Z`zQ5d{p-qd3&q3_?_LZn#RBu>=!HKT1*Lla;)NO%Mb)djuOLsPph; z-fR-~FmoHn&**sxYed@tlS>l>juALk?myul9xJUgLZa#eW0gCul%vxhe)u8D?_q}D zub?6F7k3DS!Zu)E07LmlC|O&WqK+BZj`6(h`uq4j5tlpD8amZDDsQh}&gl_WP1 zaR@S}y%)dXklP@%dUcZ;N#>kz7ePB?N2s9ET%}SS^zOGFebOyQnU==f9>1KlzY(Mp zhfg2RhkGA8U>Qu|0b0gQ*PUnN_`It+9J^9?@^mh3B>gDUx8~EFM*NX<{97QyX z#JR}WW!TQFgO~`F@VXBAI;e^8Bi3Bc-Dq$!9e)-`RJ36RHb*|me&Oy{lOUD7FK$6N zm*IE?&a)x1`~X~zFkbVSmVfvT7H@|?eEr@$a_e{Q7k$dnzPp4)vjA?A9UJW3$THm+ zWrioU(IaRm77e_rL_mGSQ3eU0M$70r$^#m{M<7Z=S{@@<iN#WHhSBAccsl6 zM>85Cp{uLE{lzy#LSa1CiJFmS#U>d}(X3;S6mc@XTiI)3x5j{a`8XzA6?y_m>ADbz z$j6#8J~pr8Fr1i3TLmMnh%qrFfEt2VMrz=KOLLvLO7!ld9(}Kyji6?DNj zD#y;`xzz}=o?0B`0Oo+EOYLpWY1Cx;5x)Frb(dM?S%XPDx~ab-%AP_U7+HqqTN%NacbrY~V1E#Q{PGAh1nfdsLT4#SF~pHnaR*FFn3pDqo(&=! zA+l~g-#ero(c9e3Y}gPMN%Io`gUg0a%3Sp$Fb zLn?mkZ>gBa|N6y`J*+y5)xhiYQj=hW+s2{@i(b-sa6~IYw?QlLetPqFpvq-2{9*tV zjvcgt@;Q`3*oD^?_Aa4q=d|q{Y`qSz6L(vTExvp52pb|P{NH@_oniAVl9bN#=EeI? z&LVk*Ymt~&tk+bx0kZ*m)uUa87i4UThD{J` zfZ*%)!T+n_uU@}CZPpMuT2W0kE^n(;AUI%udi#&lo%omQtN5G(I`1HzhcqRzZ9pLD zfBomb8ecztkBhg{OcJVveRqZN-)&8s!12-C$}CT58lF-neZ``IR+T8=A-MT>Qi~%H zOgsEJb7Jw@Ah{-p%%$ghhqUwb`n6lBA@bMcp}4#t9iUc%7RRXKT8y?0z`$WS7+8CCoTeiNT~^Gx;gx|JC{KBb zQcDhc_eZO~*Goqib2Z1?C&NC~V_7;I1h}`0_H(g*&0Qmx z_V`-8_vG>624;wS^fN??KJ2mfo3Aeol46~lQ0!Z%9nT{1%@QGZHiJY1RD;TZ^L0>V zAnSXO-k2_Ug`1-j_Z>A_${wX@@JC)soHmECmIHL-4?mJk!89u=+O6Hsf~u9 zp;*Gg@Wt5rsW(X!AjKz~cqvgrWa6Qy*cpwyjpf6}L>34vqEkv?6QWb$!l*iuRD(+_ z{89Z8W|UwQrfFhm95ue06&vviYGX|^Z#zQ(06+jqL_t)L0$^5Dxxi)Zwh>SxYmJ~MkCBFmj^higKl0}E2L5F@zJBwD znk8E28H~Em(JQk+J2yvg8-C7Dty<=A%di)?o{yLdW;0KA-(nNwsW(7mt=*%rpb5e> z%X76~)DY=Dhd7$c_UtQ=JD@U&9ls$m?_i#Xlqu#>*`0~YCdrTA{nj;1Y&*dI0`I^3 znzZ3&U%D|P%g_=qkG>dyhBUTFhUNGgCBz^#s|*`8h5*gjzo}S_)Yf_6nT9!QbSt6ofqPEO%kO;@LRlphR1#3e!=bM!Yt3OSURs~ zY3wN=Y3P89rN{koea}r0sn8Zj&-V_AuIV;k+NN#v`qit`58uvz4Di*z{53s8q%Ewp z)^Hh$hOsc_$ar=-BW(yKwpBwI2QSx6)^HtqZ~wKd=3ES_UTO+XZtAr`(VAT(6_d>2 zMo8~IXwla?alD!njP%g$8zwY1b9qa~6$n<2w&9u1H)4E)!#7E8Yz>?qA~G*R_p+3z zg%`$`w;8QK9??i9!d?v@v6UDXilZ7wjD-%CnwxmG4~mcZrQuJr-@XLXLO&kR*oj@f z7SGIbEWVxydUBc35D8;@k`0m#&QWTPyfo#MbXeb2#^SIPNYfx~AKFX`A}!Y#Ji# zq#qP0a1smy<-#yLnhL5jMfrHQ4=5kY%#1bG9zJyh`O%zFx#vgE5jr>HtY^FL%`6Z@2M0rWI5)_R(R!O8VR*8prXlj%d5fwCWe;6H zxv{L}lS*!KV#jQV%s*P^Bc91oHJEsdnQW5$9%hnI!^Ac!9DrzCz!wU~hVq$_Wzfb; z>AQy?Q?qfX};6Z1Y!- z+iRRfLu7v1z5qScQR471r!OI1PSl=pZ|!?)e_^dt<9Qc=6gu+SvR*$9imxe}qLLQs zQLY9tzbD@o-B?FQRvKY+vAvJEB;)<7@e$D5cTwc#5yh zAG4JU%0zSQH`y3@^=kjdk~+@Rptp{TjC-AtJ{||W7Kl0~)Ij~36G+DV?rg;~KYmR- z3TsJdxCil^{&8YMWJx^F*>;Ds$(MU|=U1nn-v0eyi>lARGR#NxyXer=g2We?p8ls@ zyd7)vFaPvsc$bZfeA9w_!n<`YHR=077!_zJmas5D5M;(Kyt%z*|2F0pb+Upw14T*3=wgl%9&&WJCjE_xudk-@^9=|}71Wa(7YmzYH zm$RP@!kNcg&M}t69BPEzo$i|(Arhm0VW0P1s_sih)N<1d>N#xd zvE?-8#tdE>!k%{$gjjKk^iZm$qjq z9J8^B7uu^{q!KZNNh=BGYtx1gy)f;;u zOB78Fk@(cGwaE%x?dlq&x=Mqj)wzrIJPB@$ym;}_tV?o)ERx4wl9`LPOF0J;^YNI# zwLr4RMnYg&2}z89P!2Xh?mj)7ZlD3m4UsiM{rb`nS);70VNN;Arhv4h=pDWP`0jN7 zaCeZV$ownAe8iUe9zZ*T;w3Gk+u&XGdGkQFH4ftjUM_JF`YeUAv^=ufI91@^4-_s~o@X zFK3zJpG`vqgP)svsvI+UbZBl8^XOTyYE9#ynrqRli2KVcdurx>?8lmW!sq*yr>$Wt==*j`E@+q9Xf18YVq5rZ{5w{U8PXQ#iJfEy1h zl(!&`$1>hZ*8)`9N)=Bhk`eY^FOJp85)e*y7-CY8ncCDWQ}SZb*DO;1=~3&4s;@132M!T$oSbwRcL<9)>22V=ud+<+AI>T zYUwy+9dXO=Se|G?@ajnMu~BS-NE0@&JQxNXseEX9>7%ellAHa=tdSTlHghVFJlm4Y zIsVEhdB=Cq7{TTUzP4?WtaoKt54l|B-KB$x51I|78#YOP{1zS&=mHSmj^Rs&V}mC* z0w(djR5nv6DA4v|V~u>nvTsU^GGRb6s{tD|W*h?;N(?jbjrJA`#rQIqn&*%N+wsVX zP@FuJS|#-6beM-*&Gb5&&zkq}4*-7p@J<4p1s!KI7WTYGi1eSo4zpJN_b=Ay+1CBF zqJ8_-SEp~_Z}w}IMb%}H^GYC5LweR>7vNghZE^^FXNLJ$=G7qYBNG&|JB*h7q+W=j zLp1k9PdTm^Wc?T#c1t}>o80(b>&df4H?5-+@gq;ky_ClA8hN?K(<88t7#_2kf>Swl zHitJ2Jmwo5Hx|Z*OyLO~jw``pQS){NMzgcM6pxnV3h_jc5hGRnCZ&{Nk;lh%QR!I; z`!6#67HbtW6G?{M6UB0fcrD6ed59O7YcXW)=xNCdw?@e$;hH zYDw%QKjJJBE=B6NWLdP0lp_Y+2-!zr;XznFN~MQDv&&ZE>_hX+kJ*pH>dEHP5b3Gb z!F3a-Rv2-EN@y}L?)S2OlO(uS3}lrvSr0kq@j(2+-1^{hrJtG(lwkmxhR}#u?GgC)-#~a6|2ak=JGm}JLC!C)N z#CpgRf?FG6F!@2VwX-q!ye>(5lf-5N8=`!6^m*jRsG&cjgoRa$niRr7Xd7p04AEN% zAVLYI7W;PkB#z>@Y-7vd-X@^jkO((K5HzO$%}Bp_O$-}niTvZkTdlJ4$VafUBLTmD zBSbi>{0rWe-^(OgonHPKfRD?&55`TW&X*X@|(|XZU1@CHqNR7>3KCzr7{h9z4^83$9i#G#EJPb z#u!IRJss{I5u)jgtf6Xz4Rx21BXYL@%{(axzQl zh{1No)UGZx1v#sfB^-G?mh>*NmI|mVON)WhS!S)E$^+wQGjArAesBF2gO19znk0Rw zEvlY9@3R6ESy?(M_yo)kUwvn|msuo<;#62io<$-<$20H>n;`ZebDtGvtdBfBk|-gq zH63QCc7X97kHTtA`_d3;t<+9>gCAe}M7w^l*dS?dlIUy1?3%2LK0DeK@CFJnV6sBs zeULPpgw`U#nI!lp8yEbYoKcO;CMxw%9_r$UqW7Jwl}2HuQC5s7rp>_@EPqEl;Y zHulXTTT^6)z7Q+WymCZG1(c&q1r{k=II4pxU8bSd$~hj_VeCB2LT?(PFGn!;iIY z9ot*Zq0%=4h#lW3$g2|B+1nH=aB?6V9flbQf?=p#951mg0*?w07m!V)5LZDIRH2|* z5CtHMhxy}mG4usMRbctGXgPukC~@(h?jdlPAGUjL*EHTb)$+c_aWr5qqHcoVCLN`KWs9Rn$%f9sQVKT-gblE2(V-w^x z%mi6uy%6>xw`bK5k%3FPt+Z&d-)Ykxqs*+0o{im&*I=Mk^r$V%eyw#*g0ULfKUq?c!@4($%rth zL_9`2b*2~H_5|BCpIj-9m5^?d+@5fal9{jg3NRD>;8=sn51Jjk7(P5~lKl7`EZ7b& zoJI2cZ)Ky||KN}E`1`xBPW(H7wzbv>gCt?m$g&L6af~lJ@}HID&v~^1H}*)z2ZKp0 zKh@Ztst(E4aAjEtxt z&t@6e=wa4sT#$BPW`RHh1YfuCC_DW+j|6jZvPc*H3=EqHVR+A)s zHON=w$w>wZFktdz%J#4S{1@|~h|Ln&B$15|_bna@MYZx3OEn!(OMah|_E6AYsM-_?Um=en1cw{qFzR}9doiojoI!5`+>Fv$+>Fq6jwj##4yz;X_QW5w^mmF#%UpNy=1(`CMhX0Q!y0{O2VmNB}aK#GK3@( zF|vZZgOp?vObQx#)qS5coRwb|KQGWRkDZrYR$a>ZxR*=j2NEGhjFzZ}j9P%F=%k|y zxWRCW;{$-qZiuXWIohOR=J8suUY{q$@`D*B6-MYfDBEZ)_AZ0gJw^wb|M=yn*?T&;OlSy z^d~17Z<4^T0IJC1R{`LQk@025LZ3+c?)Z`mW@eZ~k{|Q2FKg$LWGDnA7rb#2{G9!- zcRx!Lp!tFluy-EvY!F-!9_hZ<);Xp9)qgMR%PQ1<4fp43Es`Gk;&Cpgazi9>ureTT z( zG_;e%Xk=epjTnJ%{t})DqnnivVM#UG!U%6A#9e>_u=faxhXZ-T<8**v9tXr<*`ajaK*#Yl7&WQ%pQBlete`27 zg-Yu<&tKbG!(At?R_{G}I#L*EMi10k=_VT@#nZni6rUJpRfcS^nC;~;TiNn73GmA+ zzW6a)FW}^Q@r53@h4*6eM;p|mBTO7;K>CrVye?AkG9oYc6p7RCT5Fxp8t+3t3M-ri zl8(@GkAG1*WQ2N-&q(8H!>xY_9U@#qsvuQ5^xdys^R@Ob4v(_ z&`P1g0LTCJ?kD#sN;WNT*S-L0?|rjDw5=a)8*}N4((><*J}ajDY>-#XT6No!!`0vZ z{O90^oEOv9yK^-1z2c1gMvS(M2F)VyE}V*TUYwUi0W~mM4)O+=ZWZr$c|KKys)7%{ ztXhy-Q9;8y$xyx~8HFU9JdW9Vz?qE^kD8%et@^7Ke%MDIDp%u_Sl`$Lw?bgxZHNl> zQ!#j(NE$JEbVV=`&J0FdETGkv z5X1p>EOJS0^r?KTyn<+CljL2)Op?I-X$%MU*MP~>sMVw_>P-?`Vb~DmD^8z{eoP_h zCW-s4!m7D3C>xgefF%|CZuKLtWF$WS(W^yuHjYCfp@y|%1`h9FmdJm+{RguaZkJrB zwCg#I5Q#Z2Hi??2)BgN-s=Q^ZWXncKZ``XkL{bGxmpi4o4{z)ElKzs+d_6kVlR#Y< z73H$HEKLTNVfG&E8JK2v>~B1ms%2Hdhh10AXb83-J#Z%#*QW#!d+f6>VSCwTjgmMW zA4Cf!ZU}PfIhEjk!I(Q;ARH|u;$9}{t|n(Ajm_L(+oTlO6oz@Yge1W#K=+Fl;FD-Tyvby|Ge^;QKSF-=|40~@fwmB z<|P{bTt+?lTpA>8d-c_eSEujZe5?MYsrh+B6q`uR@FP#5M>R47&+$|#Hmx=1v+GO8 zqp(V`Z4E3L#MJdxV!ti)59Yz*8b$1 zB!l~P&}`|hdD8aSB;mD4Xk8L`^p^M_bWIH?KGomv1yb{4r{P%6+K9x+)Kq@y!k~?mhg67yk*fL~b7F99wUv)-Gx%^C+wj_qVW6`r`_Z&aeBQpL^^x z{~fE%`&LbmrEzZF5DCi{mp;_ke!OK&SzlR!u1BMqHVQ^v7zO2mNO)}15(W{u^q`Lb z3yi$4{yd5nMPVFZT|J|bU?*6y!v;>iR&3nvsgA{%{oBo&Br>#A>f!@ms^;jDx{(P5 zLCX6f3k|m%QX%26CTEi@Ojf{_^{s}`qsY1)|4UvHm2TU5Gk}4~DSP@!ga8`6{P4sDaRw=F#ESKXRnk4tONz$?= z$r`b&g2@SXfDf2-pg(WbRBitNi?;vB>yrGBKe+;tF1*wKmQP$9gfl)-QGc$w_Jzd| zwgg}?jTjMW9QgBAs3I_}wc!XQ9N$7Sw60wdtHV>aaowyMq&HBEdNXs1Edg0C4 z_wv*JM)G>~3jWc|S6`i8yL!c0p%rI?d`dK*2w2F ziv$*0H#0=Oi+(f-e?+1B`@Nt)lLTMxcEirdq@JU_F0!-_r<5hkqp+X>f-h`>gs=6l z9_xDubE=J(HbhGJbF!U-vO&kIRElHBmXuPTddJ9T<0z^n$SBCiZN0y#FWkOyT6K4s zyh?@xCMCFwOjMw!wz5frvr4#OLKyH){{y;44L{#eE)$t+CBlL5Y!GN{!fcS-Yx#GT5P8YPImBum$3A=VTB{M#6GLmJQtwa= z5e_Wg6)f3)yG1NTA4TElzccl9tiU%ZHe)!nK8v+a0t~CoM?LPUMpeNT$q{vvg2tH0 z`5q#S&-LbEwC$@@0^G(=$imGB1=^V5YWI+32C?>huP z-1S1yYlTWY)*8Z;6{0OSK~fEnNEsL%SB{i<18;o~4M8{+*AUqttT7j3RvYX{SHnXP zgJsIbu1~eB+EWx1Q!ffzszCtMB%!A4;hQ7_IS-h$6z`$~6Yp@u%$%GZXq%cElnz3mfQIi@hiy~jN@8aq$=>(OtqO%*Q<5nbnv zFVoKXS1(_mzIye>jDG{`Y|!hdM~w@ch>oKD_8WYp5`4M}8}nJK#t5q!ew3mp40)5` zwX7`KXbl+;tA>xlVt&td-95N2dQYCHn_EMq7iUzzT#d5S`D|2k`sYY&k)uAn&aq0( zF&9%U3TrOLjStx*8AxZqq*m06+*V+%+NPQ$EpvKqfOiTCP+9NqyuYpA~Va-Z!@3>&;K`;Z*aeDtN3RitY)F zsURJczj?4fM}U&QjUY9t;|;CMF*IQ?l7?E3M^S7MgEhyt;lEHFL&;c8jy2=Ou=6Dy z4PxyBu$0YSGM{t*wSH#IJ`Ra`#F%7!7dos!dOwC*;dsm{MCl)!hDh~tkyc1^`(rqg z#UXNnAWVbgb=V+DRchrUXL3QPA%Z_tcwj??-95A}y3C_S z@7)jyI=Z(wTCndUrjZ zv%wy<{nvl`vne@0Zi`}oclzJ%4j-AkM<8M1A5x&e*$Z34r*XhN{o}*i(@)pG66A#U zd?SRx%NOHyzT=gBa%A(j+ON#5w-F+3=f^n*(KJLPlulntHli~DWY`@+Ek{6Sb5P>2 ztGEe;1S4+@(_86gJ@83x(!4fuAos6 zrCfKaryv9m&;r0|8? zpn|b?nnl97c0^IVAoKvqcng-zBJZNvq^=l)t`>hin1aTF1Ga#=t%!0MyVlQ)G_K|T zF=2jjTr;zNo>=2G9k(o3`qB{b^@*>(UbY!k2;zsYzcXQAv*Zo@wZ95SPr+Y1e!FI> zA%fQO#}6NprC<~B&?acNWv>U^pq5e$;-8 zdZ<;*ghGNt#uL^^x=TLp{Fw0R24FI8Fma8bCRZwYDwD$Cc!s4 zX;jO(9WxKCf+73Luvy%^P2wb(X~@>5N7}l~b+-`q-hpo+_=k8ih5_@Da5O_(25p2? z@mV>&Wq)aD$Q3?>s1HLJmdLcLl7*1P#xcjLX9WW8kYvY!e31CB*7_jn%FoyB5aGDk zeO!)pAvUbQSpCPWPN)C;=|38Bi!V+wrvc{RDu>9aBZ#J1BprBLG(ou`Vt&dHvFRT+ z_#VS6=+AcId#OFJ3?m~G#~wWj>&xkvm75^Kr6WhrQwNYG)P~dI#$*+&|te54z+mgFaxALAtQR z3LL$*KYsVS(;rM@B>0Cfe-Gd@Af6v5?<=?fpvJ#s{O_Ot>AnKKbEf=PYfP&g2bu{fqr3F zhRR4YY<5!-vs!YiY}FvCZkWyc6Y!dK^X@!bB#aKe~SUKi|Hg?>sn6W=ByYT?uDSrA4IYNvS!y2Dy%S(HN z`Yg}lX(ROSqmson{3wjC_aEs;khpf~3s#yNTb~Q(F!?M9B)tyFntPyhWTpLn2aBrX z;_CR~dksSq1K-Vy%HWHk?-fF+G)l{`34#p}eBI3WkvBl zh-~O}jjZW)FkN)qEo#o{)-Y-;9P6l z*CYwE41VK)-xjW+8S-yG{d?14G2R4`@c9e-y59x!er0sC=eZ$OVAOPGT;J#i2Y=(h zKUUzag`;6$ZZ&vo((*PgOQS?1L3(k-j2KRr3H^fza|gFscUeKDJ(Gwd50y}U3ao~M zeTOvtxv_VAa2D?!Lbd*f53riS^H%8Jf70Uq;r{dhKOE!BH%Q_OS`-u$^j8K)#42Xm8+yvRX0g|euJnvHSao&2!xtOpK^8L5pp5DNA z^H(z6B(oS=zeN$QO}LBGw$Sv6)o8PlnmWgq_)tJr`JY zx2FpH)aonOB{4HeAVJDeXUe}}@P5UAJ}>JEsxCu;q*WdfyGpemS}& zTbd0*jgTcc=V;s15W&RO-wl1`bMZK$&wi%%tPlvNf(GJ>hDxnj*D5yaD=+DRz9`H= zHYkgs2%rd46sGg-<1Tlg>)YquYcG$3vF60XXmVR?A%Jcrjfz-0GqlrpM5JQ%@(QI# z`Q&Pq;yVwHNXKHh_P&8{AF%PjHxEpsO!3eV^(;WttRR7vnhnv0FN9tcQ4waO(ZGmY zMGOT}mMT?07&7waPlswb*tW@5pA-AWRXV4)sYZ{NeQVVd=|#7v0%Q9Xt@uX|-yq@Z zevkiS>mKG3zCj?SG4kroZVi&(eD(e5WnzX19wGQ6g}tfZjp3T3$BR5qQP=>1$Gd>u z&*o8B6CU+q9Iy8_c2>5;vmP>gKVB1rBU_gHGHZ?@vt1QDdN*qC|BUQ)D~xx{AeG!^|$}=M{`d= zx%&#>?+e%WA5Z`5AOBAkZEh1pLBk;b0ieILhIUKGdB01LpK~LG>(<;5L4$R61BcST z&Bl`z^!wQSIy5EeuMi11i2%C=^}CM8SNCCLj?Rw00a8b{U9sqoDLHz9Cq z{@~XIqV3j=?e7*KG`6TOA;o}5vX?3;8htH#H3AH|88TXw&6yd8N8GmI$LGj?@%UKw zi(#z#=N9i+mKUq>{megj;A|3n#`sfs9p=)$Lm;>~`&ZB)!Pjrze7pMYlnoJd#{ba5 z(0CUiYCxoC_>Xtb!`UCWDEiGk{O$ZGtdZi4pNTbZbCIzDg0Ed>f;6YntXM0alMf>f z8#>qP68;pL?q@~lAXe*XJBNY)fng=qig>_bi^;lPKiJ1{-othJzHra5ZWJwbc-lJ8 zxxTVV^5eHZoPPJs@668rUw{8Urw?~GC)Wu1{J7#lkpEEd-x=3%pZ7cB?YTV`t5l=2 zZisMV!-vPPA$yLuOCamE@WW_b$plqZvkFzcIK?C<9oIN|8ZYU(!lW3Akrag$_^Nm= zcz<2y`cI|XA5#hidFfcw+^o6*&)OKNe=~Xo<+v3=e#t}|rs@##^O2w4{^EQ zDTtKYA69(K);F)eh6c>n?r`Ay4rG{E#LWQ3<|AYgHa>o~KeC-;6T~HNiLo;;L`jX8 zA)iMRg!5jOE2Fe-lirfdR>YO{{Ao1gXrcL#PcjNT2g3!x>zfv0Er=$^wVkJ)z{4iV zF{A9s=-9fK`o{YQn9pTg)XQv;bfvl)A_%c; zH>87@#oZ;gjMEIem}-j+ooIQ@yhOMLr6xULk|Ogb{TO;4FXg?&)Bg2H*kuJmXNa5+ z+*h0V{&QvMiz|gvjx{MwG6}mNa?XuTMzP!gK?pKTEivg3U$M%i~ zOtQBqxG{H2)abw_$Y=QF;WH5U0|ai(*wVXH|0pRo=JHblOLKmP2O4G}D@xp%OE(dLVr`SH{Bdq=Oe8}`EO zKhs(x?L+2AVIlgaYl8HJ86>~RIKY}eEZ?)t_h%5*Ikb|GDX@jBP(d`s^(>G~oEi2c zuj`^u3bG4EHc6h!?9;9Stfc((j+BXox_WVXaYZv^C!!Xh(w|l9e@3MJ76LV*OCzLQ zq3(tV!j0{Uav(FMM~ScZq^QMhZSiHHD&s!m`M4$C?9qnGhQ@3nE-f5eR# zHQW~YDxi%sg4Xd}%X-O*u$Vk$mi1|G(kRn`eL@&5cz~n z5%Whn_#*}k;YST>h#(C9z+rB@kcSNWLVoI{`57fNEQlJ!+I0m>D_=(S3Ya6PuC`DE zkJ<98s!%rXm1f-W`P&P3eEm$q#}E7x;c69VJ0_0aAUVuO!VZCqy5t549$LMR*$NvX zh#{LI+z`Q;A0J`H(GC24e7Hq5c(omKqt$C)KF=ly@85E6taaJ$S%JnYO{3bL znS|d*)(LqX)LrY=;5?P}wVergS9#o41N^g9N!9h)79&Xf>gpBz6!I$It~pG9Ue&+j z&WI`PJ4D7N2sc7P*=4LNFw_u1h_+p!o$WE&J5J}{5&0^VRE#WA@C;8S@IhFVCrm7qmsn48!ja z$TfC`D7_hgyh24xhD}O&9~Vif0&vi*_`+ke?bWQ<23OK5x*}mwrG$MpvZtTn+3bqL z2O1wM+#tcw9+MTTd!ZdK7If7_v#*i8zMK*`1t$vJ9A&+n;`PY zh>s^JeG2qC8OEqM`{Vm>zBzsMhSml#H-TFeFb-v**Xe)@<9V*;omZ1i^Q*T!5YP%S?%9av7P+w0&XdmoIV5G)xt>a*P#cfZRg^e8NpA&a3m8@| zezjPlRoXhnI~Hf%sPVXOdo?Sz!PT^??zDm))xghP{=Bk1_q}zb_^Cm1Z$jF-LDG7i zUcFvB1hTeEo<$NqW{Vpl{EsI--rt`7@$u~mx9(NEoD_u);+%WkXJ8hj9aUV1;W`NA3xroetrA#^!CHu>HYQn>E`b7bZeU;k2pgF zW{<%C_R(6{2>EPgfM63u&K5yDb2El~9Pm65H#SWDMv9szMpvYK|aj_`|QW0lh%giAn_iNLzkY6_j}$ zPpKCMeSSlru{f6b3}dK`DaLJm)?#A$SpCpCpO2F`g1yl;!zRQ)7@h}Vyt1}Z#x%qE zF>vUAzr}2<0&dJ7C^;H<@L(%DhFKd%2OAlp5t3+p;Ea!#VulCK_;_g>AK2_LO^?^U z;qe;i*U}@Xs_uQ2x@`;cO9nefsq2baR8vkPoMyeulqaKc3!wxIKNip;;n# z5Af(L(-0BsiNGhqXKaYTw%icmj}CBzy2fMhmSlRJq}VW%5^vZ+%|i;E!p@!anupXI z&4@HJEr2~ zE5Ky9k(y;g$O>{^x(#wbXURWI_A3Npnk29`6~69ZR>{4k&vHjqf?lC~6_4jB-lrjg zwTeHt>`z9k7LuAE-k$8m(VOR)_v z5R@7qK4xl8um|Qdlp4c;{dl>zM_sc{2Y@k+TWWe>^8GK%{}QTs~5=3f+SFh^Y`(@X`R8R!MVHQBUD@yX!OP)1H#i0YNTR zIN(m%H>8G(GdD=?;0F!-k)!w3;G!3DTz`jPc5vzH)7%h2i{j;>D0Kdw0#VD9)&u$0 zq?&phR=Eac^s*F?s|scBbEJm|Vooa4P*yt2SAs32-Q}`Lxk;%M(pk%{w5XLP)NjgP&03D1Dmvps0$2hI3+1ydk>^8@_CBeH0X5Nv)>1BBzJ;!tzr(rUw7k+IHeJ!Fh`BKiQ7HqoPXswq&1-3=Sg zthPwx+{p3zom-~QKHiBJkq?}uZ;b!XpgaLl}CMRo2? zlFROFKN9w9h+vGt=M@YCPJ1E=%}Wy`QIrl=%XxJ5*FXNr>&@JIi9lC|Pk5Zinh|@1 zAsB*mK^tBm2!9~PGcHhZ_9=pXL`_MM*MmeDWxSjp=J)$!%hEO-(>lINaj1HBxbILc zyKj`H>(yu+sJY`akwk)Jnhz4f*&`DSqz%VOTaq|lpl=!*78rG$9uR0rJfN+NW_pN6 zT!FweKj4jLeaPkq()hTm!U!`!0S8{sww*>rDsyG zg=wBkljO3?`*!qGY=~SMA$`Yy)b2fhpds?dKAXvRQ0I1=vm{<+s|N9x2_uelB1YSn z5PO8=cU^!hkEjft$I2KucE2xYS|Q??*7KDPCE+i@O4|~*Q@sRLl*P3ws%M2R-UOhN z3F}Y|e&%;lDT`^V3F>UYI=E#V#e)Ir8adK1z$ORJ0x>f^fN7c`AV3+-!Vr(T0;X$x z0F4WpepedHB3J*eTqTNAB|&t!`6 zx{O_^ECI7F;Ob2apu+;`@VKmphlkV6$D7l;w=_fKr=PD+zr4eS$o=UW9+`D_{|TPA z3Tuei86wmSv5(Ax=Vj6C5SqQh7wOstOMh%lG(c+jj2+9kz(v(0Osr%6bY zV6b}mV|m5ePKkdCNR;F{sF9lkF`i$>2P%GhDEnV4eV&OWUMJgJx;43|H4Hqf}wLI0M2Bg}vbkfjo+3EHMq5 z){Zf7>uDheCeH{#8{hCC8XFzR<40Zb7IoFE4{UNklY$;|MUT9~86dd8xnJ9ZW_94> zuH38-Zh+v-5WC(7KJw}%G(QmQ1^$^CAN;5*jGh0mSQsGw4{!Vuq!EVy{1mR^{1_{m z9fA#!$I}C>AM)|~=JXaDBEP(Ybwoa%etmy)`T#RTu5TZ*4G~;B#H=R*T@ce?fjF`a z5&IdUK1$rc5uAySJQg{f95G;$gId5>J7WP(yXi8I%dAb56CmPjJ*cN*tyMVF98Lqu zrn$a{tm_R0&m+qX3p(cN7#G;F*sT@*kikD*yuW$B2y57QhdS=yGAfU3h@i0Ptgb3m z6{0wf%2>Y%A~T;;H@q*tybfN0!pUC{ZIG1pzHbm4lLaMSvE=T zH*S)&#`wIBiBh&-;CGgrXi~C) zl1UKRJqJ?(CM_BSS3g{)k&|5IP7DO;?DS1(;L#eS>>Pk4G!8ObtU?qT$5?4St6dT< zm$@_?p)k{2rLtg&T94#=d!uRdB7|zA!2+|3TO2afNLQm?*IGA=@JTB>f!m$`A zM+~QjV;G>=$dHDCZ+eiNn;vcppOHvogMuD+#S5JCW3Q<3fejF9bl4^c&hmgJ2l8A4 z#PUq@0~;S^#s@Y&aGejH?V+0=m=wk>w=^*C@J2cDDBRMV4a+qbaBN)g>=0Z(gc>6E zclV+p^8WP8FSa4_5%{(tVjh_Vvq^AK^-sL8I$$kth=@-Xk$~emLI?|Fr+NWtR7Cr0 z)Ov~CxaV<86YoOva?UY$%qb%*mQHgx4X8P#?L9V!wm|V|X0@Oo>zM9;F}0CY#cqS;F&-CT+hVNgZHp$!n(-g^7+De-RqR|FBA3}9WBWdTp5!I|U+Bg@ z58n_8Ltf{W&w6PFFaLNM#*AYHtp6h@wCO#sbp-Ne>6hnjIn+RsRB0 zN7yZYF>_lPIWr~C(roX55;`Hv*@S{k#$sn};xFx_FN!|xq{j&mNnFKDJ4thu;oQMA zhtq(D^V>gy;n0QQ)5t<3v^iP01aBTow?lQoSA%Y-l)?4w2g81UL)( zdS}-V;lOcQI?$wE7hMG zAvG3&4`Y~PVH+W^wKF{2j1N$t^*%t)G(hliS3CoRnjg5v2R-tN8XmO9hi!hmp+{c5 zfiJJGq3Pjfe_#UynjZLvkG%5D4~(UE)(4i_=bbFPVA3@^xN=8BU|1fl9fD1a&t`_m zK2h6t=5l3YUs*9w7eYuF4?4H5hXXI=7_IpdyV;P_d{ zW3jcWE^Z;plFlZpv4+4Nglj+#Vzx!prj-q0p?MZJDX2TEYb1fkm{Xli1slr;td0@I zX!z$H{b<%bc7;oA56p_Xg{yZ#v|>OJG&e|a4HACbR;1L**deDKTqdiLYlxt7^-Nx_ zkc??7Cf+;ZdLaB*EaSJD)0)xk>Rcs;_wP^fb^L2@Yt=ihARVf$-uKX(lExH}J+e>v zJYF)#izrpMHr{BHwaX&_(KvckHeMo)94`S= zw&e`UQUlbWq8y6B0#kva$&oJ~E)GY8`Z~oxuA{u9U z5KlEdK3x2M!@hQNBKDyj-`p@#T*+SUJaWU_`zVB7`Pbv=TE0cnE7#k3u}eg86v;H zIwITvk(?0E_!#3tLN7I1X;%?A7UPPs! z&nwzeCQD?6OX?EX4%@*i@t|2pVAEBv?aYxoSV*JGji&93C>7lvU5-ssh3` zDJA`{!Q>_gZsm*a4<%<0`dGEvqXHM7vI2uwi9s{zd24#LkXHkqU7_O#di)4y?~@p> z)+D*qD6UzVqbqidh6qM%Ka0iY(g-Q<$x!O|tfxX9H*QdIx&`9uFMs^wm#1wdg~85{W6tJKU7YJOnj!_NGG$6kGfjSt)Wh}QdfA=mrB z80gPLZDZveM1dUX38Uox2Yt3}DX>N0D3(cGTBo)VUyn~H{Mh=e*vIGnGiT$iPhx?$vQlsy(ucHns)t86bU1j*J37K`%RoWq305Wc|)EQ4Xf)nb-* zp+`yZ29>0pWiB*#&>g$O*f_tAaEF)2q+k5?7)H_;({78}FhE$xg8_}Hxj`yKW7C70 z4b=SLCWx8!0RS}ngSI&HgCBc^kGe8zf8Z7#ef0*{{V;2J;JO}q=EqmK<_FFIfo(YR z10Q+y61pr`Zn1M}eE8WPCR&pKWrbt=!lahIx-QzJ>`WZNLD-KA!>8s2HAUHHW`0oPgVy}O<_9!AU>y%^ zbeP9pK@)@;A2jo0dGiCyS16XMZe`GYq4oxzvOXdP`zC?^VJ*=Rfi*<#q3LmB8X_=5 zufON&A-PLmQVcW>!YSl<{sZivJn{W0ME z@xHI!1K2nH!+PK7Oy0qOq?=-NN{(m_smsDD$2Okh zC`Tl|Jb=uLJ;gyAPRwSp+r}yZCm1@z4kCt#IR-An?r_zm>fL!N2~ZIyZGbswrr>(M zJUM@kh-08x5afc??7OvLe{PGaAj2P99nXw`2Mo`{MhEhUk95552R;VN&-}ny8ZYs2 zSJ?ajzJKf$H$UicSJeD?Wgd6M4G?OI_;o*UvGbQOW8_8Ru~#N~7b^rNa-xBKw<5*M z4ftxAlPCGwNRO;Rl9>V{Mg3zNHY~VlK{G@?;Tj_M&=9$~J$-nO4H29n@)7=EjBAKM zL*(WT*ARg}(8b4Q;Vcn+Y*uO=5%dQl^Ww*5aSVpdG8r-}2%c3F93YcSQYnZuMsd`$ zgNr~16;ghSvs?@?vpnkrGaYpi;3DIh#cswrzlfVt8&XVM;)ZZ`Gn#XO-7WkhI+j0H zytnI-tP$rCcU?Hs8J26*;*)i(o@or;Rd2$XwU8ZzX?uZ zNFSQc;6zTfRnI8nfgmROX^Ba@(<5bH5Gg%7=u}TZxCTQ~7%-hbOSrL%2RM<;H!)C+ zzmUnTF~J6cmGc(CP>=q&0iw6A34)CeP{alZEqD%F`^YPL^c9V9#>Z=X{1ra>3TA-t zdLLhXMUTAVM_Tl^;7$JWw=8RwSb)2I83<%LmrwMnW4#!_@1W6U4b4qJV1e)9@v1u86VsL zaqE59MhG@O%pWvA-r(b}OammI`9ZTkp!orE-~5mZo?{aPW8&QW7E_{Q-xk6!X20o6 zs2&MlS%J_QB0aFaL6Qv-YKmY(xkUhbwnPp zDS|UZX2nLl zN@rOUL_+oZmex7C{g}=ntifL=*EJ$-$2{s8 z)Q~|X^oqE_!8xgjYz28v8T7>Z3{vbV$64#{b-yW_B%dDPA4Wdho?#v9XTlZ@k)cM2 ztaj<6wVt9x+L_kD>QN!IX2k+Vqp0XAaWW1!L@=Jxer=3*ikgXIrMt>vj*(C^^e9Lb zggH6!V}+!?WhP}=58yj(5CmBpra=@}4QhDHx2-CbUkG+D12tGFJ4jzqV*AaPZ8zS%C-$FwK8YM7G#4N0S{}~>cg$0sEnl>7yRe+t=|7 zFQY3Jso|JtP+2LsRbZc3I;+&^sG#S3-pVG)hnx3DEwPQO?JV&P5j5k^n>ndS|WZO5qxac&CT8E13os(JTeQnH?)ojG(~P;hR7W>MD#i$Xb+Fd!bfj` z6L<=jU0B^WLC`n)!k3{rHRLnR+kg=a5rH*nD~6tg1K{#%sK9ugs+LuShVT}vY#&6` zV^yJ+^kRUTgC`|#t(Lt!on`L(#qO`T*}^rbWNpt-K=)1@c(U<=V{9_qVo+?Mc42CI- zJXTu!!c`Tp=aJ&|4YCMXK_C9O_C5h*y=DbH8BPJ|ariWJn=T~BO%<=D>%ImZ44SQ* z%W=^8o=o1QtQnnbklfj4g0Jas6nms0g1(Yhza%pi*_E07fejFRaYH1fIiJ@Y34+ZIpy}~f{OBuefY|1T+1f?VUGpRH=quCwz(-$U0|fkth0m!mgE4VVert*AcmgSt1`l!eZ+0Z(wnCT1Vs^ z(AW^UhBZcR@2DX{vqYdF0*w@2R2?6ag)>FC8NyrhB@$%di5eh=rfMa>UpR|$s+)}RYx*4+?kKfGGPvS=01 zinzs5TE_sxmzuP+o2zit0HHKPkE|=pOv+fr2-6yAZsgh^Wp%BeFkZ(F2>_~Ng+}#p zH)dcE4C@XP8vYAHjHWntpm>01j;uiDF+pwzxG`#WOKkeGjeH}Qy1?`e5NvXA6GSvU zxB+4sAM^+;v)%_ZEwFhZ*Zwf;ewf)Gyaot2Kj^Vn;p~qW+yKF53;fCEhshd)#_a7D zN9JY5Hdo28V!cUU>C#-V%nCH>VMn$$#rUEexhXiF2KTl3f~Xo#3~MCh?u z@2~GqAMvqScktM(2c9KD>xkei5z`1U%@CR;f@AX^_{J}){Ab!CIOc#Q%{<&X1w~4Y zBz^f(oGeQRv*m#5fU~OMDcz5-)MA~ynxg{u^CFms)Exg26~#5;h~brD8oy4hob<}@ zrJ6iH8J)-W7HzZixj}*sM;B_J5$uwN2>Oq%f&qh@Alv{c#k}=Cpjd){O95VFmkJ!F z0y}?5Ja6}hISPgY$?m_bAnB@4I|*^-%pE^JCc2*6BpEm=1{)$zdp1bDj&%)tdNnI9 zKOM*=CW`ZUBl%-A))EYINNsZ{j3zUOl%~d2%*OgEewjC%Qprx80=!9`;>-Qgy4Tjkg zAIDzb@~j-29@uy=TWoe1nj0X{5J4XN`L#c6(*qh7_~J#VqVAO|rDO&0hDif+E~;grX)gs0>@G7}}*T z2>MYDnYlxV}Na?Xz z7z#CEh%%v>W(iT^-No725Rt$F?n3rfp!LY=#I>+1p%;SL-lGd9a2*VtT05~Eq21R3 zG{v>x0MT@XP;Y$fl-y2kyNdTLl=ZpH_iXdAg%b0_YPt%|4yO|kV`G{HV`r42tnHgGlGBpEn* zpdoSvkIahGiaB@?J-tRqTg}?Epg_%vGfqkTXSa!0l9|w(#Huz#(uY!ucWc=R(5apY z1W+xOiz86a4%@s5b8FCTCm@h4 z#ZTDUQRuIy`C)9~O>Rw7LBv5#2GU{LG(I3u-1008q}8LZumJ*(zv6X2XiE(coB={> zf50pcxAsTe0Kvw`YiNRC3G(p{9-D=;L-4U#esT5d zTbMzDvqW$$5xb7a13oqj*AcM`s%IaY1%crYgeC&BrAV_s8gh)~gq+l>TTsWo5Q{1> zdYl!U29Uw9V7NrIjh86Gg4=>9f{7W+tYf?baMTHWfOr~1(ATd6C2^oo8cX?1)#7ux zbg#K~k?_ZeJG(&YnlngdG(>O~2v+YqXoAdM4`k1MK>Ij8F4o@n7yPGIfiwLOm>l+G zxTkiI^yQ;(c$#f5`=Gg03l&%V+*lF1mUO*IGI)eFG(@loa{iCSYOhbbChWB?<=S2@ z$;naDU6NVCnj>Sk*@j5p`C_&Ej9eyzW?&DNjmC{?E~YHufZ&JWtWsW}Y}CNpc($i% zsR~U3iWo&U2r~vgtYRZUsAb8zhrrYtblVA-(w8BH%Rll9TO`e14&soQL{qcCsKJ}u znnnWRFa{7v-EU+2k9({!k5Nv#4gM%M`h3kL7m}h{z zhA*A3-{3kSxbS&;?GI{#nCM)56fMR`6~TA+GCVgjM9AWcjn)#Qs)EoxDj6mXacY(x zHKh@nBV4W13fnD*SGxGESx1G7FU0ySt4d}b<+@`M`r;^ zcorA$pVc3Jg3|vk9h65e!4qVp#*9cOVzB0A+gE|`fauSc4R)rSQkARQ=`j9 zwS)OJ-%d(t7MbuQe4S0H~L)4kK);a{CT+x!h2GH7gu0~&xaKtN7Ll{B0szJ%jv_%!F!WJL*zVXgY=(`T^3!+qkGsp@sz+y zGKG94GUqmGh}6#&p&`iLxcg1PqSL5TJ)MF9(MWofHp_9Hts`Ph5(Nq{3^>YA$<)BB zW!PRJTDGItefG(VJDPy;>Gqhj10su7N;CpJQ`J3$Q* znkDjxkIlM+$7A7RvtV|}uWvuVERh>{gw`$mFams-C4y^-+&{EDHjA1gvLS-;;4BgO z1EZu>yf#)5vJ%Tdq!Tfu_J!`Nz>)(l@Kk}Shy$?J;X0^U?}P5f%*L#;vCj}3?%Zn& zD0>~6QIjPYLHNON3G$(A4|pVRP@i(vd|$XhAQ=~NeB2QZFoRP?li05d329D^RFxLFDbtzg?5V z3w>4J3n3DC({tgpCdvd$kCYFAV8~4F&V}JQ^G5qp`fu8-`H0`?9c5! zKdWCdQ!+KMX?e5)h=Q3A^{7`$El|^B&R)d;N@@&HjspTIV?4dJ+E&-gh_A*% zC)NC*Ss>K-FwGD<^Fz)4u+0xz_?%{dytd5`++yQ{XM*5*ANZ_gniYaGLuhu$EBF_8 zxc&!X;JP35_$yxb1LB6DeG>$0YpY=6cVk(0t0GxNT3u+0n#UI=a@Q<9$|h7%vqxIi zJQQFv!n}9`zXI~3vp&OfuReWxG>fa>+&}~5{f%je;4G1MK;z=-*LHDrY>3=HfG$i4 z!9RLz7Bp1=FZb9i;}YIX3}$OXv9W})2BAh`$%r5#hSa{$eHEx2ggs!5P>pI0p64Mo zI7?mzo9qImv8cza0@v-sP0z7;&W_mlIATog2SS79yxj-)Ar1b{Mx~z2e)-m8!!nOF zNNNocZi46rNNT6H#h9`z@)p1@FfE33EaB0!oOr=GR^bmD&6EEOJ51#pkL?Dv29?8P zeFIx3(ZF&uG#e74?VzBFYX?1;rEJr_@ibC`{0HMHbK7s=9|+S*zWh5dp35X zbsLOSN;}abimUDUrQ&Q6WPcdmq6}lDWhD<*poSqj&&FXt zHg;oQ1xfrYYHdoUPUZ+-umsBs1B!Ivz0s&q&3Nf7w~8!f8~FyMkY_lS$ufy$Xb_ML zv>gpRrh!1Y(KTDIXLL{w3fScETl?56nDxQU4{Sp4W3NmT1ez7Ea5e~T;SaZF-4ASl zh~|fHfMD~3W`y9nALh|lpl8;g}Y8-ytvgzc@R|F*coru|MN-^H`ghz`f&UA2Jb(<|X9^;@L z2k)cK>(w6c_PMpk7S_C_L6T~Sv^POQkK?h1NYQvD=#^lj@Gp!@1xgh-{%2At`llxA z{vf3S6wC^ur&hd6KFJC!_@r52nha$UbH=^U2mAO>{70SNfBPF~guqOZGk$fS=iLS) z#fhE79KcO7NBs5MBwcrYC_+QzPcToU-+9g=4Q07$VGgRu?}GyEK7+{jLUV&xKl#Z^ zsP-FilCQYmx%(v4G58>I+re+cw zy2kPrUBsYG_OF1Vo+}5ZAA9!UP+_%6@aK)6jN}q2#FVT3%=5iy0Y0wj8s;WiTF95^ zkLj6q^&ei~>@M)LBm7HFUQ5#?+uEMLJatXiXdFKh1fPh;BiuILnS{KRR1i=1}e zqJ#9H^xNyrsx*ib??0{|=$=N~q@8@Ym1%_LM*R#}^QMR!fQUv5lL)eso&UBkGVNF7 zz3-{InKOU6DjVc_&S^}w$3gwf>lB7sEijmq4VOf%5w04TE)xhgp^V`~3yt%TiA<>s zF}QWn@cCNm%jv@MG=j~nlv^a*MJ%LB)>z{RTGTX3cmqqb?w9U*3KIw`aa2(QiC-eu zyMIF$l+;Aerdq7(VZxYv46b$zTzA3CL6u4D>_dynehP_I*<9q4bRfY124G&26U#Kg zDv8~FAJ6b#(3|1Nl+-KGIFpv9_ozmF~?Rl)$vVCTvKuoYDM{PQoN zMJ7441yvFt%vsBI(|+Jo5@jNAs3kk6WzpcV{*7JMjMQpf(Hj`TQj{niXH-9Zay)d> zwkdjhxnXf`Uu$408u8g%)m333Cm^8xae(K$sFwnTQ`}CI8Z~k~e^x$3q7CVkwUv&i zdq2K+!dn&Y*9thxeHV_Le|^%{;#qrmIOHq+ryVK&mC3sdk`IhmYYrUu8ih#lG|KT# z3e2NAFO-K8FYUPUH&$y(+9^OZrTSg~a-n4%;Qa;ClKfZg|6^yPnxU4<%*#@kn7YUK zOgDg=#5uJ=PmCK>JQAtMsDr%sxi)M>ACg!aPN}#56{dx@ZZ~~f)@^-|}8F}@S zxLm46>P--?b}C)}8OG<2`gV6S!wBL|{_7Lil?Fkp1}trBv}U=(=1Q_&!RUW;R)W zm{215nlE1%iiD&;u+6Io-cU=%6%O=b%|Cn!bA4n;x zx$faj$;U=+CA#Wk#rTV`>cj0%KG7nKUtt?fghpVF&SHr7!r<-pys zU$x2<13za#1-#CO$a8tqxlRw3?k9NQwRB`;L+soIaOx{lN-#DVc-l$9zZX>8kB7PZ z;-yvuF8@l0Fj`;4-mC4?!F~LVjB+cODhuK%tK->Uu|6a~SVg@YLVZQX_D4VhC(#zz z7B#T{5iyzDC2}^A*kS(!Qm=wpZx#M_W+_1I=-owo>;&c?K&}*IMaiO(%HBnHal8Te zb{2#K;?G$2L7HMMgZq<1Zvk}NjzAXI*C$3;!#7(=a8li~=$`18qOPV?T};NK52J=$ zvM%{EFA}q8z7gdjQ7<|444qf<^&*>z!uIofPX*j$bQ2X6mpT?J65Zia z44Hna?st*2-~NWokQAXrdcCt!50sY5R+di|v(iO?46sTGd}RF0_|Uebq~%TfM(xud!??}{7Qo=(EImoDctZ8LaY%BiI>Xfl)U2su4+UI!-v@1v_ z=`XCpkdMVm=pIoOS4oAhWJ=ZvJC4PfLR;!Mh+A|mF0ouLL&*Oaxa95+Zj>NNqhjUx zp=u#`?9)B1c};+_YsA!)8!szG)tneI8?9M4{{Bg6B$vf@W zenQhk?(v#VuYAW|Ju%mW>H2bMT315O+2}W&9UivYZH7o9=@&!!B6;jyHKM%zrx1A2 z@8$l+ra$;?@;iriTmQ0mUh&iiE!=nRjbc?e!~e=ze_1aBkjxO@WxwS8m>Aml6vD<3 zdd<%HeRJNEG_On@qD-Sy%ekdp(E0@aZ-m}btj)iJ)0eoQH)w2VDZ8k2G3gMDXF@18 zOR1crt8Q{kmgGHDWxCuVsZjq1JwD@ydJ8+nb2@p3j_j9uOT-|%G;|=-JwI=}zdXOW zS`*{Irpc6xt?cgZk~EEt1awnA!FVI|d~yzv80-}ZlSx*xD3s%zcqwVKd;hBFwW0ce zXJ6MbLxw~d?())Be(wj>l78!`14A|&J#U=_!_60~-}ZI;3`uZP zjyZ33sMi_GQ1dy5Ozjhik-%8$)USzPp$5{`aKd2Os`wQftKSQLOy$@Q+94{aF~o~E zVHYl^uVVN+F!BOX3G&`y&g)c!J+C^iPBa)4R9UQkbk44`JFR$jJO?Lj2#52Y+%9;)3++ zBr&nAr6G*2s_Q+YY`xYc{XA>Nvd`z_p8U{u+c!0cqhCiuVrG=N&M721+{40#g($+a z=z_6TU41P8vKvjQbch;O{&~HD*ndsrEw7}*6F$Hm2cU|-h>2~R*HQqDoF)V{9>3T; zG&k!B@!$S1XJ7&@C?@Kn@lI1Nej=%>Fw`Df9!ukp%1PU|WYE!-psY}Nlc|KE19(V4 z{KDAk7R&CHqok?>^65Xxm7Q!ODm!tIgU7mcqpPb1jT;phKvbRJ9sR?0tLp$?N3Jh% zvH>820PM(~zH697e;gs;^5L@bgGL^EZ6bqyI$(6<95bwXki?(Ohn>%Sv+cKlU)+28 z9UO=_U&T&G+{LBqWr~(LX}c<_zNFG@xZEd$sfF<>jdKO{s2)#{qU&Fgiw3{E~t3!%)tML|5$xQJ@J zH_aU$v>p!G7Wvssa6TzRnrs^8C^h_4{z?4Y|9TC6WI*5wn7b@N7I6wn(KrH7IdgVG z-Wxw-rT6v)NC5IhT###EPkA;Cn+iqVCp8!U^$P(0@Uz!!%(SaNNI)(*fey=UT)h)%#{P$q5CHy|QF zrXv8>6&P^T_40`N0AFt~n&I*ZED3!^5H+)$byelF zpY(5cW=SyvS=qfM6PJ0Y#>0)6>{&ej804~CZQT$3#4Lz+N z4P){ifxhjo0789ogzpmRb{Pht2s1b3v#pBIx?!5Xa>I#=s##T1^#Mi^B1I&O=)vz_3Sr-gmLzKViY6 z-=qF~KCwsUI;z09;5*!=zH`Z}TNcG*p_J|>ZN_M)i~*vXD%584(=eiLd;DM@;}UIo zu$HZvHv`{a{sgg)`#L{3qvdbv}0Rqupgte?8tf z1^Z+5-Yf#KL_O&44fSsJpGbxx8!C#d$f%h)%yxtL{t0?6#w*kya}vszWfg5T#9S0awG-13ThDc;C?X6PO)+d_+v9h zv+~*(bj?z(o^iVkGuk>O5k8n%uB9W}iUJC-5Ak!^r}RkO4oC1pNw@cL`pZ~NUeQD# z8LDh;7T3xef*Ns(O(mNu8$4 zBrqN4O5m7@^iiS@|NHBVwyS-GSU}-1GHU1=2b6nmDJY3iiiXbNHy95#dB(c^x6W8Q z5tj(iyIpEpRLtEuQjq83QuO9Ng=*C(_De!}$~6-S#>oEO(c)m$f-KzzxwrK$SE@eA z=n07!@n#t@4_(yM#X80!AEq_gk*kN?>`>Yulzc-;Sj-P56@aa+tpvd8$S)QQRur}i z9?l7G!6CMd7BtEB0Fx9(Q7KD^dIL%hfUS)rG?cw9!oMy&OM182WT__S6W=10O3m2j z8>$D789Nx>u$PzT?KcjPu0n{F+)JCfk@C_f%~?T(ZvD&~96jSITFBYh#nbjoNerr= zwd$2_rg0IkAY;Ufafbh}I5pNnmR&g&$;3MPJV{iB>0Im95jVaPeEZ<^=y3F_6Dd|N z|DM38y3WvPTqt*M`QW2_5@W*@`nnsHO|;?fe-kAIKmWIepTVSB<$NoP2jkv zx1|iBA9UWPb*AhN`|abouViFwkF;uL2A5V8I@hwkt{MsRsV;3Aj0{r`+0PiF;1ty3 zAcyG{j1|sdg^VYyFTdwj5gDzsL2^sdwur!-_rj3sTPMYNilXO-<@bhAR2~MvPTITk zSuT!$Ti+h%rce5Q3=NRCvA#B#1NGWAu1BcY^h!F_tS8bNiC|maMA1Jg0J{?EwGOSt zM1w~+y3>COEo@`ih@U;2P7Rk2?Wp%43a4O#Xk$&p5nxV_By9@s6Q6CD$t(~kFi1Y! z6Ih-W$6&?XtKw)=7waa2V@Z7e5+4wkCpg1pyoj_SnB5hH+NW@c7Zc}kax#gQZMm%48^)Gv$a1?!c4we0K6eyoY|YYLdzub<@s9Tw z_&gbqQ<$j`z0{$jYKo8Bk|L4mcFiQ#YD8OONw3JaTaPx@W9{cryklt`S?J)yKpVeL ztH?zsWnH+X0b#YF`B&asw-2p>P|m}7e%Wa9Ir`^U0h^T->FD^n{SFZq&mnGIes8g- z&fNDeYbOH@S*p6W@C)QivpTckXe!aG)|K6Vo-G%4a1WCgIIquW_hhe(NG~^4~=Z5ScvV1fLykG=w<3L5wLx#oUn^j50hs zZ(C|j0h&iOqCund#aMpTL_Cr%y462Zd`DO0>MIq@M}cA=ye>hrh(c$`FQ%(A;OdkS zi7|1LKLk(~6iILIX{mD0L+bdXKK6UUmF|jj0E$?v5oZO;x-K0hmmowogE?#1-~and zT#cICqSjUB(?7*)cQBuu1Q)`M$ws$KYV67DmJDyh233uDX>?W*{Y|)+DKg03c}B9u z`2|-kSy<^=wfCDwd}jV!mT%Hy_VRZ;^O?}%QDda|)#uQ-hT#`RNswQW^jOjRcF z@>_iU>&W*@x;S|VW2uMQY&Mw^dE$?se>w{{sokGHb|S>gIHYP>O_?;yOf7!!`KvPb z!BZr7<(Sb1U`Crw;rQwTh z1RvmN$@v}`f9t0QJKtOQ;+@*FkJn|L$t&`-i4F@*Y}$W(ee7*~^jzAH&{yVIJ9HBK zOz>g+6C*SWm0T`coqt1S%&|NxD^l4%9;NOkgN*WyUm|HZNX$u> ziaqSpx0GfyO+suE;vS*7&(Rjhb2C3M=4O}Gndp%$=ai8@Z&FrPZd>UKC`B@ULQ!CO zRo#Z;bsQE#+tS$n0PpAs;pX9pGZ?N8skf5nch9*-Ioj z6rf0uLo3Kb8`VZQo@chvFaksJNzuaiSec6-g18}LFqjelD6>`L3}VOLH0|IdHkA~y zev-`eoseJnjJu@iqh)D(X=sv0vc-JC#U=vXY`l&QX|o5$gpJlOaKf$`P`mjyqu_4^?mDtZ*sF`SMouEZpbOifh>80dF$*Z08h%befqg)* zbQY#eJPz`B6`pHMxm{F>Z9py{_LB&%2|!lGB|qDncnl^h*^s`b&$%2n&d9PtJ;&c6 z_pscZZQrF34zb}A2!~qdv&H=rs&3h7{E=K@gp$BDZSS2-YT%HhVK6#qa@jAcYE+r~ z2^8;GRvQ@EZ;qrZi;_hqrUC;Z-NDHzP20P=uOi3vNPw?DkgzO_*jE$)p>>N331=eX z16(R7+$BVbj2;*KE=}=hTrn;(Gkd>Ngn^uGq5mfCEouB0>>OOT9}~w+9lG1j;sq63 z75dCI9}jp2dw-Y7Aq~Z_F`!_(r(I8_5Mr#Cc!kQw#O`_ z6G=0qA@-N0|3ZDuq_gl1ZzNw)13Mn{H&$_GlSeqIcBH7Se5UOZ>XJgtO*6!)R@;fzxatM3C}t2?lc*XJ&IRE@mKn8W(fhvnZ4T z5qg-o!b}^G^eX$8Dk#9kj+t!Vg#tqAK(X)oQ+9F+L3jz6RYTy1nG}mxnjVW}y`*G? z$@`I|6g2w=qsfwvz9ZTOa2>H6?7eZ+K7Wki0~RuTmLEsp%$RVK!6NC-L5C5mHg=^z z%1~Ock>%i!%()ErbUzpSv?AoK#aafJ=5oO>d43;>%wUq$-53vhE3;uOL5D z4WY4o{jRCr;_kB{Vx8!K|C@VIu~U9PQSxgtg#d5gB8J{e%T3k+vEt`yGc9KaTHD`+ z{fuLs$}Fn;ZuUEwly)@WWkV{U_7;ad-^YyG^|~a}bhkaA|JSlkfP8#Imgrhq+qx4m z7WpYEtqEb11ieWkdoWzE?VmA|u-De{G{`**1zChUJ(Ue5pYqRspRln^Zf^HXcS`@A zyj)TXGAAc`FZ0!u<8r{cY?kB0?*r~$KU7ZzzgqPg5iaY`HUG~GK=fU0@SBi(PKF5c zG7~|CL^XfYti{J!nyyX+Uj6*%tY4%n8|ICDSrMsSuP3M9Er3StvTfC~y?%J5a5Lxb zUz>vis5j1r-uukpw-9VIA#CzsBM+_zdk zfMy~DQX$>TD-tZ(`UTxusn_=+a_rS1sjDbd9JVKOaok;hDvCG8LBTtL5U7yi$HUO?$c5`V|g6ikqqH$^}} zwz|~x#<%UnYLy3;W;baKCW-&uyT~#CrlmWLy{BBL^MATn$#R-vee>Vi zX98=l_sc6)$dU4^U+7Cw;`TbOLg0R_MRBhRgjDFFD$aYAWnyf7!H?{2u#ur>gvfe`Ht+UEUYvx>cna-uh~%t2M2jzD%aIO2MtGwEzqim@o}s@%^|O)@ zR)24_Y5g6Vx_lM~P8K9V- zd1!^@1Y2_fja)u5m#^QfCjKUYc^&WKg9Xnl5z-#~0|jcH(d7PgfQzl zmq$-8YFHwusuhAWO>ghDSKW;i<+F{?TX~(QHcVuBM~eI6_rk5`NYR?mViu>lD*yI| z`MW{Lh4as(m4rQCeY0VYQ99y0^H*#CXB$3A|FBKrR-+Wx*SW=bP{<#_z*TUGnSpa5 z{KDvsL=%v<5EBnr_##ce^>|b)Dj8vi(J^)AM- zDl|-9^Zwld17)C2sPD@ZG(gtT3Ah1#CH18vzMxRwJbl8q zSwMgI3D!e$rPo7!q=dwAm12aFZ5Ji3GB99MSh_C+Q@hesJ4Lp-d3Y}{i9eMcJdvxkr6kYPm!nL1p{I zxvoXF{ft17L~f%~jp{?UCgrO4VXJaCmL%~)2-d7#@i%mL1mgW}iFmb(e>Ly=okUbw z-QQVu$wSqWVjF*+Y(5sZhc67?vCOEKvxH72>o~+&cp_)h{`l9EOhF~) z7ykE^lun~k&XB_5RepdtEpuwRe3Yv%!fNhyNT$W3<Q{kKO- zz#a)(bf=`v1Y74*AuVWirSb$DXgHZjp>G`@SNnx!(r9RKQJ@HDzw83w87~ZQ&&N)m zOabcUv=NGfKJ4_7(4eMAl7xQ|GJB9KqV!AC

    Cgnp)?BE(D46Ls7D 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⪻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 yesR*I{kyFALvL^de70kXA6G~{~ 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

  • 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�SF^O9%^H^Be!)Ss<`jkq1^={ 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

    +tXbf?I)TP?OR=cZ8{XZEO+l?1 z*H;1in!qZC#Bhp=~XS*WtYS8bvf=?YP{0}2^ zPmr)tplZp1XDRBK?s{6?Q#-9J9jv)73LKor*2Xjn!GR_aFr9su^A^ditEU-*kc@}Yh~nwP(#ZBpWm z2mUoZF2c$@RbS0+%y$;SbBe;+eZV$*R}^bDy5{|!#1t={%0zp;#irmKm1SpE8uoJu z+mgnL_1_92Ww;b~SWRdu=9oy|)y@+8Z^VDhWLIuaRHmLFCQ0q&e3ob1D-8F*M?-iy z2}AM3_wY;?3?6|Ydr7_;;GHuBH~I~Mq;tKNEXm1lm$gH_&xmZ&hoYW

    FycuV7-Ydq{-jmp<~V{hur}v z`W%F^JVo#LsE8rAW>Qv)-|gmT1B;}~=@`vA{Jp)HPqOH zn0zTSAvt3-mraq+c$&TR0G4wOT|vcCY}ut7t~B540RP2j+}a0R8EoS)NpdaOQ3-Ba(_|>_}BCSeC@_2FdQwFz!y2G7T zb&a~q6q{lTc1CNdVPVsSix}=ND3fLpM^wbuu@wtZMDhH={Z`^|1-B%vM@RCgif?-b z6#3zKczI8DqqK86Ov=ES@O58r2|S}g3gnT}8eWEov!jP&b|2;f_I1UTXRsLI?6S&N z_~zB~YVw9@4Y(;t$xnDIt$f!xXNKND0$>k;*wKVJXh$fy=^;(_HFd&=Cb|7=oY`uS zJ3}iCG_D0(AHeJQs%WrztZ@8)Tw9w#iBv{oq14sSPG zO&Kq*|H^-^`Bs)w&UvgjBZ7jXKj_-C5(fG5{LL0g@Nfg}ArrhK`8puN*>C)$9&HBT z*SA3jj2n+GM5y`$nf_`ZozD%hiJ=e9QiP-RbTKyanrDEmm}m~#bP(8nyw$KjmsE7@ zz<(E7w;e>vhe;_wG-a0-cL*n*zk3ieEZJ#+X!>)jOu4gZt_gs<;r&`u;Y4F?!d_dF zWQY~XG5Q0o5N%-%vel*~Gy*|sK9JIdyBkYrfY zB6FLg%&@2S3K~1Izey(k?>?rv%5R3?54&QDIrUP13fThViUoffc{QIodwV!Oo$#&R zAuYEZ71Ef!@b+W$0pR1c!M?RvsQnIFoGr%3r{LS!n_vdr6k=g%o+_LD*7qA8wPmiJ&1| zR;o2i7AR2EK7$S4U?LE=N=6_TEZYmy4S}g4_`TN>1Sp#TZU{v@>KKL!p+m*_$NTQ% zf*1Atc@clte7#xYQmh8{rF~rgjT);kVedN_xX&QoLtFIyo>ms%awktSCBh~MS!z)~ zRD@fxNR}w@dLm1hhTWeo&dg;I`4pS2#2RI7<2srVO*MMNr4ROrD}T4>o(iXm&-|~=A}C9RUX5?~s(4@6v5v|>nSUalH{$gQ?%vpm-|9no zy>1We?t*DRta<*!2s8{Mq4jpe>H$@{AlSnY7+CMee60>++;GbNWg*H3K61e)me-=@ zWs&^vb({PyFcWS2vCEaXlYCMaG}gs*V*AsR?$xT_0ak)Xnw6Z9@pMCq`AY_u{hRC` z9yBFt)WjOv*yg_|su$fBZuc3Lm9OJ_ked1koS4XFQTA-YEM}pqW!o8Ita0o~%#$58 ztGNHx@Z~K$l?dZ@!(0V3S+J=mlY&oIrq{JjxcsZhQ~B-+`D%&TM!2e2u)P&_D3<0d z5^=WnaPEDD41f5un=^x)cIS8)F5{b9WNyU-3d{RhAElLLt!)ph!fdg^@>0;{1Huf2 zn?)2!=+R;)r33a=hHyT{2&>kOoUX%G!)T3(qs8j3EXEtv@VSDYsr;9&DtO+YSv&_-Kn)2u>XDgo zLx=(jWvGjNfeLaDu#84*|4R|(bkjkBF7cXln~#F|e9<`6j2`OmiLPF+y2dv8*);I; zl16?ql@lElFS73)f2L)Bt8>!hcwKkzb@XRTGXqq?J4;>eyDWzIUHlep?tv-p_3CUV z%K3e$1{3*VQzmd7O``HCds46{HgP6f!Tf(NKs05-7D885GNSw8)#hm&7~`1}NR>}% zk5MDND@-2C`q$%Ml*f(yl(tFmcO@JQ#t2m1^b_GB5ocE`Uh$JmPf<*4z+L{D)RSh+ z5A8umG12?MwEHluJbPCfu{7@`O%gW?kVc@5!p=Lm)zW`EaR3!CA0Aw!EDHyhl}G+^ zE4O!vC}y55F`ZTwAQT);RB&2p*j#*q!Wwl*Psb00&chK#kiVzXtvTkUxTBz+*P)qRx-gXi1R8SXK_Cqq7#jD;!~C(a4s_^~<3CfyP`4rEs#OHA$b;@z`R2`K`k?bLM zW!ypz@&5=wC6M?9<7>b2TcrKhaF1qAfD~UTcB@p}-Y7MkFw9?#adXMe3bJX_xI&0 z54HU;!GpS|0u9s25Tcz=h=W(~15hits=-uqvhl)Gwe% zJMeVldRTP$O8vY8BL}}m{ugt9d`$H4e@rfZ?b4(9E?7Tq-J;b_a~2$feijs#_q#ZT zI4&BP;BHe9mk#svqPW`<6AV~u8EmumlQ%$xK5-WHG(^E9mJTg!wQ$8~cLx2<>X)Pz ztE$YGrz)3c@Q8?}JpNN@8NkUWytoH~iayIW#fe-&Wl`FrtAJEPDMe=cO5oIrXAM-E z4)Z-4@N+*n5i+;eAXkwocI$(CeZDo#=OH$aZZJ{W(y z8y?S5Xgz};hM;(aa~T>wgJa%7YmECAX08Wywmm+e{bB^h&MuD9Js2)T;p#8=#?lxpeN=Ff{hzOja$lUu0n#*wBJtLuXwXF;H&+BqcO5UKxM zmHN<7*skKfiHXu)-XfI6QxDV4UlZ&p>;mexGhhm{{dJ^^EL=)<`(3{&g}%TT@fQ9y%>dN_L&UV9v^hDps;fr_WFN6A4eckfESL*gdK3Q^6cC$+*QQfN_ zq82We5D0QKBUbg;Nz#EWHwi!Crvk7Co79HeKx21V8=f$c%n z!C2q^ew#D+HMyf8Q2D`!gd(7|S_Lm^;z!~&4>(&#ysjxm{7H($Oa!lqICjJF?>=+7 zezsK64rNRO-W#Ax1HMLnWff{=s5U^tnDU2-LbB@?>%QYG{h55E5 zB4&epUb|UZu@-sm+28nA{AY4O%oD|jJg6rR%Ezw^!c0M08dKXV>TPc6E5S^e$sTz4 z7ha^m-)AUzhsi+nGS7{`%t!rD^B~FB2M0&+Y_NYmdXU;c-i;UWl_m3+q~N1%w>H|1 zyB5+bKXtz(>tC^O%eL$y|GiX8*EZkQtYY&m3OC5hWC1C*K05H*k7_1%*YMc+lEy#%taGLGP)Qkrk zSqO`KnKZ~hH}b{h(7ly;1s;(M@y38LzMBj|{fdoFSo>OVg26_QbD2>6jv*l&Hp6ud zC{c5u@j?wT4WkTfi%?HA`77*Q%xM_HOCvcUChG>u^2pcMxsLGw;*li+cj=iY=*ZZgXe&##61l2)4@pSy=rzwmN0eHbPg${Q#k>mZSFSrApW0jo}(Y zbA*-t(yLY3^+QYP_ylFewKtDk_CYYa*D_uaE*{hU#HyGx;#j9D@tR9cTLBL?OD$2J z61$Q3cyjj!`|sC>U3VzjwmMZVV}sX0n0&!6io_rYdmTkVt}GAr+|4M<3PHIhH?JpG zSz)71(oZcJVXcb`chz0vFM=&0*_mVTeXaj}=GM4PugNZ%mymN!=JkZ^FU2<+bqczN zS~ihoG@{qPnG}$tFYgY$BNw1~gimZgOn%gd%3G^zXq(9S|D)>7IKoU2~n!=kwk^*B0dBz2Jn0vxE0d^}0CJ*L-tfbL0rUFrs_bmAR3I ztFJBA4yfLO4;W1=zFpzn(w|D7s291<4$RkYdakyF!PxgOOK16t#OqHB^&i-jr{8%% z8@u;mdj568>h`wc`>rLcT6dp1>=+b4$TJ8j)#U>g)tdQ*Gx(H9@fo5eIFYS`mYhM_nFmYNP}{MRDOOCKg8{K{)#j&%#}tc4=jZ+ksI6g>)>2@l zrC9b}=s!BrB0Rk7zNE&GJX(hp%j}JS(rs!yd+>jgV@?bvu;u5l*peLEqJWT={7u zyDOk(^DR;IX#aY4S7cB}hlDGghv;g_tZ;bAusrY`TKio}Yx-x0B=JGhBdS87PR&dtQtXu?s?%*!=%#a8fn z1m%^_!WeG0Jo^T>xF2+Yl=(w%j7T+!pj_FN0Uq=~NRnKn450D$%FS|=%|Sq02+lI_ zL$<)a0d%C7OaL$lY{dU~%yUu4|h!aXH@#$KBzSi5%fnQ-Iqv-@ax z+F*zD$=Zzo{XKc4z36PfeZ=!~!*T}lL4}uIwt+5=LTS39edc%{gO!ge-0>Xhym!YV z`L>>2?Bi3IZ)4%`5r2g?hvsy$7~wB|pRiGON+eKI8cT1sMbD6~_)BzrlUXjo3fuT; zBNr-2+ZJpQQ&F=?gq{09T*;+~y$dIhecAD`+&Bor`Wo&JK=DSJ)^{yk$8Gtyx4{uF zH5|rFLxS~1H}pMEt2pT5S6PEi2*3-_9p*SbuaE7&4GC4%Nw3!&9Xml9*=bdCdjn>o z!2Tq+WN>p7peS#sqmf)CF?%wEohk--n5*U3JpzzX0bqh$r4y4zFO+i^0IM$`&9)kp zy#qHHc-4`w3T{4p@BZn$uI5tn1&aIG`+lDcNFc<5`b@uNyldLsM;!%gY!;%!{r~FS zn`$3-Iq?9yn_idJ6d?cMZP?3=Htk&64c{QWeM`8fFQ@zU9jA*o)v{-J#)2IyPE zv-k>ky0{z-w?NRz+vjl(Oidy5{Cg;7!;j0eHRt`H7}Td6iRCgK9SaqoFvQgCL#lI( zR=4i+`k0p*@)?qcGnDtrgmI*(U8p9x&`n-HhDCQJ>np!(B3)JiJ;hnj8{C4uGlbwz z-k9)#IJU$7Q{G6SK^ON6dA7MD5A4*;*a+siw>NyT2}@g%Td?1cqL3s?;rpQcItFJm zgC#?5BqCVl31rPg@$^=v_$FF2X*w=i5OZ)cJ8KkA6W1#2N88|#{z zW$Nc4$4FO{=3+KdqXXc|Q1er%phZ1=fPl1OIar+RLmK5Mx#gq8Z4n9IKZN|^v*Og> z8=m`prZq?Qh1vRG7aCfUlm0o#?)HA{yk*OTpB;R4yhyr1_uTm=J-p~~f!^3({}fI5 zn$}w7%TSIx8cm(_FY2VPR0Q}zQReWpNgyqj70s8$EOu7B@HC$cUyoZDa8Prv?kz6DN3mTM`QPR7&u?J1W zeQBRfrc~gyUFntw-u~js`-zeFJy^jo);7vr3_N-Ol(-<8I%`q^vT3}@h+j3K78yCZ z@5fio%bV>BHzJc}z1X7BcKf#HlC4GTv3nm}KNC{lm0pzpJ$hS-vN(?Hjv-Cyu-1n1BAeqIr?SdIrel1#-B&Ey13fE{;t^K3w9_obSwx*=>)Pr6RXY#YuuS zA-J_O{(CR}X$##)9d-wzsMe~NHROUR` zRZulMA30})2Hijgry?Izb*3^jk`QMr1heq`&2Z00^-m+;4MfzZ=0AI(L|$7HpjaO>+1JIoTF6(I%g@U7LiLiJ~-7_J7i z+JpE{w%C&P7lWLnK4wk{p5d;uGpx@XyQ2ez?i#@;#CxbLE|^;}k{ufT=rg}sYAWLH z7)dUmBv;Ly*w2ZRwZTJ{!hUHyP&1)?2NAYVcs);=gaVUXc-c0%mZ>ly^NnRco7%+% z4eJI^zYh*sXM`_ir@v(L`hOjmlI}$pKUVQSgNv8rt63?pkYW>^+ddh~E~wfjdF7(~j!#)EQuxLaydBPi-8PBuVd zy*610Y_z_BWhBvT0qnm3o3!hMt4o5OBgY8F3{$hi*t_tN27cGU(NRolDT=G~U)>#SXU9wCgPaD~NrfrdHbt2M-~sE4smg7Q#j*RPqzl7U(Q4P>Nu(4A2p zb~GP9mgf?hvo}r05g%TITNtJr&|05U1v^=-vkB_YyqD9`e~)pf%1b=auhBg--k<+f zqE3Of(N$cgvMHCpbKpXSvK7a=Gq6{MMAM+hOSgkkt7d!kG;O+6_->-&4P+fcdbw-s zFdFzd0{>f|n}z!qa`ereJqI+GUORF<486xj19qFIw@$?$X!9aXc=~9rgD&!mA%20L zbVjB!55^*C=N!_FdjnO(-cE#}V!bcc+z&qTmq|d<0UqxY1}6@dR>cWl~v-CQyOm1#dOb(#(tkDlB35g5wz#y=V8 z=&9KLJ+C%>hZ8C$<9{A;Njsu0?#NRV7V*{LL2(VG+o>VaEWAtbRAG9V{80i9u9KPx zZ%YJ?Qej{|JRYNd_3QTv%yDc+eUeQ!8Ja8{zO5RTmQ;XjTY_pFL7K@YTj(jP>4(nX z{FXDwEmPcxw&p#uMZwGlfY>oW;k)(BwC-3pntjK*7JfNZdQMu}dq54fV7ofNZ@vpf#jwWJ2jn|(jB8}ztF*g6PJh>w&8VWkXM@N1^VfFG-oBEdlacO z@V8{f|2-8w#<~)G8OJ?Pzwc;F^xF^iDzHO#%ur74)DD(ks^X3jL+F1qL}}?mSw;F6 ziJ&`h@ulYH$)%vboh-#(ecp$mJC|{;6>{aB zxtx3H@sQQ5ibapY(0xboJJ!5=+TxKtWRo>b;ciLuFGARkJPzIcH1gg+d;&Fh;(SnS zqD9kX8(*8DnBMl3JaXH2VFDm@zLKeuq>1GGkHiCeR zZjfj31uS?!fL%C@a=cEsBI5?l=5|IBo3N%HE(8yx&E>D5y|aS* zz6FG(RY2=TMW6vg+L`xAhQzMn+31Q0ElJ}_x=s`t7J@jjr1Qqmo{l;o{^aleV?sh&X8J0VkTt$_G0b@x#K1HiEJD74|#9h?rQJ zuS^aE9gT}fe z8?^2v(Hjiu78hu>KKN}N4qp?>MJu=Q{G3GA8k|;SPV>x@RWlpp?}RRh(pr=mOU`X1 z!$iVtxvDS5_e^{?)L{oM7jpmSv(Tr3?F$t()A|-D+=3O!SLEJ4z`ofwW`$#7OY4yD zzLrh8S8D8UZ9@p9Rj48?B>(+)$bWsS(@VcO4Zkb2VWY(IC8(_oiC@FJ$r4>9LRRcDWr1XD^Vei&%=$+%&aIGb_XV6jXcp#vD&cOB z1ym|+GJxU>Q7HgDFjv=xCFz!f)@J|;pkB!Cxvy&Z*scHXNnN2%>XIUM+f-WRBUZJj>w+(L_50CGx z$Vx_ty&nbY$|oYBjWp^J3jDkJ)R#lNT9H9aqc}@O08}oaP;4#fYlJmKu)jC+k_c+X z#M8l=86$!hN~_Ga7UI^O>A^nONW+x5|0rf%Ss1RhT3CcY&M7|W!nD%Q57pkT_*tA2 zIO@6Y$7FpY1Lr+|?5ypl9Q&O(<6h=t{PpGKyB}x94BwgGxi>KW+VJH0aWBj~FRHsD zUDn8V)s(4>%5$ugM0)%;WSgyc3x^)R88x3SN@gFwfh!MY+0(G{R{I#>@mZYND9bJ+ zQ~^c{s*f!N5cjuv^~j>H&h85`K*UJn84IMy$us@#)s5w*l{G zlw`C5e%4POq0>?)I7kEwjT^}zr@yG`6NRe&iuGwTjUKN-(~BbTkQIH4qn(P6A*VSs z*AsLfefqy6Pfsw?opHk8v@PBLF>=aSXCq~MSZ2&pqqEO&>h{$rJ~0P(He7I2Jg_5} zvhYUoxj4Cv;=dlWH1FyXRLbG1qs0mj3kkQJQj0H5dY)}25xke0P~>P9NH(b zp9K{TWer@WCjfmO6(n{Y9_dnj~f(n&B&uxr`A2Y3%a|({T`x7Nt9C7 zHqp@!aT>~el+33qcU=DU=>rAGu1}y&abE8sq-l5if$yt+(~PfNgw#2|_-m<^{ytXc z$^i>Jcp`7D&hGK*DKhj?JTiJXz1qNk3KROgO3d*SwE6paQ}kaMe-3p?$&7*BX23W4 z`*#7VEC|NtQ)A33XnI`fm8(dz1&Mb6r3u$$et1eyfAFv`@t@qnEzc)brjk<*0O-qd zWo$uq@9}774u*_3~^uWw~@Wuj;2_Aw4O)zTuPhhh@a9CUtq8y zu;GaE>D_LJiv0WDTyNHZ{e|!!H4=l4KP~+AGOM4Yrh0?5P0 zo(HRJDnR1x9&D>8Sr74RNU7!?x!@y-y-xs1lfv^Eq?YU>PU=gu-`QKgoqy{;I$JR> z>bGB=`Nvhg)lb%TP~>VY+t*{u8Yul}qgSWEq4W@X?hKM@%31o?yn0gg;w$9yBy@!n z63ULJDyS!$nK-@Z8fHHl3Nb|Pprt6Yd@#+HEXn2Pjy^0`+KQn41Dbw*5@n)(dx6q` z($ipIIPd6Rsh9YSfZ}|v%MT)VQ2U*-V@U&f7He-2u8eqUXO*iAD#-tZNiK(k-bX|y zkkSoDkW2cg#2vC@{+4vkWBlAq9;N6b2F&QasLVWyV9PM41sb2kH9M8M6&M2e`z2uK z?@!Q~ti2rEY9byF@v}%m`^bY<;$#r0KiY#0e#CzF6T648p<%FQ&o}hTaDbUC)JPGS zx_15gYvJzy(a_S+wntQ_5iTS&_8r)BH4&*8G4ra`bwwKChv^6-ZM?^fi}5f&AbQMP z`0r8ZIneRe;H{wVbi&6_GcrfZ+BNo>+o6{lqt~lm2K}l>x$v1W2-*g_a+Q}5>{YLz zTsGi~z3lV|7!{te1?5k~f*F;q(_Knp`-w%9^YAw7-UHr8R$rg-u6 zVX^^NQTRWvXNod$@>6az9TIlnO=1R@Kip9aVzoibTFg+AIaRs#CzDl7 z%=KNz{*3IG{}HyGVh5gT?GCul zFiwG*EnL{iA1BQWkeIbKH7`C#>PoG^%I`uWWd6TB^Hi0Jrk5ipOUA{_pT*`a!R>9A zqnZ|Ym_-WDCS2w4yCItY8RVHM4xd_xXQ9mLqBQ-iq!N7Vt@_}jI9EgYbKszGl`6UQ z1@XQgETWNw+c$&vEnGjDGg;}UvINA?WNCLfX(6QpT z_`tG^IMRisqyU&61Ynjk-Xy=6fH?jht%~pv4f*a|N9Xu^xZ-6m7U&T@aPO@s2leaPj` zq0F71s2<>!OBS4m%4nvwd`z`sRkaH-NfFVlqDZJ#nx6t^mIFl-SaKBMT`Ml->gq+E zwcD5@HD%x#Rxt?g(YNx&c)GsBW?iw>HI`(a6+9_iq^Z-()QQJEXYnRcJ=2OR5mgF$ z474!lc6y}Br-;nv^}P`&*Pe$eFBV}Y2I`rE@ZTG40w1%V{ zjV{kfEo+|&{Rx8EJWOPyE0O8(5U{2jsI;XUi;UaYxZVBvARu@ zU`umq?Kdi*|8>Ve9s_$MuKD`km4d&lpj^Iv6_}wIBdM9FSkXZmE4<4kW_SParz&R# zgLfb!Xf>P0TTn%IOc)&am?ulwl)u)3_xx{nG(;EAIDxddzbSV>{A zVukC>{`&r!>y$`4?S~l+hzpy|;FFQ0M&2{`~)J@(G|bB#=;??6@sj?g`eX-Z{BhZ5hLcD zgU)f4i|!)jeEHYfnFqxk>HLOapc6wPib*es16?(~B$hC2L-z$9(P;(Key+v#w+N5( z%9}u3eeJ_%q?;{S@oJcF4OT?R;d1HCXL2FJ1%CVO{A_Bn5V0*ePemE_yXYP9Ya4P` zs|60ftW&TJY`?7To#|!7s~5Avkw-lXhs6oU5%s{|R4s!$8?tn0x%$q?0yB5cnl?78 zfTq8VC)PM_&Dy;LT{aG`m|Q*4Jt`%D$f7He;oul9d+<%uuxYVb;E3Zn#gshitNhZR z{8O1D@erBCfE~xgL}CI4ZP!nFn}naFX0u0Xa)H6A;8>(~c{a$;>2YJ=`Lo%f>*xnB z>Y-9=(bYG?r7+#*v;-NeCUIK-iz!)xuXE&0H59?OHY|BPY{@Hp9Ur%5#mA#vXRiIR zRFgv5Pa9eUgu#lPlKNn!R|R&g#cYbQG!*D&fXl5!?XVD*l3dX85j%3f2Rqr%^+4{$ zm>T5Bnacd!o|;vinT?K}9TYj4Z~$W1_}7pbpI-Ii&1x5?Ws{m7+`Ek|aYde*PeNSh zq|=W}-Ff#J>4>|#*Rwfjh8&^Rxa(t zOvM80(V4-@(ev2VHh#4{?K0^iY39b3Vk085lnCp!U-L^i5%D{l3&Mjp*M58dZ+2~s zN6jaToC9Yw9vd+Z3fl`^EO;>cbce+mq;V{eMFz+7(UK>K7mMeIE)T$$>x*BZJ@Nb> z#V=Wk*dntp!viL;!>D#BQ!==FsX0uwF99hDa9FJobN?OUdnpovK%iv+ zDC)tM#rF`KM}>#vSnmc+{q=Xuk#R^TH?cAL^K+_zLAS^0+UKy$&k6nWJN!4TbKJP2 zL*MRZ6%5R6!1Xw-mS|lF;$rJh#3O565d)R5Sp1Z=SY5>&dTdypXE-jUM1q1ehNx9Q zkDmB3Gd4P`Q8-N+cmVpr0=vn>e=VU)u=y3l916LbOPWuMuux_TL5~A-JIIxd;Lbl& zF;zgHoW?G0$w@|C{q-T)6b(}g)Q5lVH&il<0|3KLRNUx5krb?7r z?~^mv2w4VA7AXPcdWvvgth(P!1XL{)$-W}&ca!kOA7Kd=Pw9Mu#hd;#zYGGi?}DHT za2(k;3=hM5i9T|r4Dg)(V;#e&rZ6o6m19bG&gjkUp(S^lwz1^d+mv*GDtBRf)&+iWwE zt%`+o)#NF*p9k8<+aTeXnUagGklsB7*8DQNEXQ_LD;qa~quH2rn6PLdqa^&LVqqX@ z-&6H-SZEIdb;@Bz8U%UGUiZm|g=on_zqblzrcPrb3Bjbx_t7MAduQc>=1DO0)b#v) zb=kvFPoGU{*%4YQGOvHdb*NZbzYxmOVQ;L;aE9_mcte%c?W#$CqgyHvU##b)IUpujXXc#{6Q*oEZQ&4%Uy(-)=uRjX4Ux((}BxL0ADD!#DTNts!Oqbzww_i@|5&`) z3}>qtj)5bNbP~nK_lV4@WHz?ILV-2M0V5c%%8CW332C<+l;nfWyGu8L*^Lm`Y6gI* zhozZgFUIG-p8^j(_Q}yH#*=1p)ht8Dczzv^$uk!#-O9ml@!@55c3?r&!?D%+>%Dv+ zi8Jmfd90EL-|le~>>9u6ef@0*APs` z;w?{z!e-Sw38E}D!g5MHBhnlqEGjD-IFF`PiOOYT zA9XK0)+UcCUb^lVQ*6)he}cGh@p9et`DXV*8L#wIq%P1(QU)MvR0m`nQ# zPnBYU^<*)2G87A{?l5vreWnzYJ_Y$KWy!3yrjB2J4>K)9T`UVEV!YVIidN`vfi$a& z^3lb-CdBV=*HuG>_v4W`V~!ea=~mI+!upDu9U}X$^3ulW%+Jk+iZhRhtRbTT@@KOn z6O?X{fa@mY`oDIGcQS6yuFVSX@BrqfHv#_sA%>IB@7j8JKl8QWokggBG<#{si$gq z279`wH@IFsqzNyHORd9V1Xmv|< z5UJ6ZpW&#KUdud$nG8;E&<>W`-W{@Ix3`h_}_=mK2+T#ssEzPum$`N zM8dl7W&*imDX`HdZ=NUj=Y#VI2`v?~E#a&)Bw6?@MYt$C)ZxiO?XwlojG8VALgY3*pw9cyEaL&s|aR1@4++$-qgYGB1+%aY_V%FNM3B7x?cUkvyvV=Q3F9aM4 z6OBRYHu$$Kj_F%ue98CDK3CqmpG;ON{lF9aq&hm*n>T+OZp&hwK~w*RMb7YS^j*gd zFZ>pDBi+6jvJKiOwz9LHQsjiLi(7GG24xO1s#_x#WDi~Vo2Fk&xj{9jN(H|v7b=Xr z*GL_&$v*~xck7YwIv2chN4gX=f~M{#IV;;l1>gNpPb z&P{r1t)r*9Fa|OE)%DWVpN~Wz{%9|d=ZN8okQG*Bd$$oAGxBG%(;$tcElUV>@<@I~MRd{ZZHH=Ssop zdPU|}QaI&Ntm5C_acattMl*HAW_Z;*sjI$EYq>TOGX(1mdiJyRp!tyzlt$=3X3gSt($1&`~AdIzY z(tv>m+2uQ8L~6q61gcjwh2xnXENY-w1>`OjybjoX_Qf)~PAk%XLi9$s+ZB0fgomnd zz9B6>@ZQsR#ZK1uXVN8AS(#4!nrl@mgyx`nTlCA%d?xm|#jHk_JqA1Y zy*W_UA%^buO%lOWWp<4+Dg#XE!n%IW7_71{{`p&PWu{&6r{5MUb*22PBMhVrA_4G7 z73|o=Oc;jN9Md3BqkqUd_JEpV{9vEiAO+GrPs15kd}TrSa0ap;BS!^g8Qn_VAPk)SS97lb}b;8YduO{gn zU>p0Xly4Pqmz;E3U11-LPAY;+@3fGTA&s zk#+#=cpDfg&D_%!+qH$tjh{aR{%w@4h=f6`DN?TN;_$pz zvDl+OSSqEw@@s#RcOBEOHIjL&GMzyydu2wZsQWd$GRU@caK0|GPbw6*U{24-WT}KZ zYY|&zOsQvWdoj>tf>qy48sTSfFFtXv1v0mj8)W!bguO&T{wp@o+6X%Qqf!fN_siOR z_n(7i4J#7a*9)cRwYw)g%B!pAMQyhW%b6qUIlarcGw9e>wT79~wPe|<%6{9G$!m1| zBe#z^pBpjd;*(YPyD8%*G@U_u~-ICgdtB z+libpibd)jik~M5RN>M?ZLHbfWpAJ?%b^~!n4$2tl<=#?#N$ag*j9F*@R10-WNtO& zq!8!G?P(n3Sy? z!r>B%Af7S2=^p~69gMzW9QreER0-irzanmy90qE&6+`E-``yVvDmCRKTB@HOC(6liPdV|v z$Z<5NA)u}pZYOY^wM?DT%U0st^8=1>QA83MWC!g2ZR5j*sWnuZH4+$0uu!uWp+@91 zZIBauwf1VzJY#Y5gG;%SJN+8hCQ)UBN3Zo`=}=jH-tRT|7K(h`5qSDIIy2T7W)980 zV5UPS21$@Rbl%LeZ8tMeiD_$BB?G4?FOnkYJO2U2L$9sv0jKVccyvt18I( zO$k#YBSchLH@~uZb3*=$K!>~>Hf))hqDt9;SzW|7Id|?nT1H$%`ozcuJCrrhdskV- zX1~;uC2RdH9e?4mc%7k9oBrU7U@XL$SeX5zG^=2)N<|>t@12YfyRen?%S;_}j=s9* zph~(kvc_=t7;POt^tf?)7_*a(o^s($V(%_PMB~2}3w_9$YT$ea8QV$(F1g-H44*z7 zr>^`ERvGO197?kJV?@g-w49>IFW1yr#!7k2glmHqPfq!*AsSCRKG%OyV#nbdXtWmf zTUm=UzsYR+NfdI3R%f(OlK-_BTvj8CJ`nArFKTn1FA*qygDCe=KDSBy6hNw~?VmUPC3IQ$W zn6b!+b(xMCkW$^<|k8gv&L>qNFYOAI^yLChn+_|9)_PDU zb8Nr7yk3@-Nr(QvwT;pFpM@1t-xy+R7wEKH*hje7f(eR|ehFq&qv#R~1q#8{=401V zqZ|q%joSN~kCw@Ovko>VV0G4W#hp zMwGF0y_*hfX@C0}#o09IZ>b8c?XxB8YPr@`(yNQ7!nR~5YOPc8dH%vBCMnqCzK#eQ z0hNe}4lVv5QfJ_=r=sr#EhH(HDt|34_vWVSvWBD9371v(!p|yL8txk%*x6xAUJvF5 z3?#G3@>qiP54h)xWl()7U@m0@3Q}gXz-XDlwmQ^)+-N5_@ZK%k$1@jY9EJ*lg(s(Nq+0t>!ZRT;PK5iA@TQKRi&H0 z;>)^q=XZ|x{|g9TNB_1dKcFJhUhx>{Y*ehTwTEVadmS_%--J;+TG+@h!&IKW0S%^| z9-Hwt>hGRH@AN~Ry`jJ%UZ8R^7C%ajxa;=E9vNTN!7CZpUrsd5~xPEUti+wgCJ?n@L`)gqjkuk*2Q4;B2Na1iExEpfL zWxLBRHZp$D%(heT=%Maw*mqQ^z7szgC?*;Ip6uCsKnabaaaldyRh|Mj9mYjI0l)SW zZL8Q`pO*HN8jPW3MdSBQBc|Te-JHaxF59Z@vwuiQt-}z#j5fkTTp3==PK4GqH`akT@&a*@bzyb;V>$8&}FpHfJ`i zGW4>Xdh7qZ0O*{R6c~o4mGls#dkxHwThFI09q?+|~1UVnkXDPwz5ipz& z&K%v?dGTWGVUnX&_yq6l|BNaSu zAu#V7_wMM6dF-`^dkV6p3p$e-%J0vZGv^&nV`TL-E&d_lIRQZeyOd*`wGF);84 zmjo?b26Yg1^zcOSY$G+DZ^-w2-gGM3&dP^-b$G|s_Qm2Hwsm~WLCeM7$BsOy^f(qB z)R@VHq07uY()vy0`kfd{5%HKCOI9tq_#EgMMwpd+y_t|z08!W^I=S`~jK5$mSLJ4# zFUCE7XL8TEZ%A-3})VMobu zqWeVp5SP$-aQQ4vkrx&=-Y6Gl5Uec;;($?;uB?C3Y5ns1eCg$82fI*uU(qA+xSvUKRLzv#iA)C zSdF!Q#7wEjMxZ{oi`Wazxx~&t&5=xy_n_tEGbK0trpD9<-2*^NrfoJ@5jy#ds?``Z z#}jdmaNm-}S?o_@eG|8&{)MAXop-c)@{ zCq0z0`xU;DMO*HLoPgSX%+iUqng%-C3Qwbp*`s4?jr_Tr#g0zI)<)rU$(sZJi`;t+ z-p!`;x&BLk4J;Qnl+LD;nY&ozlR6;V;W#+iSGy`#2x8B*&Q;FU_0v*(qv8TpY=A z*@k>!Zv4B$z{?|YYfKzz$y8oy8h&_e33~p#p`uVZ=jhDyckhVW1e-tV(VkyJZrgC; zC3M zw3hv_1M4rgHBatKriMqT*~NjtB~Qe{LXUex#KQqkIKuXPw0ZVzyb-G3hWkzAbuf=l zqU#{%{m>l?9_y=|gGz!1s})~rEiS$$MEWN+c+nF`PM~nuo@gi!6r@>ryJs9A(YH&W_?{Fu+|C0}|#+ZE{Iv zqrLy(k$JX@quHi4*F^0DR*T{LR>4YP?;0t;!a?EjD3jM*qBqN9n$wVkwobFkrOlH~ z+R&sP!C=M7e5n65?|m=h2kcSWmnDK%J>Xr}PN=Pi?@kvUetGTmWMk8nB~3ob4&yWa zRTusBP--<(j9_Jz%?TBvCnBHB6a2}$dj0!E+ZqpuxI@C>J}f#-ZO3%+4WwPLHDet5 zs{rneg5MZkprTI&hVI43@Wy$v=&_!nWVP=GzENRO0+rFlP|2|ujO-M9m{M-P)GGes z4kJ~?8OkaxXc0jI!dqWyVh8RNa_a`|p`3%!N&8ng2#sWTes7qZOGbn_37)oz+GRIa zyLnqZoAy1SZiyG27lm5nqbX-&<~Sq2slX@OiKoMu2>tA;wrbV!*gb< zj+On&CGx*F4kw2th=i3tJ*||HZImr|^@M(^A6@+V^j{S{gyo8=Q-3)Keht*Oo$SqDC{Ey* zQC^2LnuM10CXX1(<*JA?D@I|kXqT4aC>3eVw2?vVQ5T6V`A8gYx2J>Aqh}!e*5w?O zW(Gqd>GZJ6&OdpV>MpHcM$bAfx;04me{rbSNf0|M;afz1a!8tiri7 zf4FSX_ur#?r>?hT@atydi&t*erk>ZqU#U1hM%1a4QFD;143qcXBwA*0m1;L-56x<-&FQqX?=+DCJc@g601IP zX`o}fh@b1n27C7Z~P*YW_&xQmi;@ zl=Y`|Uel2!$8eCXFYU@D*_55|RXZ-V(fVQ!BZ`GkBLCZc zrU~kNG4%=}w_AI`fK@5B#c79>SmUWzt&AArc|;9d&zAa@A@dicN0Ji^&`pPRdA*EU z$aP+z#rq&#ss}IqR)y5-6I;)H)YclPvyG?Suuh?tRPn6z-|~MD=dn8)a%+h%k1H7H zC>GA0v~+k&ano7vEV7>g&y=YGZS`EN)qcll2W8Py1)+_;4o_dIZB8<+ot2|CbT-hF zYr-G{W=jO{L5pgodL20QoibY78RA3I|M>=5cutNgP4+HD19xI z#F@UDIX^q}{-Smsw2EnsKKrz;AQ(8QfN|f3wS6>xsrXzL!ZI+}KYx+>+$V)jruAy^ zWd^jc$B3;3T&5vm#BQJr7u3=%%1~`gk8_V(I3`L!X76$0qw@VYpP{^127N|0LFAcY z{#r>wjvUs4XL+RI->nT(#T!Xo)dRWv@Iks2(7IX1UtstB*~)2A7NUh? zQ2jH=BaXvy#=<4r;7(`!AA0-`boq2VNlhG!7@CUOXC@W%yJBFb@$faS#bA^OjNLVX zh)p%JZ|Uta+Siw}NGf29?L(BM=dtkbSo`P^fEa`!VCTNpO;h}yZ#>WFOwR5R9D8?NOJBCE9m~3V z>K{lZ*L2VN^qH5Rgo>O@spQi;VxQWvsITJ&7j!m9NVM-{8!TOBCMwaewXYVPv!|W3 zeZ;&S=mq_M3-M4!d;#soacbS<6l$uv;s8~liLj=!v!)}3d$UGbxfSthgR3ZK;=0Z^ zw&a|~=<|Ie#e|KD*#0NX0bqA>$>VJVFJRO$Re4(t{0v;tb(tZ}^!Ufg!@J+znad4U zTGlR%xG)CIou?}jGksQst4N;UKF)X!LKF?&Ym$7M$*FaBtMO)`)!RE+j^ zztmpqv8A+sz&mS5X3!M%!--%kj$R?^dLeKhJrB;cVUYo*llwwSMPC=~7B^J^bsW3QlCz#lH%5Yrs2m^p6-VJzaFb-Y0ltKO>mt?rmojYW=uK;pn#$xD-nDnL+(v_b%{-aLgZ8MhW8A5d zhw1#c!){-OD>6vK4OlR>bT43Uml<>~PL(HxwkHdrf;xS~V>u|8uU%9IudpKQS)TL9 z$~#uHN?o{clit)}f%;H8l0-68#~kls>HMHJD!w-n&7;%3cn8=!{&_XBwa*TlyhX$j z3K1avF|zdx0v>v2Dcf(elm(~YL3+Kwrgp)DH2SBvRQgR``=VeKc%0VW>-_PNHaRox zeg>fp!sRIN`N3Tyi-;2uZSM#heey^bmVb1}YzhfM{S4w_$>wQJnD5yOJyxfbp%2y& zjmu=p-gFEU3r|ssDwRRe@dyaL3L(<}L({hhGWGxe@5bhSzvX@{88j%mvY%qQHpgXVpFcUY`JZAIp=r0KfmvP{@EYSIj`sI`Fz}- z>!$i-vLQ#<>b)YZ5(E0LF9!R~Dh@;PbseOQcv#JG`1IAaZ%`HW@*#PzI_nK|7g6OU zUv{KO{I(_Z$%(ISWcWsKRp=1i2VFu3>>vP#nVv#>H&0plfxSA;d^l^V&7g9;tBDbX<1A8P8mW*A zMdFY_UM&ig+C4aI*S z>~92YyDC8$@wgnW?+Y^!M~$b{t^q4hb7?9I(bq3Hf)?Fy-g+Hc%H_#OLMM}hrbi-0 z%0kL-4U#c$Uo6C>6~x97E+nGG?R0P#rkzCsLsE_o&xW_2)PH{*D=zd68w4J8(E52y zX#V!(_tV$HJ!y}B4Dw0aY3dux%IaRvt-mJ%Dt+#*YcCRJEt8%#is+F7xsCr_Aasbv zl%4igV}3Y41rZ-<08&b{AkB^G`0`6x1#Y6|OGwHJf7VYuMKFTd=E>vCMmGB5qV_Ue zrCCy_JM*xk^3@7Z%r~TY+Kq78ZDe&t{N3m6`-u3}i~lJ1z&dG-2I!Uyk>}SB0bAO2 z&3T;{pnxXQiwaVFMbom!dbX|-kd=pv5Jvu;O?eO`CE4RH!+#q}ewuaK19kW3?_V&k zbOg*u74kx$e4$V-n58&p^BUZ&4GH`q&4c%ilqt~&*9jEve(ZsvSppuVrSnk@N|WbHl!}V|@L*V~9VwWr$cf7a2VS1i-+IW07mR6T+I~ z`T}&C-FwoM%S>319r_iF2*N~49rmF-! zzL-?t=(xqWFa&J8~c0`Vi9|GLM+t~8S&XfE$F;z>D>t`B4X z_(PN~wz!r?{RbXX@U~m;_JlO7U2&7(5YkRFhMYK0$5*spiv<(ZW0AXuVHeEwuF6A> z4QeIKOFH)y;+Y;j3z2#l>i;_oQsNI)HP;EmpX$&u-iA~K=H;)9LMA(iLWk6N(Bcwt zp&A6Gjfpa?s#oQ2ZE_r8B9Y+Eq6*s15r|_b`pwzS;+o{m?kz zFau>3L#Fv!k)>J1rLznVlb?s=(poEC*65}Ip@U;g$+=H5(D}shS52#;Hk0$vYyCH- z)aoYX6bm9B(BeWz8~YvUCvEHo_U$BJUe!>?`=!*pwN<}&e1Te#NLPZUMO^pV&7r(D zHBzI|ei+D6E58=KO?KUYdz-3mh*e5U)E+}qBasj<4td$V>_i%a5PnUn_>TADWUd+U zNTz5&<0oI!44fVly@w2-=?fV?kOpV4xun@pqS#!fa1UO2>xLm>_^pahjIFPJXTjR! z^&ko&0_LD9zY}Bi3X!xK7b~8=7SaF(^15i{PRdxnIm%g=5sPmh`{P@^Bs31+OO8Yf z4AvmvkVVpKba_r(U__i;27Au6?=_cwPblz7!9G}StPvJ{050(;2X%o*TL39e9KDZR|?hZ-4&se(0SGJ1_4 z!<5#%{^bH4=0-`;_SsVxn;(gpWS|M5#B~#sA%W3>cVyvS1~4n~DV*9{6@u~_lJQ=f zV2!&WVAKbKo=xO0{QRgtq>xfL@FyFADuc>R&sS?J#ew!aYfle% znT*~GWm;i&TkAs-{3|D6Y-!dhgrtj}kz`Z{q}$0+X8dA1m*7lJ zgmaEiBhkWRQ*tSw;a$>8^q-;TsKlO40gpjv6_##;VCbAktcSLdU6l#~%EE$RY2e>G zDE0)rG);+_*R26``jGC1y*8G9Yref-&OFZV;hS|EX)JYX>@f!7|_} zdDaZ*{Y|5=BB33lqJ{m}hoSp-R;YFDW0j`@fe_|Q-g-wK%3XEdQ1;(^tA>$;CPF=` zyx5C$cpi?bAbs-s=&CwP(*=(d>|(iJ6+Xn#B8DiToc?iPPY@>rGTMr=w{qMy0Z6_p zAgq>hC`}SiVm>Jf<6M2?eE0MEr4U=sgzT2Tlntr86B9Rm^Qb&zCA|aoQ-*Lw3>AX( z(uc)~slSD_uVv#ULCRC?SFNke+e5c3Se>Sl zRzK_PpPOxG4Ldi2qAhTDV(V8f41Y8V`ef zQJLX;E16KiG<-Qn@@GJa$r~ZL1FcRac)dIHJxT^ogg_Ak8L$m$4jWNt-oS{4X3bEp z0QuejVizHSfTzRS&}FJP`-c!!H8ces=+w1&)}PqcZ7I7nG$6D=0IF-lG`<`1FCHbG z{*2Es2c?01VMVUj!C@z-2ew!@1WdL!VYA*Xy}6qDcVtlR(ou@Yxem z$9rrqpJaYow4Ou39R%OjL%ib_I?iL$ewjb!K+rq1qk$U#wC2JZF-w1sbcXQqpsyo- zGgL6w4IHZG4Iyaeywax{d`EwT0wEzncGtx2!+`aY$45y|wJY#j@(?MDav>uR0)=GO zT7-NE!HpO-V(jEv~!#Txw_;w_{!;hG*zC=J!0NlN>1jp29b>OQa_Zx z)VunAEjw;T5~z+Py%_6*{PcYS(`>-{%xZ|6bCon$?9|HmKKRmuQB`y$6(@_MF~k@n zyBa%C@;{#rC?O6-!0P4c#WFj35Xt(uQAzo?uofG-5|mwz+pFBvDw5u%v;FeD*3xR> zl4-beNbbCx_`ki?lapB*OEqi#q~>-GGZ6)G5>pgk8Bs82eMk1Mc}UO~;}25DnP*lD zJ^(15?!I=C?^71dO$r?R0;PmhSw9d$?e+F5OxUYA(u)AnBZq!nKVebvTd*2OQ%5%4 zjG?c29qC^8W(q2|WkUthkD;r=djz4^W0mY*OX_C59_>a7@Zf@H7#u4vrPvJh*j)U~ ze=#6eAZt)c?qMhb{5ArtZdw5@q*f!&N8KjFCs$YKu#KS7-i zlzDNo6LRcz`2&_g-3xsgNj@5Yf{Q4UGo0TVPHUQ*>|G5UCvN2U4y?HZ^m}M!vpJdI11q80 zX-JF?xh0;EAdc}=mO=NXjoHOB?1OggYam&dvMP8pLjCW#QddeE(1`)QNB=!rUefY# z%M5wOWE4eyWPNAnPISZ&X?+)+#K9aDGVPYQd;Vm>9zDQVIifr3#sWqZmu?(<($KsE zgL^}sxC>p@n$X~y>IORxeU7k=(sxma%LIb47D2BHmJohBH;3HT^0UB3IE{d8u28&D z#86f3YGZ6X!;-R?R{?C}6!h{<=KzH|;KM_jv>)&@x6ibbl-L*|V4tZ}L&3h!>hks} zwS@S=AQ(4NQ@CnD9{gNWIBcvHKm6OJ}SzS{EUh6jCkJAaZ>lsxhU+uV$P#O1Q=kdX5NGE6@|M=SfzR1_k4 zlkK`g{6%vxum{^C=s5tI^48~rUY2Z+QBrpr7_@^I>Dft(o3GkQCLNw;-a{OihZZ*} z1qtxl4*l3~rM=62H)1=x=ZvBon^nP136U*)sprp0Sl0bDxA(0*_nT44=MF$X&_!`! z4hu?qS{h2Dty^)+3xDXggB)*w_;{dW>|;QbYE@+TF|yN775SagSIjYb7Ad(K2=eF+ ze&r~{^(ca^!h`3Cr0_>M=T>T@A&}PwF51DX8Ce-hrFHzRGUM3{h#o;(r>+9laByt- z?i{VY9Q}HzFp1ZHK(afpdsdED4w?FI{c1TdCHD%(ci--(g_r#Wt4W7Vhmp19I05j7 z>bU{&7^kz2R!#NDKV01oVP|IbN|4%*@zLI~tUN`uE5haDP0F5;kn#6A^-D@#sW1{| zsCo-9m3kP0bgO;Q~;RvE1_`p@)JEDIa=JQm@K&?TBG=#L5y|qi0_XX>RK%xH= z9|rUDAS^Cnh>(EFBw8z_6-PDKU493b{o8;Y$|cD|6nJ_z9A~kHjlKWXQrJjSC80&K zd|MXO3{JhYZ^!v+LM%^v$E@}cf6)Pg(tZ{*a8S8_;AIl}A+^6pSPY*V5fAtn;-qkA(Rb2eP3 zG`RSqlJ#9HsuKEl-nBF z+1Nyd1mBcBkMM+r&&cXAeAa|657$U?s0d8Gf%})}xjjN8Dvh0ju6L0ugix$uKAzm!*b;kJ4xz^L@6$ z%myH!hc>v7vqiMXVOn&6GM}E)E^%_~0g4Pu*HZN7A{Z2rpP#8I^w+$`@Cbl%rdSt5 z?ukQH>mbN%Y%Ri3em}6fPucIH*nekypn-%fq4i}Fi9gmm2A+K_mA`8+@V8w&cm`?# zBNOvT22sir$Y3Cx+opX3{> z2bx-2#0)k4t&-!U@^yYKPwJS>RsYO*k~viU@tqnnAGu~$h*}e|D*q-&_~kty$StRO&;$NR)}NtZ45Z+_pcmqEomcZpQeT zepygdy*nhk_lu}m;SH=+k9-x8x>fHgYX1hmU&)v}ZXByOzu%tjmMl4IOqX+MlY~mI zyS3=pRDZajqFuL9FjEVBHV2cwf>iGnZUc+?jc0ibeDCe;TU0{2X1VCt1U*4OASW7C zrysG;`n86Zr-qhS#IBWA0b0~;N18b3?+3%A!y)nY zS-eM7TFNv7rXvLB+I1agLaGIij7b_J{5*Zxv=7iyHxT7Hqy-17H|rlsF|2D)#dZ6l5(71M`S=imPpM4U`36Ru{Z!OE z6FtE`hx#J{*VNai?}D7ya0hF$6jGQQ0spd@L90P(@6DAd_+ryWLzlEB27}yy% zQVtY~AT1Igfs@jDHqy2k~G#RnvZ4?;h>BE+=IyF+y;*buw1-eSSnD{`blc zyVFLs8`fQlR2p$ieQ?3}$ot#Vt<8N?&ZX>leoWWZXoZ^!H*aR4;I~%)Xd2+|D!)B> zzW4M)_v@0LRMRWtmmAshfiYZJpE!0FW~$FpYxnIBu)8?G1-`}NY2^rxf< zl%u~Uk;3RZloMm6GNKg)qQMl?ki&d;3%jlBRc+~CJo|d!Hf^OV>~*%c9z-s^ff>T2 zy*6l2a}g0sjh|W(fNVbm?FWP}z)#zrhc{)iL1&?earZ(as zsTP^J!vI&eiF_08l1?@iBLX?3j$sNYJ4q8MJ*9x@BknV|;oEc#F<{}Ascgs-CER}p zkLK_EPDBfb$B7TFVzHC#P_CT+^5ij~IGz;oQ@3@Rsou=N`*wmo7#7$Z1ivA9q}#R# z#ZwT@nN39WU>m?phXzY=P@RA0xewLzN*Ca=kB6t-`%Cc%}ZSjTFg|V+u&kf z;$St1rX)rZn|0}>`vQyxQodtO$<=ybpi#!Dr5n$T5PWHCg9Kl%re#oSdo;J_G|QRl-UqB=&2iBGQz&ZqB%`(mHp=%v~R~;}Gt!^b`j1WGmw)`o|wcYunhi%jQDsfyr`#Gu^U$ zArd7j{7!^oxC$q?Vu`Qt@*L8YIpAY0t$$Cqgq^5y*I{*;L`JAjar9-04dR7Kf5V~E zZYI^@I$9D0lM!{sB7>2g6;qVBtnfEiohgy}3o}I;zeuYZ(6gOVfG7Nck5od7X6QOf z^c*%(AoBxHN}IN%xv-ImEqdDAXD-gl_lK%2Zi|Iaby-*GC&{^-rqJ88ct7tEE5CTS z(Mks`hyGSc09TDk+m4W)j^pjvY=?=Q3=#@-*7DiUBh|x&;N1$`!yoB;8>OxX>aOe5 zL4(@QVvprM?;qXZn|iE5(GASI3=AI;oX+Zk$#N}fV3*!JAGbbV4`z7_8qt6Pj#ghS zSEp0|jiHO+?V0CE-xtQ(lkt@aoW*5K8?hzDgUx3Bo|pL;$y89VY9%6bhiE1J}5KjExvA0*O-?*A#D6SpVQ8@sORhO z*f*Y9%{G*LefB!^!y{wyrb|1aT(j5F(vI!hq#xdbcOFE(b3&@RAuZOQYr;pfM6W|q z0Nl+$BLkQ_+!N7cznjE1R_*UI&Hefr$#ow*kXWa$mTAO>LH0-PrhLJBI(~2-`>35#w9NH}Ea0TL z5z^Cu6?YbGq636O+B|^IA>~%NJ^h(FNR@kc2KH%`js*SYJo+`Ga!u*@6GcU!hs|Ym zK2&zMEuH%7v+z$HHtP?4#C}j=@RJ$Zyo9|lB_|0Em90Qw%)J)|Oy+9wk>VyicWHqg zrziCk8f3ELI3yrRibjf;iga$t%x+`{5(W9*P3P|JsFvP{ihfMqFa2x`W+)grx5qlV?B##;pJF4AoUYac1qL$2e+~#AH=p>2s95qecUk| zL0GOtXnU0LPg2`U-#vY<1X>`q^;zp-;&a>fzn1YkmP^Xa=KXNuU3!8@8V0J!l;qQOKELFwB)*A<=H6taU2peno!vW7sBfKL?1; z(LGA{;T&xWfidC93bTtUL>=Czdqn(HLBs04d_ia$wtwETg8wxeFfs>g<4Fl$u_@pQ zJzm#25IYtY6=18^|JUWz*7P4isCSnz@6L47N%j3H-u1FoUyN&)na=Zai=Cn3$ClNF z6j>hIJ(~s*H*ZeCG86Ck!M1;Sd_vdht19S}2B2Xe&R^)}MpNfGbuD>i^L^Zq^J>R= z%dd4|JljAp|5M{oTOM;hlfz_IvOr)_Mga~2f<%aBm*b50BsR6uGUm^~t{;@!D{hSR zc7^sbb8aH6H?z9oS$c#WDLG~s?Z3-M`U&`u1L&o+jy5^Y*K8rejrMquLM<2h!$4hK zjF9HIH<$J(%VqV*q$cRL4ZNzcAuKQq=)_->0*PNBzxOswQXxt(u5_QoN9D=smXJV& zLVMiF6Ky$*bCBXXdq`-HBzZK` z&UDhs{_2K}&_W<5TRW-JWuc6bUYDS`R|J3g^wb%TE|d^5W-ce@R@#pqX^^(OQOAjN zpEyt2BBWg^HqcXb15afFqRN#X#kInH1p4N8f2~y3SCg5y?F27o5`q5dg^aFc0*ZCILg*5RzXS4`Qb7SblC^dUK)%RHxGF&3Vz#xU zG&V{#wchXGCn4%qG2)N()t%BsZHF*dUZZvt|KGdFl|<@>vd{~AsgtY|7@q1_A`TCU zcw#7MB6A}xeC^Vl4u{@~W%wc&N!nQsHmC_dL#0UF>0b*-m8(cNy3Sp)dknVxN>*vF zq~}Sh`E6vXMH=~!c;`Xwr>){Ib{%NC-@uCaoWY&c=0#u5WvcCx29k7qP}LNB3U_)= zah@c?UEt32Mg9AS{KynZcM7k*&5Ej0lp?#|?Z>vHFRSNxW|x39FL^T^kYxgEw&bBgXFql;bxF;6D>))qv{-%X zCoXtR^_bjLT;wcVjgSNvyPSl5lt>nqM3N!_!C7SHNT(&+a&+Z_bYp>1Q{6?|%jL@` z)$GmJObn-_Gd$U{)bOUYw)pl*oE}=sMeinR?|FHv*HxBcNm2_=RLkeHHr0K;yks(^ za-qkLH{(hx8|>@jDsem}oVr$5Q$Ra4;cA1>e-RKJR615)yUk#;=O#BzwdBvEJK@G+ z1A;Oi;cH1hQ!A@5t9i&wcBUiYS9;M=sS&dw&f-oqvGs4qI~8=ihZHAOi#sU?x<5~n z267aIy7o(5Yo)9RDrFsGeZ4EXe9GQz@Qi>(V~B&XmpDx8rBk~ezWkJbVpjGNZC>#V zQ<+aY(Y$(LI5RTNkjIX+-+>bLLno;(lFiCtj^rhY#%1TLLZTpe))YBA;0n7)vb|i? zV|t(BLD;6*N!XsgLV(rJlkY&MNiP?D%8|7mY15z}rUYL) zNULIbGzj~LbU0n{;OC&dWfQw99!nb{%A6n4ubQKd#r}<+twd}y8RPof-i;2cR{u7d z^o>08+y$mv&Z7ks=0-l9oEZEV66mMFDOZ^wx}<&}S1Yo5<{0m*`jNb-&uM}qY8IvE zYNMmRoqOFS)1b*XYfs(sDvG6)Q&8v6IG{j(Pp;n~9&jZH+OY(+c6#Dk(7Jb&{-Hl` zCUVt!pa4dTddigJ{|v(pPgKbPv-fGwhAG1w%V+$?q%xo*9+cJc*_Io&Tw<;67E(i= zzaV>DN*K!PY5@0E$(0^K5_kLFe*~n`L2l{MGvCV{GllAWU3LKYl%@NB%_+vlI!qu1 z^es)bQ91v;7CjEPd?hoLc$^j4tkE#j!J70*Gx^nf4Ehdpgtscvi72A*G*Ec3Z*Tvn zbGpD{!9^YgJI^A4L^)8nq6**?ICI)UU|gn!hHqbfs~%xhaB456=@9Fnp4b)jrowi9 zl4PBOMW9Wy_&TTbuoNxGbh1m4*PYt!+FCG`@c4U@mlO@Lk_Mx__)wKjJd%yIAL{cK zoL&?qGX6%Qt7?8}B=`fFO6sx#)O^u*1NHB>w%e{wUXiA{Nx;%1N9OG|T3KyG%}=(j zyDz61^sT0w% zqDA8+AE_yQ-bGI2ev{ltF01KFI@{)l7b#0o3S6JS0e{D=3;Qlg0gt-@fGha5eC5B> zR1BS_+WRfre)&)3l#2iksK=@*TRF_Yeuq3-WYU1OP1K=NsW$CBF35;UbKcLt@=?U| zAq1wBh*H%8&B*Eimpvd8B?YbuoP@x#xiDpQMV2VKVHv`PIk=$t=&NVe2CXKGpQaRNcN-uC}Loe9|;-#RHk8SPt@R}}Y;9dMqJY7T+ z11!xs;7#UVkjw(pfHf8<1ZWd{n6+$C7+LF^&JT_T?LawGqd zDw-c-A(Mk*vFlDnC!%l?SB`n^^)0<@joWHMk3&~$Bd)ChEbg+GP$^K-t0ecBuOg!q ziue*ntWD6Oa?#RxBEa(av?_OrqxMoD6(VZ&2j=p@{(9%f)kpOg;9k7QV_gi^6LC$QH3qZ9R41}hXSMFqgX|2nQNyE{ zYk>UUVz~Fzlk|rhSjSc6zDdFGQVX5*HWcsl5ulo3d4Eps=LG1<%5gdB6(I*v!Rprn z(=}UXRL*!`{qnNRcdPV(O z+c5%W^{QTmWi7sXpt(9n zJyF*Q)?T)i?;UtF z>JZCX(v-2h2c`iHK1r`yg;MD=yoPub0`hk)?*BY|4ZE zN<6|>Lhsd9(1U&-LVjg~^T2dJh8c^aQgQi`D#cxO?0+sWzSeABg-DWBIw+{8LLlX2 z&f=pGp@@$EJkP$j94S58~=_>u27A1 z*+yFracIs}qoh;z^hST)pBc?BVq|M_G_u8Ey&@~j)+$Z6{4seiRMbU@vGGR#x z{>U8DfJXwqY6veyi(BR>MO`XPfArNzYyGXLTYKFMiZi0^kUx{eufEkLSG%N@oL9r5G@uRboJ$TNTQ|{c{_|HHOO2V zJ_a*}zajI*bj!R!bU)Qi+ji>d!QWyeN85=8MgBQXX&T1^i@&u%I7r>%*eYv;jA|%m z%jQbJZGw%9Gta4Y9N)uI5oaSu(ftm$RiHD72(Hx3h+OP)x0A96_|wEe=lUb&xaAA` z$dq((z(h_EJ60X}bnNl*MR9gl?3wV(@9d`RFQ(x>Sr+(M91DU@9;rD41m?tn<>h=j zt+eH%RYY@PYDEz-AKhxfPrAP3Y-{FJ;(-uC#a z?QYfNjlv=v?crO{>Sju3-In+5p_0T}XXm{^tPM9){{%rf7@{r38FkTD$qCk{Iuc9@ zQUaX!9Wo0p@&4fQTzcXvznPkk_-&Dr6Wg7v9hsC)@0*czIKm1JroVkAk=?dhSH^tvsHegK}--HW$VO8?-d*Juf zS*R3G#q{o1C{A)97RIr;LzGy8?r~Ed_bqg^7E1?39z%yW+)!l%-0x&9DDLX_MG4(~ z)y#xd{fwg(RO>?ALtAp^Ax)y0daxNMjz#enC9}Y9QXn{i1hMynC89GfPeSlUa5gD9 z@{ozcwJsQ;KTC{m_{zmSU*hEDl*($x6KcA5##BZvislB)1B;lR_PN;H4d zgY=YSXKr2A(f`u|R2=)f|GVb>ya%ym)jB^|!9U135EPPw?}aYR<`i&wSsdV9Kr@}0 zMXL+q#MM>F2#Z}&HM5TAACq@O&=YyD{4;}G^oR6#x%q9=G^8l54s2WMXSwFu27kVI z;l{nVJ^5c{&4Q2nu_#|=)v~k%nhf)Rs_Zk%l4z4w{Ga? z9Fo3kh1wh~$urpf7&LGZp>0NY)1OK%vzykQcac*xf9 zHv9!9>TvzZ;b1!603Jlwbw#j}wI4~m8ofo{=mUYEm3x&;q(sm1qYCM*7mg%*K7Zl|V7th^z!}CLt z&AD6ave3Xe2i$}8^ClPr#12Dru@CY>+MT0McAZh_hNTCzIpPNO_3{vhHq-YY4l1AN zB3AxhzD(_loK-{6{Kxw^Mt}d*ypf;Xx zi?Lp>3FK^ax^!gzF3W>O6SI`E6P81f4U2&ADT%~`!iGWdJ0#;Ef0eo8okVF-jwXLK zcQe@uHmcUQ1%l0uT<8h13>w=U2;)U&W|E}%P8{9Myv$6ZCC6q_h!GypSqYu$ubM@t zB%_jVUA^~o*ShiT>fa6ayE`?#_G=%1D>*S^`_ZD35R)v^&$Z`Fd{POhEJa22Cqa?b z8!*bXxQ#N1T`R9^XFQKLD=+P=hNN^K z2NwXXww8Mxf;(`ws*DM{AjuETxp6g-#;b8nk>4SGW;guTtMiU$>Eq81s;cz9zI4G| zjDKK}wz%unnGDBP>QU30njJWG4O})^)n~(=J74xUdzG9V?pJ=R2)A2WlrV%plSPzf zllPT>PY);Up?;6>Z9I)DEPx9~U?uW|C*&%1&YRSjVb-6R69t(`vMW1Ppoh^z#lQUK z0d+Vx7XQ$(Hh!)#39@t9o9_M^p)alE<7gTv@GM$bGZ^`?AXj()=o@vq%M&#EPNf*2 zefm4TYMdGJlOiVsMO%^eS2lrLcs&ansHA=7z~-g$cD%T#{%TQY-q&I`PIkzBXmUu^ zqHVuYLh7S3FOx`91szzlsH_ZpbI_Bcc0_P*Co!-DFDAUx9Y{eZI~#QO?&1)DxEY?6_SC>F)UP&#t@M>;+53HB7s!ez;w_v#k*;I3RG(FO z91Xn_T~%m;1Fs9n)=aZQl3ych?%}}>DVW#Dq4>sc*_7QJ zB_!{@z(L2*FEcw(CSSC1|G$|b3%ABBuvnFPqSvh=-E`~oA=A3^JIFW;>JGdGV}-eN zH}qfVm5wZ!a3CMkQH*Feg4smiB*=E_QM2miY4r6Sn^OD^y?uI`{MZrqO&@n%#_A+_ zMpfRpuM0gj{S05!dgBFZB_;*$H|^^!Xgvp*@Jhw^ZP4dX@a^g;;5_saq=iG1XE)?b z=7#0G|3}RH{s0M}$0Impw1@w(OmQEfEcCoB-ka{A(|}A>xBw-BKJ}`#Ieonja_coQ zoL0=<=ig)}_k`W`aVL4KBrISo7_Au>wde`v# ztM4Zz3ucVXd^f3^Sy1icz7|$e2}^e${f)YJ+yI{v@M=Ob)nXGSoT_>ik+lV*Lg|mA zpAh2}QrT!h8@=lAI5!Q@J|c*rQ^L8V#&jrzjT3vKAVgns6YNb+O;BpS)-$DQ+C5fH z>Jh)?a;q6=Fx%)tJDMIV13G?itG}CeEbD;E;Ww|riVJ0y) z=8AVP&-TVj-c`i8qn^=e2f9*8jTu z@5+Xwy505{&C`?RI8th>t2nI95HyM9iHvWTo;_2H@0^+t59Y>MxlI+2NpZ;%_0x)9 zS~XfCq|K(-N*wGGnRa{`iX;V&Qp#viBlyUlP+T^)7gv91MEzYS4zxQ>2XLf-xtw+X z<2h;*2=9Xz zPuFT-@f9wwyfR;ZCdZcUxp7%j=KSjMB6_{zyGOEO+=Se|)Hc=GO=NuO2g@|zcsy52u1Axai8>I_eo z&_fZO9}m%6=Z^0^)0*Lx86GzetB`2CEzOWe95SV^F*H}UYUqz0uJ$-y*Vw_XSZKBp zSx<$82o9&ID3_kK>a8MNx_A~r6B8M5bOVm3)ojh|h=P~CQzw?mNh~RGs+P5RYH8T- z^X$XR;EgK2R1Qzdj_sie6bDm%B;+Q%TuI8-dKo}z|L>|iXxy?=g`I!n;JEc_2}!O@ zRKj9rK<0MJRTia;-!mw>V*_maPJ}OUr#6z@yvHpw5dgK?!@arC^2*`w(FE+wfp(dz zWMUV2aa`-iq|{xDd`3~R8~W6H@{b^ix507;>rO9DZJSYVK6P}~kd3OFYL*7kOGBE*XE5qMy)QaA5SOB)2`mO9X?yfc{Fx&c z85>TQ9P7rJ7Q`Ov4MDgYAwT#G2rfSGwtY&T&tjQ35@m^A-#Pq1*hdNvJnX~G{Bki-FTBSs(Vc^uny1_{`Pn{~gpZ7Yv zPNCc}qC=dYzN*1!5h?;c-zGz24ui_QIXkdRDSi544Q$-N)r(OcPNGh0zN`=q9? zg_|dyO7L|tz-R1NaF^TY`QiulP`OLR(M*#Dt++zQoNXY(p0IrjVViaL=ET=zHm(f= zT{3;XkV{tgtlR6rX+hJMq_8j;2U~cX${ob2s)+MM|fo z(R`X|&;C{oEI-#%jttaG;|789pRU7As}9}cb-ABH^ou{`j`bK@z1CLWU&_$-pxUf+JG&Kr$|@rv5_P>@J>ii= z^q}}{`7s;QP|1fuKc5-lZeM`W3iicb7(o>v^wY^W@vZH~X}_#p{85*J$mWRM1u&;w zp0~4MS*YrrFb$3BG^W6ADN$8saJ}r56fBTS7OBtd?!5KcCS<^zwJe#Uvi?6B1-;dU z^-gMbTj1dGWpWh)I)|(I5N+>1>3I+DI*CwQ(VwMxxq`fvd>APvR`wo%xN%(qdbOi5 zX=suXpLBsrW7AlDkOb(+a)_#EwO%NogI*g;W#+drz+6{yCQF@9anB}g7msRcgeF;? z^)X3W5SBrvdBUO?RjH)lX3_?pudm3dM`XmpPTLU%F0@l3|H+Ao;3<@Q!5_!8C~emBJ|ciXz92ge7EJz{m1u&m+qfj=$tWX*|vF6@#6icg+DVk>#{*pYgIg#IJWHH_~zBV;Favp)rf-Fi!GbsV1y0eYMF=#}WZW&1aVh z2kDW}E*HLtfLB}E1V!uDsxW77PMGN z*xfVA!yUpIV1g9M1(=CbUq3)6g6~QVC+#<17xV_^5QDQo-aQYWxj2%Hc!BYZL0&ni zEKjj!S;Dt_Ir+ducUA9%)xon?zB$zC*bg?l;ta&nAw4M4)kQu~i$1AGDW4tsF8apN z+FK`8TOApdd=}v>C)8TXiKy-%iQSogg%p}W|F7t`9azn>JjX2v=N0&fo|{9GH}Llc zu~)9`X#T!{4-d9Kmc}4IKw7Km2Ht;c6hw8*hMu4$spt+jq8aRkVwnH2^J_I^u#|QCt&HmsYKiW)1K9(WmLQ4 z!|g$&=~Dk|h^+5ou({L|7Dsa_@;i{i7^Ta4xPgM}I+$JZ4|5TF^;u>bJ0$4lT4up_ ztjSD$y`fFGY#5ZnC!SmjbH%pqBhM;v3SbX5!|&-;A1=2dN4jB~rLWIBKf^sbk>-6C zwSMm2Cd7TSH;2fI$Vx3LD#cqdT%Esc+Fe>@Xm35q9a8JJYHO||P^vgmWKxWTF^X9J z1izN4CA9SywL-g9=XKludf165LDYaPDI>akkz%Xz00h%jLnUM}Wex3KYrk4djcz3( zMSaiTQZk8-gGWeMUMY(Fasj$IoLS6CI^`w5-wXC_H1=m4o!KiW*KeV1x!C-s>K;7# z(F++7kzQ3cf404?7)GtCoRBhr2~XNR*Zy_fYN|f4=B~Vk)q_5&%>$Qh2 zj^0`^dAYU@a2>x`5GpZxQ{wY(c!dQ#q#yS~(pVx2ZeWZ^wIS745%uBLiQ$oqOM zqxN?t`2GaT?Ki5n_`6+<5fhzFkFPAV44bCW(%QePY*AJ7)T+|^TwF(w^rSPj;;EE# z|DaLXxNB7mMvCplf0_4SF;U=wGC*DVPJOM~*x7*8Y*>vv#t?RfdQCC^)D-EMIZ*5U zJm}A6*cE6HtQE?YSY`mjt~3ga5G>-tfZ?m8@5g7mK5~oZM8mr@CPXFyeU6;@j?1Kv z%{}mzW~+;|zwKe+bn0S-)k!Ttopw&U34L z%@4gF`Q&F-FBZu!R40sK>+%s5wnpIWoa(IYiKL$Ig%)2JBWTf+@A&72kG^Iy*BTI} z$%Se|@4S4qTsINc;!gZZiISsO;qK(1h6?BxRXmj07o;ljdtqcK)#>EqJY<}t%_4dO zME;p)fuC;{c2^2r)M%wM@Gp;gJR(xWYqm9dZye#IT0qeXuM)(GpNLy?o zUdR5;`}F(99)0JXl)cH6uhaPh0;9kr=YhT@BNbH)2j{b6ROyoZ~6YwG=z=pX#R5bP-<4ngIGz5S6HI3Q1lf!_#;_cl?0yjoCjjP6r$7 zj}^j_9nPZ-R~(0*p1p%D@>SceHviX+#@)(7ZaIB&i2OXnAQ}4UUt!C*dsl_AqE;K& zQSI{GqwUWOQDu%%4!pD-T(Wdk`&O^T2ANN<)&?}rr3#azl2)5KW;`-(`MlkK6F|NZ zNrxhPeE~r`J_RSU?;>R&L)t=m6@~1kz&=R`kP)OqzIfG&RUX=(e5CFp3%{ooiIz+X zIn!s(veJn2Kz|cKv-eR!-d09ah|m;zw`eLTDTXyZR}Q=%3wTc$DJkqYkJaU$`PAtB zGU!ZrEQ@R>135p?q}F3kXER(KJEgBZn$WRJRm&;SpjJGf#_T;btO4AZw`nJmB%`jr_rQev1YCU^Y{kLjpI!Y8zN(fWcNJU<3U zL0)nqr%*?jKaaQ+^r8`eNBJg|i6GbY;Ki=FycfZ9+ymd~y$pqy>!ttP&0=)~%%wIq zlfWM|u9s(24QV=O$FrLBv^*P=mBJ8D#M#+aY(#R%FH%NbyTm zc(j6r72p(qs|h-Tvi2Cq#i(b#LxzH^T$#L&Jlgy7oRAJ2Jg6pbW zy~HmPPKBY^?8{vFO@k%g_|xiW=nOo+O?~h&1{f+jTnG2?=Wa`E>ja}l|DmT?k3P&< zhq{fuW=mL>;-)rQ0Iy@KXdGS zZRMK7j(&0ZP&nWTTb#H2l=vQSRzWr)HAXQ^`*{;lA*8zLiYnHXLN zUhZVO?P6U6YUaLYLF{vQE9yo*q-gGN zz2$vJlOB2d8h`^gb+U{;<|}Qhdf&}%Uv4r)Uhx&Buaiwx3DcALjF!kihw>TpnjF4@soM zA>4b3~n!MO7tM0WGpoR1MsfF}p z{Xr=pBFE5%mi@YPN`pW;?d7XQ<#{oPO|O z){zGruB{Kvl{}y%b#gfn7GceJlW8=M{AiA%h9&`MOTw?bZRN!EDB zZM$IigU6uM@`E?NeY^2Y?X~#Z`%BV`928BxAl*#jF&L z)|e-eRuta~loZ*&@cns>rW%BGFpfr@rxP~AF6thNIVds_-FASdXo7N|&^)n>Em18K z{ja6$>Qlb+o2!5nJECX+ngS(VJQA5#@`FQYL;@nb1(`rNDs-Xg%g*dkcs^tB?$pYs zd38EG=B`tz{m}50Wfz~T87Nhwi56ojT#XbrJ&9R^I=8(B;$Ja(vwYaD`29o9=#74; z(^k$S4E1O|Z9~SrPCE5lTxLG1M?14wLHDlAU=Ey=jqYj4>^|KcpIx4H@Xf*5zE9TP zk1{=GZ?Cc~7Yf=9QN?n9I-BwY`$lV6b2En7Xt&KQLj{bF)R__;Q(wcZc5v`I%yl#Q zoK3lmH&wH78Y-pS#FTC`09g2`IV&5)wd|qD3iH>csPhvHMhqA~T{804Go%(ib(gB% z-h7`GS-EE4K&HSxE#|B4ntPaZqPdNM`rc#!BXGrYc=z9fj+29MGj4-)^)o#FVF)*vEa{A#n%nqHu6L&kj%T0_I;=f7%)}Ztv&vGO%c61r zF#SgVjl6u7Li_YL^M00~k(O1))Dt{fAxiloPQ=~1>LRye@3u?tjv#2oMAmHDVdwkp zi0CqOe-5j3u;m@?1RI&pD*JaOKngeteYYC(+L0GQ7}cUpsmWCvPqV`9Qa+x*y!?pY zz9uSK5!ZI(Xas(KUna|;_S3+}6RS4E?b8TX(lV5Iw3zGl)y0y#>WzhBTp52h1KMe` z-&LV7wc|}UtGlWDb@$sjWH8>`>$$fF@u&LvZ^c2hwL^l3mCU}#HIH^1R-dibUdfME zzG~{(r?hkHQ{OZ4Z{VM&(T+0utYeC$voa?T$mM3|#Ha|1alC^vBB4zfd{MA-ejp)AgqQQM4CP8Mx6}CnrOb2rIbpE2#Ob&8!?qZA0(Iz^%9( zk@5!2>0qm;4>3slX_8UshY%c^vheV=vEE=gk#m~Zzl+v8L~H#?(iTe#`XX26m62p6 zfyTo2?c!H3DP+8^F=SN@;ey(k!c!V}I3>R=V@J%hv8Mi0pl%e(3wakBcM@9TymjAtU#rlVBhr;`oB~W_ zTaQ<8 z>DXke%aSvy?Ca<~%VAFYorfvu8FIWa9hQoWgBld&(U|H9dqCn}5%T{JnbpZ%I)(Vj z5E!uIkmP!R#6weC+-D%Dx;4e38QTetGe{UgC)=-MX8LMkVpRR%3B{+HOP29FwzpY$ ztdiM8SI>|e{G`B(mRShh!LO5_qYS*eQldPl;Vs+?W!8+&e6`V147Jm3+#l{9+pUaV zrNQZ0AK@8=2XqfTDX>4yGSq`XQ#Gwg;2>O$c+Hn~mh9~Wj|9JV3 zm*44^p!pSoiC-O{<%~=2^h%C&$Cx1zSdVR8gt^T^dCy;*G)bANc<&*JonW|Jyq#NB zIxBVaSDpF7T0HeExo?b6eOr>={_9;#jkY88+kJ9f4RJO`8 z!72QPZ9iV0*<-m=wfC?xLpKvw97c^gCZBclq>FO&es9!i-ZktXerOxLs+U65xTLeK z@R8oxj@!3&Q>!i|$njooU^UAzIHT?*U6`WX#!Q``)(!Z?nzjZ7{v)UFrn&gkoTaT# z4jGxC+Mtt;7_|cylxKzHh++f>SSS&{uOK45sfXZCZG<2ByR$C04J@vrl$is^YT4Bo zgoP>#gLP~@$CYF1F*}#D;$(Rb^`d3rbm@guU-^5f%OFwtIzRb^;kbpE`aiFJRiH0i zhKhVI37L0xE^iFJ|Km)I->F+uCzqCFTbGW=l0$Hd-(?V6)BJ2QZb4Kg%AOaOvh=10 zBDHIRg}dLKH&jB=2g$Y@jNIYgmHzfchUgpvc;Us{J&m45tRh%E-2byGV_x(>a8{h{ z^@fd9Eu8f;v?wVoxW5p~^IJOI%wleui4=9i5>_B>)0+@EG3EM=Hh)(C=shm#OtxDlbG4T11N{UY4jUr(Kw&YfzE$FvJKfx2cz-3k5MX9WhV8XO9?}>d@oD}i& zGri7!XwV31j6@B(EfHc9FyDNkgRMkEscKoG;`&OwYmv;r;iW@84NRN9xyhumh2x`0 zlTl?h0W&+iCUxvWWLNv(%-%q*`$K%mU7YN|P6hirr`%)(7K1*N5X@pS3mNc(%th6p zkhYF*eLNq%eM&NAA%8RK8s5~+I5Y(r%d2YIyZrgbYsgXYk#f@FTBE{cadjprT}8oU z#1rOo4{qlD9G{q&qbO?y#h*HdtsjD(RGp+bL#X-b8%gL6VVyo8h)p!>|7QNa!RwHL zpKFMxN=cEUv=f5n5Et~5#S5&EqOVm*SY~{3>_OVgoV49VpmX;bmYX{%9SZ!=EPo@; zeDLI@qd4#0*Fg-DceNr;_~SOsnej5Z*I1yp=1;&1MWWQ{j-q;HhaNvd0Pg7k+CrFc zT>hNzQtCRgRldRHacN?SG`k2gdH_s+)%ZV7(d#or@BL#BO^4Mxvu<_AuSQi|hVGdY zk)F8{?YlZYXRb9bdFizx^_?G_V-U*lUf73m&R<3}R*yyx6op>Er#{%E?}0l-WD;fj zdf}KG7C}E4pZ|hWJukw!yMe&$pYVK%;HDWXpCv^vt7b`3Bb>Eh17ZN#wnDP+7e^gTY(irC(Ls_ku@ZhQGJviyK=_2qiFiv} z!<$1V_gXM_J!{T1KV$#+;7QHnZQ(ks)8e$~paH}~Y3eJ3G)fugs_LcSsx-0X`|M`6 zUSxK>Z`Vh4w2};Js(Za9wkc!D+9!$ZswKqSn!RN29<8kA55P{F`_^fXO)lNtYK?fU zK5J5rbr>?h;DuWTP`jP@y|e4WPOjs#>uJ6Oqul|KipA>S$iLxg;olEixjtsGBM)d5sr><<~GSwmJ~Giur0GI86%wDw96EHQHj3xO8eq=x!#Zms%IA@i1_+dk^Iw2!9FZrmgga({@WHZ0Pl=bG%I*Z0+FdbtfyO3=c}bh zgQX4!sgG1uy@WSgH_|^Jw1Sg;hWo?}7Ae z+_sjvl!oJxg~d(L5aL0VOd!J#dy@lmnct5jKm91FAF$6`)|ut;uvjTb0h5Kv0j2_P zR26}^nfx@Bs-nfR(&S$Ox$)=`m?Zx+L0;4~EF=1^PRmEUtWt>7tnH)-@eeEXC1AxJ zm0$I07Z6^3=~nR6L!>X1#gdWYKvSF>c(9kVjORyT>LCdbax+;Y|($sBvUJw_EHje$MN~K9 zf7nX>TGeCL~>+Z5_q&tEPB1&sD0eDE>-1a6QziDa>KzY1k0=XRVx^{Fo-IYI*W5 zWu-MtWHJF_=d1lHA$z&a;s@9D_@Xb%5t4oNq0NZ00ac433+lpjDK~7c9L2(qOjz?h zs}B&4Nn}*WZ`PZoQxo zxmYOAi#R3!{Jq`$$%_M!sham29cfvi&W&<)g#1hh-f8prx?$Os_Fr84ttqKHFJVub zC^IzDqJPXaH9Wl=f)=>05bYV!_%M60cHWS$S8$hjCS`eU&^^Y*2BVhPP*P!6`qLuf zuo5acAKLrI7wUCyykrb>?IF?#=hDA=X9@eCF9Z>+J}d5IJsW!ZhNi~~F#;z>O2Sf@ zjXHBCDj<1W^8As+vV38Z#oRYjNT)@7;mArTWnwXRQc6^E8L^F2|6=a`;NF~#nx?G0 zp{nUfU1@(@mVXPoKX7XF;`D30epCcmP83R9ocZ#1@HXug(%{tME_GsSK&D`9#2db7 z2`TfBQnsMD_fc9A_C$)=qTtc{(ji8lX;byCGm%UMbJV=0`Jv5S&7>-uSm&jvX@Q9$ zT7BuK8m9IVn{h{K&wcljO)2Y*6|X8c)xET5e^c}Sdm5Xd&v2gZ&80M`L^R%(Pdd;u zSH2ITjrxY?;Cf{b8*TP*7ov4;0ZhYW*c+5c0LIiMY0)Kk<*NfcAQT&ULR+JXb<0-O7YG$X^WR|qiiR%R`p5qOA4L% z2Zz^Y=chg&Ii=@|tKNlufZ?e?b^=F3r%u@i;z&WN0J#KX(lAi3lRC}Q-rcgm$cJq~+E;@VDd3L)lvtG*m%hzpe zh}}>~LWG_R!6S2z1wLgWnyYtX`xVtZqs>{3N3t)voQ!NbpQ58N8D_KxW^y`1i5jS~ zeDqIObm&_69)_T6*pfoZ@ArhCz9F?e``0a`MkC&srT1=lBmI(uY$r7*L9B;(oh5iW zOB+-8?T=!emTczzK^$x=u>dXFEFdMs@HlZ$q3_Yw6{Xwu01bto%P~*a`bQ_SeEX%n zv5A)&Ho@wb(LBf(4UiZlU7MR)rAj@dVjMea)>@*7nkI3jyZfjiILUT{-%h8F=AMZgatl54J*nW&k)u7=>B*~Axe4z1r9{*Ym%mn* zTN^i(0qag)@7e)JYV6dqR+uS1dRM0!7%`_lp>hXmH)YZ_@3X-UK_o+Jk0 zy4;z*fA4Q89on*1F7CidP3?6zj+KYo!)KHGE7DfpnA=3idG|48dxp-gZLI^$HK>{s zJNtBDVOW~@biT?F0}Yhh9^#MIgORf}2PyiHomZ@slvwV*`UmRj$b75Hr3x=c?e$I-x)XBcG3GzNO{~E2ltA4K{SIc_b*LmSR z^kXqxNnG$46e@)Lx1KIDLj=h^Z4$?tN)lG8#A}tCkGtJf`{wm|14f1)(mt^aafv^# z+C6uN$CvSBifs&7B}>SvGD7n>RTOn`7gAAA%Kp=3{DTE$PR_#RY2qXxp*xz5a00+N zbufEL+iCHpI#}uhZgkPk1I7>LY2Ks^yxlf&hFKaopNSI}MNV#jYpk>(s3?t3C_wJyt4KgH9n|E=`P_*d8yjLFRm@)%c>ml zNZIOcx*Gk#w}n=8CJNOyulhMXa(_^4c9L$g()QZ>%rz!?TK* z<}|FN7Hr#I62~2#;}vI|x{N>L4egj#YKXChpIEb;)&bhA5%J(s!*hClD3&^^RxTz( z<#DD$v9BEO-63b{A!*7Un;`d#qo2Nu!he9Z0EaHmmOe&?@9YwUXZ=F39(YP89H zix<9of0TqPC@2RDrYxj5CP#U5k933s_EI$G_l+Tb?|Rh48bRVyd1sh<5!~ozEkU!F zb_1!E)!wP9lXv$=$y)8*CYxifdAgfjHOOLCVlJbCS8GKVhpbp{ar!FiF(E67^wf@c z1JBL@pEsr0NpsI5$w&lgqzhXou@obOI>iDM?5MU|9AQY#KNhsJIKe^_c zq|=gXSP8C)xdE6CN!k%9A`o9l)D-yLkp4ES2gGv~Undn8t@xw0BLf_j9pb5Q)K1-= zX!TZ45QK!?LczS5d-*a-*rX!QwHPapHNpOtjKM~lPu>%^q_12(i0`3~eZ0F}YQZsE z88zZ(Tw#{93|be}XkFau>HR3%c#m{u=a}K=y7qlflKl;-)^aHgYT6Tr1jjL~tn_J3 zm&l^^+r>v_8v@PA{eKc03tgWA#Jm(aF5~&LFyfC2rgRG?uLylei(05nl?HzwcFI#* zA&iYwdgn#CnA0E@!DPUqv}Dqp$FlClAs%$gmg}q}Bu z=p-$ow&S_&7#l zV;BUoR4^@<>G2+*OP+cOJ$OQkEDN+xEZ5@JzKz|{zv9mT$A#T-9=#seRDNBOB7SQV zot#vYpuTX<(`~4gptNr8l+lzLX1SSLHaP@;ZnfNCf)sx(GF*nR)Woxq8C$_114K2* z|96LwmW@>9yvy-1UbQL%2`@u%+Z3Y0dm-UUPVW$|V>35G)Fv8$*jae^zzK-@il$Yh z3i!2>wfrtxV+GSqF!}s1v+r)AmXC7IBQLs9>DupJMBO#i6-xp_)BiHIq=c5^Mf;%V zms}nn47Mo?Hc-<3W&iB^0bA@<_w0+F$iV3hZ-u*C@A(ohwG+;7JF$~(tqKLTyCnOC zXPabg{INlJGx$iy4VvVr?sd+Osbhi}ugm$0+vv@QFV${2W1U@PUdtR{PE~~Hn`~qU zn>D$8(OU>afyvw%9!Fav_*x5d#cuQaJsR)5ol>6k2B%0e;&=%+o+qU_W4;;U@{4eO zzfdgK_3S<+WR34Ff#XoyP^^?Sc6P{)er`w{9h0fP-72~fhcABV(|=>#$+l^Z+J)KD z=F_O8{Mkh4^XQ;0T~d2T8KbrOH+VRwgfFtj_0YETA3^6o0D4N)S4`IigDmhSQ8!&x zm^%P9V#unyK*zl|OyP+g!o6%isZ68(l{U;1dk_Jn!l(QHL^LrYb5ashEDPV+7)1mv zV@xNB-WgzOjwOHE_!&iP-KU3zrPY2gXq?)=5fx=N?#r5tQ;ePTUKW^;oeo^bKOT)& zJ6GQDq%y+6hOSYimfCEt{E=F62sdZJ$2RVb!GBC#eN5%SI;EEx(my5^Kk8GzH;$TL zIrye(x#CD)hW5f66xE^P@?m&W-G*y_kL9l0-#s0EkGb1{uInrlvxX#|yT}-?C$Liz ztc8931_9lk`yq1wJ`C&rJz(>L6m|@qH3bgZv#vt+M!E1A-ee0va(L^WjnB^}on*dW zc+RSFO`V)@!e6;Wacz@HJmARIvugGHX^z#DX8c*jy8_)ZfUkpZk*F6K>Z4~Eyb193 zEfWkEkR{2mL>#o(?)ERT3`rKc5z8Ma7o~_JdVVr3A)B|`x@egIZ-*jtX|WI&8TSE- z-|uDdHSexuuJ^*VwGhrh57jFlHXQn z)n;>`9Q3-0We)O&WicS>B4dRDITP7W@I^G+>)8OP#ghdkbLgIW=-Xa;4)Ug*AE<}k z1s&Yv0b&cE1ct=r6(C_OPD(PfzaO5#-=>98Gl_ypwPOzOVjOJKvG;-ga$o#%M(4@u z^LRo$n&%;V)I;W0KBSEz8$b?|DC+G(_)(Zlw zu1Z)acn9hnkHad(lG~NRS`;2bt_*J^Nt+`a3DsKSgH-{~cLA@}M@Kk2QF-eXMRD#j zaI+OA<=srlhuv3dlcG2ttk)T--nz!_GJnEv@5EiyE*LL(QZ`|#B2&D_?= zy2;N>oZ5B;P9DRMH|<%oI^H_#0d&yT&S)O+6r)iF zymCQRb1IY|syDa{OcxR2bu;LZ1xjY0PAL;xG|6ojJyGFxR*-KIT5^uT*(x)3Q?sXg zZ!!k7)}C4+cxn8{jWQ3%&Lk2T>l!c3)pVTSEtN{JnnW@)txe$q%fJW;Ge7MQrh7P!ZUO?E-#a1eO){W4<%7F}|BE%5ILK_2kQTL3%t z;RBH7uaJg>GKd>=Lhr$`@8aX>R_D)l;QqQ>VFwNN#A-2ml(MerSnijGb&Sz>u7QPJ zV4X6Frx<&HwVNVI4CMJR$S0@`{v0AA+pe=%jt5XwT)5+T@k zXp$iRK;&2die?XD;ZAJUBO@3AHqwMLS#pgmd=31>!u2W;Un$fZA{=d(d|{BH3Q+t) zH;bO~8m$u^w3mGt@q1Q?TleHHaY>rQrd=}jhiQqzvw{ae9Fkq9|L^x(slZSL-w%V~ zuzij|aWJK5TGeI}-nO3iRGv;Nm*u;E;7*$Jr4;7fd`64`zoaRC8=q)M%?l{+U{k+p_duD5?C{BNrsPNXQo+s0pN$ z!8p!q6~xVe9{YpOCm{dF81i>z;B+4_jDa=Kk)Qs*NDELG8Y`1e zz7C1oOiW9DpEu@_c>BAxQv3NsXyiX_9lUrZ;WqGRF)hk|(c;Gbkf0Su%|Ms9Llz|H z!Tnv5(b6_e6PG71N+mlYu4OY5>d!XmB zEbIvmN`a+U0sgBzAqX>a3>PIM`Z36Iqe#A|NUTB&7gnFRy-j5n$@y8YY=G+F$na%Z zg`6S3NsNCJ>HbK0x#X#A3Rbe>$P8z`c?jsM3Fg>5L`iB#X2w`sNa0hu@1h6R=oF5LvczoauOPTS<1Ud&i*Ys*ZjGuWp!cNRu zOSD}ZhNK*$vOMeS_IO26AEMr<$K0Qdt~^LN>ADCOO_oqdhM1|$Ahbw9ur>Gn3iBtg&*b}wEImMKwe=FLd9Q%kXw`&H7LVq+Fjru2g%t~ zrb#3J(O;Q00ruZ=28eei0~$F7nHrPzWxEp7Uhl-;n34fEF>F;Rw*{^+h32prCuGJX z7#XB^$kf{GtERlGobqqC9gFEPc&wOxgQ>n$ztIBloHuvQ5TqKiF($@ zN228qD)XS^=S|W5_ZqvmOwEx=xfaI2p-e2RA-5n6?;l=pq>FfL+Vieb;tuI=5&AXy z{AeR6+=zUMp@J!yl}WlL&L8#gS>(fp9l`RtX^9X{3>JSA?TE|F^cCb#1m* zEKGbNxlcwOO;1LMF<83`thv|)QDtGe2MBoIgJJ|L#Y3mHu%#NCz#t=y7t-SXCZiuq zc!I~9A(`VWb5xV1oLq7RV;TRfSMg>ll0e|JAg;T7GH^8rB;ks1=lQ=Op0m7ijrjP;Q zzo&NiU!e1A6t!@RcS!;A7Kz`@94v`mFC`XXfGdjX1A@TkcReP^D~&v4Tt^x1Wniod zu3=1{E3pPdiU)J}rU1-+H0} zC#N&5EyfPIGd+>3NTe{>$MXXP$rT#>V3r>qF3jkgm_)Rv<6=23vLtnj7y2YuyJ-5~ z7LkqJ5Fav6tLQ@FQ#=rC{jy-AGxT_mG%{El4}4HJc!dsYSR4fta8%J6>}U5&@iXz&t4XB1=;)g1~SnFTQ@coY?5MBZgDLoSr@ z$Dpy~UO7wXof2>~lV*(J{Lh1pNF&&^9AA^ zoam-H(iy6!p*)L5k(MG#26o5RYa7`mEX1hPSsjh8Ov)v@hK!fMoXDvL+Hp`s{4kGfLl@pCT2){zZ%6rWL(9vunH)%`gi%rEImzgj@LkR$OI*S zq$^XF0j|oK{^fNTg{EBt%N;1;@OGIz>{+pm*XhgHAooms6q0JzcpkNcLi40gF=Q2y z9H^*IC3{}E9cS_$>QhN_yy=e+?fEG`Jv|e2QbZbuzFS4ydZ^*6A58k4_&xDr=^Lah ze!}ih6s)Th>z?aY0S~BIPsAi1o;>I=Gj7e7lA<*pjM@PNV@o`@e^drLmO`GF!yiRv z>sW&n9eK^$fS1Zaf*ncx>Hoss>deTTqsR_zpd)@#DJ7s{wi{yGhe-nuRLgUal7aec zA?^R>2GRvExCWB@!R@uMJ5F`PCLc&ED+=3{&!|$>Wzwg!xYlW9NqsA->raGkbE%s+ zbcmDj;+*!FW6JDOR)fsK@1R62{v&wO9dY>fd%MX>KG-G|^i6znL3OJ0WXl&+d4?@3 zSd;fBI_uWSii{YAzU~=)5I5Mybd}gTPJ?{I7yS79w7(S=-JdO-P!M)}W>-l`c0+`I zWtM9AiZ~2UZzKRb1Na(D*0(C@rarpZ_0SZp3DI2tx2M$bYX*_Te~fmej7+*jj?Ae5 zd;SG1x%0d~LKDF;s&F#M#3>EkS6ED*q>5~^3-ZCw( zVO{|AD-sQ1D0?zlq_sMlE`8l&wPE^l>}b7-U(KVfWYU2ijSrk1)BI$%HR{xqXxX`Q z^u8DQ)2uq#55XjEiN{5AG3m(bY^Mwnwl2;| zEv#g5eE(bCCHV{q29LN)Rveh>z6w-0nn$5(FAdld(!L=RcOI0kst4Ow%9%hn4ufZy ztPJe_b6__vXRQHzS`F~GkpoQd=Q1@__o8hHWM#r8hA|Y67WJ)euz6mjSSKgC{ajJ^ z!S=$p*i$=;*?LMNqbQO}2g+63{SDg>-5@*WHIb}w`ggiBbm+i$-RLkozFY%Z@Fhu( z9n0#79<5W)s#zlJJy^rJ^5Ad%TyNE@bx2H6=J~Z4e>?KyuEOi~xr6$}tf1Sp_UfwB z;uWqViWspzH)N;CZ?h7M28ThiN-`kW{S^|MxQG?s`oESewXm}?P*+1hdZkV?7VOwW zA?Y2{Ad{up6-ok=$bd>EumfN&1EqA}ja!8x7SgkqdVu0@p3bNqSBT=PlBH`ra{V*z zC>bs6Jq&GfShDoQbG9V$Cln3woY{UX{p~G^=*6KL7ipgCwZ3@@6a86kKl1VQv+{pN zm+aJHK`sfo3oo`@jWFlW9(-Q+tYeG6->U|Z_`{PnZU|2BJhP9C5u`}e?~;q}P>aGA zUWZ9%Vi#suqyqxK^dF?pmtpO3i8hK6Zfpk;kobD||5{9oHwLa(>Duy-7g+K;xz_4n z_ei%gcwPk7_x}cD2)6YA@2n6wz&Zk|@Q5vOwE_9W0a$H2DrY(}TY1??6Zs5*=NibW zT0#wT%7S-t-3ut-v`!} zkf5wNiii&PSXg%}X-t6)i_Zeu{TEp~yZ5p6Fv39IWJcerIWG)3-Ur1nQUZ7JKML`1 ziA{G%vH`N6{&_}`zE4lx;FZ?=)Z}kJ^>i0{1zW|Aqp1C>mV(Eakx)+!U=HahAsf?y z0OiP)ZoaP?DV=r1;Hx5Wi6Zw5!a|}7RB%n{^Z*{AWy>RgF5ji)Xa6>HX_LI#3!O<$qs350nJp)hHc?}3sTqnb2G`K57ts#8?KH_c0(Z`b+miXy zqURT0)p~j;3U>dKE!oJ8U2yzd4i`!#kVfjZv=raY+F0K)pm(L~sbX|QZ{JCAt?0+8B3QA%CF;ZyjfhQ}(3d|DzlVpvikn-ak>SGz=c0(TvVBov5@KU)b0fz|5 zNZD4fZ|C`b1U7}0D#3?5LCF$U2*%!1X5T6$Y8#k*NdIsc(B;l;M}`WG_y3OXdwOkl z>iPMJKV?P*gD2V4-fM%sUh=~gbK)wG$xr0-Xfn#k^DvMocKk^nf9)GssK|V&2Qq(a z%3;l<(1wpjaG044g;FW(#zG67xxAn2d0)+x&k~-9cWE*>znF8|*;^0IUXAD-N1}$t zI`6yFvVSjVJv8|1=p}w3YR=|7lH3~a{zbYbY?zsQCr-=_nUo0otGaDCv<~|($7$BT zn$=!GT{h&oV|&r`>=Mk9yFXi5`_`b=9d`V^J@KgFwfCyMGZ}ok3?Et!A!;JY3r5{We94ZB?@x=lY> z&Yg5iE@ZjQBplcCNlWOX(^`lw88;cpk;w^v8}xD6L32Ij)vGzWz^eiu#up$+F& zX_X|WjdxdES-ADB;|h-XC+ud(aATF|n|~kCUtZb!NAyW2M*D46>EWGqQnz%SVgRjP zLqTU?gZMZqa| z=GnevXm}xC4mvs#5-r|xpM*IPCVwoM{>EE;u25!?c&olkDusO+xryt5sI7*y-#TUmr9xn9EcF$*StYccQ z$Z1K6B31OzUaYcc5o_&Dg=_Rv4udVDDXjEH_%{+yvf#)&F1;|+p>qH+79={4m{*6K zXy^c<`Mis-*+`j`(Y zT?4z}Eb4h9E6E`+mHyL)I>=9H+>TDIamMMm?bxpn1 zc%?`r6o>ybhR_=a);4iJ<}uHB?x7Rx=; zUXXtnf)bZ3wyt(gEb$LX6U*~VmT;@CoRR#A^;7KY*ejmPU2q+pd@0g8s@Ipu?81hp z-zF~%zn6!yGbi1yEzwkUD~Tk8@4yT+B|&9HsMBMC%lsc|$ zP+vINQnEv9Z%DVQXdlmy$CNyA68qFi(gPF$e`N9y01F8eQZvBGfm7|7MZY+cRTKtk zHl3*;`dy)ouu9H4sKh`;sO>8tZS|6e98%$v6RTLsAj@b4KE_7w#HI!VM*GVde`*qq z^?3E0BGdu|e|(9OKZ{uyz~#=hUi#D)L)4S7L!zmd7ZVh_S`YhJO5Uw+*=pFJx^U&_ zNIffATjClPnQ z`9ba-&Z&gQH{kbVYn^a5ilz;vBnp z7O(cZ!jf%p=k79QV^y1&Svhpx#n`C)c8JEJGk@4&7Mo*oBP4oqW+Y^9?fcGGqGe8k zj(c|#aohOr>RZnclZt(OcY2KL3t|zg$c9gBwgpm+K|B{$Q za;I|43Zs_hqh$7}MTTV*5JSYpJUBq2 z(6Hh;G;F_cWf2eEE9^_anmD_*CkZ4dVR2!REuhv? zTmY*gYl5iMx`2vXMFXXZRuE7S*)oZUSWvO0mR3Z9Xwhl~#e#q^K}u0k38F=ekbqjE zhzSrOWSRVD0={qie((4Fy{^_?F_U@bJomZJeeUO(8M9T_ZOM6>30#}|fck3GKIbwu_~y|H^cZP@EhWk%hE;RK5m z3n|<{{VFbZj%t13%Cvq?tjD&84&?%ITIxtu55iIpEL0^>(xdYowbwL`eEGnaDULa* z#S!ET9_x4!cc)vK|Cwc5!$u5>`mF6-V>8mSndSEPH?eAw1GzJ-s>NFwnhnyz$2@ey zEA;DZosX*RS_9TbLZntXc>!k5f;%cE;4z(pHZ`^Hi>OEdO^4;3@s1e6n*DGec@Mi%{L}%FPE;E zzY_O+U-dF#kF?}kp(-t3miq^1xaF~#$@RjOfXK8ItO(aSDQ+U9GKWC{jcuyQ9RVUvTkp9Y>_$HIGv7a~dqY>k& zu8#5FX3e1evbg&9verJMHO2n#pUzzLV}U#od;Zj9C|{q^$6O?p@r8 zs$U|=&v@L%V3xb}kIzgg$BvMxm+YV={6sQ;W1#8hlD(uP?_-e>L%pZ99bdoQbO_rg zVo$+G)KZD=B1<>#3uWRllqZc8u}|PWnp`^Efbtb0{PLk$&Lw5wF^<)0E?PMXuP*w^ zNL~#sLs^Yctj>j->(Bby`Xn9kYg=nV*-k$~%Hj#sniT`5xg2Nt^%Ji;NvDgr+E~`W zg6;?#?dqPLVZpzLH9GR$tYgz=7OCS0hQ7yZkL%L%)4Oa&j|f}7s_du`y~{hqG}O`G z%obt?@BPeGK56={<)gcrq)RQnUvsdY7rWnHK0>XYfxHf9;dP`ZAEoc4@ZJ;&LQZ|- zqIy9-o{5O4_2+XIFFjy?C%-6kVCdNTYj~YW8N2G0$5Lz}{)u8!w3cBZ4Vq^-rwOG! zL4~f?+MOcKwy_l0xV+utBk4%2D5w!DcM@P(Q{{!#24%`QVSsvDgC9*Pb>H3kx!9Vz znQm|(fR~YMeiG8;&c{#aLKE_!d(sX;JgcnXVZfGqC(Lg?`0IFl_Tto6g6bsU&cRd4 z=y;2-i=B?VZz*c1{_?X=pZq>mY4Z}E;l6plhv=nKb%(fkuhDrl=gltGz*(-=p8V4ca+a~tY#P}jfR~v-r;>Jn3Ye$*c*YY7C0%Xc zwG^$HwjnZeK-=Pd_5FxYTlK?J530^VySkfw99^hMX+n*pIX8P^CZ8bDt&tn2p8WAR zMWM4dQh9d`w@)K$ETVmYYmT_f1gAd8ZDjGIoaHB9cFhFg(f0FQlL^mnP@_)Rd>`54H8FP63sIPK?V?q? z4yEpSyERI+L5@{s=q!~J6(R|ge{MADW`X9$(!&G@|9GfF0T;jHf+rk7bnn)kz;EYr z3r%UHOW~|=qm$?VaASFzAM6TzVsyvMu*<6al}L4!8=o~|cu_=pl1}RDX3cl}taj1K z+FfODuh+i`=k*KtMwL(gjEg$^N2%?NGe;=&nu)ayg@Ge>+qXE_kTHYNj!%b0`-f{p zL-ygQ)f9P*5IdCWwL$92Nn4cBQj)8okGAB|jpC1U?>n+cX}P8D45M9Vr-hgp+&eO-?o-2yDTUf&%~7m!)-rrKtf2^%m-L9C!`)<~do67({k+4R#f08=l6>~v6t8(lNZFlzq`Qs0 zpLS8nvW%CmW{>Fxr|HxM4ZPl&HQ9zHgPRx5yy!V6*uf(>)MvA0Z=mVmwTykM-SR_v zer??@i)_QyYeP?OI{L}G+1%0qeBQKMf2MOLX(s&8$73G{Y)1~=Nd1X9Ev<9bY1x+f zM$Xg)tBL?9EuSnTW zy!T~cxxRnin}7F@!QBDSaDH*DTYhdax6F3dW7U?=&-n%vo~OP$74&lV$x_O$H0f-? zPoaB6ANB&2vQVlTwgW|GD5HPz$Lck2`W~%Kiyj_QIkA$ZVT+7}&!+^xUkGN#<6xGE z9&BRxD4nN{|7G6P1@@CSKmRCrwr`QR+MzJWxS!e}+xA{|W6|*3hwp8R#OC;-t-9sP zND)I*#nGp+;-~z!Plb%6Mr@*1H~RkU3RM+W9f0J*m5=VCl72fvx_s;BT#hfx*IXI; zG1K5;osaOZ9i;qv*6^49PcBoS)ws)LF=x8jTEZsMxDi(40C~e{drztJDbc{ru+kIL z?#*s#_2`h~A?&mi{IB7ZDbf~r|K^FkHPF@MO;+?emHu%{)fbPIYW6HzYd_(Ro$W;% zgY*2D!G$|?4;}?@OH$|Oo!`K)a;`8KOef`%c=c`Rme=aOFWZ;jxpx)S@=s~vu(s`| zx9f~m)pODHic${tsj^+HDjmA%b&mpXR>7L0$7cE2!=V?otCX}a21aOFPi1cmuKPOD z{A34Sa?Zivu{HJ9j@;db&Q$Vie?jlO(HErhZ4)Ux=%4pFht0Qh4xM)~IhyZvDuDce z&tke=w3+yF-Ow)o*WXgMIaCJ?*QFY4&f$2k#$iEqs~azP0JA&&u3S^-!TA}N4POrT58{Lz3 z8N9=b28pXIAhFb*%*ESrjLqOPAMMvxNH_VBq+c7!f4hzPS)?Ov;jH<{!IdSc*7EnK zgNAPlZeQTJzB@u5?G|kPZYsWdotI;o_2ic{!=D*=_6FvD}`ij%M z+Jf&jzH@Z;Atbihs_ZxLl!#A9wm%I=GdZ*0%386{$w^c0mtYldM_!*MshwD(*CH{8GXxAAK_H15og~_vKhd=tsU3l+q((tSn$%Qu~YPKkP=#Cl=2-<&@waT^;fPF?uS}mv^RQeKXKPHaurxpz-W z7TV|k%=*PW?3sDl-bo9-*{|q@_qA+$#4Is+x~;zM%3iEvmNyID@o|7JqiSMWhE_!h zV;;?Pvp29#OWSK*cJWTA$JEW+HdoZlU=?_!^X_FEM6>O8E%p&oe%m39tP|H2xIJkk z_4H|?j-M>$p$muK2aR-`6FcBXwxSe8Rv^;?b(e~FsLF2H#?d8-ROJ0oY@+SvMr?@NuPYINf6wU+n!7QUTLdS*pAV`{i4os?kf`2P2>?n}hA9AE{z&pgNgcFGbe;n8s`KN}s z(iKv612Yc|H6uTArG9k;c@xemGC5f@C-{j$tgrcJW>ml2E8C|WT)WJ7YOpEwMg#8+ z$$$RLgR_5^C|R%99tzyCibipr_i6c^T(6X=?cD0-;X`rFPPEa}e2-tB+G?k5xU=aG zx@uHfCN@+i1Rz@#B05>YX4_GHY?p$Dn&15VYqzlBbKHTIlv(MAc8^|2eb7tMZ$ju)1$m_bRLS1Q}zaTOJ zstI=B6BNkkYi=V;0D>^|nSnB-ai3eTmt!z}LRaG2-wd)^CcWG4bO&25+!cJXHqtTw z1eLn{Vl?f|qK0o~9jx^GwDdvSyq`Yp9jX?1l=ffdvzMZlw^rA0v(mhNfW7{f>y?h= zi-&w#nxd@BRI*#2HN~3q8T61&TVa%Q@UV@4M;L$7=LHw0-4NL zbxp_S9`a{OV-Df*`mQ4Q<81XenIatSVP}U+Ju$%i* zZb=)|(Z-}xr`{I<}&PfawoG2-LbuoZ16_P&)(LYt#eaE?sShwp1HDf18O8F?eDkWfn* z(vlw6+8%xQdsF5r@@nC&G<1FkVMz%WlIlV(d0LlEGfjPaZV$M&PB(1m3#uap^2S4J zsD?SyzwFxV#=1ovTC{ceLGPX(KdYLe2Xpc>?B144>iTN4q^EbGKf2}50PYsAodMiO zMS^6vupHd$T2+{Q#VVJ1v)__OP2VUsO4}uGKgm@|W2pEXm9adA%Sn{y9mio|4fpAU zTm3U4kaW^CH^l8;=jbvSyd1kqOmn0`z2h;;q>q4QAfy6m+QU{ORBpv z%UQC{)#Q77i;GF6tS2nVuPZD~=5LBLYn~-9ZS`~WtGwFvoyV{DMA7Ygdb++gYI7Le z7Qwu$Zob_i7d&aftB=1&__0AOj&+##ROdRE;8cHphCl20CZj97r;Ak3ZbjO@yH&++ zPIpqgm&;5w79#wJG%+0&GWIu$mDXG&RX5L(j?f3)Q3GvPy|^?BTRSz#@G9HXc^dWc zGSrsBW3TxBI9KB)*y|P?xi~n=;Qq?oX%l}mr5>XhZWy62wlUpIr(eIB{ATVS$Ekro zx~>jS37s-$KvT8y93jY55xPm^u7 zfARFo(4IOQVKy8(MRAP6q z9iBiVZ;-oYbDYEctex#mXO zGPH;)D0O%gZ>;rEik4z;QmR?l0qd}DIORp$bHnWY=3#zzpKZ51c?_ooK?zdP-~INh zQKdA|IL%u@Bk3F~wQ-v?&7W?|)Pr-@PtQZsIV6(SLfNt-9pCvxH;V{a*U%*oqg`Is z!S&(=uPEdpW5YgEqce0fmm@~r3l@6%Nv4Z7-rlp}YjWLQh17Ml%L2`u)wEE>>(&zBr`dPsfWf)0=bsW8$Zt^Hhn_>ufa9#h9PQ9~zBh zX;AOp1#j%dlW!yZIpPz4+OBfJZ+9~eHj1Zet3M{cPe&>nxY&0uPa};^EbjoGCRTFU ze5J;=ixHgEDp^#cHncNEPTP53jG7RCW}|G8+dZFL6Xbz^Aur7s&AED#ZMb)WbW`I; zs^%{b;q#T7E~L82AA4y;$65=>X7Ag+a_qKyV!}BvNs+W2Zs z03uMEQn=rR+7})fiDx^D@XuOfD5yG|Rm2P}ZaA`Qo-g!)!}txj|@R2B)vEX?k=K%II9r zn`=sTIcs@Fbe^KjJccj$;X&IXRf3VsQd=9XPG5>O$z_wYF3OLqUcs4>XpY@n-Ox~j zEE8Yvtn${Z4{xuMQ_xQd zkb1CCKh%h|n1b-Cd}|PGh^F?kveMmLx#yJGhGc8%`Rke3iql16Jb?$T*9I0^DfQU> zk@F*ktkq+%hJ_XvmN=;r;;Q;%zMI!7b7>40;7@oz%?sk4&x=NF6es?v!rF zqarVI|EOe%6|6j*Ekbd{S3mubY3^HuO&bORLPx>W(l{Y6=!n6~xW!X5I5FL3Dt~P7 zlls(<-*j0A58;E}hL7)>l5B2GmpC&vB=s+n_02hR;kEqs$BL1`p`$$A^G`I#Y2@t! z-K9mEnzU#^V_U}iZsrtNdlLjTGVf&R7Tnk4%olLxmQ9 zvc1^u4o2L%RSI=^f1(8}8pWtLG1-+u*Gy)w$`^iE zw@wkXuId{(L4eUmHswXBp|uUfHY>5L!`PDn?iURRSmC;rGgYrbG-|Fdbo}pV27LB> zRRU_Z0t|Usdt2J03awue`rXPX0z^?m*M3}f0(vh#^H?;x)t#qnpJx%I+u&z%rvlrf zOw^tu$*oR+n8uFY{i~4|x$X1QWWLy4Iv01~v!|NeC}Msejpj%TU!EW-;Av=xeJ?&d>v}YV>zZ6gKi{L9WTY`^l}&%xS~v}f&(GO* zwiE7vgHY47`&wNm;>5b7xPeF&Sy4~ScRE{oawf#ybf~?_7`_vw?ik)Gz%qLc=4Mj0 z^}4F{%KXlSjx*8%7z*_fe5VBpv+IvKiXbAt-bN>PyK|*9WK%k6{4YvG_{My4Oy|yY zUF68_)O!9gg-KeK+^qL?-R27I!`7fiwxufI5&&t7h|?`CT$)UGRFUA}>{P9v05s5{ ztMFHFiU^<#j#$`I0im#x_J(3}6vn?Q^LjZ2n@^CI`XY<9aR8OlL>GKrEAb_mdO4AU z=ndc(GgU(X9R7`n1Eo3ltc2O|msE2r@yw^lF3-eXtFy(0fF_!jFAh*p;K4Jlr9Cne zmDRO#>|Kov1)QF-w2_^O-*w4dz4zUb+82QB=A=U3gA?J`9!bnpY0EG=F-iti)d8~` zDRP~tpBc!BISR3?8@qQf-x@~gjVxyR3|m1=m+{$tz}`WF73^6++Hh_6T|5jfPi6Ho6J_-tq+5b#mq2VEzuy2d7;%M}+l+im`<<516 zd26C{NX>SLbQVS$LoN{&;y7Y}j1O308Yti{lB+$;MW0FaXYx6*oXVKUjNcjrE_i`HTgNUEparhJ>_vq*1%oz2KbK_`Z?j2XuoDhvaHdE1jNtrXlk81t^k@OryQ~`mQqq4leqz6iw zsS=xT89MXRV_5}}a>3WesGF*eRZJMLW-Xv_GrJ2C^?%v0bR3L-RIt0MIG*yns(!Xn zIx2$+ah*bV^(DM0wLe-SWn7pHkNJ0|A|+z8JY8yCGLORqrsYDMiD1E?h#4W03B4)e z1VO4o(FjoFtbA^;DtbRI(!(S`6x!6 z7NB!37|;&t*4*}@nl~b0?zJB<0IwRY&`uJ-Z%6BchX+IS;82|Jg3mAk_3C5XXU$Sl zxQxJN6un0b3LE^uzJ`Bb$1@feau%h7k(b z&YBb!>|;0oAzcLBcu6J)M~ zkGqP|?>(up?cUF)A=WQ}s_BYMvaW^Yf-}MiM2$}{QF$h5e6J{Jgw1zdD7MCPS1s|R zn!iIN>h8hP94n#NLuFX6=L66~0$^hVb48i+xukIB_Yp|FDROpJ1S)B1OY?_OVL5sp=orpC z0g;GO*Rmk>b`*)5vrs|M$Zt3M85icS`Uw1raM;Rb_v^QFZ1i(4|e0VD173iz-SbPR*#9im$9Cmorj$GHfvXq6cf;nxXV@PKqBhwgZjBv8JwQNRRLXtx)`&}BlJ z9++_ZhoROXhENjEV1hl4pi>lP6oB<(M4}LN54QJ(rjBDDrekFQ6S#qKrwZTV2-gNu zw}?o;cxmDUUHD(tEZxaSMBX2kl(fJ+oAaS$AAsZaAYv$*12AWxfjmQ4N+f~=VNcJ} zxyd6Ce-p$Z5L&t@wKf1EMgcW?m8PMF*~g! z73jrpN@1R+AwJACL{g4eKbN6id1v7~ zUlK%YKp=srZN*2hTUnTgl>K`arwCF4_6R`0{jn=V`P(9A{M0)yPweYMHUAw6i%)v8 z{@>w-NErb+`t4QM5(Q<;7@RPeAq#m>&kJ`%M?=JBKNPm?uh32>@cmt-cK*M(Dz2Dm zq@+~==@NygY5M^7>Cv1fntXk_#rkvmdK z)AKQ!c1s@5ATC`Wx3Q8ZP9X+2G8K*{Ixks*2(=RE4{1+dPbB6gW%gm>t7A1==xU;M zXaMec8jXtY(6m~ zzZ4WlAYG=&Lyp}%-Kb(JP8JXq7{CL<@f^^P2tO$Sf^@-&9AQcs8+P1!*w`N}D>LID zv5B15R;tF^x`k_$DTDFsk2Id`t}baa0H#L?vSRuuR(iKX;t>f6HTbGh{E4tI#}&e7 zkKB6TKvepN??D!QTUX?2g%7&m+6X4R?Q_mafTPthPEIAz?4QslVsn%!hwz$^R8Okp z6(Z5d4fLf4(l2|dzA}YJf53y;1wsj-Us>q9)6b;rqYIizf|tX~9W+eJB_%9lTc96G zmyqEBw|t-{MI0s=I#9KN!-3LxxG4Sz$BrV8LFC%l(LU`m>OYB?M)3T(OZeuB^X2@o2+SiFJV6J)hx%|5g8Q;df~1w5rihI z(2@nNgq$RVlnWjgLP$yB4F7t#0YF+{@D$u1d9#HvhDqWCI5_ELOEfwMIi@Rla+tN zX6RLBg*Lhv$RV9`_FZvLP$O#H<&MNqkr$Wy1fc50dq5(~>{SA`n`*X1%!JlkUpLf5 zri1zby`KkFMgA26ZDVplIvx^_>_rgkuoX-FLoNzkDFl6I@*r-o@7lASX>2f_hJag| zc5R5Jli8UlT6f-oA_qE(TOe13>cqE&uD_0JU`VT1MeM17*5*T4riCtSta|~|rK%r$ z|JIso1v;$tWHeT)Cj%y#(9L>fKNdP-nuN@EGd&sx23JYl5mzb#Y0ibG+l&v5gr0pj z6fKh3jgJdL3%Z`By$<<_PD^RjZRFvpe>Ne9m%%fJpb&Hv*VjgkftsmeJr3N@?$M8V=2LCoyAwGZI zkLrkMyXXV~93qH?$CO)b9vGo&vp2W8-XL;`n17kEX2ul|sMn?_Rx+uM$%xynn{Vtj zdX+>_#f5sPAVe|~HUqRrPy=Ty#daypv`2Kug%QY?Gz0|Y53=l^9F;@yg)gH&z>X+9 z&`=rR4t|{WJETK#U<*! zTbJr)6(`KJr=0Xel$@KI(c#ab^cd?~7eZb^&2zy0_o{uD=@A(MP*ESk!xyUBzKy4| zULuk=FQHqP$z=?E5gAJ|0OiU6uuLH^2Sj3zK?o>ptBCkW)7Akk$~)ibG^8AM3PT!e z9rz63eY4$T5E+ZSldARzutirZ;1o1r%(~IIb(V>kk-sU=lR4kcHj& z7gQLErsKGygz>UMoI_;JVIZ&`f;ReK=Io&Lb4UCs+=f>zm5~GkbPNa5bsphxP3-ay zFxD$cp`H#r=5ExK`YxtAf&xlPok-9VZq(|!N8~CC1v94k`LOHZdMxoR^n2eBElV2< zTs5YbqG`*(2rQL~kXCfA)SCMvNzitXXfQvtR3eBC?;i*WJc{RAN?c!AbB_W)<}@r! zy&zz}tH4l2a|T9NtW5tKX%hOT!i;b2LDhGivg=o8 z0dobT2}!m`K(J{D0r20IbUJP>WUOh_-E&N{qev4F`B1-S@Q0C&3+WG#pb;HI7U~Sl z=t{yPVxTKTU(&T{42m=wiA_kRs*3d*09yNam@Y_8LlsCPW9{~h8VaX6CmJ(Su3Umm zQPNVc>Z+YIYA>o#goMR0Cm7(`V)i^jP!mvqKdcZKFDy3^*$68y=FlrJeyixui>31m zNrI7pG0KKLhlFa>A2z9o{rk9P3I(MSSFCf%4KINROhf3d^L#$|2mj5?%Dk?xMy|wi zN?<{V-m+Iq7CZ;sR;IrarOu+@GH@6Esq&z85=ntEi2NRdMPan=ks);UwbiDHp!?(B z)&p!|$%=+|3kXhxF$2h<837QjCfYpEl?#`ke%tIR(p1E)s@5WFTvXHbh8FM4xS^%* z{h-Uu#23%Talg*MMohe4yXl85&rc(Sk(M5w(Al` zyB-zB0XmmF(UlV<0}te;kEaD$hqrNb>vbf6<>G3uh#1po))d%jR>KfnS9V-90m=vJo3$Iee=J>z% zT4uJ|B@zJKu`JyMD*pOLn*N;4Zzll&2~i~${~sL}F{~6tj#nV+6%8N;g*9%Qtq|YI zBRb>|O~bR{lpOtN$DE%WqS%}L*28d7xqAChg?FJ%f}8%oHC&*svp7!RPt+ZB z!SkrQhpbsNg0Y*L&wzTsrQNz&SH`HC0RJoS{@~MDM0W+;fl0BqQfpQp_%OwU`^=cD z+7YdORnV75c%It}`iQFYZ~rS^np55*lYzVMf)DW7kl2qD)`Ee!*}KyaxtjwKcLEer z=(f&5*nkNGh&2ep&w|Qvl(V~6Rr`Ece4|jDv&P2`No9scoF*g=fJ#k+FX}N2QUq9( zfOG}i{Hd$3RYsm5DHkC(J$<3gRq^0^q;Fon_8a%J%vxm&f!+a`t_E7p294{&s?T-^ zAGvck(vYD{8vG_V58o5A)Q@QB!KS{)L%&;ef}}a1>TkM!{Q0)+BPY_p^Hq1A_lWSnX-AnjA(mzjJdmk*ZN0{2+0_uIfQO)LcW*= zvaOR0ytf_b;y>H1bj|?KE(qq$FRTTp-a=Z5>IeJ!r@TW}iXvqO%T^q{Rys-d_9y5Kb;8Sb$ocoWQ8A|*Bw4rj}F z*om%ViyR&(zNw_BMMQ1TyxNyWq4UD+GeL6y}6hwi9+1!Y6<^ovi|q} z(-Q;UI@beqS+o&~8N*c7vOX@3E@(w0VWXqfa-$Cr0sArYe>CMJ-OUOur&tU-s4}H_ z+Xt8)N3$c4HB=<;V@eRDFW5Ezr5A&Tw-G)HBkTEaCB*SAB8i(%hVkipkQfoCm#E)* z&d^&=1bSTX+G5x(JEmC@f3>6R@ zfRhUQM)rw7zGO}p$_A}jFGzy-qswmoV~GMX09I0A#vwm($5v>4^oy41x`M^Z8qfg; zLAE6u8AEE4iPTI<$Cq7^T7B`sa{whYNx$Ng_YKUr)!B36C+^(kglwB3be)qngFR1g zOaF6`3hH`}x%OPQzOZXySr_+SD@}wAX01Tl37t-3<&xm_f38u5Xd1!wA-rwEI?_28 zzVo&^K<5u5VPI*F;y#3zXL$R+mvn-nUsUKqzb&UWAzzz82S)|g$X@b)w_xWtXkI{; z>NX3}1HZMzJ%~Vlqakgrgds$@5Vgz4-BQ^5LQoBa5gt0g2d53A^{Pq_1EJ^&EL206 z_S5-5km_!md*H^7Hw$ojJ#v%&-GvdMFYjm8{IaG1&O}8vl|<@WFmTSVSL&B9iHmc= z9nOjO5RRO^7RrgfZeV@(+SNIv$2Q3Q5;Hv=jxDCDiD|hm9Ixn0I)-z|;MY)i%%G9G zL zc&Hcuj*Uaa?hSC03CEi7lJ%krbWHo+ZuCGx&BKAl9oZBv)9i zdA#_i8H$pK{dB?CAmnNyh-D7(Vc;e7fnFf#s~F7L63}F0)6r6)yXv8A_oRkFrlops z=G>ac!eWUlY4&b+rQ!1{|Fx8{VjMiT7tZML~8x;qAP0TyCl|B$9Q12vPD{x5wQKn63DV({4i zwpmrrU!o^$OcA(UkLcrxAu=rCAqQ|hTcl$at3EDu0s^TFh3jQu;X_8#E7%!rtEu{B zbk88c5A*fiAH2Gicy18vnNqL)A9deWyM3=ZhRoCbrjwi5YfCQK6|ny#?07TK;lNpX z-SAHx4kxbAUK8jPkKS6dpf<+&khS&oV=Ep1M}r1r0l+Ug(aMI0Y@I*G0e2Ts&Kl#(i$9K+pC!&2=80_fS;fQhzzAa7eyDc;(X8pIB?o-})6HSF zo$j!`O!8J@q)5qtVG_a==yPn*gD6|TY+#HVk8hoUStv9-ipR${A>UKD-A@w6HWUyN z*Oc(Avjo2Gz@G^#}jG-JGoywoiJ7xNm~M;AS_0d!x5uig(TQsGCq4Q_+*e8 zpoON4^;CpLt$;vE*iZ^U-Z8yM+8&`92pQVGtEi>XcmjZIW!S4;Tv4jk#IggSMuq4b zlIrpa(o`xkl1Ox}{wUlZZ3xpz2+db;@naVJKdL=J`$4cW3uW#;EWoLApk0{m^?#Im zqA0~|&D2Q-cNS>$2MsFb*eIG00R@j%^e5^!_rRSZ#1cgjaZUrm$Qp0AnI;C>*MLFT zEc}-a9#jc7A}wVPz=BBvz$0hs>X( z=lH4Piy>nMZ02$3gow3Gwgd5y5aT7fEx$_{Gpp`6P@b9~dtF_*=u!(5ZecuXp Date: Wed, 6 May 2026 13:12:42 +0200 Subject: [PATCH 23/24] kill unrelated example --- .../src/examples/rendering/spom/index.html | 1 - .../src/examples/rendering/spom/index.ts | 564 ------------------ .../src/examples/rendering/spom/meta.json | 6 - .../src/examples/rendering/spom/shaders.ts | 102 ---- .../src/examples/rendering/spom/types.ts | 159 ----- 5 files changed, 832 deletions(-) delete mode 100644 apps/typegpu-docs/src/examples/rendering/spom/index.html delete mode 100644 apps/typegpu-docs/src/examples/rendering/spom/index.ts delete mode 100644 apps/typegpu-docs/src/examples/rendering/spom/meta.json delete mode 100644 apps/typegpu-docs/src/examples/rendering/spom/shaders.ts delete mode 100644 apps/typegpu-docs/src/examples/rendering/spom/types.ts diff --git a/apps/typegpu-docs/src/examples/rendering/spom/index.html b/apps/typegpu-docs/src/examples/rendering/spom/index.html deleted file mode 100644 index 581d6789f8..0000000000 --- a/apps/typegpu-docs/src/examples/rendering/spom/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/apps/typegpu-docs/src/examples/rendering/spom/index.ts b/apps/typegpu-docs/src/examples/rendering/spom/index.ts deleted file mode 100644 index f7b9b9b674..0000000000 --- a/apps/typegpu-docs/src/examples/rendering/spom/index.ts +++ /dev/null @@ -1,564 +0,0 @@ -import tgpu, { d, std, type RenderFlag, type TgpuTexture } from 'typegpu'; -import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; -import { defineControls } from '../../common/defineControls.ts'; -import { - distributionGGX, - faceEdgeMask, - fresnelSchlick, - geometrySmith, - intersectUvDepthBox, - isOutOfBounds, - shapeSurfaceDepth, - toTangentSpace, - uvRayPerDepth, -} from './shaders.ts'; -import { - DEFAULT_PARALLAX_STEPS, - INITIAL_SUN_ANGLE, - INITIAL_SUN_HEIGHT, - MATERIAL_LAYER, - MAX_PARALLAX_STEPS, - SCENE_MATERIAL_IDS, - SCENE_TEXTURE_LAYER_COUNT, - SpomParams, - computeLightDir, - spomInstanceLayout, - spomInstances, - spomIndices, - spomVertexLayout, - spomVertices, -} from './types.ts'; - -const root = await tgpu.init(); -const canvas = document.querySelector('canvas') as HTMLCanvasElement; -const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); -const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); - -const spomMesh = { - vertexBuffer: root - .createBuffer(spomVertexLayout.schemaForCount(spomVertices.length), spomVertices) - .$usage('vertex'), - instanceBuffer: root - .createBuffer(spomInstanceLayout.schemaForCount(spomInstances.length), spomInstances) - .$usage('vertex'), - indexBuffer: root.createBuffer(d.arrayOf(d.u16, spomIndices.length), spomIndices).$usage('index'), - indexCount: spomIndices.length, - instanceCount: spomInstances.length, -}; - -async function loadImage(src: string) { - const response = await fetch(src); - if (!response.ok) { - throw new Error(`Failed to load texture: ${src}`); - } - return createImageBitmap(await response.blob()); -} - -const sampler = root.createSampler({ - magFilter: 'linear', - minFilter: 'linear', - mipmapFilter: 'linear', - addressModeU: 'repeat', - addressModeV: 'repeat', - maxAnisotropy: 4, -}); - -const pbrTexture = root - .createTexture({ - size: [1024, 1024, SCENE_TEXTURE_LAYER_COUNT], - format: 'rgba8unorm', - viewFormats: ['rgba8unorm-srgb'], - mipLevelCount: 6, - }) - .$usage('sampled', 'render'); - -const albedoView = pbrTexture.createView(d.texture2dArray(d.f32), { - format: 'rgba8unorm-srgb', - baseArrayLayer: 0, - arrayLayerCount: SCENE_TEXTURE_LAYER_COUNT, -}); -const materialView = pbrTexture.createView(d.texture2dArray(d.f32), { - baseArrayLayer: 0, - arrayLayerCount: SCENE_TEXTURE_LAYER_COUNT, -}); - -async function loadMaterialImages(materialId: (typeof SCENE_MATERIAL_IDS)[number]) { - const basePath = `/TypeGPU/assets/pom/${materialId}`; - return Promise.all([ - loadImage(`${basePath}/albedo.png`), - loadImage(`${basePath}/normal.png`), - loadImage(`${basePath}/height.png`), - loadImage(`${basePath}/ao.png`), - loadImage(`${basePath}/roughness.png`), - loadImage(`${basePath}/metallic.png`), - ]); -} - -function disposeImages(images: ImageBitmap[]) { - for (const image of images) { - image.close(); - } -} - -function applyImages(images: ImageBitmap[]) { - pbrTexture.write(images); - pbrTexture.generateMipmaps(); - disposeImages(images); -} - -let materialLoadRequestId = 0; - -async function loadSceneMaterials() { - const requestId = ++materialLoadRequestId; - const imageGroups = await Promise.all(SCENE_MATERIAL_IDS.map(loadMaterialImages)); - if (requestId !== materialLoadRequestId) { - for (const images of imageGroups) { - disposeImages(images); - } - return; - } - applyImages(imageGroups.flat()); -} - -await loadSceneMaterials(); - -const cameraUniform = root.createUniform(Camera); -let sunAngle = INITIAL_SUN_ANGLE; -let sunHeight = INITIAL_SUN_HEIGHT; - -const spomParams = root.createUniform(SpomParams, { - reliefScale: 1, - tiling: 1, - lightDir: computeLightDir(sunAngle, sunHeight), - parallaxSteps: DEFAULT_PARALLAX_STEPS, -}); - -const { cleanupCamera } = setupOrbitCamera( - canvas, - { initPos: d.vec4f(2.2, 1.25, 2.2, 1), target: d.vec4f(0, 0, 0, 1), minZoom: 0.8, maxZoom: 10 }, - (updates) => cameraUniform.patch(updates), -); - -function sampleHeightDepth( - uv: d.v2f, - tiling: number, - materialBase: number, - ddx: d.v2f, - ddy: d.v2f, -) { - 'use gpu'; - const rawDepth = - 1 - - std.textureSampleGrad( - materialView.$, - sampler.$, - uv, - materialBase + MATERIAL_LAYER.height, - ddx, - ddy, - ).r; - return shapeSurfaceDepth(rawDepth, materialBase, uv.div(tiling)); -} - -const vertexFn = tgpu.vertexFn({ - in: { - uv: d.vec2f, - volumeDepth: d.f32, - origin: d.vec3f, - size: d.vec2f, - tangent: d.vec3f, - bitangent: d.vec3f, - normal: d.vec3f, - heightScale: d.f32, - uvTiling: d.f32, - materialBase: d.u32, - }, - out: { - pos: d.builtin.position, - uv: d.vec2f, - volumeDepth: d.f32, - worldPos: d.vec3f, - origin: d.vec3f, - size: d.vec2f, - heightScale: d.f32, - uvTiling: d.f32, - materialBase: d.interpolate('flat', d.u32), - T: d.vec3f, - B: d.vec3f, - N: d.vec3f, - }, -})(({ - uv, - volumeDepth, - origin, - size, - tangent, - bitangent, - normal, - heightScale, - uvTiling, - materialBase, -}) => { - 'use gpu'; - const camera = cameraUniform.$; - const params = spomParams.$; - - const N = normal; - const T = tangent; - const B = bitangent; - - const height = heightScale * params.reliefScale; - const local = std.sub(uv.mul(2), 1).mul(size); - const footprintPos = origin.add(T.mul(local.x)).add(B.mul(local.y)); - const hullMask = std.select(faceEdgeMask(uv), d.f32(1), materialBase === 0); - const hullDepth = 1 - (1 - volumeDepth) * hullMask; - const worldPos = footprintPos.add(N.mul((1 - hullDepth) * height)); - const clipPos = camera.projection.mul(camera.view).mul(d.vec4f(worldPos, 1)); - - return { - pos: clipPos, - uv, - volumeDepth: hullDepth, - worldPos, - origin, - size, - heightScale, - uvTiling, - materialBase, - T, - B, - N, - }; -}); - -const fragmentFn = tgpu.fragmentFn({ - in: { - uv: d.vec2f, - volumeDepth: d.f32, - worldPos: d.vec3f, - origin: d.vec3f, - size: d.vec2f, - heightScale: d.f32, - uvTiling: d.f32, - materialBase: d.interpolate('flat', d.u32), - T: d.vec3f, - B: d.vec3f, - N: d.vec3f, - }, - out: { - color: d.vec4f, - depth: d.builtin.fragDepth, - }, -})(({ uv, volumeDepth, worldPos, origin, size, heightScale, uvTiling, materialBase, T, B, N }) => { - 'use gpu'; - - const camera = cameraUniform.$; - const params = spomParams.$; - const height = heightScale * params.reliefScale; - const tiling = uvTiling * params.tiling; - - const lightDir = params.lightDir; - const viewDir = std.normalize(std.sub(camera.position.xyz, worldPos)); - const viewDirTS = toTangentSpace(viewDir, T, B, N); - const lightDirTS = toTangentSpace(lightDir, T, B, N); - - const jitter = d.f32(0.5); - - const startUv = uv.mul(tiling); - const spomDdx = std.dpdx(startUv); - const spomDdy = std.dpdy(startUv); - - const stepCount = std.max(params.parallaxSteps, 1); - const stepCountF = d.f32(stepCount); - const layerDepth = 1 / stepCountF; - - const startDepth = volumeDepth; - const uvPerDepth = uvRayPerDepth(viewDirTS, height, tiling, size).mul(-1); - const interval = intersectUvDepthBox(startUv, uvPerDepth, tiling, 1 - startDepth); - - if (interval.x > interval.y) { - std.discard(); - } - - let depthDelta = std.min(interval.y, interval.x + layerDepth * jitter); - let depth = startDepth + depthDelta; - let marchUv = startUv.add(uvPerDepth.mul(depthDelta)); - let surfaceDepth = sampleHeightDepth(marchUv, tiling, materialBase, spomDdx, spomDdy); - - let prevUv = d.vec2f(marchUv); - let prevDepth = depth; - let prevSurfaceDepth = surfaceDepth; - let hit = depth >= surfaceDepth; - - for (let i = d.u32(0); i < MAX_PARALLAX_STEPS; i++) { - if (hit || i >= stepCount || depthDelta >= interval.y) { - break; - } - - prevUv = d.vec2f(marchUv); - prevDepth = depth; - prevSurfaceDepth = surfaceDepth; - - depthDelta = std.min(interval.y, depthDelta + layerDepth); - depth = startDepth + depthDelta; - marchUv = startUv.add(uvPerDepth.mul(depthDelta)); - surfaceDepth = sampleHeightDepth(marchUv, tiling, materialBase, spomDdx, spomDdy); - - if (depth >= surfaceDepth) { - hit = true; - break; - } - } - - if (!hit) { - std.discard(); - } - - const prevGap = prevSurfaceDepth - prevDepth; - const currGap = surfaceDepth - depth; - const hitT = std.saturate(prevGap / std.max(prevGap - currGap, 0.00001)); - const sampleUv = std.mix(prevUv, marchUv, hitT); - const sampleDepth = std.mix(prevDepth, depth, hitT); - const hitUv01 = sampleUv.div(tiling); - const reliefMask = std.select(faceEdgeMask(hitUv01), d.f32(1), materialBase === 0); - const depthForWorld = std.mix(1, sampleDepth, reliefMask); - - const albedo = std.textureSampleGrad( - albedoView.$, - sampler.$, - sampleUv, - materialBase + MATERIAL_LAYER.albedo, - spomDdx, - spomDdy, - ).rgb; - const rawN = std.textureSampleGrad( - materialView.$, - sampler.$, - sampleUv, - materialBase + MATERIAL_LAYER.normal, - spomDdx, - spomDdy, - ).xyz; - const ao = std.textureSampleGrad( - materialView.$, - sampler.$, - sampleUv, - materialBase + MATERIAL_LAYER.ao, - spomDdx, - spomDdy, - ).r; - const roughness = std.textureSampleGrad( - materialView.$, - sampler.$, - sampleUv, - materialBase + MATERIAL_LAYER.roughness, - spomDdx, - spomDdy, - ).r; - const metallic = std.textureSampleGrad( - materialView.$, - sampler.$, - sampleUv, - materialBase + MATERIAL_LAYER.metallic, - spomDdx, - spomDdy, - ).r; - - const decoded = std.sub(rawN.mul(2), 1); - const tsNormal = std.normalize( - d.vec3f(decoded.xy.mul(d.vec2f(1, -1)).mul(reliefMask), std.mix(1, decoded.z, reliefMask)), - ); - const worldNormal = std.normalize( - T.mul(tsNormal.x).add(B.mul(tsNormal.y)).add(N.mul(tsNormal.z)), - ); - - let shadowFactor = d.f32(1); - - if (height > 0.00001 && lightDirTS.z > 0) { - const shadowUvStep = uvRayPerDepth(lightDirTS, height, tiling, size).div(stepCountF); - const softShadowMultiplier = d.f32(16); - let shadowUv = d.vec2f(sampleUv.add(shadowUvStep.mul(jitter))); - let shadowDepth = sampleDepth - layerDepth * jitter; - let marchedDepth = layerDepth * jitter; - - for (let i = d.u32(0); i < MAX_PARALLAX_STEPS; i++) { - if (i >= stepCount) { - break; - } - - shadowUv = shadowUv.add(shadowUvStep); - shadowDepth = shadowDepth - layerDepth; - marchedDepth = marchedDepth + layerDepth; - - if (isOutOfBounds(shadowUv, tiling) || shadowDepth <= 0) { - break; - } - - const currentHeight = sampleHeightDepth(shadowUv, tiling, materialBase, spomDdx, spomDdy); - if (shadowDepth >= currentHeight) { - shadowFactor = 0; - break; - } - - const gap = currentHeight - shadowDepth; - shadowFactor = std.min(shadowFactor, (softShadowMultiplier * gap) / marchedDepth); - } - - shadowFactor = std.saturate(shadowFactor); - } - shadowFactor = std.mix(1, shadowFactor, reliefMask); - - const H = std.normalize(viewDir.add(lightDir)); - - const NdotL = std.max(0, std.dot(worldNormal, lightDir)); - const NdotV = std.max(0, std.dot(worldNormal, viewDir)); - const NdotH = std.max(0, std.dot(worldNormal, H)); - const HdotV = std.max(0, std.dot(H, viewDir)); - - const F0 = std.mix(d.vec3f(0.04), albedo, metallic); - - const D = distributionGGX(NdotH, roughness); - const G = geometrySmith(NdotV, NdotL, roughness); - const F = fresnelSchlick(HdotV, F0); - - const kD = std.sub(1, F).mul(1 - metallic); - const diffuse = std.div(kD.mul(albedo), Math.PI); - const specular = std.div(F.mul(D).mul(G), std.max(4 * NdotV * NdotL, 0.001)); - - let shaded = d - .vec3f(0.03) - .mul(albedo) - .mul(ao) - .add(diffuse.add(specular).mul(NdotL).mul(shadowFactor)); - - shaded = std.div(shaded, shaded.add(1)); - shaded = std.pow(shaded, d.vec3f(1 / 3.2)); - - const hitLocal = std.sub(hitUv01.mul(2), 1).mul(size); - const hitFootprintPos = origin.add(T.mul(hitLocal.x)).add(B.mul(hitLocal.y)); - const hitWorldPos = hitFootprintPos.add(N.mul((1 - depthForWorld) * height)); - const hitClipPos = camera.projection.mul(camera.view).mul(d.vec4f(hitWorldPos, 1)); - - return { - color: d.vec4f(shaded, 1), - depth: hitClipPos.z / hitClipPos.w, - }; -}); - -const pipeline = root - .createRenderPipeline({ - attribs: { ...spomVertexLayout.attrib, ...spomInstanceLayout.attrib }, - vertex: vertexFn, - fragment: fragmentFn, - targets: { color: { format: presentationFormat } }, - primitive: { - cullMode: 'back', - }, - depthStencil: { - format: 'depth32float', - depthWriteEnabled: true, - depthCompare: 'less', - }, - }) - .with(spomVertexLayout, spomMesh.vertexBuffer) - .with(spomInstanceLayout, spomMesh.instanceBuffer) - .withIndexBuffer(spomMesh.indexBuffer); - -let depthTexture: TgpuTexture<{ - size: [number, number]; - format: 'depth32float'; -}> & - RenderFlag; - -function createDepthTexture() { - depthTexture?.destroy(); - depthTexture = root - .createTexture({ - size: [canvas.width, canvas.height], - format: 'depth32float', - }) - .$usage('render'); -} -createDepthTexture(); - -let frameId: number; -function frame() { - pipeline - .withColorAttachment({ - color: { view: context, clearValue: [0.48, 0.54, 0.6, 1] }, - }) - .withDepthStencilAttachment({ - view: depthTexture, - depthClearValue: 1, - depthLoadOp: 'clear', - depthStoreOp: 'store', - }) - .drawIndexed(spomMesh.indexCount, spomMesh.instanceCount); - frameId = requestAnimationFrame(frame); -} -frameId = requestAnimationFrame(frame); - -// #region Example controls and cleanup - -export const controls = defineControls({ - tiling: { - initial: 1, - min: 0.5, - max: 2, - step: 0.1, - onSliderChange(v) { - spomParams.patch({ tiling: v }); - }, - }, - 'relief scale': { - initial: 1, - min: 0.2, - max: 1.8, - step: 0.05, - onSliderChange(v) { - spomParams.patch({ reliefScale: v }); - }, - }, - 'parallax steps': { - initial: DEFAULT_PARALLAX_STEPS, - min: 4, - max: MAX_PARALLAX_STEPS, - step: 1, - onSliderChange(v) { - spomParams.patch({ parallaxSteps: Math.round(v) }); - }, - }, - 'sun height': { - initial: INITIAL_SUN_HEIGHT, - min: 0, - max: 1, - step: 0.01, - onSliderChange(v) { - sunHeight = v; - spomParams.patch({ lightDir: computeLightDir(sunAngle, sunHeight) }); - }, - }, - 'sun angle': { - initial: Math.round((INITIAL_SUN_ANGLE * 180) / Math.PI), - min: 0, - max: 360, - step: 1, - onSliderChange(v) { - sunAngle = (v * Math.PI) / 180; - spomParams.patch({ lightDir: computeLightDir(sunAngle, sunHeight) }); - }, - }, -}); - -const resizeObserver = new ResizeObserver(createDepthTexture); -resizeObserver.observe(canvas); - -export function onCleanup() { - cancelAnimationFrame(frameId); - cleanupCamera(); - resizeObserver.unobserve(canvas); - depthTexture.destroy(); - root.destroy(); -} - -// #endregion diff --git a/apps/typegpu-docs/src/examples/rendering/spom/meta.json b/apps/typegpu-docs/src/examples/rendering/spom/meta.json deleted file mode 100644 index 7b39686045..0000000000 --- a/apps/typegpu-docs/src/examples/rendering/spom/meta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "title": "Silhouette Parallax Occlusion Mapping", - "category": "rendering", - "tags": ["3d", "lighting", "ray marching", "rasterization", "shadows"], - "coolFactor": 9 -} diff --git a/apps/typegpu-docs/src/examples/rendering/spom/shaders.ts b/apps/typegpu-docs/src/examples/rendering/spom/shaders.ts deleted file mode 100644 index 07970d1f0b..0000000000 --- a/apps/typegpu-docs/src/examples/rendering/spom/shaders.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { d, std } from 'typegpu'; - -// PBR - -export function distributionGGX(NdotH: number, roughness: number) { - 'use gpu'; - const a = roughness * roughness; - const a2 = a * a; - const denom = NdotH * NdotH * (a2 - 1) + 1; - return a2 / (Math.PI * denom * denom); -} - -export function geometrySchlickGGX(NdotV: number, roughness: number) { - 'use gpu'; - const r = roughness + 1; - const k = (r * r) / 8; - return NdotV / (NdotV * (1 - k) + k); -} - -export function geometrySmith(NdotV: number, NdotL: number, roughness: number) { - 'use gpu'; - return geometrySchlickGGX(NdotV, roughness) * geometrySchlickGGX(NdotL, roughness); -} - -export function fresnelSchlick(cosTheta: number, F0: d.v3f) { - 'use gpu'; - const f = std.pow(1 - cosTheta, 5); - return F0.add(std.sub(1, F0).mul(f)); -} - -// SPOM - -export function isOutOfBounds(uv: d.v2f, tiling: number) { - 'use gpu'; - return uv.x < 0 || uv.x > tiling || uv.y < 0 || uv.y > tiling; -} - -export function toTangentSpace(dir: d.v3f, T: d.v3f, B: d.v3f, N: d.v3f) { - 'use gpu'; - return std.normalize(d.vec3f(std.dot(dir, T), std.dot(dir, B), std.dot(dir, N))); -} - -export function uvRayPerDepth(dir: d.v3f, heightScale: number, tiling: number, size: d.v2f) { - 'use gpu'; - const invZ = 1 / std.max(dir.z, 0.001); - return dir.xy.mul(invZ).mul(heightScale).mul(tiling).div(size); -} - -export function faceEdgeMask(uv01: d.v2f) { - 'use gpu'; - - const edge = std.min(std.min(uv01.x, 1 - uv01.x), std.min(uv01.y, 1 - uv01.y)); - return std.smoothstep(0.055, 0.14, edge); -} - -export function shapeSurfaceDepth(rawDepth: number, materialBase: number, uv01: d.v2f) { - 'use gpu'; - - if (materialBase === 0) { - return std.mix(0.58, rawDepth, 0.42); - } - - const height = 1 - rawDepth; - return 1 - height * faceEdgeMask(uv01); -} - -export function intersectUvDepthBox( - startUv: d.v2f, - rayUvPerDepth: d.v2f, - tiling: number, - maxDepthDelta: number, -) { - 'use gpu'; - - let tMin = d.f32(0); - let tMax = maxDepthDelta; - const eps = d.f32(0.00001); - - if (std.abs(rayUvPerDepth.x) < eps) { - if (startUv.x < 0 || startUv.x > tiling) { - return d.vec2f(1, 0); - } - } else { - const tx0 = (0 - startUv.x) / rayUvPerDepth.x; - const tx1 = (tiling - startUv.x) / rayUvPerDepth.x; - tMin = std.max(tMin, std.min(tx0, tx1)); - tMax = std.min(tMax, std.max(tx0, tx1)); - } - - if (std.abs(rayUvPerDepth.y) < eps) { - if (startUv.y < 0 || startUv.y > tiling) { - return d.vec2f(1, 0); - } - } else { - const ty0 = (0 - startUv.y) / rayUvPerDepth.y; - const ty1 = (tiling - startUv.y) / rayUvPerDepth.y; - tMin = std.max(tMin, std.min(ty0, ty1)); - tMax = std.min(tMax, std.max(ty0, ty1)); - } - - return d.vec2f(tMin, tMax); -} diff --git a/apps/typegpu-docs/src/examples/rendering/spom/types.ts b/apps/typegpu-docs/src/examples/rendering/spom/types.ts deleted file mode 100644 index 8ec0468ba9..0000000000 --- a/apps/typegpu-docs/src/examples/rendering/spom/types.ts +++ /dev/null @@ -1,159 +0,0 @@ -import tgpu, { d } from 'typegpu'; - -export const SpomVertex = d.struct({ - uv: d.vec2f, - volumeDepth: d.f32, -}); - -export const SpomInstance = d.struct({ - origin: d.vec3f, - size: d.vec2f, - tangent: d.vec3f, - bitangent: d.vec3f, - normal: d.vec3f, - heightScale: d.f32, - uvTiling: d.f32, - materialBase: d.u32, -}); - -export const SpomParams = d.struct({ - reliefScale: d.f32, - tiling: d.f32, - lightDir: d.vec3f, - parallaxSteps: d.u32, -}); - -export const INITIAL_SUN_ANGLE = Math.atan2(0.5, 1) + Math.PI; -export const INITIAL_SUN_HEIGHT = 0.05; -export const MIN_SUN_ELEVATION = 0.08; -export const MAX_PARALLAX_STEPS = 128; -export const DEFAULT_PARALLAX_STEPS = 80; - -export const SCENE_MATERIAL_IDS = ['beach', 'bricks'] as const; -export type SceneMaterialId = (typeof SCENE_MATERIAL_IDS)[number]; - -export const MATERIAL_LAYER_STRIDE = 6; -export const SCENE_TEXTURE_LAYER_COUNT = SCENE_MATERIAL_IDS.length * MATERIAL_LAYER_STRIDE; -export const MATERIAL_LAYER = { - albedo: 0, - normal: 1, - height: 2, - ao: 3, - roughness: 4, - metallic: 5, -} as const; - -export const spomVertexLayout = tgpu.vertexLayout(d.arrayOf(SpomVertex)); -export const spomInstanceLayout = tgpu.vertexLayout(d.arrayOf(SpomInstance), 'instance'); - -function createSpomGrid(subdivisions: number) { - const vertices: d.InferInput[] = []; - const indices: number[] = []; - - for (let y = 0; y <= subdivisions; y++) { - for (let x = 0; x <= subdivisions; x++) { - vertices.push({ - uv: [x / subdivisions, y / subdivisions], - volumeDepth: 0, - }); - } - } - - for (let y = 0; y < subdivisions; y++) { - for (let x = 0; x < subdivisions; x++) { - const a = y * (subdivisions + 1) + x; - const b = a + 1; - const c = a + subdivisions + 1; - const e = c + 1; - indices.push(a, c, b, b, c, e); - } - } - - return { vertices, indices }; -} - -const spomGrid = createSpomGrid(24); - -export const spomVertices = spomGrid.vertices; -export const spomIndices = spomGrid.indices; - -const materialBaseLayer = (materialIndex: number) => materialIndex * MATERIAL_LAYER_STRIDE; - -export const spomInstances: d.InferInput[] = [ - { - origin: [0, -0.55, 0], - size: [3.8, 2.8], - tangent: [1, 0, 0], - bitangent: [0, 0, 1], - normal: [0, 1, 0], - heightScale: 0.025, - uvTiling: 3.6, - materialBase: materialBaseLayer(0), - }, - { - origin: [0, 0.48, 0], - size: [0.72, 0.58], - tangent: [1, 0, 0], - bitangent: [0, 0, 1], - normal: [0, 1, 0], - heightScale: 0.045, - uvTiling: 1.65, - materialBase: materialBaseLayer(1), - }, - { - origin: [0, 0, 0.58], - size: [0.72, 0.48], - tangent: [-1, 0, 0], - bitangent: [0, 1, 0], - normal: [0, 0, 1], - heightScale: 0.012, - uvTiling: 1.65, - materialBase: materialBaseLayer(1), - }, - { - origin: [0, 0, -0.58], - size: [0.72, 0.48], - tangent: [1, 0, 0], - bitangent: [0, 1, 0], - normal: [0, 0, -1], - heightScale: 0.012, - uvTiling: 1.65, - materialBase: materialBaseLayer(1), - }, - { - origin: [0.72, 0, 0], - size: [0.58, 0.48], - tangent: [0, 0, 1], - bitangent: [0, 1, 0], - normal: [1, 0, 0], - heightScale: 0.012, - uvTiling: 1.65, - materialBase: materialBaseLayer(1), - }, - { - origin: [-0.72, 0, 0], - size: [0.58, 0.48], - tangent: [0, 0, -1], - bitangent: [0, 1, 0], - normal: [-1, 0, 0], - heightScale: 0.012, - uvTiling: 1.65, - materialBase: materialBaseLayer(1), - }, - { - origin: [0, -0.48, 0], - size: [0.72, 0.58], - tangent: [1, 0, 0], - bitangent: [0, 0, -1], - normal: [0, -1, 0], - heightScale: 0.025, - uvTiling: 1.65, - materialBase: materialBaseLayer(1), - }, -]; - -export function computeLightDir(angle: number, height: number): [number, number, number] { - const elevation = MIN_SUN_ELEVATION + (Math.PI / 2 - MIN_SUN_ELEVATION) * height; - const horizontal = Math.cos(elevation); - return [Math.cos(angle) * horizontal, Math.sin(elevation), Math.sin(angle) * horizontal]; -} From 7cbc3cc0555ab07e6342c05687977b90aa687410 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Wed, 6 May 2026 13:15:46 +0200 Subject: [PATCH 24/24] simpler --- .../src/examples/common/setup-orbit-camera.ts | 42 +++++++------------ .../examples/rendering/area-light/index.ts | 1 - 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/apps/typegpu-docs/src/examples/common/setup-orbit-camera.ts b/apps/typegpu-docs/src/examples/common/setup-orbit-camera.ts index bbff9a8760..9cba0e0bfe 100644 --- a/apps/typegpu-docs/src/examples/common/setup-orbit-camera.ts +++ b/apps/typegpu-docs/src/examples/common/setup-orbit-camera.ts @@ -15,9 +15,6 @@ export interface CameraOptions { target?: d.v4f; minZoom?: number; maxZoom?: number; - minPitch?: number; - maxPitch?: number; - minCameraY?: number; invertCamera?: boolean; } @@ -25,9 +22,6 @@ const cameraDefaults: Partial = { target: d.vec4f(0, 0, 0, 1), minZoom: 1, maxZoom: 100, - minPitch: -Math.PI / 2 + 0.01, - maxPitch: Math.PI / 2 - 0.01, - minCameraY: Number.NEGATIVE_INFINITY, invertCamera: false, }; @@ -62,13 +56,12 @@ export function setupOrbitCamera( cameraState.pitch = Math.asin(cameraVector.y / cameraState.radius); cameraState.target = tgt; - const position = currentCameraPosition(); - const view = calculateView(position, cameraState.target); + const view = calculateView(newPos, cameraState.target); const projection = calculateProj(canvas.clientWidth / canvas.clientHeight); callback( Camera({ - position, + position: newPos, targetPos: cameraState.target, view, projection, @@ -82,8 +75,14 @@ export function setupOrbitCamera( const orbitSensitivity = 0.005; cameraState.yaw += -dx * orbitSensitivity * (options.invertCamera ? -1 : 1); cameraState.pitch += dy * orbitSensitivity * (options.invertCamera ? -1 : 1); + cameraState.pitch = std.clamp(cameraState.pitch, -Math.PI / 2 + 0.01, Math.PI / 2 - 0.01); - const newCameraPos = currentCameraPosition(); + const newCameraPos = calculatePos( + cameraState.target, + cameraState.radius, + cameraState.pitch, + cameraState.yaw, + ); const newView = calculateView(newCameraPos, cameraState.target); @@ -98,7 +97,12 @@ export function setupOrbitCamera( cameraState.radius += delta * 0.05; cameraState.radius = std.clamp(cameraState.radius, options.minZoom, options.maxZoom); - const newPos = currentCameraPosition(); + const newPos = calculatePos( + cameraState.target, + cameraState.radius, + cameraState.pitch, + cameraState.yaw, + ); const newView = calculateView(newPos, cameraState.target); callback({ @@ -210,22 +214,6 @@ export function setupOrbitCamera( passive: false, }); - function currentCameraPosition() { - const minPitchForHeight = Number.isFinite(options.minCameraY) - ? Math.asin( - std.clamp((options.minCameraY - cameraState.target.y) / cameraState.radius, -1, 1), - ) - : options.minPitch; - - cameraState.pitch = std.clamp( - cameraState.pitch, - Math.max(options.minPitch, minPitchForHeight), - options.maxPitch, - ); - - return calculatePos(cameraState.target, cameraState.radius, cameraState.pitch, cameraState.yaw); - } - canvas.addEventListener( 'touchmove', (e) => { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index d386e4cfcb..a59c8243c8 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -150,7 +150,6 @@ const { cleanupCamera } = setupOrbitCamera( target: d.vec4f(-0.35, 0.52, -0.45, 1), minZoom: 1.8, maxZoom: 14, - minCameraY: 0.22, }, (updates) => cameraUniform.patch(updates), );

  • FycuV7-Ydq{-jmp<~V{hur}v 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 Date: Thu, 30 Apr 2026 00:19:20 +0200 Subject: [PATCH 02/24] Improve area light example materials --- .../examples/rendering/area-light/geometry.ts | 152 +++++++----------- .../examples/rendering/area-light/index.ts | 141 +++++++--------- .../examples/rendering/area-light/schemas.ts | 12 +- .../examples/rendering/area-light/shaders.ts | 130 +++++++++------ 4 files changed, 206 insertions(+), 229 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index 88c4fcec33..8d5d55f88c 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -2,8 +2,6 @@ import type { ExampleVertex } from './schemas.ts'; type Vec3 = [number, number, number]; -const black: Vec3 = [0, 0, 0]; - function add(a: Vec3, b: Vec3): Vec3 { return [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; } @@ -21,14 +19,14 @@ function normalize(v: Vec3): Vec3 { return len > 0 ? [v[0] / len, v[1] / len, v[2] / len] : [0, 1, 0]; } -function vertex( - position: Vec3, - normal: Vec3, - albedo: Vec3, - roughness: number, - emissive: Vec3 = black, -): ExampleVertex { - return { position, normal, albedo, roughness, emissive }; +interface Material { + albedo: Vec3; + roughness: number; + metallic: number; +} + +function vertex(position: Vec3, normal: Vec3, mat: Material): ExampleVertex { + return { position, normal, albedo: mat.albedo, roughness: mat.roughness, metallic: mat.metallic }; } function pushQuad( @@ -37,31 +35,23 @@ function pushQuad( axisU: Vec3, axisV: Vec3, normal: Vec3, - albedo: Vec3, - roughness: number, - emissive: Vec3 = black, + mat: Material, ) { const p0 = sub(sub(center, axisU), axisV); const p1 = sub(add(center, axisU), axisV); const p2 = add(add(center, axisU), axisV); const p3 = add(sub(center, axisU), axisV); vertices.push( - vertex(p0, normal, albedo, roughness, emissive), - vertex(p1, normal, albedo, roughness, emissive), - vertex(p2, normal, albedo, roughness, emissive), - vertex(p0, normal, albedo, roughness, emissive), - vertex(p2, normal, albedo, roughness, emissive), - vertex(p3, normal, albedo, roughness, emissive), + vertex(p0, normal, mat), + vertex(p1, normal, mat), + vertex(p2, normal, mat), + vertex(p0, normal, mat), + vertex(p2, normal, mat), + vertex(p3, normal, mat), ); } -function pushSphere( - vertices: ExampleVertex[], - center: Vec3, - radius: number, - albedo: Vec3, - roughness: number, -) { +function pushSphere(vertices: ExampleVertex[], center: Vec3, radius: number, mat: Material) { const segments = 48; const rings = 24; @@ -89,83 +79,53 @@ function pushSphere( const d = spherePoint(u1, v0); vertices.push( - vertex(a.position, a.normal, albedo, roughness), - vertex(b.position, b.normal, albedo, roughness), - vertex(c.position, c.normal, albedo, roughness), - vertex(a.position, a.normal, albedo, roughness), - vertex(c.position, c.normal, albedo, roughness), - vertex(d.position, d.normal, albedo, roughness), + vertex(a.position, a.normal, mat), + vertex(b.position, b.normal, mat), + vertex(c.position, c.normal, mat), + vertex(a.position, a.normal, mat), + vertex(c.position, c.normal, mat), + vertex(d.position, d.normal, mat), ); } } } -export const initialLight = { - center: [0, 3.2, -0.6] as Vec3, - dirX: [1, 0, 0] as Vec3, - dirY: [0, 0, 1] as Vec3, - halfSize: [1.25, 0.75] as [number, number], - color: [1, 0.78, 0.45] as Vec3, - intensity: 5.5, -}; - -export function createSceneVertices(light = initialLight, surfaceRoughness?: number) { +export const initialLights = [ + { + center: [0, 3.2, -0.6] as Vec3, + dirX: [1, 0, 0] as Vec3, + dirY: [0, 0, 1] as Vec3, + halfSize: [1.25, 0.75] as [number, number], + color: [1, 0.78, 0.45] as Vec3, + intensity: 5.5, + }, + { + center: [-3.4, 1.6, 1.8] as Vec3, + dirX: [0, 0, 1] as Vec3, + dirY: [0, 1, 0] as Vec3, + halfSize: [0.7, 0.95] as [number, number], + color: [0.35, 0.55, 1.0] as Vec3, + intensity: 4.0, + }, +]; + +const FLOOR_MATERIAL: Material = { albedo: [0.85, 0.83, 0.78], roughness: 0.08, metallic: 0 }; +const BACK_WALL: Material = { albedo: [0.32, 0.36, 0.44], roughness: 0.55, metallic: 0 }; +const LEFT_WALL: Material = { albedo: [0.55, 0.32, 0.3], roughness: 0.5, metallic: 0 }; +const RIGHT_WALL: Material = { albedo: [0.28, 0.42, 0.36], roughness: 0.5, metallic: 0 }; +const GOLD_SPHERE: Material = { albedo: [1.0, 0.78, 0.36], roughness: 0.08, metallic: 1 }; +const PLASTIC_SPHERE: Material = { albedo: [0.16, 0.28, 0.5], roughness: 0.4, metallic: 0 }; + +export function createSceneVertices() { const vertices: ExampleVertex[] = []; - const floorRoughness = surfaceRoughness ?? 0.55; - const wallRoughness = surfaceRoughness ?? 0.42; - const sphereRoughness = surfaceRoughness ?? 0.18; - const blueSphereRoughness = surfaceRoughness ?? 0.46; - - pushQuad( - vertices, - [0, 0, 0], - [4.5, 0, 0], - [0, 0, -4.5], - [0, 1, 0], - [0.72, 0.7, 0.65], - floorRoughness, - ); - pushQuad( - vertices, - [0, 1.8, -4.5], - [4.5, 0, 0], - [0, 1.8, 0], - [0, 0, 1], - [0.48, 0.53, 0.61], - wallRoughness, - ); - pushQuad( - vertices, - [-4.5, 1.8, 0], - [0, 0, -4.5], - [0, 1.8, 0], - [1, 0, 0], - [0.6, 0.44, 0.42], - wallRoughness, - ); - pushQuad( - vertices, - [4.5, 1.8, 0], - [0, 0, 4.5], - [0, 1.8, 0], - [-1, 0, 0], - [0.4, 0.52, 0.48], - wallRoughness, - ); - pushSphere(vertices, [-1.15, 0.82, -1.35], 0.82, [0.82, 0.87, 0.9], sphereRoughness); - pushSphere(vertices, [1.2, 0.58, 0.25], 0.58, [0.38, 0.62, 0.74], blueSphereRoughness); - - pushQuad( - vertices, - light.center, - mul(light.dirX, light.halfSize[0]), - mul(light.dirY, light.halfSize[1]), - [0, -1, 0], - [1, 1, 1], - 0.2, - light.color.map((channel) => channel * light.intensity) as Vec3, - ); + pushQuad(vertices, [0, 0, 0], [4.5, 0, 0], [0, 0, -4.5], [0, 1, 0], FLOOR_MATERIAL); + pushQuad(vertices, [0, 1.8, -4.5], [4.5, 0, 0], [0, 1.8, 0], [0, 0, 1], BACK_WALL); + pushQuad(vertices, [-4.5, 1.8, 0], [0, 0, -4.5], [0, 1.8, 0], [1, 0, 0], LEFT_WALL); + pushQuad(vertices, [4.5, 1.8, 0], [0, 0, 4.5], [0, 1.8, 0], [-1, 0, 0], RIGHT_WALL); + + pushSphere(vertices, [-1.15, 0.82, -1.35], 0.82, GOLD_SPHERE); + pushSphere(vertices, [1.2, 0.58, 0.25], 0.58, PLASTIC_SPHERE); return vertices; } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 90c7d8335f..ea1fbd8dfe 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -1,62 +1,49 @@ import tgpu, { d } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; -import { createSceneVertices, initialLight } from './geometry.ts'; +import { createSceneVertices, initialLights } from './geometry.ts'; import { LTC_1, LTC_2 } from './ltcTables.ts'; -import { ltcLayout, RectLight, RenderParams, sceneLayout, vertexLayout } from './schemas.ts'; -import { mainFragment, mainVertex } from './shaders.ts'; +import { + LIGHT_COUNT, + Lights, + ltcLayout, + RenderParams, + sceneLayout, + vertexLayout, +} from './schemas.ts'; +import { lightFragment, lightVertex, mainFragment, mainVertex } from './shaders.ts'; const root = await tgpu.init(); const canvas = document.querySelector('canvas') as HTMLCanvasElement; const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); -const currentLight = { - center: [...initialLight.center] as typeof initialLight.center, - dirX: [...initialLight.dirX] as typeof initialLight.dirX, - dirY: [...initialLight.dirY] as typeof initialLight.dirY, - halfSize: [...initialLight.halfSize] as typeof initialLight.halfSize, - color: [...initialLight.color] as typeof initialLight.color, - intensity: initialLight.intensity, -}; -let surfaceRoughness: number | undefined; - -function writeSceneVertices() { - vertexBuffer.write(createSceneVertices(currentLight, surfaceRoughness)); -} - -const vertices = createSceneVertices(currentLight, surfaceRoughness); +const vertices = createSceneVertices(); const vertexBuffer = root .createBuffer(vertexLayout.schemaForCount(vertices.length), vertices) .$usage('vertex'); const cameraUniform = root.createUniform(Camera); -const lightUniform = root.createUniform(RectLight, initialLight); +const lightsUniform = root.createUniform(Lights, initialLights); const paramsUniform = root.createUniform(RenderParams, { - exposure: 0.8, - ambient: 0.035, - specularStrength: 1, + exposure: 0.85, + ambientSky: [0.04, 0.05, 0.08], + ambientGround: [0.025, 0.022, 0.02], }); const ltcMatTexture = root - .createTexture({ - size: [64, 64], - format: 'rgba32float', - }) + .createTexture({ size: [64, 64], format: 'rgba32float' }) .$usage('sampled'); ltcMatTexture.write(LTC_1); const ltcAmpTexture = root - .createTexture({ - size: [64, 64], - format: 'rgba32float', - }) + .createTexture({ size: [64, 64], format: 'rgba32float' }) .$usage('sampled'); ltcAmpTexture.write(LTC_2); const sceneBindGroup = root.createBindGroup(sceneLayout, { camera: cameraUniform.buffer, - light: lightUniform.buffer, + lights: lightsUniform.buffer, params: paramsUniform.buffer, }); @@ -66,22 +53,23 @@ const ltcBindGroup = root.createBindGroup(ltcLayout, { }); let depthTexture = root - .createTexture({ - size: [canvas.width, canvas.height], - format: 'depth24plus', - }) + .createTexture({ size: [canvas.width, canvas.height], format: 'depth24plus' }) .$usage('render'); -const pipeline = root.createRenderPipeline({ +const scenePipeline = root.createRenderPipeline({ attribs: vertexLayout.attrib, vertex: mainVertex, fragment: mainFragment, targets: { format: presentationFormat }, - depthStencil: { - format: 'depth24plus', - depthWriteEnabled: true, - depthCompare: 'less', - }, + depthStencil: { format: 'depth24plus', depthWriteEnabled: true, depthCompare: 'less' }, + primitive: { cullMode: 'none' }, +}); + +const lightPipeline = root.createRenderPipeline({ + vertex: lightVertex, + fragment: lightFragment, + targets: { format: presentationFormat }, + depthStencil: { format: 'depth24plus', depthWriteEnabled: true, depthCompare: 'less' }, primitive: { cullMode: 'none' }, }); @@ -99,10 +87,7 @@ const { cleanupCamera } = setupOrbitCamera( const resizeObserver = new ResizeObserver(() => { depthTexture.destroy(); depthTexture = root - .createTexture({ - size: [canvas.width, canvas.height], - format: 'depth24plus', - }) + .createTexture({ size: [canvas.width, canvas.height], format: 'depth24plus' }) .$usage('render'); }); resizeObserver.observe(canvas); @@ -110,13 +95,15 @@ resizeObserver.observe(canvas); let animationFrameId: number; function render() { - pipeline + scenePipeline .with(sceneBindGroup) .with(ltcBindGroup) .with(vertexLayout, vertexBuffer) .withColorAttachment({ view: context, clearValue: [0.02, 0.022, 0.025, 1], + loadOp: 'clear', + storeOp: 'store', }) .withDepthStencilAttachment({ view: depthTexture, @@ -126,6 +113,16 @@ function render() { }) .draw(vertices.length); + lightPipeline + .with(sceneBindGroup) + .withColorAttachment({ view: context, loadOp: 'load', storeOp: 'store' }) + .withDepthStencilAttachment({ + view: depthTexture, + depthLoadOp: 'load', + depthStoreOp: 'store', + }) + .draw(6 * LIGHT_COUNT); + animationFrameId = requestAnimationFrame(render); } @@ -133,51 +130,33 @@ animationFrameId = requestAnimationFrame(render); export const controls = defineControls({ exposure: { - initial: 0.8, + initial: 0.85, min: 0.2, max: 2, step: 0.01, onSliderChange: (exposure) => paramsUniform.patch({ exposure }), }, - roughness: { - initial: 0.18, - min: 0.03, - max: 0.9, - step: 0.01, - onSliderChange: (roughness) => { - surfaceRoughness = roughness; - writeSceneVertices(); - }, - }, - intensity: { - initial: initialLight.intensity, + 'key intensity': { + initial: initialLights[0].intensity, min: 0, max: 12, step: 0.1, - onSliderChange: (intensity) => { - currentLight.intensity = intensity; - lightUniform.patch({ intensity }); - writeSceneVertices(); - }, + onSliderChange: (intensity) => lightsUniform.patch({ 0: { intensity } }), + }, + 'key color': { + initial: d.vec3f(...initialLights[0].color), + onColorChange: (color) => lightsUniform.patch({ 0: { color } }), }, - 'light color': { - initial: d.vec3f(...initialLight.color), - onColorChange: (color) => { - currentLight.color = [color.x, color.y, color.z]; - lightUniform.patch({ color }); - writeSceneVertices(); - }, + 'fill intensity': { + initial: initialLights[1].intensity, + min: 0, + max: 12, + step: 0.1, + onSliderChange: (intensity) => lightsUniform.patch({ 1: { intensity } }), }, - 'light size': { - initial: d.vec2f(...initialLight.halfSize), - min: d.vec2f(0.25, 0.25), - max: d.vec2f(2.4, 1.6), - step: d.vec2f(0.01, 0.01), - onVectorSliderChange: (halfSize) => { - currentLight.halfSize = [halfSize.x, halfSize.y]; - lightUniform.patch({ halfSize }); - writeSceneVertices(); - }, + 'fill color': { + initial: d.vec3f(...initialLights[1].color), + onColorChange: (color) => lightsUniform.patch({ 1: { color } }), }, }); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index 97ab2e1a8e..5f5bd252e6 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -1,12 +1,14 @@ import tgpu, { d } from 'typegpu'; import { Camera } from '../../common/setup-orbit-camera.ts'; +export const LIGHT_COUNT = 2; + export const Vertex = d.struct({ position: d.vec3f, normal: d.vec3f, albedo: d.vec3f, roughness: d.f32, - emissive: d.vec3f, + metallic: d.f32, }); export const RectLight = d.struct({ @@ -18,10 +20,12 @@ export const RectLight = d.struct({ intensity: d.f32, }); +export const Lights = d.arrayOf(RectLight, LIGHT_COUNT); + export const RenderParams = d.struct({ exposure: d.f32, - ambient: d.f32, - specularStrength: d.f32, + ambientSky: d.vec3f, + ambientGround: d.vec3f, }); export const HorizonClip = d.struct({ @@ -37,7 +41,7 @@ export const vertexLayout = tgpu.vertexLayout(d.arrayOf(Vertex)); export const sceneLayout = tgpu.bindGroupLayout({ camera: { uniform: Camera }, - light: { uniform: RectLight }, + lights: { uniform: Lights }, params: { uniform: RenderParams }, }); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index 80edb7b921..888dce16b1 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,5 +1,13 @@ import tgpu, { d, std } from 'typegpu'; -import { HorizonClip, ltcLayout, sceneLayout, Vertex, vertexLayout } from './schemas.ts'; +import { + HorizonClip, + LIGHT_COUNT, + ltcLayout, + RectLight, + sceneLayout, + Vertex, + vertexLayout, +} from './schemas.ts'; export { vertexLayout }; @@ -12,11 +20,6 @@ function saturate(value: number) { return std.clamp(value, 0, 1); } -function luminance(color: d.v3f) { - 'use gpu'; - return std.dot(color, d.vec3f(0.2126, 0.7152, 0.0722)); -} - function integrateEdgeVec(v1: d.v3f, v2: d.v3f) { 'use gpu'; const x = std.dot(v1, v2); @@ -123,7 +126,7 @@ function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { return HorizonClip({ l0, l1, l2, l3, l4, count }); } -function ltcEvaluate(N: d.v3f, V: d.v3f, P: d.v3f, Minv: d.m3x3f) { +function ltcEvaluate(N: d.v3f, V: d.v3f, P: d.v3f, Minv: d.m3x3f, light: d.Infer) { 'use gpu'; let T1 = V - N * std.dot(V, N); if (std.dot(T1, T1) < 1e-5) { @@ -136,7 +139,6 @@ function ltcEvaluate(N: d.v3f, V: d.v3f, P: d.v3f, Minv: d.m3x3f) { T1 = std.normalize(T1); const T2 = std.cross(N, T1); - const light = sceneLayout.$.light; const ex = light.dirX * light.halfSize.x; const ey = light.dirY * light.halfSize.y; const p0 = light.center - ex - ey; @@ -175,51 +177,39 @@ function ltcEvaluate(N: d.v3f, V: d.v3f, P: d.v3f, Minv: d.m3x3f) { return std.abs(sum); } -function sampleLtcTexelMat(x: number, y: number) { - 'use gpu'; - const coord = d.vec2u(d.u32(x), d.u32(y)); - return std.textureLoad(ltcLayout.$.ltcMat, coord, 0); -} - -function sampleLtcTexelAmp(x: number, y: number) { - 'use gpu'; - const coord = d.vec2u(d.u32(x), d.u32(y)); - return std.textureLoad(ltcLayout.$.ltcAmp, coord, 0); -} - -function sampleLtcBilinearMat(uv: d.v2f) { +function bilinearLoadLtcMat(uv: d.v2f) { 'use gpu'; const pos = std.clamp(uv * LUT_SIZE - 0.5, d.vec2f(0), d.vec2f(LUT_SIZE - 1)); const base = std.floor(pos); const frac = pos - base; const next = std.min(base + 1, d.vec2f(LUT_SIZE - 1)); - const t00 = sampleLtcTexelMat(base.x, base.y); - const t10 = sampleLtcTexelMat(next.x, base.y); - const t01 = sampleLtcTexelMat(base.x, next.y); - const t11 = sampleLtcTexelMat(next.x, next.y); + const t00 = std.textureLoad(ltcLayout.$.ltcMat, d.vec2u(d.u32(base.x), d.u32(base.y)), 0); + const t10 = std.textureLoad(ltcLayout.$.ltcMat, d.vec2u(d.u32(next.x), d.u32(base.y)), 0); + const t01 = std.textureLoad(ltcLayout.$.ltcMat, d.vec2u(d.u32(base.x), d.u32(next.y)), 0); + const t11 = std.textureLoad(ltcLayout.$.ltcMat, d.vec2u(d.u32(next.x), d.u32(next.y)), 0); return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); } -function sampleLtcAmp(uv: d.v2f) { +function bilinearLoadLtcAmp(uv: d.v2f) { 'use gpu'; const pos = std.clamp(uv * LUT_SIZE - 0.5, d.vec2f(0), d.vec2f(LUT_SIZE - 1)); const base = std.floor(pos); const frac = pos - base; const next = std.min(base + 1, d.vec2f(LUT_SIZE - 1)); - const t00 = sampleLtcTexelAmp(base.x, base.y); - const t10 = sampleLtcTexelAmp(next.x, base.y); - const t01 = sampleLtcTexelAmp(base.x, next.y); - const t11 = sampleLtcTexelAmp(next.x, next.y); + const t00 = std.textureLoad(ltcLayout.$.ltcAmp, d.vec2u(d.u32(base.x), d.u32(base.y)), 0); + const t10 = std.textureLoad(ltcLayout.$.ltcAmp, d.vec2u(d.u32(next.x), d.u32(base.y)), 0); + const t01 = std.textureLoad(ltcLayout.$.ltcAmp, d.vec2u(d.u32(base.x), d.u32(next.y)), 0); + const t11 = std.textureLoad(ltcLayout.$.ltcAmp, d.vec2u(d.u32(next.x), d.u32(next.y)), 0); return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); } function sampleLtcMat(uv: d.v2f) { 'use gpu'; - const t = sampleLtcBilinearMat(uv); + const t = bilinearLoadLtcMat(uv); return d.mat3x3f(d.vec3f(t.x, 0, t.y), d.vec3f(0, 1, 0), d.vec3f(t.z, 0, t.w)); } @@ -238,9 +228,9 @@ export const mainVertex = tgpu.vertexFn({ normal: d.vec3f, albedo: d.vec3f, roughness: d.f32, - emissive: d.vec3f, + metallic: d.f32, }, -})(({ position, normal, albedo, roughness, emissive }) => { +})(({ position, normal, albedo, roughness, metallic }) => { 'use gpu'; const camera = sceneLayout.$.camera; return { @@ -249,7 +239,7 @@ export const mainVertex = tgpu.vertexFn({ normal, albedo, roughness, - emissive, + metallic, }; }); @@ -259,30 +249,74 @@ export const mainFragment = tgpu.fragmentFn({ normal: d.vec3f, albedo: d.vec3f, roughness: d.f32, - emissive: d.vec3f, + metallic: d.f32, }, out: d.vec4f, -})(({ worldPos, normal, albedo, roughness, emissive }) => { +})(({ worldPos, normal, albedo, roughness, metallic }) => { 'use gpu'; - if (luminance(emissive) > 0) { - return d.vec4f(tonemap(emissive), 1); - } - const N = std.normalize(normal); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); const NdotV = saturate(std.dot(N, V)); const uv = d.vec2f(std.clamp(roughness, 0.01, 1), std.sqrt(1 - NdotV)) * LUT_SCALE + LUT_BIAS; const Minv = sampleLtcMat(uv); - const brdf = sampleLtcAmp(uv); + const brdf = bilinearLoadLtcAmp(uv); + + const F0 = std.mix(d.vec3f(0.04), albedo, metallic); + const fresnel = F0 * brdf.x + (1 - F0) * brdf.y; + const kD = (1 - fresnel) * (1 - metallic); + + let direct = d.vec3f(0); + for (let i = d.u32(0); i < d.u32(LIGHT_COUNT); i++) { + const light = sceneLayout.$.lights[i]; + const diff = ltcEvaluate(N, V, worldPos, d.mat3x3f.identity(), light); + const specLtc = ltcEvaluate(N, V, worldPos, Minv, light); + const radiance = light.color * light.intensity; + direct += radiance * (kD * albedo * diff + fresnel * specLtc); + } - const diffuse = ltcEvaluate(N, V, worldPos, d.mat3x3f.identity()); - const specularLtc = ltcEvaluate(N, V, worldPos, Minv); - const specularColor = d.vec3f(0.04 * sceneLayout.$.params.specularStrength); - const specular = (specularColor * brdf.x + (1 - specularColor) * brdf.y) * specularLtc; + const skyFactor = saturate(0.5 * (N.y + 1)); + const ambient = std.mix(sceneLayout.$.params.ambientGround, sceneLayout.$.params.ambientSky, skyFactor) * albedo; - const direct = - sceneLayout.$.light.color * sceneLayout.$.light.intensity * (albedo * diffuse + specular); - const ambient = albedo * sceneLayout.$.params.ambient; return d.vec4f(tonemap(direct + ambient), 1); }); + +export const lightVertex = tgpu.vertexFn({ + in: { vid: d.builtin.vertexIndex }, + out: { pos: d.builtin.position, color: d.vec3f }, +})(({ vid }) => { + 'use gpu'; + const lightIdx = std.select(d.u32(0), d.u32(1), vid >= d.u32(6)); + const cornerVid = vid - lightIdx * d.u32(6); + + let signX = d.f32(-1); + let signY = d.f32(-1); + if (cornerVid === d.u32(1)) { + signX = 1; + signY = -1; + } else if (cornerVid === d.u32(2) || cornerVid === d.u32(4)) { + signX = 1; + signY = 1; + } else if (cornerVid === d.u32(5)) { + signX = -1; + signY = 1; + } + + const light = sceneLayout.$.lights[lightIdx]; + const worldPos = light.center + + light.dirX * light.halfSize.x * signX + + light.dirY * light.halfSize.y * signY; + const camera = sceneLayout.$.camera; + return { + pos: camera.projection * camera.view * d.vec4f(worldPos, 1), + color: light.color * light.intensity, + }; +}); + +export const lightFragment = tgpu.fragmentFn({ + in: { color: d.vec3f }, + out: d.vec4f, +})(({ color }) => { + 'use gpu'; + return d.vec4f(tonemap(color), 1); +}); From 04beb266c64009d66b40de626b81eef17d078582 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 00:28:48 +0200 Subject: [PATCH 03/24] Open up area light example scene --- .../examples/rendering/area-light/geometry.ts | 92 ++++++++++++++++--- .../examples/rendering/area-light/index.ts | 27 ++++-- .../examples/rendering/area-light/schemas.ts | 2 +- .../examples/rendering/area-light/shaders.ts | 21 +++-- 4 files changed, 113 insertions(+), 29 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index 8d5d55f88c..5ec9b6398a 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -51,6 +51,59 @@ function pushQuad( ); } +function pushBox(vertices: ExampleVertex[], center: Vec3, halfExtents: Vec3, mat: Material) { + const [hx, hy, hz] = halfExtents; + + pushQuad( + vertices, + [center[0], center[1] + hy, center[2]], + [hx, 0, 0], + [0, 0, -hz], + [0, 1, 0], + mat, + ); + pushQuad( + vertices, + [center[0], center[1] - hy, center[2]], + [hx, 0, 0], + [0, 0, hz], + [0, -1, 0], + mat, + ); + pushQuad( + vertices, + [center[0], center[1], center[2] + hz], + [hx, 0, 0], + [0, hy, 0], + [0, 0, 1], + mat, + ); + pushQuad( + vertices, + [center[0], center[1], center[2] - hz], + [hx, 0, 0], + [0, hy, 0], + [0, 0, -1], + mat, + ); + pushQuad( + vertices, + [center[0] - hx, center[1], center[2]], + [0, 0, hz], + [0, hy, 0], + [-1, 0, 0], + mat, + ); + pushQuad( + vertices, + [center[0] + hx, center[1], center[2]], + [0, 0, hz], + [0, hy, 0], + [1, 0, 0], + mat, + ); +} + function pushSphere(vertices: ExampleVertex[], center: Vec3, radius: number, mat: Material) { const segments = 48; const rings = 24; @@ -92,7 +145,7 @@ function pushSphere(vertices: ExampleVertex[], center: Vec3, radius: number, mat export const initialLights = [ { - center: [0, 3.2, -0.6] as Vec3, + center: [0, 3.15, -0.55] as Vec3, dirX: [1, 0, 0] as Vec3, dirY: [0, 0, 1] as Vec3, halfSize: [1.25, 0.75] as [number, number], @@ -107,25 +160,38 @@ export const initialLights = [ color: [0.35, 0.55, 1.0] as Vec3, intensity: 4.0, }, + { + center: [3.1, 1.45, -2.5] as Vec3, + dirX: [1, 0, 0] as Vec3, + dirY: [0, 1, 0] as Vec3, + halfSize: [0.55, 0.8] as [number, number], + color: [0.72, 1.0, 0.82] as Vec3, + intensity: 2.4, + }, ]; -const FLOOR_MATERIAL: Material = { albedo: [0.85, 0.83, 0.78], roughness: 0.08, metallic: 0 }; -const BACK_WALL: Material = { albedo: [0.32, 0.36, 0.44], roughness: 0.55, metallic: 0 }; -const LEFT_WALL: Material = { albedo: [0.55, 0.32, 0.3], roughness: 0.5, metallic: 0 }; -const RIGHT_WALL: Material = { albedo: [0.28, 0.42, 0.36], roughness: 0.5, metallic: 0 }; -const GOLD_SPHERE: Material = { albedo: [1.0, 0.78, 0.36], roughness: 0.08, metallic: 1 }; -const PLASTIC_SPHERE: Material = { albedo: [0.16, 0.28, 0.5], roughness: 0.4, metallic: 0 }; +const FLOOR_MATERIAL: Material = { albedo: [0.74, 0.76, 0.72], roughness: 0.48, metallic: 0 }; +const BACKDROP_MATERIAL: Material = { albedo: [0.28, 0.31, 0.37], roughness: 0.58, metallic: 0 }; +const PLINTH_MATERIAL: Material = { albedo: [0.52, 0.52, 0.48], roughness: 0.38, metallic: 0 }; +const DARK_BLOCK_MATERIAL: Material = { albedo: [0.24, 0.25, 0.29], roughness: 0.44, metallic: 0 }; +const GOLD_SPHERE: Material = { albedo: [1.0, 0.72, 0.26], roughness: 0.3, metallic: 0.12 }; +const CERAMIC_SPHERE: Material = { albedo: [0.82, 0.88, 0.8], roughness: 0.22, metallic: 0 }; +const PLASTIC_SPHERE: Material = { albedo: [0.13, 0.25, 0.5], roughness: 0.38, metallic: 0 }; export function createSceneVertices() { const vertices: ExampleVertex[] = []; - pushQuad(vertices, [0, 0, 0], [4.5, 0, 0], [0, 0, -4.5], [0, 1, 0], FLOOR_MATERIAL); - pushQuad(vertices, [0, 1.8, -4.5], [4.5, 0, 0], [0, 1.8, 0], [0, 0, 1], BACK_WALL); - pushQuad(vertices, [-4.5, 1.8, 0], [0, 0, -4.5], [0, 1.8, 0], [1, 0, 0], LEFT_WALL); - pushQuad(vertices, [4.5, 1.8, 0], [0, 0, 4.5], [0, 1.8, 0], [-1, 0, 0], RIGHT_WALL); + pushQuad(vertices, [0, 0, 0], [5, 0, 0], [0, 0, -4.2], [0, 1, 0], FLOOR_MATERIAL); + pushQuad(vertices, [0, 1.45, -3.3], [4.2, 0, 0], [0, 1.45, 0], [0, 0, 1], BACKDROP_MATERIAL); + + pushBox(vertices, [0, 0.08, -0.7], [2.55, 0.08, 1.25], PLINTH_MATERIAL); + pushBox(vertices, [-2.55, 0.22, 0.9], [0.55, 0.22, 0.55], DARK_BLOCK_MATERIAL); + pushBox(vertices, [2.25, 0.14, 0.75], [0.65, 0.14, 0.45], PLINTH_MATERIAL); - pushSphere(vertices, [-1.15, 0.82, -1.35], 0.82, GOLD_SPHERE); - pushSphere(vertices, [1.2, 0.58, 0.25], 0.58, PLASTIC_SPHERE); + pushSphere(vertices, [-1.25, 0.88, -1.1], 0.72, GOLD_SPHERE); + pushSphere(vertices, [0.3, 0.54, 0.35], 0.38, CERAMIC_SPHERE); + pushSphere(vertices, [1.25, 0.72, -0.45], 0.56, PLASTIC_SPHERE); + pushSphere(vertices, [-2.55, 0.92, 0.9], 0.48, PLASTIC_SPHERE); return vertices; } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index ea1fbd8dfe..14966b0740 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -26,9 +26,9 @@ const vertexBuffer = root const cameraUniform = root.createUniform(Camera); const lightsUniform = root.createUniform(Lights, initialLights); const paramsUniform = root.createUniform(RenderParams, { - exposure: 0.85, - ambientSky: [0.04, 0.05, 0.08], - ambientGround: [0.025, 0.022, 0.02], + exposure: 0.9, + ambientSky: [0.055, 0.06, 0.085], + ambientGround: [0.035, 0.032, 0.028], }); const ltcMatTexture = root @@ -76,10 +76,10 @@ const lightPipeline = root.createRenderPipeline({ const { cleanupCamera } = setupOrbitCamera( canvas, { - initPos: d.vec4f(4.2, 2.35, 5.1, 1), - target: d.vec4f(0, 1.05, -1.1, 1), - minZoom: 2.5, - maxZoom: 9, + initPos: d.vec4f(4.1, 2.25, 4.8, 1), + target: d.vec4f(0, 0.8, -0.65, 1), + minZoom: 1.8, + maxZoom: 10, }, (updates) => cameraUniform.patch(updates), ); @@ -130,7 +130,7 @@ animationFrameId = requestAnimationFrame(render); export const controls = defineControls({ exposure: { - initial: 0.85, + initial: 0.9, min: 0.2, max: 2, step: 0.01, @@ -158,6 +158,17 @@ export const controls = defineControls({ initial: d.vec3f(...initialLights[1].color), onColorChange: (color) => lightsUniform.patch({ 1: { color } }), }, + 'rim intensity': { + initial: initialLights[2].intensity, + min: 0, + max: 8, + step: 0.1, + onSliderChange: (intensity) => lightsUniform.patch({ 2: { intensity } }), + }, + 'rim color': { + initial: d.vec3f(...initialLights[2].color), + onColorChange: (color) => lightsUniform.patch({ 2: { color } }), + }, }); export function onCleanup() { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index 5f5bd252e6..381b24ec78 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -1,7 +1,7 @@ import tgpu, { d } from 'typegpu'; import { Camera } from '../../common/setup-orbit-camera.ts'; -export const LIGHT_COUNT = 2; +export const LIGHT_COUNT = 3; export const Vertex = d.struct({ position: d.vec3f, diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index 888dce16b1..0a00111449 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -126,7 +126,13 @@ function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { return HorizonClip({ l0, l1, l2, l3, l4, count }); } -function ltcEvaluate(N: d.v3f, V: d.v3f, P: d.v3f, Minv: d.m3x3f, light: d.Infer) { +function ltcEvaluate( + N: d.v3f, + V: d.v3f, + P: d.v3f, + Minv: d.m3x3f, + light: d.Infer, +) { 'use gpu'; let T1 = V - N * std.dot(V, N); if (std.dot(T1, T1) < 1e-5) { @@ -276,7 +282,9 @@ export const mainFragment = tgpu.fragmentFn({ } const skyFactor = saturate(0.5 * (N.y + 1)); - const ambient = std.mix(sceneLayout.$.params.ambientGround, sceneLayout.$.params.ambientSky, skyFactor) * albedo; + const ambient = + std.mix(sceneLayout.$.params.ambientGround, sceneLayout.$.params.ambientSky, skyFactor) * + albedo; return d.vec4f(tonemap(direct + ambient), 1); }); @@ -286,8 +294,8 @@ export const lightVertex = tgpu.vertexFn({ out: { pos: d.builtin.position, color: d.vec3f }, })(({ vid }) => { 'use gpu'; - const lightIdx = std.select(d.u32(0), d.u32(1), vid >= d.u32(6)); - const cornerVid = vid - lightIdx * d.u32(6); + const lightIdx = d.u32(vid / d.u32(6)); + const cornerVid = vid % d.u32(6); let signX = d.f32(-1); let signY = d.f32(-1); @@ -303,9 +311,8 @@ export const lightVertex = tgpu.vertexFn({ } const light = sceneLayout.$.lights[lightIdx]; - const worldPos = light.center + - light.dirX * light.halfSize.x * signX + - light.dirY * light.halfSize.y * signY; + const worldPos = + light.center + light.dirX * light.halfSize.x * signX + light.dirY * light.halfSize.y * signY; const camera = sceneLayout.$.camera; return { pos: camera.projection * camera.view * d.vec4f(worldPos, 1), From 4b759b10982b0fae99b082938778e08980f226d7 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 00:47:15 +0200 Subject: [PATCH 04/24] Add PBR neon area light scene --- .../rendering/area-light/environment.ts | 89 ++++++++++++ .../examples/rendering/area-light/geometry.ts | 32 +++-- .../examples/rendering/area-light/index.ts | 132 ++++++++++++++++-- .../examples/rendering/area-light/schemas.ts | 10 +- .../examples/rendering/area-light/shaders.ts | 80 +++++++++-- 5 files changed, 303 insertions(+), 40 deletions(-) create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/environment.ts diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts new file mode 100644 index 0000000000..94824da098 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -0,0 +1,89 @@ +const ENVIRONMENT_SIZE = 256; + +export const ENVIRONMENT_MIP_LEVELS = Math.floor(Math.log2(ENVIRONMENT_SIZE)) + 1; + +type Vec3 = [number, number, number]; + +function clamp(value: number, min = 0, max = 1) { + return Math.min(Math.max(value, min), max); +} + +function mix(a: Vec3, b: Vec3, t: number): Vec3 { + return [a[0] * (1 - t) + b[0] * t, a[1] * (1 - t) + b[1] * t, a[2] * (1 - t) + b[2] * t]; +} + +function dot(a: Vec3, b: Vec3) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; +} + +function normalize(v: Vec3): Vec3 { + const len = Math.hypot(v[0], v[1], v[2]); + return len > 0 ? [v[0] / len, v[1] / len, v[2] / len] : [0, 1, 0]; +} + +function mul(v: Vec3, scale: number): Vec3 { + return [v[0] * scale, v[1] * scale, v[2] * scale]; +} + +function add(a: Vec3, b: Vec3): Vec3 { + return [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; +} + +const FACE_BASES = [ + { forward: [1, 0, 0] as Vec3, right: [0, 0, -1] as Vec3, up: [0, -1, 0] as Vec3 }, + { forward: [-1, 0, 0] as Vec3, right: [0, 0, 1] as Vec3, up: [0, -1, 0] as Vec3 }, + { forward: [0, 1, 0] as Vec3, right: [1, 0, 0] as Vec3, up: [0, 0, 1] as Vec3 }, + { forward: [0, -1, 0] as Vec3, right: [1, 0, 0] as Vec3, up: [0, 0, -1] as Vec3 }, + { forward: [0, 0, 1] as Vec3, right: [1, 0, 0] as Vec3, up: [0, -1, 0] as Vec3 }, + { forward: [0, 0, -1] as Vec3, right: [-1, 0, 0] as Vec3, up: [0, -1, 0] as Vec3 }, +] as const; + +function environmentColor(direction: Vec3): Vec3 { + const up = clamp(direction[1] * 0.5 + 0.5); + const horizon = [0.025, 0.045, 0.08] as Vec3; + const zenith = [0.004, 0.01, 0.035] as Vec3; + const groundNear = [0.014, 0.015, 0.018] as Vec3; + const groundFar = [0.004, 0.005, 0.008] as Vec3; + + const sky = mix(horizon, zenith, up ** 1.6); + const ground = mix(groundNear, groundFar, clamp(-direction[1] * 1.2)); + let color = direction[1] > 0 ? sky : ground; + + const pinkSignDir = normalize([-0.68, 0.05, 0.73]); + const cyanSignDir = normalize([0.72, -0.02, 0.48]); + const greenSignDir = normalize([0.18, 0.18, -0.97]); + const pinkGlow = Math.max(dot(direction, pinkSignDir), 0) ** 36; + const cyanGlow = Math.max(dot(direction, cyanSignDir), 0) ** 32; + const greenGlow = Math.max(dot(direction, greenSignDir), 0) ** 48; + const hazeBand = Math.max(1 - Math.abs(direction[1] + 0.04) * 10, 0); + + color = add(color, mul([1.0, 0.06, 0.72], pinkGlow * 0.75)); + color = add(color, mul([0.0, 0.76, 1.0], cyanGlow * 0.7)); + color = add(color, mul([0.32, 1.0, 0.45], greenGlow * 0.45)); + color = add(color, mul([0.12, 0.04, 0.22], hazeBand * 0.16)); + + return color.map((channel) => clamp(channel)) as Vec3; +} + +export function createEnvironmentFaces() { + return FACE_BASES.map(({ forward, right, up }) => { + const data = new Uint8ClampedArray(ENVIRONMENT_SIZE * ENVIRONMENT_SIZE * 4); + + for (let y = 0; y < ENVIRONMENT_SIZE; y++) { + for (let x = 0; x < ENVIRONMENT_SIZE; x++) { + const u = ((x + 0.5) / ENVIRONMENT_SIZE) * 2 - 1; + const v = ((y + 0.5) / ENVIRONMENT_SIZE) * 2 - 1; + const direction = normalize(add(add(forward, mul(right, u)), mul(up, v))); + const color = environmentColor(direction); + const idx = (y * ENVIRONMENT_SIZE + x) * 4; + + data[idx] = Math.round(color[0] * 255); + data[idx + 1] = Math.round(color[1] * 255); + data[idx + 2] = Math.round(color[2] * 255); + data[idx + 3] = 255; + } + } + + return new ImageData(data, ENVIRONMENT_SIZE, ENVIRONMENT_SIZE); + }); +} diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index 5ec9b6398a..ce3d008e20 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -145,38 +145,42 @@ function pushSphere(vertices: ExampleVertex[], center: Vec3, radius: number, mat export const initialLights = [ { - center: [0, 3.15, -0.55] as Vec3, + center: [0, 3.05, -0.55] as Vec3, dirX: [1, 0, 0] as Vec3, dirY: [0, 0, 1] as Vec3, halfSize: [1.25, 0.75] as [number, number], - color: [1, 0.78, 0.45] as Vec3, - intensity: 5.5, + color: [1, 0.16, 0.74] as Vec3, + intensity: 9.0, }, { center: [-3.4, 1.6, 1.8] as Vec3, dirX: [0, 0, 1] as Vec3, dirY: [0, 1, 0] as Vec3, halfSize: [0.7, 0.95] as [number, number], - color: [0.35, 0.55, 1.0] as Vec3, - intensity: 4.0, + color: [0.05, 0.78, 1.0] as Vec3, + intensity: 6.5, }, { center: [3.1, 1.45, -2.5] as Vec3, dirX: [1, 0, 0] as Vec3, dirY: [0, 1, 0] as Vec3, halfSize: [0.55, 0.8] as [number, number], - color: [0.72, 1.0, 0.82] as Vec3, - intensity: 2.4, + color: [0.25, 1.0, 0.52] as Vec3, + intensity: 5.2, }, ]; -const FLOOR_MATERIAL: Material = { albedo: [0.74, 0.76, 0.72], roughness: 0.48, metallic: 0 }; -const BACKDROP_MATERIAL: Material = { albedo: [0.28, 0.31, 0.37], roughness: 0.58, metallic: 0 }; -const PLINTH_MATERIAL: Material = { albedo: [0.52, 0.52, 0.48], roughness: 0.38, metallic: 0 }; -const DARK_BLOCK_MATERIAL: Material = { albedo: [0.24, 0.25, 0.29], roughness: 0.44, metallic: 0 }; -const GOLD_SPHERE: Material = { albedo: [1.0, 0.72, 0.26], roughness: 0.3, metallic: 0.12 }; -const CERAMIC_SPHERE: Material = { albedo: [0.82, 0.88, 0.8], roughness: 0.22, metallic: 0 }; -const PLASTIC_SPHERE: Material = { albedo: [0.13, 0.25, 0.5], roughness: 0.38, metallic: 0 }; +const FLOOR_MATERIAL: Material = { albedo: [0.025, 0.028, 0.032], roughness: 0.08, metallic: 0 }; +const BACKDROP_MATERIAL: Material = { albedo: [0.018, 0.021, 0.029], roughness: 0.42, metallic: 0 }; +const PLINTH_MATERIAL: Material = { albedo: [0.045, 0.048, 0.047], roughness: 0.12, metallic: 0 }; +const DARK_BLOCK_MATERIAL: Material = { + albedo: [0.025, 0.027, 0.034], + roughness: 0.18, + metallic: 0, +}; +const GOLD_SPHERE: Material = { albedo: [1.0, 0.62, 0.18], roughness: 0.18, metallic: 0.55 }; +const CERAMIC_SPHERE: Material = { albedo: [0.18, 0.22, 0.22], roughness: 0.16, metallic: 0 }; +const PLASTIC_SPHERE: Material = { albedo: [0.025, 0.07, 0.18], roughness: 0.16, metallic: 0 }; export function createSceneVertices() { const vertices: ExampleVertex[] = []; diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 14966b0740..25e14b6d66 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -1,9 +1,11 @@ import tgpu, { d } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; +import { createEnvironmentFaces, ENVIRONMENT_MIP_LEVELS } from './environment.ts'; import { createSceneVertices, initialLights } from './geometry.ts'; import { LTC_1, LTC_2 } from './ltcTables.ts'; import { + environmentLayout, LIGHT_COUNT, Lights, ltcLayout, @@ -11,7 +13,16 @@ import { sceneLayout, vertexLayout, } from './schemas.ts'; -import { lightFragment, lightVertex, mainFragment, mainVertex } from './shaders.ts'; +import { + lightFragment, + lightVertex, + mainFragment, + mainVertex, + skyFragment, + skyVertex, +} from './shaders.ts'; + +const SAMPLE_COUNT = 4; const root = await tgpu.init(); const canvas = document.querySelector('canvas') as HTMLCanvasElement; @@ -26,9 +37,10 @@ const vertexBuffer = root const cameraUniform = root.createUniform(Camera); const lightsUniform = root.createUniform(Lights, initialLights); const paramsUniform = root.createUniform(RenderParams, { - exposure: 0.9, - ambientSky: [0.055, 0.06, 0.085], - ambientGround: [0.035, 0.032, 0.028], + exposure: 1.12, + environmentIntensity: 0.42, + diffuseIblStrength: 0.06, + specularIblStrength: 1.15, }); const ltcMatTexture = root @@ -52,16 +64,57 @@ const ltcBindGroup = root.createBindGroup(ltcLayout, { ltcAmp: ltcAmpTexture, }); +const environmentTexture = root + .createTexture({ + size: [256, 256, 6], + format: 'rgba8unorm', + mipLevelCount: ENVIRONMENT_MIP_LEVELS, + }) + .$usage('sampled', 'render'); +environmentTexture.write(createEnvironmentFaces()); +environmentTexture.generateMipmaps(); + +const environmentSampler = root.createSampler({ + magFilter: 'linear', + minFilter: 'linear', + mipmapFilter: 'linear', +}); + +const environmentBindGroup = root.createBindGroup(environmentLayout, { + environmentMap: environmentTexture.createView(d.textureCube(d.f32)), + environmentSampler, +}); + +let colorTexture = root + .createTexture({ + size: [canvas.width, canvas.height], + format: presentationFormat, + sampleCount: SAMPLE_COUNT, + }) + .$usage('render'); + let depthTexture = root - .createTexture({ size: [canvas.width, canvas.height], format: 'depth24plus' }) + .createTexture({ + size: [canvas.width, canvas.height], + format: 'depth24plus', + sampleCount: SAMPLE_COUNT, + }) .$usage('render'); +const skyPipeline = root.createRenderPipeline({ + vertex: skyVertex, + fragment: skyFragment, + targets: { format: presentationFormat }, + multisample: { count: SAMPLE_COUNT }, +}); + const scenePipeline = root.createRenderPipeline({ attribs: vertexLayout.attrib, vertex: mainVertex, fragment: mainFragment, targets: { format: presentationFormat }, depthStencil: { format: 'depth24plus', depthWriteEnabled: true, depthCompare: 'less' }, + multisample: { count: SAMPLE_COUNT }, primitive: { cullMode: 'none' }, }); @@ -70,14 +123,15 @@ const lightPipeline = root.createRenderPipeline({ fragment: lightFragment, targets: { format: presentationFormat }, depthStencil: { format: 'depth24plus', depthWriteEnabled: true, depthCompare: 'less' }, + multisample: { count: SAMPLE_COUNT }, primitive: { cullMode: 'none' }, }); const { cleanupCamera } = setupOrbitCamera( canvas, { - initPos: d.vec4f(4.1, 2.25, 4.8, 1), - target: d.vec4f(0, 0.8, -0.65, 1), + initPos: d.vec4f(4.25, 2.45, 5.15, 1), + target: d.vec4f(0, 0.55, -0.55, 1), minZoom: 1.8, maxZoom: 10, }, @@ -85,9 +139,22 @@ const { cleanupCamera } = setupOrbitCamera( ); const resizeObserver = new ResizeObserver(() => { + colorTexture.destroy(); + colorTexture = root + .createTexture({ + size: [canvas.width, canvas.height], + format: presentationFormat, + sampleCount: SAMPLE_COUNT, + }) + .$usage('render'); + depthTexture.destroy(); depthTexture = root - .createTexture({ size: [canvas.width, canvas.height], format: 'depth24plus' }) + .createTexture({ + size: [canvas.width, canvas.height], + format: 'depth24plus', + sampleCount: SAMPLE_COUNT, + }) .$usage('render'); }); resizeObserver.observe(canvas); @@ -95,14 +162,25 @@ resizeObserver.observe(canvas); let animationFrameId: number; function render() { + skyPipeline + .with(sceneBindGroup) + .with(environmentBindGroup) + .withColorAttachment({ + view: colorTexture, + clearValue: [0.02, 0.022, 0.025, 1], + loadOp: 'clear', + storeOp: 'store', + }) + .draw(3); + scenePipeline .with(sceneBindGroup) .with(ltcBindGroup) + .with(environmentBindGroup) .with(vertexLayout, vertexBuffer) .withColorAttachment({ - view: context, - clearValue: [0.02, 0.022, 0.025, 1], - loadOp: 'clear', + view: colorTexture, + loadOp: 'load', storeOp: 'store', }) .withDepthStencilAttachment({ @@ -115,7 +193,12 @@ function render() { lightPipeline .with(sceneBindGroup) - .withColorAttachment({ view: context, loadOp: 'load', storeOp: 'store' }) + .withColorAttachment({ + view: colorTexture, + resolveTarget: context, + loadOp: 'load', + storeOp: 'store', + }) .withDepthStencilAttachment({ view: depthTexture, depthLoadOp: 'load', @@ -130,12 +213,33 @@ animationFrameId = requestAnimationFrame(render); export const controls = defineControls({ exposure: { - initial: 0.9, + initial: 1.12, min: 0.2, max: 2, step: 0.01, onSliderChange: (exposure) => paramsUniform.patch({ exposure }), }, + environment: { + initial: 0.42, + min: 0, + max: 2, + step: 0.01, + onSliderChange: (environmentIntensity) => paramsUniform.patch({ environmentIntensity }), + }, + 'diffuse ibl': { + initial: 0.06, + min: 0, + max: 1, + step: 0.01, + onSliderChange: (diffuseIblStrength) => paramsUniform.patch({ diffuseIblStrength }), + }, + 'specular ibl': { + initial: 1.15, + min: 0, + max: 1.5, + step: 0.01, + onSliderChange: (specularIblStrength) => paramsUniform.patch({ specularIblStrength }), + }, 'key intensity': { initial: initialLights[0].intensity, min: 0, @@ -175,5 +279,7 @@ export function onCleanup() { cancelAnimationFrame(animationFrameId); cleanupCamera(); resizeObserver.disconnect(); + colorTexture.destroy(); + depthTexture.destroy(); root.destroy(); } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index 381b24ec78..2368380d19 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -24,8 +24,9 @@ export const Lights = d.arrayOf(RectLight, LIGHT_COUNT); export const RenderParams = d.struct({ exposure: d.f32, - ambientSky: d.vec3f, - ambientGround: d.vec3f, + environmentIntensity: d.f32, + diffuseIblStrength: d.f32, + specularIblStrength: d.f32, }); export const HorizonClip = d.struct({ @@ -50,4 +51,9 @@ export const ltcLayout = tgpu.bindGroupLayout({ ltcAmp: { texture: d.texture2d(d.f32), sampleType: 'unfilterable-float' }, }); +export const environmentLayout = tgpu.bindGroupLayout({ + environmentMap: { texture: d.textureCube(d.f32) }, + environmentSampler: { sampler: 'filtering' }, +}); + export type ExampleVertex = d.InferInput; diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index 0a00111449..b4221cf6f7 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,5 +1,7 @@ import tgpu, { d, std } from 'typegpu'; +import { ENVIRONMENT_MIP_LEVELS } from './environment.ts'; import { + environmentLayout, HorizonClip, LIGHT_COUNT, ltcLayout, @@ -14,6 +16,7 @@ export { vertexLayout }; const LUT_SIZE = 64; const LUT_SCALE = (LUT_SIZE - 1) / LUT_SIZE; const LUT_BIAS = 0.5 / LUT_SIZE; +const PI = Math.PI; function saturate(value: number) { 'use gpu'; @@ -219,6 +222,29 @@ function sampleLtcMat(uv: d.v2f) { return d.mat3x3f(d.vec3f(t.x, 0, t.y), d.vec3f(0, 1, 0), d.vec3f(t.z, 0, t.w)); } +function fresnelSchlick(cosTheta: number, f0: d.v3f) { + 'use gpu'; + return f0 + (1 - f0) * (1 - saturate(cosTheta)) ** 5; +} + +function fresnelSchlickRoughness(cosTheta: number, f0: d.v3f, roughness: number) { + 'use gpu'; + const roughF0 = std.max(d.vec3f(1 - roughness), f0); + return f0 + (roughF0 - f0) * (1 - saturate(cosTheta)) ** 5; +} + +function sampleEnvironment(direction: d.v3f, roughness: number) { + 'use gpu'; + const lod = std.clamp(roughness, d.f32(0), d.f32(1)) * d.f32(ENVIRONMENT_MIP_LEVELS - 1); + const sample = std.textureSampleLevel( + environmentLayout.$.environmentMap, + environmentLayout.$.environmentSampler, + std.normalize(direction), + lod, + ); + return sample.rgb * sceneLayout.$.params.environmentIntensity; +} + function tonemap(color: d.v3f) { 'use gpu'; const exposed = color * sceneLayout.$.params.exposure; @@ -263,30 +289,62 @@ export const mainFragment = tgpu.fragmentFn({ const N = std.normalize(normal); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); const NdotV = saturate(std.dot(N, V)); - const uv = d.vec2f(std.clamp(roughness, 0.01, 1), std.sqrt(1 - NdotV)) * LUT_SCALE + LUT_BIAS; + const materialRoughness = std.clamp(roughness, 0.04, 1); + const uv = d.vec2f(materialRoughness, std.sqrt(1 - NdotV)) * LUT_SCALE + LUT_BIAS; const Minv = sampleLtcMat(uv); const brdf = bilinearLoadLtcAmp(uv); const F0 = std.mix(d.vec3f(0.04), albedo, metallic); - const fresnel = F0 * brdf.x + (1 - F0) * brdf.y; - const kD = (1 - fresnel) * (1 - metallic); + const areaFresnel = F0 * brdf.x + (1 - F0) * brdf.y; + const areaDiffuse = (1 - areaFresnel) * (1 - metallic); let direct = d.vec3f(0); for (let i = d.u32(0); i < d.u32(LIGHT_COUNT); i++) { const light = sceneLayout.$.lights[i]; - const diff = ltcEvaluate(N, V, worldPos, d.mat3x3f.identity(), light); - const specLtc = ltcEvaluate(N, V, worldPos, Minv, light); + const diffuseIntegral = ltcEvaluate(N, V, worldPos, d.mat3x3f.identity(), light); + const specularIntegral = ltcEvaluate(N, V, worldPos, Minv, light); const radiance = light.color * light.intensity; - direct += radiance * (kD * albedo * diff + fresnel * specLtc); + direct += + radiance * (areaDiffuse * (albedo / PI) * diffuseIntegral + areaFresnel * specularIntegral); } - const skyFactor = saturate(0.5 * (N.y + 1)); - const ambient = - std.mix(sceneLayout.$.params.ambientGround, sceneLayout.$.params.ambientSky, skyFactor) * - albedo; + const envFresnel = fresnelSchlickRoughness(NdotV, F0, materialRoughness); + const envDiffuse = (1 - envFresnel) * (1 - metallic); + const diffuseIbl = + envDiffuse * albedo * sampleEnvironment(N, d.f32(1)) * sceneLayout.$.params.diffuseIblStrength; + const reflectionDir = std.reflect(std.neg(V), N); + const specularIbl = + sampleEnvironment(reflectionDir, materialRoughness) * + fresnelSchlick(NdotV, F0) * + (1 - materialRoughness * 0.35) * + sceneLayout.$.params.specularIblStrength; + + return d.vec4f(tonemap(direct + diffuseIbl + specularIbl), 1); +}); - return d.vec4f(tonemap(direct + ambient), 1); +export const skyVertex = tgpu.vertexFn({ + in: { vertexIndex: d.builtin.vertexIndex }, + out: { pos: d.builtin.position, ndc: d.vec2f }, +})(({ vertexIndex }) => { + 'use gpu'; + const pos = [d.vec2f(-1, -1), d.vec2f(3, -1), d.vec2f(-1, 3)]; + return { + pos: d.vec4f(pos[vertexIndex], 0, 1), + ndc: pos[vertexIndex], + }; +}); + +export const skyFragment = tgpu.fragmentFn({ + in: { ndc: d.vec2f }, + out: d.vec4f, +})(({ ndc }) => { + 'use gpu'; + const camera = sceneLayout.$.camera; + const farView = camera.projectionInverse * d.vec4f(ndc, 1, 1); + const farWorld = camera.viewInverse * d.vec4f(farView.xyz / farView.w, 1); + const direction = std.normalize(farWorld.xyz - camera.position.xyz); + return d.vec4f(tonemap(sampleEnvironment(direction, d.f32(0))), 1); }); export const lightVertex = tgpu.vertexFn({ From bba855d29f8c508ae1ae0d20060ff768a50b5881 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 01:02:36 +0200 Subject: [PATCH 05/24] Simplify area light example structure --- .../examples/rendering/area-light/geometry.ts | 317 ++++++++--------- .../examples/rendering/area-light/index.ts | 162 ++++----- .../src/examples/rendering/area-light/ltc.ts | 209 +++++++++++ .../examples/rendering/area-light/schemas.ts | 11 - .../examples/rendering/area-light/shaders.ts | 336 ++++-------------- 5 files changed, 514 insertions(+), 521 deletions(-) create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index ce3d008e20..6a38d1cecf 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -1,36 +1,112 @@ -import type { ExampleVertex } from './schemas.ts'; +import type { common, d } from 'typegpu'; +import type { Lights, Vertex } from './schemas.ts'; +type Vec2 = [number, number]; type Vec3 = [number, number, number]; -function add(a: Vec3, b: Vec3): Vec3 { - return [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; +interface Material { + albedo: Vec3; + roughness: number; + metallic: number; } -function sub(a: Vec3, b: Vec3): Vec3 { - return [a[0] - b[0], a[1] - b[1], a[2] - b[2]]; +export interface SceneMesh { + vertexCount: number; + data: common.writeSoA.InputFor; } -function mul(v: Vec3, scale: number): Vec3 { - return [v[0] * scale, v[1] * scale, v[2] * scale]; -} +const SPHERE_SEGMENTS = 48; +const SPHERE_RINGS = 24; +const QUAD_VERTICES = 6; +const BOX_VERTICES = QUAD_VERTICES * 6; +const SPHERE_VERTICES = SPHERE_SEGMENTS * SPHERE_RINGS * QUAD_VERTICES; +const SCENE_VERTEX_COUNT = QUAD_VERTICES * 2 + BOX_VERTICES * 3 + SPHERE_VERTICES * 4; + +const v3 = (x: number, y: number, z: number): Vec3 => [x, y, z]; +const add = (a: Vec3, b: Vec3): Vec3 => [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; +const sub = (a: Vec3, b: Vec3): Vec3 => [a[0] - b[0], a[1] - b[1], a[2] - b[2]]; +const scale = (v: Vec3, by: number): Vec3 => [v[0] * by, v[1] * by, v[2] * by]; function normalize(v: Vec3): Vec3 { - const len = Math.hypot(v[0], v[1], v[2]); - return len > 0 ? [v[0] / len, v[1] / len, v[2] / len] : [0, 1, 0]; + const length = Math.hypot(v[0], v[1], v[2]); + return length > 0 ? scale(v, 1 / length) : v3(0, 1, 0); } -interface Material { - albedo: Vec3; - roughness: number; - metallic: number; +function material(albedo: Vec3, roughness: number, metallic = 0): Material { + return { albedo, roughness, metallic }; } -function vertex(position: Vec3, normal: Vec3, mat: Material): ExampleVertex { - return { position, normal, albedo: mat.albedo, roughness: mat.roughness, metallic: mat.metallic }; +const materials = { + floor: material(v3(0.025, 0.028, 0.032), 0.08), + backdrop: material(v3(0.018, 0.021, 0.029), 0.42), + plinth: material(v3(0.045, 0.048, 0.047), 0.12), + block: material(v3(0.025, 0.027, 0.034), 0.18), + gold: material(v3(1, 0.62, 0.18), 0.18, 0.55), + ceramic: material(v3(0.18, 0.22, 0.22), 0.16), + plastic: material(v3(0.025, 0.07, 0.18), 0.16), +} satisfies Record; + +export const initialLights = [ + { + center: v3(0, 3.05, -0.55), + dirX: v3(1, 0, 0), + dirY: v3(0, 0, 1), + halfSize: [1.25, 0.75] satisfies Vec2, + color: v3(1, 0.16, 0.74), + intensity: 9, + }, + { + center: v3(-3.4, 1.6, 1.8), + dirX: v3(0, 0, 1), + dirY: v3(0, 1, 0), + halfSize: [0.7, 0.95] satisfies Vec2, + color: v3(0.05, 0.78, 1), + intensity: 6.5, + }, + { + center: v3(3.1, 1.45, -2.5), + dirX: v3(1, 0, 0), + dirY: v3(0, 1, 0), + halfSize: [0.55, 0.8] satisfies Vec2, + color: v3(0.25, 1, 0.52), + intensity: 5.2, + }, +] satisfies d.InferInput; + +function createMeshWriter(vertexCount: number) { + const data = { + position: new Float32Array(vertexCount * 3), + normal: new Float32Array(vertexCount * 3), + albedo: new Float32Array(vertexCount * 3), + roughness: new Float32Array(vertexCount), + metallic: new Float32Array(vertexCount), + } satisfies SceneMesh['data']; + + let cursor = 0; + + function vertex(position: Vec3, normal: Vec3, mat: Material) { + const vecOffset = cursor * 3; + data.position.set(position, vecOffset); + data.normal.set(normal, vecOffset); + data.albedo.set(mat.albedo, vecOffset); + data.roughness[cursor] = mat.roughness; + data.metallic[cursor] = mat.metallic; + cursor++; + } + + return { + data, + get vertexCount() { + return cursor; + }, + vertex, + }; } +type MeshWriter = ReturnType; + function pushQuad( - vertices: ExampleVertex[], + mesh: MeshWriter, center: Vec3, axisU: Vec3, axisV: Vec3, @@ -41,161 +117,76 @@ function pushQuad( const p1 = sub(add(center, axisU), axisV); const p2 = add(add(center, axisU), axisV); const p3 = add(sub(center, axisU), axisV); - vertices.push( - vertex(p0, normal, mat), - vertex(p1, normal, mat), - vertex(p2, normal, mat), - vertex(p0, normal, mat), - vertex(p2, normal, mat), - vertex(p3, normal, mat), - ); + + mesh.vertex(p0, normal, mat); + mesh.vertex(p1, normal, mat); + mesh.vertex(p2, normal, mat); + mesh.vertex(p0, normal, mat); + mesh.vertex(p2, normal, mat); + mesh.vertex(p3, normal, mat); } -function pushBox(vertices: ExampleVertex[], center: Vec3, halfExtents: Vec3, mat: Material) { +function pushBox(mesh: MeshWriter, center: Vec3, halfExtents: Vec3, mat: Material) { + const [x, y, z] = center; const [hx, hy, hz] = halfExtents; + const face = (offset: Vec3, axisU: Vec3, axisV: Vec3, normal: Vec3) => + pushQuad(mesh, v3(x + offset[0], y + offset[1], z + offset[2]), axisU, axisV, normal, mat); + + face(v3(0, hy, 0), v3(hx, 0, 0), v3(0, 0, -hz), v3(0, 1, 0)); + face(v3(0, -hy, 0), v3(hx, 0, 0), v3(0, 0, hz), v3(0, -1, 0)); + face(v3(0, 0, hz), v3(hx, 0, 0), v3(0, hy, 0), v3(0, 0, 1)); + face(v3(0, 0, -hz), v3(hx, 0, 0), v3(0, hy, 0), v3(0, 0, -1)); + face(v3(-hx, 0, 0), v3(0, 0, hz), v3(0, hy, 0), v3(-1, 0, 0)); + face(v3(hx, 0, 0), v3(0, 0, hz), v3(0, hy, 0), v3(1, 0, 0)); +} - pushQuad( - vertices, - [center[0], center[1] + hy, center[2]], - [hx, 0, 0], - [0, 0, -hz], - [0, 1, 0], - mat, - ); - pushQuad( - vertices, - [center[0], center[1] - hy, center[2]], - [hx, 0, 0], - [0, 0, hz], - [0, -1, 0], - mat, - ); - pushQuad( - vertices, - [center[0], center[1], center[2] + hz], - [hx, 0, 0], - [0, hy, 0], - [0, 0, 1], - mat, - ); - pushQuad( - vertices, - [center[0], center[1], center[2] - hz], - [hx, 0, 0], - [0, hy, 0], - [0, 0, -1], - mat, - ); - pushQuad( - vertices, - [center[0] - hx, center[1], center[2]], - [0, 0, hz], - [0, hy, 0], - [-1, 0, 0], - mat, +function spherePoint(center: Vec3, radius: number, u: number, v: number): [Vec3, Vec3] { + const theta = v * Math.PI; + const phi = u * Math.PI * 2; + const normal = normalize( + v3(Math.sin(theta) * Math.cos(phi), Math.cos(theta), Math.sin(theta) * Math.sin(phi)), ); - pushQuad( - vertices, - [center[0] + hx, center[1], center[2]], - [0, 0, hz], - [0, hy, 0], - [1, 0, 0], - mat, - ); -} -function pushSphere(vertices: ExampleVertex[], center: Vec3, radius: number, mat: Material) { - const segments = 48; - const rings = 24; - - function spherePoint(u: number, v: number): { position: Vec3; normal: Vec3 } { - const theta = v * Math.PI; - const phi = u * Math.PI * 2; - const normal = normalize([ - Math.sin(theta) * Math.cos(phi), - Math.cos(theta), - Math.sin(theta) * Math.sin(phi), - ]); - return { normal, position: add(center, mul(normal, radius)) }; - } + return [add(center, scale(normal, radius)), normal]; +} - for (let y = 0; y < rings; y++) { - const v0 = y / rings; - const v1 = (y + 1) / rings; - - for (let x = 0; x < segments; x++) { - const u0 = x / segments; - const u1 = (x + 1) / segments; - const a = spherePoint(u0, v0); - const b = spherePoint(u0, v1); - const c = spherePoint(u1, v1); - const d = spherePoint(u1, v0); - - vertices.push( - vertex(a.position, a.normal, mat), - vertex(b.position, b.normal, mat), - vertex(c.position, c.normal, mat), - vertex(a.position, a.normal, mat), - vertex(c.position, c.normal, mat), - vertex(d.position, d.normal, mat), - ); +function pushSphere(mesh: MeshWriter, center: Vec3, radius: number, mat: Material) { + for (let y = 0; y < SPHERE_RINGS; y++) { + const v0 = y / SPHERE_RINGS; + const v1 = (y + 1) / SPHERE_RINGS; + + for (let x = 0; x < SPHERE_SEGMENTS; x++) { + const u0 = x / SPHERE_SEGMENTS; + const u1 = (x + 1) / SPHERE_SEGMENTS; + const [a, an] = spherePoint(center, radius, u0, v0); + const [b, bn] = spherePoint(center, radius, u0, v1); + const [c, cn] = spherePoint(center, radius, u1, v1); + const [d, dn] = spherePoint(center, radius, u1, v0); + + mesh.vertex(a, an, mat); + mesh.vertex(b, bn, mat); + mesh.vertex(c, cn, mat); + mesh.vertex(a, an, mat); + mesh.vertex(c, cn, mat); + mesh.vertex(d, dn, mat); } } } -export const initialLights = [ - { - center: [0, 3.05, -0.55] as Vec3, - dirX: [1, 0, 0] as Vec3, - dirY: [0, 0, 1] as Vec3, - halfSize: [1.25, 0.75] as [number, number], - color: [1, 0.16, 0.74] as Vec3, - intensity: 9.0, - }, - { - center: [-3.4, 1.6, 1.8] as Vec3, - dirX: [0, 0, 1] as Vec3, - dirY: [0, 1, 0] as Vec3, - halfSize: [0.7, 0.95] as [number, number], - color: [0.05, 0.78, 1.0] as Vec3, - intensity: 6.5, - }, - { - center: [3.1, 1.45, -2.5] as Vec3, - dirX: [1, 0, 0] as Vec3, - dirY: [0, 1, 0] as Vec3, - halfSize: [0.55, 0.8] as [number, number], - color: [0.25, 1.0, 0.52] as Vec3, - intensity: 5.2, - }, -]; - -const FLOOR_MATERIAL: Material = { albedo: [0.025, 0.028, 0.032], roughness: 0.08, metallic: 0 }; -const BACKDROP_MATERIAL: Material = { albedo: [0.018, 0.021, 0.029], roughness: 0.42, metallic: 0 }; -const PLINTH_MATERIAL: Material = { albedo: [0.045, 0.048, 0.047], roughness: 0.12, metallic: 0 }; -const DARK_BLOCK_MATERIAL: Material = { - albedo: [0.025, 0.027, 0.034], - roughness: 0.18, - metallic: 0, -}; -const GOLD_SPHERE: Material = { albedo: [1.0, 0.62, 0.18], roughness: 0.18, metallic: 0.55 }; -const CERAMIC_SPHERE: Material = { albedo: [0.18, 0.22, 0.22], roughness: 0.16, metallic: 0 }; -const PLASTIC_SPHERE: Material = { albedo: [0.025, 0.07, 0.18], roughness: 0.16, metallic: 0 }; - -export function createSceneVertices() { - const vertices: ExampleVertex[] = []; - - pushQuad(vertices, [0, 0, 0], [5, 0, 0], [0, 0, -4.2], [0, 1, 0], FLOOR_MATERIAL); - pushQuad(vertices, [0, 1.45, -3.3], [4.2, 0, 0], [0, 1.45, 0], [0, 0, 1], BACKDROP_MATERIAL); - - pushBox(vertices, [0, 0.08, -0.7], [2.55, 0.08, 1.25], PLINTH_MATERIAL); - pushBox(vertices, [-2.55, 0.22, 0.9], [0.55, 0.22, 0.55], DARK_BLOCK_MATERIAL); - pushBox(vertices, [2.25, 0.14, 0.75], [0.65, 0.14, 0.45], PLINTH_MATERIAL); - - pushSphere(vertices, [-1.25, 0.88, -1.1], 0.72, GOLD_SPHERE); - pushSphere(vertices, [0.3, 0.54, 0.35], 0.38, CERAMIC_SPHERE); - pushSphere(vertices, [1.25, 0.72, -0.45], 0.56, PLASTIC_SPHERE); - pushSphere(vertices, [-2.55, 0.92, 0.9], 0.48, PLASTIC_SPHERE); - - return vertices; +export function createSceneMesh(): SceneMesh { + const mesh = createMeshWriter(SCENE_VERTEX_COUNT); + + pushQuad(mesh, v3(0, 0, 0), v3(5, 0, 0), v3(0, 0, -4.2), v3(0, 1, 0), materials.floor); + pushQuad(mesh, v3(0, 1.45, -3.3), v3(4.2, 0, 0), v3(0, 1.45, 0), v3(0, 0, 1), materials.backdrop); + + pushBox(mesh, v3(0, 0.08, -0.7), v3(2.55, 0.08, 1.25), materials.plinth); + pushBox(mesh, v3(-2.55, 0.22, 0.9), v3(0.55, 0.22, 0.55), materials.block); + pushBox(mesh, v3(2.25, 0.14, 0.75), v3(0.65, 0.14, 0.45), materials.plinth); + + pushSphere(mesh, v3(-1.25, 0.88, -1.1), 0.72, materials.gold); + pushSphere(mesh, v3(0.3, 0.54, 0.35), 0.38, materials.ceramic); + pushSphere(mesh, v3(1.25, 0.72, -0.45), 0.56, materials.plastic); + pushSphere(mesh, v3(-2.55, 0.92, 0.9), 0.48, materials.plastic); + + return { vertexCount: mesh.vertexCount, data: mesh.data }; } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 25e14b6d66..27ca24aa71 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -1,8 +1,8 @@ -import tgpu, { d } from 'typegpu'; +import tgpu, { common, d } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; import { createEnvironmentFaces, ENVIRONMENT_MIP_LEVELS } from './environment.ts'; -import { createSceneVertices, initialLights } from './geometry.ts'; +import { createSceneMesh, initialLights } from './geometry.ts'; import { LTC_1, LTC_2 } from './ltcTables.ts'; import { environmentLayout, @@ -23,35 +23,34 @@ import { } from './shaders.ts'; const SAMPLE_COUNT = 4; +const INITIAL_PARAMS = { + exposure: 1.12, + environmentIntensity: 0.42, + diffuseIblStrength: 0.06, + specularIblStrength: 1.15, +} satisfies d.InferInput; const root = await tgpu.init(); const canvas = document.querySelector('canvas') as HTMLCanvasElement; const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); -const vertices = createSceneVertices(); +const mesh = createSceneMesh(); const vertexBuffer = root - .createBuffer(vertexLayout.schemaForCount(vertices.length), vertices) + .createBuffer(vertexLayout.schemaForCount(mesh.vertexCount), (buffer) => + common.writeSoA(buffer, mesh.data), + ) .$usage('vertex'); const cameraUniform = root.createUniform(Camera); const lightsUniform = root.createUniform(Lights, initialLights); -const paramsUniform = root.createUniform(RenderParams, { - exposure: 1.12, - environmentIntensity: 0.42, - diffuseIblStrength: 0.06, - specularIblStrength: 1.15, -}); - -const ltcMatTexture = root - .createTexture({ size: [64, 64], format: 'rgba32float' }) - .$usage('sampled'); -ltcMatTexture.write(LTC_1); +const paramsUniform = root.createUniform(RenderParams, INITIAL_PARAMS); -const ltcAmpTexture = root - .createTexture({ size: [64, 64], format: 'rgba32float' }) - .$usage('sampled'); -ltcAmpTexture.write(LTC_2); +function createLtcTexture(data: Float32Array) { + const texture = root.createTexture({ size: [64, 64], format: 'rgba32float' }).$usage('sampled'); + texture.write(data); + return texture; +} const sceneBindGroup = root.createBindGroup(sceneLayout, { camera: cameraUniform.buffer, @@ -60,8 +59,8 @@ const sceneBindGroup = root.createBindGroup(sceneLayout, { }); const ltcBindGroup = root.createBindGroup(ltcLayout, { - ltcMat: ltcMatTexture, - ltcAmp: ltcAmpTexture, + ltcMat: createLtcTexture(LTC_1), + ltcAmp: createLtcTexture(LTC_2), }); const environmentTexture = root @@ -85,21 +84,30 @@ const environmentBindGroup = root.createBindGroup(environmentLayout, { environmentSampler, }); -let colorTexture = root - .createTexture({ - size: [canvas.width, canvas.height], - format: presentationFormat, - sampleCount: SAMPLE_COUNT, - }) - .$usage('render'); +const framebufferSize = () => [canvas.width, canvas.height] as [number, number]; -let depthTexture = root - .createTexture({ - size: [canvas.width, canvas.height], - format: 'depth24plus', - sampleCount: SAMPLE_COUNT, - }) - .$usage('render'); +function createColorTexture() { + return root + .createTexture({ + size: framebufferSize(), + format: presentationFormat, + sampleCount: SAMPLE_COUNT, + }) + .$usage('render'); +} + +function createDepthTexture() { + return root + .createTexture({ + size: framebufferSize(), + format: 'depth24plus', + sampleCount: SAMPLE_COUNT, + }) + .$usage('render'); +} + +let colorTexture = createColorTexture(); +let depthTexture = createDepthTexture(); const skyPipeline = root.createRenderPipeline({ vertex: skyVertex, @@ -140,22 +148,9 @@ const { cleanupCamera } = setupOrbitCamera( const resizeObserver = new ResizeObserver(() => { colorTexture.destroy(); - colorTexture = root - .createTexture({ - size: [canvas.width, canvas.height], - format: presentationFormat, - sampleCount: SAMPLE_COUNT, - }) - .$usage('render'); - depthTexture.destroy(); - depthTexture = root - .createTexture({ - size: [canvas.width, canvas.height], - format: 'depth24plus', - sampleCount: SAMPLE_COUNT, - }) - .$usage('render'); + colorTexture = createColorTexture(); + depthTexture = createDepthTexture(); }); resizeObserver.observe(canvas); @@ -189,7 +184,7 @@ function render() { depthLoadOp: 'clear', depthStoreOp: 'store', }) - .draw(vertices.length); + .draw(mesh.vertexCount); lightPipeline .with(sceneBindGroup) @@ -211,68 +206,59 @@ function render() { animationFrameId = requestAnimationFrame(render); +const LIGHT_CONTROLS = [ + { label: 'key', index: 0, max: 12 }, + { label: 'fill', index: 1, max: 12 }, + { label: 'rim', index: 2, max: 8 }, +] as const; + +const lightControls = Object.assign( + {}, + ...LIGHT_CONTROLS.map(({ label, index, max }) => ({ + [`${label} intensity`]: { + initial: initialLights[index].intensity, + min: 0, + max, + step: 0.1, + onSliderChange: (intensity: number) => lightsUniform.patch({ [index]: { intensity } }), + }, + [`${label} color`]: { + initial: d.vec3f(...initialLights[index].color), + onColorChange: (color: d.v3f) => lightsUniform.patch({ [index]: { color } }), + }, + })), +); + export const controls = defineControls({ exposure: { - initial: 1.12, + initial: INITIAL_PARAMS.exposure, min: 0.2, max: 2, step: 0.01, onSliderChange: (exposure) => paramsUniform.patch({ exposure }), }, environment: { - initial: 0.42, + initial: INITIAL_PARAMS.environmentIntensity, min: 0, max: 2, step: 0.01, onSliderChange: (environmentIntensity) => paramsUniform.patch({ environmentIntensity }), }, 'diffuse ibl': { - initial: 0.06, + initial: INITIAL_PARAMS.diffuseIblStrength, min: 0, max: 1, step: 0.01, onSliderChange: (diffuseIblStrength) => paramsUniform.patch({ diffuseIblStrength }), }, 'specular ibl': { - initial: 1.15, + initial: INITIAL_PARAMS.specularIblStrength, min: 0, max: 1.5, step: 0.01, onSliderChange: (specularIblStrength) => paramsUniform.patch({ specularIblStrength }), }, - 'key intensity': { - initial: initialLights[0].intensity, - min: 0, - max: 12, - step: 0.1, - onSliderChange: (intensity) => lightsUniform.patch({ 0: { intensity } }), - }, - 'key color': { - initial: d.vec3f(...initialLights[0].color), - onColorChange: (color) => lightsUniform.patch({ 0: { color } }), - }, - 'fill intensity': { - initial: initialLights[1].intensity, - min: 0, - max: 12, - step: 0.1, - onSliderChange: (intensity) => lightsUniform.patch({ 1: { intensity } }), - }, - 'fill color': { - initial: d.vec3f(...initialLights[1].color), - onColorChange: (color) => lightsUniform.patch({ 1: { color } }), - }, - 'rim intensity': { - initial: initialLights[2].intensity, - min: 0, - max: 8, - step: 0.1, - onSliderChange: (intensity) => lightsUniform.patch({ 2: { intensity } }), - }, - 'rim color': { - initial: d.vec3f(...initialLights[2].color), - onColorChange: (color) => lightsUniform.patch({ 2: { color } }), - }, + ...lightControls, }); export function onCleanup() { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts new file mode 100644 index 0000000000..a9a24bca91 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts @@ -0,0 +1,209 @@ +import { d, std } from 'typegpu'; +import { ltcLayout, RectLight } from './schemas.ts'; + +const LUT_SIZE = 64; +const LUT_SCALE = (LUT_SIZE - 1) / LUT_SIZE; +const LUT_BIAS = 0.5 / LUT_SIZE; + +const HorizonClip = d.struct({ + l0: d.vec3f, + l1: d.vec3f, + l2: d.vec3f, + l3: d.vec3f, + l4: d.vec3f, + count: d.u32, +}); + +export function ltcUv(roughness: number, NdotV: number) { + 'use gpu'; + return d.vec2f(roughness, std.sqrt(1 - NdotV)) * LUT_SCALE + LUT_BIAS; +} + +function bilinearLut(texture: d.texture2d, uv: d.v2f) { + 'use gpu'; + const pos = std.clamp(uv * LUT_SIZE - 0.5, d.vec2f(0), d.vec2f(LUT_SIZE - 1)); + const base = std.floor(pos); + const frac = pos - base; + const next = std.min(base + 1, d.vec2f(LUT_SIZE - 1)); + + const t00 = std.textureLoad(texture, d.vec2u(d.u32(base.x), d.u32(base.y)), 0); + const t10 = std.textureLoad(texture, d.vec2u(d.u32(next.x), d.u32(base.y)), 0); + const t01 = std.textureLoad(texture, d.vec2u(d.u32(base.x), d.u32(next.y)), 0); + const t11 = std.textureLoad(texture, d.vec2u(d.u32(next.x), d.u32(next.y)), 0); + + return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); +} + +export function sampleLtcMatrix(uv: d.v2f) { + 'use gpu'; + const t = bilinearLut(ltcLayout.$.ltcMat, uv); + return d.mat3x3f(d.vec3f(t.x, 0, t.y), d.vec3f(0, 1, 0), d.vec3f(t.z, 0, t.w)); +} + +export function sampleLtcAmplitude(uv: d.v2f) { + 'use gpu'; + return bilinearLut(ltcLayout.$.ltcAmp, uv); +} + +function integrateEdgeVec(v1: d.v3f, v2: d.v3f) { + 'use gpu'; + const x = std.dot(v1, v2); + const y = std.abs(x); + const a = 0.8543985 + (0.4965155 + 0.0145206 * y) * y; + const b = 3.417594 + (4.1616724 + y) * y; + const v = a / b; + const thetaSinTheta = std.select(0.5 * std.inverseSqrt(std.max(1 - x * x, 1e-7)) - v, v, x > 0); + return std.cross(v1, v2) * thetaSinTheta; +} + +function integrateEdge(v1: d.v3f, v2: d.v3f) { + 'use gpu'; + return integrateEdgeVec(v1, v2).z; +} + +function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { + 'use gpu'; + let l0 = d.vec3f(p0); + let l1 = d.vec3f(p1); + let l2 = d.vec3f(p2); + let l3 = d.vec3f(p3); + let l4 = d.vec3f(p0); + + let config = d.i32(0); + if (l0.z > 0) { + config += 1; + } + if (l1.z > 0) { + config += 2; + } + if (l2.z > 0) { + config += 4; + } + if (l3.z > 0) { + config += 8; + } + + let count = d.u32(0); + + if (config === 1) { + count = d.u32(3); + l1 = -l1.z * l0 + l0.z * l1; + l2 = -l3.z * l0 + l0.z * l3; + } else if (config === 2) { + count = d.u32(3); + l0 = -l0.z * l1 + l1.z * l0; + l2 = -l2.z * l1 + l1.z * l2; + } else if (config === 3) { + count = d.u32(4); + l2 = -l2.z * l1 + l1.z * l2; + l3 = -l3.z * l0 + l0.z * l3; + } else if (config === 4) { + count = d.u32(3); + l0 = -l3.z * l2 + l2.z * l3; + l1 = -l1.z * l2 + l2.z * l1; + } else if (config === 6) { + count = d.u32(4); + l0 = -l0.z * l1 + l1.z * l0; + l3 = -l3.z * l2 + l2.z * l3; + } else if (config === 7) { + count = d.u32(5); + l4 = -l3.z * l0 + l0.z * l3; + l3 = -l3.z * l2 + l2.z * l3; + } else if (config === 8) { + count = d.u32(3); + l0 = -l0.z * l3 + l3.z * l0; + l1 = -l2.z * l3 + l3.z * l2; + l2 = d.vec3f(l3); + } else if (config === 9) { + count = d.u32(4); + l1 = -l1.z * l0 + l0.z * l1; + l2 = -l2.z * l3 + l3.z * l2; + } else if (config === 11) { + count = d.u32(5); + l4 = d.vec3f(l3); + l3 = -l2.z * l3 + l3.z * l2; + l2 = -l2.z * l1 + l1.z * l2; + } else if (config === 12) { + count = d.u32(4); + l1 = -l1.z * l2 + l2.z * l1; + l0 = -l0.z * l3 + l3.z * l0; + } else if (config === 13) { + count = d.u32(5); + l4 = d.vec3f(l3); + l3 = d.vec3f(l2); + l2 = -l1.z * l2 + l2.z * l1; + l1 = -l1.z * l0 + l0.z * l1; + } else if (config === 14) { + count = d.u32(5); + l4 = -l0.z * l3 + l3.z * l0; + l0 = -l0.z * l1 + l1.z * l0; + } else if (config === 15) { + count = d.u32(4); + } + + if (count === d.u32(3)) { + l3 = d.vec3f(l0); + } + if (count === d.u32(4)) { + l4 = d.vec3f(l0); + } + + return HorizonClip({ l0, l1, l2, l3, l4, count }); +} + +export function evaluateLtcAreaLight( + N: d.v3f, + V: d.v3f, + P: d.v3f, + Minv: d.m3x3f, + light: d.Infer, +) { + 'use gpu'; + let T1 = V - N * std.dot(V, N); + if (std.dot(T1, T1) < 1e-5) { + let up = d.vec3f(0, 0, 1); + if (std.abs(N.z) > 0.999) { + up = d.vec3f(0, 1, 0); + } + T1 = std.cross(up, N); + } + T1 = std.normalize(T1); + const T2 = std.cross(N, T1); + + const ex = light.dirX * light.halfSize.x; + const ey = light.dirY * light.halfSize.y; + const p0 = light.center - ex - ey; + const p1 = light.center + ex - ey; + const p2 = light.center + ex + ey; + const p3 = light.center - ex + ey; + + const basis = std.transpose(d.mat3x3f(T1, T2, N)); + const transform = Minv * basis; + + const clipped = clipQuadToHorizon( + transform * (p0 - P), + transform * (p1 - P), + transform * (p2 - P), + transform * (p3 - P), + ); + + if (clipped.count === d.u32(0)) { + return d.f32(0); + } + + const l0 = std.normalize(clipped.l0); + const l1 = std.normalize(clipped.l1); + const l2 = std.normalize(clipped.l2); + const l3 = std.normalize(clipped.l3); + const l4 = std.normalize(clipped.l4); + + let sum = integrateEdge(l0, l1) + integrateEdge(l1, l2) + integrateEdge(l2, l3); + if (clipped.count >= d.u32(4)) { + sum += integrateEdge(l3, l4); + } + if (clipped.count === d.u32(5)) { + sum += integrateEdge(l4, l0); + } + + return std.abs(sum); +} diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index 2368380d19..83eec67e32 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -29,15 +29,6 @@ export const RenderParams = d.struct({ specularIblStrength: d.f32, }); -export const HorizonClip = d.struct({ - l0: d.vec3f, - l1: d.vec3f, - l2: d.vec3f, - l3: d.vec3f, - l4: d.vec3f, - count: d.u32, -}); - export const vertexLayout = tgpu.vertexLayout(d.arrayOf(Vertex)); export const sceneLayout = tgpu.bindGroupLayout({ @@ -55,5 +46,3 @@ export const environmentLayout = tgpu.bindGroupLayout({ environmentMap: { texture: d.textureCube(d.f32) }, environmentSampler: { sampler: 'filtering' }, }); - -export type ExampleVertex = d.InferInput; diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index b4221cf6f7..10a32b7a58 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,21 +1,10 @@ import tgpu, { d, std } from 'typegpu'; import { ENVIRONMENT_MIP_LEVELS } from './environment.ts'; -import { - environmentLayout, - HorizonClip, - LIGHT_COUNT, - ltcLayout, - RectLight, - sceneLayout, - Vertex, - vertexLayout, -} from './schemas.ts'; +import { evaluateLtcAreaLight, ltcUv, sampleLtcAmplitude, sampleLtcMatrix } from './ltc.ts'; +import { environmentLayout, LIGHT_COUNT, sceneLayout, Vertex, vertexLayout } from './schemas.ts'; export { vertexLayout }; -const LUT_SIZE = 64; -const LUT_SCALE = (LUT_SIZE - 1) / LUT_SIZE; -const LUT_BIAS = 0.5 / LUT_SIZE; const PI = Math.PI; function saturate(value: number) { @@ -23,205 +12,6 @@ function saturate(value: number) { return std.clamp(value, 0, 1); } -function integrateEdgeVec(v1: d.v3f, v2: d.v3f) { - 'use gpu'; - const x = std.dot(v1, v2); - const y = std.abs(x); - const a = 0.8543985 + (0.4965155 + 0.0145206 * y) * y; - const b = 3.417594 + (4.1616724 + y) * y; - const v = a / b; - const thetaSinTheta = std.select(0.5 * std.inverseSqrt(std.max(1 - x * x, 1e-7)) - v, v, x > 0); - return std.cross(v1, v2) * thetaSinTheta; -} - -function integrateEdge(v1: d.v3f, v2: d.v3f) { - 'use gpu'; - return integrateEdgeVec(v1, v2).z; -} - -function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { - 'use gpu'; - let l0 = d.vec3f(p0); - let l1 = d.vec3f(p1); - let l2 = d.vec3f(p2); - let l3 = d.vec3f(p3); - let l4 = d.vec3f(p0); - - let config = d.i32(0); - if (l0.z > 0) { - config += 1; - } - if (l1.z > 0) { - config += 2; - } - if (l2.z > 0) { - config += 4; - } - if (l3.z > 0) { - config += 8; - } - - let count = d.u32(0); - - if (config === 1) { - count = d.u32(3); - l1 = -l1.z * l0 + l0.z * l1; - l2 = -l3.z * l0 + l0.z * l3; - } else if (config === 2) { - count = d.u32(3); - l0 = -l0.z * l1 + l1.z * l0; - l2 = -l2.z * l1 + l1.z * l2; - } else if (config === 3) { - count = d.u32(4); - l2 = -l2.z * l1 + l1.z * l2; - l3 = -l3.z * l0 + l0.z * l3; - } else if (config === 4) { - count = d.u32(3); - l0 = -l3.z * l2 + l2.z * l3; - l1 = -l1.z * l2 + l2.z * l1; - } else if (config === 6) { - count = d.u32(4); - l0 = -l0.z * l1 + l1.z * l0; - l3 = -l3.z * l2 + l2.z * l3; - } else if (config === 7) { - count = d.u32(5); - l4 = -l3.z * l0 + l0.z * l3; - l3 = -l3.z * l2 + l2.z * l3; - } else if (config === 8) { - count = d.u32(3); - l0 = -l0.z * l3 + l3.z * l0; - l1 = -l2.z * l3 + l3.z * l2; - l2 = d.vec3f(l3); - } else if (config === 9) { - count = d.u32(4); - l1 = -l1.z * l0 + l0.z * l1; - l2 = -l2.z * l3 + l3.z * l2; - } else if (config === 11) { - count = d.u32(5); - l4 = d.vec3f(l3); - l3 = -l2.z * l3 + l3.z * l2; - l2 = -l2.z * l1 + l1.z * l2; - } else if (config === 12) { - count = d.u32(4); - l1 = -l1.z * l2 + l2.z * l1; - l0 = -l0.z * l3 + l3.z * l0; - } else if (config === 13) { - count = d.u32(5); - l4 = d.vec3f(l3); - l3 = d.vec3f(l2); - l2 = -l1.z * l2 + l2.z * l1; - l1 = -l1.z * l0 + l0.z * l1; - } else if (config === 14) { - count = d.u32(5); - l4 = -l0.z * l3 + l3.z * l0; - l0 = -l0.z * l1 + l1.z * l0; - } else if (config === 15) { - count = d.u32(4); - } - - if (count === d.u32(3)) { - l3 = d.vec3f(l0); - } - if (count === d.u32(4)) { - l4 = d.vec3f(l0); - } - - return HorizonClip({ l0, l1, l2, l3, l4, count }); -} - -function ltcEvaluate( - N: d.v3f, - V: d.v3f, - P: d.v3f, - Minv: d.m3x3f, - light: d.Infer, -) { - 'use gpu'; - let T1 = V - N * std.dot(V, N); - if (std.dot(T1, T1) < 1e-5) { - let up = d.vec3f(0, 0, 1); - if (std.abs(N.z) > 0.999) { - up = d.vec3f(0, 1, 0); - } - T1 = std.cross(up, N); - } - T1 = std.normalize(T1); - const T2 = std.cross(N, T1); - - const ex = light.dirX * light.halfSize.x; - const ey = light.dirY * light.halfSize.y; - const p0 = light.center - ex - ey; - const p1 = light.center + ex - ey; - const p2 = light.center + ex + ey; - const p3 = light.center - ex + ey; - - const basis = std.transpose(d.mat3x3f(T1, T2, N)); - const transform = Minv * basis; - - const clipped = clipQuadToHorizon( - transform * (p0 - P), - transform * (p1 - P), - transform * (p2 - P), - transform * (p3 - P), - ); - - if (clipped.count === d.u32(0)) { - return d.f32(0); - } - - const l0 = std.normalize(clipped.l0); - const l1 = std.normalize(clipped.l1); - const l2 = std.normalize(clipped.l2); - const l3 = std.normalize(clipped.l3); - const l4 = std.normalize(clipped.l4); - - let sum = integrateEdge(l0, l1) + integrateEdge(l1, l2) + integrateEdge(l2, l3); - if (clipped.count >= d.u32(4)) { - sum += integrateEdge(l3, l4); - } - if (clipped.count === d.u32(5)) { - sum += integrateEdge(l4, l0); - } - - return std.abs(sum); -} - -function bilinearLoadLtcMat(uv: d.v2f) { - 'use gpu'; - const pos = std.clamp(uv * LUT_SIZE - 0.5, d.vec2f(0), d.vec2f(LUT_SIZE - 1)); - const base = std.floor(pos); - const frac = pos - base; - const next = std.min(base + 1, d.vec2f(LUT_SIZE - 1)); - - const t00 = std.textureLoad(ltcLayout.$.ltcMat, d.vec2u(d.u32(base.x), d.u32(base.y)), 0); - const t10 = std.textureLoad(ltcLayout.$.ltcMat, d.vec2u(d.u32(next.x), d.u32(base.y)), 0); - const t01 = std.textureLoad(ltcLayout.$.ltcMat, d.vec2u(d.u32(base.x), d.u32(next.y)), 0); - const t11 = std.textureLoad(ltcLayout.$.ltcMat, d.vec2u(d.u32(next.x), d.u32(next.y)), 0); - - return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); -} - -function bilinearLoadLtcAmp(uv: d.v2f) { - 'use gpu'; - const pos = std.clamp(uv * LUT_SIZE - 0.5, d.vec2f(0), d.vec2f(LUT_SIZE - 1)); - const base = std.floor(pos); - const frac = pos - base; - const next = std.min(base + 1, d.vec2f(LUT_SIZE - 1)); - - const t00 = std.textureLoad(ltcLayout.$.ltcAmp, d.vec2u(d.u32(base.x), d.u32(base.y)), 0); - const t10 = std.textureLoad(ltcLayout.$.ltcAmp, d.vec2u(d.u32(next.x), d.u32(base.y)), 0); - const t01 = std.textureLoad(ltcLayout.$.ltcAmp, d.vec2u(d.u32(base.x), d.u32(next.y)), 0); - const t11 = std.textureLoad(ltcLayout.$.ltcAmp, d.vec2u(d.u32(next.x), d.u32(next.y)), 0); - - return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); -} - -function sampleLtcMat(uv: d.v2f) { - 'use gpu'; - const t = bilinearLoadLtcMat(uv); - return d.mat3x3f(d.vec3f(t.x, 0, t.y), d.vec3f(0, 1, 0), d.vec3f(t.z, 0, t.w)); -} - function fresnelSchlick(cosTheta: number, f0: d.v3f) { 'use gpu'; return f0 + (1 - f0) * (1 - saturate(cosTheta)) ** 5; @@ -252,6 +42,65 @@ function tonemap(color: d.v3f) { return std.pow(std.max(mapped, d.vec3f(0)), d.vec3f(1 / 2.2)); } +function materialF0(albedo: d.v3f, metallic: number) { + 'use gpu'; + return std.mix(d.vec3f(0.04), albedo, metallic); +} + +function directAreaLighting( + N: d.v3f, + V: d.v3f, + P: d.v3f, + albedo: d.v3f, + roughness: number, + metallic: number, + f0: d.v3f, +) { + 'use gpu'; + const uv = ltcUv(roughness, saturate(std.dot(N, V))); + const Minv = sampleLtcMatrix(uv); + const brdf = sampleLtcAmplitude(uv); + const fresnel = f0 * brdf.x + (1 - f0) * brdf.y; + const diffuse = (1 - fresnel) * (1 - metallic) * (albedo / PI); + + let result = d.vec3f(0); + for (let i = d.u32(0); i < d.u32(LIGHT_COUNT); i++) { + const light = sceneLayout.$.lights[i]; + const diffuseIntegral = evaluateLtcAreaLight(N, V, P, d.mat3x3f.identity(), light); + const specularIntegral = evaluateLtcAreaLight(N, V, P, Minv, light); + result += + light.color * light.intensity * (diffuse * diffuseIntegral + fresnel * specularIntegral); + } + + return result; +} + +function environmentLighting( + N: d.v3f, + V: d.v3f, + albedo: d.v3f, + roughness: number, + metallic: number, + f0: d.v3f, +) { + 'use gpu'; + const NdotV = saturate(std.dot(N, V)); + const fresnel = fresnelSchlickRoughness(NdotV, f0, roughness); + const diffuse = + (1 - fresnel) * + (1 - metallic) * + albedo * + sampleEnvironment(N, d.f32(1)) * + sceneLayout.$.params.diffuseIblStrength; + const specular = + sampleEnvironment(std.reflect(std.neg(V), N), roughness) * + fresnelSchlick(NdotV, f0) * + (1 - roughness * 0.35) * + sceneLayout.$.params.specularIblStrength; + + return diffuse + specular; +} + export const mainVertex = tgpu.vertexFn({ in: Vertex.propTypes, out: { @@ -288,39 +137,12 @@ export const mainFragment = tgpu.fragmentFn({ 'use gpu'; const N = std.normalize(normal); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); - const NdotV = saturate(std.dot(N, V)); const materialRoughness = std.clamp(roughness, 0.04, 1); - const uv = d.vec2f(materialRoughness, std.sqrt(1 - NdotV)) * LUT_SCALE + LUT_BIAS; + const f0 = materialF0(albedo, metallic); + const direct = directAreaLighting(N, V, worldPos, albedo, materialRoughness, metallic, f0); + const ibl = environmentLighting(N, V, albedo, materialRoughness, metallic, f0); - const Minv = sampleLtcMat(uv); - const brdf = bilinearLoadLtcAmp(uv); - - const F0 = std.mix(d.vec3f(0.04), albedo, metallic); - const areaFresnel = F0 * brdf.x + (1 - F0) * brdf.y; - const areaDiffuse = (1 - areaFresnel) * (1 - metallic); - - let direct = d.vec3f(0); - for (let i = d.u32(0); i < d.u32(LIGHT_COUNT); i++) { - const light = sceneLayout.$.lights[i]; - const diffuseIntegral = ltcEvaluate(N, V, worldPos, d.mat3x3f.identity(), light); - const specularIntegral = ltcEvaluate(N, V, worldPos, Minv, light); - const radiance = light.color * light.intensity; - direct += - radiance * (areaDiffuse * (albedo / PI) * diffuseIntegral + areaFresnel * specularIntegral); - } - - const envFresnel = fresnelSchlickRoughness(NdotV, F0, materialRoughness); - const envDiffuse = (1 - envFresnel) * (1 - metallic); - const diffuseIbl = - envDiffuse * albedo * sampleEnvironment(N, d.f32(1)) * sceneLayout.$.params.diffuseIblStrength; - const reflectionDir = std.reflect(std.neg(V), N); - const specularIbl = - sampleEnvironment(reflectionDir, materialRoughness) * - fresnelSchlick(NdotV, F0) * - (1 - materialRoughness * 0.35) * - sceneLayout.$.params.specularIblStrength; - - return d.vec4f(tonemap(direct + diffuseIbl + specularIbl), 1); + return d.vec4f(tonemap(direct + ibl), 1); }); export const skyVertex = tgpu.vertexFn({ @@ -353,24 +175,20 @@ export const lightVertex = tgpu.vertexFn({ })(({ vid }) => { 'use gpu'; const lightIdx = d.u32(vid / d.u32(6)); - const cornerVid = vid % d.u32(6); - - let signX = d.f32(-1); - let signY = d.f32(-1); - if (cornerVid === d.u32(1)) { - signX = 1; - signY = -1; - } else if (cornerVid === d.u32(2) || cornerVid === d.u32(4)) { - signX = 1; - signY = 1; - } else if (cornerVid === d.u32(5)) { - signX = -1; - signY = 1; - } - + const corners = [ + d.vec2f(-1, -1), + d.vec2f(1, -1), + d.vec2f(1, 1), + d.vec2f(-1, -1), + d.vec2f(1, 1), + d.vec2f(-1, 1), + ]; + const corner = corners[vid % d.u32(6)]; const light = sceneLayout.$.lights[lightIdx]; const worldPos = - light.center + light.dirX * light.halfSize.x * signX + light.dirY * light.halfSize.y * signY; + light.center + + light.dirX * light.halfSize.x * corner.x + + light.dirY * light.halfSize.y * corner.y; const camera = sceneLayout.$.camera; return { pos: camera.projection * camera.view * d.vec4f(worldPos, 1), From 5a545dbffbd81535a3f856f51d0d0543ca834fa3 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 01:10:59 +0200 Subject: [PATCH 06/24] Simplify area light controls --- .../examples/rendering/area-light/index.ts | 131 +++++++++++++----- 1 file changed, 97 insertions(+), 34 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 27ca24aa71..24a8067bab 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -34,6 +34,7 @@ const root = await tgpu.init(); const canvas = document.querySelector('canvas') as HTMLCanvasElement; const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); +type LightIndex = 0 | 1 | 2; const mesh = createSceneMesh(); const vertexBuffer = root @@ -108,6 +109,17 @@ function createDepthTexture() { let colorTexture = createColorTexture(); let depthTexture = createDepthTexture(); +let skyGlow = INITIAL_PARAMS.environmentIntensity; +let neonStrength = 1; +let discoMode = false; +let discoStartedAt = performance.now(); + +const baseLightColors = [ + d.vec3f(...initialLights[0].color), + d.vec3f(...initialLights[1].color), + d.vec3f(...initialLights[2].color), +] as const; +const discoColors = [d.vec3f(), d.vec3f(), d.vec3f()] as const; const skyPipeline = root.createRenderPipeline({ vertex: skyVertex, @@ -156,7 +168,63 @@ resizeObserver.observe(canvas); let animationFrameId: number; -function render() { +function writeHueColor(target: d.v3f, hue: number) { + const h = (((hue % 1) + 1) % 1) * 6; + const x = 1 - Math.abs((h % 2) - 1); + const [r, g, b] = + h < 1 + ? [1, x, 0] + : h < 2 + ? [x, 1, 0] + : h < 3 + ? [0, 1, x] + : h < 4 + ? [0, x, 1] + : h < 5 + ? [x, 0, 1] + : [1, 0, x]; + + target[0] = r; + target[1] = g; + target[2] = b; +} + +function patchLight(index: LightIndex, color: d.v3f, strength = 1) { + const update = { + color, + intensity: initialLights[index].intensity * neonStrength * strength, + }; + + if (index === 0) { + lightsUniform.patch({ 0: update }); + } else if (index === 1) { + lightsUniform.patch({ 1: update }); + } else { + lightsUniform.patch({ 2: update }); + } +} + +function restoreLights() { + for (const [index, color] of baseLightColors.entries()) { + patchLight(index as LightIndex, color); + } +} + +function updateDisco(time: number) { + if (!discoMode) { + return; + } + + const t = (time - discoStartedAt) * 0.00014; + for (const [index, color] of discoColors.entries()) { + writeHueColor(color, t + index / discoColors.length); + patchLight(index as LightIndex, color, 0.82 + Math.sin(time * 0.003 + index * 1.7) * 0.18); + } +} + +function render(time: number) { + updateDisco(time); + skyPipeline .with(sceneBindGroup) .with(environmentBindGroup) @@ -206,30 +274,18 @@ function render() { animationFrameId = requestAnimationFrame(render); -const LIGHT_CONTROLS = [ - { label: 'key', index: 0, max: 12 }, - { label: 'fill', index: 1, max: 12 }, - { label: 'rim', index: 2, max: 8 }, -] as const; - -const lightControls = Object.assign( - {}, - ...LIGHT_CONTROLS.map(({ label, index, max }) => ({ - [`${label} intensity`]: { - initial: initialLights[index].intensity, - min: 0, - max, - step: 0.1, - onSliderChange: (intensity: number) => lightsUniform.patch({ [index]: { intensity } }), - }, - [`${label} color`]: { - initial: d.vec3f(...initialLights[index].color), - onColorChange: (color: d.v3f) => lightsUniform.patch({ [index]: { color } }), - }, - })), -); - export const controls = defineControls({ + 'disco mode': { + initial: false, + onToggleChange: (enabled) => { + discoMode = enabled; + discoStartedAt = performance.now(); + paramsUniform.patch({ environmentIntensity: enabled ? 0 : skyGlow }); + if (!enabled) { + restoreLights(); + } + }, + }, exposure: { initial: INITIAL_PARAMS.exposure, min: 0.2, @@ -237,28 +293,35 @@ export const controls = defineControls({ step: 0.01, onSliderChange: (exposure) => paramsUniform.patch({ exposure }), }, - environment: { + 'sky glow': { initial: INITIAL_PARAMS.environmentIntensity, min: 0, max: 2, step: 0.01, - onSliderChange: (environmentIntensity) => paramsUniform.patch({ environmentIntensity }), + onSliderChange: (environmentIntensity) => { + skyGlow = environmentIntensity; + paramsUniform.patch({ environmentIntensity: discoMode ? 0 : skyGlow }); + }, }, - 'diffuse ibl': { - initial: INITIAL_PARAMS.diffuseIblStrength, + 'wet reflections': { + initial: INITIAL_PARAMS.specularIblStrength, min: 0, - max: 1, + max: 1.5, step: 0.01, - onSliderChange: (diffuseIblStrength) => paramsUniform.patch({ diffuseIblStrength }), + onSliderChange: (specularIblStrength) => paramsUniform.patch({ specularIblStrength }), }, - 'specular ibl': { - initial: INITIAL_PARAMS.specularIblStrength, + 'neon strength': { + initial: neonStrength, min: 0, max: 1.5, step: 0.01, - onSliderChange: (specularIblStrength) => paramsUniform.patch({ specularIblStrength }), + onSliderChange: (strength) => { + neonStrength = strength; + if (!discoMode) { + restoreLights(); + } + }, }, - ...lightControls, }); export function onCleanup() { From 7ce7de895fa1c703ab02347e3298098db04181f3 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 01:15:45 +0200 Subject: [PATCH 07/24] Ease area light disco mode --- .../examples/rendering/area-light/index.ts | 49 ++++++++++++++----- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 24a8067bab..c9b0089b68 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -23,6 +23,8 @@ import { } from './shaders.ts'; const SAMPLE_COUNT = 4; +const DISCO_TRANSITION_MS = 1600; +const DISCO_HUE_SPEED = 0.00008; const INITIAL_PARAMS = { exposure: 1.12, environmentIntensity: 0.42, @@ -111,8 +113,10 @@ let colorTexture = createColorTexture(); let depthTexture = createDepthTexture(); let skyGlow = INITIAL_PARAMS.environmentIntensity; let neonStrength = 1; -let discoMode = false; +let discoEnabled = false; +let discoMix = 0; let discoStartedAt = performance.now(); +let previousFrameTime = discoStartedAt; const baseLightColors = [ d.vec3f(...initialLights[0].color), @@ -120,6 +124,7 @@ const baseLightColors = [ d.vec3f(...initialLights[2].color), ] as const; const discoColors = [d.vec3f(), d.vec3f(), d.vec3f()] as const; +const mixedLightColors = [d.vec3f(), d.vec3f(), d.vec3f()] as const; const skyPipeline = root.createRenderPipeline({ vertex: skyVertex, @@ -168,6 +173,20 @@ resizeObserver.observe(canvas); let animationFrameId: number; +function clamp01(value: number) { + return Math.min(Math.max(value, 0), 1); +} + +function smoothstep(value: number) { + return value * value * (3 - 2 * value); +} + +function mixColor(target: d.v3f, from: d.v3f, to: d.v3f, amount: number) { + target[0] = from[0] + (to[0] - from[0]) * amount; + target[1] = from[1] + (to[1] - from[1]) * amount; + target[2] = from[2] + (to[2] - from[2]) * amount; +} + function writeHueColor(target: d.v3f, hue: number) { const h = (((hue % 1) + 1) % 1) * 6; const x = 1 - Math.abs((h % 2) - 1); @@ -211,19 +230,29 @@ function restoreLights() { } function updateDisco(time: number) { - if (!discoMode) { + if (!discoEnabled && discoMix === 0) { return; } - const t = (time - discoStartedAt) * 0.00014; + const delta = Math.min(time - previousFrameTime, 64); + const targetMix = discoEnabled ? 1 : 0; + discoMix = clamp01(discoMix + Math.sign(targetMix - discoMix) * (delta / DISCO_TRANSITION_MS)); + + const blend = smoothstep(discoMix); + const t = (time - discoStartedAt) * DISCO_HUE_SPEED; + paramsUniform.patch({ environmentIntensity: skyGlow * (1 - blend) }); + for (const [index, color] of discoColors.entries()) { writeHueColor(color, t + index / discoColors.length); - patchLight(index as LightIndex, color, 0.82 + Math.sin(time * 0.003 + index * 1.7) * 0.18); + mixColor(mixedLightColors[index], baseLightColors[index], color, blend); + const pulse = smoothstep((Math.sin(time * 0.0015 + index * 2.2) + 1) * 0.5); + patchLight(index as LightIndex, mixedLightColors[index], 1 + (pulse - 1) * blend); } } function render(time: number) { updateDisco(time); + previousFrameTime = time; skyPipeline .with(sceneBindGroup) @@ -278,11 +307,9 @@ export const controls = defineControls({ 'disco mode': { initial: false, onToggleChange: (enabled) => { - discoMode = enabled; - discoStartedAt = performance.now(); - paramsUniform.patch({ environmentIntensity: enabled ? 0 : skyGlow }); - if (!enabled) { - restoreLights(); + discoEnabled = enabled; + if (enabled) { + discoStartedAt = performance.now(); } }, }, @@ -300,7 +327,7 @@ export const controls = defineControls({ step: 0.01, onSliderChange: (environmentIntensity) => { skyGlow = environmentIntensity; - paramsUniform.patch({ environmentIntensity: discoMode ? 0 : skyGlow }); + paramsUniform.patch({ environmentIntensity: skyGlow * (1 - smoothstep(discoMix)) }); }, }, 'wet reflections': { @@ -317,7 +344,7 @@ export const controls = defineControls({ step: 0.01, onSliderChange: (strength) => { neonStrength = strength; - if (!discoMode) { + if (!discoEnabled && discoMix === 0) { restoreLights(); } }, From 6eb8f77c4487d9e814e1a50419ba9a7c721974a3 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 01:25:35 +0200 Subject: [PATCH 08/24] Restore area light controls and wetness --- .../examples/rendering/area-light/geometry.ts | 13 ++-- .../examples/rendering/area-light/index.ts | 72 ++++++++++++++----- .../examples/rendering/area-light/schemas.ts | 2 + .../examples/rendering/area-light/shaders.ts | 36 +++++++--- 4 files changed, 91 insertions(+), 32 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index 6a38d1cecf..c1daa8f795 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -8,6 +8,7 @@ interface Material { albedo: Vec3; roughness: number; metallic: number; + wetness: number; } export interface SceneMesh { @@ -32,15 +33,15 @@ function normalize(v: Vec3): Vec3 { return length > 0 ? scale(v, 1 / length) : v3(0, 1, 0); } -function material(albedo: Vec3, roughness: number, metallic = 0): Material { - return { albedo, roughness, metallic }; +function material(albedo: Vec3, roughness: number, metallic = 0, wetness = 0): Material { + return { albedo, roughness, metallic, wetness }; } const materials = { - floor: material(v3(0.025, 0.028, 0.032), 0.08), + floor: material(v3(0.025, 0.028, 0.032), 0.1, 0, 1), backdrop: material(v3(0.018, 0.021, 0.029), 0.42), - plinth: material(v3(0.045, 0.048, 0.047), 0.12), - block: material(v3(0.025, 0.027, 0.034), 0.18), + plinth: material(v3(0.045, 0.048, 0.047), 0.14, 0, 0.7), + block: material(v3(0.025, 0.027, 0.034), 0.18, 0, 0.5), gold: material(v3(1, 0.62, 0.18), 0.18, 0.55), ceramic: material(v3(0.18, 0.22, 0.22), 0.16), plastic: material(v3(0.025, 0.07, 0.18), 0.16), @@ -80,6 +81,7 @@ function createMeshWriter(vertexCount: number) { albedo: new Float32Array(vertexCount * 3), roughness: new Float32Array(vertexCount), metallic: new Float32Array(vertexCount), + wetness: new Float32Array(vertexCount), } satisfies SceneMesh['data']; let cursor = 0; @@ -91,6 +93,7 @@ function createMeshWriter(vertexCount: number) { data.albedo.set(mat.albedo, vecOffset); data.roughness[cursor] = mat.roughness; data.metallic[cursor] = mat.metallic; + data.wetness[cursor] = mat.wetness; cursor++; } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index c9b0089b68..a860df87c2 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -30,6 +30,7 @@ const INITIAL_PARAMS = { environmentIntensity: 0.42, diffuseIblStrength: 0.06, specularIblStrength: 1.15, + wetness: 0.78, } satisfies d.InferInput; const root = await tgpu.init(); @@ -112,7 +113,6 @@ function createDepthTexture() { let colorTexture = createColorTexture(); let depthTexture = createDepthTexture(); let skyGlow = INITIAL_PARAMS.environmentIntensity; -let neonStrength = 1; let discoEnabled = false; let discoMix = 0; let discoStartedAt = performance.now(); @@ -123,6 +123,7 @@ const baseLightColors = [ d.vec3f(...initialLights[1].color), d.vec3f(...initialLights[2].color), ] as const; +const baseLightIntensities = new Float32Array(initialLights.map((light) => light.intensity)); const discoColors = [d.vec3f(), d.vec3f(), d.vec3f()] as const; const mixedLightColors = [d.vec3f(), d.vec3f(), d.vec3f()] as const; @@ -211,7 +212,7 @@ function writeHueColor(target: d.v3f, hue: number) { function patchLight(index: LightIndex, color: d.v3f, strength = 1) { const update = { color, - intensity: initialLights[index].intensity * neonStrength * strength, + intensity: baseLightIntensities[index] * strength, }; if (index === 0) { @@ -223,9 +224,21 @@ function patchLight(index: LightIndex, color: d.v3f, strength = 1) { } } -function restoreLights() { - for (const [index, color] of baseLightColors.entries()) { - patchLight(index as LightIndex, color); +function setLightColor(index: LightIndex, color: d.v3f) { + const target = baseLightColors[index]; + target[0] = color[0]; + target[1] = color[1]; + target[2] = color[2]; + + if (!discoEnabled && discoMix === 0) { + patchLight(index, target); + } +} + +function setLightIntensity(index: LightIndex, intensity: number) { + baseLightIntensities[index] = intensity; + if (!discoEnabled && discoMix === 0) { + patchLight(index, baseLightColors[index]); } } @@ -330,24 +343,45 @@ export const controls = defineControls({ paramsUniform.patch({ environmentIntensity: skyGlow * (1 - smoothstep(discoMix)) }); }, }, - 'wet reflections': { - initial: INITIAL_PARAMS.specularIblStrength, + 'wet street': { + initial: INITIAL_PARAMS.wetness, min: 0, - max: 1.5, + max: 1, step: 0.01, - onSliderChange: (specularIblStrength) => paramsUniform.patch({ specularIblStrength }), + onSliderChange: (wetness) => paramsUniform.patch({ wetness }), }, - 'neon strength': { - initial: neonStrength, + 'key intensity': { + initial: initialLights[0].intensity, min: 0, - max: 1.5, - step: 0.01, - onSliderChange: (strength) => { - neonStrength = strength; - if (!discoEnabled && discoMix === 0) { - restoreLights(); - } - }, + max: 12, + step: 0.1, + onSliderChange: (intensity) => setLightIntensity(0, intensity), + }, + 'key color': { + initial: baseLightColors[0], + onColorChange: (color) => setLightColor(0, color), + }, + 'fill intensity': { + initial: initialLights[1].intensity, + min: 0, + max: 12, + step: 0.1, + onSliderChange: (intensity) => setLightIntensity(1, intensity), + }, + 'fill color': { + initial: baseLightColors[1], + onColorChange: (color) => setLightColor(1, color), + }, + 'rim intensity': { + initial: initialLights[2].intensity, + min: 0, + max: 8, + step: 0.1, + onSliderChange: (intensity) => setLightIntensity(2, intensity), + }, + 'rim color': { + initial: baseLightColors[2], + onColorChange: (color) => setLightColor(2, color), }, }); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index 83eec67e32..b1230d832b 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -9,6 +9,7 @@ export const Vertex = d.struct({ albedo: d.vec3f, roughness: d.f32, metallic: d.f32, + wetness: d.f32, }); export const RectLight = d.struct({ @@ -27,6 +28,7 @@ export const RenderParams = d.struct({ environmentIntensity: d.f32, diffuseIblStrength: d.f32, specularIblStrength: d.f32, + wetness: d.f32, }); export const vertexLayout = tgpu.vertexLayout(d.arrayOf(Vertex)); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index 10a32b7a58..d52149633e 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -55,6 +55,7 @@ function directAreaLighting( roughness: number, metallic: number, f0: d.v3f, + specularBoost: number, ) { 'use gpu'; const uv = ltcUv(roughness, saturate(std.dot(N, V))); @@ -69,7 +70,9 @@ function directAreaLighting( const diffuseIntegral = evaluateLtcAreaLight(N, V, P, d.mat3x3f.identity(), light); const specularIntegral = evaluateLtcAreaLight(N, V, P, Minv, light); result += - light.color * light.intensity * (diffuse * diffuseIntegral + fresnel * specularIntegral); + light.color * + light.intensity * + (diffuse * diffuseIntegral + fresnel * specularIntegral * specularBoost); } return result; @@ -82,6 +85,7 @@ function environmentLighting( roughness: number, metallic: number, f0: d.v3f, + specularBoost: number, ) { 'use gpu'; const NdotV = saturate(std.dot(N, V)); @@ -96,7 +100,8 @@ function environmentLighting( sampleEnvironment(std.reflect(std.neg(V), N), roughness) * fresnelSchlick(NdotV, f0) * (1 - roughness * 0.35) * - sceneLayout.$.params.specularIblStrength; + sceneLayout.$.params.specularIblStrength * + specularBoost; return diffuse + specular; } @@ -110,8 +115,9 @@ export const mainVertex = tgpu.vertexFn({ albedo: d.vec3f, roughness: d.f32, metallic: d.f32, + wetness: d.f32, }, -})(({ position, normal, albedo, roughness, metallic }) => { +})(({ position, normal, albedo, roughness, metallic, wetness }) => { 'use gpu'; const camera = sceneLayout.$.camera; return { @@ -121,6 +127,7 @@ export const mainVertex = tgpu.vertexFn({ albedo, roughness, metallic, + wetness, }; }); @@ -131,16 +138,29 @@ export const mainFragment = tgpu.fragmentFn({ albedo: d.vec3f, roughness: d.f32, metallic: d.f32, + wetness: d.f32, }, out: d.vec4f, -})(({ worldPos, normal, albedo, roughness, metallic }) => { +})(({ worldPos, normal, albedo, roughness, metallic, wetness }) => { 'use gpu'; const N = std.normalize(normal); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); - const materialRoughness = std.clamp(roughness, 0.04, 1); - const f0 = materialF0(albedo, metallic); - const direct = directAreaLighting(N, V, worldPos, albedo, materialRoughness, metallic, f0); - const ibl = environmentLighting(N, V, albedo, materialRoughness, metallic, f0); + const wetSurface = wetness * sceneLayout.$.params.wetness; + const materialRoughness = std.clamp(std.mix(roughness, 0.018, wetSurface), 0.012, 1); + const wetAlbedo = std.mix(albedo, albedo * 0.35, wetSurface); + const specularBoost = 1 + wetSurface * 3.2; + const f0 = std.mix(materialF0(albedo, metallic), d.vec3f(0.08), wetSurface * (1 - metallic)); + const direct = directAreaLighting( + N, + V, + worldPos, + wetAlbedo, + materialRoughness, + metallic, + f0, + specularBoost, + ); + const ibl = environmentLighting(N, V, wetAlbedo, materialRoughness, metallic, f0, specularBoost); return d.vec4f(tonemap(direct + ibl), 1); }); From bd5873d1558575a726f0acfda439a4ec9c7a163b Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 01:37:18 +0200 Subject: [PATCH 09/24] Refine area light shallow water --- .../examples/rendering/area-light/geometry.ts | 4 +- .../examples/rendering/area-light/index.ts | 6 ++- .../examples/rendering/area-light/schemas.ts | 1 + .../examples/rendering/area-light/shaders.ts | 38 ++++++++++++++++--- 4 files changed, 40 insertions(+), 9 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index c1daa8f795..e9705eedba 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -40,8 +40,8 @@ function material(albedo: Vec3, roughness: number, metallic = 0, wetness = 0): M const materials = { floor: material(v3(0.025, 0.028, 0.032), 0.1, 0, 1), backdrop: material(v3(0.018, 0.021, 0.029), 0.42), - plinth: material(v3(0.045, 0.048, 0.047), 0.14, 0, 0.7), - block: material(v3(0.025, 0.027, 0.034), 0.18, 0, 0.5), + plinth: material(v3(0.045, 0.048, 0.047), 0.14), + block: material(v3(0.025, 0.027, 0.034), 0.18), gold: material(v3(1, 0.62, 0.18), 0.18, 0.55), ceramic: material(v3(0.18, 0.22, 0.22), 0.16), plastic: material(v3(0.025, 0.07, 0.18), 0.16), diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index a860df87c2..44e4e4b6ed 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -30,7 +30,8 @@ const INITIAL_PARAMS = { environmentIntensity: 0.42, diffuseIblStrength: 0.06, specularIblStrength: 1.15, - wetness: 0.78, + wetness: 0.86, + time: 0, } satisfies d.InferInput; const root = await tgpu.init(); @@ -266,6 +267,7 @@ function updateDisco(time: number) { function render(time: number) { updateDisco(time); previousFrameTime = time; + paramsUniform.patch({ time: time * 0.001 }); skyPipeline .with(sceneBindGroup) @@ -343,7 +345,7 @@ export const controls = defineControls({ paramsUniform.patch({ environmentIntensity: skyGlow * (1 - smoothstep(discoMix)) }); }, }, - 'wet street': { + 'shallow water': { initial: INITIAL_PARAMS.wetness, min: 0, max: 1, diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index b1230d832b..f03c55aecd 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -29,6 +29,7 @@ export const RenderParams = d.struct({ diffuseIblStrength: d.f32, specularIblStrength: d.f32, wetness: d.f32, + time: d.f32, }); export const vertexLayout = tgpu.vertexLayout(d.arrayOf(Vertex)); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index d52149633e..b7a11a0ec4 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,4 +1,5 @@ import tgpu, { d, std } from 'typegpu'; +import { perlin2d } from '@typegpu/noise'; import { ENVIRONMENT_MIP_LEVELS } from './environment.ts'; import { evaluateLtcAreaLight, ltcUv, sampleLtcAmplitude, sampleLtcMatrix } from './ltc.ts'; import { environmentLayout, LIGHT_COUNT, sceneLayout, Vertex, vertexLayout } from './schemas.ts'; @@ -47,6 +48,29 @@ function materialF0(albedo: d.v3f, metallic: number) { return std.mix(d.vec3f(0.04), albedo, metallic); } +function noise01(p: d.v2f) { + 'use gpu'; + return perlin2d.sample(p) * 0.5 + 0.5; +} + +function fbm(p: d.v2f) { + 'use gpu'; + return noise01(p) * 0.55 + noise01(p * 2.3 + 19.1) * 0.3 + noise01(p * 5.1 - 8.7) * 0.15; +} + +function waterNormal(N: d.v3f, worldPos: d.v3f, amount: number) { + 'use gpu'; + const t = sceneLayout.$.params.time; + const phase = d.vec2f(std.sin(t * 0.035), std.cos(t * 0.027)) * 0.08; + const p = worldPos.xz * 0.55 + phase; + const center = fbm(p); + const gradient = + d.vec2f(fbm(p + d.vec2f(0.12, 0)) - center, fbm(p + d.vec2f(0, 0.12)) - center) * 0.55; + const waterN = std.normalize(d.vec3f(std.neg(gradient.x), 1, std.neg(gradient.y))); + + return std.normalize(std.mix(N, waterN, amount)); +} + function directAreaLighting( N: d.v3f, V: d.v3f, @@ -143,12 +167,16 @@ export const mainFragment = tgpu.fragmentFn({ out: d.vec4f, })(({ worldPos, normal, albedo, roughness, metallic, wetness }) => { 'use gpu'; - const N = std.normalize(normal); + const geometricN = std.normalize(normal); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); - const wetSurface = wetness * sceneLayout.$.params.wetness; - const materialRoughness = std.clamp(std.mix(roughness, 0.018, wetSurface), 0.012, 1); - const wetAlbedo = std.mix(albedo, albedo * 0.35, wetSurface); - const specularBoost = 1 + wetSurface * 3.2; + const water = wetness * sceneLayout.$.params.wetness * saturate(geometricN.y * 1.35); + const film = water * std.mix(0.94, 1, fbm(worldPos.xz * 0.42 + 30.2)); + const wetSurface = saturate(film); + const N = waterNormal(geometricN, worldPos, water); + const waterRoughness = std.mix(0.055, 0.01, water); + const materialRoughness = std.clamp(std.mix(roughness, waterRoughness, wetSurface), 0.006, 1); + const wetAlbedo = std.mix(albedo, albedo * 0.2, wetSurface); + const specularBoost = 1 + film * 5.8; const f0 = std.mix(materialF0(albedo, metallic), d.vec3f(0.08), wetSurface * (1 - metallic)); const direct = directAreaLighting( N, From cfb0251575b7f68f7b31ec759c2c27a2d8e69611 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 01:44:36 +0200 Subject: [PATCH 10/24] Polish area light palette --- .../rendering/area-light/environment.ts | 24 ++++++++--------- .../examples/rendering/area-light/geometry.ts | 24 ++++++++--------- .../examples/rendering/area-light/index.ts | 10 +++---- .../examples/rendering/area-light/shaders.ts | 26 ++++++++++++------- 4 files changed, 46 insertions(+), 38 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts index 94824da098..4099cd9dfa 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -40,27 +40,27 @@ const FACE_BASES = [ function environmentColor(direction: Vec3): Vec3 { const up = clamp(direction[1] * 0.5 + 0.5); - const horizon = [0.025, 0.045, 0.08] as Vec3; - const zenith = [0.004, 0.01, 0.035] as Vec3; - const groundNear = [0.014, 0.015, 0.018] as Vec3; - const groundFar = [0.004, 0.005, 0.008] as Vec3; + const horizon = [0.046, 0.024, 0.04] as Vec3; + const zenith = [0.012, 0.012, 0.02] as Vec3; + const groundNear = [0.018, 0.014, 0.016] as Vec3; + const groundFar = [0.006, 0.005, 0.007] as Vec3; const sky = mix(horizon, zenith, up ** 1.6); const ground = mix(groundNear, groundFar, clamp(-direction[1] * 1.2)); let color = direction[1] > 0 ? sky : ground; const pinkSignDir = normalize([-0.68, 0.05, 0.73]); - const cyanSignDir = normalize([0.72, -0.02, 0.48]); - const greenSignDir = normalize([0.18, 0.18, -0.97]); + const amberSignDir = normalize([-0.2, -0.04, 0.98]); + const violetSignDir = normalize([0.74, 0.02, -0.54]); const pinkGlow = Math.max(dot(direction, pinkSignDir), 0) ** 36; - const cyanGlow = Math.max(dot(direction, cyanSignDir), 0) ** 32; - const greenGlow = Math.max(dot(direction, greenSignDir), 0) ** 48; + const amberGlow = Math.max(dot(direction, amberSignDir), 0) ** 38; + const violetGlow = Math.max(dot(direction, violetSignDir), 0) ** 46; const hazeBand = Math.max(1 - Math.abs(direction[1] + 0.04) * 10, 0); - color = add(color, mul([1.0, 0.06, 0.72], pinkGlow * 0.75)); - color = add(color, mul([0.0, 0.76, 1.0], cyanGlow * 0.7)); - color = add(color, mul([0.32, 1.0, 0.45], greenGlow * 0.45)); - color = add(color, mul([0.12, 0.04, 0.22], hazeBand * 0.16)); + color = add(color, mul([1, 0.08, 0.58], pinkGlow * 0.68)); + color = add(color, mul([1, 0.4, 0.08], amberGlow * 0.45)); + color = add(color, mul([0.38, 0.2, 1], violetGlow * 0.22)); + color = add(color, mul([0.18, 0.05, 0.11], hazeBand * 0.12)); return color.map((channel) => clamp(channel)) as Vec3; } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index e9705eedba..345e53d003 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -38,13 +38,13 @@ function material(albedo: Vec3, roughness: number, metallic = 0, wetness = 0): M } const materials = { - floor: material(v3(0.025, 0.028, 0.032), 0.1, 0, 1), - backdrop: material(v3(0.018, 0.021, 0.029), 0.42), - plinth: material(v3(0.045, 0.048, 0.047), 0.14), - block: material(v3(0.025, 0.027, 0.034), 0.18), + floor: material(v3(0.026, 0.022, 0.026), 0.1, 0, 1), + backdrop: material(v3(0.026, 0.019, 0.028), 0.42), + plinth: material(v3(0.052, 0.04, 0.046), 0.14), + block: material(v3(0.03, 0.024, 0.032), 0.18), gold: material(v3(1, 0.62, 0.18), 0.18, 0.55), - ceramic: material(v3(0.18, 0.22, 0.22), 0.16), - plastic: material(v3(0.025, 0.07, 0.18), 0.16), + ceramic: material(v3(0.2, 0.17, 0.17), 0.16), + plastic: material(v3(0.045, 0.028, 0.075), 0.16), } satisfies Record; export const initialLights = [ @@ -53,24 +53,24 @@ export const initialLights = [ dirX: v3(1, 0, 0), dirY: v3(0, 0, 1), halfSize: [1.25, 0.75] satisfies Vec2, - color: v3(1, 0.16, 0.74), - intensity: 9, + color: v3(1, 0.26, 0.62), + intensity: 8.2, }, { center: v3(-3.4, 1.6, 1.8), dirX: v3(0, 0, 1), dirY: v3(0, 1, 0), halfSize: [0.7, 0.95] satisfies Vec2, - color: v3(0.05, 0.78, 1), - intensity: 6.5, + color: v3(1, 0.48, 0.16), + intensity: 4.4, }, { center: v3(3.1, 1.45, -2.5), dirX: v3(1, 0, 0), dirY: v3(0, 1, 0), halfSize: [0.55, 0.8] satisfies Vec2, - color: v3(0.25, 1, 0.52), - intensity: 5.2, + color: v3(0.56, 0.24, 1), + intensity: 2.6, }, ] satisfies d.InferInput; diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 44e4e4b6ed..5f0e632e64 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -27,10 +27,10 @@ const DISCO_TRANSITION_MS = 1600; const DISCO_HUE_SPEED = 0.00008; const INITIAL_PARAMS = { exposure: 1.12, - environmentIntensity: 0.42, + environmentIntensity: 0.34, diffuseIblStrength: 0.06, - specularIblStrength: 1.15, - wetness: 0.86, + specularIblStrength: 0.95, + wetness: 0.42, time: 0, } satisfies d.InferInput; @@ -274,7 +274,7 @@ function render(time: number) { .with(environmentBindGroup) .withColorAttachment({ view: colorTexture, - clearValue: [0.02, 0.022, 0.025, 1], + clearValue: [0.014, 0.012, 0.016, 1], loadOp: 'clear', storeOp: 'store', }) @@ -348,7 +348,7 @@ export const controls = defineControls({ 'shallow water': { initial: INITIAL_PARAMS.wetness, min: 0, - max: 1, + max: 0.5, step: 0.01, onSliderChange: (wetness) => paramsUniform.patch({ wetness }), }, diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index b7a11a0ec4..b632d18a74 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -61,11 +61,19 @@ function fbm(p: d.v2f) { function waterNormal(N: d.v3f, worldPos: d.v3f, amount: number) { 'use gpu'; const t = sceneLayout.$.params.time; - const phase = d.vec2f(std.sin(t * 0.035), std.cos(t * 0.027)) * 0.08; - const p = worldPos.xz * 0.55 + phase; + const phase = + d.vec2f( + std.sin(t * 0.085) + std.sin(t * 0.041) * 0.45, + std.cos(t * 0.071) + std.sin(t * 0.033) * 0.35, + ) * 0.12; + const p = worldPos.xz * 0.48 + phase; const center = fbm(p); - const gradient = - d.vec2f(fbm(p + d.vec2f(0.12, 0)) - center, fbm(p + d.vec2f(0, 0.12)) - center) * 0.55; + const perlinGradient = + d.vec2f(fbm(p + d.vec2f(0.12, 0)) - center, fbm(p + d.vec2f(0, 0.12)) - center) * 0.42; + const waveGradient = + d.vec2f(1.25, 0.42) * std.cos(std.dot(worldPos.xz, d.vec2f(1.25, 0.42)) + t * 0.45) * 0.012 + + d.vec2f(-0.66, 1.08) * std.cos(std.dot(worldPos.xz, d.vec2f(-0.66, 1.08)) - t * 0.31) * 0.01; + const gradient = perlinGradient + waveGradient; const waterN = std.normalize(d.vec3f(std.neg(gradient.x), 1, std.neg(gradient.y))); return std.normalize(std.mix(N, waterN, amount)); @@ -170,13 +178,13 @@ export const mainFragment = tgpu.fragmentFn({ const geometricN = std.normalize(normal); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); const water = wetness * sceneLayout.$.params.wetness * saturate(geometricN.y * 1.35); - const film = water * std.mix(0.94, 1, fbm(worldPos.xz * 0.42 + 30.2)); + const film = water * std.mix(0.97, 1, fbm(worldPos.xz * 0.42 + 30.2)); const wetSurface = saturate(film); - const N = waterNormal(geometricN, worldPos, water); - const waterRoughness = std.mix(0.055, 0.01, water); + const N = waterNormal(geometricN, worldPos, water * 0.55); + const waterRoughness = std.mix(0.065, 0.032, water); const materialRoughness = std.clamp(std.mix(roughness, waterRoughness, wetSurface), 0.006, 1); - const wetAlbedo = std.mix(albedo, albedo * 0.2, wetSurface); - const specularBoost = 1 + film * 5.8; + const wetAlbedo = std.mix(albedo, albedo * 0.44, wetSurface); + const specularBoost = 1 + film * 3.2; const f0 = std.mix(materialF0(albedo, metallic), d.vec3f(0.08), wetSurface * (1 - metallic)); const direct = directAreaLighting( N, From fa965681a12e1f3a7f4b2ee8ad1f0e7c99e1b9d3 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 02:02:11 +0200 Subject: [PATCH 11/24] Generate area light environment on GPU --- .../src/examples/common/setup-orbit-camera.ts | 42 +++-- .../rendering/area-light/environment.ts | 165 ++++++++++-------- .../examples/rendering/area-light/geometry.ts | 4 +- .../examples/rendering/area-light/index.ts | 43 ++++- 4 files changed, 158 insertions(+), 96 deletions(-) diff --git a/apps/typegpu-docs/src/examples/common/setup-orbit-camera.ts b/apps/typegpu-docs/src/examples/common/setup-orbit-camera.ts index 9cba0e0bfe..bbff9a8760 100644 --- a/apps/typegpu-docs/src/examples/common/setup-orbit-camera.ts +++ b/apps/typegpu-docs/src/examples/common/setup-orbit-camera.ts @@ -15,6 +15,9 @@ export interface CameraOptions { target?: d.v4f; minZoom?: number; maxZoom?: number; + minPitch?: number; + maxPitch?: number; + minCameraY?: number; invertCamera?: boolean; } @@ -22,6 +25,9 @@ const cameraDefaults: Partial = { target: d.vec4f(0, 0, 0, 1), minZoom: 1, maxZoom: 100, + minPitch: -Math.PI / 2 + 0.01, + maxPitch: Math.PI / 2 - 0.01, + minCameraY: Number.NEGATIVE_INFINITY, invertCamera: false, }; @@ -56,12 +62,13 @@ export function setupOrbitCamera( cameraState.pitch = Math.asin(cameraVector.y / cameraState.radius); cameraState.target = tgt; - const view = calculateView(newPos, cameraState.target); + const position = currentCameraPosition(); + const view = calculateView(position, cameraState.target); const projection = calculateProj(canvas.clientWidth / canvas.clientHeight); callback( Camera({ - position: newPos, + position, targetPos: cameraState.target, view, projection, @@ -75,14 +82,8 @@ export function setupOrbitCamera( const orbitSensitivity = 0.005; cameraState.yaw += -dx * orbitSensitivity * (options.invertCamera ? -1 : 1); cameraState.pitch += dy * orbitSensitivity * (options.invertCamera ? -1 : 1); - cameraState.pitch = std.clamp(cameraState.pitch, -Math.PI / 2 + 0.01, Math.PI / 2 - 0.01); - const newCameraPos = calculatePos( - cameraState.target, - cameraState.radius, - cameraState.pitch, - cameraState.yaw, - ); + const newCameraPos = currentCameraPosition(); const newView = calculateView(newCameraPos, cameraState.target); @@ -97,12 +98,7 @@ export function setupOrbitCamera( cameraState.radius += delta * 0.05; cameraState.radius = std.clamp(cameraState.radius, options.minZoom, options.maxZoom); - const newPos = calculatePos( - cameraState.target, - cameraState.radius, - cameraState.pitch, - cameraState.yaw, - ); + const newPos = currentCameraPosition(); const newView = calculateView(newPos, cameraState.target); callback({ @@ -214,6 +210,22 @@ export function setupOrbitCamera( passive: false, }); + function currentCameraPosition() { + const minPitchForHeight = Number.isFinite(options.minCameraY) + ? Math.asin( + std.clamp((options.minCameraY - cameraState.target.y) / cameraState.radius, -1, 1), + ) + : options.minPitch; + + cameraState.pitch = std.clamp( + cameraState.pitch, + Math.max(options.minPitch, minPitchForHeight), + options.maxPitch, + ); + + return calculatePos(cameraState.target, cameraState.radius, cameraState.pitch, cameraState.yaw); + } + canvas.addEventListener( 'touchmove', (e) => { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts index 4099cd9dfa..9b468b76f2 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -1,89 +1,104 @@ -const ENVIRONMENT_SIZE = 256; +import { perlin3d } from '@typegpu/noise'; +import tgpu, { d, std } from 'typegpu'; +export const ENVIRONMENT_SIZE = 256; export const ENVIRONMENT_MIP_LEVELS = Math.floor(Math.log2(ENVIRONMENT_SIZE)) + 1; -type Vec3 = [number, number, number]; - -function clamp(value: number, min = 0, max = 1) { - return Math.min(Math.max(value, min), max); +export const environmentGenerationLayout = tgpu.bindGroupLayout({ + face: { uniform: d.u32 }, +}); + +const cubeFaceDirection = tgpu.fn( + [d.u32, d.vec2f], + d.vec3f, +)((face, uv) => { + 'use gpu'; + let direction = d.vec3f(1, -uv.y, -uv.x); + + if (face === d.u32(1)) { + direction = d.vec3f(-1, -uv.y, uv.x); + } else if (face === d.u32(2)) { + direction = d.vec3f(uv.x, 1, uv.y); + } else if (face === d.u32(3)) { + direction = d.vec3f(uv.x, -1, -uv.y); + } else if (face === d.u32(4)) { + direction = d.vec3f(uv.x, -uv.y, 1); + } else if (face === d.u32(5)) { + direction = d.vec3f(-uv.x, -uv.y, -1); + } + + return std.normalize(direction); +}); + +function noise01(p: d.v3f) { + 'use gpu'; + return perlin3d.sample(p) * 0.5 + 0.5; } -function mix(a: Vec3, b: Vec3, t: number): Vec3 { - return [a[0] * (1 - t) + b[0] * t, a[1] * (1 - t) + b[1] * t, a[2] * (1 - t) + b[2] * t]; +function fbm(p: d.v3f) { + 'use gpu'; + return ( + noise01(p) * 0.5 + + noise01(p * 2.05 + d.vec3f(7.4, -3.1, 2.6)) * 0.32 + + noise01(p * 4.1 + d.vec3f(-4.8, 6.2, 9.1)) * 0.18 + ); } -function dot(a: Vec3, b: Vec3) { - return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; +function glow(direction: d.v3f, source: d.v3f, color: d.v3f, power: number, strength: number) { + 'use gpu'; + return color * std.max(std.dot(direction, std.normalize(source)), 0) ** power * strength; } -function normalize(v: Vec3): Vec3 { - const len = Math.hypot(v[0], v[1], v[2]); - return len > 0 ? [v[0] / len, v[1] / len, v[2] / len] : [0, 1, 0]; -} +function cloudMap(direction: d.v3f) { + 'use gpu'; + const p = direction * 1.35 + d.vec3f(2.1, -1.4, 4.7); + const warp = d.vec3f(fbm(p + 8.3), fbm(p - 5.6), fbm(p + d.vec3f(-2.2, 4.1, 7.5))) - 0.5; + const cover = fbm(p + warp * 0.85); + const lowerSky = std.smoothstep(-0.18, 0.45, direction.y); + const fadeToZenith = 1 - std.smoothstep(0.52, 0.92, direction.y); -function mul(v: Vec3, scale: number): Vec3 { - return [v[0] * scale, v[1] * scale, v[2] * scale]; + return std.smoothstep(0.3, 0.7, cover) * lowerSky * fadeToZenith; } -function add(a: Vec3, b: Vec3): Vec3 { - return [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; +function environmentColor(direction: d.v3f) { + 'use gpu'; + const skyBlend = std.smoothstep(-0.28, 0.85, direction.y); + const groundBlend = std.smoothstep(-1, 0.08, direction.y); + const night = std.mix(d.vec3f(0.006, 0.005, 0.008), d.vec3f(0.033, 0.018, 0.034), skyBlend); + const ground = std.mix(d.vec3f(0.004, 0.004, 0.005), d.vec3f(0.024, 0.014, 0.019), groundBlend); + let color = std.mix(ground, night, std.smoothstep(-0.12, 0.12, direction.y)); + + const clouds = cloudMap(direction); + const cloudTint = std.mix(d.vec3f(0.2, 0.1, 0.17), d.vec3f(0.72, 0.38, 0.54), clouds); + color = std.mix(color, cloudTint, clouds * 0.56); + + const horizonHaze = 1 - std.smoothstep(0.02, 0.36, std.abs(direction.y + 0.03)); + color += d.vec3f(0.16, 0.045, 0.085) * horizonHaze * 0.16; + color += glow(direction, d.vec3f(-0.36, 0.46, 0.82), d.vec3f(0.76, 0.24, 0.46), d.f32(9), 0.22); + color += glow(direction, d.vec3f(-0.68, 0.04, 0.73), d.vec3f(1, 0.08, 0.58), d.f32(24), 0.55); + color += glow(direction, d.vec3f(-0.2, -0.02, 0.98), d.vec3f(1, 0.42, 0.08), d.f32(28), 0.34); + color += glow(direction, d.vec3f(0.74, 0.03, -0.54), d.vec3f(0.5, 0.2, 1), d.f32(34), 0.22); + + return std.clamp(color, d.vec3f(0), d.vec3f(1)); } -const FACE_BASES = [ - { forward: [1, 0, 0] as Vec3, right: [0, 0, -1] as Vec3, up: [0, -1, 0] as Vec3 }, - { forward: [-1, 0, 0] as Vec3, right: [0, 0, 1] as Vec3, up: [0, -1, 0] as Vec3 }, - { forward: [0, 1, 0] as Vec3, right: [1, 0, 0] as Vec3, up: [0, 0, 1] as Vec3 }, - { forward: [0, -1, 0] as Vec3, right: [1, 0, 0] as Vec3, up: [0, 0, -1] as Vec3 }, - { forward: [0, 0, 1] as Vec3, right: [1, 0, 0] as Vec3, up: [0, -1, 0] as Vec3 }, - { forward: [0, 0, -1] as Vec3, right: [-1, 0, 0] as Vec3, up: [0, -1, 0] as Vec3 }, -] as const; - -function environmentColor(direction: Vec3): Vec3 { - const up = clamp(direction[1] * 0.5 + 0.5); - const horizon = [0.046, 0.024, 0.04] as Vec3; - const zenith = [0.012, 0.012, 0.02] as Vec3; - const groundNear = [0.018, 0.014, 0.016] as Vec3; - const groundFar = [0.006, 0.005, 0.007] as Vec3; - - const sky = mix(horizon, zenith, up ** 1.6); - const ground = mix(groundNear, groundFar, clamp(-direction[1] * 1.2)); - let color = direction[1] > 0 ? sky : ground; - - const pinkSignDir = normalize([-0.68, 0.05, 0.73]); - const amberSignDir = normalize([-0.2, -0.04, 0.98]); - const violetSignDir = normalize([0.74, 0.02, -0.54]); - const pinkGlow = Math.max(dot(direction, pinkSignDir), 0) ** 36; - const amberGlow = Math.max(dot(direction, amberSignDir), 0) ** 38; - const violetGlow = Math.max(dot(direction, violetSignDir), 0) ** 46; - const hazeBand = Math.max(1 - Math.abs(direction[1] + 0.04) * 10, 0); - - color = add(color, mul([1, 0.08, 0.58], pinkGlow * 0.68)); - color = add(color, mul([1, 0.4, 0.08], amberGlow * 0.45)); - color = add(color, mul([0.38, 0.2, 1], violetGlow * 0.22)); - color = add(color, mul([0.18, 0.05, 0.11], hazeBand * 0.12)); - - return color.map((channel) => clamp(channel)) as Vec3; -} - -export function createEnvironmentFaces() { - return FACE_BASES.map(({ forward, right, up }) => { - const data = new Uint8ClampedArray(ENVIRONMENT_SIZE * ENVIRONMENT_SIZE * 4); - - for (let y = 0; y < ENVIRONMENT_SIZE; y++) { - for (let x = 0; x < ENVIRONMENT_SIZE; x++) { - const u = ((x + 0.5) / ENVIRONMENT_SIZE) * 2 - 1; - const v = ((y + 0.5) / ENVIRONMENT_SIZE) * 2 - 1; - const direction = normalize(add(add(forward, mul(right, u)), mul(up, v))); - const color = environmentColor(direction); - const idx = (y * ENVIRONMENT_SIZE + x) * 4; - - data[idx] = Math.round(color[0] * 255); - data[idx + 1] = Math.round(color[1] * 255); - data[idx + 2] = Math.round(color[2] * 255); - data[idx + 3] = 255; - } - } - - return new ImageData(data, ENVIRONMENT_SIZE, ENVIRONMENT_SIZE); - }); -} +export const environmentVertex = tgpu.vertexFn({ + in: { vertexIndex: d.builtin.vertexIndex }, + out: { pos: d.builtin.position, uv: d.vec2f }, +})(({ vertexIndex }) => { + 'use gpu'; + const pos = [d.vec2f(-1, -1), d.vec2f(3, -1), d.vec2f(-1, 3)]; + return { + pos: d.vec4f(pos[vertexIndex], 0, 1), + uv: pos[vertexIndex], + }; +}); + +export const environmentFragment = tgpu.fragmentFn({ + in: { uv: d.vec2f }, + out: d.vec4f, +})(({ uv }) => { + 'use gpu'; + const direction = cubeFaceDirection(environmentGenerationLayout.$.face, uv); + return d.vec4f(environmentColor(direction), 1); +}); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index 345e53d003..922200d021 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -179,8 +179,8 @@ function pushSphere(mesh: MeshWriter, center: Vec3, radius: number, mat: Materia export function createSceneMesh(): SceneMesh { const mesh = createMeshWriter(SCENE_VERTEX_COUNT); - pushQuad(mesh, v3(0, 0, 0), v3(5, 0, 0), v3(0, 0, -4.2), v3(0, 1, 0), materials.floor); - pushQuad(mesh, v3(0, 1.45, -3.3), v3(4.2, 0, 0), v3(0, 1.45, 0), v3(0, 0, 1), materials.backdrop); + pushQuad(mesh, v3(0, 0, 0), v3(5.8, 0, 0), v3(0, 0, -4.9), v3(0, 1, 0), materials.floor); + pushQuad(mesh, v3(0, 1.15, -3.3), v3(4.2, 0, 0), v3(0, 1.15, 0), v3(0, 0, 1), materials.backdrop); pushBox(mesh, v3(0, 0.08, -0.7), v3(2.55, 0.08, 1.25), materials.plinth); pushBox(mesh, v3(-2.55, 0.22, 0.9), v3(0.55, 0.22, 0.55), materials.block); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 5f0e632e64..b5e25034b9 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -1,7 +1,13 @@ import tgpu, { common, d } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; -import { createEnvironmentFaces, ENVIRONMENT_MIP_LEVELS } from './environment.ts'; +import { + ENVIRONMENT_MIP_LEVELS, + ENVIRONMENT_SIZE, + environmentFragment, + environmentGenerationLayout, + environmentVertex, +} from './environment.ts'; import { createSceneMesh, initialLights } from './geometry.ts'; import { LTC_1, LTC_2 } from './ltcTables.ts'; import { @@ -27,7 +33,7 @@ const DISCO_TRANSITION_MS = 1600; const DISCO_HUE_SPEED = 0.00008; const INITIAL_PARAMS = { exposure: 1.12, - environmentIntensity: 0.34, + environmentIntensity: 0.42, diffuseIblStrength: 0.06, specularIblStrength: 0.95, wetness: 0.42, @@ -70,12 +76,40 @@ const ltcBindGroup = root.createBindGroup(ltcLayout, { const environmentTexture = root .createTexture({ - size: [256, 256, 6], + size: [ENVIRONMENT_SIZE, ENVIRONMENT_SIZE, 6], format: 'rgba8unorm', mipLevelCount: ENVIRONMENT_MIP_LEVELS, }) .$usage('sampled', 'render'); -environmentTexture.write(createEnvironmentFaces()); + +const environmentFaceUniform = root.createUniform(d.u32); +const environmentGenerationBindGroup = root.createBindGroup(environmentGenerationLayout, { + face: environmentFaceUniform.buffer, +}); +const environmentPipeline = root.createRenderPipeline({ + vertex: environmentVertex, + fragment: environmentFragment, + targets: { format: 'rgba8unorm' }, +}); +const environmentFaceViews = Array.from({ length: 6 }, (_, face) => + environmentTexture.createView('render', { + baseArrayLayer: face, + arrayLayerCount: 1, + mipLevelCount: 1, + }), +); + +environmentFaceViews.forEach((view, face) => { + environmentFaceUniform.write(face); + environmentPipeline + .with(environmentGenerationBindGroup) + .withColorAttachment({ + view, + loadOp: 'clear', + storeOp: 'store', + }) + .draw(3); +}); environmentTexture.generateMipmaps(); const environmentSampler = root.createSampler({ @@ -161,6 +195,7 @@ const { cleanupCamera } = setupOrbitCamera( target: d.vec4f(0, 0.55, -0.55, 1), minZoom: 1.8, maxZoom: 10, + minCameraY: 0.22, }, (updates) => cameraUniform.patch(updates), ); From 1bdd17b72a4294ec4e3dca94b5e1695ce9568a40 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 02:06:05 +0200 Subject: [PATCH 12/24] Animate area light water with 3D noise --- .../examples/rendering/area-light/shaders.ts | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index b632d18a74..e9084d0cfc 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,5 +1,5 @@ import tgpu, { d, std } from 'typegpu'; -import { perlin2d } from '@typegpu/noise'; +import { perlin3d } from '@typegpu/noise'; import { ENVIRONMENT_MIP_LEVELS } from './environment.ts'; import { evaluateLtcAreaLight, ltcUv, sampleLtcAmplitude, sampleLtcMatrix } from './ltc.ts'; import { environmentLayout, LIGHT_COUNT, sceneLayout, Vertex, vertexLayout } from './schemas.ts'; @@ -48,31 +48,35 @@ function materialF0(albedo: d.v3f, metallic: number) { return std.mix(d.vec3f(0.04), albedo, metallic); } -function noise01(p: d.v2f) { +function noise01(p: d.v3f) { 'use gpu'; - return perlin2d.sample(p) * 0.5 + 0.5; + return perlin3d.sample(p) * 0.5 + 0.5; } -function fbm(p: d.v2f) { +function fbm(p: d.v3f) { 'use gpu'; - return noise01(p) * 0.55 + noise01(p * 2.3 + 19.1) * 0.3 + noise01(p * 5.1 - 8.7) * 0.15; + return ( + noise01(p) * 0.52 + + noise01(p * 2.15 + d.vec3f(8.4, -3.2, 5.7)) * 0.31 + + noise01(p * 4.4 + d.vec3f(-6.1, 4.8, 11.3)) * 0.17 + ); } function waterNormal(N: d.v3f, worldPos: d.v3f, amount: number) { 'use gpu'; const t = sceneLayout.$.params.time; - const phase = + const drift = d.vec2f( - std.sin(t * 0.085) + std.sin(t * 0.041) * 0.45, - std.cos(t * 0.071) + std.sin(t * 0.033) * 0.35, - ) * 0.12; - const p = worldPos.xz * 0.48 + phase; + std.sin(t * 0.12) + std.sin(t * 0.047) * 0.5, + std.cos(t * 0.097) + std.sin(t * 0.059) * 0.4, + ) * 0.14; + const p = d.vec3f(worldPos.xz * 0.46 + drift, t * 0.18); const center = fbm(p); const perlinGradient = - d.vec2f(fbm(p + d.vec2f(0.12, 0)) - center, fbm(p + d.vec2f(0, 0.12)) - center) * 0.42; + d.vec2f(fbm(p + d.vec3f(0.14, 0, 0)) - center, fbm(p + d.vec3f(0, 0.14, 0)) - center) * 0.62; const waveGradient = - d.vec2f(1.25, 0.42) * std.cos(std.dot(worldPos.xz, d.vec2f(1.25, 0.42)) + t * 0.45) * 0.012 + - d.vec2f(-0.66, 1.08) * std.cos(std.dot(worldPos.xz, d.vec2f(-0.66, 1.08)) - t * 0.31) * 0.01; + d.vec2f(1.25, 0.42) * std.cos(std.dot(worldPos.xz, d.vec2f(1.25, 0.42)) + t * 0.68) * 0.015 + + d.vec2f(-0.66, 1.08) * std.cos(std.dot(worldPos.xz, d.vec2f(-0.66, 1.08)) - t * 0.52) * 0.013; const gradient = perlinGradient + waveGradient; const waterN = std.normalize(d.vec3f(std.neg(gradient.x), 1, std.neg(gradient.y))); @@ -178,9 +182,11 @@ export const mainFragment = tgpu.fragmentFn({ const geometricN = std.normalize(normal); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); const water = wetness * sceneLayout.$.params.wetness * saturate(geometricN.y * 1.35); - const film = water * std.mix(0.97, 1, fbm(worldPos.xz * 0.42 + 30.2)); + const film = + water * + std.mix(0.96, 1, fbm(d.vec3f(worldPos.xz * 0.38 + 30.2, sceneLayout.$.params.time * 0.08))); const wetSurface = saturate(film); - const N = waterNormal(geometricN, worldPos, water * 0.55); + const N = waterNormal(geometricN, worldPos, water * 0.66); const waterRoughness = std.mix(0.065, 0.032, water); const materialRoughness = std.clamp(std.mix(roughness, waterRoughness, wetSurface), 0.006, 1); const wetAlbedo = std.mix(albedo, albedo * 0.44, wetSurface); From 5f31b856099e24f1736529b0711ec02784bd47f7 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 02:08:00 +0200 Subject: [PATCH 13/24] Tune area light camera framing --- apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts | 2 +- apps/typegpu-docs/src/examples/rendering/area-light/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index 922200d021..9ccfb4be6b 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -180,7 +180,7 @@ export function createSceneMesh(): SceneMesh { const mesh = createMeshWriter(SCENE_VERTEX_COUNT); pushQuad(mesh, v3(0, 0, 0), v3(5.8, 0, 0), v3(0, 0, -4.9), v3(0, 1, 0), materials.floor); - pushQuad(mesh, v3(0, 1.15, -3.3), v3(4.2, 0, 0), v3(0, 1.15, 0), v3(0, 0, 1), materials.backdrop); + pushQuad(mesh, v3(0, 1.3, -3.3), v3(4.2, 0, 0), v3(0, 1.3, 0), v3(0, 0, 1), materials.backdrop); pushBox(mesh, v3(0, 0.08, -0.7), v3(2.55, 0.08, 1.25), materials.plinth); pushBox(mesh, v3(-2.55, 0.22, 0.9), v3(0.55, 0.22, 0.55), materials.block); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index b5e25034b9..1c5c03da40 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -194,7 +194,7 @@ const { cleanupCamera } = setupOrbitCamera( initPos: d.vec4f(4.25, 2.45, 5.15, 1), target: d.vec4f(0, 0.55, -0.55, 1), minZoom: 1.8, - maxZoom: 10, + maxZoom: 14, minCameraY: 0.22, }, (updates) => cameraUniform.patch(updates), From e427e65cb80718f4f6be530002806b56823b600c Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 15:03:30 +0200 Subject: [PATCH 14/24] Fill area light env lower clouds --- .../rendering/area-light/environment.ts | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts index 9b468b76f2..a6fe91d644 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -60,6 +60,34 @@ function cloudMap(direction: d.v3f) { return std.smoothstep(0.3, 0.7, cover) * lowerSky * fadeToZenith; } +function lowerClouds(direction: d.v3f) { + 'use gpu'; + const cloudDirection = std.normalize( + d.vec3f(direction.x, -direction.y * 0.24 + 0.34, direction.z), + ); + const p = cloudDirection * 1.25 + d.vec3f(-4.8, 2.6, -1.7); + const warp = d.vec3f(fbm(p - 9.4), fbm(p + 3.7), fbm(p + d.vec3f(5.1, -2.8, 6.3))) - 0.5; + const clouds = std.smoothstep(0.34, 0.82, fbm(p + warp * 0.75)); + let color = std.mix(d.vec3f(0.007, 0.006, 0.011), d.vec3f(0.28, 0.11, 0.22), clouds * 0.72); + + color += glow( + cloudDirection, + d.vec3f(-0.36, 0.46, 0.82), + d.vec3f(0.72, 0.2, 0.44), + d.f32(10), + 0.16, + ); + color += glow( + cloudDirection, + d.vec3f(-0.2, -0.02, 0.98), + d.vec3f(1, 0.34, 0.08), + d.f32(16), + 0.08, + ); + + return color; +} + function environmentColor(direction: d.v3f) { 'use gpu'; const skyBlend = std.smoothstep(-0.28, 0.85, direction.y); @@ -67,6 +95,7 @@ function environmentColor(direction: d.v3f) { const night = std.mix(d.vec3f(0.006, 0.005, 0.008), d.vec3f(0.033, 0.018, 0.034), skyBlend); const ground = std.mix(d.vec3f(0.004, 0.004, 0.005), d.vec3f(0.024, 0.014, 0.019), groundBlend); let color = std.mix(ground, night, std.smoothstep(-0.12, 0.12, direction.y)); + color = std.mix(color, lowerClouds(direction), std.smoothstep(0.02, 0.72, -direction.y)); const clouds = cloudMap(direction); const cloudTint = std.mix(d.vec3f(0.2, 0.1, 0.17), d.vec3f(0.72, 0.38, 0.54), clouds); From c004ea369517ca32c3261b323d7a022a9fb2ee30 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Thu, 30 Apr 2026 15:12:28 +0200 Subject: [PATCH 15/24] Smooth area light spherical clouds --- .../rendering/area-light/environment.ts | 55 ++++--------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts index a6fe91d644..0e213011e1 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -49,57 +49,24 @@ function glow(direction: d.v3f, source: d.v3f, color: d.v3f, power: number, stre return color * std.max(std.dot(direction, std.normalize(source)), 0) ** power * strength; } -function cloudMap(direction: d.v3f) { +function cloudDensity(direction: d.v3f) { 'use gpu'; - const p = direction * 1.35 + d.vec3f(2.1, -1.4, 4.7); + const p = direction * 1.28 + d.vec3f(2.1, -1.4, 4.7); const warp = d.vec3f(fbm(p + 8.3), fbm(p - 5.6), fbm(p + d.vec3f(-2.2, 4.1, 7.5))) - 0.5; - const cover = fbm(p + warp * 0.85); - const lowerSky = std.smoothstep(-0.18, 0.45, direction.y); - const fadeToZenith = 1 - std.smoothstep(0.52, 0.92, direction.y); + const body = std.smoothstep(0.26, 0.76, fbm(p + warp * 0.9)); + const wisps = std.smoothstep(0.44, 0.86, fbm(p * 2.35 + warp * 0.65 + 6.2)); + const verticalEase = 0.78 + (1 - std.abs(direction.y)) * 0.22; - return std.smoothstep(0.3, 0.7, cover) * lowerSky * fadeToZenith; -} - -function lowerClouds(direction: d.v3f) { - 'use gpu'; - const cloudDirection = std.normalize( - d.vec3f(direction.x, -direction.y * 0.24 + 0.34, direction.z), - ); - const p = cloudDirection * 1.25 + d.vec3f(-4.8, 2.6, -1.7); - const warp = d.vec3f(fbm(p - 9.4), fbm(p + 3.7), fbm(p + d.vec3f(5.1, -2.8, 6.3))) - 0.5; - const clouds = std.smoothstep(0.34, 0.82, fbm(p + warp * 0.75)); - let color = std.mix(d.vec3f(0.007, 0.006, 0.011), d.vec3f(0.28, 0.11, 0.22), clouds * 0.72); - - color += glow( - cloudDirection, - d.vec3f(-0.36, 0.46, 0.82), - d.vec3f(0.72, 0.2, 0.44), - d.f32(10), - 0.16, - ); - color += glow( - cloudDirection, - d.vec3f(-0.2, -0.02, 0.98), - d.vec3f(1, 0.34, 0.08), - d.f32(16), - 0.08, - ); - - return color; + return std.clamp((body * 0.78 + wisps * 0.22) * verticalEase, 0, 1); } function environmentColor(direction: d.v3f) { 'use gpu'; - const skyBlend = std.smoothstep(-0.28, 0.85, direction.y); - const groundBlend = std.smoothstep(-1, 0.08, direction.y); - const night = std.mix(d.vec3f(0.006, 0.005, 0.008), d.vec3f(0.033, 0.018, 0.034), skyBlend); - const ground = std.mix(d.vec3f(0.004, 0.004, 0.005), d.vec3f(0.024, 0.014, 0.019), groundBlend); - let color = std.mix(ground, night, std.smoothstep(-0.12, 0.12, direction.y)); - color = std.mix(color, lowerClouds(direction), std.smoothstep(0.02, 0.72, -direction.y)); - - const clouds = cloudMap(direction); - const cloudTint = std.mix(d.vec3f(0.2, 0.1, 0.17), d.vec3f(0.72, 0.38, 0.54), clouds); - color = std.mix(color, cloudTint, clouds * 0.56); + const vertical = direction.y * 0.5 + 0.5; + const shell = std.mix(d.vec3f(0.018, 0.01, 0.024), d.vec3f(0.041, 0.023, 0.045), vertical); + const clouds = cloudDensity(direction); + const cloudTint = std.mix(d.vec3f(0.12, 0.055, 0.11), d.vec3f(0.68, 0.34, 0.52), clouds); + let color = std.mix(shell, cloudTint, clouds * 0.58); const horizonHaze = 1 - std.smoothstep(0.02, 0.36, std.abs(direction.y + 0.03)); color += d.vec3f(0.16, 0.045, 0.085) * horizonHaze * 0.16; From fbf0cee7c0baaa7dc5d37db3660fc1442fd88218 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Mon, 4 May 2026 19:02:57 +0200 Subject: [PATCH 16/24] fixes --- .../rendering/area-light/environment.ts | 7 +- .../examples/rendering/area-light/geometry.ts | 148 +++++++++--------- .../examples/rendering/area-light/index.ts | 22 ++- .../examples/rendering/area-light/shaders.ts | 101 ++++++------ 4 files changed, 141 insertions(+), 137 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts index 0e213011e1..c22e08c0da 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -2,7 +2,7 @@ import { perlin3d } from '@typegpu/noise'; import tgpu, { d, std } from 'typegpu'; export const ENVIRONMENT_SIZE = 256; -export const ENVIRONMENT_MIP_LEVELS = Math.floor(Math.log2(ENVIRONMENT_SIZE)) + 1; +const ENVIRONMENT_EDGE_SCALE = ENVIRONMENT_SIZE / (ENVIRONMENT_SIZE - 1); export const environmentGenerationLayout = tgpu.bindGroupLayout({ face: { uniform: d.u32 }, @@ -95,6 +95,9 @@ export const environmentFragment = tgpu.fragmentFn({ out: d.vec4f, })(({ uv }) => { 'use gpu'; - const direction = cubeFaceDirection(environmentGenerationLayout.$.face, uv); + const direction = cubeFaceDirection( + environmentGenerationLayout.$.face, + uv * ENVIRONMENT_EDGE_SCALE, + ); return d.vec4f(environmentColor(direction), 1); }); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index 9ccfb4be6b..cf5fefcf2c 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -1,11 +1,8 @@ -import type { common, d } from 'typegpu'; +import { d, std, type common } from 'typegpu'; import type { Lights, Vertex } from './schemas.ts'; -type Vec2 = [number, number]; -type Vec3 = [number, number, number]; - interface Material { - albedo: Vec3; + albedo: d.v3f; roughness: number; metallic: number; wetness: number; @@ -23,53 +20,43 @@ const BOX_VERTICES = QUAD_VERTICES * 6; const SPHERE_VERTICES = SPHERE_SEGMENTS * SPHERE_RINGS * QUAD_VERTICES; const SCENE_VERTEX_COUNT = QUAD_VERTICES * 2 + BOX_VERTICES * 3 + SPHERE_VERTICES * 4; -const v3 = (x: number, y: number, z: number): Vec3 => [x, y, z]; -const add = (a: Vec3, b: Vec3): Vec3 => [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; -const sub = (a: Vec3, b: Vec3): Vec3 => [a[0] - b[0], a[1] - b[1], a[2] - b[2]]; -const scale = (v: Vec3, by: number): Vec3 => [v[0] * by, v[1] * by, v[2] * by]; - -function normalize(v: Vec3): Vec3 { - const length = Math.hypot(v[0], v[1], v[2]); - return length > 0 ? scale(v, 1 / length) : v3(0, 1, 0); -} - -function material(albedo: Vec3, roughness: number, metallic = 0, wetness = 0): Material { +function material(albedo: d.v3f, roughness: number, metallic = 0, wetness = 0): Material { return { albedo, roughness, metallic, wetness }; } const materials = { - floor: material(v3(0.026, 0.022, 0.026), 0.1, 0, 1), - backdrop: material(v3(0.026, 0.019, 0.028), 0.42), - plinth: material(v3(0.052, 0.04, 0.046), 0.14), - block: material(v3(0.03, 0.024, 0.032), 0.18), - gold: material(v3(1, 0.62, 0.18), 0.18, 0.55), - ceramic: material(v3(0.2, 0.17, 0.17), 0.16), - plastic: material(v3(0.045, 0.028, 0.075), 0.16), + floor: material(d.vec3f(0.026, 0.022, 0.026), 0.1, 0, 1), + backdrop: material(d.vec3f(0.026, 0.019, 0.028), 0.42), + plinth: material(d.vec3f(0.052, 0.04, 0.046), 0.14), + block: material(d.vec3f(0.03, 0.024, 0.032), 0.18), + gold: material(d.vec3f(1, 0.62, 0.18), 0.18, 0.55), + ceramic: material(d.vec3f(0.2, 0.17, 0.17), 0.16), + plastic: material(d.vec3f(0.045, 0.028, 0.075), 0.16), } satisfies Record; export const initialLights = [ { - center: v3(0, 3.05, -0.55), - dirX: v3(1, 0, 0), - dirY: v3(0, 0, 1), - halfSize: [1.25, 0.75] satisfies Vec2, - color: v3(1, 0.26, 0.62), + center: d.vec3f(0, 3.05, -0.55), + dirX: d.vec3f(1, 0, 0), + dirY: d.vec3f(0, 0, 1), + halfSize: d.vec2f(1.25, 0.75), + color: d.vec3f(1, 0.26, 0.62), intensity: 8.2, }, { - center: v3(-3.4, 1.6, 1.8), - dirX: v3(0, 0, 1), - dirY: v3(0, 1, 0), - halfSize: [0.7, 0.95] satisfies Vec2, - color: v3(1, 0.48, 0.16), + center: d.vec3f(-3.4, 1.6, 1.8), + dirX: d.vec3f(0, 0, 1), + dirY: d.vec3f(0, 1, 0), + halfSize: d.vec2f(0.7, 0.95), + color: d.vec3f(1, 0.48, 0.16), intensity: 4.4, }, { - center: v3(3.1, 1.45, -2.5), - dirX: v3(1, 0, 0), - dirY: v3(0, 1, 0), - halfSize: [0.55, 0.8] satisfies Vec2, - color: v3(0.56, 0.24, 1), + center: d.vec3f(3.1, 1.45, -2.5), + dirX: d.vec3f(1, 0, 0), + dirY: d.vec3f(0, 1, 0), + halfSize: d.vec2f(0.55, 0.8), + color: d.vec3f(0.56, 0.24, 1), intensity: 2.6, }, ] satisfies d.InferInput; @@ -86,7 +73,7 @@ function createMeshWriter(vertexCount: number) { let cursor = 0; - function vertex(position: Vec3, normal: Vec3, mat: Material) { + function vertex(position: d.v3f, normal: d.v3f, mat: Material) { const vecOffset = cursor * 3; data.position.set(position, vecOffset); data.normal.set(normal, vecOffset); @@ -110,16 +97,16 @@ type MeshWriter = ReturnType; function pushQuad( mesh: MeshWriter, - center: Vec3, - axisU: Vec3, - axisV: Vec3, - normal: Vec3, + center: d.v3f, + axisU: d.v3f, + axisV: d.v3f, + normal: d.v3f, mat: Material, ) { - const p0 = sub(sub(center, axisU), axisV); - const p1 = sub(add(center, axisU), axisV); - const p2 = add(add(center, axisU), axisV); - const p3 = add(sub(center, axisU), axisV); + const p0 = center.sub(axisU).sub(axisV); + const p1 = center.add(axisU).sub(axisV); + const p2 = center.add(axisU).add(axisV); + const p3 = center.sub(axisU).add(axisV); mesh.vertex(p0, normal, mat); mesh.vertex(p1, normal, mat); @@ -129,31 +116,30 @@ function pushQuad( mesh.vertex(p3, normal, mat); } -function pushBox(mesh: MeshWriter, center: Vec3, halfExtents: Vec3, mat: Material) { - const [x, y, z] = center; +function pushBox(mesh: MeshWriter, center: d.v3f, halfExtents: d.v3f, mat: Material) { const [hx, hy, hz] = halfExtents; - const face = (offset: Vec3, axisU: Vec3, axisV: Vec3, normal: Vec3) => - pushQuad(mesh, v3(x + offset[0], y + offset[1], z + offset[2]), axisU, axisV, normal, mat); - - face(v3(0, hy, 0), v3(hx, 0, 0), v3(0, 0, -hz), v3(0, 1, 0)); - face(v3(0, -hy, 0), v3(hx, 0, 0), v3(0, 0, hz), v3(0, -1, 0)); - face(v3(0, 0, hz), v3(hx, 0, 0), v3(0, hy, 0), v3(0, 0, 1)); - face(v3(0, 0, -hz), v3(hx, 0, 0), v3(0, hy, 0), v3(0, 0, -1)); - face(v3(-hx, 0, 0), v3(0, 0, hz), v3(0, hy, 0), v3(-1, 0, 0)); - face(v3(hx, 0, 0), v3(0, 0, hz), v3(0, hy, 0), v3(1, 0, 0)); + const face = (offset: d.v3f, axisU: d.v3f, axisV: d.v3f, normal: d.v3f) => + pushQuad(mesh, center.add(offset), axisU, axisV, normal, mat); + + face(d.vec3f(0, hy, 0), d.vec3f(hx, 0, 0), d.vec3f(0, 0, -hz), d.vec3f(0, 1, 0)); + face(d.vec3f(0, -hy, 0), d.vec3f(hx, 0, 0), d.vec3f(0, 0, hz), d.vec3f(0, -1, 0)); + face(d.vec3f(0, 0, hz), d.vec3f(hx, 0, 0), d.vec3f(0, hy, 0), d.vec3f(0, 0, 1)); + face(d.vec3f(0, 0, -hz), d.vec3f(hx, 0, 0), d.vec3f(0, hy, 0), d.vec3f(0, 0, -1)); + face(d.vec3f(-hx, 0, 0), d.vec3f(0, 0, hz), d.vec3f(0, hy, 0), d.vec3f(-1, 0, 0)); + face(d.vec3f(hx, 0, 0), d.vec3f(0, 0, hz), d.vec3f(0, hy, 0), d.vec3f(1, 0, 0)); } -function spherePoint(center: Vec3, radius: number, u: number, v: number): [Vec3, Vec3] { +function spherePoint(center: d.v3f, radius: number, u: number, v: number): [d.v3f, d.v3f] { const theta = v * Math.PI; const phi = u * Math.PI * 2; - const normal = normalize( - v3(Math.sin(theta) * Math.cos(phi), Math.cos(theta), Math.sin(theta) * Math.sin(phi)), + const normal = std.normalize( + d.vec3f(Math.sin(theta) * Math.cos(phi), Math.cos(theta), Math.sin(theta) * Math.sin(phi)), ); - return [add(center, scale(normal, radius)), normal]; + return [center.add(normal.mul(radius)), normal]; } -function pushSphere(mesh: MeshWriter, center: Vec3, radius: number, mat: Material) { +function pushSphere(mesh: MeshWriter, center: d.v3f, radius: number, mat: Material) { for (let y = 0; y < SPHERE_RINGS; y++) { const v0 = y / SPHERE_RINGS; const v1 = (y + 1) / SPHERE_RINGS; @@ -167,11 +153,11 @@ function pushSphere(mesh: MeshWriter, center: Vec3, radius: number, mat: Materia const [d, dn] = spherePoint(center, radius, u1, v0); mesh.vertex(a, an, mat); - mesh.vertex(b, bn, mat); mesh.vertex(c, cn, mat); + mesh.vertex(b, bn, mat); mesh.vertex(a, an, mat); - mesh.vertex(c, cn, mat); mesh.vertex(d, dn, mat); + mesh.vertex(c, cn, mat); } } } @@ -179,17 +165,31 @@ function pushSphere(mesh: MeshWriter, center: Vec3, radius: number, mat: Materia export function createSceneMesh(): SceneMesh { const mesh = createMeshWriter(SCENE_VERTEX_COUNT); - pushQuad(mesh, v3(0, 0, 0), v3(5.8, 0, 0), v3(0, 0, -4.9), v3(0, 1, 0), materials.floor); - pushQuad(mesh, v3(0, 1.3, -3.3), v3(4.2, 0, 0), v3(0, 1.3, 0), v3(0, 0, 1), materials.backdrop); + pushQuad( + mesh, + d.vec3f(0, 0, 0), + d.vec3f(5.8, 0, 0), + d.vec3f(0, 0, -4.9), + d.vec3f(0, 1, 0), + materials.floor, + ); + pushQuad( + mesh, + d.vec3f(0, 1.3, -3.3), + d.vec3f(4.2, 0, 0), + d.vec3f(0, 1.3, 0), + d.vec3f(0, 0, 1), + materials.backdrop, + ); - pushBox(mesh, v3(0, 0.08, -0.7), v3(2.55, 0.08, 1.25), materials.plinth); - pushBox(mesh, v3(-2.55, 0.22, 0.9), v3(0.55, 0.22, 0.55), materials.block); - pushBox(mesh, v3(2.25, 0.14, 0.75), v3(0.65, 0.14, 0.45), materials.plinth); + pushBox(mesh, d.vec3f(0, 0.08, -0.7), d.vec3f(2.55, 0.08, 1.25), materials.plinth); + pushBox(mesh, d.vec3f(-2.55, 0.22, 0.9), d.vec3f(0.55, 0.22, 0.55), materials.block); + pushBox(mesh, d.vec3f(2.25, 0.14, 0.75), d.vec3f(0.65, 0.14, 0.45), materials.plinth); - pushSphere(mesh, v3(-1.25, 0.88, -1.1), 0.72, materials.gold); - pushSphere(mesh, v3(0.3, 0.54, 0.35), 0.38, materials.ceramic); - pushSphere(mesh, v3(1.25, 0.72, -0.45), 0.56, materials.plastic); - pushSphere(mesh, v3(-2.55, 0.92, 0.9), 0.48, materials.plastic); + pushSphere(mesh, d.vec3f(-1.25, 0.88, -1.1), 0.72, materials.gold); + pushSphere(mesh, d.vec3f(0.3, 0.54, 0.35), 0.38, materials.ceramic); + pushSphere(mesh, d.vec3f(1.25, 0.72, -0.45), 0.56, materials.plastic); + pushSphere(mesh, d.vec3f(-2.55, 0.92, 0.9), 0.48, materials.plastic); return { vertexCount: mesh.vertexCount, data: mesh.data }; } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 1c5c03da40..daef49d0bb 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -1,8 +1,8 @@ +import { perlin3d } from '@typegpu/noise'; import tgpu, { common, d } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; import { - ENVIRONMENT_MIP_LEVELS, ENVIRONMENT_SIZE, environmentFragment, environmentGenerationLayout, @@ -33,10 +33,10 @@ const DISCO_TRANSITION_MS = 1600; const DISCO_HUE_SPEED = 0.00008; const INITIAL_PARAMS = { exposure: 1.12, - environmentIntensity: 0.42, + environmentIntensity: 0.25, diffuseIblStrength: 0.06, specularIblStrength: 0.95, - wetness: 0.42, + wetness: 0.12, time: 0, } satisfies d.InferInput; @@ -44,6 +44,7 @@ const root = await tgpu.init(); const canvas = document.querySelector('canvas') as HTMLCanvasElement; const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); +const perlinCache = perlin3d.staticCache({ root, size: d.vec3u(128, 128, 128) }); type LightIndex = 0 | 1 | 2; const mesh = createSceneMesh(); @@ -78,7 +79,6 @@ const environmentTexture = root .createTexture({ size: [ENVIRONMENT_SIZE, ENVIRONMENT_SIZE, 6], format: 'rgba8unorm', - mipLevelCount: ENVIRONMENT_MIP_LEVELS, }) .$usage('sampled', 'render'); @@ -86,7 +86,7 @@ const environmentFaceUniform = root.createUniform(d.u32); const environmentGenerationBindGroup = root.createBindGroup(environmentGenerationLayout, { face: environmentFaceUniform.buffer, }); -const environmentPipeline = root.createRenderPipeline({ +const environmentPipeline = root.pipe(perlinCache.inject()).createRenderPipeline({ vertex: environmentVertex, fragment: environmentFragment, targets: { format: 'rgba8unorm' }, @@ -95,7 +95,6 @@ const environmentFaceViews = Array.from({ length: 6 }, (_, face) => environmentTexture.createView('render', { baseArrayLayer: face, arrayLayerCount: 1, - mipLevelCount: 1, }), ); @@ -110,12 +109,10 @@ environmentFaceViews.forEach((view, face) => { }) .draw(3); }); -environmentTexture.generateMipmaps(); const environmentSampler = root.createSampler({ magFilter: 'linear', minFilter: 'linear', - mipmapFilter: 'linear', }); const environmentBindGroup = root.createBindGroup(environmentLayout, { @@ -154,9 +151,9 @@ let discoStartedAt = performance.now(); let previousFrameTime = discoStartedAt; const baseLightColors = [ - d.vec3f(...initialLights[0].color), - d.vec3f(...initialLights[1].color), - d.vec3f(...initialLights[2].color), + d.vec3f(initialLights[0].color), + d.vec3f(initialLights[1].color), + d.vec3f(initialLights[2].color), ] as const; const baseLightIntensities = new Float32Array(initialLights.map((light) => light.intensity)); const discoColors = [d.vec3f(), d.vec3f(), d.vec3f()] as const; @@ -373,7 +370,7 @@ export const controls = defineControls({ 'sky glow': { initial: INITIAL_PARAMS.environmentIntensity, min: 0, - max: 2, + max: 0.5, step: 0.01, onSliderChange: (environmentIntensity) => { skyGlow = environmentIntensity; @@ -428,5 +425,6 @@ export function onCleanup() { resizeObserver.disconnect(); colorTexture.destroy(); depthTexture.destroy(); + perlinCache.destroy(); root.destroy(); } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index e9084d0cfc..1a91c56b20 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,41 +1,39 @@ import tgpu, { d, std } from 'typegpu'; -import { perlin3d } from '@typegpu/noise'; -import { ENVIRONMENT_MIP_LEVELS } from './environment.ts'; import { evaluateLtcAreaLight, ltcUv, sampleLtcAmplitude, sampleLtcMatrix } from './ltc.ts'; import { environmentLayout, LIGHT_COUNT, sceneLayout, Vertex, vertexLayout } from './schemas.ts'; export { vertexLayout }; const PI = Math.PI; - -function saturate(value: number) { - 'use gpu'; - return std.clamp(value, 0, 1); -} +const SCALAR_ENVIRONMENT_LUMA = 0.085; function fresnelSchlick(cosTheta: number, f0: d.v3f) { 'use gpu'; - return f0 + (1 - f0) * (1 - saturate(cosTheta)) ** 5; + return f0 + (1 - f0) * (1 - std.saturate(cosTheta)) ** 5; } function fresnelSchlickRoughness(cosTheta: number, f0: d.v3f, roughness: number) { 'use gpu'; const roughF0 = std.max(d.vec3f(1 - roughness), f0); - return f0 + (roughF0 - f0) * (1 - saturate(cosTheta)) ** 5; + return f0 + (roughF0 - f0) * (1 - std.saturate(cosTheta)) ** 5; } -function sampleEnvironment(direction: d.v3f, roughness: number) { +function sampleSkyEnvironment(direction: d.v3f) { 'use gpu'; - const lod = std.clamp(roughness, d.f32(0), d.f32(1)) * d.f32(ENVIRONMENT_MIP_LEVELS - 1); const sample = std.textureSampleLevel( environmentLayout.$.environmentMap, environmentLayout.$.environmentSampler, std.normalize(direction), - lod, + 0, ); return sample.rgb * sceneLayout.$.params.environmentIntensity; } +function environmentScalar() { + 'use gpu'; + return sceneLayout.$.params.environmentIntensity * SCALAR_ENVIRONMENT_LUMA; +} + function tonemap(color: d.v3f) { 'use gpu'; const exposed = color * sceneLayout.$.params.exposure; @@ -48,36 +46,44 @@ function materialF0(albedo: d.v3f, metallic: number) { return std.mix(d.vec3f(0.04), albedo, metallic); } -function noise01(p: d.v3f) { +function waveSlope( + xz: d.v2f, + direction: d.v2f, + frequency: number, + speed: number, + amplitude: number, + t: number, +) { 'use gpu'; - return perlin3d.sample(p) * 0.5 + 0.5; + const dir = std.normalize(direction); + const phase = std.dot(xz, dir) * frequency + t * speed; + return dir * (std.cos(phase) * amplitude * frequency); } -function fbm(p: d.v3f) { +function waveGradient(worldPos: d.v3f, t: number) { 'use gpu'; + const xz = worldPos.xz; return ( - noise01(p) * 0.52 + - noise01(p * 2.15 + d.vec3f(8.4, -3.2, 5.7)) * 0.31 + - noise01(p * 4.4 + d.vec3f(-6.1, 4.8, 11.3)) * 0.17 + waveSlope(xz, d.vec2f(1, 0.18), 5.6, 1.15, 0.035, t) + + waveSlope(xz, d.vec2f(-0.42, 1), 4.1, -0.8, 0.028, t) + + waveSlope(xz, d.vec2f(0.73, -0.64), 8.2, 1.9, 0.012, t) + + waveSlope(xz, d.vec2f(-0.95, -0.28), 10.6, -2.2, 0.007, t) ); } +function waterFilm(worldPos: d.v3f, t: number) { + 'use gpu'; + const xz = worldPos.xz; + const shimmer = + std.sin(std.dot(xz, d.vec2f(1.4, 0.34)) + t * 0.62) * 0.5 + + std.sin(std.dot(xz, d.vec2f(-0.46, 1.25)) - t * 0.47) * 0.5; + return std.saturate(0.93 + shimmer * 0.06); +} + function waterNormal(N: d.v3f, worldPos: d.v3f, amount: number) { 'use gpu'; const t = sceneLayout.$.params.time; - const drift = - d.vec2f( - std.sin(t * 0.12) + std.sin(t * 0.047) * 0.5, - std.cos(t * 0.097) + std.sin(t * 0.059) * 0.4, - ) * 0.14; - const p = d.vec3f(worldPos.xz * 0.46 + drift, t * 0.18); - const center = fbm(p); - const perlinGradient = - d.vec2f(fbm(p + d.vec3f(0.14, 0, 0)) - center, fbm(p + d.vec3f(0, 0.14, 0)) - center) * 0.62; - const waveGradient = - d.vec2f(1.25, 0.42) * std.cos(std.dot(worldPos.xz, d.vec2f(1.25, 0.42)) + t * 0.68) * 0.015 + - d.vec2f(-0.66, 1.08) * std.cos(std.dot(worldPos.xz, d.vec2f(-0.66, 1.08)) - t * 0.52) * 0.013; - const gradient = perlinGradient + waveGradient; + const gradient = waveGradient(worldPos, t); const waterN = std.normalize(d.vec3f(std.neg(gradient.x), 1, std.neg(gradient.y))); return std.normalize(std.mix(N, waterN, amount)); @@ -94,7 +100,7 @@ function directAreaLighting( specularBoost: number, ) { 'use gpu'; - const uv = ltcUv(roughness, saturate(std.dot(N, V))); + const uv = ltcUv(roughness, std.saturate(std.dot(N, V))); const Minv = sampleLtcMatrix(uv); const brdf = sampleLtcAmplitude(uv); const fresnel = f0 * brdf.x + (1 - f0) * brdf.y; @@ -124,17 +130,14 @@ function environmentLighting( specularBoost: number, ) { 'use gpu'; - const NdotV = saturate(std.dot(N, V)); + const NdotV = std.saturate(std.dot(N, V)); + const env = environmentScalar(); const fresnel = fresnelSchlickRoughness(NdotV, f0, roughness); const diffuse = - (1 - fresnel) * - (1 - metallic) * - albedo * - sampleEnvironment(N, d.f32(1)) * - sceneLayout.$.params.diffuseIblStrength; + (1 - fresnel) * (1 - metallic) * albedo * env * sceneLayout.$.params.diffuseIblStrength; const specular = - sampleEnvironment(std.reflect(std.neg(V), N), roughness) * fresnelSchlick(NdotV, f0) * + env * (1 - roughness * 0.35) * sceneLayout.$.params.specularIblStrength * specularBoost; @@ -175,18 +178,18 @@ export const mainFragment = tgpu.fragmentFn({ roughness: d.f32, metallic: d.f32, wetness: d.f32, + frontFacing: d.builtin.frontFacing, }, out: d.vec4f, -})(({ worldPos, normal, albedo, roughness, metallic, wetness }) => { +})(({ worldPos, normal, albedo, roughness, metallic, wetness, frontFacing }) => { 'use gpu'; - const geometricN = std.normalize(normal); + const meshN = std.normalize(normal); + const geometricN = std.select(std.neg(meshN), meshN, frontFacing); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); - const water = wetness * sceneLayout.$.params.wetness * saturate(geometricN.y * 1.35); - const film = - water * - std.mix(0.96, 1, fbm(d.vec3f(worldPos.xz * 0.38 + 30.2, sceneLayout.$.params.time * 0.08))); - const wetSurface = saturate(film); - const N = waterNormal(geometricN, worldPos, water * 0.66); + const water = wetness * sceneLayout.$.params.wetness * std.saturate(geometricN.y * 1.35); + const film = water * waterFilm(worldPos, sceneLayout.$.params.time); + const wetSurface = std.saturate(film); + const N = waterNormal(geometricN, worldPos, std.saturate(water * 1.35)); const waterRoughness = std.mix(0.065, 0.032, water); const materialRoughness = std.clamp(std.mix(roughness, waterRoughness, wetSurface), 0.006, 1); const wetAlbedo = std.mix(albedo, albedo * 0.44, wetSurface); @@ -228,7 +231,7 @@ export const skyFragment = tgpu.fragmentFn({ const farView = camera.projectionInverse * d.vec4f(ndc, 1, 1); const farWorld = camera.viewInverse * d.vec4f(farView.xyz / farView.w, 1); const direction = std.normalize(farWorld.xyz - camera.position.xyz); - return d.vec4f(tonemap(sampleEnvironment(direction, d.f32(0))), 1); + return d.vec4f(tonemap(sampleSkyEnvironment(direction)), 1); }); export const lightVertex = tgpu.vertexFn({ @@ -236,7 +239,7 @@ export const lightVertex = tgpu.vertexFn({ out: { pos: d.builtin.position, color: d.vec3f }, })(({ vid }) => { 'use gpu'; - const lightIdx = d.u32(vid / d.u32(6)); + const lightIdx = std.floor(vid / 6); const corners = [ d.vec2f(-1, -1), d.vec2f(1, -1), From 24aa512586b11bf606b58671ee7f6b0997b53a13 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Tue, 5 May 2026 13:00:13 +0200 Subject: [PATCH 17/24] fixes --- .../rendering/area-light/environment.ts | 7 +- .../examples/rendering/area-light/index.ts | 229 +++++++++--------- .../src/examples/rendering/area-light/ltc.ts | 9 +- .../examples/rendering/area-light/shaders.ts | 52 +--- 4 files changed, 132 insertions(+), 165 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts index c22e08c0da..d64522347f 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -8,10 +8,7 @@ export const environmentGenerationLayout = tgpu.bindGroupLayout({ face: { uniform: d.u32 }, }); -const cubeFaceDirection = tgpu.fn( - [d.u32, d.vec2f], - d.vec3f, -)((face, uv) => { +function cubeFaceDirection(face: number, uv: d.v2f) { 'use gpu'; let direction = d.vec3f(1, -uv.y, -uv.x); @@ -28,7 +25,7 @@ const cubeFaceDirection = tgpu.fn( } return std.normalize(direction); -}); +} function noise01(p: d.v3f) { 'use gpu'; diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index daef49d0bb..db8fb8bdd5 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -1,5 +1,5 @@ import { perlin3d } from '@typegpu/noise'; -import tgpu, { common, d } from 'typegpu'; +import tgpu, { common, d, std, type AutoFragmentIn, type TgpuFragmentFn } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; import { @@ -19,14 +19,9 @@ import { sceneLayout, vertexLayout, } from './schemas.ts'; -import { - lightFragment, - lightVertex, - mainFragment, - mainVertex, - skyFragment, - skyVertex, -} from './shaders.ts'; +import { lightFragment, lightVertex, mainFragment, skyFragment, skyVertex } from './shaders.ts'; +import type { InferGPURecord } from '../../../../../../packages/typegpu/src/shared/repr.ts'; +import type { AnyFragmentInputBuiltin } from '../../../../../../packages/typegpu/src/builtin.ts'; const SAMPLE_COUNT = 4; const DISCO_TRANSITION_MS = 1600; @@ -45,7 +40,6 @@ const canvas = document.querySelector('canvas') as HTMLCanvasElement; const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); const perlinCache = perlin3d.staticCache({ root, size: d.vec3u(128, 128, 128) }); -type LightIndex = 0 | 1 | 2; const mesh = createSceneMesh(); const vertexBuffer = root @@ -86,29 +80,27 @@ const environmentFaceUniform = root.createUniform(d.u32); const environmentGenerationBindGroup = root.createBindGroup(environmentGenerationLayout, { face: environmentFaceUniform.buffer, }); + const environmentPipeline = root.pipe(perlinCache.inject()).createRenderPipeline({ vertex: environmentVertex, fragment: environmentFragment, targets: { format: 'rgba8unorm' }, }); -const environmentFaceViews = Array.from({ length: 6 }, (_, face) => - environmentTexture.createView('render', { - baseArrayLayer: face, - arrayLayerCount: 1, - }), -); -environmentFaceViews.forEach((view, face) => { +for (let face = 0; face < 6; face++) { environmentFaceUniform.write(face); environmentPipeline .with(environmentGenerationBindGroup) .withColorAttachment({ - view, + view: environmentTexture.createView('render', { + baseArrayLayer: face, + arrayLayerCount: 1, + }), loadOp: 'clear', storeOp: 'store', }) .draw(3); -}); +} const environmentSampler = root.createSampler({ magFilter: 'linear', @@ -120,44 +112,67 @@ const environmentBindGroup = root.createBindGroup(environmentLayout, { environmentSampler, }); -const framebufferSize = () => [canvas.width, canvas.height] as [number, number]; - -function createColorTexture() { - return root - .createTexture({ - size: framebufferSize(), - format: presentationFormat, - sampleCount: SAMPLE_COUNT, - }) - .$usage('render'); +function createRenderTargets() { + const size = [canvas.width, canvas.height] as [number, number]; + + return { + color: root + .createTexture({ + size, + format: presentationFormat, + sampleCount: SAMPLE_COUNT, + }) + .$usage('render'), + depth: root + .createTexture({ + size, + format: 'depth24plus', + sampleCount: SAMPLE_COUNT, + }) + .$usage('render'), + }; } -function createDepthTexture() { - return root - .createTexture({ - size: framebufferSize(), - format: 'depth24plus', - sampleCount: SAMPLE_COUNT, - }) - .$usage('render'); +function destroyRenderTargets(renderTargets: ReturnType) { + renderTargets.color.destroy(); + renderTargets.depth.destroy(); } -let colorTexture = createColorTexture(); -let depthTexture = createDepthTexture(); +let targets = createRenderTargets(); let skyGlow = INITIAL_PARAMS.environmentIntensity; let discoEnabled = false; let discoMix = 0; let discoStartedAt = performance.now(); let previousFrameTime = discoStartedAt; -const baseLightColors = [ - d.vec3f(initialLights[0].color), - d.vec3f(initialLights[1].color), - d.vec3f(initialLights[2].color), -] as const; -const baseLightIntensities = new Float32Array(initialLights.map((light) => light.intensity)); -const discoColors = [d.vec3f(), d.vec3f(), d.vec3f()] as const; -const mixedLightColors = [d.vec3f(), d.vec3f(), d.vec3f()] as const; +const lightState = initialLights.map((light) => ({ + color: d.vec3f(light.color), + intensity: light.intensity, +})); + +type test = TgpuFragmentFn< + { + worldPos: d.Vec3f; + normal: d.Vec3f; + albedo: d.Vec3f; + roughness: d.F32; + metallic: d.F32; + wetness: d.F32; + } & Record, + d.Vec4f +>; + +type test2 = TgpuFragmentFn< + { + worldPos: d.Vec3f; + normal: d.Vec3f; + albedo: d.Vec3f; + roughness: d.F32; + metallic: d.F32; + wetness: d.F32; + }, + d.Vec4f +>; const skyPipeline = root.createRenderPipeline({ vertex: skyVertex, @@ -168,7 +183,17 @@ const skyPipeline = root.createRenderPipeline({ const scenePipeline = root.createRenderPipeline({ attribs: vertexLayout.attrib, - vertex: mainVertex, + vertex: ({ position, normal, albedo, roughness, metallic, wetness }) => { + 'use gpu'; + const camera = sceneLayout.$.camera; + return { + $position: camera.projection * camera.view * d.vec4f(position, 1), + worldPos: position, + normal, + albedo, + material: d.vec3f(roughness, metallic, wetness), + }; + }, fragment: mainFragment, targets: { format: presentationFormat }, depthStencil: { format: 'depth24plus', depthWriteEnabled: true, depthCompare: 'less' }, @@ -198,32 +223,16 @@ const { cleanupCamera } = setupOrbitCamera( ); const resizeObserver = new ResizeObserver(() => { - colorTexture.destroy(); - depthTexture.destroy(); - colorTexture = createColorTexture(); - depthTexture = createDepthTexture(); + destroyRenderTargets(targets); + targets = createRenderTargets(); }); resizeObserver.observe(canvas); let animationFrameId: number; -function clamp01(value: number) { - return Math.min(Math.max(value, 0), 1); -} - -function smoothstep(value: number) { - return value * value * (3 - 2 * value); -} - -function mixColor(target: d.v3f, from: d.v3f, to: d.v3f, amount: number) { - target[0] = from[0] + (to[0] - from[0]) * amount; - target[1] = from[1] + (to[1] - from[1]) * amount; - target[2] = from[2] + (to[2] - from[2]) * amount; -} - -function writeHueColor(target: d.v3f, hue: number) { +function hueColor(hue: number) { const h = (((hue % 1) + 1) % 1) * 6; - const x = 1 - Math.abs((h % 2) - 1); + const x = 1 - std.abs((h % 2) - 1); const [r, g, b] = h < 1 ? [1, x, 0] @@ -237,41 +246,30 @@ function writeHueColor(target: d.v3f, hue: number) { ? [x, 0, 1] : [1, 0, x]; - target[0] = r; - target[1] = g; - target[2] = b; + return d.vec3f(r, g, b); } -function patchLight(index: LightIndex, color: d.v3f, strength = 1) { - const update = { - color, - intensity: baseLightIntensities[index] * strength, - }; - - if (index === 0) { - lightsUniform.patch({ 0: update }); - } else if (index === 1) { - lightsUniform.patch({ 1: update }); - } else { - lightsUniform.patch({ 2: update }); - } +function patchLight(index: number, color = lightState[index].color, strength = 1) { + lightsUniform.patch({ + [index]: { + color, + intensity: lightState[index].intensity * strength, + }, + }); } -function setLightColor(index: LightIndex, color: d.v3f) { - const target = baseLightColors[index]; - target[0] = color[0]; - target[1] = color[1]; - target[2] = color[2]; +function setLightColor(index: number, color: d.v3f) { + lightState[index].color = d.vec3f(color); if (!discoEnabled && discoMix === 0) { - patchLight(index, target); + patchLight(index); } } -function setLightIntensity(index: LightIndex, intensity: number) { - baseLightIntensities[index] = intensity; +function setLightIntensity(index: number, intensity: number) { + lightState[index].intensity = intensity; if (!discoEnabled && discoMix === 0) { - patchLight(index, baseLightColors[index]); + patchLight(index); } } @@ -280,19 +278,25 @@ function updateDisco(time: number) { return; } - const delta = Math.min(time - previousFrameTime, 64); + const delta = std.min(time - previousFrameTime, 64); const targetMix = discoEnabled ? 1 : 0; - discoMix = clamp01(discoMix + Math.sign(targetMix - discoMix) * (delta / DISCO_TRANSITION_MS)); + discoMix = std.clamp( + discoMix + std.sign(targetMix - discoMix) * (delta / DISCO_TRANSITION_MS), + 0, + 1, + ); - const blend = smoothstep(discoMix); + const blend = std.smoothstep(0, 1, discoMix); const t = (time - discoStartedAt) * DISCO_HUE_SPEED; paramsUniform.patch({ environmentIntensity: skyGlow * (1 - blend) }); - for (const [index, color] of discoColors.entries()) { - writeHueColor(color, t + index / discoColors.length); - mixColor(mixedLightColors[index], baseLightColors[index], color, blend); - const pulse = smoothstep((Math.sin(time * 0.0015 + index * 2.2) + 1) * 0.5); - patchLight(index as LightIndex, mixedLightColors[index], 1 + (pulse - 1) * blend); + for (const [index, light] of lightState.entries()) { + const pulse = std.smoothstep(0, 1, (std.sin(time * 0.0015 + index * 2.2) + 1) * 0.5); + patchLight( + index, + std.mix(light.color, hueColor(t + index / lightState.length), blend), + 1 + (pulse - 1) * blend, + ); } } @@ -305,7 +309,7 @@ function render(time: number) { .with(sceneBindGroup) .with(environmentBindGroup) .withColorAttachment({ - view: colorTexture, + view: targets.color, clearValue: [0.014, 0.012, 0.016, 1], loadOp: 'clear', storeOp: 'store', @@ -318,12 +322,12 @@ function render(time: number) { .with(environmentBindGroup) .with(vertexLayout, vertexBuffer) .withColorAttachment({ - view: colorTexture, + view: targets.color, loadOp: 'load', storeOp: 'store', }) .withDepthStencilAttachment({ - view: depthTexture, + view: targets.depth, depthClearValue: 1, depthLoadOp: 'clear', depthStoreOp: 'store', @@ -333,13 +337,13 @@ function render(time: number) { lightPipeline .with(sceneBindGroup) .withColorAttachment({ - view: colorTexture, + view: targets.color, resolveTarget: context, loadOp: 'load', storeOp: 'store', }) .withDepthStencilAttachment({ - view: depthTexture, + view: targets.depth, depthLoadOp: 'load', depthStoreOp: 'store', }) @@ -374,7 +378,9 @@ export const controls = defineControls({ step: 0.01, onSliderChange: (environmentIntensity) => { skyGlow = environmentIntensity; - paramsUniform.patch({ environmentIntensity: skyGlow * (1 - smoothstep(discoMix)) }); + paramsUniform.patch({ + environmentIntensity: skyGlow * (1 - std.smoothstep(0, 1, discoMix)), + }); }, }, 'shallow water': { @@ -392,7 +398,7 @@ export const controls = defineControls({ onSliderChange: (intensity) => setLightIntensity(0, intensity), }, 'key color': { - initial: baseLightColors[0], + initial: lightState[0].color, onColorChange: (color) => setLightColor(0, color), }, 'fill intensity': { @@ -403,7 +409,7 @@ export const controls = defineControls({ onSliderChange: (intensity) => setLightIntensity(1, intensity), }, 'fill color': { - initial: baseLightColors[1], + initial: lightState[1].color, onColorChange: (color) => setLightColor(1, color), }, 'rim intensity': { @@ -414,7 +420,7 @@ export const controls = defineControls({ onSliderChange: (intensity) => setLightIntensity(2, intensity), }, 'rim color': { - initial: baseLightColors[2], + initial: lightState[2].color, onColorChange: (color) => setLightColor(2, color), }, }); @@ -423,8 +429,7 @@ export function onCleanup() { cancelAnimationFrame(animationFrameId); cleanupCamera(); resizeObserver.disconnect(); - colorTexture.destroy(); - depthTexture.destroy(); + destroyRenderTargets(targets); perlinCache.destroy(); root.destroy(); } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts index a9a24bca91..127da08982 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts @@ -45,7 +45,7 @@ export function sampleLtcAmplitude(uv: d.v2f) { return bilinearLut(ltcLayout.$.ltcAmp, uv); } -function integrateEdgeVec(v1: d.v3f, v2: d.v3f) { +function integrateEdge(v1: d.v3f, v2: d.v3f) { 'use gpu'; const x = std.dot(v1, v2); const y = std.abs(x); @@ -53,12 +53,7 @@ function integrateEdgeVec(v1: d.v3f, v2: d.v3f) { const b = 3.417594 + (4.1616724 + y) * y; const v = a / b; const thetaSinTheta = std.select(0.5 * std.inverseSqrt(std.max(1 - x * x, 1e-7)) - v, v, x > 0); - return std.cross(v1, v2) * thetaSinTheta; -} - -function integrateEdge(v1: d.v3f, v2: d.v3f) { - 'use gpu'; - return integrateEdgeVec(v1, v2).z; + return (std.cross(v1, v2) * thetaSinTheta).z; } function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index 1a91c56b20..0b49115203 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -29,11 +29,6 @@ function sampleSkyEnvironment(direction: d.v3f) { return sample.rgb * sceneLayout.$.params.environmentIntensity; } -function environmentScalar() { - 'use gpu'; - return sceneLayout.$.params.environmentIntensity * SCALAR_ENVIRONMENT_LUMA; -} - function tonemap(color: d.v3f) { 'use gpu'; const exposed = color * sceneLayout.$.params.exposure; @@ -41,11 +36,6 @@ function tonemap(color: d.v3f) { return std.pow(std.max(mapped, d.vec3f(0)), d.vec3f(1 / 2.2)); } -function materialF0(albedo: d.v3f, metallic: number) { - 'use gpu'; - return std.mix(d.vec3f(0.04), albedo, metallic); -} - function waveSlope( xz: d.v2f, direction: d.v2f, @@ -131,7 +121,7 @@ function environmentLighting( ) { 'use gpu'; const NdotV = std.saturate(std.dot(N, V)); - const env = environmentScalar(); + const env = sceneLayout.$.params.environmentIntensity * SCALAR_ENVIRONMENT_LUMA; const fresnel = fresnelSchlickRoughness(NdotV, f0, roughness); const diffuse = (1 - fresnel) * (1 - metallic) * albedo * env * sceneLayout.$.params.diffuseIblStrength; @@ -145,44 +135,20 @@ function environmentLighting( return diffuse + specular; } -export const mainVertex = tgpu.vertexFn({ - in: Vertex.propTypes, - out: { - pos: d.builtin.position, - worldPos: d.vec3f, - normal: d.vec3f, - albedo: d.vec3f, - roughness: d.f32, - metallic: d.f32, - wetness: d.f32, - }, -})(({ position, normal, albedo, roughness, metallic, wetness }) => { - 'use gpu'; - const camera = sceneLayout.$.camera; - return { - pos: camera.projection * camera.view * d.vec4f(position, 1), - worldPos: position, - normal, - albedo, - roughness, - metallic, - wetness, - }; -}); - export const mainFragment = tgpu.fragmentFn({ in: { worldPos: d.vec3f, normal: d.vec3f, albedo: d.vec3f, - roughness: d.f32, - metallic: d.f32, - wetness: d.f32, + material: d.vec3f, frontFacing: d.builtin.frontFacing, }, out: d.vec4f, -})(({ worldPos, normal, albedo, roughness, metallic, wetness, frontFacing }) => { +})(({ worldPos, normal, albedo, material, frontFacing }) => { 'use gpu'; + const roughness = material.x; + const metallic = material.y; + const wetness = material.z; const meshN = std.normalize(normal); const geometricN = std.select(std.neg(meshN), meshN, frontFacing); const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); @@ -194,7 +160,11 @@ export const mainFragment = tgpu.fragmentFn({ const materialRoughness = std.clamp(std.mix(roughness, waterRoughness, wetSurface), 0.006, 1); const wetAlbedo = std.mix(albedo, albedo * 0.44, wetSurface); const specularBoost = 1 + film * 3.2; - const f0 = std.mix(materialF0(albedo, metallic), d.vec3f(0.08), wetSurface * (1 - metallic)); + const f0 = std.mix( + std.mix(d.vec3f(0.04), albedo, metallic), + d.vec3f(0.08), + wetSurface * (1 - metallic), + ); const direct = directAreaLighting( N, V, From 2fbfcf8a5c561bef23557cc4854507fdb84cb5d7 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Tue, 5 May 2026 13:36:25 +0200 Subject: [PATCH 18/24] refactor --- .../rendering/area-light/environment.ts | 17 +- .../examples/rendering/area-light/index.ts | 134 +++++---------- .../src/examples/rendering/area-light/ltc.ts | 64 +++---- .../examples/rendering/area-light/shaders.ts | 158 +++++++++--------- 4 files changed, 166 insertions(+), 207 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts index d64522347f..4b6453f977 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -41,9 +41,16 @@ function fbm(p: d.v3f) { ); } +const GLOWS = [ + { dir: d.vec3f(-0.36, 0.46, 0.82), tint: d.vec3f(0.76, 0.24, 0.46), power: 9, strength: 0.22 }, + { dir: d.vec3f(-0.68, 0.04, 0.73), tint: d.vec3f(1, 0.08, 0.58), power: 24, strength: 0.55 }, + { dir: d.vec3f(-0.2, -0.02, 0.98), tint: d.vec3f(1, 0.42, 0.08), power: 28, strength: 0.34 }, + { dir: d.vec3f(0.74, 0.03, -0.54), tint: d.vec3f(0.5, 0.2, 1), power: 34, strength: 0.22 }, +]; + function glow(direction: d.v3f, source: d.v3f, color: d.v3f, power: number, strength: number) { 'use gpu'; - return color * std.max(std.dot(direction, std.normalize(source)), 0) ** power * strength; + return color * std.max(std.dot(direction, std.normalize(source)), 0) ** d.f32(power) * strength; } function cloudDensity(direction: d.v3f) { @@ -67,10 +74,10 @@ function environmentColor(direction: d.v3f) { const horizonHaze = 1 - std.smoothstep(0.02, 0.36, std.abs(direction.y + 0.03)); color += d.vec3f(0.16, 0.045, 0.085) * horizonHaze * 0.16; - color += glow(direction, d.vec3f(-0.36, 0.46, 0.82), d.vec3f(0.76, 0.24, 0.46), d.f32(9), 0.22); - color += glow(direction, d.vec3f(-0.68, 0.04, 0.73), d.vec3f(1, 0.08, 0.58), d.f32(24), 0.55); - color += glow(direction, d.vec3f(-0.2, -0.02, 0.98), d.vec3f(1, 0.42, 0.08), d.f32(28), 0.34); - color += glow(direction, d.vec3f(0.74, 0.03, -0.54), d.vec3f(0.5, 0.2, 1), d.f32(34), 0.22); + + for (const g of tgpu.unroll(GLOWS)) { + color += glow(direction, g.dir, g.tint, g.power, g.strength); + } return std.clamp(color, d.vec3f(0), d.vec3f(1)); } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index db8fb8bdd5..716453bdc1 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -1,5 +1,5 @@ import { perlin3d } from '@typegpu/noise'; -import tgpu, { common, d, std, type AutoFragmentIn, type TgpuFragmentFn } from 'typegpu'; +import tgpu, { common, d, std } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; import { @@ -20,8 +20,6 @@ import { vertexLayout, } from './schemas.ts'; import { lightFragment, lightVertex, mainFragment, skyFragment, skyVertex } from './shaders.ts'; -import type { InferGPURecord } from '../../../../../../packages/typegpu/src/shared/repr.ts'; -import type { AnyFragmentInputBuiltin } from '../../../../../../packages/typegpu/src/builtin.ts'; const SAMPLE_COUNT = 4; const DISCO_TRANSITION_MS = 1600; @@ -150,30 +148,6 @@ const lightState = initialLights.map((light) => ({ intensity: light.intensity, })); -type test = TgpuFragmentFn< - { - worldPos: d.Vec3f; - normal: d.Vec3f; - albedo: d.Vec3f; - roughness: d.F32; - metallic: d.F32; - wetness: d.F32; - } & Record, - d.Vec4f ->; - -type test2 = TgpuFragmentFn< - { - worldPos: d.Vec3f; - normal: d.Vec3f; - albedo: d.Vec3f; - roughness: d.F32; - metallic: d.F32; - wetness: d.F32; - }, - d.Vec4f ->; - const skyPipeline = root.createRenderPipeline({ vertex: skyVertex, fragment: skyFragment, @@ -231,43 +205,25 @@ resizeObserver.observe(canvas); let animationFrameId: number; function hueColor(hue: number) { - const h = (((hue % 1) + 1) % 1) * 6; - const x = 1 - std.abs((h % 2) - 1); - const [r, g, b] = - h < 1 - ? [1, x, 0] - : h < 2 - ? [x, 1, 0] - : h < 3 - ? [0, 1, x] - : h < 4 - ? [0, x, 1] - : h < 5 - ? [x, 0, 1] - : [1, 0, x]; - - return d.vec3f(r, g, b); + const h = ((hue % 1) + 1) % 1; + const channel = (n: number) => { + const k = (n + h * 6) % 6; + return 1 - Math.max(0, Math.min(k, 4 - k, 1)); + }; + return d.vec3f(channel(5), channel(3), channel(1)); } function patchLight(index: number, color = lightState[index].color, strength = 1) { - lightsUniform.patch({ - [index]: { - color, - intensity: lightState[index].intensity * strength, - }, - }); + lightsUniform.patch({ [index]: { color, intensity: lightState[index].intensity * strength } }); } -function setLightColor(index: number, color: d.v3f) { - lightState[index].color = d.vec3f(color); - - if (!discoEnabled && discoMix === 0) { - patchLight(index); +function updateUserLight(index: number, patch: { color?: d.v3f; intensity?: number }) { + if (patch.color) { + lightState[index].color = d.vec3f(patch.color); + } + if (patch.intensity !== undefined) { + lightState[index].intensity = patch.intensity; } -} - -function setLightIntensity(index: number, intensity: number) { - lightState[index].intensity = intensity; if (!discoEnabled && discoMix === 0) { patchLight(index); } @@ -354,6 +310,34 @@ function render(time: number) { animationFrameId = requestAnimationFrame(render); +const LIGHTS = [ + { name: 'key', maxIntensity: 12 }, + { name: 'fill', maxIntensity: 12 }, + { name: 'rim', maxIntensity: 8 }, +] as const; + +const lightControls = Object.fromEntries( + LIGHTS.flatMap(({ name, maxIntensity }, i) => [ + [ + `${name} intensity`, + { + initial: initialLights[i].intensity, + min: 0, + max: maxIntensity, + step: 0.1, + onSliderChange: (intensity: number) => updateUserLight(i, { intensity }), + }, + ], + [ + `${name} color`, + { + initial: lightState[i].color, + onColorChange: (color: d.v3f) => updateUserLight(i, { color }), + }, + ], + ]), +); + export const controls = defineControls({ 'disco mode': { initial: false, @@ -390,39 +374,7 @@ export const controls = defineControls({ step: 0.01, onSliderChange: (wetness) => paramsUniform.patch({ wetness }), }, - 'key intensity': { - initial: initialLights[0].intensity, - min: 0, - max: 12, - step: 0.1, - onSliderChange: (intensity) => setLightIntensity(0, intensity), - }, - 'key color': { - initial: lightState[0].color, - onColorChange: (color) => setLightColor(0, color), - }, - 'fill intensity': { - initial: initialLights[1].intensity, - min: 0, - max: 12, - step: 0.1, - onSliderChange: (intensity) => setLightIntensity(1, intensity), - }, - 'fill color': { - initial: lightState[1].color, - onColorChange: (color) => setLightColor(1, color), - }, - 'rim intensity': { - initial: initialLights[2].intensity, - min: 0, - max: 8, - step: 0.1, - onSliderChange: (intensity) => setLightIntensity(2, intensity), - }, - 'rim color': { - initial: lightState[2].color, - onColorChange: (color) => setLightColor(2, color), - }, + ...lightControls, }); export function onCleanup() { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts index 127da08982..6175eb8753 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts @@ -45,15 +45,19 @@ export function sampleLtcAmplitude(uv: d.v2f) { return bilinearLut(ltcLayout.$.ltcAmp, uv); } -function integrateEdge(v1: d.v3f, v2: d.v3f) { +function integrateEdge(from: d.v3f, to: d.v3f) { 'use gpu'; - const x = std.dot(v1, v2); - const y = std.abs(x); - const a = 0.8543985 + (0.4965155 + 0.0145206 * y) * y; - const b = 3.417594 + (4.1616724 + y) * y; - const v = a / b; - const thetaSinTheta = std.select(0.5 * std.inverseSqrt(std.max(1 - x * x, 1e-7)) - v, v, x > 0); - return (std.cross(v1, v2) * thetaSinTheta).z; + const cosAngle = std.dot(from, to); + const absCos = std.abs(cosAngle); + const numer = 0.8543985 + (0.4965155 + 0.0145206 * absCos) * absCos; + const denom = 3.417594 + (4.1616724 + absCos) * absCos; + const approx = numer / denom; + const thetaSinTheta = std.select( + 0.5 * std.inverseSqrt(std.max(1 - cosAngle * cosAngle, 1e-7)) - approx, + approx, + cosAngle > 0, + ); + return (std.cross(from, to) * thetaSinTheta).z; } function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { @@ -147,39 +151,39 @@ function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { } export function evaluateLtcAreaLight( - N: d.v3f, - V: d.v3f, - P: d.v3f, - Minv: d.m3x3f, + normal: d.v3f, + viewDir: d.v3f, + worldPos: d.v3f, + ltcInverseTransform: d.m3x3f, light: d.Infer, ) { 'use gpu'; - let T1 = V - N * std.dot(V, N); - if (std.dot(T1, T1) < 1e-5) { + let tangent = viewDir - normal * std.dot(viewDir, normal); + if (std.dot(tangent, tangent) < 1e-5) { let up = d.vec3f(0, 0, 1); - if (std.abs(N.z) > 0.999) { + if (std.abs(normal.z) > 0.999) { up = d.vec3f(0, 1, 0); } - T1 = std.cross(up, N); + tangent = std.cross(up, normal); } - T1 = std.normalize(T1); - const T2 = std.cross(N, T1); + tangent = std.normalize(tangent); + const bitangent = std.cross(normal, tangent); - const ex = light.dirX * light.halfSize.x; - const ey = light.dirY * light.halfSize.y; - const p0 = light.center - ex - ey; - const p1 = light.center + ex - ey; - const p2 = light.center + ex + ey; - const p3 = light.center - ex + ey; + const edgeU = light.dirX * light.halfSize.x; + const edgeV = light.dirY * light.halfSize.y; + const corner0 = light.center - edgeU - edgeV; + const corner1 = light.center + edgeU - edgeV; + const corner2 = light.center + edgeU + edgeV; + const corner3 = light.center - edgeU + edgeV; - const basis = std.transpose(d.mat3x3f(T1, T2, N)); - const transform = Minv * basis; + const tangentBasis = std.transpose(d.mat3x3f(tangent, bitangent, normal)); + const worldToLtc = ltcInverseTransform * tangentBasis; const clipped = clipQuadToHorizon( - transform * (p0 - P), - transform * (p1 - P), - transform * (p2 - P), - transform * (p3 - P), + worldToLtc * (corner0 - worldPos), + worldToLtc * (corner1 - worldPos), + worldToLtc * (corner2 - worldPos), + worldToLtc * (corner3 - worldPos), ); if (clipped.count === d.u32(0)) { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index 0b49115203..55d1baaadc 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,12 +1,22 @@ import tgpu, { d, std } from 'typegpu'; import { evaluateLtcAreaLight, ltcUv, sampleLtcAmplitude, sampleLtcMatrix } from './ltc.ts'; -import { environmentLayout, LIGHT_COUNT, sceneLayout, Vertex, vertexLayout } from './schemas.ts'; +import { environmentLayout, LIGHT_COUNT, sceneLayout, vertexLayout } from './schemas.ts'; export { vertexLayout }; -const PI = Math.PI; const SCALAR_ENVIRONMENT_LUMA = 0.085; +const Surface = d.struct({ + normal: d.vec3f, + viewDir: d.vec3f, + worldPos: d.vec3f, + albedo: d.vec3f, + f0: d.vec3f, + roughness: d.f32, + metallic: d.f32, + specularBoost: d.f32, +}); + function fresnelSchlick(cosTheta: number, f0: d.v3f) { 'use gpu'; return f0 + (1 - f0) * (1 - std.saturate(cosTheta)) ** 5; @@ -14,8 +24,8 @@ function fresnelSchlick(cosTheta: number, f0: d.v3f) { function fresnelSchlickRoughness(cosTheta: number, f0: d.v3f, roughness: number) { 'use gpu'; - const roughF0 = std.max(d.vec3f(1 - roughness), f0); - return f0 + (roughF0 - f0) * (1 - std.saturate(cosTheta)) ** 5; + const clampedF0 = std.max(d.vec3f(1 - roughness), f0); + return f0 + (clampedF0 - f0) * (1 - std.saturate(cosTheta)) ** 5; } function sampleSkyEnvironment(direction: d.v3f) { @@ -70,69 +80,63 @@ function waterFilm(worldPos: d.v3f, t: number) { return std.saturate(0.93 + shimmer * 0.06); } -function waterNormal(N: d.v3f, worldPos: d.v3f, amount: number) { +function waterNormal(baseNormal: d.v3f, worldPos: d.v3f, intensity: number) { 'use gpu'; - const t = sceneLayout.$.params.time; - const gradient = waveGradient(worldPos, t); - const waterN = std.normalize(d.vec3f(std.neg(gradient.x), 1, std.neg(gradient.y))); + const slope = waveGradient(worldPos, sceneLayout.$.params.time); + const rippledNormal = std.normalize(d.vec3f(std.neg(slope.x), 1, std.neg(slope.y))); - return std.normalize(std.mix(N, waterN, amount)); + return std.normalize(std.mix(baseNormal, rippledNormal, intensity)); } -function directAreaLighting( - N: d.v3f, - V: d.v3f, - P: d.v3f, - albedo: d.v3f, - roughness: number, - metallic: number, - f0: d.v3f, - specularBoost: number, -) { +function evaluateLighting(surface: d.Infer) { 'use gpu'; - const uv = ltcUv(roughness, std.saturate(std.dot(N, V))); - const Minv = sampleLtcMatrix(uv); - const brdf = sampleLtcAmplitude(uv); - const fresnel = f0 * brdf.x + (1 - f0) * brdf.y; - const diffuse = (1 - fresnel) * (1 - metallic) * (albedo / PI); - - let result = d.vec3f(0); - for (let i = d.u32(0); i < d.u32(LIGHT_COUNT); i++) { + const NdotV = std.saturate(std.dot(surface.normal, surface.viewDir)); + + const lutUv = ltcUv(surface.roughness, NdotV); + const ltcInverseTransform = sampleLtcMatrix(lutUv); + const ltcCoeffs = sampleLtcAmplitude(lutUv); + const ltcFresnel = surface.f0 * ltcCoeffs.x + (1 - surface.f0) * ltcCoeffs.y; + const diffuseLobe = (1 - ltcFresnel) * (1 - surface.metallic) * (surface.albedo / Math.PI); + + let directLight = d.vec3f(0); + for (const i of tgpu.unroll(std.range(LIGHT_COUNT))) { const light = sceneLayout.$.lights[i]; - const diffuseIntegral = evaluateLtcAreaLight(N, V, P, d.mat3x3f.identity(), light); - const specularIntegral = evaluateLtcAreaLight(N, V, P, Minv, light); - result += + const diffuseFormFactor = evaluateLtcAreaLight( + surface.normal, + surface.viewDir, + surface.worldPos, + d.mat3x3f.identity(), + light, + ); + const specularFormFactor = evaluateLtcAreaLight( + surface.normal, + surface.viewDir, + surface.worldPos, + ltcInverseTransform, + light, + ); + directLight += light.color * light.intensity * - (diffuse * diffuseIntegral + fresnel * specularIntegral * specularBoost); + (diffuseLobe * diffuseFormFactor + ltcFresnel * specularFormFactor * surface.specularBoost); } - return result; -} - -function environmentLighting( - N: d.v3f, - V: d.v3f, - albedo: d.v3f, - roughness: number, - metallic: number, - f0: d.v3f, - specularBoost: number, -) { - 'use gpu'; - const NdotV = std.saturate(std.dot(N, V)); - const env = sceneLayout.$.params.environmentIntensity * SCALAR_ENVIRONMENT_LUMA; - const fresnel = fresnelSchlickRoughness(NdotV, f0, roughness); - const diffuse = - (1 - fresnel) * (1 - metallic) * albedo * env * sceneLayout.$.params.diffuseIblStrength; - const specular = - fresnelSchlick(NdotV, f0) * - env * - (1 - roughness * 0.35) * + const envLuminance = sceneLayout.$.params.environmentIntensity * SCALAR_ENVIRONMENT_LUMA; + const envFresnel = fresnelSchlickRoughness(NdotV, surface.f0, surface.roughness); + const indirectDiffuse = + (1 - envFresnel) * + (1 - surface.metallic) * + surface.albedo * + envLuminance * + sceneLayout.$.params.diffuseIblStrength; + const indirectSpecular = + fresnelSchlick(NdotV, surface.f0) * + envLuminance * + (1 - surface.roughness * 0.35) * sceneLayout.$.params.specularIblStrength * - specularBoost; + surface.specularBoost; - return diffuse + specular; + return directLight + indirectDiffuse + indirectSpecular; } export const mainFragment = tgpu.fragmentFn({ @@ -149,35 +153,27 @@ export const mainFragment = tgpu.fragmentFn({ const roughness = material.x; const metallic = material.y; const wetness = material.z; - const meshN = std.normalize(normal); - const geometricN = std.select(std.neg(meshN), meshN, frontFacing); - const V = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); - const water = wetness * sceneLayout.$.params.wetness * std.saturate(geometricN.y * 1.35); - const film = water * waterFilm(worldPos, sceneLayout.$.params.time); - const wetSurface = std.saturate(film); - const N = waterNormal(geometricN, worldPos, std.saturate(water * 1.35)); - const waterRoughness = std.mix(0.065, 0.032, water); - const materialRoughness = std.clamp(std.mix(roughness, waterRoughness, wetSurface), 0.006, 1); - const wetAlbedo = std.mix(albedo, albedo * 0.44, wetSurface); - const specularBoost = 1 + film * 3.2; - const f0 = std.mix( - std.mix(d.vec3f(0.04), albedo, metallic), - d.vec3f(0.08), - wetSurface * (1 - metallic), - ); - const direct = directAreaLighting( - N, - V, + + const vertexNormal = std.normalize(normal); + const surfaceNormal = std.select(std.neg(vertexNormal), vertexNormal, frontFacing); + const viewDir = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); + + const wetMask = wetness * sceneLayout.$.params.wetness * std.saturate(surfaceNormal.y * 1.35); + const film = wetMask * waterFilm(worldPos, sceneLayout.$.params.time); + const shadingNormal = waterNormal(surfaceNormal, worldPos, std.saturate(wetMask * 1.35)); + + const surface = Surface({ + normal: shadingNormal, + viewDir, worldPos, - wetAlbedo, - materialRoughness, + albedo: std.mix(albedo, albedo * 0.44, film), + f0: std.mix(std.mix(d.vec3f(0.04), albedo, metallic), d.vec3f(0.08), film * (1 - metallic)), + roughness: std.clamp(std.mix(roughness, std.mix(0.065, 0.032, wetMask), film), 0.006, 1), metallic, - f0, - specularBoost, - ); - const ibl = environmentLighting(N, V, wetAlbedo, materialRoughness, metallic, f0, specularBoost); + specularBoost: 1 + film * 3.2, + }); - return d.vec4f(tonemap(direct + ibl), 1); + return d.vec4f(tonemap(evaluateLighting(surface)), 1); }); export const skyVertex = tgpu.vertexFn({ From a3b0c5684e5a4570460b6c3c46b284d37730538b Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Wed, 6 May 2026 12:03:39 +0200 Subject: [PATCH 19/24] refactor and hardware filtering --- .../rendering/area-light/environment.ts | 15 +- .../examples/rendering/area-light/geometry.ts | 212 ++++--- .../examples/rendering/area-light/index.ts | 38 +- .../src/examples/rendering/area-light/ltc.ts | 25 +- .../rendering/area-light/ltcConfig.ts | 9 + .../examples/rendering/area-light/schemas.ts | 14 +- .../examples/rendering/area-light/shaders.ts | 54 +- .../src/examples/rendering/spom/index.html | 1 + .../src/examples/rendering/spom/index.ts | 564 ++++++++++++++++++ .../src/examples/rendering/spom/meta.json | 6 + .../src/examples/rendering/spom/shaders.ts | 102 ++++ .../src/examples/rendering/spom/types.ts | 159 +++++ 12 files changed, 1065 insertions(+), 134 deletions(-) create mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts create mode 100644 apps/typegpu-docs/src/examples/rendering/spom/index.html create mode 100644 apps/typegpu-docs/src/examples/rendering/spom/index.ts create mode 100644 apps/typegpu-docs/src/examples/rendering/spom/meta.json create mode 100644 apps/typegpu-docs/src/examples/rendering/spom/shaders.ts create mode 100644 apps/typegpu-docs/src/examples/rendering/spom/types.ts diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts index 4b6453f977..f29ae89ffa 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts @@ -82,26 +82,15 @@ function environmentColor(direction: d.v3f) { return std.clamp(color, d.vec3f(0), d.vec3f(1)); } -export const environmentVertex = tgpu.vertexFn({ - in: { vertexIndex: d.builtin.vertexIndex }, - out: { pos: d.builtin.position, uv: d.vec2f }, -})(({ vertexIndex }) => { - 'use gpu'; - const pos = [d.vec2f(-1, -1), d.vec2f(3, -1), d.vec2f(-1, 3)]; - return { - pos: d.vec4f(pos[vertexIndex], 0, 1), - uv: pos[vertexIndex], - }; -}); - export const environmentFragment = tgpu.fragmentFn({ in: { uv: d.vec2f }, out: d.vec4f, })(({ uv }) => { 'use gpu'; + const ndc = uv * d.vec2f(2, -2) + d.vec2f(-1, 1); const direction = cubeFaceDirection( environmentGenerationLayout.$.face, - uv * ENVIRONMENT_EDGE_SCALE, + ndc * ENVIRONMENT_EDGE_SCALE, ); return d.vec4f(environmentColor(direction), 1); }); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts index cf5fefcf2c..9e88a8fcc1 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/geometry.ts @@ -1,13 +1,22 @@ -import { d, std, type common } from 'typegpu'; +import { d, type common } from 'typegpu'; import type { Lights, Vertex } from './schemas.ts'; interface Material { - albedo: d.v3f; + albedo: number[]; roughness: number; metallic: number; wetness: number; } +type SpherePedestal = [ + center: number[], + halfExtents: number[], + bevel: number, + bevelHeight: number, + sphereRadius: number, + sphereMaterial: Material, +]; + export interface SceneMesh { vertexCount: number; data: common.writeSoA.InputFor; @@ -16,24 +25,32 @@ export interface SceneMesh { const SPHERE_SEGMENTS = 48; const SPHERE_RINGS = 24; const QUAD_VERTICES = 6; -const BOX_VERTICES = QUAD_VERTICES * 6; +const BEVELED_PEDESTAL_VERTICES = QUAD_VERTICES * 10; const SPHERE_VERTICES = SPHERE_SEGMENTS * SPHERE_RINGS * QUAD_VERTICES; -const SCENE_VERTEX_COUNT = QUAD_VERTICES * 2 + BOX_VERTICES * 3 + SPHERE_VERTICES * 4; -function material(albedo: d.v3f, roughness: number, metallic = 0, wetness = 0): Material { +function material(albedo: number[], roughness: number, metallic = 0, wetness = 0): Material { return { albedo, roughness, metallic, wetness }; } const materials = { - floor: material(d.vec3f(0.026, 0.022, 0.026), 0.1, 0, 1), - backdrop: material(d.vec3f(0.026, 0.019, 0.028), 0.42), - plinth: material(d.vec3f(0.052, 0.04, 0.046), 0.14), - block: material(d.vec3f(0.03, 0.024, 0.032), 0.18), - gold: material(d.vec3f(1, 0.62, 0.18), 0.18, 0.55), - ceramic: material(d.vec3f(0.2, 0.17, 0.17), 0.16), - plastic: material(d.vec3f(0.045, 0.028, 0.075), 0.16), + floor: material([0.026, 0.022, 0.026], 0.1, 0, 1), + backdrop: material([0.026, 0.019, 0.028], 0.42), + plinth: material([0.052, 0.04, 0.046], 0.14), + gold: material([1, 0.62, 0.18], 0.18, 0.55), + ceramic: material([0.2, 0.17, 0.17], 0.16), + plastic: material([0.045, 0.028, 0.075], 0.16), } satisfies Record; +const spherePedestals = [ + [[-1.15, 0.095, -1.1], [0.88, 0.095, 0.72], 0.13, 0.055, 0.72, materials.gold], + [[0.05, 0.08, 0.92], [0.44, 0.08, 0.36], 0.08, 0.045, 0.38, materials.ceramic], + [[1.45, 0.09, -0.62], [0.66, 0.09, 0.52], 0.11, 0.05, 0.56, materials.plastic], + [[-2.45, 0.16, 0.85], [0.56, 0.16, 0.44], 0.1, 0.055, 0.48, materials.plastic], +] satisfies SpherePedestal[]; + +const SCENE_VERTEX_COUNT = + QUAD_VERTICES * 2 + spherePedestals.length * (BEVELED_PEDESTAL_VERTICES + SPHERE_VERTICES); + export const initialLights = [ { center: d.vec3f(0, 3.05, -0.55), @@ -73,7 +90,7 @@ function createMeshWriter(vertexCount: number) { let cursor = 0; - function vertex(position: d.v3f, normal: d.v3f, mat: Material) { + function vertex(position: number[], normal: number[], mat: Material) { const vecOffset = cursor * 3; data.position.set(position, vecOffset); data.normal.set(normal, vecOffset); @@ -94,52 +111,118 @@ function createMeshWriter(vertexCount: number) { } type MeshWriter = ReturnType; +type Quad = [number[], number[], number[], number[]]; +type Face = [Quad, number[]]; + +const QUAD_INDICES = [0, 1, 2, 0, 2, 3] as const; + +const add = (a: number[], b: number[]) => [a[0] + b[0], a[1] + b[1], a[2] + b[2]]; +const sub = (a: number[], b: number[]) => [a[0] - b[0], a[1] - b[1], a[2] - b[2]]; +const scale = (v: number[], s: number) => [v[0] * s, v[1] * s, v[2] * s]; +const normalize = (v: number[]) => { + const len = Math.hypot(...v); + return [v[0] / len, v[1] / len, v[2] / len]; +}; + +const NORMAL_UP = [0, 1, 0]; +const NORMAL_DOWN = [0, -1, 0]; +const NORMAL_FRONT = [0, 0, 1]; +const NORMAL_BACK = [0, 0, -1]; +const NORMAL_RIGHT = [1, 0, 0]; +const NORMAL_LEFT = [-1, 0, 0]; function pushQuad( mesh: MeshWriter, - center: d.v3f, - axisU: d.v3f, - axisV: d.v3f, - normal: d.v3f, + center: number[], + axisU: number[], + axisV: number[], + normal: number[], mat: Material, ) { - const p0 = center.sub(axisU).sub(axisV); - const p1 = center.add(axisU).sub(axisV); - const p2 = center.add(axisU).add(axisV); - const p3 = center.sub(axisU).add(axisV); - - mesh.vertex(p0, normal, mat); - mesh.vertex(p1, normal, mat); - mesh.vertex(p2, normal, mat); - mesh.vertex(p0, normal, mat); - mesh.vertex(p2, normal, mat); - mesh.vertex(p3, normal, mat); + pushQuadCorners( + mesh, + [ + sub(sub(center, axisU), axisV), + sub(add(center, axisU), axisV), + add(add(center, axisU), axisV), + add(sub(center, axisU), axisV), + ], + normal, + mat, + ); } -function pushBox(mesh: MeshWriter, center: d.v3f, halfExtents: d.v3f, mat: Material) { +function pushQuadCorners(mesh: MeshWriter, corners: Quad, normal: number[], mat: Material) { + for (const idx of QUAD_INDICES) { + mesh.vertex(corners[idx], normal, mat); + } +} + +function pushFaces(mesh: MeshWriter, faces: Face[], mat: Material) { + for (const [corners, normal] of faces) { + pushQuadCorners(mesh, corners, normal, mat); + } +} + +function pushBeveledPedestal( + mesh: MeshWriter, + center: number[], + halfExtents: number[], + bevel: number, + bevelHeight: number, + mat: Material, +) { + const [cx, cy, cz] = center; const [hx, hy, hz] = halfExtents; - const face = (offset: d.v3f, axisU: d.v3f, axisV: d.v3f, normal: d.v3f) => - pushQuad(mesh, center.add(offset), axisU, axisV, normal, mat); - - face(d.vec3f(0, hy, 0), d.vec3f(hx, 0, 0), d.vec3f(0, 0, -hz), d.vec3f(0, 1, 0)); - face(d.vec3f(0, -hy, 0), d.vec3f(hx, 0, 0), d.vec3f(0, 0, hz), d.vec3f(0, -1, 0)); - face(d.vec3f(0, 0, hz), d.vec3f(hx, 0, 0), d.vec3f(0, hy, 0), d.vec3f(0, 0, 1)); - face(d.vec3f(0, 0, -hz), d.vec3f(hx, 0, 0), d.vec3f(0, hy, 0), d.vec3f(0, 0, -1)); - face(d.vec3f(-hx, 0, 0), d.vec3f(0, 0, hz), d.vec3f(0, hy, 0), d.vec3f(-1, 0, 0)); - face(d.vec3f(hx, 0, 0), d.vec3f(0, 0, hz), d.vec3f(0, hy, 0), d.vec3f(1, 0, 0)); + const topY = cy + hy; + const sideTopY = topY - bevelHeight; + const bottomY = cy - hy; + + const rect = (y: number, xHalf: number, zHalf: number): Quad => [ + [cx - xHalf, y, cz + zHalf], + [cx + xHalf, y, cz + zHalf], + [cx + xHalf, y, cz - zHalf], + [cx - xHalf, y, cz - zHalf], + ]; + + const bottom = rect(bottomY, hx, hz); + const side = rect(sideTopY, hx, hz); + const top = rect(topY, hx - bevel, hz - bevel); + const slopeNormal = (x: number, z: number) => normalize([x, bevel, z]); + + pushFaces( + mesh, + [ + [top, NORMAL_UP], + [[bottom[0], bottom[3], bottom[2], bottom[1]], NORMAL_DOWN], + + [[bottom[0], bottom[1], side[1], side[0]], NORMAL_FRONT], + [[bottom[2], bottom[3], side[3], side[2]], NORMAL_BACK], + [[bottom[1], bottom[2], side[2], side[1]], NORMAL_RIGHT], + [[bottom[3], bottom[0], side[0], side[3]], NORMAL_LEFT], + + [[side[0], side[1], top[1], top[0]], slopeNormal(0, bevelHeight)], + [[side[2], side[3], top[3], top[2]], slopeNormal(0, -bevelHeight)], + [[side[1], side[2], top[2], top[1]], slopeNormal(bevelHeight, 0)], + [[side[3], side[0], top[0], top[3]], slopeNormal(-bevelHeight, 0)], + ], + mat, + ); } -function spherePoint(center: d.v3f, radius: number, u: number, v: number): [d.v3f, d.v3f] { +function spherePoint(center: number[], radius: number, u: number, v: number) { const theta = v * Math.PI; const phi = u * Math.PI * 2; - const normal = std.normalize( - d.vec3f(Math.sin(theta) * Math.cos(phi), Math.cos(theta), Math.sin(theta) * Math.sin(phi)), - ); + const normal = normalize([ + Math.sin(theta) * Math.cos(phi), + Math.cos(theta), + Math.sin(theta) * Math.sin(phi), + ]); - return [center.add(normal.mul(radius)), normal]; + return [add(center, scale(normal, radius)), normal]; } -function pushSphere(mesh: MeshWriter, center: d.v3f, radius: number, mat: Material) { +function pushSphere(mesh: MeshWriter, center: number[], radius: number, mat: Material) { for (let y = 0; y < SPHERE_RINGS; y++) { const v0 = y / SPHERE_RINGS; const v1 = (y + 1) / SPHERE_RINGS; @@ -165,31 +248,26 @@ function pushSphere(mesh: MeshWriter, center: d.v3f, radius: number, mat: Materi export function createSceneMesh(): SceneMesh { const mesh = createMeshWriter(SCENE_VERTEX_COUNT); - pushQuad( - mesh, - d.vec3f(0, 0, 0), - d.vec3f(5.8, 0, 0), - d.vec3f(0, 0, -4.9), - d.vec3f(0, 1, 0), - materials.floor, - ); - pushQuad( - mesh, - d.vec3f(0, 1.3, -3.3), - d.vec3f(4.2, 0, 0), - d.vec3f(0, 1.3, 0), - d.vec3f(0, 0, 1), - materials.backdrop, - ); + pushQuad(mesh, [0, 0, 0], [5.8, 0, 0], [0, 0, -4.9], [0, 1, 0], materials.floor); + pushQuad(mesh, [0, 1.3, -3.3], [4.2, 0, 0], [0, 1.3, 0], [0, 0, 1], materials.backdrop); - pushBox(mesh, d.vec3f(0, 0.08, -0.7), d.vec3f(2.55, 0.08, 1.25), materials.plinth); - pushBox(mesh, d.vec3f(-2.55, 0.22, 0.9), d.vec3f(0.55, 0.22, 0.55), materials.block); - pushBox(mesh, d.vec3f(2.25, 0.14, 0.75), d.vec3f(0.65, 0.14, 0.45), materials.plinth); + for (const [ + center, + halfExtents, + bevel, + bevelHeight, + sphereRadius, + sphereMaterial, + ] of spherePedestals) { + pushBeveledPedestal(mesh, center, halfExtents, bevel, bevelHeight, materials.plinth); - pushSphere(mesh, d.vec3f(-1.25, 0.88, -1.1), 0.72, materials.gold); - pushSphere(mesh, d.vec3f(0.3, 0.54, 0.35), 0.38, materials.ceramic); - pushSphere(mesh, d.vec3f(1.25, 0.72, -0.45), 0.56, materials.plastic); - pushSphere(mesh, d.vec3f(-2.55, 0.92, 0.9), 0.48, materials.plastic); + pushSphere( + mesh, + [center[0], center[1] + halfExtents[1] + sphereRadius, center[2]], + sphereRadius, + sphereMaterial, + ); + } return { vertexCount: mesh.vertexCount, data: mesh.data }; } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 716453bdc1..503f2213a3 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -6,11 +6,22 @@ import { ENVIRONMENT_SIZE, environmentFragment, environmentGenerationLayout, - environmentVertex, } from './environment.ts'; import { createSceneMesh, initialLights } from './geometry.ts'; +import { configureLtcFiltering } from './ltcConfig.ts'; import { LTC_1, LTC_2 } from './ltcTables.ts'; -import { + +const SAMPLE_COUNT = 4; +const DISCO_TRANSITION_MS = 1600; +const DISCO_HUE_SPEED = 0.00008; + +const root = await tgpu.init({ + device: { optionalFeatures: ['float32-filterable'] }, +}); +const canFilterF32 = root.enabledFeatures.has('float32-filterable'); +configureLtcFiltering(canFilterF32); + +const { environmentLayout, LIGHT_COUNT, Lights, @@ -18,12 +29,9 @@ import { RenderParams, sceneLayout, vertexLayout, -} from './schemas.ts'; -import { lightFragment, lightVertex, mainFragment, skyFragment, skyVertex } from './shaders.ts'; +} = await import('./schemas.ts'); +const { lightFragment, lightVertex, mainFragment, skyFragment } = await import('./shaders.ts'); -const SAMPLE_COUNT = 4; -const DISCO_TRANSITION_MS = 1600; -const DISCO_HUE_SPEED = 0.00008; const INITIAL_PARAMS = { exposure: 1.12, environmentIntensity: 0.25, @@ -32,8 +40,6 @@ const INITIAL_PARAMS = { wetness: 0.12, time: 0, } satisfies d.InferInput; - -const root = await tgpu.init(); const canvas = document.querySelector('canvas') as HTMLCanvasElement; const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); @@ -65,6 +71,10 @@ const sceneBindGroup = root.createBindGroup(sceneLayout, { const ltcBindGroup = root.createBindGroup(ltcLayout, { ltcMat: createLtcTexture(LTC_1), ltcAmp: createLtcTexture(LTC_2), + ltcSampler: root.createSampler({ + magFilter: 'linear', + minFilter: 'linear', + }), }); const environmentTexture = root @@ -80,7 +90,7 @@ const environmentGenerationBindGroup = root.createBindGroup(environmentGeneratio }); const environmentPipeline = root.pipe(perlinCache.inject()).createRenderPipeline({ - vertex: environmentVertex, + vertex: common.fullScreenTriangle, fragment: environmentFragment, targets: { format: 'rgba8unorm' }, }); @@ -149,7 +159,7 @@ const lightState = initialLights.map((light) => ({ })); const skyPipeline = root.createRenderPipeline({ - vertex: skyVertex, + vertex: common.fullScreenTriangle, fragment: skyFragment, targets: { format: presentationFormat }, multisample: { count: SAMPLE_COUNT }, @@ -187,8 +197,8 @@ const lightPipeline = root.createRenderPipeline({ const { cleanupCamera } = setupOrbitCamera( canvas, { - initPos: d.vec4f(4.25, 2.45, 5.15, 1), - target: d.vec4f(0, 0.55, -0.55, 1), + initPos: d.vec4f(4.1, 2.25, 5, 1), + target: d.vec4f(-0.35, 0.52, -0.45, 1), minZoom: 1.8, maxZoom: 14, minCameraY: 0.22, @@ -303,7 +313,7 @@ function render(time: number) { depthLoadOp: 'load', depthStoreOp: 'store', }) - .draw(6 * LIGHT_COUNT); + .draw(6, LIGHT_COUNT); animationFrameId = requestAnimationFrame(render); } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts index 6175eb8753..15023012eb 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts @@ -1,5 +1,5 @@ import { d, std } from 'typegpu'; -import { ltcLayout, RectLight } from './schemas.ts'; +import { CAN_FILTER_FLOAT32_LTC, ltcLayout, RectLight } from './schemas.ts'; const LUT_SIZE = 64; const LUT_SCALE = (LUT_SIZE - 1) / LUT_SIZE; @@ -26,23 +26,32 @@ function bilinearLut(texture: d.texture2d, uv: d.v2f) { const frac = pos - base; const next = std.min(base + 1, d.vec2f(LUT_SIZE - 1)); - const t00 = std.textureLoad(texture, d.vec2u(d.u32(base.x), d.u32(base.y)), 0); - const t10 = std.textureLoad(texture, d.vec2u(d.u32(next.x), d.u32(base.y)), 0); - const t01 = std.textureLoad(texture, d.vec2u(d.u32(base.x), d.u32(next.y)), 0); - const t11 = std.textureLoad(texture, d.vec2u(d.u32(next.x), d.u32(next.y)), 0); + const t00 = std.textureLoad(texture, d.vec2u(base.x, base.y), 0); + const t10 = std.textureLoad(texture, d.vec2u(next.x, base.y), 0); + const t01 = std.textureLoad(texture, d.vec2u(base.x, next.y), 0); + const t11 = std.textureLoad(texture, d.vec2u(next.x, next.y), 0); return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); } +function sampleLtcTexture(texture: d.texture2d, uv: d.v2f) { + 'use gpu'; + if (CAN_FILTER_FLOAT32_LTC) { + return std.textureSampleLevel(texture, ltcLayout.$.ltcSampler, uv, 0); + } else { + return bilinearLut(texture, uv); + } +} + export function sampleLtcMatrix(uv: d.v2f) { 'use gpu'; - const t = bilinearLut(ltcLayout.$.ltcMat, uv); + const t = sampleLtcTexture(ltcLayout.$.ltcMat, uv); return d.mat3x3f(d.vec3f(t.x, 0, t.y), d.vec3f(0, 1, 0), d.vec3f(t.z, 0, t.w)); } export function sampleLtcAmplitude(uv: d.v2f) { 'use gpu'; - return bilinearLut(ltcLayout.$.ltcAmp, uv); + return sampleLtcTexture(ltcLayout.$.ltcAmp, uv); } function integrateEdge(from: d.v3f, to: d.v3f) { @@ -150,7 +159,7 @@ function clipQuadToHorizon(p0: d.v3f, p1: d.v3f, p2: d.v3f, p3: d.v3f) { return HorizonClip({ l0, l1, l2, l3, l4, count }); } -export function evaluateLtcAreaLight( +export function evaluateTwoSidedLtcRectFormFactor( normal: d.v3f, viewDir: d.v3f, worldPos: d.v3f, diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts new file mode 100644 index 0000000000..c0b7c1e168 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts @@ -0,0 +1,9 @@ +let configuredCanFilterFloat32Ltc = false; + +export function configureLtcFiltering(enabled: boolean) { + configuredCanFilterFloat32Ltc = enabled; +} + +export function getCanFilterFloat32Ltc() { + return configuredCanFilterFloat32Ltc; +} diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index f03c55aecd..1cc3bb33f5 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -1,5 +1,6 @@ import tgpu, { d } from 'typegpu'; import { Camera } from '../../common/setup-orbit-camera.ts'; +import { getCanFilterFloat32Ltc } from './ltcConfig.ts'; export const LIGHT_COUNT = 3; @@ -40,9 +41,18 @@ export const sceneLayout = tgpu.bindGroupLayout({ params: { uniform: RenderParams }, }); +export const CAN_FILTER_FLOAT32_LTC = getCanFilterFloat32Ltc(); + export const ltcLayout = tgpu.bindGroupLayout({ - ltcMat: { texture: d.texture2d(d.f32), sampleType: 'unfilterable-float' }, - ltcAmp: { texture: d.texture2d(d.f32), sampleType: 'unfilterable-float' }, + ltcMat: { + texture: d.texture2d(d.f32), + sampleType: CAN_FILTER_FLOAT32_LTC ? 'float' : 'unfilterable-float', + }, + ltcAmp: { + texture: d.texture2d(d.f32), + sampleType: CAN_FILTER_FLOAT32_LTC ? 'float' : 'unfilterable-float', + }, + ltcSampler: { sampler: 'filtering' }, }); export const environmentLayout = tgpu.bindGroupLayout({ diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index 55d1baaadc..f7f8616b68 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,11 +1,25 @@ import tgpu, { d, std } from 'typegpu'; -import { evaluateLtcAreaLight, ltcUv, sampleLtcAmplitude, sampleLtcMatrix } from './ltc.ts'; +import { + evaluateTwoSidedLtcRectFormFactor, + ltcUv, + sampleLtcAmplitude, + sampleLtcMatrix, +} from './ltc.ts'; import { environmentLayout, LIGHT_COUNT, sceneLayout, vertexLayout } from './schemas.ts'; export { vertexLayout }; const SCALAR_ENVIRONMENT_LUMA = 0.085; +const lightQuadCorners = tgpu.const(d.arrayOf(d.vec2f, 6), [ + d.vec2f(-1, -1), + d.vec2f(1, -1), + d.vec2f(1, 1), + d.vec2f(-1, -1), + d.vec2f(1, 1), + d.vec2f(-1, 1), +]); + const Surface = d.struct({ normal: d.vec3f, viewDir: d.vec3f, @@ -96,19 +110,19 @@ function evaluateLighting(surface: d.Infer) { const ltcInverseTransform = sampleLtcMatrix(lutUv); const ltcCoeffs = sampleLtcAmplitude(lutUv); const ltcFresnel = surface.f0 * ltcCoeffs.x + (1 - surface.f0) * ltcCoeffs.y; - const diffuseLobe = (1 - ltcFresnel) * (1 - surface.metallic) * (surface.albedo / Math.PI); + const diffuseLobe = (1 - ltcFresnel) * (1 - surface.metallic) * surface.albedo; let directLight = d.vec3f(0); for (const i of tgpu.unroll(std.range(LIGHT_COUNT))) { const light = sceneLayout.$.lights[i]; - const diffuseFormFactor = evaluateLtcAreaLight( + const diffuseFormFactor = evaluateTwoSidedLtcRectFormFactor( surface.normal, surface.viewDir, surface.worldPos, d.mat3x3f.identity(), light, ); - const specularFormFactor = evaluateLtcAreaLight( + const specularFormFactor = evaluateTwoSidedLtcRectFormFactor( surface.normal, surface.viewDir, surface.worldPos, @@ -176,23 +190,12 @@ export const mainFragment = tgpu.fragmentFn({ return d.vec4f(tonemap(evaluateLighting(surface)), 1); }); -export const skyVertex = tgpu.vertexFn({ - in: { vertexIndex: d.builtin.vertexIndex }, - out: { pos: d.builtin.position, ndc: d.vec2f }, -})(({ vertexIndex }) => { - 'use gpu'; - const pos = [d.vec2f(-1, -1), d.vec2f(3, -1), d.vec2f(-1, 3)]; - return { - pos: d.vec4f(pos[vertexIndex], 0, 1), - ndc: pos[vertexIndex], - }; -}); - export const skyFragment = tgpu.fragmentFn({ - in: { ndc: d.vec2f }, + in: { uv: d.vec2f }, out: d.vec4f, -})(({ ndc }) => { +})(({ uv }) => { 'use gpu'; + const ndc = uv * d.vec2f(2, -2) + d.vec2f(-1, 1); const camera = sceneLayout.$.camera; const farView = camera.projectionInverse * d.vec4f(ndc, 1, 1); const farWorld = camera.viewInverse * d.vec4f(farView.xyz / farView.w, 1); @@ -201,20 +204,11 @@ export const skyFragment = tgpu.fragmentFn({ }); export const lightVertex = tgpu.vertexFn({ - in: { vid: d.builtin.vertexIndex }, + in: { vid: d.builtin.vertexIndex, lightIdx: d.builtin.instanceIndex }, out: { pos: d.builtin.position, color: d.vec3f }, -})(({ vid }) => { +})(({ vid, lightIdx }) => { 'use gpu'; - const lightIdx = std.floor(vid / 6); - const corners = [ - d.vec2f(-1, -1), - d.vec2f(1, -1), - d.vec2f(1, 1), - d.vec2f(-1, -1), - d.vec2f(1, 1), - d.vec2f(-1, 1), - ]; - const corner = corners[vid % d.u32(6)]; + const corner = lightQuadCorners.$[vid]; const light = sceneLayout.$.lights[lightIdx]; const worldPos = light.center + diff --git a/apps/typegpu-docs/src/examples/rendering/spom/index.html b/apps/typegpu-docs/src/examples/rendering/spom/index.html new file mode 100644 index 0000000000..581d6789f8 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/spom/index.html @@ -0,0 +1 @@ + diff --git a/apps/typegpu-docs/src/examples/rendering/spom/index.ts b/apps/typegpu-docs/src/examples/rendering/spom/index.ts new file mode 100644 index 0000000000..f7b9b9b674 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/spom/index.ts @@ -0,0 +1,564 @@ +import tgpu, { d, std, type RenderFlag, type TgpuTexture } from 'typegpu'; +import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; +import { defineControls } from '../../common/defineControls.ts'; +import { + distributionGGX, + faceEdgeMask, + fresnelSchlick, + geometrySmith, + intersectUvDepthBox, + isOutOfBounds, + shapeSurfaceDepth, + toTangentSpace, + uvRayPerDepth, +} from './shaders.ts'; +import { + DEFAULT_PARALLAX_STEPS, + INITIAL_SUN_ANGLE, + INITIAL_SUN_HEIGHT, + MATERIAL_LAYER, + MAX_PARALLAX_STEPS, + SCENE_MATERIAL_IDS, + SCENE_TEXTURE_LAYER_COUNT, + SpomParams, + computeLightDir, + spomInstanceLayout, + spomInstances, + spomIndices, + spomVertexLayout, + spomVertices, +} from './types.ts'; + +const root = await tgpu.init(); +const canvas = document.querySelector('canvas') as HTMLCanvasElement; +const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); +const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); + +const spomMesh = { + vertexBuffer: root + .createBuffer(spomVertexLayout.schemaForCount(spomVertices.length), spomVertices) + .$usage('vertex'), + instanceBuffer: root + .createBuffer(spomInstanceLayout.schemaForCount(spomInstances.length), spomInstances) + .$usage('vertex'), + indexBuffer: root.createBuffer(d.arrayOf(d.u16, spomIndices.length), spomIndices).$usage('index'), + indexCount: spomIndices.length, + instanceCount: spomInstances.length, +}; + +async function loadImage(src: string) { + const response = await fetch(src); + if (!response.ok) { + throw new Error(`Failed to load texture: ${src}`); + } + return createImageBitmap(await response.blob()); +} + +const sampler = root.createSampler({ + magFilter: 'linear', + minFilter: 'linear', + mipmapFilter: 'linear', + addressModeU: 'repeat', + addressModeV: 'repeat', + maxAnisotropy: 4, +}); + +const pbrTexture = root + .createTexture({ + size: [1024, 1024, SCENE_TEXTURE_LAYER_COUNT], + format: 'rgba8unorm', + viewFormats: ['rgba8unorm-srgb'], + mipLevelCount: 6, + }) + .$usage('sampled', 'render'); + +const albedoView = pbrTexture.createView(d.texture2dArray(d.f32), { + format: 'rgba8unorm-srgb', + baseArrayLayer: 0, + arrayLayerCount: SCENE_TEXTURE_LAYER_COUNT, +}); +const materialView = pbrTexture.createView(d.texture2dArray(d.f32), { + baseArrayLayer: 0, + arrayLayerCount: SCENE_TEXTURE_LAYER_COUNT, +}); + +async function loadMaterialImages(materialId: (typeof SCENE_MATERIAL_IDS)[number]) { + const basePath = `/TypeGPU/assets/pom/${materialId}`; + return Promise.all([ + loadImage(`${basePath}/albedo.png`), + loadImage(`${basePath}/normal.png`), + loadImage(`${basePath}/height.png`), + loadImage(`${basePath}/ao.png`), + loadImage(`${basePath}/roughness.png`), + loadImage(`${basePath}/metallic.png`), + ]); +} + +function disposeImages(images: ImageBitmap[]) { + for (const image of images) { + image.close(); + } +} + +function applyImages(images: ImageBitmap[]) { + pbrTexture.write(images); + pbrTexture.generateMipmaps(); + disposeImages(images); +} + +let materialLoadRequestId = 0; + +async function loadSceneMaterials() { + const requestId = ++materialLoadRequestId; + const imageGroups = await Promise.all(SCENE_MATERIAL_IDS.map(loadMaterialImages)); + if (requestId !== materialLoadRequestId) { + for (const images of imageGroups) { + disposeImages(images); + } + return; + } + applyImages(imageGroups.flat()); +} + +await loadSceneMaterials(); + +const cameraUniform = root.createUniform(Camera); +let sunAngle = INITIAL_SUN_ANGLE; +let sunHeight = INITIAL_SUN_HEIGHT; + +const spomParams = root.createUniform(SpomParams, { + reliefScale: 1, + tiling: 1, + lightDir: computeLightDir(sunAngle, sunHeight), + parallaxSteps: DEFAULT_PARALLAX_STEPS, +}); + +const { cleanupCamera } = setupOrbitCamera( + canvas, + { initPos: d.vec4f(2.2, 1.25, 2.2, 1), target: d.vec4f(0, 0, 0, 1), minZoom: 0.8, maxZoom: 10 }, + (updates) => cameraUniform.patch(updates), +); + +function sampleHeightDepth( + uv: d.v2f, + tiling: number, + materialBase: number, + ddx: d.v2f, + ddy: d.v2f, +) { + 'use gpu'; + const rawDepth = + 1 - + std.textureSampleGrad( + materialView.$, + sampler.$, + uv, + materialBase + MATERIAL_LAYER.height, + ddx, + ddy, + ).r; + return shapeSurfaceDepth(rawDepth, materialBase, uv.div(tiling)); +} + +const vertexFn = tgpu.vertexFn({ + in: { + uv: d.vec2f, + volumeDepth: d.f32, + origin: d.vec3f, + size: d.vec2f, + tangent: d.vec3f, + bitangent: d.vec3f, + normal: d.vec3f, + heightScale: d.f32, + uvTiling: d.f32, + materialBase: d.u32, + }, + out: { + pos: d.builtin.position, + uv: d.vec2f, + volumeDepth: d.f32, + worldPos: d.vec3f, + origin: d.vec3f, + size: d.vec2f, + heightScale: d.f32, + uvTiling: d.f32, + materialBase: d.interpolate('flat', d.u32), + T: d.vec3f, + B: d.vec3f, + N: d.vec3f, + }, +})(({ + uv, + volumeDepth, + origin, + size, + tangent, + bitangent, + normal, + heightScale, + uvTiling, + materialBase, +}) => { + 'use gpu'; + const camera = cameraUniform.$; + const params = spomParams.$; + + const N = normal; + const T = tangent; + const B = bitangent; + + const height = heightScale * params.reliefScale; + const local = std.sub(uv.mul(2), 1).mul(size); + const footprintPos = origin.add(T.mul(local.x)).add(B.mul(local.y)); + const hullMask = std.select(faceEdgeMask(uv), d.f32(1), materialBase === 0); + const hullDepth = 1 - (1 - volumeDepth) * hullMask; + const worldPos = footprintPos.add(N.mul((1 - hullDepth) * height)); + const clipPos = camera.projection.mul(camera.view).mul(d.vec4f(worldPos, 1)); + + return { + pos: clipPos, + uv, + volumeDepth: hullDepth, + worldPos, + origin, + size, + heightScale, + uvTiling, + materialBase, + T, + B, + N, + }; +}); + +const fragmentFn = tgpu.fragmentFn({ + in: { + uv: d.vec2f, + volumeDepth: d.f32, + worldPos: d.vec3f, + origin: d.vec3f, + size: d.vec2f, + heightScale: d.f32, + uvTiling: d.f32, + materialBase: d.interpolate('flat', d.u32), + T: d.vec3f, + B: d.vec3f, + N: d.vec3f, + }, + out: { + color: d.vec4f, + depth: d.builtin.fragDepth, + }, +})(({ uv, volumeDepth, worldPos, origin, size, heightScale, uvTiling, materialBase, T, B, N }) => { + 'use gpu'; + + const camera = cameraUniform.$; + const params = spomParams.$; + const height = heightScale * params.reliefScale; + const tiling = uvTiling * params.tiling; + + const lightDir = params.lightDir; + const viewDir = std.normalize(std.sub(camera.position.xyz, worldPos)); + const viewDirTS = toTangentSpace(viewDir, T, B, N); + const lightDirTS = toTangentSpace(lightDir, T, B, N); + + const jitter = d.f32(0.5); + + const startUv = uv.mul(tiling); + const spomDdx = std.dpdx(startUv); + const spomDdy = std.dpdy(startUv); + + const stepCount = std.max(params.parallaxSteps, 1); + const stepCountF = d.f32(stepCount); + const layerDepth = 1 / stepCountF; + + const startDepth = volumeDepth; + const uvPerDepth = uvRayPerDepth(viewDirTS, height, tiling, size).mul(-1); + const interval = intersectUvDepthBox(startUv, uvPerDepth, tiling, 1 - startDepth); + + if (interval.x > interval.y) { + std.discard(); + } + + let depthDelta = std.min(interval.y, interval.x + layerDepth * jitter); + let depth = startDepth + depthDelta; + let marchUv = startUv.add(uvPerDepth.mul(depthDelta)); + let surfaceDepth = sampleHeightDepth(marchUv, tiling, materialBase, spomDdx, spomDdy); + + let prevUv = d.vec2f(marchUv); + let prevDepth = depth; + let prevSurfaceDepth = surfaceDepth; + let hit = depth >= surfaceDepth; + + for (let i = d.u32(0); i < MAX_PARALLAX_STEPS; i++) { + if (hit || i >= stepCount || depthDelta >= interval.y) { + break; + } + + prevUv = d.vec2f(marchUv); + prevDepth = depth; + prevSurfaceDepth = surfaceDepth; + + depthDelta = std.min(interval.y, depthDelta + layerDepth); + depth = startDepth + depthDelta; + marchUv = startUv.add(uvPerDepth.mul(depthDelta)); + surfaceDepth = sampleHeightDepth(marchUv, tiling, materialBase, spomDdx, spomDdy); + + if (depth >= surfaceDepth) { + hit = true; + break; + } + } + + if (!hit) { + std.discard(); + } + + const prevGap = prevSurfaceDepth - prevDepth; + const currGap = surfaceDepth - depth; + const hitT = std.saturate(prevGap / std.max(prevGap - currGap, 0.00001)); + const sampleUv = std.mix(prevUv, marchUv, hitT); + const sampleDepth = std.mix(prevDepth, depth, hitT); + const hitUv01 = sampleUv.div(tiling); + const reliefMask = std.select(faceEdgeMask(hitUv01), d.f32(1), materialBase === 0); + const depthForWorld = std.mix(1, sampleDepth, reliefMask); + + const albedo = std.textureSampleGrad( + albedoView.$, + sampler.$, + sampleUv, + materialBase + MATERIAL_LAYER.albedo, + spomDdx, + spomDdy, + ).rgb; + const rawN = std.textureSampleGrad( + materialView.$, + sampler.$, + sampleUv, + materialBase + MATERIAL_LAYER.normal, + spomDdx, + spomDdy, + ).xyz; + const ao = std.textureSampleGrad( + materialView.$, + sampler.$, + sampleUv, + materialBase + MATERIAL_LAYER.ao, + spomDdx, + spomDdy, + ).r; + const roughness = std.textureSampleGrad( + materialView.$, + sampler.$, + sampleUv, + materialBase + MATERIAL_LAYER.roughness, + spomDdx, + spomDdy, + ).r; + const metallic = std.textureSampleGrad( + materialView.$, + sampler.$, + sampleUv, + materialBase + MATERIAL_LAYER.metallic, + spomDdx, + spomDdy, + ).r; + + const decoded = std.sub(rawN.mul(2), 1); + const tsNormal = std.normalize( + d.vec3f(decoded.xy.mul(d.vec2f(1, -1)).mul(reliefMask), std.mix(1, decoded.z, reliefMask)), + ); + const worldNormal = std.normalize( + T.mul(tsNormal.x).add(B.mul(tsNormal.y)).add(N.mul(tsNormal.z)), + ); + + let shadowFactor = d.f32(1); + + if (height > 0.00001 && lightDirTS.z > 0) { + const shadowUvStep = uvRayPerDepth(lightDirTS, height, tiling, size).div(stepCountF); + const softShadowMultiplier = d.f32(16); + let shadowUv = d.vec2f(sampleUv.add(shadowUvStep.mul(jitter))); + let shadowDepth = sampleDepth - layerDepth * jitter; + let marchedDepth = layerDepth * jitter; + + for (let i = d.u32(0); i < MAX_PARALLAX_STEPS; i++) { + if (i >= stepCount) { + break; + } + + shadowUv = shadowUv.add(shadowUvStep); + shadowDepth = shadowDepth - layerDepth; + marchedDepth = marchedDepth + layerDepth; + + if (isOutOfBounds(shadowUv, tiling) || shadowDepth <= 0) { + break; + } + + const currentHeight = sampleHeightDepth(shadowUv, tiling, materialBase, spomDdx, spomDdy); + if (shadowDepth >= currentHeight) { + shadowFactor = 0; + break; + } + + const gap = currentHeight - shadowDepth; + shadowFactor = std.min(shadowFactor, (softShadowMultiplier * gap) / marchedDepth); + } + + shadowFactor = std.saturate(shadowFactor); + } + shadowFactor = std.mix(1, shadowFactor, reliefMask); + + const H = std.normalize(viewDir.add(lightDir)); + + const NdotL = std.max(0, std.dot(worldNormal, lightDir)); + const NdotV = std.max(0, std.dot(worldNormal, viewDir)); + const NdotH = std.max(0, std.dot(worldNormal, H)); + const HdotV = std.max(0, std.dot(H, viewDir)); + + const F0 = std.mix(d.vec3f(0.04), albedo, metallic); + + const D = distributionGGX(NdotH, roughness); + const G = geometrySmith(NdotV, NdotL, roughness); + const F = fresnelSchlick(HdotV, F0); + + const kD = std.sub(1, F).mul(1 - metallic); + const diffuse = std.div(kD.mul(albedo), Math.PI); + const specular = std.div(F.mul(D).mul(G), std.max(4 * NdotV * NdotL, 0.001)); + + let shaded = d + .vec3f(0.03) + .mul(albedo) + .mul(ao) + .add(diffuse.add(specular).mul(NdotL).mul(shadowFactor)); + + shaded = std.div(shaded, shaded.add(1)); + shaded = std.pow(shaded, d.vec3f(1 / 3.2)); + + const hitLocal = std.sub(hitUv01.mul(2), 1).mul(size); + const hitFootprintPos = origin.add(T.mul(hitLocal.x)).add(B.mul(hitLocal.y)); + const hitWorldPos = hitFootprintPos.add(N.mul((1 - depthForWorld) * height)); + const hitClipPos = camera.projection.mul(camera.view).mul(d.vec4f(hitWorldPos, 1)); + + return { + color: d.vec4f(shaded, 1), + depth: hitClipPos.z / hitClipPos.w, + }; +}); + +const pipeline = root + .createRenderPipeline({ + attribs: { ...spomVertexLayout.attrib, ...spomInstanceLayout.attrib }, + vertex: vertexFn, + fragment: fragmentFn, + targets: { color: { format: presentationFormat } }, + primitive: { + cullMode: 'back', + }, + depthStencil: { + format: 'depth32float', + depthWriteEnabled: true, + depthCompare: 'less', + }, + }) + .with(spomVertexLayout, spomMesh.vertexBuffer) + .with(spomInstanceLayout, spomMesh.instanceBuffer) + .withIndexBuffer(spomMesh.indexBuffer); + +let depthTexture: TgpuTexture<{ + size: [number, number]; + format: 'depth32float'; +}> & + RenderFlag; + +function createDepthTexture() { + depthTexture?.destroy(); + depthTexture = root + .createTexture({ + size: [canvas.width, canvas.height], + format: 'depth32float', + }) + .$usage('render'); +} +createDepthTexture(); + +let frameId: number; +function frame() { + pipeline + .withColorAttachment({ + color: { view: context, clearValue: [0.48, 0.54, 0.6, 1] }, + }) + .withDepthStencilAttachment({ + view: depthTexture, + depthClearValue: 1, + depthLoadOp: 'clear', + depthStoreOp: 'store', + }) + .drawIndexed(spomMesh.indexCount, spomMesh.instanceCount); + frameId = requestAnimationFrame(frame); +} +frameId = requestAnimationFrame(frame); + +// #region Example controls and cleanup + +export const controls = defineControls({ + tiling: { + initial: 1, + min: 0.5, + max: 2, + step: 0.1, + onSliderChange(v) { + spomParams.patch({ tiling: v }); + }, + }, + 'relief scale': { + initial: 1, + min: 0.2, + max: 1.8, + step: 0.05, + onSliderChange(v) { + spomParams.patch({ reliefScale: v }); + }, + }, + 'parallax steps': { + initial: DEFAULT_PARALLAX_STEPS, + min: 4, + max: MAX_PARALLAX_STEPS, + step: 1, + onSliderChange(v) { + spomParams.patch({ parallaxSteps: Math.round(v) }); + }, + }, + 'sun height': { + initial: INITIAL_SUN_HEIGHT, + min: 0, + max: 1, + step: 0.01, + onSliderChange(v) { + sunHeight = v; + spomParams.patch({ lightDir: computeLightDir(sunAngle, sunHeight) }); + }, + }, + 'sun angle': { + initial: Math.round((INITIAL_SUN_ANGLE * 180) / Math.PI), + min: 0, + max: 360, + step: 1, + onSliderChange(v) { + sunAngle = (v * Math.PI) / 180; + spomParams.patch({ lightDir: computeLightDir(sunAngle, sunHeight) }); + }, + }, +}); + +const resizeObserver = new ResizeObserver(createDepthTexture); +resizeObserver.observe(canvas); + +export function onCleanup() { + cancelAnimationFrame(frameId); + cleanupCamera(); + resizeObserver.unobserve(canvas); + depthTexture.destroy(); + root.destroy(); +} + +// #endregion diff --git a/apps/typegpu-docs/src/examples/rendering/spom/meta.json b/apps/typegpu-docs/src/examples/rendering/spom/meta.json new file mode 100644 index 0000000000..7b39686045 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/spom/meta.json @@ -0,0 +1,6 @@ +{ + "title": "Silhouette Parallax Occlusion Mapping", + "category": "rendering", + "tags": ["3d", "lighting", "ray marching", "rasterization", "shadows"], + "coolFactor": 9 +} diff --git a/apps/typegpu-docs/src/examples/rendering/spom/shaders.ts b/apps/typegpu-docs/src/examples/rendering/spom/shaders.ts new file mode 100644 index 0000000000..07970d1f0b --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/spom/shaders.ts @@ -0,0 +1,102 @@ +import { d, std } from 'typegpu'; + +// PBR + +export function distributionGGX(NdotH: number, roughness: number) { + 'use gpu'; + const a = roughness * roughness; + const a2 = a * a; + const denom = NdotH * NdotH * (a2 - 1) + 1; + return a2 / (Math.PI * denom * denom); +} + +export function geometrySchlickGGX(NdotV: number, roughness: number) { + 'use gpu'; + const r = roughness + 1; + const k = (r * r) / 8; + return NdotV / (NdotV * (1 - k) + k); +} + +export function geometrySmith(NdotV: number, NdotL: number, roughness: number) { + 'use gpu'; + return geometrySchlickGGX(NdotV, roughness) * geometrySchlickGGX(NdotL, roughness); +} + +export function fresnelSchlick(cosTheta: number, F0: d.v3f) { + 'use gpu'; + const f = std.pow(1 - cosTheta, 5); + return F0.add(std.sub(1, F0).mul(f)); +} + +// SPOM + +export function isOutOfBounds(uv: d.v2f, tiling: number) { + 'use gpu'; + return uv.x < 0 || uv.x > tiling || uv.y < 0 || uv.y > tiling; +} + +export function toTangentSpace(dir: d.v3f, T: d.v3f, B: d.v3f, N: d.v3f) { + 'use gpu'; + return std.normalize(d.vec3f(std.dot(dir, T), std.dot(dir, B), std.dot(dir, N))); +} + +export function uvRayPerDepth(dir: d.v3f, heightScale: number, tiling: number, size: d.v2f) { + 'use gpu'; + const invZ = 1 / std.max(dir.z, 0.001); + return dir.xy.mul(invZ).mul(heightScale).mul(tiling).div(size); +} + +export function faceEdgeMask(uv01: d.v2f) { + 'use gpu'; + + const edge = std.min(std.min(uv01.x, 1 - uv01.x), std.min(uv01.y, 1 - uv01.y)); + return std.smoothstep(0.055, 0.14, edge); +} + +export function shapeSurfaceDepth(rawDepth: number, materialBase: number, uv01: d.v2f) { + 'use gpu'; + + if (materialBase === 0) { + return std.mix(0.58, rawDepth, 0.42); + } + + const height = 1 - rawDepth; + return 1 - height * faceEdgeMask(uv01); +} + +export function intersectUvDepthBox( + startUv: d.v2f, + rayUvPerDepth: d.v2f, + tiling: number, + maxDepthDelta: number, +) { + 'use gpu'; + + let tMin = d.f32(0); + let tMax = maxDepthDelta; + const eps = d.f32(0.00001); + + if (std.abs(rayUvPerDepth.x) < eps) { + if (startUv.x < 0 || startUv.x > tiling) { + return d.vec2f(1, 0); + } + } else { + const tx0 = (0 - startUv.x) / rayUvPerDepth.x; + const tx1 = (tiling - startUv.x) / rayUvPerDepth.x; + tMin = std.max(tMin, std.min(tx0, tx1)); + tMax = std.min(tMax, std.max(tx0, tx1)); + } + + if (std.abs(rayUvPerDepth.y) < eps) { + if (startUv.y < 0 || startUv.y > tiling) { + return d.vec2f(1, 0); + } + } else { + const ty0 = (0 - startUv.y) / rayUvPerDepth.y; + const ty1 = (tiling - startUv.y) / rayUvPerDepth.y; + tMin = std.max(tMin, std.min(ty0, ty1)); + tMax = std.min(tMax, std.max(ty0, ty1)); + } + + return d.vec2f(tMin, tMax); +} diff --git a/apps/typegpu-docs/src/examples/rendering/spom/types.ts b/apps/typegpu-docs/src/examples/rendering/spom/types.ts new file mode 100644 index 0000000000..8ec0468ba9 --- /dev/null +++ b/apps/typegpu-docs/src/examples/rendering/spom/types.ts @@ -0,0 +1,159 @@ +import tgpu, { d } from 'typegpu'; + +export const SpomVertex = d.struct({ + uv: d.vec2f, + volumeDepth: d.f32, +}); + +export const SpomInstance = d.struct({ + origin: d.vec3f, + size: d.vec2f, + tangent: d.vec3f, + bitangent: d.vec3f, + normal: d.vec3f, + heightScale: d.f32, + uvTiling: d.f32, + materialBase: d.u32, +}); + +export const SpomParams = d.struct({ + reliefScale: d.f32, + tiling: d.f32, + lightDir: d.vec3f, + parallaxSteps: d.u32, +}); + +export const INITIAL_SUN_ANGLE = Math.atan2(0.5, 1) + Math.PI; +export const INITIAL_SUN_HEIGHT = 0.05; +export const MIN_SUN_ELEVATION = 0.08; +export const MAX_PARALLAX_STEPS = 128; +export const DEFAULT_PARALLAX_STEPS = 80; + +export const SCENE_MATERIAL_IDS = ['beach', 'bricks'] as const; +export type SceneMaterialId = (typeof SCENE_MATERIAL_IDS)[number]; + +export const MATERIAL_LAYER_STRIDE = 6; +export const SCENE_TEXTURE_LAYER_COUNT = SCENE_MATERIAL_IDS.length * MATERIAL_LAYER_STRIDE; +export const MATERIAL_LAYER = { + albedo: 0, + normal: 1, + height: 2, + ao: 3, + roughness: 4, + metallic: 5, +} as const; + +export const spomVertexLayout = tgpu.vertexLayout(d.arrayOf(SpomVertex)); +export const spomInstanceLayout = tgpu.vertexLayout(d.arrayOf(SpomInstance), 'instance'); + +function createSpomGrid(subdivisions: number) { + const vertices: d.InferInput[] = []; + const indices: number[] = []; + + for (let y = 0; y <= subdivisions; y++) { + for (let x = 0; x <= subdivisions; x++) { + vertices.push({ + uv: [x / subdivisions, y / subdivisions], + volumeDepth: 0, + }); + } + } + + for (let y = 0; y < subdivisions; y++) { + for (let x = 0; x < subdivisions; x++) { + const a = y * (subdivisions + 1) + x; + const b = a + 1; + const c = a + subdivisions + 1; + const e = c + 1; + indices.push(a, c, b, b, c, e); + } + } + + return { vertices, indices }; +} + +const spomGrid = createSpomGrid(24); + +export const spomVertices = spomGrid.vertices; +export const spomIndices = spomGrid.indices; + +const materialBaseLayer = (materialIndex: number) => materialIndex * MATERIAL_LAYER_STRIDE; + +export const spomInstances: d.InferInput[] = [ + { + origin: [0, -0.55, 0], + size: [3.8, 2.8], + tangent: [1, 0, 0], + bitangent: [0, 0, 1], + normal: [0, 1, 0], + heightScale: 0.025, + uvTiling: 3.6, + materialBase: materialBaseLayer(0), + }, + { + origin: [0, 0.48, 0], + size: [0.72, 0.58], + tangent: [1, 0, 0], + bitangent: [0, 0, 1], + normal: [0, 1, 0], + heightScale: 0.045, + uvTiling: 1.65, + materialBase: materialBaseLayer(1), + }, + { + origin: [0, 0, 0.58], + size: [0.72, 0.48], + tangent: [-1, 0, 0], + bitangent: [0, 1, 0], + normal: [0, 0, 1], + heightScale: 0.012, + uvTiling: 1.65, + materialBase: materialBaseLayer(1), + }, + { + origin: [0, 0, -0.58], + size: [0.72, 0.48], + tangent: [1, 0, 0], + bitangent: [0, 1, 0], + normal: [0, 0, -1], + heightScale: 0.012, + uvTiling: 1.65, + materialBase: materialBaseLayer(1), + }, + { + origin: [0.72, 0, 0], + size: [0.58, 0.48], + tangent: [0, 0, 1], + bitangent: [0, 1, 0], + normal: [1, 0, 0], + heightScale: 0.012, + uvTiling: 1.65, + materialBase: materialBaseLayer(1), + }, + { + origin: [-0.72, 0, 0], + size: [0.58, 0.48], + tangent: [0, 0, -1], + bitangent: [0, 1, 0], + normal: [-1, 0, 0], + heightScale: 0.012, + uvTiling: 1.65, + materialBase: materialBaseLayer(1), + }, + { + origin: [0, -0.48, 0], + size: [0.72, 0.58], + tangent: [1, 0, 0], + bitangent: [0, 0, -1], + normal: [0, -1, 0], + heightScale: 0.025, + uvTiling: 1.65, + materialBase: materialBaseLayer(1), + }, +]; + +export function computeLightDir(angle: number, height: number): [number, number, number] { + const elevation = MIN_SUN_ELEVATION + (Math.PI / 2 - MIN_SUN_ELEVATION) * height; + const horizontal = Math.cos(elevation); + return [Math.cos(angle) * horizontal, Math.sin(elevation), Math.sin(angle) * horizontal]; +} From be5d1500fb8dda6a1c1a315ee50e0cf2b4a24a1a Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Wed, 6 May 2026 12:51:40 +0200 Subject: [PATCH 20/24] simplify --- .../rendering/area-light/environment.ts | 96 ------------------ .../examples/rendering/area-light/index.ts | 98 ++----------------- .../src/examples/rendering/area-light/ltc.ts | 9 +- .../rendering/area-light/ltcConfig.ts | 13 ++- .../examples/rendering/area-light/schemas.ts | 16 +-- .../examples/rendering/area-light/shaders.ts | 48 ++++++--- 6 files changed, 60 insertions(+), 220 deletions(-) delete mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/environment.ts diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts b/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts deleted file mode 100644 index f29ae89ffa..0000000000 --- a/apps/typegpu-docs/src/examples/rendering/area-light/environment.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { perlin3d } from '@typegpu/noise'; -import tgpu, { d, std } from 'typegpu'; - -export const ENVIRONMENT_SIZE = 256; -const ENVIRONMENT_EDGE_SCALE = ENVIRONMENT_SIZE / (ENVIRONMENT_SIZE - 1); - -export const environmentGenerationLayout = tgpu.bindGroupLayout({ - face: { uniform: d.u32 }, -}); - -function cubeFaceDirection(face: number, uv: d.v2f) { - 'use gpu'; - let direction = d.vec3f(1, -uv.y, -uv.x); - - if (face === d.u32(1)) { - direction = d.vec3f(-1, -uv.y, uv.x); - } else if (face === d.u32(2)) { - direction = d.vec3f(uv.x, 1, uv.y); - } else if (face === d.u32(3)) { - direction = d.vec3f(uv.x, -1, -uv.y); - } else if (face === d.u32(4)) { - direction = d.vec3f(uv.x, -uv.y, 1); - } else if (face === d.u32(5)) { - direction = d.vec3f(-uv.x, -uv.y, -1); - } - - return std.normalize(direction); -} - -function noise01(p: d.v3f) { - 'use gpu'; - return perlin3d.sample(p) * 0.5 + 0.5; -} - -function fbm(p: d.v3f) { - 'use gpu'; - return ( - noise01(p) * 0.5 + - noise01(p * 2.05 + d.vec3f(7.4, -3.1, 2.6)) * 0.32 + - noise01(p * 4.1 + d.vec3f(-4.8, 6.2, 9.1)) * 0.18 - ); -} - -const GLOWS = [ - { dir: d.vec3f(-0.36, 0.46, 0.82), tint: d.vec3f(0.76, 0.24, 0.46), power: 9, strength: 0.22 }, - { dir: d.vec3f(-0.68, 0.04, 0.73), tint: d.vec3f(1, 0.08, 0.58), power: 24, strength: 0.55 }, - { dir: d.vec3f(-0.2, -0.02, 0.98), tint: d.vec3f(1, 0.42, 0.08), power: 28, strength: 0.34 }, - { dir: d.vec3f(0.74, 0.03, -0.54), tint: d.vec3f(0.5, 0.2, 1), power: 34, strength: 0.22 }, -]; - -function glow(direction: d.v3f, source: d.v3f, color: d.v3f, power: number, strength: number) { - 'use gpu'; - return color * std.max(std.dot(direction, std.normalize(source)), 0) ** d.f32(power) * strength; -} - -function cloudDensity(direction: d.v3f) { - 'use gpu'; - const p = direction * 1.28 + d.vec3f(2.1, -1.4, 4.7); - const warp = d.vec3f(fbm(p + 8.3), fbm(p - 5.6), fbm(p + d.vec3f(-2.2, 4.1, 7.5))) - 0.5; - const body = std.smoothstep(0.26, 0.76, fbm(p + warp * 0.9)); - const wisps = std.smoothstep(0.44, 0.86, fbm(p * 2.35 + warp * 0.65 + 6.2)); - const verticalEase = 0.78 + (1 - std.abs(direction.y)) * 0.22; - - return std.clamp((body * 0.78 + wisps * 0.22) * verticalEase, 0, 1); -} - -function environmentColor(direction: d.v3f) { - 'use gpu'; - const vertical = direction.y * 0.5 + 0.5; - const shell = std.mix(d.vec3f(0.018, 0.01, 0.024), d.vec3f(0.041, 0.023, 0.045), vertical); - const clouds = cloudDensity(direction); - const cloudTint = std.mix(d.vec3f(0.12, 0.055, 0.11), d.vec3f(0.68, 0.34, 0.52), clouds); - let color = std.mix(shell, cloudTint, clouds * 0.58); - - const horizonHaze = 1 - std.smoothstep(0.02, 0.36, std.abs(direction.y + 0.03)); - color += d.vec3f(0.16, 0.045, 0.085) * horizonHaze * 0.16; - - for (const g of tgpu.unroll(GLOWS)) { - color += glow(direction, g.dir, g.tint, g.power, g.strength); - } - - return std.clamp(color, d.vec3f(0), d.vec3f(1)); -} - -export const environmentFragment = tgpu.fragmentFn({ - in: { uv: d.vec2f }, - out: d.vec4f, -})(({ uv }) => { - 'use gpu'; - const ndc = uv * d.vec2f(2, -2) + d.vec2f(-1, 1); - const direction = cubeFaceDirection( - environmentGenerationLayout.$.face, - ndc * ENVIRONMENT_EDGE_SCALE, - ); - return d.vec4f(environmentColor(direction), 1); -}); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 503f2213a3..11c67a7c62 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -1,14 +1,8 @@ -import { perlin3d } from '@typegpu/noise'; import tgpu, { common, d, std } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; -import { - ENVIRONMENT_SIZE, - environmentFragment, - environmentGenerationLayout, -} from './environment.ts'; import { createSceneMesh, initialLights } from './geometry.ts'; -import { configureLtcFiltering } from './ltcConfig.ts'; +import { ltcFiltering } from './ltcConfig.ts'; import { LTC_1, LTC_2 } from './ltcTables.ts'; const SAMPLE_COUNT = 4; @@ -18,32 +12,20 @@ const DISCO_HUE_SPEED = 0.00008; const root = await tgpu.init({ device: { optionalFeatures: ['float32-filterable'] }, }); -const canFilterF32 = root.enabledFeatures.has('float32-filterable'); -configureLtcFiltering(canFilterF32); - -const { - environmentLayout, - LIGHT_COUNT, - Lights, - ltcLayout, - RenderParams, - sceneLayout, - vertexLayout, -} = await import('./schemas.ts'); +ltcFiltering(root.enabledFeatures.has('float32-filterable')); + +const { LIGHT_COUNT, Lights, ltcLayout, RenderParams, sceneLayout, vertexLayout } = + await import('./schemas.ts'); const { lightFragment, lightVertex, mainFragment, skyFragment } = await import('./shaders.ts'); const INITIAL_PARAMS = { exposure: 1.12, environmentIntensity: 0.25, - diffuseIblStrength: 0.06, - specularIblStrength: 0.95, - wetness: 0.12, time: 0, } satisfies d.InferInput; const canvas = document.querySelector('canvas') as HTMLCanvasElement; const context = root.configureContext({ canvas, alphaMode: 'premultiplied' }); const presentationFormat = navigator.gpu.getPreferredCanvasFormat(); -const perlinCache = perlin3d.staticCache({ root, size: d.vec3u(128, 128, 128) }); const mesh = createSceneMesh(); const vertexBuffer = root @@ -77,49 +59,6 @@ const ltcBindGroup = root.createBindGroup(ltcLayout, { }), }); -const environmentTexture = root - .createTexture({ - size: [ENVIRONMENT_SIZE, ENVIRONMENT_SIZE, 6], - format: 'rgba8unorm', - }) - .$usage('sampled', 'render'); - -const environmentFaceUniform = root.createUniform(d.u32); -const environmentGenerationBindGroup = root.createBindGroup(environmentGenerationLayout, { - face: environmentFaceUniform.buffer, -}); - -const environmentPipeline = root.pipe(perlinCache.inject()).createRenderPipeline({ - vertex: common.fullScreenTriangle, - fragment: environmentFragment, - targets: { format: 'rgba8unorm' }, -}); - -for (let face = 0; face < 6; face++) { - environmentFaceUniform.write(face); - environmentPipeline - .with(environmentGenerationBindGroup) - .withColorAttachment({ - view: environmentTexture.createView('render', { - baseArrayLayer: face, - arrayLayerCount: 1, - }), - loadOp: 'clear', - storeOp: 'store', - }) - .draw(3); -} - -const environmentSampler = root.createSampler({ - magFilter: 'linear', - minFilter: 'linear', -}); - -const environmentBindGroup = root.createBindGroup(environmentLayout, { - environmentMap: environmentTexture.createView(d.textureCube(d.f32)), - environmentSampler, -}); - function createRenderTargets() { const size = [canvas.width, canvas.height] as [number, number]; @@ -147,7 +86,6 @@ function destroyRenderTargets(renderTargets: ReturnType paramsUniform.patch({ exposure }), }, - 'sky glow': { - initial: INITIAL_PARAMS.environmentIntensity, - min: 0, - max: 0.5, - step: 0.01, - onSliderChange: (environmentIntensity) => { - skyGlow = environmentIntensity; - paramsUniform.patch({ - environmentIntensity: skyGlow * (1 - std.smoothstep(0, 1, discoMix)), - }); - }, - }, - 'shallow water': { - initial: INITIAL_PARAMS.wetness, - min: 0, - max: 0.5, - step: 0.01, - onSliderChange: (wetness) => paramsUniform.patch({ wetness }), - }, ...lightControls, }); @@ -392,6 +311,5 @@ export function onCleanup() { cleanupCamera(); resizeObserver.disconnect(); destroyRenderTargets(targets); - perlinCache.destroy(); root.destroy(); } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts index 15023012eb..c20e37902b 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts @@ -1,5 +1,8 @@ -import { d, std } from 'typegpu'; -import { CAN_FILTER_FLOAT32_LTC, ltcLayout, RectLight } from './schemas.ts'; +import tgpu, { d, std } from 'typegpu'; +import { ltcFiltering } from './ltcConfig.ts'; +import { ltcLayout, RectLight } from './schemas.ts'; + +const ltcFilteringEnabled = tgpu.comptime(ltcFiltering); const LUT_SIZE = 64; const LUT_SCALE = (LUT_SIZE - 1) / LUT_SIZE; @@ -36,7 +39,7 @@ function bilinearLut(texture: d.texture2d, uv: d.v2f) { function sampleLtcTexture(texture: d.texture2d, uv: d.v2f) { 'use gpu'; - if (CAN_FILTER_FLOAT32_LTC) { + if (ltcFilteringEnabled()) { return std.textureSampleLevel(texture, ltcLayout.$.ltcSampler, uv, 0); } else { return bilinearLut(texture, uv); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts index c0b7c1e168..c0376c2d2f 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts @@ -1,9 +1,8 @@ -let configuredCanFilterFloat32Ltc = false; +let canFilter = false; -export function configureLtcFiltering(enabled: boolean) { - configuredCanFilterFloat32Ltc = enabled; -} - -export function getCanFilterFloat32Ltc() { - return configuredCanFilterFloat32Ltc; +export function ltcFiltering(enabled?: boolean) { + if (enabled !== undefined) { + canFilter = enabled; + } + return canFilter; } diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index 1cc3bb33f5..33123a8494 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -1,6 +1,6 @@ import tgpu, { d } from 'typegpu'; import { Camera } from '../../common/setup-orbit-camera.ts'; -import { getCanFilterFloat32Ltc } from './ltcConfig.ts'; +import { ltcFiltering } from './ltcConfig.ts'; export const LIGHT_COUNT = 3; @@ -27,9 +27,6 @@ export const Lights = d.arrayOf(RectLight, LIGHT_COUNT); export const RenderParams = d.struct({ exposure: d.f32, environmentIntensity: d.f32, - diffuseIblStrength: d.f32, - specularIblStrength: d.f32, - wetness: d.f32, time: d.f32, }); @@ -41,21 +38,14 @@ export const sceneLayout = tgpu.bindGroupLayout({ params: { uniform: RenderParams }, }); -export const CAN_FILTER_FLOAT32_LTC = getCanFilterFloat32Ltc(); - export const ltcLayout = tgpu.bindGroupLayout({ ltcMat: { texture: d.texture2d(d.f32), - sampleType: CAN_FILTER_FLOAT32_LTC ? 'float' : 'unfilterable-float', + sampleType: ltcFiltering() ? 'float' : 'unfilterable-float', }, ltcAmp: { texture: d.texture2d(d.f32), - sampleType: CAN_FILTER_FLOAT32_LTC ? 'float' : 'unfilterable-float', + sampleType: ltcFiltering() ? 'float' : 'unfilterable-float', }, ltcSampler: { sampler: 'filtering' }, }); - -export const environmentLayout = tgpu.bindGroupLayout({ - environmentMap: { texture: d.textureCube(d.f32) }, - environmentSampler: { sampler: 'filtering' }, -}); diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index f7f8616b68..76fcd6b4a0 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -5,11 +5,25 @@ import { sampleLtcAmplitude, sampleLtcMatrix, } from './ltc.ts'; -import { environmentLayout, LIGHT_COUNT, sceneLayout, vertexLayout } from './schemas.ts'; +import { LIGHT_COUNT, sceneLayout, vertexLayout } from './schemas.ts'; export { vertexLayout }; const SCALAR_ENVIRONMENT_LUMA = 0.085; +const DIFFUSE_IBL_STRENGTH = 0.06; +const SPECULAR_IBL_STRENGTH = 0.95; +const WETNESS = 0.12; + +const ENV_GROUND = d.vec3f(0.012, 0.008, 0.018); +const ENV_HORIZON = d.vec3f(0.062, 0.026, 0.072); +const ENV_ZENITH = d.vec3f(0.02, 0.013, 0.036); +const ENV_HORIZON_GLOW = d.vec3f(0.22, 0.06, 0.1); + +const ENV_GLOWS = [ + { dir: d.vec3f(-0.5, 0.18, 0.85), tint: d.vec3f(1, 0.2, 0.5), power: 16, strength: 0.5 }, + { dir: d.vec3f(0.7, 0.08, -0.65), tint: d.vec3f(0.55, 0.22, 1), power: 22, strength: 0.3 }, + { dir: d.vec3f(-0.25, -0.05, 1), tint: d.vec3f(1, 0.45, 0.12), power: 28, strength: 0.25 }, +]; const lightQuadCorners = tgpu.const(d.arrayOf(d.vec2f, 6), [ d.vec2f(-1, -1), @@ -42,15 +56,27 @@ function fresnelSchlickRoughness(cosTheta: number, f0: d.v3f, roughness: number) return f0 + (clampedF0 - f0) * (1 - std.saturate(cosTheta)) ** 5; } +function sampleEnvironment(direction: d.v3f) { + 'use gpu'; + const dir = std.normalize(direction); + const t = std.saturate(dir.y * 0.5 + 0.5); + const upMask = std.smoothstep(0.5, 1, t); + const downMask = 1 - std.smoothstep(0, 0.5, t); + let color = std.mix(std.mix(ENV_HORIZON, ENV_ZENITH, upMask), ENV_GROUND, downMask); + + const horizonBand = 1 - std.smoothstep(0, 0.22, std.abs(dir.y)); + color += ENV_HORIZON_GLOW * horizonBand * 0.45; + + for (const g of tgpu.unroll(ENV_GLOWS)) { + const lobe = std.max(std.dot(dir, std.normalize(g.dir)), 0) ** d.f32(g.power); + color += g.tint * lobe * g.strength; + } + return color; +} + function sampleSkyEnvironment(direction: d.v3f) { 'use gpu'; - const sample = std.textureSampleLevel( - environmentLayout.$.environmentMap, - environmentLayout.$.environmentSampler, - std.normalize(direction), - 0, - ); - return sample.rgb * sceneLayout.$.params.environmentIntensity; + return sampleEnvironment(direction) * sceneLayout.$.params.environmentIntensity; } function tonemap(color: d.v3f) { @@ -142,12 +168,12 @@ function evaluateLighting(surface: d.Infer) { (1 - surface.metallic) * surface.albedo * envLuminance * - sceneLayout.$.params.diffuseIblStrength; + DIFFUSE_IBL_STRENGTH; const indirectSpecular = fresnelSchlick(NdotV, surface.f0) * envLuminance * (1 - surface.roughness * 0.35) * - sceneLayout.$.params.specularIblStrength * + SPECULAR_IBL_STRENGTH * surface.specularBoost; return directLight + indirectDiffuse + indirectSpecular; @@ -172,7 +198,7 @@ export const mainFragment = tgpu.fragmentFn({ const surfaceNormal = std.select(std.neg(vertexNormal), vertexNormal, frontFacing); const viewDir = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); - const wetMask = wetness * sceneLayout.$.params.wetness * std.saturate(surfaceNormal.y * 1.35); + const wetMask = wetness * WETNESS * std.saturate(surfaceNormal.y * 1.35); const film = wetMask * waterFilm(worldPos, sceneLayout.$.params.time); const shadingNormal = waterNormal(surfaceNormal, worldPos, std.saturate(wetMask * 1.35)); From 3664c2fef20aad7fb0a3e91fd32728ae1ffed16b Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Wed, 6 May 2026 13:07:03 +0200 Subject: [PATCH 21/24] cleanup --- .../examples/rendering/area-light/index.ts | 37 ++-- .../src/examples/rendering/area-light/ltc.ts | 42 ++-- .../rendering/area-light/ltcConfig.ts | 8 - .../examples/rendering/area-light/schemas.ts | 24 +-- .../examples/rendering/area-light/shaders.ts | 184 +++++++++--------- 5 files changed, 151 insertions(+), 144 deletions(-) delete mode 100644 apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts index 11c67a7c62..d386e4cfcb 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/index.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/index.ts @@ -2,21 +2,25 @@ import tgpu, { common, d, std } from 'typegpu'; import { Camera, setupOrbitCamera } from '../../common/setup-orbit-camera.ts'; import { defineControls } from '../../common/defineControls.ts'; import { createSceneMesh, initialLights } from './geometry.ts'; -import { ltcFiltering } from './ltcConfig.ts'; import { LTC_1, LTC_2 } from './ltcTables.ts'; +import { + LIGHT_COUNT, + Lights, + RenderParams, + createLtcLayout, + sceneLayout, + vertexLayout, +} from './schemas.ts'; +import { createMainFragment, lightFragment, lightVertex, skyFragment } from './shaders.ts'; const SAMPLE_COUNT = 4; const DISCO_TRANSITION_MS = 1600; const DISCO_HUE_SPEED = 0.00008; -const root = await tgpu.init({ - device: { optionalFeatures: ['float32-filterable'] }, -}); -ltcFiltering(root.enabledFeatures.has('float32-filterable')); - -const { LIGHT_COUNT, Lights, ltcLayout, RenderParams, sceneLayout, vertexLayout } = - await import('./schemas.ts'); -const { lightFragment, lightVertex, mainFragment, skyFragment } = await import('./shaders.ts'); +const root = await tgpu.init({ device: { optionalFeatures: ['float32-filterable'] } }); +const ltcFilterable = root.enabledFeatures.has('float32-filterable'); +const ltcLayout = createLtcLayout(ltcFilterable); +const mainFragment = createMainFragment(ltcLayout, ltcFilterable); const INITIAL_PARAMS = { exposure: 1.12, @@ -53,10 +57,17 @@ const sceneBindGroup = root.createBindGroup(sceneLayout, { const ltcBindGroup = root.createBindGroup(ltcLayout, { ltcMat: createLtcTexture(LTC_1), ltcAmp: createLtcTexture(LTC_2), - ltcSampler: root.createSampler({ - magFilter: 'linear', - minFilter: 'linear', - }), + ltcSampler: root.createSampler( + ltcFilterable + ? { + magFilter: 'linear', + minFilter: 'linear', + } + : { + magFilter: 'nearest', + minFilter: 'nearest', + }, + ), }); function createRenderTargets() { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts index c20e37902b..751a4d33f3 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/ltc.ts @@ -1,8 +1,6 @@ import tgpu, { d, std } from 'typegpu'; -import { ltcFiltering } from './ltcConfig.ts'; -import { ltcLayout, RectLight } from './schemas.ts'; - -const ltcFilteringEnabled = tgpu.comptime(ltcFiltering); +import { RectLight } from './schemas.ts'; +import type { LtcLayout } from './schemas.ts'; const LUT_SIZE = 64; const LUT_SCALE = (LUT_SIZE - 1) / LUT_SIZE; @@ -37,24 +35,30 @@ function bilinearLut(texture: d.texture2d, uv: d.v2f) { return std.mix(std.mix(t00, t10, frac.x), std.mix(t01, t11, frac.x), frac.y); } -function sampleLtcTexture(texture: d.texture2d, uv: d.v2f) { - 'use gpu'; - if (ltcFilteringEnabled()) { - return std.textureSampleLevel(texture, ltcLayout.$.ltcSampler, uv, 0); - } else { - return bilinearLut(texture, uv); +export function createLtcSampling(ltcLayout: LtcLayout, filterable: boolean) { + const ltcFilteringEnabled = tgpu.comptime(() => filterable); + + function sampleLtcTexture(texture: d.texture2d, uv: d.v2f) { + 'use gpu'; + if (ltcFilteringEnabled()) { + return std.textureSampleLevel(texture, ltcLayout.$.ltcSampler, uv, 0); + } else { + return bilinearLut(texture, uv); + } } -} -export function sampleLtcMatrix(uv: d.v2f) { - 'use gpu'; - const t = sampleLtcTexture(ltcLayout.$.ltcMat, uv); - return d.mat3x3f(d.vec3f(t.x, 0, t.y), d.vec3f(0, 1, 0), d.vec3f(t.z, 0, t.w)); -} + function sampleLtcMatrix(uv: d.v2f) { + 'use gpu'; + const t = sampleLtcTexture(ltcLayout.$.ltcMat, uv); + return d.mat3x3f(d.vec3f(t.x, 0, t.y), d.vec3f(0, 1, 0), d.vec3f(t.z, 0, t.w)); + } -export function sampleLtcAmplitude(uv: d.v2f) { - 'use gpu'; - return sampleLtcTexture(ltcLayout.$.ltcAmp, uv); + function sampleLtcAmplitude(uv: d.v2f) { + 'use gpu'; + return sampleLtcTexture(ltcLayout.$.ltcAmp, uv); + } + + return { sampleLtcAmplitude, sampleLtcMatrix }; } function integrateEdge(from: d.v3f, to: d.v3f) { diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts b/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts deleted file mode 100644 index c0376c2d2f..0000000000 --- a/apps/typegpu-docs/src/examples/rendering/area-light/ltcConfig.ts +++ /dev/null @@ -1,8 +0,0 @@ -let canFilter = false; - -export function ltcFiltering(enabled?: boolean) { - if (enabled !== undefined) { - canFilter = enabled; - } - return canFilter; -} diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts index 33123a8494..8f8cbf589e 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/schemas.ts @@ -1,6 +1,5 @@ import tgpu, { d } from 'typegpu'; import { Camera } from '../../common/setup-orbit-camera.ts'; -import { ltcFiltering } from './ltcConfig.ts'; export const LIGHT_COUNT = 3; @@ -38,14 +37,17 @@ export const sceneLayout = tgpu.bindGroupLayout({ params: { uniform: RenderParams }, }); -export const ltcLayout = tgpu.bindGroupLayout({ - ltcMat: { +export function createLtcLayout(filterable: boolean) { + const texture = { texture: d.texture2d(d.f32), - sampleType: ltcFiltering() ? 'float' : 'unfilterable-float', - }, - ltcAmp: { - texture: d.texture2d(d.f32), - sampleType: ltcFiltering() ? 'float' : 'unfilterable-float', - }, - ltcSampler: { sampler: 'filtering' }, -}); + sampleType: filterable ? ('float' as const) : ('unfilterable-float' as const), + }; + + return tgpu.bindGroupLayout({ + ltcMat: texture, + ltcAmp: texture, + ltcSampler: { sampler: filterable ? 'filtering' : 'non-filtering' }, + }); +} + +export type LtcLayout = ReturnType; diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts index 76fcd6b4a0..a2dbfd0b30 100644 --- a/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts +++ b/apps/typegpu-docs/src/examples/rendering/area-light/shaders.ts @@ -1,13 +1,7 @@ import tgpu, { d, std } from 'typegpu'; -import { - evaluateTwoSidedLtcRectFormFactor, - ltcUv, - sampleLtcAmplitude, - sampleLtcMatrix, -} from './ltc.ts'; -import { LIGHT_COUNT, sceneLayout, vertexLayout } from './schemas.ts'; - -export { vertexLayout }; +import { createLtcSampling, evaluateTwoSidedLtcRectFormFactor, ltcUv } from './ltc.ts'; +import { LIGHT_COUNT, sceneLayout } from './schemas.ts'; +import type { LtcLayout } from './schemas.ts'; const SCALAR_ENVIRONMENT_LUMA = 0.085; const DIFFUSE_IBL_STRENGTH = 0.06; @@ -128,93 +122,97 @@ function waterNormal(baseNormal: d.v3f, worldPos: d.v3f, intensity: number) { return std.normalize(std.mix(baseNormal, rippledNormal, intensity)); } -function evaluateLighting(surface: d.Infer) { - 'use gpu'; - const NdotV = std.saturate(std.dot(surface.normal, surface.viewDir)); - - const lutUv = ltcUv(surface.roughness, NdotV); - const ltcInverseTransform = sampleLtcMatrix(lutUv); - const ltcCoeffs = sampleLtcAmplitude(lutUv); - const ltcFresnel = surface.f0 * ltcCoeffs.x + (1 - surface.f0) * ltcCoeffs.y; - const diffuseLobe = (1 - ltcFresnel) * (1 - surface.metallic) * surface.albedo; - - let directLight = d.vec3f(0); - for (const i of tgpu.unroll(std.range(LIGHT_COUNT))) { - const light = sceneLayout.$.lights[i]; - const diffuseFormFactor = evaluateTwoSidedLtcRectFormFactor( - surface.normal, - surface.viewDir, - surface.worldPos, - d.mat3x3f.identity(), - light, - ); - const specularFormFactor = evaluateTwoSidedLtcRectFormFactor( - surface.normal, - surface.viewDir, - surface.worldPos, - ltcInverseTransform, - light, - ); - directLight += - light.color * - light.intensity * - (diffuseLobe * diffuseFormFactor + ltcFresnel * specularFormFactor * surface.specularBoost); +export function createMainFragment(ltcLayout: LtcLayout, ltcFilterable: boolean) { + const { sampleLtcAmplitude, sampleLtcMatrix } = createLtcSampling(ltcLayout, ltcFilterable); + + function evaluateLighting(surface: d.Infer) { + 'use gpu'; + const NdotV = std.saturate(std.dot(surface.normal, surface.viewDir)); + + const lutUv = ltcUv(surface.roughness, NdotV); + const ltcInverseTransform = sampleLtcMatrix(lutUv); + const ltcCoeffs = sampleLtcAmplitude(lutUv); + const ltcFresnel = surface.f0 * ltcCoeffs.x + (1 - surface.f0) * ltcCoeffs.y; + const diffuseLobe = (1 - ltcFresnel) * (1 - surface.metallic) * surface.albedo; + + let directLight = d.vec3f(0); + for (const i of tgpu.unroll(std.range(LIGHT_COUNT))) { + const light = sceneLayout.$.lights[i]; + const diffuseFormFactor = evaluateTwoSidedLtcRectFormFactor( + surface.normal, + surface.viewDir, + surface.worldPos, + d.mat3x3f.identity(), + light, + ); + const specularFormFactor = evaluateTwoSidedLtcRectFormFactor( + surface.normal, + surface.viewDir, + surface.worldPos, + ltcInverseTransform, + light, + ); + directLight += + light.color * + light.intensity * + (diffuseLobe * diffuseFormFactor + ltcFresnel * specularFormFactor * surface.specularBoost); + } + + const envLuminance = sceneLayout.$.params.environmentIntensity * SCALAR_ENVIRONMENT_LUMA; + const envFresnel = fresnelSchlickRoughness(NdotV, surface.f0, surface.roughness); + const indirectDiffuse = + (1 - envFresnel) * + (1 - surface.metallic) * + surface.albedo * + envLuminance * + DIFFUSE_IBL_STRENGTH; + const indirectSpecular = + fresnelSchlick(NdotV, surface.f0) * + envLuminance * + (1 - surface.roughness * 0.35) * + SPECULAR_IBL_STRENGTH * + surface.specularBoost; + + return directLight + indirectDiffuse + indirectSpecular; } - const envLuminance = sceneLayout.$.params.environmentIntensity * SCALAR_ENVIRONMENT_LUMA; - const envFresnel = fresnelSchlickRoughness(NdotV, surface.f0, surface.roughness); - const indirectDiffuse = - (1 - envFresnel) * - (1 - surface.metallic) * - surface.albedo * - envLuminance * - DIFFUSE_IBL_STRENGTH; - const indirectSpecular = - fresnelSchlick(NdotV, surface.f0) * - envLuminance * - (1 - surface.roughness * 0.35) * - SPECULAR_IBL_STRENGTH * - surface.specularBoost; - - return directLight + indirectDiffuse + indirectSpecular; -} - -export const mainFragment = tgpu.fragmentFn({ - in: { - worldPos: d.vec3f, - normal: d.vec3f, - albedo: d.vec3f, - material: d.vec3f, - frontFacing: d.builtin.frontFacing, - }, - out: d.vec4f, -})(({ worldPos, normal, albedo, material, frontFacing }) => { - 'use gpu'; - const roughness = material.x; - const metallic = material.y; - const wetness = material.z; - - const vertexNormal = std.normalize(normal); - const surfaceNormal = std.select(std.neg(vertexNormal), vertexNormal, frontFacing); - const viewDir = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); - - const wetMask = wetness * WETNESS * std.saturate(surfaceNormal.y * 1.35); - const film = wetMask * waterFilm(worldPos, sceneLayout.$.params.time); - const shadingNormal = waterNormal(surfaceNormal, worldPos, std.saturate(wetMask * 1.35)); - - const surface = Surface({ - normal: shadingNormal, - viewDir, - worldPos, - albedo: std.mix(albedo, albedo * 0.44, film), - f0: std.mix(std.mix(d.vec3f(0.04), albedo, metallic), d.vec3f(0.08), film * (1 - metallic)), - roughness: std.clamp(std.mix(roughness, std.mix(0.065, 0.032, wetMask), film), 0.006, 1), - metallic, - specularBoost: 1 + film * 3.2, + return tgpu.fragmentFn({ + in: { + worldPos: d.vec3f, + normal: d.vec3f, + albedo: d.vec3f, + material: d.vec3f, + frontFacing: d.builtin.frontFacing, + }, + out: d.vec4f, + })(({ worldPos, normal, albedo, material, frontFacing }) => { + 'use gpu'; + const roughness = material.x; + const metallic = material.y; + const wetness = material.z; + + const vertexNormal = std.normalize(normal); + const surfaceNormal = std.select(std.neg(vertexNormal), vertexNormal, frontFacing); + const viewDir = std.normalize(sceneLayout.$.camera.position.xyz - worldPos); + + const wetMask = wetness * WETNESS * std.saturate(surfaceNormal.y * 1.35); + const film = wetMask * waterFilm(worldPos, sceneLayout.$.params.time); + const shadingNormal = waterNormal(surfaceNormal, worldPos, std.saturate(wetMask * 1.35)); + + const surface = Surface({ + normal: shadingNormal, + viewDir, + worldPos, + albedo: std.mix(albedo, albedo * 0.44, film), + f0: std.mix(std.mix(d.vec3f(0.04), albedo, metallic), d.vec3f(0.08), film * (1 - metallic)), + roughness: std.clamp(std.mix(roughness, std.mix(0.065, 0.032, wetMask), film), 0.006, 1), + metallic, + specularBoost: 1 + film * 3.2, + }); + + return d.vec4f(tonemap(evaluateLighting(surface)), 1); }); - - return d.vec4f(tonemap(evaluateLighting(surface)), 1); -}); +} export const skyFragment = tgpu.fragmentFn({ in: { uv: d.vec2f }, From 579b999359e5c5989fca9b9f868908d68ab0d733 Mon Sep 17 00:00:00 2001 From: Konrad Reczko Date: Wed, 6 May 2026 13:11:52 +0200 Subject: [PATCH 22/24] thumbnail --- .../rendering/area-light/thumbnail.png | Bin 162194 -> 649319 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/typegpu-docs/src/examples/rendering/area-light/thumbnail.png b/apps/typegpu-docs/src/examples/rendering/area-light/thumbnail.png index df9558b690905c28b15b155e311dc4aa10487919..d402b9af9ba0c0e61ff325cc8dd6a79c2ac599cb 100644 GIT binary patch literal 649319 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