From 95c79efe83be76f733f95a8a9976d58b99760aac Mon Sep 17 00:00:00 2001 From: johnruina Date: Tue, 3 Nov 2026 20:05:02 -0500 Subject: [PATCH] base --- .!7804!Animator.h | 105 ----- Animator.h | 18 +- BodyComponentActions.h | 7 - Character.cpp | 287 +++++++++---- Character.h | 161 +++---- CharacterAction.h | 23 + CharacterActions.h | 15 - CharacterManager.cpp | 20 +- CharacterManager.h | 8 +- CharacterMind.cpp | 29 ++ CharacterMind.h | 35 ++ Console.cpp | 212 ++++++++++ Console.h | 67 +++ DefaultBodyComponents.h | 36 -- Engine.cpp | 587 +++++++++++++------------- Engine.h | 4 + Physics.cpp | 417 ++++++++++++++----- Physics.h | 79 +++- RenderSystem.cpp | 28 +- ResourceManager.cpp | 48 +++ ResourceManager.h | 5 + TexturePainter.h | 71 ---- assets/idle.glb | Bin 0 -> 466392 bytes assets/rightarmthrow.glb | Bin 0 -> 58636 bytes assets/testanim.dae | 741 --------------------------------- assets/walkanim.dae | 741 --------------------------------- assets/walkanim.fbx | Bin 700988 -> 0 bytes eiifwhrn.vcxproj | 10 +- eiifwhrn.vcxproj.filters | 14 +- shaders/default.frag | 90 +--- shaders/default.vert | 3 +- shaders/deferred_lighting.frag | 88 +--- shaders/geometry.frag | 2 +- shaders/geometry.vert | 3 +- t.h | 39 +- t2d.h | 2 + tFunctions.cpp | 198 +++++---- tFunctions.h | 4 +- 38 files changed, 1636 insertions(+), 2561 deletions(-) delete mode 100644 .!7804!Animator.h delete mode 100644 BodyComponentActions.h create mode 100644 CharacterAction.h delete mode 100644 CharacterActions.h create mode 100644 CharacterMind.cpp create mode 100644 CharacterMind.h create mode 100644 Console.cpp create mode 100644 Console.h delete mode 100644 DefaultBodyComponents.h delete mode 100644 TexturePainter.h create mode 100644 assets/idle.glb create mode 100644 assets/rightarmthrow.glb delete mode 100644 assets/testanim.dae delete mode 100644 assets/walkanim.dae delete mode 100644 assets/walkanim.fbx diff --git a/.!7804!Animator.h b/.!7804!Animator.h deleted file mode 100644 index 44bd173..0000000 --- a/.!7804!Animator.h +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef ANIMATOR_CLASS -#define ANIMATOR_CLASS - -#include -#include -#include -#include -#include -#include -#include -#include "Rig.h" - -// Scale of the "Head" bone (and what hangs off it), around the neck. 1 = as authored. -inline float HeadScale = 1.0f; - -struct AssimpNodeData -{ - glm::mat4 transformation; - std::string name; - int childrenCount; - std::vector children; -}; - -// ============================================================================ -// Animation -// ============================================================================ -class Animation -{ -public: - Animation() = default; - - Animation(const std::string& animationPath, Rig* rig = nullptr) - { - Assimp::Importer importer; - const aiScene* scene = importer.ReadFile(animationPath, aiProcess_Triangulate); - assert(scene && scene->mRootNode); - - const aiAnimation* anim = scene->mAnimations[0]; - m_Duration = (float)anim->mDuration; - m_TicksPerSecond = (int)(anim->mTicksPerSecond != 0 ? anim->mTicksPerSecond : 24); - - ReadHierarchyData(m_RootNode, scene->mRootNode); - - for (unsigned int i = 0; i < anim->mNumChannels; i++) { - const aiNodeAnim* channel = anim->mChannels[i]; - m_Bones.emplace_back(channel->mNodeName.data, 0, channel); - m_BoneNames.push_back(channel->mNodeName.data); - } - - if (rig) RegisterBonesWithRig(*rig); - } - - void RegisterBonesWithRig(Rig& rig) - { - for (const std::string& name : m_BoneNames) { - if (rig.m_BoneInfoMap.find(name) == rig.m_BoneInfoMap.end()) { - BoneInfo info; - info.id = rig.m_BoneCounter++; - info.offset = glm::mat4(1.0f); - rig.m_BoneInfoMap[name] = info; - } - } - } - - Bone* FindBone(const std::string& name) - { - for (Bone& b : m_Bones) - if (b.GetBoneName() == name) return &b; - return nullptr; - } - - float GetTicksPerSecond() const { return (float)m_TicksPerSecond; } - float GetDuration() const { return m_Duration; } - const AssimpNodeData& GetRootNode() const { return m_RootNode; } - -public: - float m_Duration = 0.0f; - int m_TicksPerSecond = 24; - std::vector m_Bones; - std::vector m_BoneNames; - AssimpNodeData m_RootNode; - -private: - void ReadHierarchyData(AssimpNodeData& dest, const aiNode* src) - { - assert(src); - dest.name = src->mName.data; - dest.transformation = AssimpGLMHelpers::ConvertMatrixToGLMFormat(src->mTransformation); - dest.childrenCount = (int)src->mNumChildren; - for (unsigned int i = 0; i < src->mNumChildren; i++) { - AssimpNodeData child; - ReadHierarchyData(child, src->mChildren[i]); - dest.children.push_back(child); - } - } -}; - -// ============================================================================ -// Animator -// blendWeight ramps from 0?1 over blendDuration when PlayAnimation is called. -// CharacterBody::GetBlendedBoneMatrices() lerps all animators by blendWeight. -// ============================================================================ -class Animator -{ -public: diff --git a/Animator.h b/Animator.h index 9eceb9c..6690e25 100644 --- a/Animator.h +++ b/Animator.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -98,8 +99,9 @@ private: // ============================================================================ // Animator -// blendWeight ramps from 0?1 over blendDuration when PlayAnimation is called. -// CharacterBody::GetBlendedBoneMatrices() lerps all animators by blendWeight. +// blendWeight ramps from 0?1 over blendDuration when PlayAnimation is called, +// and back down over the end of an animation that doesn't loop. +// CharacterBody layers animators bone by bone: each one only moves the bones its animation has tracks for. // ============================================================================ class Animator { @@ -172,11 +174,21 @@ public: } } + // A one-shot fades out over its last blendDuration instead of snapping back + if (!loops && blendDuration > 0.0f) { + const float remaining = (m_CurrentAnimation->GetDuration() - m_CurrentTime) + / glm::max(m_CurrentAnimation->GetTicksPerSecond() * playbackSpeed, 1e-4f); + blendWeight = glm::min(blendWeight, glm::clamp(remaining / blendDuration, 0.0f, 1.0f)); + } + CalculateBoneTransform(&m_CurrentAnimation->GetRootNode(), glm::mat4(1.0f)); } const std::vector& GetFinalBoneMatrices() const { return m_FinalBoneMatrices; } + // This frame's transform of each bone relative to its parent, only for bones the animation has a track for + const std::unordered_map& GetLocalTransforms() const { return m_LocalTransforms; } + public: std::vector m_FinalBoneMatrices; Animation* m_CurrentAnimation = nullptr; @@ -186,6 +198,7 @@ public: private: std::map m_BoneInfoMap; + std::unordered_map m_LocalTransforms; float _blendTimer = 0.0f; void RebuildBoneInfoMap() @@ -205,6 +218,7 @@ private: if (bone) { bone->Update(m_CurrentTime); nodeTransform = bone->GetLocalTransform(); + m_LocalTransforms[nodeName] = nodeTransform; // the Animation is shared, so keep this animator's own copy } glm::mat4 globalTransform = parentTransform * nodeTransform; diff --git a/BodyComponentActions.h b/BodyComponentActions.h deleted file mode 100644 index bd0615a..0000000 --- a/BodyComponentActions.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -#include "Character.h" - -void Footstep(CharacterBody* body, BodyComponent* bc) { - body->t.TranslateBy(body->t.GetFrontVector() * 0.1f); -} \ No newline at end of file diff --git a/Character.cpp b/Character.cpp index 1d29b93..7c5f635 100644 --- a/Character.cpp +++ b/Character.cpp @@ -1,111 +1,236 @@ #include "Character.h" #include "Animator.h" +#include "CharacterMind.h" #include "Ragdoll.h" +#include "Physics.h" #include "tFunctions.h" -#include #include #include #include // ------------------------------------------------------- -// BodyComponent +// CharacterBody // ------------------------------------------------------- -BodyComponent* CharacterBody::GetComponentOfName(std::string name) { - for (BodyComponent* C : components) { - if (C->name == name) - return C; - } - return nullptr; -} - -void CharacterBody::ExecuteAction(InputAction* action) { - for (BodyComponent* C : components) { - if (C->name == action->BodyComponentName) { - for (Action* a : C->Actions) { - if (a->Name == action->ActionName) { - a->FunctionPointer(this, C); - break; - } - } - break; +void CharacterBody::Perform(const CharacterAction& action) { + switch (action.type) { + case CharacterActionType::Move: { + wishDirection = glm::vec3(action.direction.x, 0.0f, action.direction.z); + if (glm::length(wishDirection) > 0.0001f) { + wishDirection = glm::normalize(wishDirection); + turnDirection = wishDirection; } + break; + } } } -// ------------------------------------------------------- -// CharacterMind -// ------------------------------------------------------- +void CharacterBody::ApplyMovement(bool grounded, float speedFactor, float dt, float referenceDt) { + const bool moving = glm::length(wishDirection) > 0.0f && speedFactor > 0.0f; + SetWalking(moving); + wishDirection = glm::vec3(0.0f); // used up, the next Move action has to ask again -InputAction* CharacterMind::ProduceAction() { - // TODO: implement - return nullptr; + // With time stopped there's nothing to apply, and the rescaling below would divide zero by zero + if (!physics || dt <= 0.0f) + return; + + // Walks the way it faces rather than straight along the input, so it turns into the direction first + const float movespeed = walkSpeed * speedFactor; + const glm::vec3 inputVel = moving ? GetForwardDirection() * movespeed : glm::vec3(0.0f); + + const float accel = 40.0f; + const float damp = 0.75f; + const float airControl = 0.5f; + const float groundTopSpeed = movespeed * accel * referenceDt * damp / (1.0f - damp); + + if (grounded) { + // Damping and acceleration worked out per reference step, then rescaled so frame rate doesn't change them + const float dampStep = std::pow(damp, dt / referenceDt); + const float accelScale = referenceDt * damp * (1.0f - dampStep) / (dt * dampStep * (1.0f - damp)); + physics->linearvelocity.x *= dampStep; + physics->linearvelocity.z *= dampStep; + physics->linearvelocity.x += inputVel.x * accel * dt * accelScale; + physics->linearvelocity.z += inputVel.z * accel * dt * accelScale; + } + else if (moving) { + // In the air it can only steer, up to walking speed + const glm::vec3 wishDir = glm::normalize(inputVel); + const float current = glm::dot(glm::vec3(physics->linearvelocity.x, 0.0f, physics->linearvelocity.z), wishDir); + const float add = glm::clamp(groundTopSpeed - current, 0.0f, accel * airControl * movespeed * dt); + physics->linearvelocity.x += wishDir.x * add; + physics->linearvelocity.z += wishDir.z * add; + } +} + +void CharacterBody::Step(float dt) { + if (glm::length(turnDirection) > 0.0001f) { + const glm::quat target = LookAt(-turnDirection); + const glm::quat current = t.GetRotationQuaternion(); + const float blend = 1.0f - std::exp(-turnSpeed * dt); + t.RotateToQuaternion(glm::normalize(glm::slerp(current, target, blend))); + } + + const float target = walking ? 1.0f : 0.0f; + walkBlend += (target - walkBlend) * (1.0f - std::exp(-walkFadeSpeed * dt)); + + for (Animator* a : animators) + a->Step(dt); + + // After stepping, since the animator ramps its own weight up to full when it plays + if (walkAnimator) + walkAnimator->blendWeight = walkBlend; + + if (rig && animator->m_CurrentAnimation) { + blendedBones = animator->GetFinalBoneMatrices(); + BlendBones(animator->m_CurrentAnimation->GetRootNode(), glm::mat4(1.0f)); + } +} + +// Blends two parent-relative transforms, position and scale linearly and rotation along the shortest arc +static glm::mat4 BlendLocalTransforms(const glm::mat4& from, const glm::mat4& to, float t) { + const glm::vec3 fromScale(glm::length(glm::vec3(from[0])), glm::length(glm::vec3(from[1])), glm::length(glm::vec3(from[2]))); + const glm::vec3 toScale(glm::length(glm::vec3(to[0])), glm::length(glm::vec3(to[1])), glm::length(glm::vec3(to[2]))); + const glm::mat3 fromRotation(glm::vec3(from[0]) / fromScale.x, glm::vec3(from[1]) / fromScale.y, glm::vec3(from[2]) / fromScale.z); + const glm::mat3 toRotation(glm::vec3(to[0]) / toScale.x, glm::vec3(to[1]) / toScale.y, glm::vec3(to[2]) / toScale.z); + + const glm::quat rotation = glm::normalize(glm::slerp(glm::quat_cast(fromRotation), glm::quat_cast(toRotation), t)); + glm::mat4 result = glm::mat4_cast(rotation) * glm::scale(glm::mat4(1.0f), glm::mix(fromScale, toScale, t)); + result[3] = glm::vec4(glm::mix(glm::vec3(from[3]), glm::vec3(to[3]), t), 1.0f); + return result; +} + +// Every node's rest transform relative to the model, and its parent's name, from one clip's hierarchy +static void CollectRestPose(const AssimpNodeData& node, const glm::mat4& parentTransform, const std::string& parentName, + std::unordered_map& globals, std::unordered_map& parents) { + const glm::mat4 global = parentTransform * node.transformation; + globals[node.name] = global; + parents[node.name] = parentName; + for (const AssimpNodeData& child : node.children) + CollectRestPose(child, global, node.name, globals, parents); +} + +// A clip exported with only some bones, like an arm on its own, has them hung off whatever ancestor made it into +// the file. Its tracks are then relative to that ancestor instead of the bone's real parent. Going through the rest +// pose of both files turns one into the other, so the arm still rides on the torso. +const std::unordered_map& CharacterBody::GetParentCorrections(const Animation* layer) { + const Animation* base = animator->m_CurrentAnimation; + const auto key = std::make_pair(base, layer); + const auto cached = parentCorrections.find(key); + if (cached != parentCorrections.end()) + return cached->second; + + std::unordered_map& corrections = parentCorrections[key]; + if (!base || !layer || base == layer) + return corrections; + + std::unordered_map baseGlobals, layerGlobals; + std::unordered_map baseParents, layerParents; + CollectRestPose(base->GetRootNode(), glm::mat4(1.0f), "", baseGlobals, baseParents); + CollectRestPose(layer->GetRootNode(), glm::mat4(1.0f), "", layerGlobals, layerParents); + + for (const std::string& bone : layer->m_BoneNames) { + const auto baseParent = baseParents.find(bone); + const auto layerParent = layerParents.find(bone); + if (baseParent == baseParents.end() || layerParent == layerParents.end()) + continue; + if (baseParent->second == layerParent->second) + continue; + + const auto baseParentGlobal = baseGlobals.find(baseParent->second); + const auto layerParentGlobal = layerGlobals.find(layerParent->second); + const glm::mat4 from = layerParentGlobal != layerGlobals.end() ? layerParentGlobal->second : glm::mat4(1.0f); + const glm::mat4 to = baseParentGlobal != baseGlobals.end() ? baseParentGlobal->second : glm::mat4(1.0f); + corrections[bone] = glm::inverse(to) * from; + } + return corrections; +} + +// Walks the base animation's hierarchy. Each bone starts from its rest pose, then every layer with a track for it +// blends in on top in weight order, before it's passed down to its children. +void CharacterBody::BlendBones(const AssimpNodeData& node, const glm::mat4& parentTransform) { + glm::mat4 local = node.transformation; + for (Animator* a : animators) { + if (!a->m_CurrentAnimation || a->blendWeight <= 0.0f) + continue; + if (a != animator && !a->isPlaying) + continue; + const auto& transforms = a->GetLocalTransforms(); + const auto found = transforms.find(node.name); + if (found == transforms.end()) + continue; + + glm::mat4 layerLocal = found->second; + if (a != animator) { + const auto& corrections = GetParentCorrections(a->m_CurrentAnimation); + const auto correction = corrections.find(node.name); + if (correction != corrections.end()) + layerLocal = correction->second * layerLocal; + } + + local = a == animator || a->blendWeight >= 1.0f + ? layerLocal + : BlendLocalTransforms(local, layerLocal, a->blendWeight); + } + + glm::mat4 global = parentTransform * local; + if (node.name == "Head") + global = glm::scale(global, glm::vec3(HeadScale)); + + const auto info = rig->m_BoneInfoMap.find(node.name); + if (info != rig->m_BoneInfoMap.end()) { + const int index = info->second.id; + if (index >= 0 && index < (int)blendedBones.size()) + blendedBones[index] = global * info->second.offset; + } + + for (const AssimpNodeData& child : node.children) + BlendBones(child, global); +} + +void CharacterBody::SetWalking(bool isWalking) { + walking = isWalking; +} + +glm::vec3 CharacterBody::GetForwardDirection() const { + glm::vec3 forward = -t.GetFrontVector(); + forward.y = 0.0f; + const float length = glm::length(forward); + if (length <= 0.0001f) + return glm::vec3(0.0f, 0.0f, -1.0f); + return forward / length; } // ------------------------------------------------------- // Character // ------------------------------------------------------- -void Character::PressInput(char letter) { - letter = (char)std::toupper((unsigned char)letter); - if (letter == 'W' || letter == 'A' || letter == 'S' || letter == 'D') - inputLetters.insert(letter); -} - -void Character::ReleaseInput(char letter) { - letter = (char)std::toupper((unsigned char)letter); - inputLetters.erase(letter); -} - -void Character::ClearInput() { - inputLetters.clear(); -} - -glm::vec3 Character::GetMovementDirection(const glm::vec3& forward, const glm::vec3& right) const { - const glm::vec3 flatForward = glm::normalize(glm::vec3(forward.x, 0.0f, forward.z)); - const glm::vec3 flatRight = glm::normalize(glm::vec3(right.x, 0.0f, right.z)); - - glm::vec3 direction(0.0f); - if (inputLetters.count('W')) direction += flatForward; - if (inputLetters.count('S')) direction -= flatForward; - if (inputLetters.count('A')) direction += flatRight; - if (inputLetters.count('D')) direction -= flatRight; - if (glm::length(direction) > 0.0f) - direction = glm::normalize(direction); - return direction; -} - -void Character::SetTurnDirection(const glm::vec3& direction) { - const glm::vec3 flatDirection(direction.x, 0.0f, direction.z); - if (glm::length(flatDirection) > 0.0001f) - turnDirection = glm::normalize(flatDirection); -} - -void Character::TurnToDirection(float dt) { - if (glm::length(turnDirection) <= 0.0001f) +void Character::Think() { + if (!mind) return; - - const glm::quat target = LookAt(-turnDirection); - const glm::quat current = body->t.GetRotationQuaternion(); - const float blend = 1.0f - std::exp(-turnSpeed * dt); - body->t.RotateToQuaternion(glm::normalize(glm::slerp(current, target, blend))); + pendingActions.clear(); + mind->ProduceActions(*this, pendingActions); + for (const CharacterAction& action : pendingActions) + body->Perform(action); } -void Character::SetWalking(bool walking) { - if (body && body->animator) - body->animator->playbackSpeed = walking ? 1.0f : 0.0f; +int Character::GetCollisionGroup() { + // Kept clear of the ragdoll's groups, which count up from 1 + static int nextGroup = 1000; + if (collisionGroup == 0) + collisionGroup = nextGroup++; + return collisionGroup; } -glm::vec3 Character::GetForwardDirection() const { - if (!body) - return glm::vec3(0.0f, 0.0f, -1.0f); - - glm::vec3 forward = -body->t.GetFrontVector(); - forward.y = 0.0f; - const float length = glm::length(forward); - if (length <= 0.0001f) - return glm::vec3(0.0f, 0.0f, -1.0f); - return forward / length; +void Character::CreatePhysicsBody(Physics& physics, float massKg) { + if (body->physics) + return; + p* physicsBody = new p(body); + physicsBody->mass = massKg; + physicsBody->lockRotation = true; // it turns by facing where it walks, never by tipping over + physicsBody->friction = 0.0f; // walking does its own stopping + physicsBody->collisionGroup = GetCollisionGroup(); + physics.AddObject(physicsBody); + body->physics = physicsBody; } void Character::EnableRagdoll(Physics& physics) { diff --git a/Character.h b/Character.h index 3227384..a23cb8e 100644 --- a/Character.h +++ b/Character.h @@ -2,49 +2,37 @@ #define CHARACTER_CLASS #include #include -#include +#include +#include #include -#include #include "t.h" #include "Rig.h" #include "Object.h" #include "Animator.h" +#include "CharacterAction.h" class Character; class CharacterManager; -class CharacterBody; -class BodyComponent; +class CharacterMind; class Ragdoll; class Physics; +class p; -class Action { -public: - std::string Name; - std::function FunctionPointer; -}; - -class InputAction { -public: - std::string BodyComponentName; - std::string ActionName; -}; - -class BodyComponent { -public: - std::string name; - BodyComponent* ParentComponent = nullptr; - std::vector Actions; -}; - +// The physical side of a character: where it is, its physics body, its animation, +// and carrying out whatever actions its mind sends it. class CharacterBody : public t_package { public: Rig* rig = nullptr; + p* physics = nullptr; // made by Character::CreatePhysicsBody, its box is t's scale std::vector animators; - Animator* animator = nullptr; // back-compat: base animator at weight 0 + Animator* animator = nullptr; // the base layer, always fully on: standing idle + Animator* walkAnimator = nullptr; // on top of the idle, faded in while walking + Animator* actionAnimator = nullptr; // one-shots on top of both, see PlayAction - std::vector components; - BodyComponent* RootComponent = nullptr; + float walkSpeed = 2.34f; // m/s on flat ground + float turnSpeed = 12.0f; // how quickly it turns to face where it's walking + float walkFadeSpeed = 8.0f; // how quickly it fades between idle and walking CharacterBody() { animator = AddAnimator(0); @@ -61,31 +49,11 @@ public: return a; } - // Returns weighted blend of all playing animators. - // Base (weight 0) is always the foundation; higher-weight animators - // blend in on top based on their blendWeight (0?1). - std::vector GetBlendedBoneMatrices() const { - // Start from the base animator - std::vector result = animator->GetFinalBoneMatrices(); - const int count = (int)result.size(); - - // Blend each higher-priority playing animator on top - for (int i = 1; i < (int)animators.size(); i++) { - Animator* a = animators[i]; - if (!a->isPlaying || !a->m_CurrentAnimation || a->blendWeight <= 0.0f) continue; - const auto& matrices = a->GetFinalBoneMatrices(); - for (int j = 0; j < count && j < (int)matrices.size(); j++) - result[j] = glm::mix(result[j], matrices[j], a->blendWeight); - } - return result; - } - - // Returns the highest-weight playing animator (for back-compat) - Animator* GetActiveAnimator() const { - for (int i = (int)animators.size() - 1; i >= 0; i--) - if (animators[i]->isPlaying && animators[i]->m_CurrentAnimation) - return animators[i]; - return animator; + // The skinning matrices for this frame, from every animator layered together. Worked out in Step. + // Base (weight 0) is the foundation; each higher-weight animator blends in by its blendWeight, + // but only on the bones its animation has tracks for, so an arm-only clip leaves the legs walking. + const std::vector& GetBlendedBoneMatrices() const { + return blendedBones.empty() ? animator->GetFinalBoneMatrices() : blendedBones; } void SetRig(Rig* r) { @@ -97,64 +65,97 @@ public: void SetAnimation(Animation* anim) { animator->SetAnimation(anim); animator->PlayAnimation(); - animator->blendWeight = 1.0f; // base never blends � always instant + animator->blendWeight = 1.0f; // base never blends, always instant } - void LoadAnimation(Animation* anim) { SetAnimation(anim); } - - void Step(float dt) { - for (Animator* a : animators) - a->Step(dt); + // Plays an animation once on top of everything else. Starts over if it's already playing. + void PlayAction(Animation* anim) { + if (!anim) + return; + if (!actionAnimator) { + actionAnimator = AddAnimator(2); + actionAnimator->blendDuration = 0.1f; + } + actionAnimator->loops = false; + actionAnimator->SetAnimation(anim); + actionAnimator->PlayAnimation(); } - BodyComponent* GetComponentOfName(std::string name); - void ExecuteAction(InputAction* action); -}; + // The loop played while walking. It keeps running underneath so it picks up mid-stride. + void SetWalkAnimation(Animation* anim) { + if (!walkAnimator) + walkAnimator = AddAnimator(1); + walkAnimator->loops = true; + walkAnimator->SetAnimation(anim); + walkAnimator->PlayAnimation(); + walkAnimator->blendWeight = walkBlend; + } -class CharacterMind { -public: - InputAction* ProduceAction(); + // Carries out one action. Movement actions only count for the frame they arrive in. + void Perform(const CharacterAction& action); + + // Pushes the physics body toward walking speed along wherever it faces, from this frame's Move action. + // speedFactor scales it, 0 stops it. + void ApplyMovement(bool grounded, float speedFactor, float dt, float referenceDt); + + // Turning and animation + void Step(float dt); + + void SetWalking(bool walking); + glm::vec3 GetForwardDirection() const; + +private: + glm::vec3 wishDirection = glm::vec3(0.0f); // from this frame's Move action + glm::vec3 turnDirection = glm::vec3(0.0f); // where it's turning to face, kept after it stops + bool walking = false; + float walkBlend = 0.0f; // 0 = idle, 1 = walking + std::vector blendedBones; + + // Per (base clip, layer clip): bone name -> what turns the layer's track into one relative to the bone's + // real parent. Only bones whose parent differs between the two files have an entry. + std::map, std::unordered_map> parentCorrections; + + void BlendBones(const AssimpNodeData& node, const glm::mat4& parentTransform); + const std::unordered_map& GetParentCorrections(const Animation* layer); }; class Character : public Object, public Renderable { public: - CharacterMind* mind = nullptr; + CharacterMind* mind = nullptr; // what decides its actions, nullptr does nothing CharacterBody* body = nullptr; Ragdoll* ragdoll = nullptr; // when set, physics drives the rig instead of the animators SurfaceTexture surface; glm::vec4 colorOverride = glm::vec4(0.0f); // rgb + strength (0 = keep the rig's own texture) - float visualScale = 1.4f; // rig is ~1.8 tall natively; hitbox is 2.5 + float visualScale = 1.4f; // rig is ~1.8 tall natively; its physics box is 2.5 float metallic = 0.0f; float roughness = 0.7f; float ao = 1.0f; - float turnSpeed = 12.0f; - void PressInput(char letter); - void ReleaseInput(char letter); - void ClearInput(); - glm::vec3 GetMovementDirection(const glm::vec3& forward, const glm::vec3& right) const; - void SetTurnDirection(const glm::vec3& direction); - const glm::vec3& GetTurnDirection() const { return turnDirection; } - void SetWalking(bool walking); - glm::vec3 GetForwardDirection() const; + // Asks the mind for this frame's actions and hands them to the body + void Think(); + + glm::vec3 GetForwardDirection() const { return body->GetForwardDirection(); } void EnableRagdoll(Physics& physics); + // The box physics moves the character around with, sized by body->t's scale + void CreatePhysicsBody(Physics& physics, float massKg); + + // Its physics body's group, so it never collides with anything else of its own + int GetCollisionGroup(); + Character(); void Render(Shader& shader) override; bool GetWorldBounds(BoundingBox& bounds) const override; void Step(float dt) { if (ragdoll) return; - TurnToDirection(dt); body->Step(dt); } private: - void TurnToDirection(float dt); glm::mat4 GetRigMatrix() const; - std::set inputLetters; - glm::vec3 turnDirection = glm::vec3(0.0f); + int collisionGroup = 0; + std::vector pendingActions; }; - -#endif \ No newline at end of file +#endif diff --git a/CharacterAction.h b/CharacterAction.h new file mode 100644 index 0000000..9979c71 --- /dev/null +++ b/CharacterAction.h @@ -0,0 +1,23 @@ +#ifndef CHARACTER_ACTION_CLASS +#define CHARACTER_ACTION_CLASS + +#include + +enum class CharacterActionType { + Move // walk along direction, or stand still if it's zero +}; + +// Something a character's mind wants it to do this frame. Minds produce these, the body carries them out. +struct CharacterAction { + CharacterActionType type = CharacterActionType::Move; + glm::vec3 direction = glm::vec3(0.0f); // world space, only x and z are used + + static CharacterAction Move(const glm::vec3& direction) { + CharacterAction action; + action.type = CharacterActionType::Move; + action.direction = direction; + return action; + } +}; + +#endif diff --git a/CharacterActions.h b/CharacterActions.h deleted file mode 100644 index 0809116..0000000 --- a/CharacterActions.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef CHARACTERACTIONS_CLASS -#define CHARACTERACTIONS_CLASS - -enum CharacterAction { - MOVE_FORWARD, - MOVE_BACKWARD, - MOVE_LEFT, - MOVE_RIGHT, - JUMP, - CROUCH, - SPRINT -}; - -#endif - diff --git a/CharacterManager.cpp b/CharacterManager.cpp index 670dddc..87835f8 100644 --- a/CharacterManager.cpp +++ b/CharacterManager.cpp @@ -64,23 +64,9 @@ Character* CharacterManager::GetCharacter(const std::string& name) const { return it != characters.end() ? it->second.get() : nullptr; } -void CharacterManager::SetControlledCharacter(const std::string& name) { - controlledCharacter = GetCharacter(name); -} - -void CharacterManager::PressInput(char letter) { - if (controlledCharacter) - controlledCharacter->PressInput(letter); -} - -void CharacterManager::ReleaseInput(char letter) { - if (controlledCharacter) - controlledCharacter->ReleaseInput(letter); -} - -void CharacterManager::ClearInput() { - if (controlledCharacter) - controlledCharacter->ClearInput(); +void CharacterManager::Think() { + for (Character* character : characterOrder) + character->Think(); } void CharacterManager::Step(float dt) { diff --git a/CharacterManager.h b/CharacterManager.h index 3976bb0..4bb6f48 100644 --- a/CharacterManager.h +++ b/CharacterManager.h @@ -26,11 +26,8 @@ public: Animation* GetAnimation(const std::string& name) const; Character* GetCharacter(const std::string& name) const; - void SetControlledCharacter(const std::string& name); - void PressInput(char letter); - void ReleaseInput(char letter); - void ClearInput(); - + // Every character's mind decides its actions for this frame + void Think(); void Step(float dt); const std::vector& GetCharacters() const { return characterOrder; } @@ -40,7 +37,6 @@ private: std::unordered_map> animations; std::unordered_map> characters; std::vector characterOrder; - Character* controlledCharacter = nullptr; }; #endif diff --git a/CharacterMind.cpp b/CharacterMind.cpp new file mode 100644 index 0000000..ed17e21 --- /dev/null +++ b/CharacterMind.cpp @@ -0,0 +1,29 @@ +#include "CharacterMind.h" + +#include "Camera.h" +#include "common.h" +#include "Keyboard.h" + +void KeyboardMind::ProduceActions(const Character& character, std::vector& actions) +{ + glm::vec3 direction(0.0f); + + if (enabled) { + // Flattened, so looking up or down doesn't slow walking + const glm::vec3 forward = camera.t.GetFrontVector(); + const glm::vec3 right = camera.t.GetRightVector(); + const glm::vec3 flatForward = glm::normalize(glm::vec3(forward.x, 0.0f, forward.z)); + const glm::vec3 flatRight = glm::normalize(glm::vec3(right.x, 0.0f, right.z)); + + // The camera's right vector points to the left of the screen, so A adds it + if (keyboard->IsKeyDown(GLFW_KEY_W)) direction += flatForward; + if (keyboard->IsKeyDown(GLFW_KEY_S)) direction -= flatForward; + if (keyboard->IsKeyDown(GLFW_KEY_A)) direction += flatRight; + if (keyboard->IsKeyDown(GLFW_KEY_D)) direction -= flatRight; + if (glm::length(direction) > 0.0f) + direction = glm::normalize(direction); + } + + // Always sent, so letting go of the keys stops the character + actions.push_back(CharacterAction::Move(direction)); +} diff --git a/CharacterMind.h b/CharacterMind.h new file mode 100644 index 0000000..c6e3ea0 --- /dev/null +++ b/CharacterMind.h @@ -0,0 +1,35 @@ +#ifndef CHARACTER_MIND_CLASS +#define CHARACTER_MIND_CLASS + +#include + +#include "CharacterAction.h" + +class Character; +class Camera; + +// Decides what a character does, as actions. A character without a mind does nothing. +// AI goes here later, as another kind of mind. +class CharacterMind { +public: + virtual ~CharacterMind() = default; + + // Called once a frame, adds whatever the character should do this frame + virtual void ProduceActions(const Character& character, std::vector& actions) = 0; +}; + +// The player: WASD, relative to where the camera faces +class KeyboardMind : public CharacterMind { +public: + explicit KeyboardMind(const Camera& camera) : camera(camera) {} + + // Off while the keys are busy with something else, like typing in the console + bool enabled = true; + + void ProduceActions(const Character& character, std::vector& actions) override; + +private: + const Camera& camera; +}; + +#endif diff --git a/Console.cpp b/Console.cpp new file mode 100644 index 0000000..a270a64 --- /dev/null +++ b/Console.cpp @@ -0,0 +1,212 @@ +#include "Console.h" + +#include +#include +#include +#include + +#include "Gui.h" + +static constexpr float PANEL_HEIGHT = 360.0f; +static constexpr float INPUT_HEIGHT = 36.0f; +static constexpr float MARGIN = 16.0f; +static constexpr int VISIBLE_LINES = 13; +static constexpr int MAX_LOG_LINES = 300; +static constexpr int MAX_INPUT_LENGTH = 200; +static constexpr int SCROLL_STEP = 5; + +static std::string Lowercase(std::string text) +{ + std::transform(text.begin(), text.end(), text.begin(), [](unsigned char c) { return (char)std::tolower(c); }); + return text; +} + +Console::Console(Font* newFont) : font(newFont) +{ + Register("help", "help", "lists every command", [this](const Arguments&) { + for (const auto& [name, entry] : commands) + Print(" " + entry.usage + " - " + entry.description); + }); + Register("clear", "clear", "empties the console", [this](const Arguments&) { + log.clear(); + scroll = 0; + }); +} + +// GUI draws in the order things were made, so this waits until the first Update to land on top of everything +void Console::CreateDisplay() +{ + background = new Box(); + background->Color = { 0.02f, 0.03f, 0.05f }; + background->Opacity = 0.0f; + background->t2d.position = { 0.0f, 0.0f, 0.0f, 0.0f }; + background->t2d.size = { 1.0f, 0.0f, 0.0f, PANEL_HEIGHT }; + background->BindToRenderSystem(); + + inputBackground = new Box(); + inputBackground->Color = { 0.10f, 0.12f, 0.16f }; + inputBackground->Opacity = 0.0f; + inputBackground->t2d.position = { 0.0f, 0.0f, 0.0f, PANEL_HEIGHT - INPUT_HEIGHT }; + inputBackground->t2d.size = { 1.0f, 0.0f, 0.0f, INPUT_HEIGHT }; + inputBackground->BindToRenderSystem(); + + // Bottom aligned, so the newest line sits just above the input and old ones get cut off at the top + logText = new TextBox(); + logText->font = font; + logText->fontsize = 0.42f; + logText->Color = { 0.85f, 0.88f, 0.93f }; + logText->Opacity = 0.0f; + logText->t2d.position = { 0.0f, 0.0f, MARGIN, 8.0f }; + logText->t2d.size = { 1.0f, 0.0f, -2.0f * MARGIN, PANEL_HEIGHT - INPUT_HEIGHT - 12.0f }; + logText->textCenter = { 0.0f, 1.0f }; + logText->BindToRenderSystem(); + + inputText = new TextBox(); + inputText->font = font; + inputText->fontsize = 0.45f; + inputText->Color = { 0.96f, 0.58f, 0.16f }; + inputText->Opacity = 0.0f; + inputText->t2d.position = { 0.0f, 0.0f, MARGIN, PANEL_HEIGHT - INPUT_HEIGHT }; + inputText->t2d.size = { 1.0f, 0.0f, -2.0f * MARGIN, INPUT_HEIGHT }; + inputText->textCenter = { 0.0f, 0.5f }; + inputText->BindToRenderSystem(); +} + +void Console::Register(const std::string& name, const std::string& usage, const std::string& description, Command run) +{ + commands[Lowercase(name)] = { usage, description, std::move(run) }; +} + +void Console::Execute(const std::string& line) +{ + std::istringstream words(line); + std::string name; + if (!(words >> name)) + return; + + Arguments arguments; + for (std::string word; words >> word; ) + arguments.push_back(word); + + auto command = commands.find(Lowercase(name)); + if (command == commands.end()) { + Print("Unknown command '" + name + "', type help for a list"); + return; + } + command->second.run(arguments); +} + +void Console::Print(const std::string& message) +{ + std::istringstream lines(message); + for (std::string line; std::getline(lines, line); ) { + log.push_back(line); + if ((int)log.size() > MAX_LOG_LINES) + log.pop_front(); + } +} + +void Console::Open() +{ + open = true; + historyIndex = (int)history.size(); + caretTimer = 0.0f; +} + +void Console::Close() +{ + open = false; +} + +void Console::OnChar(unsigned int codepoint) +{ + // The font only has printable ASCII, and the toggle key shouldn't end up in the line + if (codepoint < 32 || codepoint > 126 || codepoint == '`' || codepoint == '~') + return; + if ((int)input.size() < MAX_INPUT_LENGTH) + input += (char)codepoint; + caretTimer = 0.0f; +} + +void Console::OnKey(int key) +{ + caretTimer = 0.0f; + switch (key) { + case GLFW_KEY_ENTER: + case GLFW_KEY_KP_ENTER: + if (input.empty()) + break; + Print("> " + input); + if (history.empty() || history.back() != input) + history.push_back(input); + historyIndex = (int)history.size(); + scroll = 0; + { + // Copied first, a command is allowed to touch the console's own state + const std::string line = input; + input.clear(); + Execute(line); + } + break; + case GLFW_KEY_BACKSPACE: + if (!input.empty()) + input.pop_back(); + break; + case GLFW_KEY_UP: + if (historyIndex > 0) { + historyIndex--; + input = history[historyIndex]; + } + break; + case GLFW_KEY_DOWN: + if (historyIndex < (int)history.size()) { + historyIndex++; + input = historyIndex < (int)history.size() ? history[historyIndex] : std::string(); + } + break; + case GLFW_KEY_PAGE_UP: + Scroll(SCROLL_STEP); + break; + case GLFW_KEY_PAGE_DOWN: + Scroll(-SCROLL_STEP); + break; + case GLFW_KEY_ESCAPE: + Close(); + break; + default: + break; + } +} + +void Console::Scroll(int lines) +{ + scroll = glm::clamp(scroll + lines, 0, std::max((int)log.size() - VISIBLE_LINES, 0)); +} + +void Console::Update(float dt) +{ + if (!background) + CreateDisplay(); + + const float opacity = open ? 1.0f : 0.0f; + background->Opacity = open ? 0.88f : 0.0f; + inputBackground->Opacity = open ? 0.9f : 0.0f; + logText->Opacity = opacity; + inputText->Opacity = opacity; + if (!open) + return; + + const int newest = (int)log.size() - scroll; + const int oldest = std::max(newest - VISIBLE_LINES, 0); + std::string visible; + for (int i = oldest; i < newest; i++) { + visible += log[i]; + if (i + 1 < newest) + visible += '\n'; + } + logText->text = visible; + + caretTimer += dt; + const bool caretOn = std::fmod(caretTimer, 1.0f) < 0.5f; + inputText->text = "> " + input + (caretOn ? "_" : ""); +} diff --git a/Console.h b/Console.h new file mode 100644 index 0000000..3e1aed6 --- /dev/null +++ b/Console.h @@ -0,0 +1,67 @@ +#ifndef CONSOLE_CLASS +#define CONSOLE_CLASS + +#include +#include +#include +#include +#include + +class Font; +class Box; +class TextBox; + +// The in-game console. Commands get registered by name and run with whatever words follow them. +class Console { +public: + using Arguments = std::vector; // the words after the command name + using Command = std::function; + + explicit Console(Font* newFont); + + // usage is shown by help, like "give [count]". Names aren't case sensitive. + void Register(const std::string& name, const std::string& usage, const std::string& description, Command run); + void Execute(const std::string& line); + void Print(const std::string& message); + + void Open(); + void Close(); + void Toggle() { open ? Close() : Open(); } + bool IsOpen() const { return open; } + + // Feed these from the GLFW callbacks while it's open + void OnChar(unsigned int codepoint); + void OnKey(int key); + + // Positive goes back toward older lines + void Scroll(int lines); + + // Once a frame, refreshes what's on screen + void Update(float dt); + +private: + struct Entry { + std::string usage; + std::string description; + Command run; + }; + + void CreateDisplay(); + + Font* font = nullptr; + std::map commands; // sorted, so help lists them alphabetically + std::deque log; + std::vector history; + int historyIndex = 0; // history.size() means the line being typed + std::string input; + int scroll = 0; // how many lines up from the newest + float caretTimer = 0.0f; + bool open = false; + + Box* background = nullptr; + Box* inputBackground = nullptr; + TextBox* logText = nullptr; + TextBox* inputText = nullptr; +}; + +#endif diff --git a/DefaultBodyComponents.h b/DefaultBodyComponents.h deleted file mode 100644 index b117425..0000000 --- a/DefaultBodyComponents.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef DEFAULT_BODY_COMPONENTS -#define DEFAULT_BODY_COMPONENTS - -#include - -#include "Character.h" -#include "BodyComponentActions.h" - -std::vector GenerateDefaultBody() { - std::vector TR; - BodyComponent* Head = new BodyComponent(); - BodyComponent* Torso = new BodyComponent(); - BodyComponent* RightArm = new BodyComponent(); - BodyComponent* LeftArm = new BodyComponent(); - BodyComponent* RightLeg = new BodyComponent(); - BodyComponent* LeftLeg = new BodyComponent(); - - Head->name = "Head"; - Torso->name = "Torso"; - RightArm->name = "RightArm"; - LeftArm->name = "LeftArm"; - RightLeg->name = "RightLeg"; - LeftLeg->name = "LeftLeg"; - - TR.push_back(Head); - TR.push_back(Torso); - TR.push_back(RightArm); - TR.push_back(LeftArm); - TR.push_back(RightLeg); - TR.push_back(LeftLeg); - - return TR; -} - - -#endif \ No newline at end of file diff --git a/Engine.cpp b/Engine.cpp index da79412..246febb 100644 --- a/Engine.cpp +++ b/Engine.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include // ============================================================================ @@ -68,7 +69,6 @@ #include "Sound.h" #include "Gui.h" #include "font.h" -#include "TexturePainter.h" // Character / animation #include "Rig.h" @@ -76,8 +76,11 @@ #include "Character.h" #include "CharacterManager.h" #include "Ragdoll.h" -#include "DefaultBodyComponents.h" -#include "BodyComponentActions.h" +#include "Console.h" + +#include +#include +#include "CharacterMind.h" #define STB_IMAGE_IMPLEMENTATION #include "stb_image.h" @@ -93,6 +96,7 @@ Engine::Engine() glfwSetCursorPosCallback(window->handle, mouse_callback); glfwSetScrollCallback(window->handle, scroll_callback); glfwSetKeyCallback(window->handle, key_callback); + glfwSetCharCallback(window->handle, char_callback); glfwSetMouseButtonCallback(window->handle, mouse_button_callback); glfwSwapInterval(1); @@ -138,12 +142,14 @@ void Engine::Initiate() charactermanager = new CharacterManager(); charactermanager->LoadRig("humanoid", "assets/rig.glb"); charactermanager->LoadAnimation("walk", "assets/walkanim.glb", "humanoid"); + charactermanager->LoadAnimation("idle", "assets/idle.glb", "humanoid"); // ------------------------------------------------------------------------ // Player character // ------------------------------------------------------------------------ - Character& testcharacter = *charactermanager->CreateCharacter("character", "humanoid", "walk"); - charactermanager->SetControlledCharacter("character"); + // Idle is the base pose, walking fades in on top of it while moving + Character& testcharacter = *charactermanager->CreateCharacter("character", "humanoid", "idle"); + testcharacter.body->SetWalkAnimation(charactermanager->GetAnimation("walk")); testcharacter.castshadow = true; testcharacter.colorOverride = glm::vec4(0.62f, 0.64f, 0.68f, 1.0f); testcharacter.roughness = 0.65f; @@ -151,17 +157,13 @@ void Engine::Initiate() testcharacter.body->t.TranslateTo({ 0.0f, 1.5f, 0.0f }); testcharacter.body->animator->loops = true; testcharacter.BindToRenderSystem(); - - p* characterBody = new p(testcharacter.body); - characterBody->mass = 80.0f; - characterBody->lockRotation = true; - characterBody->friction = 0.0f; - physicsengine->AddObject(characterBody); + testcharacter.CreatePhysicsBody(*physicsengine, 80.0f); // ------------------------------------------------------------------------ // NPC // ------------------------------------------------------------------------ - Character& npc = *charactermanager->CreateCharacter("npc", "humanoid", "walk"); + Character& npc = *charactermanager->CreateCharacter("npc", "humanoid", "idle"); + npc.body->SetWalkAnimation(charactermanager->GetAnimation("walk")); npc.castshadow = true; npc.colorOverride = glm::vec4(0.10f, 0.20f, 0.48f, 1.0f); npc.metallic = 0.1f; @@ -169,10 +171,96 @@ void Engine::Initiate() npc.body->t.ScaleBy({ 0.7f, 2.5f, 0.7f }); npc.body->t.TranslateTo({ 3.0f, 1.25f, 3.0f }); npc.BindToRenderSystem(); + npc.CreatePhysicsBody(*physicsengine, 80.0f); - testcharacter.SetWalking(false); - npc.SetWalking(false); - npc.EnableRagdoll(*physicsengine); + testcharacter.body->SetWalking(false); + npc.body->SetWalking(false); + + // The keyboard is the player's mind: it turns WASD into actions for whichever character it's in. + // The camera follows that character too, C moves both to the other one. + KeyboardMind keyboardMind(*camera); + Character* controlled = &testcharacter; + controlled->mind = &keyboardMind; + + // ------------------------------------------------------------------------ + // Console commands. help and clear are built in. + // ------------------------------------------------------------------------ + console = new Console(arial); + + // From the camera, out through a point on the screen in pixels + auto MouseRay = [&](const glm::vec2& mousePos) { + const glm::mat4 inverseViewProjection = glm::inverse(camera->GetProjectionMatrix(0.05f, 2000.0f) * camera->GetViewMatrix()); + const glm::vec2 ndc(mousePos.x / window->width * 2.0f - 1.0f, 1.0f - mousePos.y / window->height * 2.0f); + glm::vec4 nearPoint = inverseViewProjection * glm::vec4(ndc, -1.0f, 1.0f); + glm::vec4 farPoint = inverseViewProjection * glm::vec4(ndc, 1.0f, 1.0f); + nearPoint /= nearPoint.w; + farPoint /= farPoint.w; + + Ray ray; + ray.origin = glm::vec3(nearPoint); + ray.direction = glm::normalize(glm::vec3(farPoint - nearPoint)); + return ray; + }; + + // Debug cubes G throws, each a mesh and the physics body moving it. Cleared once they fall off the world. + struct DebugCube { + Mesh* mesh = nullptr; + p* body = nullptr; + }; + std::vector debugCubes; + auto SpawnDebugCube = [&](const glm::vec3& position, const glm::vec3& velocity) { + DebugCube cube; + cube.mesh = CreateCubeMesh(); + cube.mesh->name = "debug_cube"; + cube.mesh->colorOverride = glm::vec4(1.0f, 0.4f, 0.1f, 1.0f); + cube.mesh->roughness = 0.7f; + cube.mesh->castshadow = true; + cube.mesh->t.ScaleTo(0.3f); + cube.mesh->t.RotateToQuaternion(glm::quat(1.0f, 0.0f, 0.0f, 0.0f)); + cube.mesh->t.TranslateTo(position); + cube.mesh->BindToRenderSystem(); + + cube.body = new p(cube.mesh); + cube.body->mass = 2.0f; + cube.body->restitution = 0.1f; + cube.body->friction = 0.7f; + cube.body->maxSpeed = 40.0f; + cube.body->linearvelocity = velocity; + physicsengine->AddObject(cube.body); + debugCubes.push_back(cube); + }; + + auto ParseFloat = [](const std::string& text, float& value) { + try { size_t used = 0; value = std::stof(text, &used); return used == text.size(); } + catch (...) { return false; } + }; + + console->Register("tp", "tp ", "teleports you", [&](const Console::Arguments& args) { + glm::vec3 position; + if (args.size() < 3 || !ParseFloat(args[0], position.x) || !ParseFloat(args[1], position.y) || !ParseFloat(args[2], position.z)) { + console->Print("Usage: tp "); + return; + } + controlled->body->t.TranslateTo(position); + controlled->body->physics->linearvelocity = glm::vec3(0.0f); + controlled->body->physics->WakeUp(); + console->Print("Teleported"); + }); + + console->Register("gravity", "gravity [strength]", "shows or sets how hard things fall, in m/s^2", [&](const Console::Arguments& args) { + float strength = 0.0f; + if (!args.empty()) { + if (!ParseFloat(args[0], strength)) { console->Print("Usage: gravity [strength]"); return; } + physicsengine->SetGravity(glm::vec3(0.0f, -strength, 0.0f)); + } + std::ostringstream text; + text << "Gravity is " << std::fixed << std::setprecision(2) << -physicsengine->GetGravity().y << " m/s^2"; + console->Print(text.str()); + }); + + console->Register("quit", "quit", "closes the game", [&](const Console::Arguments&) { + glfwSetWindowShouldClose(window->handle, 1); + }); // ------------------------------------------------------------------------ // 3D audio @@ -211,7 +299,7 @@ void Engine::Initiate() float hover = 0.0f; // eased 0-1 }; - enum class MenuScreen { Main, Paused, Settings, Graphics, Drawer }; + enum class MenuScreen { Main, Paused, Settings, Graphics }; MenuScreen menuScreen = MenuScreen::Main; MenuScreen settingsReturn = MenuScreen::Main; bool menuActive = true; @@ -277,7 +365,7 @@ void Engine::Initiate() box->t2d.position = { 0.0f, 0.5f, x, y }; box->t2d.center = { 0.0f, 0.5f }; box->t2d.size = { 0.0f, 0.0f, width, height }; - box->rounding = 0.15f; + box->rounding = 0.05f; box->BindToRenderSystem(); menuItems.push_back(box); @@ -301,11 +389,9 @@ void Engine::Initiate() const float mainButtonHeight = 60.0f; MenuButton playButton = MakeMenuButton("PLAY", menuMargin, -60.0f, menuContentWidth, mainButtonHeight, 0.75f, glm::vec3(0.82f, 0.45f, 0.10f), menuAccent, 0.95f); - MenuButton drawerButton = MakeMenuButton("TEXTURE DRAWER", menuMargin, 12.0f, menuContentWidth, mainButtonHeight, 0.75f, + MenuButton settingsButton = MakeMenuButton("SETTINGS", menuMargin, 12.0f, menuContentWidth, mainButtonHeight, 0.75f, menuButtonColor, menuButtonHover); - MenuButton settingsButton = MakeMenuButton("SETTINGS", menuMargin, 84.0f, menuContentWidth, mainButtonHeight, 0.75f, - menuButtonColor, menuButtonHover); - MenuButton quitButton = MakeMenuButton("QUIT", menuMargin, 156.0f, menuContentWidth, mainButtonHeight, 0.75f, + MenuButton quitButton = MakeMenuButton("QUIT", menuMargin, 84.0f, menuContentWidth, mainButtonHeight, 0.75f, menuButtonColor, glm::vec3(0.42f, 0.14f, 0.16f)); // Settings rows: LABEL [-] VALUE [+] @@ -349,117 +435,12 @@ void Engine::Initiate() MenuButton backButton = MakeMenuButton("BACK", menuMargin, 120.0f, menuContentWidth, 50.0f, 0.6f, glm::vec3(0.82f, 0.45f, 0.10f), menuAccent, 0.95f); - // Texture drawer. Filled in further down, once the things it paints on exist. - struct DrawableSurface { - const char* name; - SurfaceTexture* surface; - glm::vec4* colorOverride; - bool hasCanvas = false; - }; - std::vector drawableSurfaces; - int selectedSurface = 0; - int selectedSwatch = 0; - TexturePainter painter; - bool painting = false; - - // The first edit swaps in a private copy, so painting never touches the shared image file. - // A colour override would hide the paint, so that goes too. - auto EnsureCanvas = [&](DrawableSurface& drawable) { - if (drawable.hasCanvas) - return; - - SurfaceTexture& surface = *drawable.surface; - surface.texture = surface.texture ? resourcemanager->CopyTexture(*surface.texture) - : resourcemanager->CreateTexture(256, 256); - drawable.colorOverride->w = 0.0f; - drawable.hasCanvas = true; - }; - - const float surfaceRowY = -120.0f; - const float swatchRowY = -64.0f; - const float brushRowY = -8.0f; - - MenuButton surfacePrevious = MakeMenuButton("<", menuMargin, surfaceRowY, 44.0f, 44.0f, 0.6f, - menuButtonColor, menuButtonHover, 0.6f, true); - MenuButton surfaceNext = MakeMenuButton(">", stepperUpX, surfaceRowY, 44.0f, 44.0f, 0.6f, - menuButtonColor, menuButtonHover, 0.6f, true); - TextBox* surfaceName = MakeMenuText("", menuMargin + 44.0f, surfaceRowY, menuContentWidth - 88.0f, 44.0f, 0.5f, menuText, 0.5f); - - const glm::vec3 swatchColors[] = { - { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, { 0.90f, 0.15f, 0.15f }, - { 0.96f, 0.58f, 0.16f }, { 0.20f, 0.75f, 0.30f }, { 0.20f, 0.45f, 0.95f } - }; - const float swatchSize = 52.0f; - const float swatchSpacing = 60.0f; - - std::vector swatches; - swatches.reserve(std::size(swatchColors)); - for (int i = 0; i < (int)std::size(swatchColors); i++) { - swatches.push_back(MakeMenuButton("", menuMargin + swatchSpacing * i, swatchRowY, swatchSize, 44.0f, 0.5f, - swatchColors[i], glm::mix(swatchColors[i], glm::vec3(1.0f), 0.2f), 1.0f, true)); - } - - Box* swatchMarker = new Box(); - swatchMarker->Color = menuAccent; - swatchMarker->t2d.center = { 0.0f, 0.5f }; - swatchMarker->t2d.size = { 0.0f, 0.0f, swatchSize, 4.0f }; - swatchMarker->BindToRenderSystem(); - menuItems.push_back(swatchMarker); - - TextBox* brushLabel = MakeMenuText("BRUSH SIZE", menuMargin, brushRowY, 172.0f, 44.0f, 0.5f, menuMutedText); - TextBox* brushValue = MakeMenuText("", stepperValueX, brushRowY, stepperValueWidth, 44.0f, 0.5f, menuText, 0.5f); - MenuButton brushDown = MakeMenuButton("-", stepperDownX, brushRowY, 44.0f, 44.0f, 0.7f, - menuButtonColor, menuButtonHover, 0.6f, true); - MenuButton brushUp = MakeMenuButton("+", stepperUpX, brushRowY, 44.0f, 44.0f, 0.7f, - menuButtonColor, menuButtonHover, 0.6f, true); - MenuButton clearButton = MakeMenuButton("CLEAR", menuMargin, 52.0f, menuContentWidth, 50.0f, 0.6f, - menuButtonColor, menuButtonHover); - - // The canvas sits in the middle of the space right of the panel - const float canvasSize = 640.0f; - - Box* canvasBorder = new Box(); - canvasBorder->Color = menuAccent; - canvasBorder->t2d.position = { 0.5f, 0.5f, menuPanelWidth * 0.5f, 0.0f }; - canvasBorder->t2d.center = { 0.5f, 0.5f }; - canvasBorder->t2d.size = { 0.0f, 0.0f, canvasSize + 8.0f, canvasSize + 8.0f }; - canvasBorder->BindToRenderSystem(); - menuItems.push_back(canvasBorder); - - Box* canvasBlank = new Box(); // shows through until the surface has a texture - canvasBlank->t2d.position = canvasBorder->t2d.position; - canvasBlank->t2d.center = { 0.5f, 0.5f }; - canvasBlank->t2d.size = { 0.0f, 0.0f, canvasSize, canvasSize }; - canvasBlank->BindToRenderSystem(); - menuItems.push_back(canvasBlank); - - ImageBox* canvasImage = new ImageBox(); - canvasImage->t2d.position = canvasBorder->t2d.position; - canvasImage->t2d.center = { 0.5f, 0.5f }; - canvasImage->t2d.size = { 0.0f, 0.0f, canvasSize, canvasSize }; - canvasImage->BindToRenderSystem(); - menuItems.push_back(canvasImage); - std::vector menuButtons = { - &playButton, &drawerButton, &settingsButton, &quitButton, + &playButton, &settingsButton, &quitButton, &sensitivityDown, &sensitivityUp, &fovDown, &fovUp, &hitboxToggle, &graphicsButton, &resetButton, &backButton, - &bloomToggle, &shadowToggle, &lightShadowToggle, &vsyncToggle, &cullingToggle, - &surfacePrevious, &surfaceNext, &brushDown, &brushUp, &clearButton + &bloomToggle, &shadowToggle, &lightShadowToggle, &vsyncToggle, &cullingToggle }; - for (MenuButton& swatch : swatches) - menuButtons.push_back(&swatch); - - TextBox* menuHint = new TextBox(); - menuHint->font = arial; - menuHint->fontsize = 0.42f; - menuHint->Color = menuMutedText; - menuHint->t2d.position = { 0.0f, 1.0f, menuMargin, -28.0f }; - menuHint->t2d.center = { 0.0f, 1.0f }; - menuHint->t2d.size = { 0.0f, 0.0f, menuContentWidth, 110.0f }; - menuHint->textCenter = { 0.0f, 1.0f }; - menuHint->BindToRenderSystem(); - menuItems.push_back(menuHint); auto SetButtonVisible = [](MenuButton& button, bool visible) { button.box->Opacity = visible ? button.opacity : 0.0f; @@ -472,7 +453,6 @@ void Engine::Initiate() const bool paused = menuScreen == MenuScreen::Paused; const bool settings = menuScreen == MenuScreen::Settings; const bool graphics = menuScreen == MenuScreen::Graphics; - const bool drawer = menuScreen == MenuScreen::Drawer; const bool mainButtons = main || paused; menuVeil->Opacity = 0.22f; @@ -480,39 +460,13 @@ void Engine::Initiate() menuPanelEdge->Opacity = 1.0f; menuTitle->Opacity = 1.0f; menuSubtitle->Opacity = 1.0f; - menuHint->Opacity = 1.0f; - menuSubtitle->text = main ? "MAIN MENU" : (paused ? "PAUSED" - : (drawer ? "TEXTURE DRAWER" : (graphics ? "GRAPHICS" : "SETTINGS"))); + menuSubtitle->text = main ? "MAIN MENU" : (paused ? "PAUSED" : (graphics ? "GRAPHICS" : "SETTINGS")); playButton.label->text = paused ? "RESUME" : "PLAY"; quitButton.label->text = paused ? "QUIT TO MENU" : "QUIT"; - menuHint->text = drawer - ? "DRAG ON THE CANVAS TO DRAW\nESC TO GO BACK" - : (settings || graphics ? "ESC TO GO BACK" : "WASD TO MOVE\nESC FOR MENU"); SetButtonVisible(playButton, mainButtons); - SetButtonVisible(drawerButton, mainButtons); SetButtonVisible(settingsButton, mainButtons); SetButtonVisible(quitButton, mainButtons); - SetButtonVisible(surfacePrevious, drawer); - SetButtonVisible(surfaceNext, drawer); - SetButtonVisible(brushDown, drawer); - SetButtonVisible(brushUp, drawer); - SetButtonVisible(clearButton, drawer); - for (MenuButton& swatch : swatches) - SetButtonVisible(swatch, drawer); - - Texture* canvasTexture = drawableSurfaces[selectedSurface].surface->texture; - canvasImage->surface = SurfaceTexture::Stretched(canvasTexture); - canvasImage->Opacity = drawer && canvasTexture ? 1.0f : 0.0f; - canvasBlank->Opacity = drawer ? 1.0f : 0.0f; - canvasBorder->Opacity = drawer ? 1.0f : 0.0f; - surfaceName->Opacity = drawer ? 1.0f : 0.0f; - surfaceName->text = drawableSurfaces[selectedSurface].name; - brushLabel->Opacity = drawer ? 1.0f : 0.0f; - brushValue->Opacity = drawer ? 1.0f : 0.0f; - brushValue->text = std::to_string(painter.brushSize); - swatchMarker->Opacity = drawer ? 1.0f : 0.0f; - swatchMarker->t2d.position = { 0.0f, 0.5f, menuMargin + swatchSpacing * selectedSwatch, swatchRowY + 28.0f }; SetButtonVisible(sensitivityDown, settings); SetButtonVisible(sensitivityUp, settings); @@ -521,7 +475,7 @@ void Engine::Initiate() SetButtonVisible(hitboxToggle, settings); SetButtonVisible(graphicsButton, settings); SetButtonVisible(resetButton, settings); - SetButtonVisible(backButton, settings || drawer || graphics); + SetButtonVisible(backButton, settings || graphics); auto ShowToggle = [&](MenuButton& button, const char* name, bool enabled) { SetButtonVisible(button, graphics); @@ -549,9 +503,8 @@ void Engine::Initiate() auto OpenMenu = [&](MenuScreen screen) { menuActive = true; menuScreen = screen; - charactermanager->ClearInput(); - testcharacter.SetWalking(false); - npc.SetWalking(false); + testcharacter.body->SetWalking(false); + npc.body->SetWalking(false); fpsCounter->Opacity = 0.0f; camera->lockedcursor = false; glfwSetInputMode(window->handle, GLFW_CURSOR, GLFW_CURSOR_NORMAL); @@ -560,7 +513,6 @@ void Engine::Initiate() auto ResumeGame = [&]() { menuActive = false; - charactermanager->ClearInput(); for (Box* item : menuItems) item->Opacity = 0.0f; fpsCounter->Opacity = 1.0f; camera->lockedcursor = true; @@ -575,21 +527,21 @@ void Engine::Initiate() glfwSetInputMode(window->handle, GLFW_CURSOR, GLFW_CURSOR_NORMAL); // ------------------------------------------------------------------------ - // Baseplate + // Baseplate, a flat slab with its top at y = 0 // ------------------------------------------------------------------------ - Mesh* floor = CreateCubeMesh(); - floor->name = "baseplate"; - floor->surface = SurfaceTexture::Tiled(blanktex, 8.0f); - floor->roughness = 0.9f; - floor->t.ScaleTo({ 200.0f, 2.0f, 200.0f }); - floor->t.TranslateTo({ 0.0f, -1.0f, 0.0f }); - floor->BindToRenderSystem(); - mainf->AddChild(floor); + Mesh* baseplate = CreateCubeMesh(); + baseplate->name = "baseplate"; + baseplate->t.ScaleTo({ 200.0f, 2.0f, 200.0f }); + baseplate->t.TranslateTo({ 0.0f, -1.0f, 0.0f }); + baseplate->t.RotateToQuaternion(glm::quat(1.0f, 0.0f, 0.0f, 0.0f)); + baseplate->surface = SurfaceTexture::Tiled(blanktex, 8.0f); + baseplate->BindToRenderSystem(); + mainf->AddChild(baseplate); - p* floorBody = new p(floor); - floorBody->velocity = false; - physicsengine->AddObject(floorBody); - const BoundingBox floorBounds = floor->t.GetRotationlessAABB(); + p* baseplateBody = new p(baseplate); + baseplateBody->velocity = false; + baseplateBody->friction = 0.7f; + physicsengine->AddObject(baseplateBody); // ------------------------------------------------------------------------ // Light cubes @@ -616,22 +568,19 @@ void Engine::Initiate() Mesh* pointLightCube = AddLightCube("point_light_cube", pointLightPosition, 0.8f, pointLightColor); rendersystem->lighting->AddPointLight(pointLightPosition, pointLightColor, 300.0f, 30.0f); - drawableSurfaces.push_back({ "BASEPLATE", &floor->surface, &floor->colorOverride }); - drawableSurfaces.push_back({ "PLAYER", &testcharacter.surface, &testcharacter.colorOverride }); - drawableSurfaces.push_back({ "DUMMY", &npc.surface, &npc.colorOverride }); - drawableSurfaces.push_back({ "SKY LIGHT CUBE", &skyLightCube->surface, &skyLightCube->colorOverride }); - drawableSurfaces.push_back({ "POINT LIGHT CUBE", &pointLightCube->surface, &pointLightCube->colorOverride }); // ------------------------------------------------------------------------ // Ground check + respawn // ------------------------------------------------------------------------ - auto IsGrounded = [&]() -> bool { + auto IsGrounded = [&](Character& character) -> bool { Ray downRay; - downRay.origin = testcharacter.body->t.GetTranslation(); + downRay.origin = character.body->t.GetTranslation(); downRay.direction = glm::vec3(0.0f, -1.0f, 0.0f); - const float halfHeight = testcharacter.body->t.GetScale().y * 0.5f; + const float halfHeight = character.body->t.GetScale().y * 0.5f; + for (p* obj : physicsengine->GetObjects()) { - if (obj->pointer == testcharacter.body) continue; + if (obj->pointer == character.body) continue; + if (obj->collisionGroup != 0 && obj->collisionGroup == character.GetCollisionGroup()) continue; // anything else of its own if (!obj->collision) continue; auto hit = IsRayInT(downRay, obj->pointer->t); if (hit.has_value()) { @@ -677,6 +626,16 @@ void Engine::Initiate() prevFrameTime = frameNow; const float refDt = 1.0f / float(fps); + static bool prevSwapDown = false; + const bool swapDown = keyboard->IsKeyDown(GLFW_KEY_C); + if (swapDown && !prevSwapDown && !menuActive) { + // The keyboard moves over, the one left behind has no mind and stands still + controlled->mind = nullptr; + controlled = controlled == &testcharacter ? &npc : &testcharacter; + controlled->mind = &keyboardMind; + } + prevSwapDown = swapDown; + static bool prevEscapeDown = false; const bool escapeDown = keyboard->IsKeyDown(GLFW_KEY_ESCAPE); const bool escapePressed = escapeDown && !prevEscapeDown; @@ -685,7 +644,7 @@ void Engine::Initiate() if (escapePressed) { if (!menuActive) OpenMenu(MenuScreen::Paused); - else if (menuScreen == MenuScreen::Settings || menuScreen == MenuScreen::Drawer) + else if (menuScreen == MenuScreen::Settings) menuScreen = settingsReturn; else if (menuScreen == MenuScreen::Graphics) menuScreen = MenuScreen::Settings; @@ -696,32 +655,75 @@ void Engine::Initiate() // -------------------------------------------------------------------- // Mouse look // -------------------------------------------------------------------- + int wheelSteps = 0; // up is positive while (Mouse::Event buffer = mouse->Read()) { - if (menuActive) continue; + if (buffer.GetType() == Mouse::Event::Type::WheelUp) wheelSteps++; + else if (buffer.GetType() == Mouse::Event::Type::WheelDown) wheelSteps--; + + if (menuActive || console->IsOpen()) continue; if (buffer.GetType() == Mouse::Event::Type::Move && camera->lockedcursor) { float xoffset = mouse->GetX() - mouse->GetLastX(); float yoffset = mouse->GetLastY() - mouse->GetY(); camera->ProcessMouseMovement(xoffset, yoffset); } - else if (buffer.GetType() == Mouse::Event::Type::RPress) { - camera->lockedcursor = !camera->lockedcursor; - if (camera->lockedcursor) { - glfwSetInputMode(window->handle, GLFW_CURSOR, GLFW_CURSOR_DISABLED); + } + + const glm::vec2 mousePos((float)mouse->GetX(), (float)mouse->GetY()); + + // -------------------------------------------------------------------- + // Debug: G throws a cube at the cursor, or straight ahead with the cursor locked + // -------------------------------------------------------------------- + static bool prevLaunchDown = false; + const bool launchDown = keyboard->IsKeyDown(GLFW_KEY_G); + if (launchDown && !prevLaunchDown && !menuActive) { + const float launchSpeed = 40.0f; + const glm::vec2 aim = camera->lockedcursor ? glm::vec2(window->width * 0.5f, window->height * 0.5f) : mousePos; + const Ray ray = MouseRay(aim); + + // The camera sits behind the player and looks over them, so start past them rather than hitting them on the way out + const float pastPlayer = glm::dot(controlled->body->t.GetTranslation() - ray.origin, ray.direction) + 1.0f; + const glm::vec3 start = ray.origin + ray.direction * std::max(pastPlayer, 1.0f); + SpawnDebugCube(start, ray.direction * launchSpeed); + } + prevLaunchDown = launchDown; + + // -------------------------------------------------------------------- + // Cursor. Locked for looking around, unless Alt has freed it or the console needs the mouse. + // The menus handle it themselves. + // -------------------------------------------------------------------- + static bool mouseFreed = false; + static bool prevAltDown = false; + const bool altDown = keyboard->IsKeyDown(GLFW_KEY_LEFT_ALT) || keyboard->IsKeyDown(GLFW_KEY_RIGHT_ALT); + if (altDown && !prevAltDown && !menuActive) + mouseFreed = !mouseFreed; + prevAltDown = altDown; + + if (!menuActive) { + const bool wantLocked = !mouseFreed && !console->IsOpen(); + if (camera->lockedcursor != wantLocked) { + camera->lockedcursor = wantLocked; + glfwSetInputMode(window->handle, GLFW_CURSOR, wantLocked ? GLFW_CURSOR_DISABLED : GLFW_CURSOR_NORMAL); + if (wantLocked) { int ww, wh; glfwGetWindowSize(window->handle, &ww, &wh); glfwSetCursorPos(window->handle, ww * 0.5, wh * 0.5); - } - else { - glfwSetInputMode(window->handle, GLFW_CURSOR, GLFW_CURSOR_NORMAL); + + // Otherwise the jump back to the middle reads as one big mouse movement and the camera snaps + mouse->OnMouseMove((unsigned int)(ww / 2), (unsigned int)(wh / 2)); + mouse->OnMouseMove((unsigned int)(ww / 2), (unsigned int)(wh / 2)); } } } + if (console->IsOpen() && wheelSteps != 0) + console->Scroll(wheelSteps * 3); + console->Update(deltatime); + if (menuActive) { ApplyMenuLayout(); const bool liveBackdrop = menuScreen == MenuScreen::Main || - ((menuScreen == MenuScreen::Settings || menuScreen == MenuScreen::Graphics || menuScreen == MenuScreen::Drawer) + ((menuScreen == MenuScreen::Settings || menuScreen == MenuScreen::Graphics) && settingsReturn == MenuScreen::Main); if (liveBackdrop) { static float menuAngle = 0.6f; @@ -817,42 +819,9 @@ void Engine::Initiate() menuScreen = MenuScreen::Settings; } } - else if (menuScreen == MenuScreen::Drawer) { - const int surfaceCount = (int)drawableSurfaces.size(); - if (surfacePrevious.hovered) { - selectedSurface = (selectedSurface + surfaceCount - 1) % surfaceCount; - } - else if (surfaceNext.hovered) { - selectedSurface = (selectedSurface + 1) % surfaceCount; - } - else if (brushDown.hovered) { - painter.brushSize = glm::max(painter.brushSize - 2, 2); - } - else if (brushUp.hovered) { - painter.brushSize = glm::min(painter.brushSize + 2, 64); - } - else if (clearButton.hovered) { - DrawableSurface& drawable = drawableSurfaces[selectedSurface]; - EnsureCanvas(drawable); - painter.Clear(*drawable.surface->texture); - } - else if (backButton.hovered) { - menuScreen = settingsReturn; - } - for (int i = 0; i < (int)swatches.size(); i++) { - if (swatches[i].hovered) { - selectedSwatch = i; - painter.color = swatchColors[i]; - } - } - } else if (playButton.hovered) { ResumeGame(); } - else if (drawerButton.hovered) { - settingsReturn = menuScreen; - menuScreen = MenuScreen::Drawer; - } else if (settingsButton.hovered) { settingsReturn = menuScreen; menuScreen = MenuScreen::Settings; @@ -864,25 +833,6 @@ void Engine::Initiate() menuScreen = MenuScreen::Main; } } - // A stroke has to start on the canvas, but carries on if the mouse wanders off it - canvasImage->t2d.Recalculate(); - const glm::vec2 canvasUV = (mousePos - canvasImage->t2d.pixelposition) / canvasImage->t2d.pixelsize; - if (!mouseDown || menuScreen != MenuScreen::Drawer) { - painting = false; - } - else if (!prevMouseDown) { - painting = canvasUV.x >= 0.0f && canvasUV.x <= 1.0f && canvasUV.y >= 0.0f && canvasUV.y <= 1.0f; - } - - if (painting) { - DrawableSurface& drawable = drawableSurfaces[selectedSurface]; - EnsureCanvas(drawable); - painter.Stroke(*drawable.surface->texture, glm::clamp(canvasUV, glm::vec2(0.0f), glm::vec2(1.0f))); - } - else { - painter.EndStroke(); - } - prevMouseDown = mouseDown; UpdateHitboxDebug(); @@ -891,74 +841,84 @@ void Engine::Initiate() continue; } - const glm::vec3 camFront = camera->t.GetFrontVector(); - const glm::vec3 camRight = camera->t.GetRightVector(); - const float movespeed = 3.0f * 1.3f * 0.6f; - // -------------------------------------------------------------------- - // WASD movement + // Characters: minds decide actions, bodies carry them out // -------------------------------------------------------------------- - const glm::vec3 inputDirection = testcharacter.GetMovementDirection(camFront, camRight); - const bool hasMoveInput = glm::length(inputDirection) > 0.0f; + keyboardMind.enabled = !console->IsOpen(); // typing isn't walking + charactermanager->Think(); - if (hasMoveInput) - testcharacter.SetTurnDirection(inputDirection); - testcharacter.SetWalking(hasMoveInput); + for (Character* character : charactermanager->GetCharacters()) { + if (character->ragdoll) continue; + character->body->ApplyMovement(IsGrounded(*character), 1.0f, deltatime, refDt); + } charactermanager->Step(deltatime); - const glm::vec3 inputVel = hasMoveInput - ? testcharacter.GetForwardDirection() * movespeed - : glm::vec3(0.0f); - - const float accel = 40.0f; - const float damp = 0.75f; - const float airControl = 0.5f; - const float groundTopSpeed = movespeed * accel * refDt * damp / (1.0f - damp); - - if (IsGrounded()) { - const float dampStep = std::pow(damp, deltatime / refDt); - const float accelScale = refDt * damp * (1.0f - dampStep) / (deltatime * dampStep * (1.0f - damp)); - characterBody->linearvelocity.x *= dampStep; - characterBody->linearvelocity.z *= dampStep; - characterBody->linearvelocity.x += inputVel.x * accel * deltatime * accelScale; - characterBody->linearvelocity.z += inputVel.z * accel * deltatime * accelScale; - } - else if (glm::length(inputVel) > 0.0f) { - const glm::vec3 wishDir = glm::normalize(inputVel); - const float current = glm::dot(glm::vec3(characterBody->linearvelocity.x, 0.0f, - characterBody->linearvelocity.z), wishDir); - const float add = glm::clamp(groundTopSpeed - current, 0.0f, - accel * airControl * movespeed * deltatime); - characterBody->linearvelocity.x += wishDir.x * add; - characterBody->linearvelocity.z += wishDir.z * add; - } - + float physicsAlpha = 0.0f; // how far this frame is between the last tick and the next { - const int substeps = std::max(1, (int)std::ceil(deltatime * 120.0f)); - const float subDt = deltatime / float(substeps); - for (int i = 0; i < substeps; i++) physicsengine->Step(subDt); - } - npc.ragdoll->Update(deltatime); + // Physics ticks a fixed 30 times a second of real time, whatever the frame rate. + // deltatime is real time sped up by timeScale, so a tick covers that much more game time. + const float tickRate = 30.0f; + const float tickSeconds = 1.0f / tickRate; + const float timeScale = 144.0f / float(fps); + const float tickDt = tickSeconds * timeScale; + const int substepsPerTick = std::max(1, (int)std::ceil(tickDt * 120.0f)); // keeps fast things from passing through + const int maxTicksPerFrame = 4; - if (testcharacter.body->t.GetTranslation().y < -20.0f) { - testcharacter.body->t.TranslateTo(RandomSpawn()); - characterBody->linearvelocity = glm::vec3(0.0f); - characterBody->WakeUp(); + static float physicsAccumulator = 0.0f; + physicsAccumulator += deltatime / timeScale; + int ticks = 0; + while (physicsAccumulator >= tickSeconds && ticks < maxTicksPerFrame) { + physicsengine->Tick(tickDt, substepsPerTick); + physicsAccumulator -= tickSeconds; + ticks++; + } + // Fell too far behind, a long hitch. Drop the backlog rather than spending frames catching up. + if (physicsAccumulator >= tickSeconds) + physicsAccumulator = 0.0f; + physicsAlpha = physicsAccumulator / tickSeconds; } + // Nothing reads the contacts physics records yet, so they're let go every frame + physicsengine->ClearImpacts(); + + // Debug cubes that fell off the world go + for (int i = (int)debugCubes.size() - 1; i >= 0; i--) { + if (debugCubes[i].mesh->t.GetTranslationY() > -50.0f) + continue; + physicsengine->RemoveP(debugCubes[i].body); + delete debugCubes[i].body; + delete debugCubes[i].mesh; // takes itself out of the render system + debugCubes.erase(debugCubes.begin() + i); + } + + for (Character* character : charactermanager->GetCharacters()) { + p* body = character->body->physics; + if (body && body->pointer->t.GetTranslation().y < -20.0f) { + body->pointer->t.TranslateTo(RandomSpawn()); + body->linearvelocity = glm::vec3(0.0f); + body->WakeUp(); + } + } + + // Drawn partway to the next tick from here until after Render, so nothing may move bodies in between + physicsengine->ApplyInterpolation(physicsAlpha); + // -------------------------------------------------------------------- // Third person camera // -------------------------------------------------------------------- { - const glm::vec3 playerPos = testcharacter.body->t.GetTranslation(); + const glm::vec3 playerPos = controlled->body->t.GetTranslation(); const glm::vec3 target = playerPos + glm::vec3(0.0f, 0.8f, 0.0f); - glm::vec3 cameraPos = target - camera->t.GetFrontVector() * 5.0f; - const bool playerOffFloor = - playerPos.x < floorBounds.min.x || playerPos.x > floorBounds.max.x || - playerPos.z < floorBounds.min.z || playerPos.z > floorBounds.max.z; - const bool ignoreFloorCollision = playerOffFloor || playerPos.y < floorBounds.max.y; + // Scroll zooms, unless something on screen is using the wheel. Eases toward the new distance. + static float zoomTarget = 5.0f; + static float zoomDistance = 5.0f; + if (!console->IsOpen() && wheelSteps != 0) + zoomTarget = glm::clamp(zoomTarget * std::pow(0.85f, (float)wheelSteps), 1.5f, 15.0f); + zoomDistance += (zoomTarget - zoomDistance) * (1.0f - std::exp(-12.0f * deltatime)); + + glm::vec3 cameraPos = target - camera->t.GetFrontVector() * zoomDistance; const glm::vec3 cameraRay = cameraPos - target; const float desiredDistance = glm::length(cameraRay); @@ -969,12 +929,10 @@ void Engine::Initiate() cameraSweep.direction = cameraDir; float nearestHit = desiredDistance; for (p* obj : physicsengine->GetObjects()) { - if (obj->pointer == testcharacter.body || !obj->collision) + if (obj->pointer == controlled->body || !obj->collision) continue; if (obj->collisionGroup != 0) // flailing ragdoll limbs would make the camera jump continue; - if (obj == floorBody && ignoreFloorCollision) - continue; auto hit = IsRayInT(cameraSweep, obj->pointer->t); if (!hit.has_value()) continue; @@ -1024,6 +982,7 @@ void Engine::Initiate() // -------------------------------------------------------------------- UpdateHitboxDebug(); rendersystem->Render(*camera); + physicsengine->RemoveInterpolation(); // back to the real positions before anything moves them glfwPollEvents(); } @@ -1044,6 +1003,22 @@ void framebuffer_size_callback(GLFWwindow* window, int w, int h) void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { + Console* console = engine ? engine->console : nullptr; + + if (console && key == GLFW_KEY_GRAVE_ACCENT && action == GLFW_PRESS) { + console->Toggle(); + return; + } + + // While typing, keys belong to the console. Releases still go through, so nothing held stays stuck down. + if (console && console->IsOpen()) { + if (action == GLFW_PRESS || action == GLFW_REPEAT) + console->OnKey(key); + else if (action == GLFW_RELEASE) + keyboard->KeyUp(key); + return; + } + if (key == GLFW_KEY_F11 && action == GLFW_PRESS) { static int wx = 100, wy = 100, ww = 1920, wh = 1080; if (glfwGetWindowMonitor(window)) { @@ -1064,16 +1039,18 @@ void key_callback(GLFWwindow* window, int key, int scancode, int action, int mod if (action == GLFW_PRESS) keyboard->KeyDown(key); else if (action == GLFW_RELEASE) keyboard->KeyUp(key); +} - if (key >= GLFW_KEY_A && key <= GLFW_KEY_Z && engine && engine->charactermanager) { - const char letter = (char)('A' + (key - GLFW_KEY_A)); - if (action == GLFW_PRESS) engine->charactermanager->PressInput(letter); - else if (action == GLFW_RELEASE) engine->charactermanager->ReleaseInput(letter); - } +void char_callback(GLFWwindow* window, unsigned int codepoint) +{ + if (engine && engine->console && engine->console->IsOpen()) + engine->console->OnChar(codepoint); } void scroll_callback(GLFWwindow* window, double xoffset, double yoffset) { + // Mouse counts wheel notches in Windows units, 120 to a notch, and carries the remainder for touchpads + mouse->OnWheelDelta(mouse->GetX(), mouse->GetY(), (int)std::lround(yoffset * 120.0)); } void mouse_callback(GLFWwindow* window, double xposIn, double yposIn) diff --git a/Engine.h b/Engine.h index 3608f04..fa72784 100644 --- a/Engine.h +++ b/Engine.h @@ -20,6 +20,8 @@ void framebuffer_size_callback(GLFWwindow* windowe, int w, int h); void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods); +void char_callback(GLFWwindow* window, unsigned int codepoint); + void scroll_callback(GLFWwindow* window, double xoffset, double yoffset); void mouse_callback(GLFWwindow* windowe, double xposIn, double yposIn); @@ -34,6 +36,7 @@ class ParticleEmitter; class Camera; class Animator; class CharacterManager; +class Console; class Engine { public: @@ -41,6 +44,7 @@ public: Physics* physicsengine = nullptr; RenderSystem* rendersystem = nullptr; CharacterManager* charactermanager = nullptr; + Console* console = nullptr; public: //METADATA int frame = 0; diff --git a/Physics.cpp b/Physics.cpp index befde52..24625fb 100644 --- a/Physics.cpp +++ b/Physics.cpp @@ -64,8 +64,10 @@ void Physics::Step(float dt) // Integrate forces ? velocities for (p* body : objects) { - // Nothing rotates until the end of the step, so everything until then can share this - body->invInertia = ComputeInvInertiaTensor(body); + // Nothing rotates until the end of the step, so everything until then can share this. + // A sleeping body hasn't turned since it was last worked out. + if (!body->isSleeping) + body->invInertia = ComputeInvInertiaTensor(body); if (!body->velocity || body->isSleeping || body->frozen) continue; @@ -104,29 +106,80 @@ void Physics::Step(float dt) } } +// ============================================================================ +// Tick and interpolation +// ============================================================================ +void Physics::Tick(float dt, int substeps) +{ + for (p* body : objects) { + if (!body->velocity) continue; + body->previousPosition = body->pointer->t.GetTranslation(); + body->previousOrientation = body->pointer->t.GetRotationQuaternion(); + body->hasPrevious = true; + } + + substeps = std::max(substeps, 1); + for (int i = 0; i < substeps; i++) + Step(dt / float(substeps)); +} + +void Physics::ApplyInterpolation(float alpha) +{ + alpha = glm::clamp(alpha, 0.0f, 1.0f); + for (p* body : objects) { + // Asleep it hasn't moved, so there's nothing to blend + if (!body->velocity || !body->hasPrevious || body->interpolated || body->isSleeping) continue; + + t& transform = body->pointer->t; + body->simulatedPosition = transform.GetTranslation(); + body->simulatedOrientation = transform.GetRotationQuaternion(); + transform.TranslateTo(glm::mix(body->previousPosition, body->simulatedPosition, alpha)); + if (!body->lockRotation) + transform.RotateToQuaternion(glm::slerp(body->previousOrientation, body->simulatedOrientation, alpha)); + body->interpolated = true; + } +} + +void Physics::RemoveInterpolation() +{ + for (p* body : objects) { + if (!body->interpolated) continue; + body->pointer->t.TranslateTo(body->simulatedPosition); + body->pointer->t.RotateToQuaternion(body->simulatedOrientation); + body->interpolated = false; + } +} + // ============================================================================ // ResolveCollisions // ============================================================================ void Physics::ResolveCollisions(float dt) { FindCollisions(); + for (Collision& col : collisions) - Resolve(&col); - - if (joints.empty()) return; - - // The first contact pass nudges positions, so these have to be worked out after it + PrepareContact(col); for (BallJoint* joint : joints) { DampJoint(*joint, dt); PrepareJoint(*joint, dt); } - // Joints and contacts fight each other, so iterate them together or limbs get pulled through the floor - for (int i = 0; i < PHYSICS_JOINT_ITERATIONS; i++) { + // One pass over the contacts leaves things resting on several points spinning a little, since + // each push partly undoes the last. Going round several times settles them. Joints and contacts + // fight each other too, so they get iterated together. + const int iterations = joints.empty() ? PHYSICS_CONTACT_ITERATIONS : PHYSICS_JOINT_ITERATIONS; + for (int i = 0; i < iterations; i++) { for (BallJoint* joint : joints) SolveJoint(*joint); for (Collision& col : collisions) - Resolve(&col, false); + SolveContact(col); + } + + // Positions last, so nothing above saw them half moved + for (Collision& col : collisions) { + CorrectContactPosition(col); + if (col.normalImpulse > PHYSICS_MIN_IMPACT_IMPULSE) + impacts.push_back({ col.ObjA, col.ObjB, col.POI, col.normalImpulse }); } } @@ -135,36 +188,70 @@ void Physics::ResolveCollisions(float dt) // Sort and sweep: once sorted along x, a body can only touch the ones after it // that start before it ends. // ============================================================================ +// A body's world bounds, only worked out again once its transform has changed +static const BoundingBox& GetBounds(p* body) +{ + const t& transform = body->pointer->t; + if (body->boundsVersion != transform.GetVersion()) { + body->bounds = transform.GetAABB(); + body->boundsVersion = transform.GetVersion(); + } + return body->bounds; +} + void Physics::FindCollisions() { collisions.clear(); - broadPhase.clear(); - for (p* body : objects) { - if (!body->collision) continue; - BroadPhaseEntry entry; - entry.body = body; - entry.bounds = body->pointer->t.GetAABB(); - broadPhase.push_back(entry); + // Everything goes in, collision or not, so the list only changes when bodies come or go + const bool rebuilt = broadPhaseVersion != objectsVersion; + if (rebuilt) { + broadPhase.clear(); + for (p* body : objects) { + BroadPhaseEntry entry; + entry.body = body; + broadPhase.push_back(entry); + } + broadPhaseVersion = objectsVersion; } + for (BroadPhaseEntry& entry : broadPhase) + entry.bounds = GetBounds(entry.body); - std::sort(broadPhase.begin(), broadPhase.end(), [](const BroadPhaseEntry& first, const BroadPhaseEntry& second) { - return first.bounds.min.x < second.bounds.min.x; - }); + // Things barely move between substeps, so last step's order is nearly sorted already and insertion + // sort gets through it in about one pass. A fresh list gets a proper sort. + if (rebuilt) { + std::sort(broadPhase.begin(), broadPhase.end(), [](const BroadPhaseEntry& first, const BroadPhaseEntry& second) { + return first.bounds.min.x < second.bounds.min.x; + }); + } + else { + for (int i = 1; i < (int)broadPhase.size(); i++) { + const BroadPhaseEntry entry = broadPhase[i]; + int j = i - 1; + while (j >= 0 && broadPhase[j].bounds.min.x > entry.bounds.min.x) { + broadPhase[j + 1] = broadPhase[j]; + j--; + } + broadPhase[j + 1] = entry; + } + } for (int i = 0; i < (int)broadPhase.size(); i++) { const BroadPhaseEntry& first = broadPhase[i]; p* a = first.body; + if (!a->collision) continue; for (int j = i + 1; j < (int)broadPhase.size(); j++) { const BroadPhaseEntry& second = broadPhase[j]; if (second.bounds.min.x >= first.bounds.max.x) break; p* b = second.body; + if (!b->collision) continue; if (!a->velocity && !b->velocity) continue; - if (a->isSleeping && b->isSleeping) continue; + // Two things that can't move into each other, like an item asleep on the ground + if ((a->isSleeping || !a->velocity) && (b->isSleeping || !b->velocity) && !a->isHitbox && !b->isHitbox) continue; if ((a->frozen || !a->velocity) && (b->frozen || !b->velocity)) continue; - if (a->collisionGroup != 0 && a->collisionGroup == b->collisionGroup) continue; + if (a->collisionGroup != 0 && a->collisionGroup == b->collisionGroup) continue; if ((a->isHitbox && b->collisionGroup != 0) || (b->isHitbox && a->collisionGroup != 0)) continue; if (!BoundingBoxInBoundingBox(first.bounds, second.bounds)) continue; if (a->collisionMesh || b->collisionMesh) { @@ -172,18 +259,29 @@ void Physics::FindCollisions() continue; } - std::optional e = TInT(a->pointer->t, b->pointer->t); - if (e.has_value()) { - Collision tp(a, b); - tp.POI = e.value().POI; - tp.CN = e.value().CN; - tp.overlap = e.value().overlap; - collisions.push_back(tp); - } + std::optional e = TInT(a->pointer->t, b->pointer->t, false); + if (e.has_value()) + CollideBoxes(a, b, e.value()); } } } +// The inverse of a transform made of a position, rotation and scale: undo the move, turn back, then unscale. +// Much cheaper than a general 4x4 inverse. +static glm::mat4 InverseTransform(const t& transform) +{ + const glm::mat3 rotation = glm::mat3_cast(transform.GetRotationQuaternion()); + const glm::vec3 inverseScale = 1.0f / glm::max(glm::abs(transform.GetScale()), glm::vec3(1e-6f)); + + glm::mat3 inverse = glm::transpose(rotation); + for (int column = 0; column < 3; column++) + inverse[column] *= inverseScale; // scales each row, the unscale comes after the turn back + + glm::mat4 result(inverse); + result[3] = glm::vec4(-(inverse * transform.GetTranslation()), 1.0f); + return result; +} + // ============================================================================ // CollideTriangles // Tests every triangle of one body against the other's BVH. Triangles have no @@ -273,10 +371,11 @@ void Physics::CollideTriangles(p* a, p* b) const glm::mat4 queryToWorld = (queryIsA ? a : b)->pointer->t.GetMatrix(); const glm::mat4 targetToWorld = (queryIsA ? b : a)->pointer->t.GetMatrix(); - const glm::mat4 queryToTarget = glm::inverse(targetToWorld) * queryToWorld; + const glm::mat4 queryToTarget = InverseTransform((queryIsA ? b : a)->pointer->t) * queryToWorld; - // Box faces are the reliable surface. Between two meshes, b's faces are used. - const bool surfaceIsA = !a->collisionMesh && b->collisionMesh; + // Something that never moves, like terrain, is the surface. Otherwise box faces are the + // reliable surface, and between two meshes, b's faces are used. + const bool surfaceIsA = a->velocity != b->velocity ? !a->velocity : (!a->collisionMesh && b->collisionMesh); const bool surfaceIsQuery = surfaceIsA == queryIsA; meshContacts.clear(); @@ -340,6 +439,83 @@ void Physics::CollideTriangles(p* a, p* b) } } +// ============================================================================ +// CollideBoxes +// One contact point can't hold a box flat: it tips about it every step and never settles. +// So every corner of either box that's inside the other becomes a contact, pushing along +// the separating axis TInT found. Edge on edge touches have no such corners and keep TInT's point. +// ============================================================================ +void Physics::CollideBoxes(p* a, p* b, const TInTInfo& info) +{ + static const glm::vec3 corners[8] = { + { 0.5f, 0.5f, 0.5f }, { 0.5f, -0.5f, 0.5f }, { 0.5f, 0.5f, -0.5f }, { 0.5f, -0.5f, -0.5f }, + { -0.5f, 0.5f, 0.5f }, { -0.5f, -0.5f, 0.5f }, { -0.5f, 0.5f, -0.5f }, { -0.5f, -0.5f, -0.5f }, + }; + const float tolerance = 0.01f; // world units, so a corner resting right on the surface still counts + + const t& ta = a->pointer->t; + const t& tb = b->pointer->t; + const glm::mat4 aToWorld = ta.GetMatrix(); + const glm::mat4 bToWorld = tb.GetMatrix(); + const glm::mat4 worldToA = InverseTransform(ta); + const glm::mat4 worldToB = InverseTransform(tb); + const glm::vec3 insideA = glm::vec3(0.5f) + tolerance / glm::max(ta.GetScale(), glm::vec3(1e-4f)); + const glm::vec3 insideB = glm::vec3(0.5f) + tolerance / glm::max(tb.GetScale(), glm::vec3(1e-4f)); + + // CN points from b to a, so b's surface is its furthest point along it and a's is its nearest + glm::vec3 worldA[8], worldB[8]; + float surfaceB = -FLT_MAX; + float surfaceA = FLT_MAX; + for (int i = 0; i < 8; i++) { + worldA[i] = glm::vec3(aToWorld * glm::vec4(corners[i], 1.0f)); + worldB[i] = glm::vec3(bToWorld * glm::vec4(corners[i], 1.0f)); + surfaceA = glm::min(surfaceA, glm::dot(worldA[i], info.CN)); + surfaceB = glm::max(surfaceB, glm::dot(worldB[i], info.CN)); + } + + meshContacts.clear(); + auto AddCorner = [&](const glm::vec3& point, float depth) { + Collision contact(a, b); + contact.POI = point; + contact.CN = info.CN; + contact.overlap = glm::clamp(depth, 0.0f, info.overlap); + meshContacts.push_back(contact); + }; + for (int i = 0; i < 8; i++) { + if (glm::all(glm::lessThanEqual(glm::abs(glm::vec3(worldToB * glm::vec4(worldA[i], 1.0f))), insideB))) + AddCorner(worldA[i], surfaceB - glm::dot(worldA[i], info.CN)); + if (glm::all(glm::lessThanEqual(glm::abs(glm::vec3(worldToA * glm::vec4(worldB[i], 1.0f))), insideA))) + AddCorner(worldB[i], glm::dot(worldB[i], info.CN) - surfaceA); + } + + if (meshContacts.empty()) { + Collision contact(a, b); + contact.POI = BoxContactPoint(ta, tb); + contact.CN = info.CN; + contact.overlap = info.overlap; + collisions.push_back(contact); + return; + } + + KeepSpreadContacts(meshContacts); + for (Collision& contact : meshContacts) { + contact.correctionWeight = 1.0f / (float)meshContacts.size(); + collisions.push_back(contact); + } +} + +// Whatever was asleep on or against a body that's going away would otherwise hang there in the air +void Physics::WakeAround(p* removed) +{ + BoundingBox around = GetBounds(removed); + around.min -= glm::vec3(0.05f); + around.max += glm::vec3(0.05f); + for (p* body : objects) { + if (body->isSleeping && BoundingBoxInBoundingBox(GetBounds(body), around)) + body->WakeUp(); + } +} + void Physics::WakeGroup(int group) { for (p* body : objects) { @@ -496,91 +672,130 @@ void Physics::DampJoint(BallJoint& joint, float dt) } // ============================================================================ -// Resolve +// Contacts +// Solved the same way as the joints. Prepare works out everything that only +// depends on where things are, then Solve runs many times a step. The impulse +// is kept as a running total that can't go below zero, so a later pass can +// take back an earlier pass's overshoot, but a contact can never pull. // ============================================================================ -void Physics::Resolve(Collision* c, bool firstPass) +static void ApplyImpulse(p* body, const glm::vec3& impulse, const glm::vec3& r) { - p* a = c->ObjA; - p* b = c->ObjB; + if (!body->velocity) + return; + body->linearvelocity += body->GetInvMass() * impulse; + if (!body->lockRotation) + body->angularvelocity += body->invInertia * glm::cross(r, impulse); +} - a->WakeUp(); - b->WakeUp(); +static glm::vec3 RelativeVelocity(const Collision& c) +{ + const glm::vec3 velA = c.ObjA->linearvelocity + glm::cross(c.ObjA->angularvelocity, c.rA); + const glm::vec3 velB = c.ObjB->linearvelocity + glm::cross(c.ObjB->angularvelocity, c.rB); + return velA - velB; +} - const glm::vec3 n = c->CN; - const glm::vec3 rA = c->POI - a->pointer->t.GetTranslation(); - const glm::vec3 rB = c->POI - b->pointer->t.GetTranslation(); - - const glm::mat3& invIA = a->invInertia; - const glm::mat3& invIB = b->invInertia; - - const float invMassA = a->GetInvMass(); - const float invMassB = b->GetInvMass(); - - const glm::vec3 velA = a->linearvelocity + glm::cross(a->angularvelocity, rA); - const glm::vec3 velB = b->linearvelocity + glm::cross(b->angularvelocity, rB); - const glm::vec3 relVel = velA - velB; - - const float relVelN = glm::dot(relVel, n); - if (relVelN > 0.0f) return; - - const float e = (!firstPass || glm::abs(relVelN) < PHYSICS_RESTITUTION_THRESHOLD) - ? 0.0f - : glm::min(a->restitution, b->restitution); - - auto angDenom = [](const glm::mat3& invI, const glm::vec3& r, const glm::vec3& d) { +// One over how hard it is to push the two points apart along direction +static float InverseDenominator(const Collision& c, const glm::vec3& direction) +{ + auto angular = [](const glm::mat3& invI, const glm::vec3& r, const glm::vec3& d) { return glm::dot(glm::cross(invI * glm::cross(r, d), r), d); }; + const float denom = c.ObjA->GetInvMass() + c.ObjB->GetInvMass() + + angular(c.ObjA->invInertia, c.rA, direction) + angular(c.ObjB->invInertia, c.rB, direction); + return denom > 1e-8f ? 1.0f / denom : 0.0f; +} - // ---- Normal impulse ---- - const float denomN = invMassA + invMassB + angDenom(invIA, rA, n) + angDenom(invIB, rB, n); - const float jN = -(1.0f + e) * relVelN / denomN; - - const glm::vec3 impulseN = jN * n; - if (a->velocity) { - a->linearvelocity += invMassA * impulseN; - if (!a->lockRotation) - a->angularvelocity += invIA * glm::cross(rA, impulseN); - } - if (b->velocity) { - b->linearvelocity -= invMassB * impulseN; - if (!b->lockRotation) - b->angularvelocity -= invIB * glm::cross(rB, impulseN); +// Something moving into a sleeping body wakes it. Something merely resting against it doesn't, or the two would +// keep each other awake forever, and waking resets the timer every body needs to run down before it can sleep. +// A push that does get through to a sleeper wakes it anyway, in UpdateSleep. +static void WakeIfDisturbed(p* sleeper, const p* other) +{ + if (!sleeper->isSleeping) + return; + // Hitboxes get moved by the animation rather than by physics, so they have no velocity to go by + if (other->isHitbox) { + sleeper->WakeUp(); + return; } + const float linSq = glm::dot(other->linearvelocity, other->linearvelocity); + const float angSq = glm::dot(other->angularvelocity, other->angularvelocity); + if (linSq > PHYSICS_SLEEP_LINEAR_SQ * 4.0f || angSq > PHYSICS_SLEEP_ANGULAR_SQ * 4.0f) + sleeper->WakeUp(); +} - // ---- Friction impulse ---- - glm::vec3 tangent = relVel - relVelN * n; - const float tangLen = glm::length(tangent); - if (tangLen > 1e-6f) { - tangent /= tangLen; +void Physics::PrepareContact(Collision& c) +{ + p* a = c.ObjA; + p* b = c.ObjB; + WakeIfDisturbed(a, b); + WakeIfDisturbed(b, a); - const float denomT = invMassA + invMassB + angDenom(invIA, rA, tangent) + angDenom(invIB, rB, tangent); - float jT = -glm::dot(relVel, tangent) / denomT; + c.rA = c.POI - a->pointer->t.GetTranslation(); + c.rB = c.POI - b->pointer->t.GetTranslation(); - const float mu = (a->friction + b->friction) * 0.5f * c->frictionScale; - jT = glm::clamp(jT, -mu * jN, mu * jN); + // Friction works along two fixed directions across the surface + const glm::vec3& n = c.CN; + c.tangent1 = glm::abs(n.x) > 0.57f ? glm::vec3(n.y, -n.x, 0.0f) : glm::vec3(0.0f, n.z, -n.y); + c.tangent1 = glm::normalize(c.tangent1); + c.tangent2 = glm::cross(n, c.tangent1); - const glm::vec3 impulseT = jT * tangent; - if (a->velocity) { - a->linearvelocity += invMassA * impulseT; - if (!a->lockRotation) - a->angularvelocity += invIA * glm::cross(rA, impulseT); - } - if (b->velocity) { - b->linearvelocity -= invMassB * impulseT; - if (!b->lockRotation) - b->angularvelocity -= invIB * glm::cross(rB, impulseT); - } - } + c.inverseDenomN = InverseDenominator(c, n); + c.inverseDenomT1 = InverseDenominator(c, c.tangent1); + c.inverseDenomT2 = InverseDenominator(c, c.tangent2); + c.mu = (a->friction + b->friction) * 0.5f * c.frictionScale; - // ---- Baumgarte positional correction ---- - if (!firstPass) + // Bounce off at a share of the speed it came in at, but slow touches just stop, or resting things would hop + const float approach = glm::dot(RelativeVelocity(c), n); + const float restitution = approach < -PHYSICS_RESTITUTION_THRESHOLD ? glm::min(a->restitution, b->restitution) : 0.0f; + c.targetSpeed = -restitution * approach; + + c.normalImpulse = 0.0f; + c.tangentImpulse = glm::vec2(0.0f); +} + +void Physics::SolveContact(Collision& c) +{ + const glm::vec3& n = c.CN; + + // ---- Normal ---- + const float speed = glm::dot(RelativeVelocity(c), n); + const float total = glm::max(c.normalImpulse + (c.targetSpeed - speed) * c.inverseDenomN, 0.0f); + const float normalStep = total - c.normalImpulse; + c.normalImpulse = total; + ApplyImpulse(c.ObjA, n * normalStep, c.rA); + ApplyImpulse(c.ObjB, -n * normalStep, c.rB); + + // ---- Friction, never more than mu times how hard the surfaces press together ---- + const glm::vec3 relVel = RelativeVelocity(c); + glm::vec2 friction = c.tangentImpulse + glm::vec2( + -glm::dot(relVel, c.tangent1) * c.inverseDenomT1, + -glm::dot(relVel, c.tangent2) * c.inverseDenomT2); + const float maxFriction = c.mu * c.normalImpulse; + if (glm::length(friction) > maxFriction) + friction = glm::length(friction) > 1e-8f ? glm::normalize(friction) * maxFriction : glm::vec2(0.0f); + + const glm::vec2 frictionStep = friction - c.tangentImpulse; + c.tangentImpulse = friction; + const glm::vec3 frictionImpulse = c.tangent1 * frictionStep.x + c.tangent2 * frictionStep.y; + ApplyImpulse(c.ObjA, frictionImpulse, c.rA); + ApplyImpulse(c.ObjB, -frictionImpulse, c.rB); +} + +// Baumgarte: nudges overlapping bodies apart a little each step +void Physics::CorrectContactPosition(Collision& c) +{ + p* a = c.ObjA; + p* b = c.ObjB; + const float invMassA = a->GetInvMass(); + const float invMassB = b->GetInvMass(); + if (invMassA + invMassB <= 0.0f) return; - const float correction = glm::max(c->overlap - PHYSICS_BAUMGARTE_SLOP, 0.0f) + const float correction = glm::max(c.overlap - PHYSICS_BAUMGARTE_SLOP, 0.0f) / (invMassA + invMassB) * PHYSICS_BAUMGARTE_FACTOR - * c->correctionWeight; - const glm::vec3 corrVec = correction * n; + * c.correctionWeight; + const glm::vec3 corrVec = correction * c.CN; if (a->velocity) a->pointer->t.TranslateBy(invMassA * corrVec); if (b->velocity) b->pointer->t.TranslateBy(-invMassB * corrVec); } diff --git a/Physics.h b/Physics.h index 0b0e1d2..d12fff1 100644 --- a/Physics.h +++ b/Physics.h @@ -27,10 +27,11 @@ static constexpr float PHYSICS_LINEAR_DAMPING = 0.995f; static constexpr float PHYSICS_ANGULAR_DAMPING = 0.990f; static constexpr float PHYSICS_BAUMGARTE_FACTOR = 0.1f; static constexpr float PHYSICS_BAUMGARTE_SLOP = 0.02f; -static constexpr float PHYSICS_SLEEP_LINEAR_SQ = 0.01f * 0.01f; -static constexpr float PHYSICS_SLEEP_ANGULAR_SQ = 0.01f * 0.01f; +static constexpr float PHYSICS_SLEEP_LINEAR_SQ = 0.05f * 0.05f; // m/s +static constexpr float PHYSICS_SLEEP_ANGULAR_SQ = 0.08f * 0.08f; // rad/s static constexpr float PHYSICS_SLEEP_TIME_THRESHOLD = 0.5f; static constexpr float PHYSICS_RESTITUTION_THRESHOLD = 1.0f; +static constexpr int PHYSICS_CONTACT_ITERATIONS = 8; // per step with no joints around static constexpr int PHYSICS_JOINT_ITERATIONS = 12; static constexpr float PHYSICS_JOINT_BIAS = 0.2f; static constexpr float PHYSICS_JOINT_MAX_BIAS_SPEED = 5.0f; @@ -38,6 +39,7 @@ static constexpr float PHYSICS_JOINT_DAMPING = 5.0f; static constexpr int PHYSICS_MAX_MESH_CONTACTS = 4; static constexpr float PHYSICS_MAX_MESH_DEPTH = 0.1f; static constexpr float PHYSICS_MESH_PAIR_FRICTION = 0.25f; // two meshes catch on each other, so they slide easier +static constexpr float PHYSICS_MIN_IMPACT_IMPULSE = 1.0f; // newton seconds, softer contacts like resting aren't recorded // ============================================================================ // Physics body @@ -75,6 +77,7 @@ public: bool isSleeping = false; bool lockRotation = false; bool frozen = false; // parked until something touches its group + bool isHitbox = false; // only collides with loose objects, never with other characters // Set this to collide triangle by triangle, otherwise the body is its t's box const CollisionMesh* collisionMesh = nullptr; @@ -93,6 +96,18 @@ public: glm::mat3 invInertia = glm::mat3(0.0f); // world space, refreshed at the start of each step float sleepTimer = 0.0f; + + // For drawing it smoothly between physics ticks, see Physics::ApplyInterpolation + glm::vec3 previousPosition = glm::vec3(0.0f); + glm::quat previousOrientation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f); + glm::vec3 simulatedPosition = glm::vec3(0.0f); + glm::quat simulatedOrientation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f); + bool hasPrevious = false; // false until its first tick, so new bodies don't slide in from nowhere + bool interpolated = false; // t currently holds the blended pose, not the real one + + // World bounds, kept until t changes. Most bodies sit still most of the time. + BoundingBox bounds; + unsigned int boundsVersion = 0; }; // ============================================================================ @@ -107,6 +122,21 @@ struct Collision { p* ObjA = nullptr; p* ObjB = nullptr; + // Filled in by PrepareContact, these can't change during a step's iterations + glm::vec3 rA = glm::vec3(0.0f); + glm::vec3 rB = glm::vec3(0.0f); + glm::vec3 tangent1 = glm::vec3(0.0f); + glm::vec3 tangent2 = glm::vec3(0.0f); + float inverseDenomN = 0.0f; + float inverseDenomT1 = 0.0f; + float inverseDenomT2 = 0.0f; + float targetSpeed = 0.0f; // how fast it should be separating afterwards, the bounce + float mu = 0.0f; + + // Running totals over the iterations + float normalImpulse = 0.0f; + glm::vec2 tangentImpulse = glm::vec2(0.0f); + Collision(p* a, p* b) : ObjA(a), ObjB(b) {} }; @@ -154,6 +184,14 @@ struct BallJoint { int rowCount = 0; }; +// One contact pushing two bodies apart during a step. impulse is in newton seconds. +struct Impact { + p* a = nullptr; + p* b = nullptr; + glm::vec3 point = glm::vec3(0.0f); + float impulse = 0.0f; +}; + struct BroadPhaseEntry { p* body = nullptr; BoundingBox bounds; @@ -168,18 +206,25 @@ private: std::vector joints; glm::vec3 gravity = glm::vec3(0.0f, -9.81f, 0.0f); - // Kept between steps so they don't get reallocated + // Kept between steps so they don't get reallocated. The broad phase also keeps its order, + // and is only rebuilt when bodies come or go. std::vector broadPhase; + unsigned int objectsVersion = 1; + unsigned int broadPhaseVersion = 0; std::vector collisions; std::vector meshContacts; std::vector meshCandidates; static glm::mat3 ComputeInvInertiaTensor(const p* body); static bool UpdateSleep(p* body, float dt); - void Resolve(Collision* c, bool firstPass = true); + void PrepareContact(Collision& c); + void SolveContact(Collision& c); + void CorrectContactPosition(Collision& c); void FindCollisions(); void CollideTriangles(p* a, p* b); + void CollideBoxes(p* a, p* b, const TInTInfo& info); void WakeGroup(int group); + void WakeAround(p* removed); void PrepareJoint(BallJoint& joint, float dt); void SolveJoint(BallJoint& joint); void DampJoint(BallJoint& joint, float dt); @@ -191,7 +236,7 @@ public: void SetGravity(const glm::vec3& g) noexcept { gravity = g; } int GetObjectAmount() const noexcept { return (int)objects.size(); } - void AddObject(p* obj) { objects.push_back(obj); } + void AddObject(p* obj) { objects.push_back(obj); objectsVersion++; } void AddJoint(BallJoint* joint) { joints.push_back(joint); } const std::vector& GetObjects() const { return objects; } @@ -203,13 +248,18 @@ public: void RemoveP(p* obj) { objects.erase(std::find(objects.begin(), objects.end(), obj)); + objectsVersion++; + WakeAround(obj); } void RemoveObject(t_package* pointer) { for (int i = 0; i < (int)objects.size(); i++) { if (objects[i]->pointer == pointer) { - delete objects[i]; + p* removed = objects[i]; objects.erase(objects.begin() + i); + objectsVersion++; + WakeAround(removed); + delete removed; return; } } @@ -217,7 +267,24 @@ public: void Step(float dt); + // One fixed physics tick, split into substeps so fast things don't pass through each other. + // Remembers where everything was beforehand, for ApplyInterpolation. + void Tick(float dt, int substeps); + + // Moves every moving body's t partway from where it was before the last tick (0) to where it is now (1), + // so things drawn between ticks don't step along at the tick rate. Nothing may move bodies until + // RemoveInterpolation puts the real positions back. + void ApplyInterpolation(float alpha); + void RemoveInterpolation(); + void ResolveCollisions(float dt); + + // Every contact since the last ClearImpacts, for working out what hit what and how hard + const std::vector& GetImpacts() const { return impacts; } + void ClearImpacts() { impacts.clear(); } + +private: + std::vector impacts; }; #endif \ No newline at end of file diff --git a/RenderSystem.cpp b/RenderSystem.cpp index 1533e68..e9d3d4f 100644 --- a/RenderSystem.cpp +++ b/RenderSystem.cpp @@ -480,23 +480,25 @@ void RenderSystem::Render(Camera& camera) } // ---- GUI (always on top, no depth) ---- + // In the order things were made, boxes and text mixed, so a menu made later covers the text of one under it. + // The shader only gets switched when the kind of element changes. glDisable(GL_CULL_FACE); - PrepareBoxShader(camera); + int activeGuiShader = -1; for (Renderable* r : renderables) { - if (r->shadertype == Renderable::BoxShader) - r->Render(*BoxShader); - } + const int type = r->shadertype; + if (type != Renderable::BoxShader && type != Renderable::ImageBoxShader && type != Renderable::TextShader) + continue; - PrepareImageBoxShader(camera); - for (Renderable* r : renderables) { - if (r->shadertype == Renderable::ImageBoxShader) - r->Render(*ImageBoxShader); - } + if (type != activeGuiShader) { + if (type == Renderable::BoxShader) PrepareBoxShader(camera); + else if (type == Renderable::ImageBoxShader) PrepareImageBoxShader(camera); + else PrepareTextShader(camera); + activeGuiShader = type; + } - PrepareTextShader(camera); - for (Renderable* r : renderables) { - if (r->shadertype == Renderable::TextShader) - r->Render(*Text2DShader); + if (type == Renderable::BoxShader) r->Render(*BoxShader); + else if (type == Renderable::ImageBoxShader) r->Render(*ImageBoxShader); + else r->Render(*Text2DShader); } glEnable(GL_CULL_FACE); diff --git a/ResourceManager.cpp b/ResourceManager.cpp index c60aea6..844b914 100644 --- a/ResourceManager.cpp +++ b/ResourceManager.cpp @@ -3,8 +3,13 @@ #include #include +#include +#include +#include + #include "texture.h" #include "font.h" +#include "MeshData.h" ResourceManager::~ResourceManager() { @@ -19,6 +24,49 @@ ResourceManager::~ResourceManager() } for (auto& [path, font] : fonts) delete font; + for (auto& [path, mesh] : meshes) + delete mesh; +} + +const MeshData* ResourceManager::GetMeshData(const std::string& path) +{ + auto existing = meshes.find(path); + if (existing != meshes.end()) + return existing->second; + + // Pre-transforming bakes each node's placement in, so the merged meshes keep their layout + Assimp::Importer importer; + const aiScene* scene = importer.ReadFile(path, aiProcess_Triangulate | aiProcess_GenSmoothNormals | + aiProcess_JoinIdenticalVertices | aiProcess_PreTransformVertices); + + MeshData* data = nullptr; + if (!scene || (scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE) || scene->mNumMeshes == 0) { + std::cout << "RESOURCE MANAGER: couldn't load mesh " << path << ": " << importer.GetErrorString() << "\n"; + } + else { + data = new MeshData(); + for (unsigned int m = 0; m < scene->mNumMeshes; m++) { + const aiMesh* mesh = scene->mMeshes[m]; + const GLuint firstVertex = (GLuint)data->vertices.size(); + + for (unsigned int i = 0; i < mesh->mNumVertices; i++) { + Vertex vertex; + vertex.Position = glm::vec3(mesh->mVertices[i].x, mesh->mVertices[i].y, mesh->mVertices[i].z); + vertex.Normal = mesh->HasNormals() + ? glm::vec3(mesh->mNormals[i].x, mesh->mNormals[i].y, mesh->mNormals[i].z) : glm::vec3(0.0f, 1.0f, 0.0f); + vertex.TexCoords = mesh->mTextureCoords[0] + ? glm::vec2(mesh->mTextureCoords[0][i].x, mesh->mTextureCoords[0][i].y) : glm::vec2(0.0f); + data->vertices.push_back(vertex); + } + for (unsigned int f = 0; f < mesh->mNumFaces; f++) { + for (unsigned int j = 0; j < mesh->mFaces[f].mNumIndices; j++) + data->indices.push_back(firstVertex + mesh->mFaces[f].mIndices[j]); + } + } + } + + meshes[path] = data; + return data; } Texture* ResourceManager::CreateTexture(int width, int height) diff --git a/ResourceManager.h b/ResourceManager.h index 413c3b4..6a518c9 100644 --- a/ResourceManager.h +++ b/ResourceManager.h @@ -7,6 +7,7 @@ class Texture; class Font; +class MeshData; // Owns every texture and font, so each file only loads once however many things use it. // Sounds are cached by SoundSystem, rigs and animations by CharacterManager. @@ -20,6 +21,9 @@ public: Texture* GetTexture(const std::string& path); Font* GetFont(const std::string& path); + // Every mesh in a model file merged into one, in the file's own units. nullptr if it can't be read. + const MeshData* GetMeshData(const std::string& path); + // Not cached, every call makes a new texture that's free to be edited Texture* CreateTexture(int width, int height); Texture* CopyTexture(const Texture& source); @@ -27,6 +31,7 @@ public: private: std::unordered_map textures; std::unordered_map fonts; + std::unordered_map meshes; std::vector createdTextures; }; diff --git a/TexturePainter.h b/TexturePainter.h deleted file mode 100644 index 91048e6..0000000 --- a/TexturePainter.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef TEXTURE_PAINTER_CLASS -#define TEXTURE_PAINTER_CLASS - -#include - -#include - -#include "texture.h" - -// The brush behind the texture drawer. Edits a Texture's pixels and uploads them. -class TexturePainter { -public: - glm::vec3 color = glm::vec3(0.0f); - int brushSize = 8; // radius in pixels of a 256 wide texture, so it looks the same on any size - - // uv runs 0-1 from the top left of the image. Joins up with the last call until EndStroke. - void Stroke(Texture& texture, const glm::vec2& uv) { - const glm::vec2 point(uv.x * texture.width, (1.0f - uv.y) * texture.height); - const float radius = glm::max(1.0f, brushSize * texture.width / 256.0f); - - if (!stroking) { - Stamp(texture, point, radius); - } - else { - // Fill the gap, the mouse can cross a lot of pixels in one frame - const int steps = (int)std::ceil(glm::length(point - lastPoint) / (radius * 0.5f)); - for (int i = 1; i <= steps; i++) - Stamp(texture, glm::mix(lastPoint, point, (float)i / (float)steps), radius); - } - - stroking = true; - lastPoint = point; - texture.Upload(); - } - - void EndStroke() { - stroking = false; - } - - void Clear(Texture& texture) { - texture.pixels.assign(texture.pixels.size(), 255); - texture.Upload(); - } - -private: - bool stroking = false; - glm::vec2 lastPoint = glm::vec2(0.0f); - - void Stamp(Texture& texture, const glm::vec2& center, float radius) { - const int minX = glm::max((int)(center.x - radius), 0); - const int maxX = glm::min((int)(center.x + radius), texture.width - 1); - const int minY = glm::max((int)(center.y - radius), 0); - const int maxY = glm::min((int)(center.y + radius), texture.height - 1); - - for (int y = minY; y <= maxY; y++) { - for (int x = minX; x <= maxX; x++) { - const glm::vec2 offset = glm::vec2(x + 0.5f, y + 0.5f) - center; - if (glm::dot(offset, offset) > radius * radius) - continue; - - unsigned char* pixel = &texture.pixels[((size_t)y * texture.width + x) * 4]; - pixel[0] = (unsigned char)(color.r * 255.0f); - pixel[1] = (unsigned char)(color.g * 255.0f); - pixel[2] = (unsigned char)(color.b * 255.0f); - pixel[3] = 255; - } - } - } -}; - -#endif diff --git a/assets/idle.glb b/assets/idle.glb new file mode 100644 index 0000000000000000000000000000000000000000..8c7a71ecfc277d5bd6e19a5d721c81b5bf7ae383 GIT binary patch literal 466392 zcmeFacX(9A_dmY$UPS=~gh zQkUMS3v0vL!o!mK#KuvB$@Jcc_cA~kuTfl=Sn%%GXF!($jQP8It=?p|8Ej^Q$!@jS zEjFvg93ElU+Km>A-YOZ*HnT-yp$zk@sTK8to>d-Ky7{B%9T4wwuAw3`)J#YPXt<28&&9Guvz? ziTbu$Z8n=#Z#0@L2FMi`p|`&`B79g_xA=s_*nV-a$-8>eE}(neK1p#}z25M+UJ-h& z1ZngZtKMKTS?oru*%EHoT5M3uXs{aecC*C-){x((HQ7xTs{}cqnn4QGLMxkOumam` z)Z1)Et38ueu!j*!nPD=ET{75AmY`Nfi`4?@jo@X6CQ!<#wL%rU-e3ooWT!rYN(HrO z-KkkZY;0nj@o_a^Ap>NGGwgOa2VI$r;byH(lI(i3O|n7}7!CbO67-O)cDrP=oAqe5 zT5RZpYz#`X1>G8qR>@|tkazlb>yn7Lf%nl!|4e$L-E1_Q4FUY8Rb?`TMQgIz;6y|Q z1S5g;c5<)LhBzTZ7%gCLF_{rWHdxGRLiAXSdOP%yO(FP~gbcAvW(VsfJ-8sE^frmq zvl+o1&VUG3y-kmBlT0vzqz{iUXkjL!9mr-gBEd$T25nhoF)^H2RI1ts`ZM z8`8b(KyxX^=6aBjKGoX`4K_XK0z)(4Ym5P!DqwUd zZ#BZz7R)dvJ7mNtAP?D~;#TC(IDf5nBW-$o_d2{(H-={1Z0uWJ2;~si`78O zA0iAhE%SoGq=))OGpcDJHCfmYmo;n~Kd^UK1xI6bwqab-Olq@Q%~)6@WD8iMOjxGP z7{UfCR@Q)}^%!?%xEO0G3U;fFdm2GuhI34q1RfvP&lK}8%;OP{!E2Gw4NbOYFtyS2 z#(ZtSlxoG;Ghj$yC4?QdR?O2Frv|G@k3nLf1R~SyW)pqQERmJ3B_tc@f{*W@vkh>8 z%}A3DML@vWY%+A2_hiYupUV! z$zTa_b?bzr9wE~j4O64RhV>fh6kKaEny_#p4a7`l!LUJ`8f?e~0!tgk9hMf%f|%Ff zf0Gd_E7KAIjRnU9&p<5E)!fm-vJdBE@~mPeMm9BKbYYYs#4%l?JDSVP7`|p3d`fdE z3&PM<3!WARG3lK-!VO4Z;6{WACTrw>7Q_sOE|w;YXao*2G9kcCFaz8`V;&>JNI{1Q z8d(e$1SEN|g9%+eVJhQ>c;YOd$u1Tx4J=HSCL88-$jTf6yO<0Tf{*zEGbcm9hP^P2om)#>tIB5)q65#L|Ww(tu^fz!r0ZUP5#u;YE%IQJ4q_ zTfH4~Db{|A9pnA+$*pBVQm-Ldg*+|g@HEmwQ#g`l3>!>fMz(7(vDtzRsbIiku0bw? zsYf4NlPGLpXT1gEPn^QJpPv%&NYgP>BF>O1U~a(>m!~qx0>O}hQ(lQ33tPUQA><#+ z)R^K~#5^VtEPohSSj{PHEQlA(l9)M=;K1Kp5NM8|r`!gCfF%GKlj^8{rUe|+jhV7` zj7S>|Cp%By5CE9x0b^D{PGh#iPe^1j>0<9k_CYw3w3&uKjYT=gnJtu~94RtpRV>5? zyS#=YpTmv;5r)7cg#*(%0uHMo5-k?_YzfaQ%9SD@)4*m?j%6DuFXkYq2bKof5@D&t zOoxOCpxJB;Y+bR2VuNhOT#vjJ!iFkr3b%&a!zDww^jH$ts7q4F9-Phh2u-WegiHz3 z9;VUo2pe{JnC+2|Bem0;?MM%iPY^DabL_$;>>X&+&g_9{4{?vw*@_^=d?=1^8oBrf z9kA;)*qBjS9xHD9GSB`INa2veVvOk#?{@eW0??4BF^7JTy(9CmOGetXzzMWR#R`ik zuqmc+(qlPX(>{aa`qk;z`|)iHX@{KAV!)6`Zj3D{P9xaVgUlVX88+x9$b%`2yaGod zbHaYlgtQN<(*#?puOo0F4;f6%HSkV96Iw8vf8|Il#H?S@!9&h}=Jl*)u z4>t@#n#iq_d7;R3xUqk13A)vd%|H5 z&iaCO2pJ6I*~~{AIMY));{fvi=!ke zc6#Qc4h(I@vksaF{%?*tly99VxB35f)?pA*yny1F=d{dc9a!HL4?6;3{{QH-1L@Cy zeB5CWPWS@GQ40K!;|?D8kDqtQasOW*c(73WFU~ufc6#RX4!R{&IPl1b`v3a8zdi3T(w17z@}Kp*BO}bk1CNX_|Bp{RD7OBy0}q1~ zj<*DG_-w$L&|_KMGoE=UA9+B=|ILZVe|+F!d@P?+ao`aM{LCjFtp0y;DV zzowm3oOrb{EAKw zB%EO4nhK|LR`A7XCJt`IQ<~PD8usZkAXGM-g3>8I&fnSF8gv_j;~iAtG#qE4U>G1YT?m@ulzgfkzEjItH#$ zam;AKIjxog4LKQJfx@L3ds_jg{McmTrUU2PIPJudJI9j?^og0jI3&gig+Q0E>iG5;n*cbG!!?vK@V>!-W~HZ!qW6D==iN$Nd4*Ai(fS5f(%E0|$CI z-$kX7?#pq-hW8AxAE4-=V?Wr1UUGn%bQ2-QQ&TnZgrjd;j4p72fl89brg$xtxS6mREx5ce+gJqS`UtU4uUz47 z7V}6ZiwMg#E+)DR7}zf^jNYQ`l9T`luS*7Ax$G9-B`GN`F#z=M(z|bB9A4?fYncPO z^y?9L)stSs40GU3y|BJr2E^n2Oi{)W^eUrFCq0o)eo^yrBEu7j0_XgXQ$UnZ@nFxV zi)VTwT^8b*pGc%69z+Qh4~BWF@vKiG%R)HYlW3G=vu7rNv!5y(-a5>rQwCiY!r?8> zClDz~hwH^m6v!2xK|Y0$5D2ppP$3`$Dn$tu!U1pHK7)ixQISEIm4r$`kwK*>p;Amd z%jl34VgomFT(vADG$=%dK&2!hc2=3Z3{N~Y2yuD+1iGx`Q;3X=&J@K{h>B;K{E+%& z5-)=;EAbSeVV-V1g}BI|%St?jn8+Yf63?g*4;cZQ_0nNf2#O54EW|S^ zL_`LWqIe47kP+ig5Kkc}GU&1rPaz^Qh!n+B2nR5Es&nxMZl>7Fpvy`;g^0)?QWQ@i z98mRC@k|OqkwKS*czC-plTH~#O5&Lm!r@s~56W#qSL_VBti)4@hzue{@f5;=R=lU1 zPa!GThzWs8Q9^}?pjG_o5-J3SK$wMuW`(d2sFWncTf&)KMajuiCB!>6Pa@1p zLWRf>x>J-;AujMT&ofA<6doCbSxKlA8yQrJ5-J4-q<*>$mBJ%~Fe?d_Vk3h}NkWTK zU}P+dSx?gzrSQlg%tAtoQfy>UDN3ji7Qj*ZB5EzubK6Rv66~aRx z%t}Iq*bt}`B~%CuO39xtp+a~Fgjq?b5E}xOqJ#>8L0gTdOQ;YY0$~;s+7x0#pi+|1 zrVtpo`gyv9Hl^^$Ak0carP#=zQj}0BFrH@hLT}Y+#P=PW_Ar+!TAX64nAw+OP@hn0r z1xf~GmO?5;Nd}p+kV+wvF-EhV!*T1DdC1`>m0Z0ng;a`?3^GL_l}<$IeCFxyRyr6J zD60DGGQx;MoMCkbB8H7{_6oE2JAr+!TAX64nAw=j@=oy4m2o!-bOCc4aL?BZZ zQXxd>yzA*gDjk&ylvxR>bW$piaUpTn7ra^I_kVS|u|Jc7pGyYr`2v@I2}yki;!nCj z;)J9DasB%C;eY2OtZC!s4eGSUrDUIh0~n4(mwhVm4Jz@CD)CJ!@y#mnEh_P?D)DV9 z@$D+{CB0e#wH}t#x>!={V@a)(CAD6b)Vf(x>t{)=qb0STHmLQqL9M3^YCUaG>uG~p zPaD*F+Mw3c2DP3xsP(i#t*4D@J#AF$X`@-DQtN4xT2GtQdfKek(`L1vHmmitS*@qdYCUaM z>uIxEPn*?x+N{>oX0@KSsP(i(t*0$&J#A6zX^UD$x| zZB^@Ot6EQ6)q2{h*3(wCp0=v>v{kLAt!h1ORqJV+T2I^5dfKMe(>Ar9wyE{BO|7SG zYCUaJ>uH->PutXb+OF2qcD0_itM#;9t*7m3J#AO(X}ela+tqs7uGZ6bwVuXpklLdY zy;@)68c1~?YQ2rW^r^ZJwf@GBO;q=x*5mji7^?eF?eqU1$7QO0uKvJG{fU|SBQy19 zX6g^k)SsHEKQ>c+ZYHTdIKv;MQ5%V>kIwLW9@TxQ9_Ol0&+r30)l#V*=c*6T@FPdH zQmH;d!yidg-G^ZW`=j;!dnE*aX_b&fe*{0SZbDLQvn~VrC3K^|ZI2(ChKKd+gPRw+ zjKO=z_#G4d=n>bI_*DshM}eQuh8ysw_blON{P{i9;t%lQuUrBHKeWUju?K}Yoc_8b z(C~wG)Z5w5)&UyWkJs_1R#9UM$B!IwnU1?7+&bZ27k8hyBE$t8uD8Tr1@gP1z;DI6 zLCF62nJ;7;7S?rO_wI51-b{!a%x;Ui_37Ogf2=-fK-(dG@%u3R$#2}&b?Y-Q371Lu zgTUcoy}Nt>IwSrrH2%hK#y=A-rg|svKYKrb5r?&@SEnhin#jsxH@NG2YBxa+Z#JlB z%tVh1O%?Q}O!RP$3i{0bnk=}Gp(EvkzCGwYA*R2B4@<;T^k z3i{0b)7u)^W1ubqGiyL^aAZ${?8YEw2{jTZsGu$i6}*t$Fr**YsW75~3hDw;L51u_ zBE1xnEfwh95ETqEt3YpwWRHQmNX+a7dZ#vf5@a_L154C1PlyUCsEb4eFJw0ov6`zf zVrCWSt&?ndf!;sK9s_lesGx$nNX+a7`e8!$R8SX*3MyoGPNWySvZsQ&NK{ZkT_k4q z0wsyrQh{F0Qo$gz3iJY+3I+-)WH%D=#S%3VD5#(=5*1X)ZY1K*$7fRob&;r`LUtpO zeu$_d4l;XzewL_$L1q=`=ZV>4pe_;>R8SX*3Mynb67fwlH8xOCL0u#&sF2-A#PUw^YF(vkLUR8SX*nY}LO7=1$B|Aph9*d(XK8M6;x0ciJ4Vk zKUd9`8`v*bRdC3x1p6JU3JywIWH%b=Q>JRdQArDR@u;Llb^{WB95&lps0&FYEwUYx zDz94P1Nlbup==MYdy-{=Q*0eW5NUm9)rqOyX6D>}sJdCKa^E_7x0X zNXf1i^p_P>cvDG>r^F;3Z3ka2XjZ2!f*LP=WW3xVzEi^9C+Rw5KwQ(fq#pDqhVj)$ z;G&{M_wN1auMo4hF$2Vzknsi25NwcVyh)M?A73C0!Ka!h5M=HEAFftMfWQ8&QYL(n zQl(J%L*^=_!XJ@VDHXoht5Pcb#dx(+;g8Ti$+`;uqdyI=%7OUkn@Xwh*Vk1_g^wAl zlnS3jRw)&}pP*7IGyeX(I$PnB>?)U()l*)q7H>i^epHxsO zl@;ICd{Q3@Q;Ah=wA=8lWOaSmOlqSY-)U88EBtAGl~Um|5-M$lkKwA73LkV(XDdmM zZ*r(5!G~g>M3On)B|Sc1@+6YXfg<61(P{;w@0C2M7X`uajRm!W8Aw=F(=Wb&q&Dg$ zgH3JN!(eLT9-lB#8~FHQyV}UdhgQ^vKITWYv5$|+s1ANJz6`I@mGpI)Cy^+`7(Vc+ zHpcLQaJ7P2@ZA@cf?2GpgWrm;b3CaRg@KIkjj9z4-_cQPF?_mStzdXjTdiRDB#>Ic z?0VI~kI$T_70hl{9sKmQBz3ODcdOI}zX9I?QfV>vp?j5r;b$r;EoPAL-FdaW*wh9; zK7^z;_>o4d4SuXhYJ=Zk#20p+q<-dk3}22{8~ph2v)bTC7ixnapE6S${P--J>foo( zKB=^rS@o_KnS$Dx-(XR{uf>PJ)CRvr{m#~+dTVR2s@~fgtg1J+2CM4bExz)nI{0m> z_qSL*RR_Oa^$yoySG~nG*j4Xw@mV&tGrv)|RGrtiZpj2xyqw3u*K0B#)=0`TBHu#N3)f--XMN#d{j}JSlo%xOUYNW~u z7F#j3Gr!TSdc%uvR;r!(@f|+Z!H+MMs*N#=>J2Y_#8mC5#J4)t3T9Qk;l&nNb@1C% zZ+P)FP_=0feF9Xi#q6p#yhgj~4KKbGsy6uXbyT%8KR#8eHu&-JT(!Y(l2mVap^4g= zA7?603x4`8op`HcGO!J=d@mKelM*hXOa=?~EBGmQ<*mv2HFX;|*U-O@CQOL>XhK2f z{(ViIC_7gyUykxV=hZ7$02i!1XLkA8E0(`nd$TvPHgIa6KJ{Mht5=e0Yc$EVfnU2+ zsp-I(T{|pn5%8ARHX7Fe*IT=O{T;yHSG!%iA3<}fcK7ZVKzF6~;K8>+tBI~(KW{Yn zNAKTPG`du&Qqk?&Js*v}qEDZy7#$WC7Tvvj^=R}Pef5eq8b7#>9z56@4H=>}ni$a5 z2W=zJHU(`f(6$5ZJD`0Jv|T~l9ke|`n*`eapdAd_VW3S$`)JUA2%K@?F#&iJ!DkY1 zr-0XV;C~8!pMhp3c+LjhT=1O_+7!?(0_|eZE&=T_&@KnU-^~L?Z`_P7LJ4Ku!$g#6V6A zP7LJ4Ku!$g#6V6AJWCAJU0UYzEib-ad;92Co}6-y9dcqICkAq2ASVWLVjw35a$+DS z26AHH$uZF3XjoLrwNk!eyEoaZ9Ud7S^<7xhBEa*GZ?abhY?>1mwGi;bV(IppfKRpv zi<$@cpRVcl*8rzns>0w|Kc(AsfbYdtiJFD>pOUZO2MKuIGWb|J9X23nhmx{6i-Z5dneIMZ8R+NZ( z4RG6~-`h_Cp6)Fc^)lcuPaU#f1zcc5k*LyuufKZ4t~oL?di{bzQF#DwopRJ(8gSMA z1)~1GTFUoX!JqBb03R{si#iYZ!pswP8{h`#b4MKk{8!{@`x}4@jMhZ$04&`)WA6y~ zg^CX%*HXLxoV_35No8(FE&_aO!3Fy`z&roE9ytYY{IuWgvjO-1@^a)bzz09QY+nU< zThztKIKZ=(UA1o`{EcTLTLCV4;D-GO;4bA(MmhlR&GV1_65s_Ljz(4oT(I$7`+dO4 z;|@la0^DT&1AFlwM@C=&d{5-vE2Vt6H*tgkesAiI$TNVOZOr8`0j}70OXMEFO$O(2 zGz7fbu`$vO_~WR2j&}f?uX!S806tTofTI`S=;NGtvAKH*N-b4IRkLbBGnyEz`w-aaU=pBR;s3>0pJ=pPdFL@ z{-WHgjyC{L9pZOX1>CuExT6)|f9@}GJovMeuVYQE<4wR_T;m*v0Qb`C9qj?1EZEku z3UGOw!O;=$@oFzQ#sH3rHaR*2zQ1ONy(8fH4J?kXfam(E+l_!dO>B;CfT!qtZ!8A* zt>z8}cWF3f)7d{t`I@$jV)&JZ{JUurU}MYLjxNA&SjL(@1@PWxF^*1v4}F=G9tZe` zMs*z>0Pnu`NqQ9Ezhmk<-Ub}jH8s5?;P1^19c=;ESiC#^x8Fe_xbd6 zz_-gZaWnxubnK(_>43lf_YFrqz+;LR^Tq@I^IS7W6yPoP7rhR^3wN||m;kS=Tf_St z;MkN_%>JjUo4mhW0>43R997Z&_4ydD7jW)I?Hn%xE;Y27_Y=UapL@$u67cc!?|8cd z{`{x69r*#j`ATO!UqMJfm3`7LU~F#kP@cT57ja^Z6Cdcc1q^>mB`JaJr_ zcRJwRM|wHl2mI0-YrRQ;zt{J6!~(Wo-so)xc;o0K$6J64B>24HfMfRbaWny3Y3nv` zA;2#cc;Dd!yzJUe?_a-_^4+!dbLav8cz3sVAK>Yo`a50$-1Yc=Zz|v!LkBp@0{&q7 zA@3)E_k1+aQ3P=DNC5~5XUcohkSC@`#j)0FAjD52>80=yjKG__sOA-y@2ztx!}EWzLd{CZJ1*_ z;6ZmUc~1g<-7?&f4)|u#KfU__AKgFPu^RBj%a^@gz}`1UI938S&${AG1w8ZM2*(n@ zJBwZOE&^OR(&b12e5vVm?;ODSK6g3h0xr<@hIbm^7tXpIvjC3^yXpN1aPA5t9WwyG zx#6aFJm7?eBORXrjw^M``yt>Goku#R1O8HX%R3Hmdi+SoG{EhG?Ztxa7SL0Be2|{_ ze+-!O5AC1JS1c$Wm%m(4{%X)~73e1g^$XRX?6Vi`=Y#g?9<*O%(0>1{4%jy`XkTvs z2PXpdC;ya%KmINs@DKN2!=V2Lz`u3T-ZSW5@_#45!-D>&_!tQIXfQtFgYmN^7(e|G zUv9K73dYx0h`&96KMcknkI$RI_@wwPg7|$d7{3(XuL5oqjBkqn=78P7_^0vF2k>{n z@j>I~6Ttr9_?d_CwGJ>JUj;D!P5>Sh9DjU#9uAJr(D6&-yBWss&EWVB9se{x%tiae z;Qa6#=8x@w?+53Pm6%`t1bihpzibZ9KZ}C%PeaU4F_@2f1?Q*G`73mOqxo+W@Cyd# zzx|jW&jY>}oF7By&jXlWqcERN4bHEhV*c$3_T^`MI7aFn`|&&fl*G z=l3^)^E=J|#WDXM4bJ}`VSR7_{wugX(E8CG@SfoMkw3V;90;y2DIfg1X#?7$g6mI} z*Qady6>#I=`ZT#_VEyV4T)#rsxBF{%*gIf-n;KmI=3sps3)mc7ANl%OHn@J~!uom` z?LC9*E3Lox0Cx_qzuyPf=dQu^nXlgqgX=e~?@3s{2L;!6Q*iy)2G@U{A3V$#$PXq3 z^M}^K{NWn%i-(}^8q6<_2lJ2q!TjT|V19Ben4eJo5{LX`OE7=Ah5Tk5;F-bvrU~+& z#ei1?^PkZCC~q)-dMB7a@%+jY%&&4I|Eh|7t7S0%qWr85;F-bvEHr;>f&6YT+RFy> zJIen)0emT#|Appkf8-;dXFux7W ze-8!oUj`F~C94{oCUtKj~C_78cne^?jXKZNct<_Gs5lY{#YzCURc+@JIc?qBu> z_b+R(zo`#?(}Me(TG;re|MMpHM{fbH6x<($?w>;USE2i_3c>wZzF~p=S?K<) zLU4aKF1Wu7-T&>z{%{)l|2eon4BbD5?l1ZNb8&G0c?A2@`JlfS+@FT-Uqkn|p?6G= z9*vBq|Dp9FoGavgt*r3HdS2#F;wP3x{#lhpd{G9mUgVoq{gZIA>YLYx^5pfQPZ3Y4 z{O>c^Ih5zqV5NRIjo8NP=qc8VWwkgQ|G(hDd5KSvFE7)Rmnj~2nLkB(Ue2oRS?aUG zQQ|G)im}RZm7Ww6R4?L-d_rlS)W&h2hLcqsigaR`^L^Tr)9|MfzSzcf55*I4c$;V+ zUPn*DeHtGnej*RfN37#C^yFo+{aMSRY$6}A%z24*S(Q01e`bXz_RDdfpGr8qE~}?VE0#rk(u240r`XQRPilJ-jz||8|6-e1 z=KMr_v0W^4T&1UoCzeHAHT5Dc$;M%N@-p$xsx0=aRDKpZ5l4v!uX|R!r{Qxx{7Lv? znbT+YDaK)FA7X!ES*g#bwTIG#;)^gZ^Czbbg{eNPSmiWNdMfeb_+pz_=I!+4^`Z=7 zyI3Y%`hPOHv97;kbM4zzevvfp`KkR-uG@d|YK^9tb^yxZF}qf4lI=Pwf3PkY_4`ua zM|scN&!Id)I}qiGla`^pb!A_aQ_c@Ud2=e^e`DR?(P*@cc2ayZ)Hl}=|Lu={Mg1i$ zl{IA=ufpFA(~=CWTYQT8WG2IzSsQ_$ypnL*SLr6z zF)n`a zUc-3qXncg}LbjT*sRqhhnU89As7E*qU$bOf1l1ExnbZA&6R_2tUE3g=hV`Z2wNB=< zZTT0}7pp&g+bE&Tvc&)77dG^p%COx$yJwe9G;I{eYw|uWF zcn0b(RK6zLcJn;aU6V$9^i!LxUT>MlIrA_u^p%n=(xS013Y8c zIQ^hfBjV5a`~DuQ+s>-OY&fIcTB=VY8D3xIKsjLlq!F`08;Hry4@$GKOg2fq z_&VV*d&ZZ{OY-Q*wsU^n3w#ZeA+h;wCMV&yU0aIrA^ty1Y7N>m48M4(WvCC>K{xz} zRPwW4GYS8>4hM;r$>VMwu1A^0`IOx>UIO-KGhZ~h8O?C0-qUD- zhj6IhnEJ1RPYSbV^3;ZDBm?0TF0v7PQkXpPN0)+6K>n@qje!&BDq-Aq{FrFEHZ6n3`WAV@QIv5ui7i8P| zt=%%u^*;=UoGDC(+!aiWmT2KyGRw|Z?{yICY>+Sw*dX5v$N81V_ z;P34jPwFe|lRO6ELp<*^u4dS@do-I@FHiM@b}NgqY0YR{1Y$U{{w_)S#>&=_X$g^x zmgeCPUs}U>l8#@D{hj0t#M{O0Y>ZG}#VXz=9JYQ9UZDlgK>YOU>LmVb?4PbN#qh52 z{w&hBXTr-=&&F?HJq`M?-x=@>jF<4M6{N@4(T*=j>qTeAb71AKfRn;v{_34hC|70kPwpl^0AI}aCNP|$?ryMQ zz_vU;B)g6DuZNv0Fu!Of?n6GA!hCA(^9k_9{Bt;yx$7NT@5Fpn$YYa>vAJkhRphtH z2ejnh^t%?0r$Kg`_K9aUi87RZn z)1{^5HQ&SsQ|=X6zT#I#c}h3TE5j+yh_tw& zlVy0AGq3c*hEKIz{`Pmv>6(AhUgqEPyRp*o2f5Sa_7_d5`^Gnr>1Q84oN7M%v)r!# zCR#Tq(Iorh_eH%TUOU=HwrA4*iPGH#6ZD*4>W(n!;)5MBysFhkZFu#Td_+{*R~L)t277SI67W z>ssh8pWnWUU=QNw+xIVi=>BVsM&@^B)L73~o!T>)@RvNSn|8fcf4O~k zL>XzTyP2Nz-`nM`zWJx4W%+K*94`$iP)Tn8pb)&8JoMx)ZOq|QGF-=8T#CuRjM3A0YtuiEwDP;=GQ50V zF)45TO)}iQPC;o%bi7PIw_Z7Es4gR3^N)7wwvI@b<8OOZd8zO_Yh`)+mzt@wcBvr4 zuXg-NH)Kg486H%&jI?xo9T`4)skrn{i*a)Q3#a9h?hh~S=Kd)Ac0Q^2u1Ru#E&R)L z_o{y*2l8f;jkCw{(2r6FF6VuWH{>g)QBG^|0>7- z@#;R^!=L8M?bUWok;eRWNQO)IKcTCXJXnS|T&$6r_oIStF7Jf;Ngn;}v2y<3uYq zS7)g#U&k+Eb^VtQk?E7Jjh7lGj+N!T_QLbJp^JZ%@pJuBTH01O!`>ga$txZHGEr_X z|Km&2qtkO_exqNUBz-btoD9D|#pnJr{H_ci`RbwjR=ufmf4_7rvL)sIKOIy~m#}87%#ZXvCg@wcZ#ilCsERWE`9JeZU7F{S`Fld- zU39XaXI+`uGC%*fpX;u?)gn>(d# z`@fOt7hgQ9+Zf+b=09lZPH9BT=VX1SrWTRD8e2ndFO^zCnzH^YnctY!Yf>$z(q(?} z$I46I&u`1^(_#N>LcF{+X?6Jc>2>AyQ2qD!DPa6*O;E*R!H zfA4xY_qXn^Dys%AX&}qHsZJMNa;dShJg=84B&D3KkjnAfzV=XGb?3J-ztHi!v`3V7 z*PqX^^@`@-m|sdtg(Jtv{F}j_lSO~7%P%GM+9})PJjPd9VSF`0|8AlGjz3M;mbuqT z?mu+=Zq{o&2NUPZ?V;oU+qZsmZ;N?J)^Fvg$G}Cyl>{!uVUh=ua(PDv|Ni zx=)tMnA^+p7Aw(C_cv&`f3Dx%n|iq3aT&kpp%YcYH3j`$EsIJo*e=WMee{3p^J+5kixMvvlj;^qm)rj={hTzv zY%jULA|I~OS$_A(?YB#tbrtU=%W(NlWuzJNTgmuc*51~xNxUStN8BkXO*k?|Zg(Ef zFOA-}U5?L{rJtAjY>$!K3q2|!{Wd#Zrtdkggw({?ScZp%IduP4ep!a^tjgo564P7e z*Ao4&6Z$WE?5?{?i+wVFhhD{`_B}K7Irl>msnx>_`>g7c$204t*)qShhIu@`hsR~O z(CaI79evYfek*~WBH)iNX4S3gT|#az{`FXC%aCp|eQ5qRCh8@rpLQYBpZs~gXs5K2 z`5U`=e2DoWjnB~hF>bF$dPAR)-z6O>qigiWB-TIi+cPk?^w!d$vOJ3>j)>^v(#i6; zKYb}J`iC-UyuZ-=x7f@_dQZMWvOJ;rbGyGj4d2~kvz(uN5I0^L*}1ap&+n^Emgd$! zD#LrL{F?gfjeT-|-`%O8TQw+SJ{!LM+N#lSIc0fUT$!qEIWi-Ee9<*Yil|vv<`=rZ zX!dm;Y20r`W%@nEZQ8-}M#%l;e|e;*NuI4*u5VJ4lG3)(6J>r4H3cQdjfOH@`LkQ@ zzTf{W9KX z)TY#46Z5&byrKKY(Ea67`*Tu!{T4F+PbZI(!pfeO^$*>@iu+sa$Jsp+zX#`cP`o}A zruv7tccLf#=l6YtNA(YaZMF{*#o>5jJ@1R!xcs4fL^za|_a#0>9Ns6j^LlO{YNP*D&)YaG_8D3xyYc=woruGE zWW}HAMSNbSdXkOvBv|wjuO}S(pOp+8kM~1(RL5c7PW7TLVwv-%C(&_Q@k#ic7k_fw ziu9pnkq5PjvWYS%^~>eqPr?u7$J^*h|HZiCeG!c)KgXqKs0>s`_?(u*ykA~V@O}K} z^P3VMk(Tg98Hf+Ha~xh4>v^4sLwrOWf<-)D&I*Uuhsr}R=f$7Ii|a*oqQ1n3-7^CujRPko58aodRXR7d#qpO-lve-ggPllR5> z&{L@_@}zQBwhg5f`{KOmDb|Z+l9S6SJ_(1zVp)`5tPkbM<$4kh=Py1*d|pqys9z3q z9D;ehXdkMl`G(8HpH$Dw+%};+xvj+dP+Wp}duSV%jn^wZMOu=d%S82J8_|+pN<6r} zgs+4n@=@X|wu}75`cPkU-Kd_==e&-1i1-9^USj{eE*I_xAG#Mhdp~&DqbYeQEthAZ zGvciYk|w!MT5gm(SJ8PiF(2yh0Vm&p%aTUF-dzm!3s;slXf!^3K9qA8vKcg62kG;p zTw0?0_oBM{z~B1iHr%04a8vzTvwGsrt8Q8ml)pADS*_Xnv!3|4E))a)5*_t>;j41M zZ>0Yhv^6)WA3ZZ;;=Csus&8##H$}>*9g}c11 zx`HU@n^+F`%k=+%XZ_}*!2djxXVkuisQ-lN``|$?&~A4>0?xq^^nS}U9m%|<^eEtH z+@wqKMwL*$#Oyg@?e8eZ=<@>SQQz(;cV_xN-}w4!)Vm)5zuyrb$~E02+vnd^1kNn? zUDWrv{tftR^aW5K{r($}=cJqLpFCnLWS+)+*Yjaz=v6t5WLP<2G-zk&3!{AGbPMo2 z!hF&8HL^)bH~DCJhoRuJkNI@K*bBhF%=DW4;e3?cI8>4&ge+@htVGpe;wIBBa5tR?W&Qg*!GEKkXe%A43Y-*X^NVMvK(?(ch9h5* z)(aXu8aMSd#yb<`6g}a0O8pML(4>*Ay0sZdv@8bBcp_1bVX;^7;YR4S zHI3q`=&-QsAG=^iA!(5ar6uhLv9?KPI!WIrHdQ z)R&Y}(194Z6p$@%450v#2lUA-|Zm z;=NGN-bDGQL50D;GmDMVp1#1@sw4kSyxSJ#Yi^SNv!!=e6CaW}@!A!{ObnB!`F46& zFi_v1SP@nx+a4}Q@3u{IlfJEXY)8GD`Q_&$%>HiT-)8VJ;G_g%Y1Ny+NoMmy*OG~= zx0Jg7IrY1z(rMzu><}w0@vL04^#!7xmO%4cavF`bs$Dg}3E1bxnR=)X%rn21UM3L^ zjU8{%ir{~Z#YxH7V?@jP{o=p^-~{Sx{5}Kq2iaINJ$MZ~JF{}lrC$*rrti1wC!_3U zWBf1cSn$*^TfO&vQP2kDjGtOAME+zw$?)OZy};AW#&6g`E6Ra*ySjZN$}!A7L-W1^ zKFMihw*gV#fPXTZqjo%B5aT64yZ98X1!owaLLZX-&$wxffBY`Jdv=ETYx-y}<4=4_ z)>*}3mFAXR=NEytphSLm-Jp4|GK&ZIuUhJt&9TxsijzS6ELi<3a5Qd;E8X0OsK3U1 z(Z2W{lw(-T?7v0hE``}@VlVA#iYxM6+f6^CEXK2jt!wj+Q=E(OpTgqggRl01PcoCg zaoN%s7lHA+*EevbhaJpli7Glan*-xkBvuRoNCzkJu|#0^~HQQ{hc<%QyA}O z*gUXn;XAL?OR>he5)n@{*+GdYo)NctMig(kgYTG(bT4EQ4Y-K zCo9u@K8xiB3Abm0XJFk~vSKOpI>Y=JSTAC96iY8`j08?eru&QSb`d_)@x+LgkgYOX zcXA(C2cCKshnks%5MvWq41Btt#@wB}dyGaSkjZuPl`dNF_4s;BkQ6f+(2i1|hei<9;RzDNC; zREmwQL)n~=N^|VrvB$wPC6)BrJgg-A8<2B{k@B1+EdQBPU^MzlW_BCim2CAB%a?2e z#;vB@gJcWjQClO5qx{+Hhk!H5O?g*X&HE@%W44`?mu%8nPx9ZqzXbIK8EyWCXW?I4 z8m$*AW1B!8G2aX1f%*Flh74kU*g2KPdo4`^$gr2i%;Aq{zP-Tm%+8B{MZJ)JCJ$v} zEmp#NypQFpLLRGM!p85my~uCROw*A()jWSao(~Io@`m-1&g+*BYV*#Ba#!s+3H_aBhkyCpu*&wHaRYp4Dt`#f#Sm3^7~WDj%cd>+SVFUa`Q z`+TfB^;R1#w_j|LQJ(74`mp{9|J>lwo{1N`vUcL9Yn*F4|UzoHamG_^o#SqUcH+wO9 zYQNa(x_iW<+@AGbnO~h&f9P8+dS33o z+fNO2>sQZ{`TeVV-qZNk4y>K%PaL1GUGYVttWSKyTl(97uaxnxmo!D3srO+7m$$~T z8}9AH-jw^#bwT54{%940$sU)|AGmwxjbQvqpU(NOxZ6ZlWb#pap>MCd%l&?W@h5mg zg?YLYrGIAq6aJoacijKns?XXfe*W5VE%mQ4xfp+f>&&UDi|^P^?$7Y{2cBYh2Z-cL zL;JLGqdko~Ze#u<{>82q^hDKtp5Zh5UAf|({6$CEUT@qOyE0Gp#Y|pmKUk!gw(I;x z3?}=$)N-k|Z_;okAGMDkSIDz{(x)=MXfNvThj(Uacb^@_@_vYy-X{*QlYcaAE=U}}$>I^5Ic$NkK{1g}l+<9R!xgUqjDWMQfJSRd<;^r;Je z^96nz9OQb2#}MlG2>?v;Gn@mEq-({!AN3F8PjKrhxjg@jOJnj9{+HA9 z=nGX1WBdrd-tdP0rCEXTK>a_MQPR_)YQ}uhVp4BU#NNR8rS|{9Ho!Ma1E7t`Ek$e%*Sn z9N&do7xfg|xsT~X{N5{3z;mW&4Y|MMDtJF}&T`ft@w@Zrf!qAB1A{5P(oUDuR=u6f z=&8N_qmLx#uLD^->EAE*>dNGz8kygcR|-q-eY8rZPiR{~`s$U#~EENS}YZ<(H1^&9Ge~;0V{-4K{(Oo=plIcV3o+5cX2VEK_56KHY68Omd zN#Er1%sG6O;Zy$Np|w#Ogph@%yqwe(C$!HJH2v zL!Z>K=#%_M`kyTEW$Kl-TV(kzZMp7V+s`A*zs;TOk&bO+?PTAuLw~r7rv}yofQ=QrwaVUu&(U(Q)%{mqptMjUP1lF<`?asDL!<4pyn z*lM-pcAad$>|wCA~N0e=#|R)z9N z9cyou@t1VF>n{9lV11_km+m>{zW><-x&7h*ji*(CAei~0{;-^LEO?JhQcej3S7{dJh>&<#tPA@hrGJ5$?u-*DDW{DAjWRQ2L> zd3=29`_NPG;K$4!)c)Clvs&w}WCl}z;`%`G)cc!Fo~g;T<#?`fqM$VK_gxGo{9|2; z>l)U3QHE>HyyVV%wijI*r~IT5o;=+H z`8naAKbPB6vuKq{Ehe(?$*~6+dP)_Pw=ZJYNRc!(vZO)Ck{iZE6D3Cu8{fVxHbsvo{FWYbW?);t_gR3$5h~K7D1w5-u zy(IT9=D(!RfNwwWymQYj^AF9R4-U=a*&Dl-*@OD)v)+r`<`Kgu{@u3c)fxY~#>OM@ z8{FrSe$be`OdiVb(}&N{O;0+@=m~%Rl^gEE!&}SpbQ*Zyoi8k$$xHT`l;H9#ITX&? zslU+uMd8yUJ+;5L%KTQ^}l`PP*49l$C&=qzqo&;{>1$) z&IA57i~KAA&>cI4ysMwu>;w5&NNbs;B={FP23-PAlpsmc@QVJwxj`Oix}G@u^Jp z)E_-X8AN6*NcsqY`JpL5rQ{vC-2%r8FUoH!8#2?Zr}|JHyp8kVPtJosL+d$APq8fa!Rt8>{>-YLw~IW)GRaQ9 z;&xZkB@{>G$;$;ljjG-J#rd^$bGJwFvKHk+!Fnq5dcxuLuLH>JQ}B5;SWjh+ z(+p+8AwDgHdg@o?F9|q=Pkj-7tzfxjkPolt_{3l269N3fL0T>|@ey&jzMPix{l#P zzuZ1V%jMxbd0bJyWFM-hGWAO`@c5xJm!I_F{Zc(IQ@toZmy_d&x^Vk&y$FYBsa}+m zHP?%9csj{VKz~v!*Ie*TF_;XzdU+kA?LvDKss`HsGjh7znqqM5{~E> z(dJ5J!smQ=na2|GA$f>DpRY(Z!Y3S(pY!CjWCtz}w+Z2pY(&fFLn@Q4$hL$}IHHa` z=6S!wpY!4Jh+~t=T(;^c^ZA+klw{^*>Q^lD7$Y3f=3IWV1IH&EZfD}d`{jP;a&kW0 zKHMf^tnzp!o>b3mBKFJsB0k(!WD`*y8nfK~+;@b}aR{IH%WY2fp?--c^-K7img^|i zb02ZNh>vJD?su_YvKxNyUl zB{{h~Bpca*^yPAL-MI~^U(R2|5p|?8w=LbnfsF)Puz{9~uL(04!jHooTa zhfhm%4zJ?$CXD~l_gT2hzjAz{vvq2ew{zVeed8irev2#7xyTUZ&3osFZ=%-azurI5 znI|>UJ80Pv-vXV>|8G3_RgUx?Y;(l7Q}6P(dN0wrE*@C~*? z|MH2>k*`|4uiQN3dth_<&lZAwJuKeKBM$i{J6!%vcY8St&o_IM^B(ePqg?*NzxQ&^ z+H3MY7a+YrOns@TiJ-$4xV6PIrocZd!>U9|R_^PyV`8VI`>5K`l<*hh*x357vm;dD1 zp3Xl?*Yv)1ewVM`TQ2`+dwM$i{$1Uh*S^cQ#Nw&<=-&6r*rDqSGE-gD`6I!3>x~ND*dMm}S|z#s-yBSE)+zpyclLAJe5rk1{t4?7ocRxw_YQBf z)mN-P+UF)X?|xj)`^qPNU(!IAzw)RAr>;?1@2c;&_zn(s`KxzNaE{OYg4bMhi_b9B z<*)EYg7Y(P8ShW8`+T1dclq<^6P$(nKj&RLdb972%jI8DCc(M4R%!3K&0b%JQHbZe z@y?`QN_xlqlkW44art+hig#9?QNo+1OZQb8=knXO$2)OOSkCiRt{kq9| z-^J-J|0!#{^M!o{yo1K9^Eqa?{PiouJFAS!@13!Et#9JzF27F`?_6NX=dJe78sE`b z7(eHGIB#6e#@w`zgxYBb9{||(pUbn%J=bdm%m5R9?m-Mo9VBGt@15f3IAR1?p#{? zdb+9mN}oT~<^S|pcjv=HSJE%6Sm8V1cKKKPx;rQLx}5&r&E>vht6lywi@Q7575O85 zLloe(F8|_*-JKIW7t@PR_}X`Hz03dl``w+5I{lVD?8jxk?HgVG(QkKmPAPLPy;`+p zz7^>hf6?8Y`wyN;uQGV4Z_;L$e@%_<&fTA#PM^GYi7##o=ARPXooQW9rhgc=#An)y z@pC86ncsdqy~^;feD}Ax{0Gm(IWL#{DSiA;i+vlvarvw6iF2;f98KSEUF=KT>GBU- z6X)D?^Kg2pIbZr-_|D~jcYd66!1Y7v?>}1P+px>!|7U!hbL!pi)APqK@-^Gz@*nOO z=R8&9K>C%#U-*9B3;(9b`ljOZd=HMh z{OzX3I-}=pN`II(*LU><=G)P+&V7A1rdN7%uJ71M^gl4x+2G9$>2-3=^|?=B{!55; zZg09i-Q}6%8-Cj5Z_qK;`CHp{={LI1@kRauf3=Bqo=sYtzM;w--=BbuO=6ud&smdx z?d)vdOb4J1n_bx*7@dSPkM{`vwanR zb@^X;E!Jtz=SlDK(rn*Yz`d(MzG?3C_wUT|od!I%a;&qsvwWQZw<;g&{4p&p-LrOh1hR*h<%H+TbF)4X#dl&e~D&~`^O;oZxQ@=D8#>I;r|El|26pk*r-^i zB*aG@#795GPm~ZpCd5~KFuuM+eCdSvE98ZJh4?&*_}nkVZ!5%a!;tu1hxo52#Q*w` z@i8CcXNxd?{%D&qzA9pToeUX&eTp7PzZx8$*DyZohK%37!ub9b6N`Q-xUmjjr8#sue|7cu{QAk0rIFh6Y$nZN!O=C^z?-JN|g|BVRF ze=f{_#a3TTFBY61KgRs%#{9Wam_NOkU*8qx*VV%O>&Eao`TbRz z-!cC$6y|?3)`#DM>%$zZ56@%$=oVZ*#$)}sDy%Q_vA*=e`ZG;fe_X=)6ovKae8~DW z5$oG4!S$`uZ#|suUpH{q2hNw_C{ioEWlxm&5w* z7S{K1!ur1k>;Ez#KZrqopb_$iQOF;8C zAI#ssK>nU9B)^}8{Qsel|DTxm`2N5gvVZtc*kA0%{^DcoKMDl*ADyxP2;HA7!Tu!y z`D;_gVB5@1&^A+o??d z>2GjwJc7l$NBX-09AA8jwES;)i1%W=EYk41E>25rL`(m9zl1~e1oL*02d@`#h=$+4 ziMV2!%R^7zC+~~!c)dsyS|%L&Pcm>?Q67#@b^Jfoh2n?O5G?vGR2MEAw=?fYl!2Fd z8-Mb8&XZs+5AhT6s6JFSYNr^WdVbF-;t)U1lj?byo+585bNQ)F)R*()H2g_4oF|p3 ze`=#A=gr$i8cxUga$H_dxb&a?E|7@Bd5N~-ee!-oaR}yhp)!c}rM|^>PQzv6xP-&; zI1ZPGQ~a9ZNY>qYrFJv~GD zb9~;$c~L$6=X^LFZzsD@ncIigbG=U5%W(*%Hs1cEGU1APa{k;toR&WcpZWoC{sam*0M7&9tnd~?gHck1i2$@kumJyUS&7IaOoayBP{9UmFbd1NeO zWUa74XB*3SN9?jpt^4mNyX!&7oWN56dT{A4@FGpCG)Pjbq+!N+$Z zV>p(dTnFa@4!z(58`~wGWnl4z8NBSUlNo<^d1(KnMlL+13>z@8$r>O}?0VW>cXnmzGox$U z!*<-Z*SNC(nm^Q5twPqia`aEfyxG3?vsb(Fl0R>HlBP;v!+t%-WnHdzIxq0WKBlz? z9?VPl>hnseG&M&l;9uSd^;S;5QUO0FD4u>8%S$|C56rPrzs*KGaXuEZujju`^4c7K zTk|$IAUW*IQ)lzm0FnzdZ{cM9NmK03gM(DlZqHRo`pmoxN_U%J}MciVZE7%)atqgm;x|UtV;MKEAsS)t2L*Sa#B-RW&$ECq1Db z4ZWgK|NE{Uua&JSaaKDxR(GE=)B#4uy*%&Fn;_39nb|(nXbaWfzU$B4DdYWUhKttZx6^D} zPW;uY@6mU%9Heu3+9%jMD_L5qCrzrF_WV>2HF{4!CBja0Z3N*DO^vGtcN|Fa^tJiC z%iqO`LTxAChuFahKhR9dM(kC63x-qg4Gucag~UO`KP`7VU9;Q*jrnxja9-u<9FKZQ zwsyTPb1Nyu){2aFZZz0PeQgU_U>B_N2l0$O@K~j9HIaCVl>R{HEFe-|iu6y(_-v#2W@!l?JHOAc&WUvMGS{PJWURk6lV;_T=QS68yhrNG$AcE+5l@q;z{q;m< zsyXN90K5F-!en3HY_^@Xr9(9jb*5`4dv~&13l^*1)BFhk{K73YVBit5zuom&9o|)d z@~)lg)u~r6qM0;&5@zqau%0k+_O`S0$Nu&%B+cEyUX*VFy$eO&q}AnbPEa_nW*O7l zAw|zqU*Wkx}Ws(77*bTG0FMk0CUN zL+Lx)KQ2E)oHu6tWKFF#o$y&cq=>wnbUy9;uZz~`is_b9%?EZI)n&Kcr``V2A-nzj z#w9QEMz;(0=BqP=@_Or~utJUB&K1)u{9jRzmGk^*HNAA3LmhoFoX)*y>3b?^ zfz8z8s@<0Jpxw_j^Hn;hvbP+i*t!=}c`F`_Ao;@Jj_Spr`d;kG&C02~O}B^BY}2=# zseYeOiFnraEoR3a-Hm2DaPLd&cI!e^Px}FB?Ow5C6VHl^YjoumW9TfB&MWPd8?v5w z3O~qemr0zG@JFxud8d{Rb?{EzPCrjqXmyxkyQV$hNp^5D?drHm4R!8Pe|a(U`^%Hs zm!8ie&T-Ygw~v1wKr?(+Jh8f#{u=RjPTI^)lOvkWqGX%8-uriplKiF8BVFU&5#q0N zWrrS;Gz-1U+4mRmjJW+(p@vg&N_p!hj8DCfx)I-A=(mt&Rr1GvDo*@hI@5?>|FJGL zOiB0Tyaui8elvq;H%8~yPW6c%d%erEeUq}U>`6&HKQ2+K{Da1X>9ee?_wlnRI>)Hy z8NI1h0M*l?TN(ZNP($h~sO4?F;eK|)>;83|tZD9eu!rl9d{K>l=}A2<{;Rb2W1?x) z*MlK@)%@G7zSW#^jSgvfhR$fzmrlBB>o3GVZN+01w?G)l0UZnK0;k%Oyy{#fU8`+V zn&FwABh}RUBk5fBFUwfy@}wmsFW+@bA8VeQ?)E!DGG+SkU$-29&; z^vd@lUX=~RpSjs1H6XmU1x&_Px$FbaE0TSl=P%EYPw_*rt3fO4dR8a@_CDsXT+Hg< z{uTAUXIr%HGQT0sYU9*%j(?5|G=KlRyVT=-af!#fP+QBx?~&|z@Iv>lwx8;>tIg4E z3-}YyqM=2+{%vQ_eUhTkX+3z>H0pQPnEgKExxqS&f_YC>7Tu!H_7gH9=sRlA4NOSQ#@YC*PhPMQ=Xiqyz}eivp-Y_BKz13 z?Y!|`W+D5f`P;1V6XVd`(kU>BZZR{MzK?2+v{Y20^Mr{?P}BQsjm=cs?*(S)70oYG z&8-qR_Pew9=nkB5dP{-QalgIqyZ=tA`&Ma0JJTiYZq8#WBspd^QCXN^LX<7Jt+v%8^ zFjwY`wsIuB;>B4U+ZO0;6}6f8yN`IRH%~uJ=N|G;M*Vf(RI;zCa6=FNA(VEkcF-cL zS?ea$SN$~&^>WW=>ix!c$0@QqjPSWj21a^cUMHS(J@;4#UVQtmoL8@(?p%7Ih2D>j zYVUk^`fm&GLf5#>yhqxdq}ZlI=R40=CZqbboy-cqSd6|0z0Fp7i@h34oYj8Wt!r%l zwv)>%&DWRe*PuDPKjkU(xy=QVJI2psFaG`#^;@CE6%|};A>Ca8LylYDJu6O_TA3>7 zr{SY%|EFylrU!57N`Gse+V`jWYu2}!pZ+0*?pUb+&G62y{`$tsGsJnn&=g(!OD8V@N0eXXl+68dUa-zs$YrM}+Py}}QD zr_k59`eC6XK2qr5-)`uV4|py7sCT{4;ooNHX1*xHzuM4czu?q)*Aaf`n}v?} z9fmIF0l(zKykvf}Kj>z?a{l1kXyjXB=q7%h;g{zDzWs)Ox6skAc^-#^AN8&kx;c-P zu79uan|O17pv!rK&zz^MANywRv)nJln|!8j?vp$p^e^WDzAd63_|1JYb$R~2_Q%{O z^Za&+d}cqGm#hbVd0xM`$QuD71M&)83S-sXIuoA0}+ z%l!bKd7eCfyg%mmEp&OmVBYe4(U1A}ftlZ&mw7&Ne&CmQ@XL9keu+2dhk2O$VeY@I zANkDrN*#Va5B_^v>Zs4WU*x`+{g~(Ft6q8kz%S1ax_Q6K_Zfcq{vyA5-%8!gkACDn zn)#qFHQqh2OQ|XAJY1Jj}`e zPb-eWZ&>hwk7fDqEl7UJ2|LHYZpMNWxi}B7%=IBg28L~jXDsY87h>6mC+Ctl>1RCS zBp2I&K|FMpnGe7BF^*-%bbpRhBIIXN#sVQ1OIvt7;*HvRz5@r;Ge zbB2xcb4~nY4vAqKV|e$V^M~=!k;~jM_+jVT7>6f(yeEufJ7OT?gV=ww^BEzYF_8Jg zy9%A>#`SPbc;W*LKf%Q~*ts6aJWtLCA7k(|W#$A9{jwiCoJY<9cwq72T!=AwSO*4v z=H+_e=Nj417`AgB)|nGeDVy<#!#shJGUK=gSwDO-4`a9{JUJ(D@beQgf4E=vnK_|j zo?M$R*~|qUyM!k`Tqkle51w2f*9I)t1DlzPYvx%2&m5csPwoXZa17^VPR4K?xPaxS z8OOPpho8VPCoqt?2ads$ZNNj8I{f%>PL^eDj6odRC7$O19M=OJ+kxepfsrzEa&40T z-(+wwKb{=ReW3=}I2Yr&4vxW-dEjFnu8;2-#Dkmd%*}jwG7s+_+hi{Au$^PsCg;W& z_Cc3;uE(?^7kvC=PR79}V_Apaw6hIQ^v*hPkom(L(k|yF<1jyo<5*z0X2#>mGiMyn z5LE_oYKIj|=8`sJ*#{!2uT!YEOcwo3@ zVE8U#9)8OCbN!N^W%hAhTq{2%4=~8dAH;H<%p>dP-Gh(oXI|#uyu-Go^yV)(vh25@u=Bb0o!N@%y@9JV_x4#5sQF6s=#4QNV1<|C`G8v7!T>dj;p}CA}9?u8bQ; z>uT{z*x=0gTTPW`R$StVH9D0ZT`-mx_-uQXp7M1pOp;A_EUw}ewA{0n_aI!JniG`)??G>rCf!}E>X8GN06M%Z>m1f zI&}zmlJ&6dW7QUsy-`GGEBxnU)ceYEwVh?FRuRvWR0Sg6&J2n|&8g?NQmwO%A$zHb z9&fh!XQ}?x%^T=TPx@QHdo(6TCP2&%Epf%o_FIaMmAY|k$C>hU0k0j zcZ2M~_nzx!N2XBhtS@n$VrjNfY>7h?RJC#Esjp@kZs_~n_S39t49TXpS6V}{#j_vM zZ)e1(9!CzizG?T}v{9JPyH)3P*LUj(+qoQi(9LpY79mW@ zfh$y(<3~wuTqrEEYMIS6tC^uYt=y}_$i8XCL%l2{dn9^4wkwu(!`NfXoJh^q5W>w`-4=Z}$Wa3;hu~ng?f1M}J`|)GhPCyDe#~Urb>Vq{u6aGr$ zmClXMkBKu?xeiX|mHvb;nz4elH+^D~GqlWP?Q!-|4Y8hXuyX$1iR65J@>uhlEudWg zY>(|tF|$A6<6iQpRO8zd=c(L#)tH|T(@uU!Ra9-97KhI9*6+1+=_|!)&xbUQuWlZH zN%*0?%Ikg~x_{%`mR@ZecbYi6UT>8C|% zl0AOydCJM$jb^njL7=zbqxQsqrSv3yYe+1@-<~yHzq5<9u=_Hn0c<118Km%w8> zM>9XFt$F<{I^F$md%ijQC+pgrZ}0EXhC8h_9m^BXrycusuj}V%&rhVEWsM4{MRlIP z(IK*Q)49ZX>(Lm!IpqwJ^VPz#NV<~9qZGrl!ULkaaN&ym1+_H(52;7y3De-+?@p^6`AIJR z?2NUs&_o;GeF00_ss}Sh(|oesNor+G`0Xy5{d;D6=$g?qlUT^-_M$AT96J({nykt_)Q^=*m~SQ0#Yi z(>sm6-lD$J)I1egc%(&`&s%Qm`qzq+{lxamR#c;*^uEli`IG+V``y&bo^1qs7iTve3-4`WKBjq`^q18 zzMlT}J^RSYkmTo^cn?B)AKs~3x}5|1_T-KLR`uF(0`eYt&8&n>$Og0tJs6V~TGH#Bx*_Va%F z*zsb-(`tJv@7BDh$iA-jbVubYPMqm-4R^90iKM=&XHTWpoEbuATB*bpoj2el#hxuW zO1Ce)jpU3)+v>%&=FpBsUpj56q2K=g+44hut7+M2;=J5uyuP0x!bS}p2^ z=~^W{?b5e9Va;zJ3hk-1nJ{lgUADfI`8M-Yr#4wx<9yqB_7qv-gx9R%_KvI8Y@xO+XA7z$>-SKG_f?{ue+-AK#6-f5Mwc^-cUX>*L z?mv%v7Wh}ATn!$5bV7bAMEuPbbh8>Ynoj2u{@ZIS)swV)D!(6JGR?hddm3aOUM7XB zS2gtNLQm=XOo@bGew;t!5ij?F=f!@+OTWqQ zt6rI(&zI+K@|pYXt3Szyd~zP<`(xJU>pZH6{p9)aJWYPoFY}rFs8{k~-z6UP$^8ai z_5)q|@%~9a>XUxpD~a<<>gw|RO}sf@U%GsMzz;q-51AkR%Y5d%%y~nX^DyTJUGf7j z`O~<%oCoRypS+J`z2^R6K9b)&4^!v)$^Dn}G3U+u!Sgb8U-JN;d>^nsoR9M}ANR|C z@XPxb^~?IWAIXn-Nj^DWGv3VqZ}l@D{F2Z7{@{IOysz_@=WFg0`jzLGE+!xIne}r2 z><3>((ZBhA`Km|G)11FK4>KP7D(8WCxu4u0pO0COxj(?m{>^!q?+5CW^#d>Sn|RDi z&L8pS`zrb1m;FJP^`TzuC-1BI{vp5QGwU<^Wu5uV{FpEDv)`O2blH!u{-mGh%Y0^k z$Y*{Z%KpuHa{auI%*Xs@eaJ88W5%00_~iMS`vx8Uf7>_qb3M@IJdjVGH+0i4>oxP^ zyyg9dcv&y%m+|KOe4VG9H^+1RW<2-9^Y@is@&PZ;7yMF3KXM)>p7)u*pUis9^D^sU zJf9bIIdAB)UNfHa^E`N;xqn~zB_HtUSH>eh$0MJ_GauJ$oe zN!{!Z=Og{*Ki`;qX1!)V(B*ma`S3hYzuXV-N!_f6`8ghV`F#$*tlykB`jz)9@aFp^ zt`8H#;^^sW)1MMUCJ_+W#AxlFOpZr^4!>u zr<^(4IWOaxpY1X)^MeO=#<1OtWxI*zShh1x=3)$U0>dAf7aS%=#>yD(5jKf|9UNQ_ zp7`%un0Uki$4|zy&QDnnWaei(p8pohc3|*fPS{zNJQBk)aLmIo=vUgfe>{P~hi%LQ zycq)wK5PdTAM_}>WM1ZH8)DgpSechO*bXeqcyb(bF&;Y0jEBvvlXGzmz)D%hLN@z? z4Ii#U=42kTHm*V1B@fHYC3$?sN*+_@Sa5PI*UP;_=Uj+qnPZugpNt2Nv9Ph7andJc z_`%Kmi1Q^gj$?sg89scVBObD>LCWl7tchp8Juxj3HrxL?M~SUw}k&oZ7I%Q5_fkNG7YvdIY>V>pIuk#^X8@xyL%!p5~R7svX- zBab$?4K0Jfk-Xk^DGb&LN9egft2rvUuuXNI0DnjztK9zKL&wB?vT}ltMLeHF{ zI*)GZpyJg^ufg-`%NdoZ?Lw;a@PjW_jz-^VC^mnb{*P$VXYKfrcshp^u@3C7?*PB3 z@E8?2>4}9ok1Lc&$C^EX=H~hCPhI`sCog(AQs1MCoybVFt$#K|_bI(iVTM2C^{6)1 zMw(BF?qi&x{jDhQ)Sf(A2Q;otwcT!WP4^p~ljgi-Kx1_)MG~uti;4S3C2zAgl{E0H z4_8p#t}OIo=Gj`L@V1yynDEti&R0pF-6Bl?JUy+7tM=Kz-+z}uolP1+J?{JQgdWzs zltw*$UJX)@dex(T$EC@uQg3fV{r0N(dDH0dlT?4vq6xhpujQng*F3A~$q+qHA#d8T z1)LdqCKA8x`54*%{w~_9r^^pJGY3}aUEegk<9A-vHX|ahI^66m@y|MX(5Vt$i|VgeJ&BH!;uvw3*p*C= zd3?#n%unu0u7Y1rR5ML`!Bjo_I!;(l=EG?DAfPgKewzrlfU(T zHs^RIT&v;5tTygE zZq59o7R_h>l6}^udC5bt{{>n+cH##gBh2b)Gn~6SE)nKl!fv|hkdtKJ_cq$;P<0{A ze{0<}`hH$Nij5fCR|Q`gOmk3sQtGrFF46fm=$Flza&tG$c2&|QPOqxLw1?+P<<&Ji z@1!0*Id7?Y^=ndWt1?G)*zy##C;fALE>tMrSjtcq1_^d4o{>8E#P%@~6D zwD}=a2fP30B+Q}jUq9$VX*SW!r;qiw?WLW(IO{>j7Ai}vCH_fmx~M&&#iD>;b$q3j zAaQCs>mN$Q)g22rr88=rUh5t|Y^FP{a%!zsR7*z zraiBlXO2btko8JhXUvZwlq=qafu1>bQ<`DCJmZ|7+6<+=jmQ|NPTk&1{EwgdJI(uS zA^fi24(TW5A5*_63tv-t27S9L&b7{K%^94}!FyV)X->Uy{x|;dk7}xgmy%EoC$=WG zF4l`pb>4~7P7i7mNjx|E6jO=&ZlfBWq}{7FblXa2)TqdPtI)Vm$~$XO4|T4trruxf z`l?QaUnP0zi!;u!lcPxfdB%SA<;jmEzj$ivskK9ibM}LDw*TD$bY9oj9n?=R{7yCe zaW0+XNz<6-pS)sf)%VkJ8|O7{XL`%2wVilgeIB7JbxJ@y)eFT^;mPZJvFE>C%(m%| z1{VlZcW+!>>si(i^nN?ItkrhgCcjT+SQToMaQ<^z9X_PoaJO3 zKA-yXTa`iOEt8#gZ|RGcj$g4(#F_nEd`G^Ie~wK=H6+aa+Ic_v;kWxL*BkX`iRN_w ze{sfmPNiy1_C1qF=`=siiNtqq$g1J$W%XdjM_cZNs@mg%_K$M`T9h@p9n$uH+^bm+Pa+;~_C9*Z z?L9QlmdUPqIv03O_y5}C1?`S0GJ0|D56>ib@3c6?Ilag#UE;_jI>$BB=Q&C4k0nfo z551fmb;c5AxE`gNtvyWlVc3GHI!A#8ROg|aiJeJ96BB-Nwg}bBbB^xz@73c?eM_#U z8m_dzs6AWrPrxX3g1WPriNR6qrd&V)Famto$KQPg+2c>^C{~^ z*b&;>DgAq>vr7}u-BK;=q?52vGU_FMzqC5R;z;@%ii&G;={wLFNHGXw7>V5sBDeCp*XpOlYeHEWgjd5Ols70s#oVYI7`~17CRNK}&1$1y= z5cPZf+zB0Y;=YAkopR+?W1D5CI6r9X^UE0OT#`;UMJvBC!%KcnDd&X z`_GF@XMIS2(g#0XqI+ZA$053J<^EJpro@8l6J7w9GD0%_+jtk|RL4Jcpg z?(()JZ{)ePJICzdWoo3;#XA2S0S#kK{vs={I$=9`q;irXTsie@Dzu_RsZkJ;*2PH|vF8&I7uvANe1N z{-D1U{i9xUUiU?Pz?<`u`B0DKNB%oTK3RWF*Z)}LXMWkQnP2kPaN{K(^2>TKKlpjR zCO_iA|8M(*`jL(B zNBY4p=gaxHe%59GvK})Y`Qhhyfo1n&d2pYm-8~`2|v!8`$0bWej=abH_r?6kmuz~ zH|Htw;4}M?e$*%9Q4ijC?$6AJ`sI8PFZtpBTf}oeyiYg}8IOE71s=LtpVYx8<58ci zANi#YK3NZ+7xxD~`91cB3|;NKB=Q$84thI;g@)G zzs>ss_rIL4IZt!`rq25$_s#5I@+1Dacpsq4`vLh)UCs~v!q5AG{$&5)Gj*9C{NUsB z<@qrmzK@uaUNL0;o#(|T0ao=4L$SVt#&d z4C`iI*nP#yye!MS9ET_Drp}xk%TKoRlkJFy%sS2pGTVVSWzNZUNeq1W@O)$}=Vm-( z`N?+9&#~;slR3Cf))~Wna4d9uWUZ2)ITN)7j z$)C;D{r$Z5K39%bIkk20hI7=F>vpW6dwq&$?{wumi4y4TaR=JJy7H-@l2-pWxxL3+ zdE@T9)f=D*W)iNZ4a1T5nbPvVu5+ z8;@2mKBOhih~AwF?GApS4!fAjul=-Jlox%qxKv9I3M~W&75J0&nTSx zlGufu-e0D9QU9D_iB!+wd%f6!52Cfrc2U{whHWNWB!{@uh-u%DiMX)=vt05 z_wY92{HykTXGq{zk^>4~v#Q5xOTBMOF~&KPyq&FVKtHO-obX4vp#QD^AE)HJuU zw=#Qv`#e|S98=v<`bBuS4gQaNo2c{e1H9PzTGdB6&*qk+ncTf!L=SD-pJp|1)+Dv6 zbXFU&uS$&9zXYs_#I8;}*kaSLPxa}nYh5|67y5fC*Vcl`^y&rS#91XGr*8eOi5I!9 z)LUnH_ROcbRV{JDdHi8J?P0CZ1v=KdUS8C{toA*t(eNcSpLb;zsM2L`QVrKU8CBc^ z@k6k0*V~R%&jZ`itOoWSYgG@*P3NVu|Di4i9;f-ND|S*(_!4Gg$GT^YQ0*W5q;X!y z*6y)p#CxSM=eZB^=~V$IXbva7Y_v-Kb6jH%?;pI^MW3zKILGGy%+akzuBBaiHfXkr z-tpBzopo0~wYuaFJbF83Gt2K7)w;v9w_V0e6 zIW*r}SnvGWir#n6or6~7*FDs4nTdV%`Y(#+oM2&7{lPCA_1ilBGpEhhMP&c&Q=mE! z>j?E*DsY+8DPRokUaZ!yoQt8=3Ge@RXT9rd1mWAIUFK|!+mY(e_$q}S^l$*pA?=DH z+VPLDG0zP{y-N89hhQde+&Sk6dTpbxDK|oOBmcW}rdh6bu-?SVLh`3#MQ5(qPZP;ezz;CtFcm0 zJtbay)KkAiUhL=U{GC+wSc_>lJo$4w3uE{TH@Tp;q<>+d-&%jA@OlE5(M*mdF6r0- zqiKdaf>WqzBXWe$yHNkEIu|#B_T=!KTTaF4nW?r3`Ah2*U$)cEKdF+T(CWa#lq>Fo z$?AN-Guow}!~W3GfotflZuv`A@AqH)>8|dU+SaE7@6w*6iM>`e417;Dlvo<5JHNh0 z=hC=zA>|32PxhpNtDJ#}*U${TC1Y8;1H&lxYR}0|0sjXIcSw=Oqf~)d@2G}1eVXZX zU*ga`mZD=m>+9#gsm^S}8tY{Kd+5D>b1S);{dqd==k?Lyy3G6KbQW!5wNf8Gb@1Yj z`ut+56BwsH^^$MK20;} z`Erso<+pbv`|WybWt{Pb&S+-oe0pQi$#h4R-Y`x*U$9BxyXLnH7c68;5J^3v{Aj<)q)_r1fe23V`q*Bb#Ecg~;zf9Wd~ zLg`!vwH>b>XW2~qynfFg*2_bw>HB)`-}zMaz%sNCgQ~r7l6^@>yLY==ey8XDWKpOs zsQ5`;#;R-KtkaDeqpm!Dt}%zT>0Ua^MsA@UE1G?cWWT~xadgXn!9+qpz)lo_{6W^We*T+P49AO;t8bQ{Iy+D=Y7pM|Ah*e6-9NF>0}W!sXw*W0y1e>j*mQ z!pYO??a$)S%r90M=zd>++xau@_qG3<)nuQR`JHnr_Ej6-^~=sZRKLf5L-Lz4TXkE% z!n9+x?`=}60;|v$zT5iHb2zw*#&^NW$2YCcK}G5Q z%vkYE!4}UJ(^(u{y})zv<8CkJd^dOZ$lpKyMDIwAEpa?=pXH`{zQ(z$8YW0XJke!( ztCU|KYkUu;v5z=+PG@#7&x6J9IJ3XbpdJg2&7rb>T0?sn^|)|k(EIsb^s+nmY`rIg zpM@Q0^h+LRRX`!C|At%thFB}9wiRhU6pS77H`~xBXRN-l_tASXsec}QA}E4(sYumc zy8Zd#7W&HN{(U$kO<4!$yU6{!v0{_`9@LYhO)2L>V0Ai|kj}SN^PSJ>`)h0O2fAI8 zSRQ=GyDafi{)?=7|5>G35u^&VJ0 zn=bSsitg$YC+9eRov!W*DBr$hslB)MJm@m4%4<58c)oArG$ z_+J?MO;-mHGN4>J1i>{7+XFkmTwZOl1^;bfF;_7l=&3T*ic@V?L{c`=> z5Bity7tTZO2l|)!|8R9V59F8qV4vi9KXi53Pcrv?fX?}`U-Es9>-r@h{4yTz%Rgcs zn72H?IBvYmk9o%t`-}WC9{VZx3-^!Ak9kP_f~#X*Tz|By%Y48~KIE74yyoh%UYxh| zqhI7>e)KE(Or7_c_Xqcb+((>`oFDc{=EwQV{(wh6oFDzk{FsmA!+j#-ZyR{rf0ED4 zkA0PVs9*Na_f4^w`yS^dzaPH3x;#(3A99~RySl6&?}I!q^n>@4`{n*QAL_$?vfuoE z!9G2A{XBo1znrf*Kg7Qic)X8t|IPah^}G~#^aFmb5ATcQJLmf4{fK>$=i{q?*&p8z z+|MUBUhWg#H#yH&t}gF4+z;4io>zRgK6yTvx10~}C*%J#_))Lq$9!df?+iTpmG5T? zH=pbu`-pmYe&|>31KtPd>^ILF@2AA0Kgo~#PQK6J$9{8v*9|}ROU?t|kC-px&G!TO z<@|9z5|8goIUn>R=bzlISMC$;53_z*k9j{}zOugyu8!{qo)`Z9kn{Q9?la_<`;YyS zI^GA_Fa92q^_usqx&QqA!1bMWUMfQ*RNgegd_mTOzzh|yr&I|R*e(-$*o%f6H6V|am@;>4H;`*){{5XHP59Z%% z=KjHtez;zozx?}x`{8`(NB+HwzvpCsvE6+JAJ>1}^~-*-AM*ad`N;n8eI(Bl^-6y8 zy!d_L`pxsheTaCj2Y(MqKHOjOe#HLBdT@WpeKYSz>@VtNe(a~LAMvtZ^oRUhFaQ0` zx_Mvy>f+`6;FtW^&sgGq2fy4;e&6`~P`~8k`;GJS_a*DdC;uM6_ov)<^FA{F`O3V1 za9;ACH+=o`k?fD_;rh{^tRLqq>%sda&)59EFu(t?-x81aN%G6znD}=n{;f&=&h%e0 z|CZ$o0~`N7#{B#=?ZC2+Iia(Rr-^}X+7ZJaUwGK0optbVF1E@1urY@Hcyca08N+so zfEl6`S9FXI`*I={=z%jd{`*jeUS#`2SA$ohZb`QNXRc^S{~{QNgN z`~NL3{D|dvJb~pn?t^!Y@p!_=PZ=Zm7|&SF!*)DbmKal(obWLZ%dGR0dHD%D*C;Xn zCBw)3T%*J@H~ZuhvagxT_EUv;w0 ztVibJ8YM>ZLgu_IbNs)>N;_h>4z}aT9PmrKlo@08%XS$HS$;StY*LmO&IQ}Q$(##* zIR_KZylgjXhMntR3_qC{eiI{WW4td6=lAtQoaAAQBkhud?RYZ3lwo5G^T~L& znV8jC3q@s_lA+YkrJC9Ct4#1_cjY7t7Fr?W@_4hla?t&|R!Hb`mUYVmD7!zssqOQ5vJcS zhn+S3y4#4YeSDnuOP4k(r7H(MifeUJc^vTXPrOU5neqeGbGzk3E993JUeu6(dj(yp zPj4G_E(>g}e{6W&ThNu8CVj6WZzqic=hWcI1;5+*iTH!symCekjqT0o+S}f$t)5P4 zX{T}Jsy|=zjLc9m3i8r+<@EG6@uPsrx3-V-_w)HyCRgrxI?}nn^|d#(E1xVGPxp?u zN1?B~xsR)Z#n*V#0srNuN|)h+Mm;B2=2v_6fAS*sRi6Ip{4)3d^X1B0dfl|Lzgwpf z8&&vnp%j^8hoHyMu-dxPux2*!3Cd1aeUhZMk?Z~7GTILA<3%r7UCwMTzIbpJQxg5^ z!X$rk3sT$AYc{Ia;>|d~{=W?a0G?T;mkGcO{mmLbT z8a%R`m9^{=n*X6nx$S0?mQoFc7aX!S&7VdyNxJozb>K*1FZOEe#K|g;{~nr2$Ei`) z(7)H~w648)(GhCiz*teqUHSF3#%e>UF|;%G@{?XQi~ZTQWQ95~ zEQrqW<@kKwPe&tYH=gwg@g(k)CJHmz-?_H>E#n2M^OqXg>=oPY)7dpU9^hQ*(|~H; z+4yASnEfxQo+cefsJ;>3d2_h2QKznL8u(Y@DC}6q!9hA+shzZMwWhRCsYWHFURJG) zt!o?`ukyHPCC}oITNU=_=kYUC{o22Ik#|LpSo-_Qp|n3g+=^#SOtVpAp6NHV zQ>**-puF`mL|QpxFynvCs{D#Q@#1{Lx+n0S`nd<4<7`h?b+BA@jUK0sUZC2YuIhlN zUybC}h3+YB)LAULmKxqS9_`ZiCxWe;%kxCxU5MYdj&-`iQJP!MfpOHt!LjLlORXMb zMQ4c{h5f&Fpmk)nR;?A@{bhNYtIRdCX>isrFvY4Jc_tG3ljO)}6|f>(6l$n3@S56m z;EIj+s8Pzo`h2xX^e&9fR6}(xeUA9o^jWFCo0*Ar{>+@!mQpKqZWrHV#PP@kB_>l} zE%!9nX_qzh=5y^cb7W8{$}XXO$a8sK|Glt+D(V-rlb#e~c!y_3Bs3zIsM&Uh8xapWG+P@^_%2aosv$F7Q+QSmD1H9XY zbfG$zoStEwN<2aXpJVDsm0?Cl>Sa`8TffT?FAC?LyVohzwbE8P$7PLAc}`cnP4{Pk zy~$L(N)E|a){j@iHZFH?7pY%^t*wJQ5`U{Pd-8q3J2dde{ z=FkpoD;8vjM{Tq*pMEJ)>-PsQQNNo<_q4_jA3*og?;D@1pm8lJSBLDkoD<;{>HhD( zs&%9jbf50Si{Ce}XWv<(u|GF6BvjQ)Z=xE4<|Oo9$+VX4#!)M3>JB+`(GEBGF{S;r z@^PBmkZA?2=GDhj@1d`jS`}lD(%6ks>aDskr7zuAXL}7Pbat#oHT*Lp!2Y}Ylt}DA zt(kvm|A7lEy;z!!&ZYmkT{?V4R@$X4tp+%I zJLU?(eLH(&LOp%i68k$>4jFb%QR`-$6%O97$7?fc`CbgL-guL__I7Tr z;+cBVz47i&eEmAl0ovieuZ~gm$M;mY6V&tlO1_WdYMi0{ymm1{C;9a4{dHa!v+rgK zi9%n$l^a~BbmiN0?xRw-(tC#IrL#ET7wtK8@Qw{k_FIe8)k6a;%xYQmb`@UiEuHCz z_zl&nS_|kNnE2s)HM~h;8{dx&UzO3f`?R6=v|QWHYQFp5Bf@)XhpNbTJqyx3mia-r zRXq7=+R4B7B~xR^rK6cwcE9f$9$i88Jb1EHwZ5B^W*B*?wMu<-3fadkd-Ff;)p@@z zptGw~{*GCF?;{e^yHE5z#^w7@yz94*$75K<&%+LE&6d zG`X#VtKX&FC_6o&dR%$|-T!IVFLLG_@Tb39u1qWCOnrRPo5;oMbdlELr5VUxb^aMO zuiR$J`+V|e>&)!|^fye?=L^-mz zOXz!~K*S`gR_e=?cWh|1%6Rp@!n@h-=eT-on+6K+uYZA$YVg^%A*erf>YVDiqdV|M#p|Av@fT~{X@~k9)Kh2Yq8(`OeqZO$T$aA$s%@#E_En!p->1pT zO;J~3Wuoup3Uj9GOT$uA4X-av)N>O(QTQIIU1yH-LulM6>}TBp{`RU^r8VR+e-Cwf z4$Dk<|1W)2--SttzjAOg)u~S|y5HVTIi)5I9d2WPwl>M*nRR0~y}uD}UqsgZ=a@pB z3DYL9zYFh6Gc2~~x}{IPq?%hKFRLoFk5BK^n0%i-Kkpq$@B8NC8`XyRTj);My>+8? zB#R%tk4fq*u;wK`PJ1dXAwmXSGtD;?N+xU*_b^M}p@7zv} zyX*Lb2z7HxTe>S=Mt@M9R8{)>aG(44q2Ii3e>Z-37}wghEsA!yOp~;pbsL7#cW9<7 z(W>RjGIZyBSLdo#B}Zb~+dMmh?77*}QTHa_J^wRChourxgUr260jUQMlWyhQ)y(tgv>ER43^VroB3;mI+ zClmTJS5NBdn*=_Qt2;3|@JR$7eE&cEz{fMuAbiT zCl@;ABl&<&W%z@I{v^h~Ic6S+H|K%;a^9FH*Ms?{7JlfchyCCOp5vj*dNCi_A9TqN zJnCUS)F=74U+Fjb61ef)ANb{bI3L$%>c}tm34ZJk6iK8H}}=l<#_^+d2qeRmrnG9eUtkF9sA1jgD&g8=jw9a=tt_{M}E%7^O5~X zJp7X1oR2SEo)7vn-*5EG=izIIt%*XSQy4*k9KavmgmFMNFK3PBT za(~gEoCoqtJns+JgMQIJpAY?_A`-}SE=Xvpcz%qgZaw&Ku7(&4~Pd|>hk*l^~(F7>*e!;U*h4H^Flvny>i~j zFX!XyJY;>C2j<1~GM?)JpS&-i%Y88G1E0Jf@4I>&m!Icvo)>iUJmh@gH|qnQ>xJJu zFT8*3M?JD%;N|tp8SJTi`D`D7e(vQO$#X21EA`K1rBtg|eioL^$he5~`6v3QzXrqAS;evStRe#@3V z$;)~F>&aYrVis~99LE^e`6;o$pk}Tc7});p!+z#s-NZ{j%Zy>2pQar;d~9dk#IxTQ zmV1;jCeDmE{T%D-$u%L5^fM(#*k31{Juutlo*W_mm>^vul zVJ=@b_MryeVdgWRh?h1gGq-%2wMZYwGADHYFiz?$^OG?$-n2=bar^`i`z0sa*(P;g zcbm^>WAIMWY1?;Ct9a~|{QE1o$R%NW-A2|Hx@VH?Nb$$QH< z_Wf@>zPKbG`z4R$=6w8QAD@|wH!-Z^$v8aCcU5vRzptm{fh^C3b4hM+$Q|H#*jeVe zaz3_8jI=S%^fLxe{xF7h6T^P9X2$u-W!jjVxj2@ejQ_7WFbB_*xj2@&@Z?(g$rwBf zjM`Zu^tXqldeu0(JHIQ3$H<>Y?kq7fMy}}EA@_AL*<4{+sLt_+^uu3XcVhq-beR~{Z?N8a!l z8L`z|89d0F%#}yP;OoWM(J%7C4mpJ@gC9J#T^Y4OE*yhFZCzt9kXy#sQBUF+JL;?~ z@ZDV*a|5PyjQuB9?%~Q~TswFQ#b6-Ea%G;O$CWV?^jOE0N5{xzU735i>z)zMt!@k+ zJSAP3XWlHvKG3z7h_R!dT&_IIySvCK+8BJwl!yV+TG%jEvgmxH8XkN{kH5*O>a5hv%$fVqwQw^UPDm*b&>xl~FS= zxHnKUa^W3h`y(+Q)B`(qsj4fZ7vQtT#G+r^3D^hl20!m7cBZ^*N6p}gA0q>UyOe8a5)+H_!rmem zZ^6%bQ8Vt7;xQQ5`QAn@oCWgsbmh*j%y(UGSLX8yaAoiywz?~GJ^0>%j2dwF@_Svu zmAM!2Kt^qYT^T%((Id|`u`6@^2?d6010K5p9-Q?+SLQjlj*)?B=*r;4nacN~sB35b zJ~4RA5O*nffXCg!^~?9s6Jy6-1-ml%F}EBscI3tTj#$Xx85$$wPC(7b#qS7sfJa`~ zo5#qA4HbBN7k~#C+!erM&bSkJ4-3TLQ4eO09&y(AF5@}#9gZGxA96kNUgf(8HSj%v z-R8Rp?;y^F_aUt-bHA1=b1%RnFM4D<^5U-GynG*`<^isqcL03>gB`h zyVj>Jb?w8_l5_j~wL8J4;bnHa`kzAI>FT!({idrgjKObr{kMe<{1sP^5PtA89{H}i z`qCIbbntP0#QVz6_`Ro%wNWX zPu6St&3@pQ_40gppHZ*mM}AY6_4#_A&_DN!d~$zHKID`8iheL}uE)efm;27|o5aig zWqz&)@iHIl(r=!JS-+{v`J*0lU*x`G-ZCCK?mL+uc-hbY3m@abC-HoqazEvK%=zNH zj$6YH}{SGoR9a5`!n|u{FsNVU(S>L%xC7~`q__s*l*^;eqw*wzdt75;+Xp# z_2B!2>+{7g=f(Xo-kcBO<@xgbxgPAd{QlzkaDCvD^_cvq_mb!bew-KcGoJZ?H_ub< z8}AF_q09GUo2#4k$nyuk?AO#$kMwi@JU`&&eEEF19?VnjANR-cs8`-k;5Yjku! z_~2(g=-5Bb&-Kgs%6ap=*l+F!?}Ow+KN2tZ6Zz!)x4OFQ5BcQ0FhA)>yquRgANVC6 z^~ru%m-CQ(+#mPDc-E0m&JTFZTl(evfyX||zqe$4zWTxb@%-SII{0Khb05v`E0dpf zt{1vlubdb5P0j~+_<4Tl-}KA=%z8~7@$x>zyk$J{$@kH$*X$pD)WiKDpWHX-vR*zv z?g#Pse&_j{_4?9L{|xc>x}1+$ALnO&oR>Ub?oZY)&xhX!_5&~TasS*8?=S1@=Xmrl z=L@`?AMcZlm-QfC&evDG#3MiE#r>P}K|b8aTp#eVKCXx3;rGSQ@tC)a$39CP^~(F7 z=fUyto8Kq0e&m8aa{hH^? z_3?j`3BNP(?^UL3V(>c@fACu#WMKF=EQyDYe`|!y806yLxFnuy08Zi=13NJIz|TBf zGoJWxJthV^+koL3m4pf=9Sbutg0urZ$P zjAwr6@Zl-XOUAN{7<`~JA7tiWPOcSpj)BZ^@WT!c$R}^XHNJbvkf?w+0J~dbByGN%(0vcc$UG*c%CKvQf3Tdc!t36hxs`d zbja{?EOT;R=o|+O+s(XeXCCmf%<*_~EnEX*Scjiu8PB<(OBp(__;8(g0>ia3A9Lb~ zIO*pam|tQL&z$gcENoI{9AY`1Wz@s5z_FieU>?SB{qW;s=0ZGkLjJe<&0I1s%i!UB z5)T_NlAmS90mHR12cCTYb6*l8W!bN+hcS3cJI@PGzL$`Xd3X+7C!XLi?TnZFjDZh! z{=m*Q#()=j@no4f83Ua$>@)GeN(^#xU+_UkEOSC<8C<5!c`$#D#S>VrhcSqS%skT0 zb;?-I1suy}EPCO*z_9F#2eH7*yo@(%<9OzWpD~CxXUIJK?GlqNTT+Gk0 z5-;+=c=JqQ;~HdMQ@-8qs7jl=TB&P+J+1I6QQpL^{JL&pmA+HfD99^ECe@cO zR*y>N%0Hd0YF#-z-A>@j`)|Kis}K7}C3oe$PiE>kR*DeFtBV%U6FbaNX40$Q>e9RV|mc~?65SdP1iYOzq2Bx@&p8`jIKSK=X2z`Xs;Lj{@$^HYBTtuoywK( z-Pz@tzx1RHj9vDO>J+;J^`5FxDtp=eRbI^bUg4DLO48*vdbtodSv9?Ng)k)(=h9z} z2Rf+D8kkWne3RZz=*me`tx{QT?pBCBUVn?8`!Ujsc{XmCPNl5)#DRTNr{s>)Pqp+mmbT#<-r-JyV-ypuEM0cG8y~kENNH zzS`c?Yj{bT;k%YSbccBEf0M+;*P7hf?lLICi!)l7{JfJTMHdJBJA;#|kbY^YHcyR| z%C6R5VGgZtrdA2otkjs##cU_ky9#$T@E7!0mFD9~;%Rv~m1^%dmS$LTYY*M{P=gT6 z{B`Zv_S|(*v=2K*=CoV%52bppeLk-8284|Dm;c6QFmO6XDv&>VGX43iBvrfLts}<(_ zrBOQXiO%~q=Kp^vd+RW%j^}$A$>Q$8J=n5yXK@LHU;%==1Pc&6xCEEr?iL(^?(Ms{ zOMqa(-2w>?Avi(bKD~36`t-BO_xJuW&#mgNI(16A?~vgMHRFzRUYs24p|;JpZ3@XS zev%J;&)#9Z>ilM(@hwyRq}y)yPLo%TD`TC;LF>X`)27~f_0OXoew>B0&TwbqsG2_D ze6=IBb9Ve2!+-hl7b>*$ZgUn+_BrG>-aFsmbpCy;Q}4<>Q@7IXH!4*P+`At2t+ncZPp)+{|jlwO@r)*gRd~%wBGG&Hd(w!v_E7OrxBW8-6r6$M&Z4qD4=s zF#jXg?|1LEnCD<7ze%3VnLqny4|23;lS0;}j}eaC|A`f@I?vhTV3r;=OySf>wAkPz z=-WxHt#`=exI8?C^J;uLGe1wV#qzhBwB3)pw9c4KYQod3=Da`cb3bJ3;$r@|dOc&O zzw-xQ8ewt_Pug1b4-Rp%==I<4ZEzj`5OYSt*LPH1vaB>b7d6@Mh7W&X=A_d8G0yDv zKRUqgSu(x%!_X`yZkf;bhGeNZ*u)*Q^ObsXYqlTfF5&xsLXLb_+RX5Wamk&Is*|}N zYQGLs&;AHEGtjW*FCk+dPc`zPQ^(vMhg`#9QRx{Wc@md2{VnoYJC*KfMRPwCZl=_O zTmP6?6MH3gN);<;X0mSP&g$y*yk_3!wEAAnE%%K%7Z(qva4IE_8IHajnw;2q+UXOM zOV#e{)V2L7&7B;xZ%Suv_QYoXFTMR%67yip;NT`0U=jUJZEG z)y(sp^JAPYpKUYeBHfEts@IZ1X2w$2f1>2MDBC=nxf6P>IpwB$IosSh(TAmQlGML! zomCT?gyZh5)auRuoX7re!$QDkSh>+o*4Wj}d$8`V#7>66F%5?}PHLy~*6n7! zezuWL+1t&{yC%~gE!B&A5i^|SZ3ngNK{M0GK_3n}X*d64-pdck#}XKRQG5j5hf`eQ_)#{>F!9{{7>!`==cC zOr1-PPvI1A5>fwKRZ=^Ja<}ww*UkT;dPuSio6UPU<&ri^-mCGBPxGPvyT1=tH#Rgi zwHi3St=g5KqM3)Vp})JIlsV+$e4S4;%K0Zaftmk@$DgR;^Iw>IzJBYR{z|837(NR- zyioD#&oce0RAjW1@j+1&ckRjF+?A8In7gt5*1PUsYM8Oyy_S(@&pzh#e>TTwqE?%d2CD{(KDfAxo?lPpZurDC++(Wr=J@8s!KDu2mij}kE3x09Es(WIo`nBpL-H#RjCqRGw<=yV@5kIUPt%h zX`A;ghdD{tj5YY_(#rD@fs8R<_l8--3N-O|RpANaL2Cy~oHIN3~WVk2je4AD%k5s zR>tPc>ojhm4EYRx$0vEzlhAACt_Z1H&R_GV?WUexj?E7lJ*$;DgU5^9b5b50ZRV#! z^QFFBORqY3N6dPBCnR;1RH3*x{z%nMRW6>)e2)=Ow$09BwVp-eaUbq@aWI}Q2$Bq z%YF{C^rZov{LxQ2f9Q{+@mZhwT9@(01ne1){>b&$2@`G!$3Xk{5Y@7 zuaAX?{7?_}f4SD>dFT11|7^W43Dfi}^=>w*vFW^GSQuAN%Yl?7^4& zs2A$T{Kjh?=Y#f`KUqJVZ|TqZC!U=j&nNd8pZI*Aa3AqyKG>J_g1_wVpn%SPq5h~3 z@p-DKhCS1U*4zmx9`a|pBHFd=8yWzeC+$H zQ(&L*z)#xS^}_iDU)IyUU-A7-=7ab+kF*DWc|IAB@i9NL-<)^3Fa1$3^n>{GEq~Ns z_5<^b`VbH2S^9r(>F}5P_W8hkV4vs1zOOLva{h4s<@}>w@aH`6exwe5vcI?wkU#fP zAK5R&m-R<{$=|+TSU=+7K9KW+dddFr{X_e9dLQvwPvj@GWxp`bvR}wo{`mm&BIj#*z@PJJ zzb}^ReaUy8)@A*GhxqhIza<}=znvfaWq)wq5Rdmg>&5$t^Uiwrviy;+><{gUXU`kv z5%prd(J#rL{Foo^lTeW_{K1!ekiV>d8?8$|v}ZiN--wU+u&0juQq~v0C-L_z{N5yg zlj3hv^7kzMriL}SE@g=cnIHH{f5xIco)QN#eWeZg;z@gA@hSbJOna;mpHJxd`f(*+3OOIF{B-3;@dV{=M%q0G6tWrZ;Zz$Y@{slDdS0e zVp5lTl<`E&sBEwf41S`rfj>TWEariA_)%vptdWE5%Q#%eld_EUZ!-P=3mfAFT7kv-w{* z*rP9=|9?2pUe-tEWyfVK+lIN|@1$^#JwXf`hxWAPKA+f!3}4m)GBE$mSFSTJ`qP(~ zc+y_tW1YNdgQxu19I(gwL1s+gLWey*knLEs=N^5zPMuG=P8m=81N*3WN*sGmuqQF; zZ(~av){r*L8Cb-l4P)Eu^kEGV7dDJfd&c0C>v%F3$o%{pPsYPOxkZIZeA}M9hz~o7 z!}xf@mT_or$D%Lnr`G)}bnx|(f3%iY?po&@DL>kSeZeo{tHQwz{S&q9o4HE88v2hj zM9W{-?x;2wui^~Va;g4*D`#e~zn_*f)Jo>ex&E^ntL3IM-?%f|oHjN^A9+r{PPIaN z==HD+6`Z8Md>1-S%k%RN%^%;lz#E|Dl8HyE?bG6ikJNI-Gy3lfZ0s67Ld*3RhN=sh z|M4Sk$E2&AHl>^T5w}I1xbBKtOFiVWW^rScFYh!D`S$HI*@;_wpac9|!^^q(PLB-5 z`t+o&RC={qP0(`c`H!3r2{w8^YI$PUXKuSzU5sz=nArZ*W77JuKD%}_r$xQ49yqKz z(p&v`=1~|p+>N)=H~j1AF4mtl%N{bY@Ou|^yV{|KatyE2=Fpec5^_m-1(-V{n51-lcrKTZAK*NgIba zVONeiz|2;nqKelrRyb-h?R;}}<=Pep{pvb-p>yffD>Dywr>=7fy&I)q|D!k2t$ja& z+x_OR+;5ZQ^$*hPGxE$=t0t~7Ip%$_((T?qjo~?D`WWZH&`oN%wz)Ygdf4_ct6jtz zefwER^S1k4lh@|2{j=8HGxO&BlEOFQMeb1K72IOA({5!&Q*t}@wNg%0 zbDb3mbvSZwjQ)E^%N%fMeDRu7u>KSWb$E4aowIB~km;iu>8cu!Q-}7|>(%;2^B4Lv zo2kz}FTX0VexBi9Iq?^2-pjJiOl?!XM^We2g(?d2(CJs5zt-n6+|D(uqiRK~7>+(( zh&9W(F)W>_Tm0jboaPBfnw}nSuw3mfw#|=NzE58J{wTE6!x>DSd`2$IMKe8`Hn7+aXh{4CB)}{if|V>sg0CaF-lC?oHA*6Mpd21=$v;1~cM>Vutsm%;*-|P&XXsuFA+QA!EA~aS-eM2RaA%COsLK=&+)_MAuZs1}X3ll(_>Y*3? zO7Bs1@BZz_J=tZ;bf;3Lf*$%+FG(KtTejrkxC3(!-RyQrzt_xvsZ^WX;fwd0d|z&_ z<*WMekvYq$qyMa~x9{Ue4Qpg>=A4Na&-Aq1nmtZURWB4XHfP~P_xSkJ-gGT*SRUVh zCg}_x&R~X>yM3|7-&Rw!yzY~y?xKoS%$*-Eer*32^_rS{AaU)V-PZTp7|umEWc7-z z`b6RWY4m89`sH0()kn*fo5Tnk-gB$z`?)5+srqq0m|6NPXodQ6Z<$cU3hlkkSNv)k zGgr}1whgOQ<$M1?y zu4$gCvoYrQG3RRP0jJZ};%1gIUmp`9&&BoKEzO;?GjBuZ@yTcA?E41&rQ-kmqYr(# zx1*i^o1Wj9GnM@0BPGvc*o^lsdQ>e@p|A@3j(WKNyQZt`)Z0JYyk`qVYpBlsy212i z=O|ZAd^*jKdu+^uPy7RRM-N4P2BnVfoxPJXyt|g?mME?!{P+eLkctJ>lR*t_< zd_QXS#fm;o@l&4}d3oGkPR1XrnAyv-d!d?eprb;~CpA9n6mK-zaQ;y5rb;rdn7Ox) z4=Sb}9NFuE&y9LT9rwl(2mKwJbc@=W;*P0pucafM>C69gQMYne4m&v($5Y_&U7-z5 z$=Hp|Y#hJ;sk5x~Vbxo&KiqcBH|U!VW`6F^8>$Z7k9fC!em1FES+RsUYqP7CcH4ZG z(bW7O zk=XET5k6UcT{qZ#SNZDZ6({=Ca^`H-dX(M07;U@4yJ^@Lb3(pJ(bIenT#@lp?^w$^ z=6m3?kYP^O8pq9Dx-WK4C*6$&Cf_Rhd*j4zD}Cm@`RNU}Q-L5epG$gISz9i&rn$G% zoh_;|RXZJqcV+Dz)zzmzjEm^S;=!tSfx@AfvDxLW_$E);sBoXWC~;JE$dn)yGxOuN zC2I1Rrw;DVETLuHw@WTKcrQ=*GE^PEaG*rJ!A=P;|LX0dqYW%|M(cGgy}Hm(>;0NS zzo7M6T6Y8fXSH5i>;td9(BThV+BX(D_|y?P@DPvor?lQs>*RZ0>)^-z%Yl9Bz?1PW zY8`yT1AI?d`?fv!gCFC8kE{py$a`_nh0Ur2Mzod1$UeccRBwy&VUv_-d z!{!4#`lCK}ep-cbYwBA6}2mX>D@|X3qb;Otb zLcisFVP0i?=+ge2wU7AV!+h-dXFb?Y^k2>!@Q~jcalYg{1FxCh=X?>Lc+8LSq2qiI z&*qDLi3ff%Khy*J#6vvrV|?aA9sBZp0Uz}vKh}pj{AGTqudD~=UB&~RZ7%YA8&`;9v6W&b$uxuZXKd8UNLw`|E z#$)}c!yoq#b<|7pLwq@J$WNXRyw5PN(qG=Mz{mY6^O5t-c-#k`Ja5=XeAd(E5BnA( zzCHi2m-CPM;r&d$cwgD)Pv(pG(jR!T-q;6U@&g~)FU|+!+2;fM(jN7e_p9B1#78{h zA-=qSVK4j7da=HCeV8Bdj%k0%2m9b7{jo1~SwDN;!AH&$_{jQVJ|!OaB|h?DeNitt ze~5?pyuT4o)&qF59_WwEhxK9pc%R7pIq%#@JtSZDn|y(1$Cr5a`;qfNeCQG%`N(-vYyew=5|$D!Gmrw5JT6ANcV9SpbB$}$gf;2vxllWQ`L%#ks% z#&ybg%DBJ+E}q2Y6Sj;AS*{}nbFueeC)ZdD8CS}T!8O|#>kKB<wf48{m*L z#Rd+Eu*%mNwUB?W6_=*fWzD&V;wkeY~t#5&I9Yo{*r(E01oEowf03HWxnVO>JJ>`{yu;Y8Qg#a`EOy9F@Ooq=)_)8TitkGf!@?fsC2tJfO~~1M*6% zW$;0)=)wklMDFm7re$*D89`k1h`uocHdv?3yqGU|vL@-ZZ1)bam?O?6&H~Q}dd)M= znFoKYa~^QUA){6}3-py|finYN)D|}2jG8dVSGu!AJ?|@?JKCe3%#mjw9AHm;)C6?~Pt=X;xVtEG z{!usH6~F-p_@X}OJI_0EN8P{&IN(4ToLLicgAM8iOxZ_pBL~bOYemlBL!RIO8`xtV zJtaPQqPDm@oB7mFEKX^p&&9GYemw5%x}=N7y4T z&KUV1FT_PnSO?%>9kIZTa}F6ZMsB!!%;^H%qMHh zx*-?drLf^Sh0JyIQGO>Of7&B=n;T~dHn`JRtADi2T5;xCPw0-5&-a4=)6Kl1`N z+-da1{19Kxw!AZO=g^+-MDXW4w9zs-BQ9!=d4>(&YlzD_fInp9h;`N${E;L0z=rR1 z-~b<(Sci;$K}NnjBRqq!56ynQ#Km2wOZ5NHWLv_c154%A`dO{__!m7`@1Ga@`79m# z(my1i6Ce6H;h#tAmqmQ+OP%<`1AH9455DB*xA5|7UGgIy?ZNM=@W(#v$K1!RNHVV}0n4dP=^~B|rKzegVCIDGEO1k9wfKv}gagZ^z56?Pb2)r$6(fe<6z> z@R2X=QD0dP_{;o}kDZ^?5#OE<;IUrtNB_x({1_kgmGM8bbnun_HeOWqm;GmbWPF>y zj1PWtUTwa>lYDF)^DFUezN|O-(4Y0dJW7A;%YJZPSYPs^&UnP*KI5_8)Vcp}_P_%l z+Jld*pM5^46A%7!KHx9$$cOd?Eqm~@h%f!4svqOyJR?8qh!1@FqrTwBee$7h=Y#o^{YCz=etiFuFYu*3=Y#mzm;9)c zAL7gR5&9$hkA7pmXwUxsSA6LYJjsvsqCfJJ=fj>i^y`XMKgk#Q%K69rVE6B&;LrHX zhxKK>5Fhc#54yY`?E11E^vAxO7xdHSC;I_^@TEWJhdS#)-L|*Sw>=N=zaa4K`xX1L zKX!iHXMEI8<^y{&z(eE7@wJP(X- z-$(Q(KKcBYF6#+?h(~O2&+PsnU-^BO{Usjqm-{?V+>a{0 zoL~6M{%{_cKj({h{C>-Q@R9e2J+G`6=fTbo=Rx+@uD9J^#Fz2FSAJiEzr1g3JUc%4 z%lz&7LYMP^`I3CWU*0!S#g}~T`9ObVe7j$qf7XxvWc7EV1?d|#? zzML2A%li_)FUjAe`1=!opTZt&sPl<+eDFIJZRl(NWGOavk=v*US?(_Bt^cTgD=eox5CTT-Zoo#>6^p7)x@do$V`a7#}#WgO9Y2 zN@iTz!xw(iS8_%?_JTI#01U`nmwYJGMq)~P`eUCy5}#|}Nv{8u7qMY0F^NN8>ad3_ z*Xc_vJn`YWw5JX6h(jN&+xE;uV%j*2g(on%Pnr0#R$LF~iJmF(=pfBS>mohQ2 zE@kNKpv)ob^u;>x@xeZAxDHz>OJCMp)`YbMj+AX2#-lHDL@az@ zk3HZ(#s@asr$6?2=fH;cEEH{M9a6TCB3>khqPQR?n$R+&gm{} zDl8n9ziFa!{u5fx{=SmB6_UfhTgx|lCvjHK7;j|%#Vc;=E$!8Dz20{3Tz6~k8SY^% z_w4(b6T5eN^{bY1&Cle#e%sYMr{!bS=d0n#Q~Hl-`Sk4S>gz=}6)^w)b8N_ov&p<) zv|O(Ij*!;>1iJ^d+@#uex6+bnYLAxxsXxj&oiC*y@{K#AoY95at6f^YKQ6s@edr%b*$@? z^D5N*vz_UDQ%A;E=wp%}llVg0*7Bjh6Ei0d@m1*IC@tU25agx!s-SqB46b{%Z%h zxW3U&zMv-lvsyknbiU&|k=6sBRt-9-KgLe?BktBpQ=LSQl6jc1f=9nrS*{OPn906P ztNHSzU*S8T<)W(|g)|xWqaStH*Q37rp>$#wc`XUBu8 z>gt7d-hRDaZ2UN<-KCmF-qC8jQ>%2aALnJ*hCwQBfhPW)T5kMixKs9cUz6ABvp;w* z6Bab*;&|hPe&30BhI3=hd0^s|Cf~v7e{zOgN#=pu#zn6}PBx!yW@Fv09wFs+-!#3R zsCyk_`x$da&ZL;=y#K4V|95Twu+>^$+!O`P8EKcNhVpefV{k_IsNhdjxQ98jLA83R zmUTuu=+S~pZPnw0eh>JW+l*xD9!iv5hW{)<)w`o~_jL?oIR@^Z^I`IbH^OB{U~}$*LyLGxS9Le@lQzy6XT+TG zrY3*Y?4=GRNa#PQ?dL4|Q|z zQIGnml;gWQi1kFz(vrR1O}{eheifT^)x`b$_h#x$vlZSJZIk1hLC*HvUz_?om@&pV z9};Zt!&kjJtKRM%AI|U3VRzNnX%d8Fry`|MMw&#GyIylyQf zc{o#bAARl(ShmmDEY{q*UT$GHw|G9@iTQUK)5ixt&2kQwz3aohH0a<{)wpzjGpi$e zZe3G($Sre@;?*v#&JEk*0RPXv9oKft*3pl=Ucc5gT(H!fixL}Os-N>@F#K2Fd8W2B zk8keD`$eCsW%JMak>jMCgVcoYuA9F9`Rhohf5QFhvR*&+HdNi2dB=w{HSKwPf1izh z5BJIB88N(X3eIqGW)qjKbZ;RGK)xGmvVLn@@Z0Z}_bEW^fmOIx=<*#~RxVg9U{xR8U zR4KoChd$JN_IFz9;awB$Ml;pzQZjQ#EnjmhWZ~|A&?2MV2<$7iw9m-?w zfimrfJDc~$Fu8mE2Rrjeo^^57^0fHGfBMjL7xS~U{5Yq?nPP_L$=G9@M~B)O-w^G4 zr1v}zckG~xwR~x^&o=kxy@4|wd9MZq-h(gl#_=coG`_+NKkppfpEhLPQga9P*LPr#sz3WqY5NTC<~mgD0CW**MI9`0;i5b@r5xbnR-q}MoeMi%P3F8#Eh%xq_? zy*}i?tzzc=)qGQSU&<-d{lLHVODzAG;y!&@Erj4<{ou8#{tNhhwEf0YlRA{i1G)2U_Z*AgC&QC>38sD0Up13zxBrY*1!%X+l zxtK+NcsH;V^v>^JxM2bPy4D{j+@}(X{VMP8_>|CN^*E|J3j1`sX6zu%TrUVE|M z@vrA@XR&{z{RVeJK>tI>+gI(D%6C43&uy(IOH?y5-Z`yjZ`?qwJsYtPeqn3!sA>ZL ze%)%|7 zr^x@g)*mG*>kuD&ss{x*T}1pQt>dYXfPN4DUvF1m2Xw@1G=G$DQb512^{tt2IHve)TZ0553ijgg##&KlJzTj`eCyU>|yw zsvA_W*gw+wV?VIpCGN-mBmSX@>(w|Jzv;*Lf9m~(wQ@M*hx)ENoKIB~^}YONl=C#; ze@XB6j+-(vpKDr=_O_DhB>3lz*;xG*&@mtBc72>Lz`gd?XrKczxTx+Cp=*Pm)5`Ra8q>% z=qI#3;#k_qd4zwaZ|eDy2KG_U3P(Q1!~VQ0+5TsK4*m48zOY}DVWqE2z#skoam`13 z=(FpbQB?x_;MX)beq{c@|FPlG$aw?arTF?QVZa{snD^aTRYmk?T%LIbgl{=xt4$W&hZfIsXH-dm?02F^e5&wf)Z@_a%c zIUt=13)qAIyT4L-hXcBq*Ob#D??d44dHAP#Anv1j2S3&a^R#(ies8qkzc%=a$`{Zd z>HXI0#{JKEtX?-L^8DaF7Cw{bHHdAY@Y+SYX<&#T=(#Q(f_YOivj|KOkP z@=|qF_}}?CQDlGMKQ~o2r$)dY`r;cO?UCQj^*OzE0e|TEE3S+@f5>OpBfoc0;6Ir8 zT#X6n;Gd<=(#ZLT{i|hty$XSS@H=$r<9y=$B#u!davs5F?esie9)W*xfAPrrz`k>| zyxzUQKKPxj@^PL}kMgV1M&^ro`6azPHKE$omEPRiD}}avyviY<;d)iTr0(SQObG#E(_?fA61>h0;aNEAox;<$J~W z=*Rhu4h8pP+tf5g3q=MAHQEwV|^zCKl^^T-~PF3FXrXD{LkFP0Uh}s=}{=MzrfqA|NFpdabL*$3-ziw zqOvY+77vt)|M`a(Zg{NwjC=+`^!h&(^gFD1?9#S6?c>haXw z7kPi6eisIPyf09{Woa))em}*2?W;At6#+ib<@Ym_|ICm1!@pnW>5=bi+%M;YibwVX z`9Cf;Ir2P$kNo}!|E7O^tS|T%thy%hen-7l|6V4N59<3>q4km9XW&0--^ceG^iNt> z@$vnG_>*&Gio6d|-#L@csIj8n8{e;q{C*Al>ajk4-v^(xCC)_7ANIYJ`6A~9_g$=H z(fwxvc(5Na?P%ot9QCStsIB@daDL&x-oGZ2Kk5~$*wIKG{F=4>-+r#!oiDP!$nV{x zgOT?g;zj%O*M@Fm)~!}zs8n~k$-*!p1bQxf`$v{9=jkztB5B%i|pi@Zs-B{0$5`eq*A}C)fG=6K$|BZETtL{QZi*XJMVcnb{m* zBkiRu<1rTYr3`Ff@;5)owhir>m(2k>ZQx5x+g`3q`xx3Ed-$DI@~3R$&=*g9Y+vL; z8(;t*7;@dlw7F3y2R!8(F|jUVkrVLcy7ZNplwmJ1X>ao+=D*>~_>!B%Cnm9ET&~du zJb*(!5>u{AdpS#32j+j_&<4+_Fy%UMfDb#aM}?0)*pfG&693=isQ3fVUYB(vzRiss z{w)@H;wfcmk9FA>%CM0#IsBVF*J(%J|7#ulh(%6(VqMmR>%fp%;}VDXcv7};xNgUV9oC3XJ3jvn2kV#t7Vx|Ipk2RL8nkHADt>g)CX8VBpWG!ARqS%18!K~r00sh?*cOn{N=jN;EA~9bgy9p-_LbDnak_IydmFty5{I9?B{9@=P=zb;G-`~v<-3rP9J?A zavmn>I|Q+Sc{(sZz)a(dz`^>jx)C&X>7d*7bos>QhVOfHQCo1$bh8zvfTOgxa2YZP0xI4$eq%ZO<8)t?_xLE{i_i z)AIlu;MWe!61Y_k)B*DBKpkLnSk(D~KKqD;-rd%9#vKm%yTIKJ-y`}i;+!PVGl`mm z|F40w0Q-FUJi-R{?X(T@!feZPaUpP5fJ5@YSwPLZ=^T+ed|wCVAHMQDb_{TUeZ9bZ zqNn?HUf=`!*7~e*W;W_|aDYuEab9-oxk4;(9;?qda!0R61kMQZDp%xVj!E>K{1CvY ztZPo+J%Kyqo$k?}fu4f@1TAy^AM1KDuW~vr_~6~NAaEyxgS=O>1n|N6r0x-M*66;Y zzX|nv1C7akl?~kII4{M-Jzqj|LoC#JyQuS@`nv%zF;{B>cR1?#la7l!3ij;_eC%T- zJp-sG>a$hc=V1XE`TDdkxPfzi{oMv}vEDX-33-dYH^3P@-N3zpxC1n2^1L2cM;{+) zU+_eIDh2Wdw;_545DWaT>pKUSi2J4XrF}zj2ky`{hdtic(*iXC{zg4xhzkzm^=z=7 zxdV3*I8P7U6|kS7drJGUqRv}1PxKcvlOr&13A7wTuM_j8o>g!I|LlSD0{oyt5t!h= zAkZVM_tm{dFHo!IdIor=PU^GFGl;omUk2)$g9Gpv1#(1vCI!9+zR~hU{r!P9nRHLV z2l#OU_W=6)Mz6yLHD9Q6feb#)0`C{drNw#AtnpcY`TaIWk_i5&Nn%|?)GeNt2kIJv zKjM~cnY!f7_X|tx?{alp;k5%xm5D;XCictgedv1v_FriI53vutD?(_A2R_K3I^s#b;B(2^2R`$SijRzscoNUnQ6Fg^6<@g@mA%Br z{tdwo`CQfdf8{UzS#R2-J~Cg_L)zQ*XMLr=>`zqoa^H?;=L;SEV*TxT0=``@X%GH# z|Nrv0@z5X4EAyjHKERjx*!4ht<#}Vi#DgyPfsg+E7rs0{sE>?q*AIN;eP`##dN3a1 z%YIkXy5wj3!yfUazvKgZsUx1OC;PKQoKMU%>qGoQfqn3i=ac@lXFk;J_|WZo$b7Mn ze0e_rPo4+xk@IAqpVHQTRPk+m86Ww`dfWK{PsX?Hd0v>mJs-$N#*d1h>=*N6f9?9% ze4^Ty@lZdh(_ZqG^|txj_IAICPdwPm`a+lU16}4Dl`iXTpD)x$&a2%o=n~)Vm(AaP zpGCz-;$dI%v+<(x|5Kb-?z6vke$efCyeQ5G{AE3PK8Qzr_5<~j=ilD9b-SO$Cm!p| zc-Xi5ZP!Q6AM%s-#Q!(E|LgqN{j=+d{3IXj%lq8kk1C$@x9bHwIUmSJejkWxK5aay z+x+eMviT#PtZ!8DkgvSYVb6No`PlV9JlQYc-_rh^2lkKncKoRD<$Pm4rEdHG+xLII zFYJ0T9`i%}B!4?U=yD(SvLE0h`)l*#ys#d;zp2Aso>v;exh(LYBfk9pBJ;ET5kIQ)$oYW1 z%op~OKju$<-?#gR?;jE$`QiHx@$s7&eoJ~2_}vLIerMuuOpy7zlP$vrzgux#%EZBM zSXjpsAFSgEpQvQo@ktzVkn7}58|)z#aq;ADhxF$j*Qt{ap4{UzD*o`}I%ML&2Qr_K zi3xkTE^{G2VoE-+lfUs2Q`!I*c6<^Cw)kL=GWpo{WFL0%$MtYA}&7A zqq5;T?O=m7`ja1@w72)ElbekLeAa|@gAPCFl%bO^G5LfIe%mGvIr9lS=13dj*}BAp zOgqK~4rIwqV!)m`!VY_UN|`o{hbL>qShR=ExU{DYamWGd(w=tkqc3In%DO>@J+SOv z(3g3`moj;h1M#^oF^PjUu1gMFmrvplpLK!`JmN5}tQGdS4ttpwaaco%Lzy|!=D#?w zCeoMr%DCi1p0vk0W!s+Xe1eCRiOC$voAK>f@a2a##3U{;h>0gYb}ZVXkJyuSkhZXc zjwks54>ED-%XQcipZ?f`41UBXE_K*&pV$%yGGf6V`?SH6+^|O(Sp3jl;scNP+{Y7Z z#DP6^Vqs7EaUE+mKDiPD_|o6DhaLIT7dGUFHGJ$kNPODThW4=G9@ZF(vfP6#*CkJ^ z;{zLVBWLL3!gzSvGP%i^HYWCLU*hvg8~QR1`B29`WUkA&wj7lW^R(keg^4wr57)R( zJ~n^gV~_jNo;-m?nfuVC3>(@Ji)*x_P7cK6I_p4tJf#eK*l-^umImQleotAgDSfh@gOXmS+RjK`|QP2>-r{xE~oOf%) zy=df2Uu5tu-HH9)4y5Eb-E{1`$NvC2(!(huJy`J;LJ-jDLbeq54m zZpE#|{is8!d!towrRg5{tatjkyAuV4gU_wGO`U4@qlE(V=E5($hE3jkyS4n~{6lKO z`Ee#ziutddkm$)n4d$ccA<2u5_fY@J=Z-p^Z+7z#w_Ei$Zu)Fj{cE-Sv}$E9UxKx! z7hM~Tb@#mMdve_#Qo!Eq|+WBNc2uDKOf1dsJyt^P`ipct@Xf^P}c{Yt>X=@9Aag zmSy{Rm3jL3HQ--%cUf=bohfEcMkIUTEc`XKA2qCSe2r7%(Lqy((vSN(BhLsTg+w}TZ6T?)W0k>6{mftNtr8-<5 zXZT+TPOir1_|@S5+Tpeu+`mHzVl}Qi!`*Q-k*WXk8ee+JmJD=ItC@9rJ8D52GsA^* z#CA@8NFI*9@7Uq0yvqif^-I$SITg=;F!s%ViQ!Etw9d@Kn(I?l!r=!@uYcW?L4CMU z&ksyD-4|+2nOq)f7#uUFcPsf25A~n7a*HaHB2hT_qzPT3HY8YNW_VBAernpfh&j)i zaGsm|O*%9G`7Vb0uI%b;^2&W;qdVs1-8IPlS+VA->G8a#CXME%P~q9PnONO2mh`3B z6lCn1u3O@!9G<}s`?UJJUvhpi_ermK1ytfm1;upG)}dz^(GAGF;TvTzBrGbn%Ud4 zd23j;v%eXfO%FUZ@T(&})FEfPFN2%=i#XuLWOb9Zx!9ZYQEZuhTM)lMHYJbUcerPdXkW9l;^kN*Eo zZ5Zdr-PNXG7WMc2n|{nsa9&?Xs@xM5>VLA)ec!`-v&?$ZP8WSGCw}nZEPp>ZsY+F2 zf|>K&>wZ_$cb+pdaIIDW_4|}~rtf#tmG&22-O|MUvf-zm`#i4c-NQf6xj~NynR6X| zR$t$cQ(X-HgZlkKE?sYG)-M#f=KR*AogcH|@3mK@O1sn4=kt+A!ZM$jXzH_kTwm4X zLSi$YciRkCZ#e~ z$?m0!TMXwM7l*nh%a8MLC#(q`svhezi8`P7t@8hziUSQ_Y5sF}eOX^mG56%mH{W`l zDYde|5K}Af{3Z9q(}?=S7@gGH z(RP!A^YvHFw5nOkho=nIjeIKfO;vb-8(Z!>4MTt*Y6*Q>MSCT2=8{R*87O zm;d92v#Dqm^A0UjBDT9^@_BP#t!;7D_vW`ylW+Ql_nck*Qic$r3QZl?ysw*28JB-U`Yi@?^T_YKXjzAtyRQ7#ht*$C)|kAaB~I!+ z%lL_@Tb;R?y-(xiHob0rx~4x*f<0!IzMQ*Vjd+81F|9eUG_siRy76 zh57!o{cIMm@Um>?{C;|EfSPcjMF`?fnjYIIqi&)MI}FcjaWbnpJzpxE-z<~zsOYbgp*mu?XjDSDv`-uIPfqmlJ zI_!H2d+5NUJ@DHL9sZIZboeuVYpr(^I`BFQ|ETgqK2!c9{|>^R{AUS!$rt8k?^b$W_P4p#Wq%Rxzv_Yb;LHAf zqjkh*zVMg$%#ZfOr#F|V?J(jWZn^Jmvf&U;kxVK4bbbzUStdp_)bA|CA#Pxce}+526zy~(euBTWXMVJYF6Rw+vOd6*^?<#+4{ROv!Fgjn?Rvo8 zo*$V%-`~<-o_F#gf5fxzGke}-Jouyjvc7gc@_ev9bZe!Uv+^0RB_+XuTcp@I3 zj4k*1cUXuc_lQY9;&Yw2(4`H3yTrQ8i(I%KRVr#g-^8zOPunw6zV__Y&m7Jrpp)Yapq|96x7q$|Q>ykfwp%a%FT$7w-EXv%MIP|q` zurBQx6LyfLz2r?l=?fV?+@rtLxdvRjwpfF$oM+h62TyXqlj~fQ`{Y9Y*rPq4(XA@ zFb-qU4(pWhq}{*C#Kb=Rh{-)Zu?`u3@7l(bzN{_mA(NABL*2f|ur5Eqp)F*YlUxTk z?(s=q?7^0~5Fh)*qz|9;l{QkQ9iEiQ$HxD!xQs(z=<*(8eGr4|HavbueA?^aMt(L9efY#aKGaz&tVta1lM|kdYhz$t#)mIs z;7JTA6Q5Y}Y1_AKy~b(oMlZR2WgaKn*t-6vTJDi1uY0HZAO2=qK0BwR<320zZ>{B5 z)A#$Tm)h(9M$2oz|2^#OZ%ISjY58!OH6fFC#tencq1DP)=kWkzKeSJ{b0=4rzmZ8$j|Ds-IRrBX8p}^n0aHzYmYnZ>4mIoHOt;+#c{>9!ajAet*rx8gXN*Gh{{aP~?7hXHswRw{!e0wS3mwpk~dB9@<399mb4O zUa6uEINbcKttz=Lekg2iU*DpNEX)#$I@HMA#3^05oe#Ox+P6p*SXI_wo;ftv4IW=H zw1HkvaJ8B$z0n`~E##XqRLSWbypCGVlzqI4K6{QIHLTxeuiLo(H9z=NFTd2Cl|lI% zYPs^dg1)Q^5|~&ilRgf+-D{QMUtS$n80WVF!wdcA&~Z{0E_FPZg!CZ|@-`m{50>D6tWkzGC* zo;~iS4$HiIv_gGy78&Tat99SxSo3lP^}hKvQ}Y64kGZchJ07_0NgJf*eUjSrvGuE; zo#u1%m|i6A@}<`-?^3sewn@A#zABKbm>(QcWiI2CJzFOf>(|fS_hq>`T49D?Jx$?1 zTxOx+<3DjiZCaPq^sd}rTUFT}ef_AFSLL$rpEW*{@5Q2PRN*V5Lop|7bN(1sV{Kov zzWiM(uT6!`=3MN~wZh4#f(%a2R^O?laVMKPS30%Pm!nr-6KmU(gX-5Eqh0iIc7sdK zv4-)?td{A&&v~7#Nhr9@nNZw~=Uwu3((;ifQ`LinelsV1zUbl{5B=M48=tVdFU8Iz zroTT`%&O9k%W7mNfi68zaHXlnyBuE`AnTt zB^w{sXip{&vsAc59aU#a#F;A9_*1umKaT@Gh4jB2dMU{`Bj?O@DCAI&b`JWr?z_a^ zt}^RP?)?`35mNj_*3kBPy;!o@YRHhRCf}@CqPtCVCN;fVGHI|cLE@C=tfi>2TCM2t zvzfQb!+&r)XZqaCaJjk3ef!F9HJB@NPFI&sh59i6aWWoqrq*d^?ux4wO1fP;{^A3- z&c$A+_TOhSy?F6M3U^1PRHhD@ize}k>VJ0w=kYh$bC#M~{D&u?^}oW5l0e0rw-Hv~p3FmoH@=ujtm`xPF} z{+9Sj{J+*tVeYY)v;A)Ns*NmSYBI?E8vRx&ersLW!wSd}kLeU^^AzxK2F zX-!S;c536c-GE_x@6(;#HF!kp*X=W`Y~bNslACeGNRrhgb|?(lbwa(lPW-ZgwK zefg`iBi%#id*t%v2zS_)_@+KxCT>!#Z_P62H`9}{?)%1`so}vU>jvmW-Kp_4TRf(O-T~c?g!Kt{p zmKSqlDsu;3xD;LGdviu1*5T9B)bI7WcsQqR$4+*~pDJtWnY>jCcizx4p*TnV7VUM% z`xBb`d2C`=$#XF~c!oLGDK>9W7mIE(d7XVQ!#VujLW2{pWefjT&9|AFytw_TBhTYC zUt>RJqwCrtPGkM=(}B;x%1fQ1b4r`OZ~JzLQ+|Cm!};~4Ax@6``rozHHgS`UbZ*Q_ zWA4L= z_UWqC+u92Ee6n)is%H;dnLG2)FMm02PJM3f(xne~I&;e2H}y>2G^6`rR#p@D(og-I zS${?gMXXNaE2__rY;*9A*t2YaBk$E)ixQYvPf|@&^UfqPH7Of=Y5sd(6jHc*ADz_y zM&*_ghUeeYIy$!&MK|_KQcqKF_NMW0Ckz?6I%L@8I1Xxczx-UcLEjDz&hMPY`rqcg zJk{K3XP$0%+w_ijr!Puy%-6kU#5;7x-g2sA%W?|+-P?Midunb(-TF-b-B<3(We4x> zt5;6>K3g2y#7(fVw$ouj26J9cd&ktWl4H#MmVIg)XVMq{7G^|$cUjRVuY4(*`Az+Yln8PTR-a({JEVIrU(bD` zJ=7t3#&Kb({I$%Ctu40Gb!Of+a_qS6@B3Qet*n)Rj;aU-Kro1g>K=}r*Ugsihw{Dglli%H-g)FIaK=ouCXOa1q0`9;<;jWEP$DfN;7?FDWhH%nX8+L^C~(mM!$jyrlpE~mO5IX9UeA#dMd)E^>>ZQGz(y>0&z5U02 zY^&_75Al)@;-Pc>aQ z_wtwf7yAMJtOx#bzX4C~XYcugF3%J56Yo10k2>(BKi1n@pWGkb`vN-Fhy6o5@K`_a zWj)^gh5h%x_A~Yq@rW<^_Y(QB9e}a!Zf2c>+ z>+LV{$@RwlB=dXm;E(gh{zCWOPpFUg5#r_hg7y;1eA!Rh5$`?U z@_xX6ll=ofyk9ULc;0?VJlMm%li5L%k#^4>Rvv`C)W$Q z#792K2lm!tKe9jUC;B1p59Dtt)(83J`m$cuhxM1|7x}&CU-sV{4?fsmX$bP|}_Y3&R_fg=>_jA-M>+?P@kPrKb^}-H3=7TQ#%l^~O^`=fc@xTZ8tl#So zUGjrJ_7DA$-`fxLk9O`a=0koNkNVIrX_xm4;_?1PJMzo>9Co>%z5NA$;4vQguwP|A zWIXBtKG)B?-uyj@zjg8VDgJK7-=+AQ6z4HAmOdDPBYo*Ze2n0n?Gz4)0>yr8}VU+&NAxHRdzc8L0V3RU*#>&6F#d+Eo$5`1D z$Z{UOjHk?ajPNHv#K~CleHT7!haY_?6Gw9P=A{qwGM^mj!#UPK9V30nfqCcyUCQ)B z9M2u*q#taEk@zyVoJXwWKrHeguH-;0a(SB%`b!MPdi`Zy`e5XTxELi**k!Eb3}1eT z!%^Ze1~%yrS^7&mZ0s%lFv_~O4@Szs_+K)) zkQ;eO9LZD8%NRLN4B8owdC7;|d7c=@dBjsD2Ie3WN6L(+4{VYH=ZOiOxuvhH1wPCL zS;kW4DDfckIR?ArNzAzeLOxv9{-HH`M0Kn8z>p7@D|xJvH}-!ek5O_XB`;O;d~jH-FqbHKxRQTR@(Lx7 zQ1Wi&4X7DSYQA*CM@`69+ODfF8N=B}6k+1k5miWk(SjDp5IJYkN^j0#s zfx|&}9+>GA2h;_5rdtbSU&O0uBa z7D^_ca|$Qm;(zSoAXk1h&%7_xJa7=ZO2~Z`J~>x(*ABJpR%-?QbHYF)q+@*#mg*xk3_lTXFMAF;)i z%$`qo`vd&kZY+GBt9fD;b8&$G>5%{M&mnN`DSy^D)5Szxe<&Z;TTS63FL2VRo7cQhCYey25AAQ>s|{>{l}OIdC$#JwaU)l}!BFDwcaAyW;SR z>mTECfd2s32YH9Od@$e2#X&z0D}UB<+dVJvIplIfT^U_W_!m?%`D5QgMt`a*fAj~O zcPSspI8!^_dH6IDJ;(k;y*OVDTyEg`ftwfp1>9Vi$DIbA;O2MvWB!)vehkL2Enum<}TP_E1JK^#~y@g%==;t2_lRYn@e83s=z`o-~gO;Y974>&j)IrJpU3ro4PpgZ|(X6v#*-R{y{(g zQ1jS(@WK5C&hVMlMt^{h*kUdYI2Tnia$!D= z+jDRz?ao7%?|~zg59^ihjo&JN-QhTyF5W>du4Pw+a*M2tHrCv8Xqx zn&+Oxen4LEtfl(H^-Ze&9s~aV&OZ0=StU_A{@%wyq2upI&<=n6eG}RfDP7tTkH7Cg z|HQ6Nf7tQ&BB&!C`T6%es53s9C;mO9OMcL0Joz&ox~vcUB|q|Ee%K{H;G;hBg??4k zM}NkHzx;bbs2}-dy!?AAu*-e|U+T%-c;d4@;vqlyNFDW22R`!2et7Gb{Y1az-;V+x z{Jj*$Cv@@N#Ru`SUhn<@AMbuaKH_sd$e;Dfd@>&RvR>%2UhtRovER%GUGnArV1BL# z{b84Qup__ZC+*B9@#KDdTfD4?{UW}XFZv_>QNP^3u*-gdzjr^&ezBj-hj{t-a=iV8 zUG~r0Z`dUt_D|w_?chf{>!I$&M?X+M*9ZAzKVbh~^~v?({^oj-FY%FI_7nMJyf;5} z#zU9&LietR+|AJ`w%;g9uWy}*0heJATh zKI-1}!TO=!#3w)cv!Ap>m-mrZ=YC*3`$4|Yy?kUnUViZR)-U^wd{|%dgTHrur9bh= zkNuPUy!+X^UUENr`LcfUp`H1VU+ypJ(k}bM{Y5-)z0hTUP>;M1h|hTNk@a}j7xCan zKEVHPc(4PH{loq4?Z3C5-u008CGh0_de{0$e)9fgy|g1<_7n9>eEQ4&$ogp~9^z%c zp=19t-s|t}FYL%qfAEud3j0c{KN57?xc)1>L>zB8mh$mm~ z`z@bGte5?vKl{P{BENjT!7llOkN5mZzT{6l##4t~_8axf=OOXQ&sz`d@;soQ-unmm zj7NU(rH=gG^^yIDzdSGWm+`Xy-tRA5Pu9!*$9U@Rva?@YFE1W+0o4)>kC8HQBxhnU z7j)QVz0x1t=z|d-&Uv}fPhvx69Q_$D^GICE^yeNR7Dx6?;zMQ}{iw^lz+^n_x8WFO$eoL+zG!1wk+@{xYb3%jh5^T-96@yrb!I2^GZzm&>y&v$)B-^fsJ|SM=avNA2R(Z%X!ME12VAaPdw_d zL*_jFG0Knh_r^$W5{L7cqYN(OgE@Q{BS-duKFmoR=#&vBKftG*n2g7W4>{0}cE%Eq z{>()`_LhDa>4WiYd4bJ!mvQ9a#l$@MFfYfq@h1*P87sNLP8`bAS%>7$dN5LkzZYND zM45S^(_i8+4{E0mM&^O+{SXHnTKzH1$=K{>g>6lbnVIJ=auO=JQfM}3PpS~-S<{;p z#*cf?nLO>b6Hm=QF0|E{-FB{#NXfmOvd-k6E&Dws=Rbbl7;*5WlUB()ZzQy*Puk?X zRIz^_?(am#CNL7K`G%>#wQt1#%6X#Zm+kw~`Jz(=`-PIbwQ-y;mc8cgZitYjAda|aeebpDKIqZM&!tNTLz(}g*r&gbDZy&M9d9HABCT?jAIuPPy zR`c_Ihzbn+q`#S5$#V`)wO{@a;v`dYo&#S65*5#_x%FzDz`j&8jh5s670>xN-)<9q z*zv5TJ!gOZ7}VRVb6#_GtF&esCAXfi-5#_zM-1wUIFrX|R4>*GC$tB*YHTM_a>@5ns=t60ZlbP9RkAqWRhgxE9@sX` zK6@{34EPt#S={`m>;*HGlJ}l@Xq1`qB9LCmUrp;|*ZS##kwM98vj1Z@A6V5%q2yc# z8yRgjJr1A`^=FK-zyI?=bUHOZV0%U9Zb_)*Tk%Ewu|(=JgcXDHTg z>ERG_QOa?4N+r)P@F@Ct<*E++KT2~n(5HMeGn0~2l`CrYtanCpzCL`Cu`2YSjh;;W zIhoxiRjip^$-N(p_l^Hz=u|67$hJkr5hL}s7w`}Aaw0Q&Iz z@3owdk7tNM55Jx?(uvp;u4BJQv%{$HS#G@#yTpz)hNdZMK2n^2`qeVx{qm!Oy4J+~ zYnM5+Pw%(1S)Ta<%@>&9JhIcdK%)i~Z1kaHu_VsfBb$xXYQE(3q4r_Z7m9tA@ZtN; z?Q{8K(6@teMFR&`wQSMtLKaLV>r?c_d})Q29fI#@w6>RQ%r+7|f!Qk592 zY1fXU?3)u`+F0v5!Efx}GTR37h7FnNJ5hPAf&PpvKGR50X}t;j{C^#>JM27XW6$rY zGcquC=Ntz({)C5p(@RC^{dqHdr#-f8IlW#fCm%ERB!Az=Sq>|d-MODGS133)uDZ&8 z);o_0p2O7NmmBe{u=Bo>TXqN-6;ga{=2Y^%ZuO0{l?VI4XIuT6#^Hx!?8mD1*{iBM zS)cuFgHN6_c>{AQ-7&H$d2*kRjIxtr^uAhK{kd^ l8%h;wdVAv2J_Ib{(M~s%G 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�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

h{p@Z3}Gy|C{`HS^$8 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 pf0cCotQP!x)%W=C^`EJ)` - - - - Blender User - Blender 4.4.0 commit date:2025-03-17, commit time:17:00, hash:05377985c527 - - 2026-05-12T18:38:45 - 2026-05-12T18:38:45 - - Z_UP - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 0.9974608 -0.001416472 -0.07120392 0 0.07121801 0.01983875 0.9972635 0 9.31323e-10 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9975046 -0.001404219 -0.070588 0 0.07060197 0.01983961 0.9973072 0 1.86265e-9 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9976298 -0.00136857 -0.06879594 0 0.06880955 0.01984211 0.9974325 0 0 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9978247 -0.00131118 -0.06591107 0 0.06592412 0.019846 0.9976273 0 2.32831e-9 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9980744 -0.001233704 -0.06201645 0 0.06202872 0.01985096 0.9978769 0 9.31323e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9983624 -0.00113779 -0.057195 0 0.05720631 0.01985669 0.998165 0 9.31323e-10 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9986709 -0.001025089 -0.05152971 0 0.05153991 0.01986281 0.9984733 0 4.65661e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9989819 -8.97256e-4 -0.04510372 0 0.04511264 0.01986901 0.9987842 0 4.65661e-10 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9992774 -7.55949e-4 -0.03800046 0 0.03800798 0.01987486 0.9990798 0 9.31323e-10 -0.9998022 0.01988923 -0.194438 0 0 0 1 0.9995406 -6.02836e-4 -0.03030368 0 0.03030967 0.01988014 0.9993429 0 9.31323e-10 -0.9998022 0.01988928 -0.194438 0 0 0 1 0.9997557 -4.3959e-4 -0.02209756 0 0.02210193 0.01988438 0.9995579 0 4.65661e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9999093 -2.67894e-4 -0.01346664 0 0.0134693 0.01988745 0.9997115 0 5.82077e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9999899 -8.94357e-5 -0.004495829 0 0.004496719 0.01988903 0.9997921 0 6.98492e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9999888 9.4088e-5 0.004729615 0 -0.004730551 0.01988902 0.999791 0 7.567e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9999002 2.80976e-4 0.01412421 0 -0.014127 0.01988728 0.9997025 0 6.98492e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9997213 4.69527e-4 0.02360236 0 -0.02360703 0.0198837 0.9995236 0 9.31323e-10 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9994525 6.58036e-4 0.03307839 0 -0.03308493 0.01987838 0.9992549 0 9.31323e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9990975 8.44799e-4 0.0424667 0 -0.04247511 0.01987129 0.9988999 0 4.65661e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9986631 0.001028119 0.05168191 0 -0.05169213 0.01986264 0.9984655 0 2.32831e-9 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9981591 0.001206302 0.06063889 0 -0.06065089 0.01985265 0.9979616 0 4.65661e-10 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9975982 0.001377662 0.06925299 0 -0.06926668 0.01984148 0.9974008 0 -9.31323e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9969959 0.001540526 0.07743976 0 -0.07745508 0.01982953 0.9967986 0 1.86265e-9 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9963697 0.001693219 0.08511558 0 -0.08513242 0.01981702 0.9961725 0 -9.31323e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9957391 0.001834092 0.09219695 0 -0.09221519 0.01980451 0.9955422 0 9.31323e-10 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9951251 0.001961492 0.09860113 0 -0.09862063 0.01979231 0.9949282 0 1.86265e-9 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9945495 0.002073777 0.1042455 0 -0.1042662 0.01978086 0.9943527 0 9.31323e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9940341 0.002169312 0.109048 0 -0.1090696 0.01977059 0.9938375 0 1.86265e-9 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9936008 0.002246468 0.1129265 0 -0.1129489 0.01976195 0.9934043 0 0 -0.9998022 0.01988923 -0.194438 0 0 0 1 0.99327 0.002303609 0.1157989 0 -0.1158219 0.01975539 0.9930735 0 0 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9930603 0.002339103 0.1175831 0 -0.1176064 0.01975122 0.9928639 0 1.86265e-9 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9929875 0.002351301 0.1181963 0 -0.1182197 0.01974978 0.9927911 0 9.31323e-10 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9930603 0.002339103 0.1175831 0 -0.1176064 0.01975122 0.9928639 0 0 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.99327 0.002303611 0.115799 0 -0.1158219 0.01975539 0.9930735 0 9.31323e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9936008 0.002246468 0.1129265 0 -0.1129489 0.01976195 0.9934043 0 9.31323e-10 -0.9998022 0.01988923 -0.194438 0 0 0 1 0.9940341 0.002169313 0.109048 0 -0.1090696 0.01977059 0.9938375 0 1.86265e-9 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9945495 0.002073776 0.1042455 0 -0.1042662 0.01978086 0.9943527 0 9.31323e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9951251 0.001961491 0.09860111 0 -0.09862062 0.0197923 0.9949282 0 9.31323e-10 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9957391 0.001834093 0.09219695 0 -0.09221519 0.01980452 0.9955422 0 9.31323e-10 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9963697 0.001693221 0.08511557 0 -0.08513241 0.01981703 0.9961725 0 0 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9969959 0.001540524 0.07743978 0 -0.0774551 0.01982952 0.9967986 0 0 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9975982 0.001377663 0.06925295 0 -0.06926665 0.01984149 0.9974008 0 9.31323e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9981591 0.001206302 0.0606389 0 -0.0606509 0.01985262 0.9979616 0 1.39698e-9 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9986631 0.001028119 0.05168191 0 -0.05169213 0.01986265 0.9984655 0 9.31323e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9990975 8.44798e-4 0.0424667 0 -0.0424751 0.0198713 0.9988999 0 4.65661e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9994525 6.58035e-4 0.03307838 0 -0.03308493 0.01987838 0.9992549 0 6.98492e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9997213 4.69527e-4 0.02360236 0 -0.02360703 0.01988371 0.9995236 0 6.98492e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9999002 2.80976e-4 0.0141242 0 -0.014127 0.01988728 0.9997025 0 4.65661e-10 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9999888 9.40877e-5 0.004729605 0 -0.004730541 0.01988903 0.999791 0 6.98492e-10 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9999899 -8.94363e-5 -0.004495837 0 0.004496726 0.01988904 0.9997921 0 2.32831e-10 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9999093 -2.67893e-4 -0.01346664 0 0.01346931 0.01988745 0.9997115 0 1.16415e-9 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9997557 -4.39589e-4 -0.02209759 0 0.02210196 0.01988439 0.9995579 0 2.79397e-9 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9995406 -6.02837e-4 -0.03030367 0 0.03030967 0.01988013 0.9993429 0 -2.32831e-10 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9992774 -7.55949e-4 -0.03800048 0 0.03800799 0.01987487 0.9990798 0 1.39698e-9 -0.9998022 0.01988924 -0.194438 0 0 0 1 0.9989819 -8.97254e-4 -0.04510372 0 0.04511264 0.01986901 0.9987842 0 2.32831e-9 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9986709 -0.00102509 -0.05152974 0 0.05153993 0.01986282 0.9984733 0 4.65661e-10 -0.9998022 0.01988925 -0.194438 0 0 0 1 0.9983624 -0.00113779 -0.05719502 0 0.05720633 0.01985669 0.998165 0 9.31323e-10 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9980744 -0.001233703 -0.06201646 0 0.06202873 0.01985098 0.9978769 0 2.32831e-9 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9978246 -0.001311179 -0.06591108 0 0.06592412 0.019846 0.9976273 0 3.25963e-9 -0.9998022 0.01988927 -0.194438 0 0 0 1 0.9976298 -0.001368568 -0.06879591 0 0.06880952 0.01984212 0.9974325 0 1.86265e-9 -0.9998022 0.01988926 -0.194438 0 0 0 1 0.9975046 -0.00140422 -0.07058802 0 0.07060198 0.01983961 0.9973072 0 1.86265e-9 -0.9998022 0.01988924 -0.194438 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - -0.994738 0.1023279 -0.005040132 0.1841546 -0.002406535 0.02584402 0.9996631 0.02375563 0.1024238 0.9944149 -0.0254618 -0.3068413 0 0 0 1 -0.9947398 0.1023122 -0.005031362 0.1841546 -0.002286472 0.02692832 0.9996347 0.02375564 0.1024104 0.9943879 -0.02655273 -0.3068413 0 0 0 1 -0.9947444 0.1022676 -0.005005769 0.1841547 -0.001937124 0.03008302 0.9995455 0.02375563 0.1023718 0.9943019 -0.02972682 -0.3068413 0 0 0 1 -0.994752 0.1021953 -0.004964218 0.1841547 -0.001375027 0.03516119 0.9993808 0.02375563 0.1023067 0.9941428 -0.03483615 -0.3068413 0 0 0 1 -0.9947625 0.1020979 -0.004907541 0.1841547 -6.16694e-4 0.0420161 0.9991167 0.02375563 0.102214 0.9938869 -0.04173308 -0.3068413 0 0 0 1 -0.9947748 0.1019785 -0.004836466 0.1841547 3.21394e-4 0.05050072 0.998724 0.02375563 0.1020927 0.9935038 -0.05026964 -0.3068413 0 0 0 1 -0.9947895 0.1018386 -0.004751615 0.1841547 0.001422411 0.06046723 0.9981692 0.02375563 0.1019396 0.9929615 -0.06029704 -0.3068413 0 0 0 1 -0.9948062 0.1016808 -0.004653655 0.1841547 0.002669538 0.0717667 0.9974178 0.02375563 0.1017523 0.992225 -0.07166544 -0.3068413 0 0 0 1 -0.9948246 0.1015076 -0.004543237 0.1841547 0.004045799 0.08424889 0.9964365 0.02375563 0.1015287 0.9912611 -0.08422353 -0.3068413 0 0 0 1 -0.9948439 0.1013217 -0.004421121 0.1841547 0.005534077 0.0977619 0.9951945 0.02375563 0.1012671 0.9900386 -0.09781858 -0.3068413 0 0 0 1 -0.9948645 0.1011252 -0.00428809 0.1841547 0.00711709 0.1121526 0.9936656 0.02375564 0.1009657 0.988532 -0.1122963 -0.3068413 0 0 0 1 -0.9948857 0.1009206 -0.004145053 0.1841547 0.008777505 0.1272662 0.9918298 0.02375563 0.1006237 0.9867208 -0.1275012 -0.3068413 0 0 0 1 -0.9949079 0.1007101 -0.003993002 0.1841547 0.01049793 0.1429475 0.9896746 0.02375563 0.1002411 0.984593 -0.1432768 -0.3068413 0 0 0 1 -0.9949302 0.1004962 -0.003833147 0.1841547 0.01226103 0.1590401 0.9871961 0.02375564 0.09981913 0.982144 -0.159466 -0.3068413 0 0 0 1 -0.9949526 0.1002809 -0.00366668 0.1841547 0.01404954 0.1753882 0.9843992 0.02375563 0.09935968 0.9793788 -0.1759118 -0.3068413 0 0 0 1 -0.9949746 0.1000668 -0.00349509 0.1841547 0.01584638 0.1918364 0.981299 0.02375563 0.09886605 0.976312 -0.1924581 -0.3068413 0 0 0 1 -0.9949964 0.09985533 -0.003319897 0.1841547 0.01763462 0.2082308 0.9779208 0.02375564 0.09834203 0.9729691 -0.2089498 -0.3068413 0 0 0 1 -0.9950179 0.09964868 -0.003142759 0.1841547 0.01939772 0.224419 0.9742997 0.02375563 0.09779306 0.9693845 -0.2252339 -0.3068413 0 0 0 1 -0.9950384 0.09944856 -0.002965522 0.1841547 0.02111953 0.2402518 0.9704809 0.02375563 0.09722549 0.965603 -0.2411601 -0.3068413 0 0 0 1 -0.9950579 0.0992572 -0.002790067 0.1841547 0.02278439 0.2555827 0.9665186 0.02375563 0.09664714 0.9616784 -0.2565811 -0.3068413 0 0 0 1 -0.9950765 0.09907566 -0.002618462 0.1841547 0.02437683 0.2702685 0.9624765 0.02375564 0.09606574 0.9576737 -0.271353 -0.3068413 0 0 0 1 -0.9950939 0.09890533 -0.002452716 0.1841547 0.02588219 0.28417 0.9584246 0.02375563 0.09549041 0.9536588 -0.2853357 -0.3068413 0 0 0 1 -0.9951101 0.09874772 -0.00229507 0.1841547 0.02728596 0.2971514 0.9544404 0.02375563 0.09493088 0.9497105 -0.2983927 -0.3068413 0 0 0 1 -0.9951245 0.09860446 -0.002147734 0.1841546 0.02857441 0.3090805 0.9506066 0.02375563 0.09439797 0.9459105 -0.310391 -0.3068413 0 0 0 1 -0.9951375 0.09847637 -0.002012886 0.1841547 0.02973389 0.3198281 0.947009 0.02375563 0.09390187 0.9423442 -0.3212009 -0.3068413 0 0 0 1 -0.9951488 0.09836485 -0.00189282 0.1841546 0.03075125 0.3292676 0.9437358 0.02375563 0.09345376 0.9390993 -0.330695 -0.3068413 0 0 0 1 -0.9951581 0.09827074 -0.001789845 0.1841546 0.03161319 0.3372737 0.9408756 0.02375563 0.09306433 0.9362634 -0.3387473 -0.3068413 0 0 0 1 -0.9951656 0.09819564 -0.001706035 0.1841547 0.03230707 0.3437221 0.9385155 0.02375563 0.09274463 0.9339231 -0.3452329 -0.3068413 0 0 0 1 -0.9951712 0.09814024 -0.001643531 0.1841547 0.03281958 0.3484877 0.9367386 0.02375564 0.0925046 0.9321613 -0.3500259 -0.3068413 0 0 0 1 -0.9951749 0.09810586 -0.001604669 0.1841547 0.03313719 0.3514434 0.9356226 0.02375563 0.09235409 0.9310547 -0.3529985 -0.3068413 0 0 0 1 -0.9951759 0.09809409 -0.001591251 0.1841546 0.0332463 0.3524583 0.9352368 0.02375563 0.09230212 0.9306721 -0.3540193 -0.3068413 0 0 0 1 -0.9951749 0.09810585 -0.001604647 0.1841547 0.03313722 0.3514434 0.9356226 0.02375563 0.09235407 0.9310547 -0.3529985 -0.3068413 0 0 0 1 -0.9951714 0.09814008 -0.001643539 0.1841547 0.03281953 0.3484878 0.9367386 0.02375564 0.09250443 0.9321614 -0.350026 -0.3068413 0 0 0 1 -0.9951658 0.09819549 -0.001705975 0.1841547 0.03230708 0.3437222 0.9385155 0.02375563 0.09274446 0.9339232 -0.3452329 -0.3068413 0 0 0 1 -0.9951583 0.09827074 -0.001789771 0.1841546 0.0316133 0.3372737 0.9408756 0.02375563 0.09306428 0.9362635 -0.3387473 -0.3068413 0 0 0 1 -0.9951488 0.09836484 -0.001892835 0.1841546 0.03075123 0.3292675 0.9437359 0.02375563 0.09345378 0.9390992 -0.3306949 -0.3068413 0 0 0 1 -0.9951375 0.09847637 -0.002012894 0.1841547 0.02973389 0.3198281 0.947009 0.02375564 0.09390189 0.9423442 -0.3212009 -0.3068413 0 0 0 1 -0.9951245 0.09860446 -0.002147742 0.1841547 0.0285744 0.3090805 0.9506066 0.02375563 0.09439798 0.9459105 -0.3103911 -0.3068413 0 0 0 1 -0.9951101 0.09874772 -0.00229507 0.1841547 0.02728597 0.2971514 0.9544404 0.02375563 0.09493088 0.9497105 -0.2983927 -0.3068413 0 0 0 1 -0.995094 0.09890517 -0.002452723 0.1841547 0.02588213 0.28417 0.9584245 0.02375563 0.09549023 0.9536589 -0.2853357 -0.3068413 0 0 0 1 -0.9950765 0.09907565 -0.002618469 0.1841547 0.02437683 0.2702685 0.9624765 0.02375564 0.09606574 0.9576737 -0.271353 -0.3068413 0 0 0 1 -0.9950579 0.0992572 -0.002790086 0.1841547 0.02278436 0.2555827 0.9665186 0.02375563 0.09664714 0.9616784 -0.2565811 -0.3068413 0 0 0 1 -0.9950382 0.09944887 -0.002965536 0.1841547 0.02111958 0.2402518 0.9704809 0.02375564 0.09722582 0.9656029 -0.2411601 -0.3068413 0 0 0 1 -0.9950179 0.09964884 -0.003142759 0.1841547 0.01939776 0.2244191 0.9742997 0.02375563 0.09779321 0.9693845 -0.2252339 -0.3068413 0 0 0 1 -0.9949966 0.09985516 -0.003319893 0.1841547 0.0176346 0.2082308 0.9779208 0.02375564 0.09834187 0.9729692 -0.2089498 -0.3068413 0 0 0 1 -0.9949747 0.1000665 -0.003495079 0.1841547 0.01584633 0.1918364 0.981299 0.02375563 0.09886573 0.9763122 -0.1924581 -0.3068413 0 0 0 1 -0.9949524 0.1002811 -0.003666691 0.1841547 0.01404957 0.1753882 0.9843992 0.02375563 0.09935984 0.9793787 -0.1759118 -0.3068413 0 0 0 1 -0.9949301 0.1004964 -0.003833137 0.1841547 0.01226107 0.1590401 0.9871961 0.02375563 0.0998193 0.9821439 -0.159466 -0.3068413 0 0 0 1 -0.9949077 0.1007102 -0.003993013 0.1841547 0.01049795 0.1429475 0.9896746 0.02375563 0.1002412 0.9845929 -0.1432768 -0.3068413 0 0 0 1 -0.9948857 0.1009206 -0.004145071 0.1841547 0.008777495 0.1272662 0.9918298 0.02375563 0.1006237 0.9867208 -0.1275012 -0.3068413 0 0 0 1 -0.9948645 0.1011252 -0.004288108 0.1841547 0.007117081 0.1121526 0.9936656 0.02375563 0.1009657 0.988532 -0.1122963 -0.3068413 0 0 0 1 -0.994844 0.1013216 -0.004421132 0.1841547 0.005534053 0.09776193 0.9951945 0.02375564 0.101267 0.9900387 -0.0978186 -0.3068413 0 0 0 1 -0.9948246 0.1015076 -0.004543234 0.1841547 0.004045807 0.08424888 0.9964365 0.02375564 0.1015287 0.9912611 -0.08422352 -0.3068413 0 0 0 1 -0.9948063 0.1016808 -0.004653674 0.1841547 0.002669524 0.07176676 0.9974179 0.02375563 0.1017523 0.992225 -0.07166548 -0.3068413 0 0 0 1 -0.9947895 0.1018386 -0.004751619 0.1841547 0.001422405 0.06046721 0.9981692 0.02375563 0.1019396 0.9929615 -0.06029703 -0.3068413 0 0 0 1 -0.9947747 0.1019785 -0.004836489 0.1841547 3.21375e-4 0.05050069 0.998724 0.02375563 0.1020927 0.9935037 -0.05026962 -0.3068413 0 0 0 1 -0.9947624 0.102098 -0.004907504 0.1841547 -6.16626e-4 0.0420161 0.9991167 0.02375563 0.1022142 0.9938868 -0.04173306 -0.3068413 0 0 0 1 -0.9947521 0.1021952 -0.004964203 0.1841547 -0.001375024 0.03516119 0.9993808 0.02375563 0.1023066 0.9941428 -0.03483615 -0.3068413 0 0 0 1 -0.9947443 0.1022676 -0.005005792 0.1841547 -0.001937139 0.03008303 0.9995455 0.02375563 0.1023718 0.9943018 -0.02972685 -0.3068413 0 0 0 1 -0.9947398 0.1023124 -0.005031295 0.1841546 -0.002286402 0.02692827 0.9996347 0.02375564 0.1024106 0.9943879 -0.02655271 -0.3068413 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - -0.9972966 -0.07346461 0.001561246 -0.196505 -0.02513009 0.3609575 0.9322436 0.02470914 -0.06905058 0.929684 -0.3618279 -0.3007402 0 0 0 1 -0.9972927 -0.07352819 8.35106e-4 -0.196505 -0.02574329 0.3597598 0.9326897 0.02470914 -0.06887954 0.9301432 -0.3606787 -0.3007402 0 0 0 1 -0.9972792 -0.07370809 -0.00127843 -0.196505 -0.02752899 0.356271 0.9339771 0.02470914 -0.06838627 0.9314709 -0.3573307 -0.3007402 0 0 0 1 -0.9972486 -0.07398129 -0.00468319 -0.196505 -0.03040818 0.3506422 0.9360157 0.02470914 -0.06760562 0.9335828 -0.3519271 -0.3007402 0 0 0 1 -0.9971914 -0.07431778 -0.009284001 -0.196505 -0.03430372 0.3430192 0.9387018 0.02470914 -0.06657775 0.9363839 -0.3446052 -0.3007402 0 0 0 1 -0.9970948 -0.07468273 -0.0149861 -0.196505 -0.0391395 0.3335451 0.9419213 0.02470914 -0.06534681 0.9397713 -0.3354991 -0.3007402 0 0 0 1 -0.9969449 -0.07503799 -0.02169404 -0.196505 -0.0448393 0.322362 0.9455539 0.02470914 -0.06395924 0.9436378 -0.3247418 -0.3007402 0 0 0 1 -0.9967265 -0.07534564 -0.02931118 -0.196505 -0.05132636 0.3096138 0.9494761 0.02470914 -0.06246385 0.9478723 -0.3124675 -0.3007402 0 0 0 1 -0.9964265 -0.0755663 -0.03773944 -0.196505 -0.058522 0.2954472 0.9535649 0.02470914 -0.06090743 0.9523659 -0.2988137 -0.3007402 0 0 0 1 -0.9960307 -0.07566409 -0.0468784 -0.196505 -0.0663458 0.2800135 0.9577007 0.02470914 -0.05933706 0.9570096 -0.2839221 -0.3007402 0 0 0 1 -0.9955286 -0.07560558 -0.05662572 -0.196505 -0.07471478 0.2634694 0.9617701 0.02470914 -0.05779614 0.9617005 -0.2679402 -0.3007402 0 0 0 1 -0.9949113 -0.07536274 -0.06687686 -0.196505 -0.08354357 0.2459775 0.9656684 0.02470914 -0.05632533 0.9663414 -0.2510218 -0.3007402 0 0 0 1 -0.9941719 -0.07491323 -0.07752538 -0.196505 -0.09274434 0.2277066 0.9693029 0.02470914 -0.0549607 0.9708437 -0.2333272 -0.3007402 0 0 0 1 -0.993309 -0.07424116 -0.08846353 -0.196505 -0.102227 0.2088313 0.972594 0.02470914 -0.05373265 0.9751297 -0.2150234 -0.3007402 0 0 0 1 -0.992323 -0.07333828 -0.09958255 -0.196505 -0.1118995 0.1895313 0.9754775 0.02470914 -0.05266592 0.9791319 -0.1962828 -0.3007402 0 0 0 1 -0.9912193 -0.07220417 -0.1107737 -0.196505 -0.1216687 0.1699911 0.9779058 0.02470914 -0.05177841 0.9827967 -0.1772835 -0.3007402 0 0 0 1 -0.9900072 -0.07084639 -0.1219288 -0.196505 -0.1314404 0.1503979 0.979849 0.02470914 -0.05108105 0.9860839 -0.1582071 -0.3007402 0 0 0 1 -0.9886999 -0.06928141 -0.1329407 -0.196505 -0.1411205 0.1309413 0.9812948 0.02470914 -0.05057816 0.9889665 -0.1392387 -0.3007402 0 0 0 1 -0.9873137 -0.06753387 -0.1437047 -0.196505 -0.1506156 0.1118111 0.9822491 0.02470914 -0.05026739 0.991432 -0.1205643 -0.3007402 0 0 0 1 -0.9858699 -0.06563479 -0.1541185 -0.196505 -0.159833 0.0931968 0.9827347 0.02470914 -0.05013835 0.9934819 -0.1023706 -0.3007402 0 0 0 1 -0.9843926 -0.0636233 -0.1640833 -0.196505 -0.1686823 0.0752859 0.9827912 0.02470914 -0.05017537 0.9951304 -0.08484304 -0.3007402 0 0 0 1 -0.9829084 -0.06154423 -0.1735035 -0.196505 -0.1770745 0.05826319 0.9824715 0.02470914 -0.05035668 0.9964024 -0.06816533 -0.3007402 0 0 0 1 -0.9814466 -0.05944823 -0.1822874 -0.196505 -0.1849236 0.04230972 0.9818417 0.02470914 -0.0506563 0.9973344 -0.05251813 -0.3007402 0 0 0 1 -0.9800382 -0.05738885 -0.1903466 -0.196505 -0.1921456 0.02760303 0.9809781 0.02470913 -0.05104316 0.9979703 -0.03807908 -0.3007402 0 0 0 1 -0.9787154 -0.0554239 -0.1975959 -0.196505 -0.1986587 0.01431649 0.9799641 0.02470914 -0.05148466 0.9983602 -0.02502223 -0.3007402 0 0 0 1 -0.9775119 -0.05361152 -0.203953 -0.196505 -0.2043837 0.002619825 0.9788874 0.02470914 -0.05194541 0.9985584 -0.01351826 -0.3007402 0 0 0 1 -0.9764594 -0.05201036 -0.2093367 -0.196505 -0.209242 -0.007320015 0.9778365 0.02470914 -0.05239006 0.9986197 -0.003735118 -0.3007402 0 0 0 1 -0.9755911 -0.05067791 -0.2136675 -0.196505 -0.2131569 -0.01533832 0.9768976 0.02470913 -0.05278451 0.9985973 0.004161529 -0.3007402 0 0 0 1 -0.9749375 -0.04966868 -0.2168646 -0.196505 -0.2160508 -0.02127093 0.9761504 0.02470914 -0.05309709 0.9985393 0.01000679 -0.3007402 0 0 0 1 -0.9745268 -0.04903205 -0.2188459 -0.196505 -0.2178459 -0.02495317 0.9756642 0.02470914 -0.05329979 0.9984854 0.01363603 -0.3007402 0 0 0 1 -0.9743847 -0.04881178 -0.219526 -0.196505 -0.2184623 -0.02621815 0.975493 0.02470914 -0.05337122 0.9984637 0.01488301 -0.3007402 0 0 0 1 -0.9745268 -0.04903223 -0.2188459 -0.196505 -0.2178459 -0.02495315 0.9756641 0.02470914 -0.05329996 0.9984854 0.01363599 -0.3007402 0 0 0 1 -0.9749375 -0.04966868 -0.2168646 -0.196505 -0.2160508 -0.02127091 0.9761505 0.02470914 -0.05309709 0.9985393 0.01000679 -0.3007402 0 0 0 1 -0.9755909 -0.05067824 -0.2136674 -0.196505 -0.2131568 -0.01533831 0.9768975 0.02470913 -0.05278483 0.9985971 0.004161462 -0.3007402 0 0 0 1 -0.9764594 -0.05201036 -0.2093367 -0.196505 -0.209242 -0.007319987 0.9778365 0.02470914 -0.05239006 0.9986196 -0.003735147 -0.3007402 0 0 0 1 -0.9775118 -0.05361154 -0.2039529 -0.196505 -0.2043836 0.002619898 0.9788875 0.02470914 -0.05194543 0.9985583 -0.01351833 -0.3007402 0 0 0 1 -0.9787155 -0.0554239 -0.1975959 -0.196505 -0.1986587 0.0143165 0.9799641 0.02470914 -0.05148465 0.9983603 -0.02502227 -0.3007402 0 0 0 1 -0.9800382 -0.05738902 -0.1903465 -0.196505 -0.1921455 0.02760307 0.9809782 0.02470914 -0.05104333 0.9979702 -0.03807914 -0.3007402 0 0 0 1 -0.9814466 -0.05944824 -0.1822874 -0.196505 -0.1849236 0.04230976 0.9818417 0.02470914 -0.05065631 0.9973344 -0.05251817 -0.3007402 0 0 0 1 -0.9829084 -0.06154422 -0.1735035 -0.196505 -0.1770745 0.05826316 0.9824715 0.02470914 -0.05035668 0.9964024 -0.06816529 -0.3007402 0 0 0 1 -0.9843926 -0.06362334 -0.1640833 -0.196505 -0.1686823 0.07528593 0.9827911 0.02470914 -0.05017538 0.9951302 -0.08484305 -0.3007402 0 0 0 1 -0.9858699 -0.06563481 -0.1541185 -0.196505 -0.159833 0.09319681 0.9827349 0.02470914 -0.05013835 0.9934818 -0.1023706 -0.3007402 0 0 0 1 -0.9873137 -0.06753386 -0.1437047 -0.196505 -0.1506156 0.1118111 0.9822491 0.02470914 -0.05026739 0.991432 -0.1205643 -0.3007402 0 0 0 1 -0.9886997 -0.06928174 -0.1329406 -0.196505 -0.1411205 0.1309413 0.9812948 0.02470914 -0.05057849 0.9889663 -0.1392387 -0.3007402 0 0 0 1 -0.9900073 -0.07084639 -0.1219287 -0.196505 -0.1314404 0.150398 0.979849 0.02470914 -0.05108105 0.9860839 -0.1582072 -0.3007402 0 0 0 1 -0.9912193 -0.07220399 -0.1107737 -0.196505 -0.1216686 0.1699911 0.9779058 0.02470914 -0.05177825 0.9827967 -0.1772834 -0.3007402 0 0 0 1 -0.9923229 -0.07333842 -0.09958251 -0.196505 -0.1118995 0.1895314 0.9754775 0.02470914 -0.05266609 0.9791319 -0.1962829 -0.3007402 0 0 0 1 -0.9933091 -0.07424115 -0.08846352 -0.196505 -0.102227 0.2088313 0.9725941 0.02470914 -0.05373264 0.9751297 -0.2150234 -0.3007402 0 0 0 1 -0.994172 -0.07491323 -0.07752535 -0.196505 -0.09274432 0.2277066 0.9693029 0.02470914 -0.05496068 0.9708437 -0.2333273 -0.3007402 0 0 0 1 -0.9949111 -0.07536274 -0.06687686 -0.196505 -0.08354358 0.2459775 0.9656684 0.02470914 -0.05632534 0.9663413 -0.2510218 -0.3007402 0 0 0 1 -0.9955286 -0.07560558 -0.05662568 -0.196505 -0.07471474 0.2634694 0.9617701 0.02470914 -0.05779615 0.9617004 -0.2679402 -0.3007402 0 0 0 1 -0.9960307 -0.07566408 -0.04687842 -0.196505 -0.06634582 0.2800134 0.9577007 0.02470914 -0.05933706 0.9570097 -0.283922 -0.3007402 0 0 0 1 -0.9964265 -0.0755663 -0.03773942 -0.196505 -0.05852199 0.2954472 0.9535649 0.02470914 -0.06090743 0.9523659 -0.2988137 -0.3007402 0 0 0 1 -0.9967267 -0.07534563 -0.02931118 -0.196505 -0.05132637 0.3096138 0.9494761 0.02470914 -0.06246382 0.9478725 -0.3124675 -0.3007402 0 0 0 1 -0.9969448 -0.07503818 -0.02169403 -0.196505 -0.04483935 0.322362 0.9455539 0.02470914 -0.06395938 0.9436377 -0.3247418 -0.3007402 0 0 0 1 -0.9970949 -0.07468256 -0.0149861 -0.196505 -0.03913948 0.3335451 0.9419213 0.02470914 -0.06534665 0.9397714 -0.3354991 -0.3007402 0 0 0 1 -0.9971914 -0.07431778 -0.009284032 -0.196505 -0.03430375 0.3430192 0.9387018 0.02470914 -0.06657775 0.9363839 -0.3446052 -0.3007402 0 0 0 1 -0.9972486 -0.07398129 -0.004683168 -0.196505 -0.03040817 0.3506422 0.9360157 0.02470914 -0.06760563 0.9335828 -0.3519271 -0.3007402 0 0 0 1 -0.9972792 -0.07370809 -0.001278453 -0.196505 -0.02752901 0.3562709 0.9339771 0.02470914 -0.06838628 0.9314709 -0.3573307 -0.3007402 0 0 0 1 -0.9972927 -0.07352835 8.35143e-4 -0.196505 -0.02574332 0.3597598 0.9326897 0.02470914 -0.06887969 0.9301432 -0.3606787 -0.3007402 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -5.68434e-14 -1.50996e-7 0.08954165 -1.47115e-7 0.2252731 -0.9742956 0.02421998 3.40154e-8 0.9742956 0.2252731 0.03911464 0 0 0 1 1 -9.1709e-10 -1.51098e-7 0.08954165 -1.47215e-7 0.2194009 -0.9756348 0.02421998 3.40457e-8 0.9756348 0.2194009 0.03911464 0 0 0 1 1 -3.56721e-9 -1.51361e-7 0.08954165 -1.47505e-7 0.2024163 -0.9792995 0.02421998 3.41312e-8 0.9792995 0.2024163 0.03911464 0 0 0 1 1 -7.80744e-9 -1.51685e-7 0.08954165 -1.47972e-7 0.1751854 -0.9845355 0.02421998 3.42597e-8 0.9845355 0.1751854 0.03911464 0 0 0 1 1 -1.34983e-8 -1.51935e-7 0.08954165 -1.48601e-7 0.138526 -0.9903588 0.02421998 3.44152e-8 0.9903588 0.138526 0.03911464 0 0 0 1 1 -2.04937e-8 -1.51954e-7 0.08954165 -1.49379e-7 0.09328314 -0.9956396 0.02421998 3.4579e-8 0.9956396 0.09328314 0.03911464 0 0 0 1 1 -2.86316e-8 -1.51574e-7 0.08954165 -1.50294e-7 0.04039756 -0.9991837 0.02421998 3.47315e-8 0.9991837 0.04039756 0.03911464 0 0 0 1 1 -3.77285e-8 -1.50637e-7 0.08954165 -1.51328e-7 -0.01904369 -0.9998187 0.02421998 3.4853e-8 0.9998187 -0.01904369 0.03911464 0 0 0 1 1 -4.75762e-8 -1.48999e-7 0.08954165 -1.52461e-7 -0.08378153 -0.9964842 0.02421998 3.49255e-8 0.9964842 -0.08378153 0.03911464 0 0 0 1 1 -5.79443e-8 -1.46555e-7 0.08954165 -1.53673e-7 -0.152389 -0.9883206 0.02421998 3.49342e-8 0.9883206 -0.152389 0.03911464 0 0 0 1 1 -6.85873e-8 -1.4324e-7 0.08954165 -1.54939e-7 -0.2233078 -0.974748 0.02421998 3.48687e-8 0.974748 -0.2233078 0.03911464 0 0 0 1 1 -7.92547e-8 -1.39043e-7 0.08954165 -1.56233e-7 -0.2949125 -0.9555243 0.02421998 3.47242e-8 0.9555243 -0.2949125 0.03911464 0 0 0 1 1 -8.97051e-8 -1.3401e-7 0.08954165 -1.57529e-7 -0.3655948 -0.9307741 0.02421998 3.45018e-8 0.9307741 -0.3655948 0.03911464 0 0 0 1 1 -9.97191e-8 -1.28237e-7 0.08954165 -1.58803e-7 -0.4338519 -0.9009842 0.02421998 3.42092e-8 0.9009842 -0.4338519 0.03911464 0 0 0 1 1 -1.09111e-7 -1.2187e-7 0.08954165 -1.60034e-7 -0.4983692 -0.8669649 0.02421998 3.38597e-8 0.8669649 -0.4983692 0.03911464 0 0 0 1 1 -1.17739e-7 -1.15086e-7 0.08954165 -1.61204e-7 -0.5580807 -0.8297867 0.02421998 3.34713e-8 0.8297867 -0.5580807 0.03911464 0 0 0 1 1 -1.25444e-7 -1.08146e-7 0.08954165 -1.62291e-7 -0.6117895 -0.7910206 0.02421998 3.30661e-8 0.7910206 -0.6117895 0.03911464 0 0 0 1 1 -1.31889e-7 -1.01584e-7 0.08954165 -1.63237e-7 -0.6570727 -0.7538272 0.02421998 3.26737e-8 0.7538272 -0.6570727 0.03911464 0 0 0 1 1 -1.36779e-7 -9.60605e-8 0.08954165 -1.63983e-7 -0.6916946 -0.7221903 0.02421998 3.23357e-8 0.7221903 -0.6916946 0.03911464 0 0 0 1 1 -1.39888e-7 -9.22663e-8 0.08954165 -1.64473e-7 -0.7138438 -0.7003049 0.02421998 3.21004e-8 0.7003049 -0.7138438 0.03911464 0 0 0 1 1 -1.40988e-7 -9.08655e-8 0.08954165 -1.64649e-7 -0.7217078 -0.6921978 0.02421998 3.20135e-8 0.6921978 -0.7217078 0.03911464 0 0 0 1 1 -1.4069e-7 -9.12315e-8 0.08954165 -1.64596e-7 -0.7197154 -0.6942692 0.02421998 3.20161e-8 0.6942692 -0.7197154 0.03911464 0 0 0 1 1 -1.39834e-7 -9.22733e-8 0.08954165 -1.64445e-7 -0.7139772 -0.7001689 0.02421998 3.20263e-8 0.7001689 -0.7139772 0.03911464 0 0 0 1 1 -1.38473e-7 -9.38996e-8 0.08954165 -1.6421e-7 -0.7048258 -0.7093803 0.02421998 3.20471e-8 0.7093803 -0.7048258 0.03911464 0 0 0 1 1 -1.36655e-7 -9.6014e-8 0.08954165 -1.63903e-7 -0.6925686 -0.7213521 0.02421998 3.20803e-8 0.7213521 -0.6925686 0.03911464 0 0 0 1 1 -1.34427e-7 -9.85195e-8 0.08954165 -1.63538e-7 -0.6774971 -0.7355254 0.02421998 3.21278e-8 0.7355254 -0.6774971 0.03911464 0 0 0 1 1 -1.31833e-7 -1.01322e-7 0.08954165 -1.63125e-7 -0.6598982 -0.751355 0.02421998 3.21915e-8 0.751355 -0.6598982 0.03911464 0 0 0 1 1 -1.2892e-7 -1.04332e-7 0.08954165 -1.62678e-7 -0.6400582 -0.7683264 0.02421998 3.22741e-8 0.7683264 -0.6400582 0.03911464 0 0 0 1 1 -1.25735e-7 -1.07469e-7 0.08954165 -1.62205e-7 -0.6182666 -0.7859684 0.02421998 3.23789e-8 0.7859684 -0.6182666 0.03911464 0 0 0 1 1 -1.22325e-7 -1.1066e-7 0.08954165 -1.61716e-7 -0.5948161 -0.8038619 0.02421998 3.25103e-8 0.8038619 -0.5948161 0.03911464 0 0 0 1 1 -4.9738e-14 -1.50996e-7 0.08954165 -1.24065e-7 -0.5700014 -0.8216438 0.02421998 -8.60678e-8 0.8216438 -0.5700014 0.03911464 0 0 0 1 1 4.44332e-9 -1.5231e-7 0.08954165 -1.25404e-7 -0.543797 -0.8392168 0.02421998 -8.65544e-8 0.8392168 -0.543797 0.03911464 0 0 0 1 1 9.13216e-9 -1.53534e-7 0.08954165 -1.26801e-7 -0.5160257 -0.8565732 0.02421998 -8.70499e-8 0.8565732 -0.5160257 0.03911464 0 0 0 1 1 1.40453e-8 -1.54645e-7 0.08954165 -1.2825e-7 -0.4867682 -0.8735312 0.02421998 -8.75453e-8 0.8735312 -0.4867682 0.03911464 0 0 0 1 1 1.91592e-8 -1.5562e-7 0.08954165 -1.2975e-7 -0.4561235 -0.8899165 0.02421998 -8.8032e-8 0.8899165 -0.4561235 0.03911464 0 0 0 1 1 2.44479e-8 -1.56438e-7 0.08954165 -1.31294e-7 -0.4242102 -0.9055637 0.02421998 -8.85019e-8 0.9055637 -0.4242102 0.03911464 0 0 0 1 1 2.98832e-8 -1.57083e-7 0.08954165 -1.32877e-7 -0.3911669 -0.9203198 0.02421998 -8.89478e-8 0.9203198 -0.3911669 0.03911464 0 0 0 1 1 3.54347e-8 -1.57539e-7 0.08954165 -1.34494e-7 -0.3571504 -0.9340469 0.02421998 -8.93629e-8 0.9340469 -0.3571504 0.03911464 0 0 0 1 1 4.10701e-8 -1.57796e-7 0.08954165 -1.36136e-7 -0.3223356 -0.9466255 0.02421998 -8.97414e-8 0.9466255 -0.3223356 0.03911464 0 0 0 1 1 4.67555e-8 -1.57847e-7 0.08954165 -1.37796e-7 -0.2869141 -0.9579563 0.02421998 -9.00784e-8 0.9579563 -0.2869141 0.03911464 0 0 0 1 1 5.24564e-8 -1.57689e-7 0.08954165 -1.39466e-7 -0.2510906 -0.9679636 0.02421998 -9.037e-8 0.9679636 -0.2510906 0.03911464 0 0 0 1 1 5.81372e-8 -1.57322e-7 0.08954165 -1.41136e-7 -0.2150814 -0.9765961 0.02421998 -9.06136e-8 0.9765961 -0.2150814 0.03911464 0 0 0 1 1 6.37626e-8 -1.56753e-7 0.08954165 -1.42797e-7 -0.179111 -0.9838288 0.02421998 -9.08076e-8 0.9838288 -0.179111 0.03911464 0 0 0 1 1 6.92975e-8 -1.55991e-7 0.08954165 -1.4444e-7 -0.1434086 -0.9896635 0.02421998 -9.09516e-8 0.9896635 -0.1434086 0.03911464 0 0 0 1 1 7.47077e-8 -1.5505e-7 0.08954165 -1.46055e-7 -0.1082051 -0.9941286 0.02421998 -9.10462e-8 0.9941286 -0.1082051 0.03911464 0 0 0 1 1 7.99606e-8 -1.53948e-7 0.08954165 -1.47633e-7 -0.07372994 -0.9972782 0.02421998 -9.10935e-8 0.9972782 -0.07372994 0.03911464 0 0 0 1 1 8.50252e-8 -1.52706e-7 0.08954165 -1.49164e-7 -0.04020775 -0.9991913 0.02421998 -9.10964e-8 0.9991913 -0.04020775 0.03911464 0 0 0 1 1 8.98725e-8 -1.51349e-7 0.08954165 -1.50638e-7 -0.00785643 -0.9999691 0.02421998 -9.10588e-8 0.9999691 -0.00785643 0.03911464 0 0 0 1 1 9.44759e-8 -1.49904e-7 0.08954165 -1.52048e-7 0.02311564 -0.9997328 0.02421998 -9.09855e-8 0.9997328 0.02311564 0.03911464 0 0 0 1 1 9.88109e-8 -1.484e-7 0.08954165 -1.53384e-7 0.05251035 -0.9986204 0.02421998 -9.08821e-8 0.9986204 0.05251035 0.03911464 0 0 0 1 1 1.02856e-7 -1.46868e-7 0.08954165 -1.54638e-7 0.08014154 -0.9967835 0.02421998 -9.07546e-8 0.9967835 0.08014154 0.03911464 0 0 0 1 1 1.0659e-7 -1.45339e-7 0.08954165 -1.55804e-7 0.1058342 -0.9943838 0.02421998 -9.06096e-8 0.9943838 0.1058342 0.03911464 0 0 0 1 1 1.09997e-7 -1.43848e-7 0.08954165 -1.56874e-7 0.1294252 -0.9915892 0.02421998 -9.04539e-8 0.9915892 0.1294252 0.03911464 0 0 0 1 1 1.13059e-7 -1.42424e-7 0.08954165 -1.57841e-7 0.1507608 -0.9885703 0.02421998 -9.02945e-8 0.9885703 0.1507608 0.03911464 0 0 0 1 1 1.15762e-7 -1.41102e-7 0.08954165 -1.587e-7 0.1696964 -0.9854964 0.02421998 -9.01382e-8 0.9854964 0.1696964 0.03911464 0 0 0 1 1 1.18091e-7 -1.39911e-7 0.08954165 -1.59443e-7 0.1860936 -0.982532 0.02421998 -8.99917e-8 0.982532 0.1860936 0.03911464 0 0 0 1 1 1.20033e-7 -1.38881e-7 0.08954165 -1.60065e-7 0.1998178 -0.9798331 0.02421998 -8.98611e-8 0.9798331 0.1998178 0.03911464 0 0 0 1 1 1.21573e-7 -1.3804e-7 0.08954165 -1.6056e-7 0.2107358 -0.9775431 0.02421998 -8.97523e-8 0.9775431 0.2107358 0.03911464 0 0 0 1 1 1.22695e-7 -1.37414e-7 0.08954165 -1.60922e-7 0.2187122 -0.9757894 0.02421998 -8.96703e-8 0.9757894 0.2187122 0.03911464 0 0 0 1 1 1.23383e-7 -1.37024e-7 0.08954165 -1.61144e-7 0.2236073 -0.9746793 0.02421998 -8.9619e-8 0.9746793 0.2236073 0.03911464 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -5.82433e-8 3.14212e-7 -7.45058e-9 -3.12362e-7 -0.3857283 0.9226125 0 6.74645e-8 -0.9226125 -0.3857283 -0.3756471 0 0 0 1 1 -6.26876e-8 3.12885e-7 -7.45058e-9 -3.11879e-7 -0.3994478 0.9167559 0 6.7512e-8 -0.9167559 -0.3994478 -0.3756471 0 0 0 1 1 -7.51957e-8 3.08756e-7 -7.45058e-9 -3.10506e-7 -0.4379178 0.8990152 7.45058e-9 6.76076e-8 -0.8990152 -0.4379178 -0.3756471 0 0 0 1 1 -9.44608e-8 3.0121e-7 0 -3.08343e-7 -0.4967385 0.8679003 0 6.76401e-8 -0.8679003 -0.4967385 -0.3756471 0 0 0 1 1 -1.18959e-7 2.89365e-7 -7.45058e-9 -3.05503e-7 -0.570719 0.8211454 0 6.74637e-8 -0.8211454 -0.570719 -0.3756471 0 0 0 1 1 -1.46835e-7 2.72403e-7 -7.45058e-9 -3.02134e-7 -0.6536345 0.7568104 3.72529e-9 6.69259e-8 -0.7568104 -0.6536345 -0.375647 0 0 0 1 1 -1.75914e-7 2.49916e-7 0 -2.9843e-7 -0.7383844 0.6743801 -1.86265e-9 6.5901e-8 -0.6743801 -0.7383844 -0.3756471 0 0 0 1 1 -2.03887e-7 2.22199e-7 0 -2.94626e-7 -0.8177024 0.5756412 -9.31323e-10 6.43263e-8 -0.5756412 -0.8177024 -0.375647 0 0 0 1 1 -2.28662e-7 1.90393e-7 7.45058e-9 -2.90969e-7 -0.885311 0.4649994 0 6.22294e-8 -0.4649994 -0.885311 -0.3756471 0 0 0 1 1 -2.48741e-7 1.56384e-7 0 -2.8768e-7 -0.9371141 0.349023 -3.72529e-9 5.97333e-8 -0.349023 -0.9371141 -0.375647 0 0 0 1 1 -2.63486e-7 1.22485e-7 0 -2.84911e-7 -0.971914 0.2353361 7.45058e-9 5.70367e-8 -0.2353361 -0.971914 -0.3756471 0 0 0 1 1 -2.73141e-7 9.10383e-8 0 -2.82732e-7 -0.9913377 0.1313377 -7.45058e-9 5.4376e-8 -0.1313377 -0.9913377 -0.375647 0 0 0 1 1 -2.78622e-7 6.41035e-8 -1.49012e-8 -2.81135e-7 -0.9990633 0.04327336 0 5.19865e-8 -0.04327336 -0.9990633 -0.3756471 0 0 0 1 1 -2.81188e-7 4.33293e-8 -7.45058e-9 -2.80065e-7 -0.9997109 -0.02404481 0 5.00779e-8 0.02404481 -0.9997109 -0.3756471 0 0 0 1 1 -2.82091e-7 3.00198e-8 -7.45058e-9 -2.7945e-7 -0.9977595 -0.0669046 0 4.88257e-8 0.0669046 -0.9977595 -0.375647 0 0 0 1 1 -2.82273e-7 2.53234e-8 -7.45058e-9 -2.79247e-7 -0.9966342 -0.08197841 -1.49012e-8 4.83784e-8 0.08197841 -0.9966342 -0.375647 0 0 0 1 1 -2.82205e-7 2.80832e-8 0 -2.79401e-7 -0.997331 -0.07301685 1.49012e-8 4.8614e-8 0.07301685 -0.997331 -0.3756471 0 0 0 1 1 -2.81879e-7 3.58935e-8 -7.45058e-9 -2.7985e-7 -0.9988658 -0.0476135 -1.49012e-8 4.9274e-8 0.0476135 -0.9988658 -0.375647 0 0 0 1 1 -2.80972e-7 4.80509e-8 0 -2.80581e-7 -0.9999685 -0.007944405 0 5.02815e-8 0.007944405 -0.9999685 -0.3756471 0 0 0 1 1 -2.79066e-7 6.38198e-8 7.45058e-9 -2.81591e-7 -0.9990427 0.0437434 0 5.15514e-8 -0.0437434 -0.9990427 -0.3756471 0 0 0 1 1 -2.75742e-7 8.24005e-8 7.45058e-9 -2.8287e-7 -0.9944726 0.1049954 -2.98023e-8 5.29934e-8 -0.1049954 -0.9944726 -0.375647 0 0 0 1 1 -2.70671e-7 1.0292e-7 0 -2.844e-7 -0.984906 0.1730909 -2.98023e-8 5.45158e-8 -0.1730909 -0.984906 -0.3756471 0 0 0 1 1 -2.63686e-7 1.24451e-7 0 -2.86144e-7 -0.9695026 0.2450812 0 5.60314e-8 -0.2450812 -0.9695026 -0.375647 0 0 0 1 1 -2.54835e-7 1.46059e-7 7.45058e-9 -2.88049e-7 -0.948117 0.3179216 -1.49012e-8 5.74637e-8 -0.3179216 -0.948117 -0.375647 0 0 0 1 1 -2.44402e-7 1.66864e-7 0 -2.90042e-7 -0.9213779 0.388668 -2.98023e-8 5.87536e-8 -0.388668 -0.9213779 -0.375647 0 0 0 1 1 -2.32886e-7 1.86102e-7 0 -2.92038e-7 -0.8906543 0.4546813 -2.98023e-8 5.98636e-8 -0.4546813 -0.8906543 -0.375647 0 0 0 1 1 -2.20956e-7 2.03169e-7 0 -2.93947e-7 -0.8579203 0.5137829 0 6.07792e-8 -0.5137829 -0.8579203 -0.375647 0 0 0 1 1 -2.0939e-7 2.17634e-7 0 -2.95678e-7 -0.8255563 0.5643197 -1.49012e-8 6.15065e-8 -0.5643197 -0.8255563 -0.375647 0 0 0 1 1 -1.99009e-7 2.29221e-7 0 -2.97144e-7 -0.7961363 0.6051172 -1.49012e-8 6.20671e-8 -0.6051172 -0.7961363 -0.3756471 0 0 0 1 1 -1.90628e-7 2.37753e-7 0 -2.98262e-7 -0.7722414 0.6353294 -1.49012e-8 6.24909e-8 -0.6353294 -0.7722414 -0.3756471 0 0 0 1 1 -1.65126e-7 2.51676e-7 0 -2.89535e-7 -0.7563159 0.6542065 0 8.23201e-8 -0.6542065 -0.7563159 -0.3756471 0 0 0 1 1 -1.61543e-7 2.54706e-7 -7.45058e-9 -2.90073e-7 -0.7464681 0.6654212 0 8.26361e-8 -0.6654212 -0.7464681 -0.3756471 0 0 0 1 1 -1.58877e-7 2.56903e-7 -7.45058e-9 -2.90473e-7 -0.7391119 0.6735829 0 8.28632e-8 -0.6735829 -0.7391119 -0.3756471 0 0 0 1 1 -1.57007e-7 2.58414e-7 7.45058e-9 -2.90752e-7 -0.7339389 0.6792155 0 8.30183e-8 -0.6792155 -0.7339389 -0.3756471 0 0 0 1 1 -1.55801e-7 2.59376e-7 0 -2.90932e-7 -0.7305951 0.682811 0 8.31163e-8 -0.682811 -0.7305951 -0.375647 0 0 0 1 1 -1.55117e-7 2.59918e-7 0 -2.91035e-7 -0.7286952 0.6848385 -1.49012e-8 8.3171e-8 -0.6848385 -0.7286952 -0.3756471 0 0 0 1 1 -1.54808e-7 2.60162e-7 7.45058e-9 -2.91081e-7 -0.7278349 0.6857525 0 8.3195e-8 -0.6857525 -0.7278349 -0.3756471 0 0 0 1 1 -1.54725e-7 2.60228e-7 0 -2.91094e-7 -0.7276021 0.6859995 0 8.32009e-8 -0.6859995 -0.7276021 -0.3756471 0 0 0 1 1 -1.54718e-7 2.60234e-7 7.45058e-9 -2.91096e-7 -0.7275792 0.6860234 0 8.32008e-8 -0.6860234 -0.7275792 -0.375647 0 0 0 1 1 -1.54635e-7 2.60299e-7 -7.45058e-9 -2.91109e-7 -0.7273492 0.6862676 -7.45058e-9 8.3207e-8 -0.6862676 -0.7273492 -0.375647 0 0 0 1 1 -1.54327e-7 2.60541e-7 0 -2.91154e-7 -0.726493 0.6871739 -7.45058e-9 8.32315e-8 -0.6871739 -0.726493 -0.3756471 0 0 0 1 1 -1.53641e-7 2.61077e-7 0 -2.91256e-7 -0.7245885 0.6891816 0 8.32865e-8 -0.6891816 -0.7245885 -0.375647 0 0 0 1 1 -1.52424e-7 2.62021e-7 -1.49012e-8 -2.91437e-7 -0.7212045 0.6927223 -7.45058e-9 8.33834e-8 -0.6927223 -0.7212045 -0.3756471 0 0 0 1 1 -1.50515e-7 2.63482e-7 -7.45058e-9 -2.91719e-7 -0.7158908 0.6982123 3.72529e-9 8.35329e-8 -0.6982123 -0.7158908 -0.375647 0 0 0 1 1 -1.47749e-7 2.6556e-7 0 -2.92127e-7 -0.70817 0.706042 -3.72529e-9 8.37445e-8 -0.706042 -0.70817 -0.375647 0 0 0 1 1 -1.43946e-7 2.68338e-7 7.45058e-9 -2.92687e-7 -0.6975226 0.7165629 0 8.40252e-8 -0.7165629 -0.6975226 -0.375647 0 0 0 1 1 -1.38865e-7 2.71916e-7 -7.45058e-9 -2.93429e-7 -0.683246 0.7301883 0 8.43877e-8 -0.7301883 -0.683246 -0.375647 0 0 0 1 1 -1.32502e-7 2.76187e-7 0 -2.94349e-7 -0.6652939 0.7465814 -1.16415e-10 8.48221e-8 -0.7465814 -0.6652939 -0.375647 0 0 0 1 1 -1.25035e-7 2.80919e-7 0 -2.9542e-7 -0.6441137 0.7649297 9.31323e-10 8.53007e-8 -0.7649297 -0.6441137 -0.375647 0 0 0 1 1 -1.16657e-7 2.85887e-7 -7.45058e-9 -2.96613e-7 -0.6202025 0.7844418 0 8.57972e-8 -0.7844418 -0.6202025 -0.3756471 0 0 0 1 1 -1.07581e-7 2.90885e-7 -7.45058e-9 -2.97897e-7 -0.5941277 0.8043707 -3.72529e-9 8.62877e-8 -0.8043707 -0.5941277 -0.375647 0 0 0 1 1 -9.80414e-8 2.95731e-7 -1.49012e-8 -2.99237e-7 -0.5665358 0.8240372 0 8.67524e-8 -0.8240372 -0.5665358 -0.3756471 0 0 0 1 1 -8.82921e-8 3.00273e-7 7.45058e-9 -3.00599e-7 -0.5381513 0.8428482 7.45058e-9 8.71753e-8 -0.8428482 -0.5381513 -0.3756471 0 0 0 1 1 -7.86057e-8 3.04394e-7 7.45058e-9 -3.01944e-7 -0.5097702 0.8603107 3.72529e-9 8.75456e-8 -0.8603107 -0.5097702 -0.375647 0 0 0 1 1 -6.92671e-8 3.08013e-7 -7.45058e-9 -3.03234e-7 -0.4822454 0.8760363 0 8.78574e-8 -0.8760363 -0.4822454 -0.3756471 0 0 0 1 1 -6.05688e-8 3.11083e-7 -1.49012e-8 -3.0443e-7 -0.456469 0.8897392 0 8.81092e-8 -0.8897392 -0.456469 -0.3756471 0 0 0 1 1 -5.28062e-8 3.13584e-7 -7.45058e-9 -3.05493e-7 -0.4333555 0.9012231 0 8.83034e-8 -0.9012231 -0.4333555 -0.375647 0 0 0 1 1 -4.62728e-8 3.1552e-7 -7.45058e-9 -3.06385e-7 -0.4138241 0.9103569 7.45058e-9 8.84451e-8 -0.9103569 -0.4138241 -0.3756471 0 0 0 1 1 -4.12583e-8 3.16903e-7 -7.45058e-9 -3.07067e-7 -0.3987856 0.9170442 0 8.85406e-8 -0.9170442 -0.3987856 -0.375647 0 0 0 1 1 -3.80466e-8 3.17742e-7 -7.45058e-9 -3.07503e-7 -0.3891323 0.9211819 -7.45058e-9 8.85959e-8 -0.9211819 -0.3891323 -0.3756471 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -1.69902e-7 2.58833e-7 0 2.26488e-7 0.9714168 -0.23738 2.98023e-8 -2.11103e-7 0.2373798 0.971417 -0.4310732 0 0 0 1 1 -1.70197e-7 2.58702e-7 7.45058e-9 2.2649e-7 0.9717014 -0.2362132 2.98023e-8 -2.11178e-7 0.2362131 0.9717014 -0.4310732 0 0 0 1 1 -1.71049e-7 2.5832e-7 1.49012e-8 2.26495e-7 0.9725155 -0.232838 5.96046e-8 -2.11394e-7 0.232838 0.9725156 -0.4310732 0 0 0 1 1 -1.72408e-7 2.57705e-7 0 2.26501e-7 0.9737923 -0.2274397 0 -2.11738e-7 0.2274396 0.9737923 -0.4310733 0 0 0 1 1 -1.74221e-7 2.56868e-7 7.45058e-9 2.26507e-7 0.9754546 -0.2202001 2.98023e-8 -2.122e-7 0.2202001 0.9754546 -0.4310732 0 0 0 1 1 -1.76437e-7 2.55824e-7 -7.45058e-9 2.2651e-7 0.9774209 -0.2113017 1.49012e-8 -2.12766e-7 0.2113016 0.9774209 -0.4310733 0 0 0 1 1 -1.79004e-7 2.54584e-7 -7.45058e-9 2.26506e-7 0.9796066 -0.2009258 -4.47035e-8 -2.13425e-7 0.2009258 0.9796066 -0.4310733 0 0 0 1 1 -1.81868e-7 2.5316e-7 0 2.26493e-7 0.9819279 -0.1892559 5.96046e-8 -2.14165e-7 0.1892558 0.9819279 -0.4310733 0 0 0 1 1 -1.84977e-7 2.51565e-7 -7.45058e-9 2.2647e-7 0.9843047 -0.1764781 0 -2.14972e-7 0.176478 0.9843047 -0.4310733 0 0 0 1 1 -1.88279e-7 2.49815e-7 0 2.26433e-7 0.9866621 -0.1627813 0 -2.15835e-7 0.1627811 0.9866621 -0.4310732 0 0 0 1 1 -1.91721e-7 2.47928e-7 -7.45058e-9 2.26381e-7 0.9889339 -0.1483572 -1.49012e-8 -2.16741e-7 0.1483572 0.9889339 -0.4310733 0 0 0 1 1 -1.95252e-7 2.45923e-7 1.49012e-8 2.26314e-7 0.991062 -0.1334014 1.49012e-8 -2.17678e-7 0.1334014 0.9910621 -0.4310732 0 0 0 1 1 -1.98824e-7 2.43822e-7 -1.49012e-8 2.2623e-7 0.9930004 -0.118112 -1.49012e-8 -2.18632e-7 0.1181119 0.9930004 -0.4310733 0 0 0 1 1 -2.02386e-7 2.41652e-7 0 2.26131e-7 0.9947135 -0.1026897 -3.72529e-8 -2.19591e-7 0.1026897 0.9947135 -0.4310732 0 0 0 1 1 -2.05893e-7 2.3944e-7 7.45058e-9 2.26018e-7 0.9961788 -0.08733717 -1.49012e-8 -2.20543e-7 0.08733711 0.9961788 -0.4310732 0 0 0 1 1 -2.09299e-7 2.37218e-7 -7.45058e-9 2.25893e-7 0.997386 -0.07225832 -7.45058e-9 -2.21475e-7 0.07225817 0.997386 -0.4310732 0 0 0 1 1 -2.12566e-7 2.35017e-7 -7.45058e-9 2.25758e-7 0.9983379 -0.05763507 7.45058e-8 -2.22375e-7 0.05763498 0.998338 -0.4310732 0 0 0 1 1 -2.15676e-7 2.32856e-7 0 2.25615e-7 0.9990507 -0.04356194 6.33299e-8 -2.23239e-7 0.04356188 0.9990507 -0.4310732 0 0 0 1 1 -2.18619e-7 2.3075e-7 0 2.25468e-7 0.9995465 -0.03011096 6.33299e-8 -2.24063e-7 0.0301109 0.9995465 -0.4310733 0 0 0 1 1 -2.21382e-7 2.28718e-7 0 2.25318e-7 0.9998494 -0.01735258 -5.21541e-8 -2.24842e-7 0.01735249 0.9998494 -0.4310732 0 0 0 1 1 -2.23956e-7 2.26775e-7 0 2.25168e-7 0.9999857 -0.005356282 -2.8871e-8 -2.25572e-7 0.005356222 0.9999856 -0.4310733 0 0 0 1 1 -2.2633e-7 2.24939e-7 0 2.2502e-7 0.9999831 0.005809188 -1.67638e-8 -2.2625e-7 -0.005809307 0.9999832 -0.4310732 0 0 0 1 1 -2.28496e-7 2.23228e-7 -7.45058e-9 2.24877e-7 0.9998708 0.01607645 2.98023e-8 -2.26872e-7 -0.01607662 0.9998708 -0.4310733 0 0 0 1 1 -2.30442e-7 2.21658e-7 0 2.24743e-7 0.999678 0.02537924 7.45058e-9 -2.27435e-7 -0.0253793 0.999678 -0.4310733 0 0 0 1 1 -2.32162e-7 2.20246e-7 0 2.24618e-7 0.9994336 0.03365147 -1.49012e-8 -2.27934e-7 -0.03365156 0.9994337 -0.4310732 0 0 0 1 1 -2.33644e-7 2.19009e-7 0 2.24507e-7 0.9991661 0.04082832 -7.45058e-9 -2.28366e-7 -0.04082841 0.9991662 -0.4310732 0 0 0 1 1 -2.3488e-7 2.17964e-7 -1.49012e-8 2.24411e-7 0.9989021 0.04684514 -7.45058e-9 -2.28728e-7 -0.0468452 0.9989021 -0.4310733 0 0 0 1 1 -2.3586e-7 2.17126e-7 0 2.24334e-7 0.9986659 0.05163768 2.98023e-8 -2.29016e-7 -0.05163774 0.998666 -0.4310733 0 0 0 1 1 -2.36575e-7 2.1651e-7 -7.45058e-9 2.24276e-7 0.9984787 0.05514105 -7.45058e-9 -2.29226e-7 -0.05514111 0.9984787 -0.4310733 0 0 0 1 1 -2.37012e-7 2.16131e-7 -7.45058e-9 2.2424e-7 0.9983575 0.05729116 1.49012e-8 -2.29355e-7 -0.05729122 0.9983576 -0.4310732 0 0 0 1 1 -1.04755e-7 1.973e-7 0 9.31304e-8 0.9983154 0.05802244 0 -2.03046e-7 -0.05802245 0.9983155 -0.4310732 0 0 0 1 1 -1.03787e-7 1.97831e-7 -7.45058e-9 9.31232e-8 0.9985858 0.05316371 7.45058e-9 -2.03069e-7 -0.05316377 0.9985858 -0.4310732 0 0 0 1 1 -1.01049e-7 1.993e-7 -7.45058e-9 9.31035e-8 0.9992208 0.03947142 -7.45058e-9 -2.03133e-7 -0.03947148 0.9992207 -0.4310732 0 0 0 1 1 -9.67703e-8 2.015e-7 -7.45058e-9 9.30748e-8 0.9998333 0.01826009 3.72529e-9 -2.03233e-7 -0.01826018 0.9998334 -0.4310732 0 0 0 1 1 -9.11767e-8 2.04206e-7 0 9.30408e-8 0.9999582 -0.009147048 2.79397e-8 -2.03364e-7 0.009146929 0.9999582 -0.4310732 0 0 0 1 1 -8.45015e-8 2.07193e-7 7.45058e-9 9.30054e-8 0.9991429 -0.04139304 1.02445e-8 -2.03518e-7 0.04139307 0.999143 -0.4310732 0 0 0 1 1 -7.69954e-8 2.1025e-7 -7.45058e-9 9.29721e-8 0.997025 -0.07707849 -2.79397e-8 -2.0369e-7 0.07707843 0.9970251 -0.4310733 0 0 0 1 1 -6.89314e-8 2.13194e-7 0 9.29434e-8 0.9933925 -0.1147667 -4.09782e-8 -2.03874e-7 0.1147667 0.9933925 -0.4310732 0 0 0 1 1 -6.06053e-8 2.15877e-7 7.45058e-9 9.29215e-8 0.9882258 -0.1530031 3.72529e-8 -2.04062e-7 0.153003 0.9882258 -0.4310733 0 0 0 1 1 -5.23312e-8 2.18198e-7 0 9.2907e-8 0.9817176 -0.1903436 1.49012e-8 -2.04248e-7 0.1903436 0.9817176 -0.4310732 0 0 0 1 1 -4.44355e-8 2.20102e-7 0 9.28997e-8 0.9742699 -0.2253849 -1.49012e-8 -2.04423e-7 0.2253848 0.9742699 -0.4310732 0 0 0 1 1 -3.72499e-8 2.21577e-7 7.45058e-9 9.28986e-8 0.9664685 -0.2567855 1.49012e-8 -2.04582e-7 0.2567854 0.9664686 -0.4310733 0 0 0 1 1 -3.11045e-8 2.22648e-7 7.45058e-9 9.29017e-8 0.959038 -0.2832776 -2.98023e-8 -2.04717e-7 0.2832776 0.959038 -0.4310733 0 0 0 1 1 -2.63244e-8 2.23362e-7 7.45058e-9 9.29067e-8 0.9527816 -0.3036564 0 -2.04822e-7 0.3036564 0.9527817 -0.4310732 0 0 0 1 1 -2.32276e-8 2.23769e-7 0 9.2911e-8 0.948508 -0.3167533 0 -2.04889e-7 0.3167533 0.948508 -0.4310733 0 0 0 1 1 -2.21265e-8 2.23903e-7 0 9.29128e-8 0.946947 -0.3213899 -2.98023e-8 -2.04913e-7 0.3213899 0.946947 -0.4310732 0 0 0 1 1 -2.23788e-8 2.23873e-7 -7.45058e-9 9.29131e-8 0.9473056 -0.320331 2.98023e-8 -2.04908e-7 0.3203311 0.9473057 -0.4310732 0 0 0 1 1 -2.30886e-8 2.23787e-7 -1.49012e-8 9.29139e-8 0.9483087 -0.3173497 -1.49012e-8 -2.04892e-7 0.3173496 0.9483087 -0.4310733 0 0 0 1 1 -2.41847e-8 2.2365e-7 7.45058e-9 9.29152e-8 0.9498399 -0.3127367 2.98023e-8 -2.04868e-7 0.3127366 0.9498399 -0.4310732 0 0 0 1 1 -2.55961e-8 2.23466e-7 -7.45058e-9 9.29171e-8 0.9517798 -0.306782 -1.49012e-8 -2.04838e-7 0.306782 0.9517798 -0.4310733 0 0 0 1 1 -2.72512e-8 2.23238e-7 1.49012e-8 9.29195e-8 0.9540094 -0.299777 -1.49012e-8 -2.04802e-7 0.2997768 0.9540094 -0.4310732 0 0 0 1 1 -2.90791e-8 2.22972e-7 7.45058e-9 9.29225e-8 0.9564143 -0.2920137 -1.49012e-8 -2.04762e-7 0.2920136 0.9564143 -0.4310733 0 0 0 1 1 -3.10086e-8 2.22675e-7 7.45058e-9 9.29261e-8 0.9588873 -0.2837871 2.98023e-8 -2.0472e-7 0.283787 0.9588873 -0.4310733 0 0 0 1 1 -3.29695e-8 2.22356e-7 -7.45058e-9 9.293e-8 0.9613314 -0.2753944 2.98023e-8 -2.04678e-7 0.2753944 0.9613314 -0.4310732 0 0 0 1 1 -3.48914e-8 2.22025e-7 -7.45058e-9 9.29343e-8 0.9636589 -0.2671355 5.96046e-8 -2.04636e-7 0.2671355 0.9636589 -0.4310732 0 0 0 1 1 -3.67052e-8 2.21698e-7 -7.45058e-9 9.29386e-8 0.9657937 -0.2593124 0 -2.04596e-7 0.2593123 0.9657936 -0.4310732 0 0 0 1 1 -3.83418e-8 2.2139e-7 7.45058e-9 9.29428e-8 0.9676678 -0.2522283 0 -2.04561e-7 0.2522283 0.9676678 -0.4310732 0 0 0 1 1 -3.97329e-8 2.21118e-7 -7.45058e-9 9.29466e-8 0.969222 -0.2461883 -2.98023e-8 -2.04531e-7 0.2461883 0.9692221 -0.4310732 0 0 0 1 1 -4.08107e-8 2.20901e-7 0 9.29497e-8 0.9704015 -0.2414971 2.98023e-8 -2.04507e-7 0.2414971 0.9704015 -0.4310732 0 0 0 1 1 -4.15073e-8 2.20758e-7 -1.49012e-8 9.29517e-8 0.9711525 -0.2384597 -2.98023e-8 -2.04492e-7 0.2384597 0.9711525 -0.4310733 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -4.9738e-14 -1.50996e-7 -0.08954165 -1.32845e-7 -0.4753538 -0.8797947 0.02421998 -7.17764e-8 0.8797947 -0.4753538 0.03911464 0 0 0 1 1 3.38403e-10 -1.51081e-7 -0.08954165 -1.32923e-7 -0.4733466 -0.8808763 0.02421998 -7.18118e-8 0.8808763 -0.4733466 0.03911464 0 0 0 1 1 1.32488e-9 -1.51325e-7 -0.08954165 -1.33151e-7 -0.4674889 -0.883999 0.02421998 -7.19137e-8 0.883999 -0.4674889 0.03911464 0 0 0 1 1 2.91824e-9 -1.51703e-7 -0.08954165 -1.3352e-7 -0.4580039 -0.8889502 0.02421998 -7.20749e-8 0.8889502 -0.4580039 0.03911464 0 0 0 1 1 5.07937e-9 -1.52189e-7 -0.08954165 -1.34022e-7 -0.4450934 -0.8954841 0.02421998 -7.22866e-8 0.8954841 -0.4450934 0.03911464 0 0 0 1 1 7.77001e-9 -1.52747e-7 -0.08954165 -1.34648e-7 -0.4289464 -0.9033299 0.02421998 -7.25391e-8 0.9033299 -0.4289464 0.03911464 0 0 0 1 1 1.09517e-8 -1.53343e-7 -0.08954165 -1.35391e-7 -0.4097492 -0.9121982 0.02421998 -7.28221e-8 0.9121982 -0.4097492 0.03911464 0 0 0 1 1 1.45846e-8 -1.53938e-7 -0.08954165 -1.36244e-7 -0.3876937 -0.9217883 0.02421998 -7.31247e-8 0.9217883 -0.3876937 0.03911464 0 0 0 1 1 1.8627e-8 -1.54496e-7 -0.08954165 -1.37197e-7 -0.3629846 -0.9317952 0.02421998 -7.34361e-8 0.9317952 -0.3629846 0.03911464 0 0 0 1 1 2.30343e-8 -1.54979e-7 -0.08954165 -1.38242e-7 -0.3358454 -0.9419171 0.02421998 -7.37455e-8 0.9419171 -0.3358454 0.03911464 0 0 0 1 1 2.77589e-8 -1.55355e-7 -0.08954165 -1.39368e-7 -0.3065238 -0.951863 0.02421998 -7.40427e-8 0.951863 -0.3065238 0.03911464 0 0 0 1 1 3.27499e-8 -1.55593e-7 -0.08954165 -1.40565e-7 -0.2752931 -0.9613603 0.02421998 -7.4318e-8 0.9613603 -0.2752931 0.03911464 0 0 0 1 1 3.79535e-8 -1.55666e-7 -0.08954165 -1.4182e-7 -0.2424542 -0.9701628 0.02421998 -7.45631e-8 0.9701628 -0.2424542 0.03911464 0 0 0 1 1 4.33132e-8 -1.55558e-7 -0.08954165 -1.43121e-7 -0.2083342 -0.9780577 0.02421998 -7.47708e-8 0.9780577 -0.2083342 0.03911464 0 0 0 1 1 4.87705e-8 -1.55254e-7 -0.08954165 -1.44454e-7 -0.1732831 -0.984872 0.02421998 -7.49356e-8 0.984872 -0.1732831 0.03911464 0 0 0 1 1 5.42658e-8 -1.54749e-7 -0.08954165 -1.45805e-7 -0.1376704 -0.9904781 0.02421998 -7.50535e-8 0.9904781 -0.1376704 0.03911464 0 0 0 1 1 5.97394e-8 -1.54047e-7 -0.08954165 -1.47159e-7 -0.1018787 -0.9947968 0.02421998 -7.51227e-8 0.9947968 -0.1018787 0.03911464 0 0 0 1 1 6.51323e-8 -1.53157e-7 -0.08954165 -1.48502e-7 -0.06629794 -0.9977999 0.02421998 -7.5143e-8 0.9977999 -0.06629794 0.03911464 0 0 0 1 1 7.03875e-8 -1.52098e-7 -0.08954165 -1.49819e-7 -0.0313181 -0.9995095 0.02421998 -7.51164e-8 0.9995095 -0.0313181 0.03911464 0 0 0 1 1 7.54506e-8 -1.50895e-7 -0.08954165 -1.51096e-7 0.002676592 -0.9999964 0.02421998 -7.50464e-8 0.9999964 0.002676592 0.03911464 0 0 0 1 1 8.02706e-8 -1.49578e-7 -0.08954165 -1.52319e-7 0.03531351 -0.9993762 0.02421998 -7.49384e-8 0.9993762 0.03531351 0.03911464 0 0 0 1 1 8.48005e-8 -1.48184e-7 -0.08954165 -1.53476e-7 0.06623603 -0.997804 0.02421998 -7.47992e-8 0.997804 0.06623603 0.03911464 0 0 0 1 1 8.89973e-8 -1.46754e-7 -0.08954165 -1.54553e-7 0.0951069 -0.9954671 0.02421998 -7.46365e-8 0.9954671 0.0951069 0.03911464 0 0 0 1 1 9.28217e-8 -1.45331e-7 -0.08954165 -1.5554e-7 0.1216085 -0.9925781 0.02421998 -7.44594e-8 0.9925781 0.1216085 0.03911464 0 0 0 1 1 9.62383e-8 -1.4396e-7 -0.08954165 -1.56426e-7 0.1454435 -0.9893666 0.02421998 -7.4277e-8 0.9893666 0.1454435 0.03911464 0 0 0 1 1 9.92144e-8 -1.42687e-7 -0.08954165 -1.57202e-7 0.1663315 -0.9860699 0.02421998 -7.4099e-8 0.9860699 0.1663315 0.03911464 0 0 0 1 1 1.01719e-7 -1.41557e-7 -0.08954165 -1.57857e-7 0.184006 -0.9829251 0.02421998 -7.39351e-8 0.9829251 0.184006 0.03911464 0 0 0 1 1 1.03723e-7 -1.40613e-7 -0.08954165 -1.58382e-7 0.1982091 -0.9801598 0.02421998 -7.37945e-8 0.9801598 0.1982091 0.03911464 0 0 0 1 1 1.05196e-7 -1.39897e-7 -0.08954165 -1.5877e-7 0.2086847 -0.9779829 0.02421998 -7.36856e-8 0.9779829 0.2086847 0.03911464 0 0 0 1 1 1.06106e-7 -1.39445e-7 -0.08954165 -1.5901e-7 0.2151721 -0.9765761 0.02421998 -7.3616e-8 0.9765761 0.2151721 0.03911464 0 0 0 1 1 -4.26326e-14 -1.50996e-7 -0.08954165 -1.47384e-7 0.2173982 -0.976083 0.02421998 3.28263e-8 0.976083 0.2173982 0.03911464 0 0 0 1 1 -6.5662e-10 -1.51067e-7 -0.08954165 -1.47455e-7 0.2131555 -0.9770183 0.02421998 3.28422e-8 0.9770183 0.2131555 0.03911464 0 0 0 1 1 -2.5789e-9 -1.51257e-7 -0.08954165 -1.47661e-7 0.2007328 -0.979646 0.02421998 3.28887e-8 0.979646 0.2007328 0.03911464 0 0 0 1 1 -5.69999e-9 -1.51515e-7 -0.08954165 -1.47996e-7 0.1805459 -0.9835666 0.02421998 3.29617e-8 0.9835666 0.1805459 0.03911464 0 0 0 1 1 -9.95615e-9 -1.51762e-7 -0.08954165 -1.48453e-7 0.1529729 -0.9882304 0.02421998 3.30544e-8 0.9882304 0.1529729 0.03911464 0 0 0 1 1 -1.52831e-8 -1.51904e-7 -0.08954165 -1.49026e-7 0.1183832 -0.992968 0.02421998 3.31584e-8 0.992968 0.1183832 0.03911464 0 0 0 1 1 -2.16118e-8 -1.51831e-7 -0.08954165 -1.4971e-7 0.07716671 -0.9970182 0.02421998 3.32636e-8 0.9970182 0.07716671 0.03911464 0 0 0 1 1 -2.88646e-8 -1.51425e-7 -0.08954165 -1.50499e-7 0.02976404 -0.999557 0.02421998 3.33589e-8 0.999557 0.02976404 0.03911464 0 0 0 1 1 -3.69519e-8 -1.50565e-7 -0.08954165 -1.51385e-7 -0.0233081 -0.9997283 0.02421998 3.34325e-8 0.9997283 -0.0233081 0.03911464 0 0 0 1 1 -4.57691e-8 -1.49129e-7 -0.08954165 -1.52361e-7 -0.08143603 -0.9966786 0.02421998 3.34727e-8 0.9966786 -0.08143603 0.03911464 0 0 0 1 1 -5.51958e-8 -1.47004e-7 -0.08954165 -1.53416e-7 -0.1438971 -0.9895926 0.02421998 3.3468e-8 0.9895926 -0.1438971 0.03911464 0 0 0 1 1 -6.50956e-8 -1.44089e-7 -0.08954165 -1.54541e-7 -0.2098567 -0.9777322 0.02421998 3.34081e-8 0.9777322 -0.2098567 0.03911464 0 0 0 1 1 -7.53178e-8 -1.40301e-7 -0.08954165 -1.55722e-7 -0.2783768 -0.9604719 0.02421998 3.32841e-8 0.9604719 -0.2783768 0.03911464 0 0 0 1 1 -8.57013e-8 -1.35582e-7 -0.08954165 -1.56947e-7 -0.3484354 -0.9373328 0.02421998 3.3089e-8 0.9373328 -0.3484354 0.03911464 0 0 0 1 1 -9.60788e-8 -1.29899e-7 -0.08954165 -1.58202e-7 -0.4189552 -0.908007 0.02421998 3.28183e-8 0.908007 -0.4189552 0.03911464 0 0 0 1 1 -1.06283e-7 -1.23247e-7 -0.08954165 -1.59473e-7 -0.4888408 -0.872373 0.02421998 3.24699e-8 0.872373 -0.4888408 0.03911464 0 0 0 1 1 -1.16089e-7 -1.15714e-7 -0.08954165 -1.60742e-7 -0.5564463 -0.8308836 0.02421998 3.20683e-8 0.8308836 -0.5564463 0.03911464 0 0 0 1 1 -1.24783e-7 -1.0793e-7 -0.08954165 -1.6192e-7 -0.6167832 -0.787133 0.02421998 3.16516e-8 0.787133 -0.6167832 0.03911464 0 0 0 1 1 -1.3163e-7 -1.00918e-7 -0.08954165 -1.62891e-7 -0.6646845 -0.7471242 0.02421998 3.12657e-8 0.7471242 -0.6646845 0.03911464 0 0 0 1 1 -1.36091e-7 -9.58506e-8 -0.08954165 -1.63549e-7 -0.6961176 -0.7179278 0.02421998 3.09805e-8 0.7179278 -0.6961176 0.03911464 0 0 0 1 1 -1.37699e-7 -9.39157e-8 -0.08954165 -1.63793e-7 -0.7074876 -0.7067257 0.02421998 3.08711e-8 0.7067257 -0.7074876 0.03911464 0 0 0 1 1 -1.36871e-7 -9.49157e-8 -0.08954165 -1.63666e-7 -0.7016662 -0.7125059 0.02421998 3.0922e-8 0.7125059 -0.7016662 0.03911464 0 0 0 1 1 -1.34582e-7 -9.7595e-8 -0.08954165 -1.63318e-7 -0.6856314 -0.7279488 0.02421998 3.10547e-8 0.7279488 -0.6856314 0.03911464 0 0 0 1 1 -1.31105e-7 -1.01446e-7 -0.08954165 -1.62801e-7 -0.661402 -0.7500317 0.02421998 3.12361e-8 0.7500317 -0.661402 0.03911464 0 0 0 1 1 -1.26723e-7 -1.0596e-7 -0.08954165 -1.62167e-7 -0.6310738 -0.7757228 0.02421998 3.14331e-8 0.7757228 -0.6310738 0.03911464 0 0 0 1 1 -1.21767e-7 -1.10658e-7 -0.08954165 -1.6147e-7 -0.5970257 -0.8022222 0.02421998 3.16183e-8 0.8022222 -0.5970257 0.03911464 0 0 0 1 1 -1.16631e-7 -1.15122e-7 -0.08954165 -1.60768e-7 -0.561992 -0.8271427 0.02421998 3.17727e-8 0.8271427 -0.561992 0.03911464 0 0 0 1 1 -1.11768e-7 -1.19011e-7 -0.08954165 -1.60121e-7 -0.5290233 -0.8486072 0.02421998 3.18874e-8 0.8486072 -0.5290233 0.03911464 0 0 0 1 1 -1.07668e-7 -1.22054e-7 -0.08954165 -1.59587e-7 -0.5013782 -0.8652282 0.02421998 3.19625e-8 0.8652282 -0.5013782 0.03911464 0 0 0 1 1 -1.04843e-7 -1.24036e-7 -0.08954165 -1.59225e-7 -0.4823915 -0.8759558 0.02421998 3.20034e-8 0.8759558 -0.4823915 0.03911464 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -9.23719e-8 -1.82491e-7 0 8.78508e-8 -0.6117519 0.7910497 0 -1.8471e-7 -0.7910497 -0.6117519 -0.375647 0 0 0 1 1 -9.21309e-8 -1.82502e-7 0 8.77097e-8 -0.6130231 0.7900649 -1.49012e-8 -1.84667e-7 -0.7900649 -0.6130231 -0.3756471 0 0 0 1 1 -9.14523e-8 -1.82529e-7 0 8.73129e-8 -0.6165926 0.7872824 1.49012e-8 -1.84545e-7 -0.7872824 -0.6165926 -0.3756471 0 0 0 1 1 -9.04029e-8 -1.82565e-7 0 8.67007e-8 -0.6220857 0.7829491 0 -1.84352e-7 -0.7829491 -0.6220857 -0.3756471 0 0 0 1 1 -8.90498e-8 -1.82601e-7 0 8.59134e-8 -0.6291227 0.7773059 0 -1.84097e-7 -0.7773059 -0.6291227 -0.375647 0 0 0 1 1 -8.74598e-8 -1.82627e-7 0 8.49915e-8 -0.6373243 0.7705957 1.49012e-8 -1.83789e-7 -0.7705957 -0.6373243 -0.3756471 0 0 0 1 1 -8.57004e-8 -1.82637e-7 1.49012e-8 8.39752e-8 -0.6463159 0.7630702 0 -1.83436e-7 -0.7630702 -0.6463159 -0.3756471 0 0 0 1 1 -8.3839e-8 -1.82625e-7 7.45058e-9 8.29047e-8 -0.6557313 0.7549945 0 -1.83051e-7 -0.7549945 -0.6557313 -0.3756471 0 0 0 1 1 -8.19435e-8 -1.82588e-7 0 8.18194e-8 -0.6652167 0.7466503 -1.49012e-8 -1.82644e-7 -0.7466503 -0.6652167 -0.3756471 0 0 0 1 1 -8.0082e-8 -1.82529e-7 -7.45058e-9 8.07583e-8 -0.6744326 0.7383364 1.49012e-8 -1.82231e-7 -0.7383364 -0.6744326 -0.3756471 0 0 0 1 1 -7.83221e-8 -1.82453e-7 -7.45058e-9 7.97594e-8 -0.683053 0.7303687 7.45058e-9 -1.81829e-7 -0.7303687 -0.683053 -0.375647 0 0 0 1 1 -7.67317e-8 -1.82365e-7 0 7.88604e-8 -0.6907667 0.7230778 7.45058e-9 -1.81455e-7 -0.7230778 -0.6907667 -0.375647 0 0 0 1 1 -7.53781e-8 -1.82277e-7 0 7.8098e-8 -0.6972747 0.7168041 7.45058e-9 -1.81129e-7 -0.7168041 -0.6972747 -0.3756471 0 0 0 1 1 -7.43283e-8 -1.82201e-7 -7.45058e-9 7.75084e-8 -0.7022852 0.7118958 0 -1.80871e-7 -0.7118958 -0.7022852 -0.375647 0 0 0 1 1 -7.36494e-8 -1.82148e-7 -1.49012e-8 7.71279e-8 -0.7055086 0.7087014 3.72529e-9 -1.80702e-7 -0.7087014 -0.7055086 -0.375647 0 0 0 1 1 -7.34082e-8 -1.82128e-7 0 7.69929e-8 -0.7066507 0.7075625 0 -1.80642e-7 -0.7075625 -0.7066507 -0.375647 0 0 0 1 1 -7.40854e-8 -1.8219e-7 7.45058e-9 7.73468e-8 -0.7035621 0.7106338 0 -1.8083e-7 -0.7106338 -0.7035621 -0.3756471 0 0 0 1 1 -7.59935e-8 -1.8235e-7 -7.45058e-9 7.83476e-8 -0.6947945 0.7192084 0 -1.81351e-7 -0.7192084 -0.6947945 -0.3756471 0 0 0 1 1 -7.8949e-8 -1.8255e-7 0 7.99084e-8 -0.6810244 0.7322606 -9.31323e-10 -1.82133e-7 -0.7322606 -0.6810244 -0.3756471 0 0 0 1 1 -8.27674e-8 -1.82727e-7 0 8.19438e-8 -0.662894 0.7487133 2.32831e-10 -1.83097e-7 -0.7487133 -0.662894 -0.375647 0 0 0 1 1 -8.72608e-8 -1.82814e-7 0 8.43663e-8 -0.6410699 0.7674825 9.31323e-10 -1.84168e-7 -0.7674825 -0.6410699 -0.3756471 0 0 0 1 1 -9.2236e-8 -1.8276e-7 -7.45058e-9 8.70829e-8 -0.6162902 0.7875191 0 -1.85271e-7 -0.7875191 -0.6162902 -0.375647 0 0 0 1 1 -9.74954e-8 -1.8253e-7 -7.45058e-9 8.9994e-8 -0.5893902 0.8078485 0 -1.86343e-7 -0.8078485 -0.5893902 -0.375647 0 0 0 1 1 -1.02839e-7 -1.82114e-7 7.45058e-9 9.29933e-8 -0.5613146 0.8276026 -3.72529e-9 -1.87333e-7 -0.8276026 -0.5613146 -0.375647 0 0 0 1 1 -1.08068e-7 -1.81528e-7 7.45058e-9 9.59687e-8 -0.5331112 0.8460453 -3.72529e-9 -1.88205e-7 -0.8460453 -0.5331112 -0.3756471 0 0 0 1 1 -1.12986e-7 -1.80812e-7 -7.45058e-9 9.88048e-8 -0.5059144 0.8625836 7.45058e-9 -1.88935e-7 -0.8625836 -0.5059144 -0.375647 0 0 0 1 1 -1.17404e-7 -1.80032e-7 0 1.01384e-7 -0.4809202 0.8767643 1.49012e-8 -1.89517e-7 -0.8767643 -0.4809202 -0.375647 0 0 0 1 1 -1.21141e-7 -1.7927e-7 -1.49012e-8 1.03589e-7 -0.4593579 0.8882512 7.45058e-9 -1.89953e-7 -0.8882512 -0.4593579 -0.375647 0 0 0 1 1 -1.24023e-7 -1.78616e-7 -7.45058e-9 1.05304e-7 -0.4424657 0.8967854 0 -1.90254e-7 -0.8967854 -0.4424657 -0.3756471 0 0 0 1 1 -1.25879e-7 -1.78165e-7 -1.49012e-8 1.06416e-7 -0.4314651 0.9021297 0 -1.90431e-7 -0.9021297 -0.4314651 -0.375647 0 0 0 1 1 -6.45572e-8 -1.65437e-7 0 1.21953e-7 -0.4275432 0.903995 7.45058e-9 -1.29091e-7 -0.903995 -0.4275432 -0.3756471 0 0 0 1 1 -6.28213e-8 -1.65539e-7 0 1.21171e-7 -0.4388915 0.8985401 7.45058e-9 -1.29101e-7 -0.8985401 -0.4388915 -0.3756471 0 0 0 1 1 -5.79009e-8 -1.65708e-7 -7.45058e-9 1.18958e-7 -0.4706401 0.8823252 7.45058e-9 -1.29076e-7 -0.8823252 -0.4706401 -0.3756471 0 0 0 1 1 -5.021e-8 -1.65622e-7 7.45058e-9 1.15506e-7 -0.5190303 0.8547559 7.45058e-9 -1.2888e-7 -0.8547559 -0.5190303 -0.375647 0 0 0 1 1 -4.01929e-8 -1.64866e-7 0 1.11023e-7 -0.5797908 0.8147655 3.72529e-9 -1.28335e-7 -0.8147655 -0.5797908 -0.3756471 0 0 0 1 1 -2.83783e-8 -1.63018e-7 -7.45058e-9 1.05755e-7 -0.6481006 0.7615547 0 -1.27264e-7 -0.7615547 -0.6481006 -0.375647 0 0 0 1 1 -1.54023e-8 -1.59748e-7 7.45058e-9 9.9995e-8 -0.7187634 0.6952548 0 -1.2553e-7 -0.6952548 -0.7187634 -0.375647 0 0 0 1 1 -1.98788e-9 -1.54897e-7 0 9.40702e-8 -0.7866458 0.6174045 9.31323e-10 -1.23076e-7 -0.6174045 -0.7866458 -0.3756471 0 0 0 1 1 1.11198e-8 -1.48542e-7 0 8.8314e-8 -0.8473023 0.5311109 -9.31323e-10 -1.19954e-7 -0.5311109 -0.8473023 -0.3756471 0 0 0 1 1 2.3244e-8 -1.4101e-7 7.45058e-9 8.30235e-8 -0.8975955 0.44082 -1.86265e-9 -1.16323e-7 -0.44082 -0.8975955 -0.3756471 0 0 0 1 1 3.38599e-8 -1.32836e-7 -7.45058e-9 7.84235e-8 -0.9360867 0.3517694 -3.72529e-9 -1.12435e-7 -0.3517694 -0.9360867 -0.3756471 0 0 0 1 1 4.26408e-8 -1.24688e-7 1.49012e-8 7.4647e-8 -0.9630488 0.2693275 0 -1.08596e-7 -0.2693275 -0.9630488 -0.3756471 0 0 0 1 1 4.94508e-8 -1.17273e-7 -7.45058e-9 7.17406e-8 -0.9801102 0.1984538 0 -1.05127e-7 -0.1984538 -0.9801102 -0.3756471 0 0 0 1 1 5.42906e-8 -1.11271e-7 7.45058e-9 6.96901e-8 -0.9896587 0.1434426 -7.45058e-9 -1.02332e-7 -0.1434426 -0.9896587 -0.3756471 0 0 0 1 1 5.72101e-8 -1.07289e-7 0 6.84605e-8 -0.9941532 0.1079777 0 -1.00485e-7 -0.1079777 -0.9941532 -0.375647 0 0 0 1 1 5.82071e-8 -1.05858e-7 7.45058e-9 6.80421e-8 -0.9954376 0.09541538 0 -9.98216e-8 -0.09541538 -0.9954376 -0.3756471 0 0 0 1 1 5.74341e-8 -1.06986e-7 0 6.84018e-8 -0.994418 0.1055111 0 -1.00329e-7 -0.1055111 -0.994418 -0.375647 0 0 0 1 1 5.51895e-8 -1.10128e-7 7.45058e-9 6.94453e-8 -0.9909862 0.1339645 1.49012e-8 -1.01742e-7 -0.1339645 -0.9909862 -0.3756471 0 0 0 1 1 5.15209e-8 -1.14886e-7 -7.45058e-9 7.11481e-8 -0.98403 0.1780031 0 -1.0388e-7 -0.1780031 -0.98403 -0.3756471 0 0 0 1 1 4.64444e-8 -1.20813e-7 7.45058e-9 7.34997e-8 -0.972073 0.2346787 0 -1.0654e-7 -0.2346787 -0.972073 -0.3756471 0 0 0 1 1 4.00031e-8 -1.27437e-7 7.45058e-9 7.64772e-8 -0.9537049 0.3007442 1.49012e-8 -1.09507e-7 -0.3007442 -0.9537049 -0.375647 0 0 0 1 1 3.23149e-8 -1.34275e-7 7.45058e-9 8.00234e-8 -0.9279765 0.3726389 -2.98023e-8 -1.12562e-7 -0.3726389 -0.9279765 -0.3756471 0 0 0 1 1 2.36023e-8 -1.40872e-7 7.45058e-9 8.40338e-8 -0.8947237 0.44662 -2.98023e-8 -1.155e-7 -0.44662 -0.8947237 -0.3756471 0 0 0 1 1 1.41989e-8 -1.46849e-7 0 8.8354e-8 -0.8547637 0.5190172 0 -1.18152e-7 -0.5190172 -0.8547637 -0.375647 0 0 0 1 1 4.53275e-9 -1.51934e-7 7.45058e-9 9.27874e-8 -0.8099177 0.5865436 1.49012e-8 -1.20396e-7 -0.5865436 -0.8099177 -0.3756471 0 0 0 1 1 -4.91e-9 -1.55989e-7 7.45058e-9 9.71116e-8 -0.7628592 0.6465646 0 -1.22173e-7 -0.6465646 -0.7628592 -0.375647 0 0 0 1 1 -1.36261e-8 -1.59006e-7 0 1.01098e-7 -0.7168373 0.6972403 0 -1.23482e-7 -0.6972403 -0.7168373 -0.375647 0 0 0 1 1 -2.11316e-8 -1.61085e-7 -7.45058e-9 1.04527e-7 -0.6753571 0.7374908 1.49012e-8 -1.24374e-7 -0.7374908 -0.6753571 -0.375647 0 0 0 1 1 -2.69808e-8 -1.62386e-7 1.49012e-8 1.07197e-7 -0.6418994 0.7667888 -1.49012e-8 -1.24924e-7 -0.7667888 -0.6418994 -0.375647 0 0 0 1 1 -3.07678e-8 -1.63085e-7 1.49012e-8 1.08925e-7 -0.619724 0.7848199 0 -1.25215e-7 -0.7848199 -0.619724 -0.3756471 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 3.01186e-7 -2.3825e-7 -7.45058e-9 -2.83652e-7 0.9975151 0.07045417 7.45058e-9 2.58877e-7 -0.07045422 0.9975151 -0.4310732 0 0 0 1 1 3.00348e-7 -2.39224e-7 0 -2.83694e-7 0.9977656 0.06681252 0 2.58757e-7 -0.06681257 0.9977656 -0.4310732 0 0 0 1 1 2.97955e-7 -2.4197e-7 0 -2.83811e-7 0.9984034 0.0564853 -7.45058e-9 2.58414e-7 -0.05648535 0.9984035 -0.4310732 0 0 0 1 1 2.94162e-7 -2.46205e-7 -7.45058e-9 -2.83986e-7 0.9991853 0.04035893 0 2.57877e-7 -0.04035901 0.9991853 -0.4310732 0 0 0 1 1 2.89115e-7 -2.51633e-7 0 -2.842e-7 0.9998134 0.01931971 1.49012e-8 2.57172e-7 -0.01931977 0.9998134 -0.4310733 0 0 0 1 1 2.8296e-7 -2.57953e-7 1.49012e-8 -2.84434e-7 0.9999837 -0.005731463 -1.11759e-8 2.56327e-7 0.005731419 0.9999838 -0.4310732 0 0 0 1 1 2.75857e-7 -2.64866e-7 0 -2.8467e-7 0.9994262 -0.03386962 1.86265e-8 2.55371e-7 0.03386953 0.9994263 -0.4310733 0 0 0 1 1 2.67991e-7 -2.72085e-7 -7.45058e-9 -2.84892e-7 0.9979407 -0.06414352 9.31323e-9 2.54334e-7 0.06414346 0.9979407 -0.4310733 0 0 0 1 1 2.59575e-7 -2.79338e-7 0 -2.85086e-7 0.9954218 -0.09558101 -1.30385e-8 2.53249e-7 0.09558089 0.9954217 -0.4310732 0 0 0 1 1 2.50854e-7 -2.86382e-7 -7.45058e-9 -2.85244e-7 0.9918774 -0.1271988 2.98023e-8 2.52147e-7 0.1271986 0.9918773 -0.4310733 0 0 0 1 1 2.42103e-7 -2.93002e-7 -7.45058e-9 -2.8536e-7 0.9874364 -0.1580167 2.98023e-8 2.51065e-7 0.1580166 0.9874365 -0.4310732 0 0 0 1 1 2.3362e-7 -2.99019e-7 0 -2.85434e-7 0.9823464 -0.1870718 -7.45058e-9 2.50036e-7 0.1870718 0.9823464 -0.4310732 0 0 0 1 1 2.25725e-7 -3.04284e-7 0 -2.85467e-7 0.9769583 -0.2134305 2.23517e-8 2.49096e-7 0.2134304 0.9769583 -0.4310733 0 0 0 1 1 2.18748e-7 -3.08679e-7 0 -2.85467e-7 0.971706 -0.2361934 1.49012e-8 2.48278e-7 0.2361934 0.9717062 -0.4310732 0 0 0 1 1 2.13024e-7 -3.12108e-7 7.45058e-9 -2.8544e-7 0.9670739 -0.2544962 2.98023e-8 2.47617e-7 0.2544961 0.9670739 -0.4310733 0 0 0 1 1 2.08884e-7 -3.14482e-7 -7.45058e-9 -2.85396e-7 0.9635583 -0.2674987 4.47035e-8 2.47146e-7 0.2674987 0.9635583 -0.4310732 0 0 0 1 1 2.05851e-7 -3.16165e-7 -7.45058e-9 -2.85347e-7 0.9608997 -0.2768966 1.49012e-8 2.46804e-7 0.2768965 0.9608998 -0.4310733 0 0 0 1 1 2.03212e-7 -3.17598e-7 0 -2.85302e-7 0.9585249 -0.285009 0 2.46508e-7 0.285009 0.9585249 -0.4310732 0 0 0 1 1 2.00943e-7 -3.18806e-7 0 -2.85261e-7 0.956437 -0.2919388 0 2.46255e-7 0.2919386 0.9564371 -0.4310732 0 0 0 1 1 1.99018e-7 -3.19815e-7 0 -2.85226e-7 0.954633 -0.2977853 -2.98023e-8 2.46042e-7 0.2977853 0.954633 -0.4310732 0 0 0 1 1 1.9741e-7 -3.20647e-7 7.45058e-9 -2.85195e-7 0.9531031 -0.3026462 0 2.45864e-7 0.3026462 0.9531031 -0.4310732 0 0 0 1 1 1.96092e-7 -3.21321e-7 0 -2.85169e-7 0.9518331 -0.3066168 -4.47035e-8 2.45719e-7 0.3066167 0.9518332 -0.4310732 0 0 0 1 1 1.95035e-7 -3.21856e-7 7.45058e-9 -2.85148e-7 0.9508051 -0.3097898 0 2.45603e-7 0.3097898 0.9508051 -0.4310732 0 0 0 1 1 1.94211e-7 -3.2227e-7 0 -2.85131e-7 0.9499977 -0.3122572 -1.49012e-8 2.45512e-7 0.3122572 0.9499977 -0.4310733 0 0 0 1 1 1.93592e-7 -3.2258e-7 -7.45058e-9 -2.85119e-7 0.9493868 -0.3141092 0 2.45444e-7 0.3141091 0.9493868 -0.4310732 0 0 0 1 1 1.93148e-7 -3.22801e-7 1.49012e-8 -2.8511e-7 0.9489471 -0.3154351 0 2.45396e-7 0.3154351 0.9489471 -0.4310732 0 0 0 1 1 1.9285e-7 -3.22949e-7 0 -2.85103e-7 0.9486516 -0.3163233 -2.98023e-8 2.45363e-7 0.3163232 0.9486516 -0.4310732 0 0 0 1 1 1.92669e-7 -3.23039e-7 0 -2.851e-7 0.9484717 -0.316862 5.96046e-8 2.45344e-7 0.316862 0.9484716 -0.4310732 0 0 0 1 1 1.92576e-7 -3.23085e-7 0 -2.85098e-7 0.9483793 -0.3171385 0 2.45333e-7 0.3171385 0.9483793 -0.4310733 0 0 0 1 1 1.92542e-7 -3.23102e-7 7.45058e-9 -2.85097e-7 0.9483453 -0.3172403 0 2.4533e-7 0.3172403 0.9483452 -0.4310732 0 0 0 1 1 2.86338e-7 -3.55313e-7 0 -3.84271e-7 0.9483405 -0.3172548 -2.98023e-8 2.46116e-7 0.3172547 0.9483405 -0.4310733 0 0 0 1 1 2.86444e-7 -3.5525e-7 0 -3.84275e-7 0.9484386 -0.3169612 -2.98023e-8 2.46142e-7 0.3169612 0.9484387 -0.4310732 0 0 0 1 1 2.86781e-7 -3.55049e-7 7.45058e-9 -3.84287e-7 0.9487527 -0.3160196 0 2.46225e-7 0.3160195 0.9487528 -0.4310732 0 0 0 1 1 2.87381e-7 -3.54689e-7 0 -3.84307e-7 0.9493109 -0.3143387 -2.98023e-8 2.46375e-7 0.3143386 0.9493109 -0.4310732 0 0 0 1 1 2.88276e-7 -3.54148e-7 -2.23517e-8 -3.84335e-7 0.9501391 -0.3118261 0 2.46598e-7 0.311826 0.9501392 -0.4310732 0 0 0 1 1 2.89495e-7 -3.53405e-7 7.45058e-9 -3.8437e-7 0.9512609 -0.3083877 1.49012e-8 2.46904e-7 0.3083875 0.9512609 -0.4310733 0 0 0 1 1 2.91067e-7 -3.52435e-7 7.45058e-9 -3.84413e-7 0.9526949 -0.3039284 -2.98023e-8 2.47299e-7 0.3039284 0.9526949 -0.4310732 0 0 0 1 1 2.93022e-7 -3.51213e-7 7.45058e-9 -3.84461e-7 0.9544564 -0.2983507 2.98023e-8 2.47794e-7 0.2983507 0.9544564 -0.4310733 0 0 0 1 1 2.95387e-7 -3.49711e-7 7.45058e-9 -3.84514e-7 0.956554 -0.2915555 -1.49012e-8 2.48395e-7 0.2915555 0.9565541 -0.4310733 0 0 0 1 1 2.98189e-7 -3.47898e-7 0 -3.84569e-7 0.9589897 -0.283441 0 2.49112e-7 0.2834409 0.9589899 -0.4310733 0 0 0 1 1 3.0145e-7 -3.45743e-7 7.45058e-9 -3.84622e-7 0.9617573 -0.2739032 4.47035e-8 2.49953e-7 0.2739032 0.9617574 -0.4310733 0 0 0 1 1 3.05193e-7 -3.43209e-7 7.45058e-9 -3.84671e-7 0.9648407 -0.2628356 -1.49012e-8 2.50926e-7 0.2628355 0.9648408 -0.4310733 0 0 0 1 1 3.09438e-7 -3.40255e-7 0 -3.84709e-7 0.9682125 -0.2501294 0 2.5204e-7 0.2501293 0.9682126 -0.4310733 0 0 0 1 1 3.14198e-7 -3.3684e-7 -7.45058e-9 -3.84732e-7 0.9718321 -0.2356741 -7.45058e-9 2.53303e-7 0.2356739 0.9718321 -0.4310732 0 0 0 1 1 3.19487e-7 -3.32914e-7 -7.45058e-9 -3.84733e-7 0.9756446 -0.2193576 2.98023e-8 2.54724e-7 0.2193575 0.9756446 -0.4310733 0 0 0 1 1 3.2531e-7 -3.28425e-7 7.45058e-9 -3.84702e-7 0.9795773 -0.2010675 -2.23517e-8 2.56309e-7 0.2010675 0.9795774 -0.4310732 0 0 0 1 1 3.3164e-7 -3.23341e-7 -7.45058e-9 -3.8463e-7 0.9835232 -0.1807818 4.47035e-8 2.58059e-7 0.1807816 0.9835234 -0.4310732 0 0 0 1 1 3.38338e-7 -3.17717e-7 -7.45058e-9 -3.84509e-7 0.9873044 -0.1588394 2.98023e-8 2.59942e-7 0.1588393 0.9873044 -0.4310733 0 0 0 1 1 3.45243e-7 -3.11643e-7 7.45058e-9 -3.84334e-7 0.9907528 -0.1356803 -4.00469e-8 2.61919e-7 0.1356803 0.9907528 -0.4310732 0 0 0 1 1 3.522e-7 -3.05221e-7 0 -3.84104e-7 0.9937357 -0.1117559 -1.86265e-9 2.63949e-7 0.1117558 0.9937357 -0.4310732 0 0 0 1 1 3.59067e-7 -2.98567e-7 7.45058e-9 -3.83821e-7 0.9961623 -0.08752683 -5.58794e-8 2.65993e-7 0.08752674 0.9961623 -0.4310732 0 0 0 1 1 3.6571e-7 -2.91807e-7 7.45058e-9 -3.8349e-7 0.9979844 -0.06345913 -7.45058e-9 2.68012e-7 0.06345904 0.9979845 -0.4310732 0 0 0 1 1 3.7201e-7 -2.85082e-7 7.45058e-9 -3.83121e-7 0.999199 -0.04002023 4.47035e-8 2.69966e-7 0.0400202 0.999199 -0.4310733 0 0 0 1 1 3.77862e-7 -2.78541e-7 1.49012e-8 -3.82726e-7 0.9998438 -0.01767585 7.45058e-9 2.71819e-7 0.0176757 0.9998438 -0.4310733 0 0 0 1 1 3.83171e-7 -2.72342e-7 0 -3.82321e-7 0.9999952 0.003114864 7.45058e-9 2.73534e-7 -0.003114983 0.9999952 -0.4310733 0 0 0 1 1 3.87856e-7 -2.66646e-7 0 -3.81924e-7 0.9997602 0.02189974 -2.98023e-8 2.75076e-7 -0.02189988 0.9997602 -0.4310733 0 0 0 1 1 3.91844e-7 -2.6162e-7 0 -3.81555e-7 0.9992688 0.03823569 -7.45058e-9 2.76411e-7 -0.03823574 0.9992688 -0.4310732 0 0 0 1 1 3.95068e-7 -2.5743e-7 0 -3.81234e-7 0.9986634 0.05168781 2.98023e-8 2.77506e-7 -0.05168788 0.9986634 -0.4310733 0 0 0 1 1 3.97461e-7 -2.54242e-7 7.45058e-9 -3.80982e-7 0.998087 0.06182647 -7.45058e-9 2.78329e-7 -0.06182654 0.998087 -0.4310732 0 0 0 1 1 3.98955e-7 -2.52216e-7 0 -3.80818e-7 0.9976699 0.068225 7.45058e-9 2.78848e-7 -0.06822507 0.99767 -0.4310732 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - - - - 1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1 - - 1 0 0 0 0 0 -1 0.02018755 0 1 0 0.04088391 0 0 0 1 - - 1 0 0 0 0 0.9934375 -0.1143761 0.194438 0 0.1143761 0.9934375 0 0 0 0 1 - - 1 0 0 0 0 0.9258053 0.3780007 0.3676334 -2.22827e-16 -0.3780007 0.9258054 -3.72529e-9 0 0 0 1 - - 1 0 0 0 0 0.9957995 -0.09156077 0.07797433 0 0.09156074 0.9957995 -9.77889e-9 0 0 0 1 - - - 1 - 0 - 0 - 0.03303807 - 0.1802077 - - - - - - 1 - 0 - - - - - -0.09349707 0.9940777 -0.05538832 0.1656292 -0.9890745 -0.08636999 0.1194651 0.3007234 0.1139737 0.0659528 0.9912922 0.02458553 0 0 0 1 - - 0.9999269 -0.0121001 1.47073e-4 2.98023e-8 0.01207914 0.9987785 0.04791368 0.3238729 -7.26653e-4 -0.0479084 0.9988516 -5.58794e-9 0 0 0 1 - - 0.9996847 0.02510269 8.13621e-4 -8.56817e-8 -0.02508879 0.9965788 0.07874946 0.2581572 0.001165986 -0.07874503 0.9968942 0 0 0 0 1 - - 0.9943069 -0.1063873 0.005958037 1.49012e-8 0.1064871 0.9901453 -0.09095558 0.1130893 0.003777199 0.09107221 0.995837 -1.49012e-8 0 0 0 1 - - 0.9999999 5.68249e-5 5.80214e-7 -1.97906e-8 -5.68249e-5 0.9997917 0.02040377 0.04929709 5.79515e-7 -0.02040377 0.9997917 0 0 0 0 1 - - 0.9999999 -1.63528e-4 4.80562e-6 6.49015e-9 1.63528e-4 0.9982743 -0.05872198 0.03822243 4.80539e-6 0.05872198 0.9982743 0 0 0 0 1 - - - 1 - 1.573581 - 0.03419893 - -0.002011656 - 0 - - - - - - 1 - 1.573581 - - - - - - 1 - 1.573581 - - - - - 0.9942042 -0.106431 0.01518451 0.007374659 0.1072289 0.99186 -0.0686724 0.114673 -0.007752027 0.06990261 0.9975237 -0.02407584 0 0 0 1 - - 0.9997627 0.02178483 -3.39467e-6 -2.43017e-8 -0.0217846 0.9997514 -0.004763506 0.04910958 -1.00378e-4 0.00476245 0.9999886 -1.86265e-9 0 0 0 1 - - 0.9997481 -0.02242242 9.11376e-4 3.35276e-8 0.02244093 0.9989072 -0.0409967 0.03219759 8.86247e-6 0.04100683 0.9991589 0 0 0 0 1 - - - 1 - 1.585134 - 0.03364485 - -0.001513421 - 0 - - - - - - 1 - 1.607066 - - - - - - 1.585134 - - - - - 0.9942042 -0.106431 0.0151845 0.01757193 0.1072289 0.9918599 -0.06867235 0.1194025 -0.007752028 0.06990255 0.9975237 -0.0453514 0 0 0 1 - - 1 -2.51458e-4 2.20258e-6 -7.61065e-9 2.51458e-4 0.9998461 -0.01753639 0.02511728 2.20817e-6 0.01753639 0.9998462 0 0 0 0 1 - - - 1 - 1.585134 - 0.02438956 - -4.07464e-4 - 0 - - - - - - 1.585134 - - - - - 0.9942043 -0.1064312 0.01516978 -9.2914e-4 0.107227 0.9918696 -0.06853521 0.1201515 -0.007752162 0.06976461 0.9975333 0.02650937 0 0 0 1 - - 0.9999996 -8.57367e-4 2.56589e-5 5.82077e-10 8.57368e-4 0.9982103 -0.05979437 0.04212457 2.56533e-5 0.05979438 0.9982107 -7.45058e-9 0 0 0 1 - - 0.9999995 9.40783e-4 3.08976e-5 9.77889e-9 -9.40783e-4 0.9978448 0.06561208 0.0316624 3.08966e-5 -0.06561208 0.9978453 -7.45058e-9 0 0 0 1 - - - 1 - 1.585134 - 0.03422701 - 2.32823e-4 - 0 - - - - - - 1 - 1.585134 - - - - - - 1.585134 - - - - - 0.9942043 -0.1064312 0.01516974 -0.001006626 0.107227 0.9918696 -0.06853475 0.1194239 -0.007752167 0.06976414 0.9975334 0.05007137 0 0 0 1 - - 0.9999996 -8.57354e-4 2.56523e-5 2.04891e-8 8.57354e-4 0.9982103 -0.05979469 0.02885437 2.56589e-5 0.05979469 0.9982107 0 0 0 0 1 - - 0.9999996 9.40776e-4 3.08966e-5 2.64845e-8 -9.40776e-4 0.9978449 0.0656116 0.02168822 3.08957e-5 -0.06561161 0.9978453 0 0 0 0 1 - - - 1 - 1.585134 - 0.02344489 - 1.59472e-4 - 0 - - - - - - 1 - 1.585134 - - - - - - 1.585134 - - - - - - 1 - 1.676481 - - - - - - 1 - 1.652283 - - - - - - 1.664325 - - - - - -0.09349707 -0.9940777 0.05538832 -0.1656292 0.9890745 -0.08636999 0.1194651 0.3007234 -0.1139737 0.0659528 0.9912922 0.02458553 0 0 0 1 - - 0.9999269 0.0121001 -1.47073e-4 -2.98023e-8 -0.01207914 0.9987785 0.04791368 0.3238729 7.26653e-4 -0.0479084 0.9988516 -5.58794e-9 0 0 0 1 - - 0.9996847 -0.02510269 -8.13621e-4 8.56817e-8 0.02508879 0.9965788 0.07874946 0.2581572 -0.001165986 -0.07874503 0.9968942 0 0 0 0 1 - - 0.9943069 0.1063873 -0.005958037 -1.49012e-8 -0.1064871 0.9901453 -0.09095558 0.1130893 -0.003777199 0.09107221 0.995837 -1.49012e-8 0 0 0 1 - - 0.9999999 -5.68249e-5 -5.80214e-7 1.97906e-8 5.68249e-5 0.9997917 0.02040377 0.04929709 -5.79515e-7 -0.02040377 0.9997917 0 0 0 0 1 - - 0.9999999 1.63528e-4 -4.80562e-6 -6.49015e-9 -1.63528e-4 0.9982743 -0.05872198 0.03822243 -4.80539e-6 0.05872198 0.9982743 0 0 0 0 1 - - - 1 - -1.573581 - -0.03419893 - -0.002011656 - 0 - - - - - - 1 - -1.573581 - - - - - - 1 - -1.573581 - - - - - 0.9942042 0.106431 -0.01518451 -0.007374659 -0.1072289 0.99186 -0.0686724 0.114673 0.007752027 0.06990261 0.9975237 -0.02407584 0 0 0 1 - - 0.9997627 -0.02178483 3.39467e-6 2.43017e-8 0.0217846 0.9997514 -0.004763506 0.04910958 1.00378e-4 0.00476245 0.9999886 -1.86265e-9 0 0 0 1 - - 0.9997481 0.02242242 -9.11376e-4 -3.35276e-8 -0.02244093 0.9989072 -0.0409967 0.03219759 -8.86247e-6 0.04100683 0.9991589 0 0 0 0 1 - - - 1 - -1.585134 - -0.03364485 - -0.001513421 - 0 - - - - - - 1 - -1.607066 - - - - - - -1.585134 - - - - - 0.9942042 0.106431 -0.0151845 -0.01757193 -0.1072289 0.9918599 -0.06867235 0.1194025 0.007752028 0.06990255 0.9975237 -0.0453514 0 0 0 1 - - 1 2.51458e-4 -2.20258e-6 7.61065e-9 -2.51458e-4 0.9998461 -0.01753639 0.02511728 -2.20817e-6 0.01753639 0.9998462 0 0 0 0 1 - - - 1 - -1.585134 - -0.02438956 - -4.07464e-4 - 0 - - - - - - -1.585134 - - - - - 0.9942043 0.1064312 -0.01516978 9.2914e-4 -0.107227 0.9918696 -0.06853521 0.1201515 0.007752162 0.06976461 0.9975333 0.02650937 0 0 0 1 - - 0.9999996 8.57367e-4 -2.56589e-5 -5.82077e-10 -8.57368e-4 0.9982103 -0.05979437 0.04212457 -2.56533e-5 0.05979438 0.9982107 -7.45058e-9 0 0 0 1 - - 0.9999995 -9.40783e-4 -3.08976e-5 -9.77889e-9 9.40783e-4 0.9978448 0.06561208 0.0316624 -3.08966e-5 -0.06561208 0.9978453 -7.45058e-9 0 0 0 1 - - - 1 - -1.585134 - -0.03422701 - 2.32823e-4 - 0 - - - - - - 1 - -1.585134 - - - - - - -1.585134 - - - - - 0.9942043 0.1064312 -0.01516974 0.001006626 -0.107227 0.9918696 -0.06853475 0.1194239 0.007752167 0.06976414 0.9975334 0.05007137 0 0 0 1 - - 0.9999996 8.57354e-4 -2.56523e-5 -2.04891e-8 -8.57354e-4 0.9982103 -0.05979469 0.02885437 -2.56589e-5 0.05979469 0.9982107 0 0 0 0 1 - - 0.9999996 -9.40776e-4 -3.08966e-5 -2.64845e-8 9.40776e-4 0.9978449 0.0656116 0.02168822 -3.08957e-5 -0.06561161 0.9978453 0 0 0 0 1 - - - 1 - -1.585134 - -0.02344489 - 1.59472e-4 - 0 - - - - - - 1 - -1.585134 - - - - - - -1.585134 - - - - - - 1 - -1.676481 - - - - - - 1 - -1.652283 - - - - - - -1.664325 - - - - - - 1 - 0 - - - - - 1 -4.79176e-14 -1.50996e-7 0.08954165 4.79176e-14 -1 6.34688e-7 -0.03911464 -1.50996e-7 -6.34688e-7 -1 0.02421998 0 0 0 1 - - 1 -6.31234e-9 3.25765e-7 0 -7.31181e-9 0.9991258 0.04180507 0.375647 -3.25744e-7 -0.04180507 0.9991258 0 0 0 0 1 - - 1 -1.64965e-7 1.59203e-7 -7.45058e-9 2.04969e-7 0.332252 -0.9431908 0.4310732 1.02698e-7 0.9431908 0.332252 0 0 0 0 1 - - - 1 - 2.17315e-7 - 0 - 0.1982285 - -0.07929152 - - - - - - 1 - 1.74901e-7 - - - - - - -1.50996e-7 - - - - - 1 -4.79176e-14 -1.50996e-7 -0.08954165 4.79176e-14 -1 6.34688e-7 -0.03911464 -1.50996e-7 -6.34688e-7 -1 0.02421998 0 0 0 1 - - 1 -6.31234e-9 -1.51072e-7 0 1.26224e-8 0.9991258 0.04180507 0.375647 1.50676e-7 -0.04180507 0.9991258 0 0 0 0 1 - - 1 2.84783e-7 -1.59203e-7 0 -2.44779e-7 0.332252 -0.9431908 0.4310732 -2.15709e-7 0.9431908 0.332252 1.86265e-9 0 0 0 1 - - - 1 - -2.59522e-7 - 0 - 0.1982285 - -0.07929152 - - - - - - 1 - -3.01936e-7 - - - - - - -1.50996e-7 - - - - - - - Bones - Bones - Bones - - - - - - - - - \ No newline at end of file diff --git a/assets/walkanim.dae b/assets/walkanim.dae deleted file mode 100644 index 7ba0af1..0000000 --- a/assets/walkanim.dae +++ /dev/null @@ -1,741 +0,0 @@ - - - - - Blender User - Blender 4.4.0 commit date:2025-03-17, commit time:17:00, hash:05377985c527 - - 2026-05-12T20:30:57 - 2026-05-12T20:30:57 - - Z_UP - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 0.9974608 -0.07120392 0.001416472 0 0.07121801 0.9972635 -0.01983875 0 9.31323e-10 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9975046 -0.070588 0.001404219 0 0.07060197 0.9973072 -0.01983961 0 1.86265e-9 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9976298 -0.06879594 0.00136857 0 0.06880955 0.9974325 -0.01984211 0 0 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9978247 -0.06591107 0.00131118 0 0.06592412 0.9976273 -0.019846 0 2.32831e-9 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9980744 -0.06201645 0.001233704 0 0.06202872 0.9978769 -0.01985096 0 9.31323e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9983624 -0.057195 0.00113779 0 0.05720631 0.998165 -0.01985669 0 9.31323e-10 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9986709 -0.05152971 0.001025089 0 0.05153991 0.9984733 -0.01986281 0 4.65661e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9989819 -0.04510372 8.97256e-4 0 0.04511264 0.9987842 -0.01986901 0 4.65661e-10 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9992774 -0.03800046 7.55949e-4 0 0.03800798 0.9990798 -0.01987486 0 9.31323e-10 0.01988923 0.9998022 -0.194438 0 0 0 1 0.9995406 -0.03030368 6.02836e-4 0 0.03030967 0.9993429 -0.01988014 0 9.31323e-10 0.01988928 0.9998022 -0.194438 0 0 0 1 0.9997557 -0.02209756 4.3959e-4 0 0.02210193 0.9995579 -0.01988438 0 4.65661e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9999093 -0.01346664 2.67894e-4 0 0.0134693 0.9997115 -0.01988745 0 5.82077e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9999899 -0.004495829 8.94357e-5 0 0.004496719 0.9997921 -0.01988903 0 6.98492e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9999888 0.004729615 -9.4088e-5 0 -0.004730551 0.999791 -0.01988902 0 7.567e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9999002 0.01412421 -2.80976e-4 0 -0.014127 0.9997025 -0.01988728 0 6.98492e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9997213 0.02360236 -4.69527e-4 0 -0.02360703 0.9995236 -0.0198837 0 9.31323e-10 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9994525 0.03307839 -6.58036e-4 0 -0.03308493 0.9992549 -0.01987838 0 9.31323e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9990975 0.0424667 -8.44799e-4 0 -0.04247511 0.9988999 -0.01987129 0 4.65661e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9986631 0.05168191 -0.001028119 0 -0.05169213 0.9984655 -0.01986264 0 2.32831e-9 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9981591 0.06063889 -0.001206302 0 -0.06065089 0.9979616 -0.01985265 0 4.65661e-10 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9975982 0.06925299 -0.001377662 0 -0.06926668 0.9974008 -0.01984148 0 -9.31323e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9969959 0.07743976 -0.001540526 0 -0.07745508 0.9967986 -0.01982953 0 1.86265e-9 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9963697 0.08511558 -0.001693219 0 -0.08513242 0.9961725 -0.01981702 0 -9.31323e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9957391 0.09219695 -0.001834092 0 -0.09221519 0.9955422 -0.01980451 0 9.31323e-10 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9951251 0.09860113 -0.001961492 0 -0.09862063 0.9949282 -0.01979231 0 1.86265e-9 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9945495 0.1042455 -0.002073777 0 -0.1042662 0.9943527 -0.01978086 0 9.31323e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9940341 0.109048 -0.002169312 0 -0.1090696 0.9938375 -0.01977059 0 1.86265e-9 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9936008 0.1129265 -0.002246468 0 -0.1129489 0.9934043 -0.01976195 0 0 0.01988923 0.9998022 -0.194438 0 0 0 1 0.99327 0.1157989 -0.002303609 0 -0.1158219 0.9930735 -0.01975539 0 0 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9930603 0.1175831 -0.002339103 0 -0.1176064 0.9928639 -0.01975122 0 1.86265e-9 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9929875 0.1181963 -0.002351301 0 -0.1182197 0.9927911 -0.01974978 0 9.31323e-10 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9930603 0.1175831 -0.002339103 0 -0.1176064 0.9928639 -0.01975122 0 0 0.01988924 0.9998022 -0.194438 0 0 0 1 0.99327 0.115799 -0.002303611 0 -0.1158219 0.9930735 -0.01975539 0 9.31323e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9936008 0.1129265 -0.002246468 0 -0.1129489 0.9934043 -0.01976195 0 9.31323e-10 0.01988923 0.9998022 -0.194438 0 0 0 1 0.9940341 0.109048 -0.002169313 0 -0.1090696 0.9938375 -0.01977059 0 1.86265e-9 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9945495 0.1042455 -0.002073776 0 -0.1042662 0.9943527 -0.01978086 0 9.31323e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9951251 0.09860111 -0.001961491 0 -0.09862062 0.9949282 -0.0197923 0 9.31323e-10 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9957391 0.09219695 -0.001834093 0 -0.09221519 0.9955422 -0.01980452 0 9.31323e-10 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9963697 0.08511557 -0.001693221 0 -0.08513241 0.9961725 -0.01981703 0 0 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9969959 0.07743978 -0.001540524 0 -0.0774551 0.9967986 -0.01982952 0 0 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9975982 0.06925295 -0.001377663 0 -0.06926665 0.9974008 -0.01984149 0 9.31323e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9981591 0.0606389 -0.001206302 0 -0.0606509 0.9979616 -0.01985262 0 1.39698e-9 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9986631 0.05168191 -0.001028119 0 -0.05169213 0.9984655 -0.01986265 0 9.31323e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9990975 0.0424667 -8.44798e-4 0 -0.0424751 0.9988999 -0.0198713 0 4.65661e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9994525 0.03307838 -6.58035e-4 0 -0.03308493 0.9992549 -0.01987838 0 6.98492e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9997213 0.02360236 -4.69527e-4 0 -0.02360703 0.9995236 -0.01988371 0 6.98492e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9999002 0.0141242 -2.80976e-4 0 -0.014127 0.9997025 -0.01988728 0 4.65661e-10 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9999888 0.004729605 -9.40877e-5 0 -0.004730541 0.999791 -0.01988903 0 6.98492e-10 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9999899 -0.004495837 8.94363e-5 0 0.004496726 0.9997921 -0.01988904 0 2.32831e-10 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9999093 -0.01346664 2.67893e-4 0 0.01346931 0.9997115 -0.01988745 0 1.16415e-9 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9997557 -0.02209759 4.39589e-4 0 0.02210196 0.9995579 -0.01988439 0 2.79397e-9 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9995406 -0.03030367 6.02837e-4 0 0.03030967 0.9993429 -0.01988013 0 -2.32831e-10 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9992774 -0.03800048 7.55949e-4 0 0.03800799 0.9990798 -0.01987487 0 1.39698e-9 0.01988924 0.9998022 -0.194438 0 0 0 1 0.9989819 -0.04510372 8.97254e-4 0 0.04511264 0.9987842 -0.01986901 0 2.32831e-9 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9986709 -0.05152974 0.00102509 0 0.05153993 0.9984733 -0.01986282 0 4.65661e-10 0.01988925 0.9998022 -0.194438 0 0 0 1 0.9983624 -0.05719502 0.00113779 0 0.05720633 0.998165 -0.01985669 0 9.31323e-10 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9980744 -0.06201646 0.001233703 0 0.06202873 0.9978769 -0.01985098 0 2.32831e-9 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9978246 -0.06591108 0.001311179 0 0.06592412 0.9976273 -0.019846 0 3.25963e-9 0.01988927 0.9998022 -0.194438 0 0 0 1 0.9976298 -0.06879591 0.001368568 0 0.06880952 0.9974325 -0.01984212 0 1.86265e-9 0.01988926 0.9998022 -0.194438 0 0 0 1 0.9975046 -0.07058802 0.00140422 0 0.07060198 0.9973072 -0.01983961 0 1.86265e-9 0.01988924 0.9998022 -0.194438 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - -0.994738 -0.005040132 -0.1023279 0.1841546 -0.002406535 0.9996631 -0.02584402 0.02375563 0.1024238 -0.0254618 -0.9944149 -0.3068413 0 0 0 1 -0.9947398 -0.005031362 -0.1023122 0.1841546 -0.002286472 0.9996347 -0.02692832 0.02375564 0.1024104 -0.02655273 -0.9943879 -0.3068413 0 0 0 1 -0.9947444 -0.005005769 -0.1022676 0.1841547 -0.001937124 0.9995455 -0.03008302 0.02375563 0.1023718 -0.02972682 -0.9943019 -0.3068413 0 0 0 1 -0.994752 -0.004964218 -0.1021953 0.1841547 -0.001375027 0.9993808 -0.03516119 0.02375563 0.1023067 -0.03483615 -0.9941428 -0.3068413 0 0 0 1 -0.9947625 -0.004907541 -0.1020979 0.1841547 -6.16694e-4 0.9991167 -0.0420161 0.02375563 0.102214 -0.04173308 -0.9938869 -0.3068413 0 0 0 1 -0.9947748 -0.004836466 -0.1019785 0.1841547 3.21394e-4 0.998724 -0.05050072 0.02375563 0.1020927 -0.05026964 -0.9935038 -0.3068413 0 0 0 1 -0.9947895 -0.004751615 -0.1018386 0.1841547 0.001422411 0.9981692 -0.06046723 0.02375563 0.1019396 -0.06029704 -0.9929615 -0.3068413 0 0 0 1 -0.9948062 -0.004653655 -0.1016808 0.1841547 0.002669538 0.9974178 -0.0717667 0.02375563 0.1017523 -0.07166544 -0.992225 -0.3068413 0 0 0 1 -0.9948246 -0.004543237 -0.1015076 0.1841547 0.004045799 0.9964365 -0.08424889 0.02375563 0.1015287 -0.08422353 -0.9912611 -0.3068413 0 0 0 1 -0.9948439 -0.004421121 -0.1013217 0.1841547 0.005534077 0.9951945 -0.0977619 0.02375563 0.1012671 -0.09781858 -0.9900386 -0.3068413 0 0 0 1 -0.9948645 -0.00428809 -0.1011252 0.1841547 0.00711709 0.9936656 -0.1121526 0.02375564 0.1009657 -0.1122963 -0.988532 -0.3068413 0 0 0 1 -0.9948857 -0.004145053 -0.1009206 0.1841547 0.008777505 0.9918298 -0.1272662 0.02375563 0.1006237 -0.1275012 -0.9867208 -0.3068413 0 0 0 1 -0.9949079 -0.003993002 -0.1007101 0.1841547 0.01049793 0.9896746 -0.1429475 0.02375563 0.1002411 -0.1432768 -0.984593 -0.3068413 0 0 0 1 -0.9949302 -0.003833147 -0.1004962 0.1841547 0.01226103 0.9871961 -0.1590401 0.02375564 0.09981913 -0.159466 -0.982144 -0.3068413 0 0 0 1 -0.9949526 -0.00366668 -0.1002809 0.1841547 0.01404954 0.9843992 -0.1753882 0.02375563 0.09935968 -0.1759118 -0.9793788 -0.3068413 0 0 0 1 -0.9949746 -0.00349509 -0.1000668 0.1841547 0.01584638 0.981299 -0.1918364 0.02375563 0.09886605 -0.1924581 -0.976312 -0.3068413 0 0 0 1 -0.9949964 -0.003319897 -0.09985533 0.1841547 0.01763462 0.9779208 -0.2082308 0.02375564 0.09834203 -0.2089498 -0.9729691 -0.3068413 0 0 0 1 -0.9950179 -0.003142759 -0.09964868 0.1841547 0.01939772 0.9742997 -0.224419 0.02375563 0.09779306 -0.2252339 -0.9693845 -0.3068413 0 0 0 1 -0.9950384 -0.002965522 -0.09944856 0.1841547 0.02111953 0.9704809 -0.2402518 0.02375563 0.09722549 -0.2411601 -0.965603 -0.3068413 0 0 0 1 -0.9950579 -0.002790067 -0.0992572 0.1841547 0.02278439 0.9665186 -0.2555827 0.02375563 0.09664714 -0.2565811 -0.9616784 -0.3068413 0 0 0 1 -0.9950765 -0.002618462 -0.09907566 0.1841547 0.02437683 0.9624765 -0.2702685 0.02375564 0.09606574 -0.271353 -0.9576737 -0.3068413 0 0 0 1 -0.9950939 -0.002452716 -0.09890533 0.1841547 0.02588219 0.9584246 -0.28417 0.02375563 0.09549041 -0.2853357 -0.9536588 -0.3068413 0 0 0 1 -0.9951101 -0.00229507 -0.09874772 0.1841547 0.02728596 0.9544404 -0.2971514 0.02375563 0.09493088 -0.2983927 -0.9497105 -0.3068413 0 0 0 1 -0.9951245 -0.002147734 -0.09860446 0.1841546 0.02857441 0.9506066 -0.3090805 0.02375563 0.09439797 -0.310391 -0.9459105 -0.3068413 0 0 0 1 -0.9951375 -0.002012886 -0.09847637 0.1841547 0.02973389 0.947009 -0.3198281 0.02375563 0.09390187 -0.3212009 -0.9423442 -0.3068413 0 0 0 1 -0.9951488 -0.00189282 -0.09836485 0.1841546 0.03075125 0.9437358 -0.3292676 0.02375563 0.09345376 -0.330695 -0.9390993 -0.3068413 0 0 0 1 -0.9951581 -0.001789845 -0.09827074 0.1841546 0.03161319 0.9408756 -0.3372737 0.02375563 0.09306433 -0.3387473 -0.9362634 -0.3068413 0 0 0 1 -0.9951656 -0.001706035 -0.09819564 0.1841547 0.03230707 0.9385155 -0.3437221 0.02375563 0.09274463 -0.3452329 -0.9339231 -0.3068413 0 0 0 1 -0.9951712 -0.001643531 -0.09814024 0.1841547 0.03281958 0.9367386 -0.3484877 0.02375564 0.0925046 -0.3500259 -0.9321613 -0.3068413 0 0 0 1 -0.9951749 -0.001604669 -0.09810586 0.1841547 0.03313719 0.9356226 -0.3514434 0.02375563 0.09235409 -0.3529985 -0.9310547 -0.3068413 0 0 0 1 -0.9951759 -0.001591251 -0.09809409 0.1841546 0.0332463 0.9352368 -0.3524583 0.02375563 0.09230212 -0.3540193 -0.9306721 -0.3068413 0 0 0 1 -0.9951749 -0.001604647 -0.09810585 0.1841547 0.03313722 0.9356226 -0.3514434 0.02375563 0.09235407 -0.3529985 -0.9310547 -0.3068413 0 0 0 1 -0.9951714 -0.001643539 -0.09814008 0.1841547 0.03281953 0.9367386 -0.3484878 0.02375564 0.09250443 -0.350026 -0.9321614 -0.3068413 0 0 0 1 -0.9951658 -0.001705975 -0.09819549 0.1841547 0.03230708 0.9385155 -0.3437222 0.02375563 0.09274446 -0.3452329 -0.9339232 -0.3068413 0 0 0 1 -0.9951583 -0.001789771 -0.09827074 0.1841546 0.0316133 0.9408756 -0.3372737 0.02375563 0.09306428 -0.3387473 -0.9362635 -0.3068413 0 0 0 1 -0.9951488 -0.001892835 -0.09836484 0.1841546 0.03075123 0.9437359 -0.3292675 0.02375563 0.09345378 -0.3306949 -0.9390992 -0.3068413 0 0 0 1 -0.9951375 -0.002012894 -0.09847637 0.1841547 0.02973389 0.947009 -0.3198281 0.02375564 0.09390189 -0.3212009 -0.9423442 -0.3068413 0 0 0 1 -0.9951245 -0.002147742 -0.09860446 0.1841547 0.0285744 0.9506066 -0.3090805 0.02375563 0.09439798 -0.3103911 -0.9459105 -0.3068413 0 0 0 1 -0.9951101 -0.00229507 -0.09874772 0.1841547 0.02728597 0.9544404 -0.2971514 0.02375563 0.09493088 -0.2983927 -0.9497105 -0.3068413 0 0 0 1 -0.995094 -0.002452723 -0.09890517 0.1841547 0.02588213 0.9584245 -0.28417 0.02375563 0.09549023 -0.2853357 -0.9536589 -0.3068413 0 0 0 1 -0.9950765 -0.002618469 -0.09907565 0.1841547 0.02437683 0.9624765 -0.2702685 0.02375564 0.09606574 -0.271353 -0.9576737 -0.3068413 0 0 0 1 -0.9950579 -0.002790086 -0.0992572 0.1841547 0.02278436 0.9665186 -0.2555827 0.02375563 0.09664714 -0.2565811 -0.9616784 -0.3068413 0 0 0 1 -0.9950382 -0.002965536 -0.09944887 0.1841547 0.02111958 0.9704809 -0.2402518 0.02375564 0.09722582 -0.2411601 -0.9656029 -0.3068413 0 0 0 1 -0.9950179 -0.003142759 -0.09964884 0.1841547 0.01939776 0.9742997 -0.2244191 0.02375563 0.09779321 -0.2252339 -0.9693845 -0.3068413 0 0 0 1 -0.9949966 -0.003319893 -0.09985516 0.1841547 0.0176346 0.9779208 -0.2082308 0.02375564 0.09834187 -0.2089498 -0.9729692 -0.3068413 0 0 0 1 -0.9949747 -0.003495079 -0.1000665 0.1841547 0.01584633 0.981299 -0.1918364 0.02375563 0.09886573 -0.1924581 -0.9763122 -0.3068413 0 0 0 1 -0.9949524 -0.003666691 -0.1002811 0.1841547 0.01404957 0.9843992 -0.1753882 0.02375563 0.09935984 -0.1759118 -0.9793787 -0.3068413 0 0 0 1 -0.9949301 -0.003833137 -0.1004964 0.1841547 0.01226107 0.9871961 -0.1590401 0.02375563 0.0998193 -0.159466 -0.9821439 -0.3068413 0 0 0 1 -0.9949077 -0.003993013 -0.1007102 0.1841547 0.01049795 0.9896746 -0.1429475 0.02375563 0.1002412 -0.1432768 -0.9845929 -0.3068413 0 0 0 1 -0.9948857 -0.004145071 -0.1009206 0.1841547 0.008777495 0.9918298 -0.1272662 0.02375563 0.1006237 -0.1275012 -0.9867208 -0.3068413 0 0 0 1 -0.9948645 -0.004288108 -0.1011252 0.1841547 0.007117081 0.9936656 -0.1121526 0.02375563 0.1009657 -0.1122963 -0.988532 -0.3068413 0 0 0 1 -0.994844 -0.004421132 -0.1013216 0.1841547 0.005534053 0.9951945 -0.09776193 0.02375564 0.101267 -0.0978186 -0.9900387 -0.3068413 0 0 0 1 -0.9948246 -0.004543234 -0.1015076 0.1841547 0.004045807 0.9964365 -0.08424888 0.02375564 0.1015287 -0.08422352 -0.9912611 -0.3068413 0 0 0 1 -0.9948063 -0.004653674 -0.1016808 0.1841547 0.002669524 0.9974179 -0.07176676 0.02375563 0.1017523 -0.07166548 -0.992225 -0.3068413 0 0 0 1 -0.9947895 -0.004751619 -0.1018386 0.1841547 0.001422405 0.9981692 -0.06046721 0.02375563 0.1019396 -0.06029703 -0.9929615 -0.3068413 0 0 0 1 -0.9947747 -0.004836489 -0.1019785 0.1841547 3.21375e-4 0.998724 -0.05050069 0.02375563 0.1020927 -0.05026962 -0.9935037 -0.3068413 0 0 0 1 -0.9947624 -0.004907504 -0.102098 0.1841547 -6.16626e-4 0.9991167 -0.0420161 0.02375563 0.1022142 -0.04173306 -0.9938868 -0.3068413 0 0 0 1 -0.9947521 -0.004964203 -0.1021952 0.1841547 -0.001375024 0.9993808 -0.03516119 0.02375563 0.1023066 -0.03483615 -0.9941428 -0.3068413 0 0 0 1 -0.9947443 -0.005005792 -0.1022676 0.1841547 -0.001937139 0.9995455 -0.03008303 0.02375563 0.1023718 -0.02972685 -0.9943018 -0.3068413 0 0 0 1 -0.9947398 -0.005031295 -0.1023124 0.1841546 -0.002286402 0.9996347 -0.02692827 0.02375564 0.1024106 -0.02655271 -0.9943879 -0.3068413 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - -0.9972966 0.001561246 0.07346461 -0.196505 -0.02513009 0.9322436 -0.3609575 0.02470914 -0.06905058 -0.3618279 -0.929684 -0.3007402 0 0 0 1 -0.9972927 8.35106e-4 0.07352819 -0.196505 -0.02574329 0.9326897 -0.3597598 0.02470914 -0.06887954 -0.3606787 -0.9301432 -0.3007402 0 0 0 1 -0.9972792 -0.00127843 0.07370809 -0.196505 -0.02752899 0.9339771 -0.356271 0.02470914 -0.06838627 -0.3573307 -0.9314709 -0.3007402 0 0 0 1 -0.9972486 -0.00468319 0.07398129 -0.196505 -0.03040818 0.9360157 -0.3506422 0.02470914 -0.06760562 -0.3519271 -0.9335828 -0.3007402 0 0 0 1 -0.9971914 -0.009284001 0.07431778 -0.196505 -0.03430372 0.9387018 -0.3430192 0.02470914 -0.06657775 -0.3446052 -0.9363839 -0.3007402 0 0 0 1 -0.9970948 -0.0149861 0.07468273 -0.196505 -0.0391395 0.9419213 -0.3335451 0.02470914 -0.06534681 -0.3354991 -0.9397713 -0.3007402 0 0 0 1 -0.9969449 -0.02169404 0.07503799 -0.196505 -0.0448393 0.9455539 -0.322362 0.02470914 -0.06395924 -0.3247418 -0.9436378 -0.3007402 0 0 0 1 -0.9967265 -0.02931118 0.07534564 -0.196505 -0.05132636 0.9494761 -0.3096138 0.02470914 -0.06246385 -0.3124675 -0.9478723 -0.3007402 0 0 0 1 -0.9964265 -0.03773944 0.0755663 -0.196505 -0.058522 0.9535649 -0.2954472 0.02470914 -0.06090743 -0.2988137 -0.9523659 -0.3007402 0 0 0 1 -0.9960307 -0.0468784 0.07566409 -0.196505 -0.0663458 0.9577007 -0.2800135 0.02470914 -0.05933706 -0.2839221 -0.9570096 -0.3007402 0 0 0 1 -0.9955286 -0.05662572 0.07560558 -0.196505 -0.07471478 0.9617701 -0.2634694 0.02470914 -0.05779614 -0.2679402 -0.9617005 -0.3007402 0 0 0 1 -0.9949113 -0.06687686 0.07536274 -0.196505 -0.08354357 0.9656684 -0.2459775 0.02470914 -0.05632533 -0.2510218 -0.9663414 -0.3007402 0 0 0 1 -0.9941719 -0.07752538 0.07491323 -0.196505 -0.09274434 0.9693029 -0.2277066 0.02470914 -0.0549607 -0.2333272 -0.9708437 -0.3007402 0 0 0 1 -0.993309 -0.08846353 0.07424116 -0.196505 -0.102227 0.972594 -0.2088313 0.02470914 -0.05373265 -0.2150234 -0.9751297 -0.3007402 0 0 0 1 -0.992323 -0.09958255 0.07333828 -0.196505 -0.1118995 0.9754775 -0.1895313 0.02470914 -0.05266592 -0.1962828 -0.9791319 -0.3007402 0 0 0 1 -0.9912193 -0.1107737 0.07220417 -0.196505 -0.1216687 0.9779058 -0.1699911 0.02470914 -0.05177841 -0.1772835 -0.9827967 -0.3007402 0 0 0 1 -0.9900072 -0.1219288 0.07084639 -0.196505 -0.1314404 0.979849 -0.1503979 0.02470914 -0.05108105 -0.1582071 -0.9860839 -0.3007402 0 0 0 1 -0.9886999 -0.1329407 0.06928141 -0.196505 -0.1411205 0.9812948 -0.1309413 0.02470914 -0.05057816 -0.1392387 -0.9889665 -0.3007402 0 0 0 1 -0.9873137 -0.1437047 0.06753387 -0.196505 -0.1506156 0.9822491 -0.1118111 0.02470914 -0.05026739 -0.1205643 -0.991432 -0.3007402 0 0 0 1 -0.9858699 -0.1541185 0.06563479 -0.196505 -0.159833 0.9827347 -0.0931968 0.02470914 -0.05013835 -0.1023706 -0.9934819 -0.3007402 0 0 0 1 -0.9843926 -0.1640833 0.0636233 -0.196505 -0.1686823 0.9827912 -0.0752859 0.02470914 -0.05017537 -0.08484304 -0.9951304 -0.3007402 0 0 0 1 -0.9829084 -0.1735035 0.06154423 -0.196505 -0.1770745 0.9824715 -0.05826319 0.02470914 -0.05035668 -0.06816533 -0.9964024 -0.3007402 0 0 0 1 -0.9814466 -0.1822874 0.05944823 -0.196505 -0.1849236 0.9818417 -0.04230972 0.02470914 -0.0506563 -0.05251813 -0.9973344 -0.3007402 0 0 0 1 -0.9800382 -0.1903466 0.05738885 -0.196505 -0.1921456 0.9809781 -0.02760303 0.02470913 -0.05104316 -0.03807908 -0.9979703 -0.3007402 0 0 0 1 -0.9787154 -0.1975959 0.0554239 -0.196505 -0.1986587 0.9799641 -0.01431649 0.02470914 -0.05148466 -0.02502223 -0.9983602 -0.3007402 0 0 0 1 -0.9775119 -0.203953 0.05361152 -0.196505 -0.2043837 0.9788874 -0.002619825 0.02470914 -0.05194541 -0.01351826 -0.9985584 -0.3007402 0 0 0 1 -0.9764594 -0.2093367 0.05201036 -0.196505 -0.209242 0.9778365 0.007320015 0.02470914 -0.05239006 -0.003735118 -0.9986197 -0.3007402 0 0 0 1 -0.9755911 -0.2136675 0.05067791 -0.196505 -0.2131569 0.9768976 0.01533832 0.02470913 -0.05278451 0.004161529 -0.9985973 -0.3007402 0 0 0 1 -0.9749375 -0.2168646 0.04966868 -0.196505 -0.2160508 0.9761504 0.02127093 0.02470914 -0.05309709 0.01000679 -0.9985393 -0.3007402 0 0 0 1 -0.9745268 -0.2188459 0.04903205 -0.196505 -0.2178459 0.9756642 0.02495317 0.02470914 -0.05329979 0.01363603 -0.9984854 -0.3007402 0 0 0 1 -0.9743847 -0.219526 0.04881178 -0.196505 -0.2184623 0.975493 0.02621815 0.02470914 -0.05337122 0.01488301 -0.9984637 -0.3007402 0 0 0 1 -0.9745268 -0.2188459 0.04903223 -0.196505 -0.2178459 0.9756641 0.02495315 0.02470914 -0.05329996 0.01363599 -0.9984854 -0.3007402 0 0 0 1 -0.9749375 -0.2168646 0.04966868 -0.196505 -0.2160508 0.9761505 0.02127091 0.02470914 -0.05309709 0.01000679 -0.9985393 -0.3007402 0 0 0 1 -0.9755909 -0.2136674 0.05067824 -0.196505 -0.2131568 0.9768975 0.01533831 0.02470913 -0.05278483 0.004161462 -0.9985971 -0.3007402 0 0 0 1 -0.9764594 -0.2093367 0.05201036 -0.196505 -0.209242 0.9778365 0.007319987 0.02470914 -0.05239006 -0.003735147 -0.9986196 -0.3007402 0 0 0 1 -0.9775118 -0.2039529 0.05361154 -0.196505 -0.2043836 0.9788875 -0.002619898 0.02470914 -0.05194543 -0.01351833 -0.9985583 -0.3007402 0 0 0 1 -0.9787155 -0.1975959 0.0554239 -0.196505 -0.1986587 0.9799641 -0.0143165 0.02470914 -0.05148465 -0.02502227 -0.9983603 -0.3007402 0 0 0 1 -0.9800382 -0.1903465 0.05738902 -0.196505 -0.1921455 0.9809782 -0.02760307 0.02470914 -0.05104333 -0.03807914 -0.9979702 -0.3007402 0 0 0 1 -0.9814466 -0.1822874 0.05944824 -0.196505 -0.1849236 0.9818417 -0.04230976 0.02470914 -0.05065631 -0.05251817 -0.9973344 -0.3007402 0 0 0 1 -0.9829084 -0.1735035 0.06154422 -0.196505 -0.1770745 0.9824715 -0.05826316 0.02470914 -0.05035668 -0.06816529 -0.9964024 -0.3007402 0 0 0 1 -0.9843926 -0.1640833 0.06362334 -0.196505 -0.1686823 0.9827911 -0.07528593 0.02470914 -0.05017538 -0.08484305 -0.9951302 -0.3007402 0 0 0 1 -0.9858699 -0.1541185 0.06563481 -0.196505 -0.159833 0.9827349 -0.09319681 0.02470914 -0.05013835 -0.1023706 -0.9934818 -0.3007402 0 0 0 1 -0.9873137 -0.1437047 0.06753386 -0.196505 -0.1506156 0.9822491 -0.1118111 0.02470914 -0.05026739 -0.1205643 -0.991432 -0.3007402 0 0 0 1 -0.9886997 -0.1329406 0.06928174 -0.196505 -0.1411205 0.9812948 -0.1309413 0.02470914 -0.05057849 -0.1392387 -0.9889663 -0.3007402 0 0 0 1 -0.9900073 -0.1219287 0.07084639 -0.196505 -0.1314404 0.979849 -0.150398 0.02470914 -0.05108105 -0.1582072 -0.9860839 -0.3007402 0 0 0 1 -0.9912193 -0.1107737 0.07220399 -0.196505 -0.1216686 0.9779058 -0.1699911 0.02470914 -0.05177825 -0.1772834 -0.9827967 -0.3007402 0 0 0 1 -0.9923229 -0.09958251 0.07333842 -0.196505 -0.1118995 0.9754775 -0.1895314 0.02470914 -0.05266609 -0.1962829 -0.9791319 -0.3007402 0 0 0 1 -0.9933091 -0.08846352 0.07424115 -0.196505 -0.102227 0.9725941 -0.2088313 0.02470914 -0.05373264 -0.2150234 -0.9751297 -0.3007402 0 0 0 1 -0.994172 -0.07752535 0.07491323 -0.196505 -0.09274432 0.9693029 -0.2277066 0.02470914 -0.05496068 -0.2333273 -0.9708437 -0.3007402 0 0 0 1 -0.9949111 -0.06687686 0.07536274 -0.196505 -0.08354358 0.9656684 -0.2459775 0.02470914 -0.05632534 -0.2510218 -0.9663413 -0.3007402 0 0 0 1 -0.9955286 -0.05662568 0.07560558 -0.196505 -0.07471474 0.9617701 -0.2634694 0.02470914 -0.05779615 -0.2679402 -0.9617004 -0.3007402 0 0 0 1 -0.9960307 -0.04687842 0.07566408 -0.196505 -0.06634582 0.9577007 -0.2800134 0.02470914 -0.05933706 -0.283922 -0.9570097 -0.3007402 0 0 0 1 -0.9964265 -0.03773942 0.0755663 -0.196505 -0.05852199 0.9535649 -0.2954472 0.02470914 -0.06090743 -0.2988137 -0.9523659 -0.3007402 0 0 0 1 -0.9967267 -0.02931118 0.07534563 -0.196505 -0.05132637 0.9494761 -0.3096138 0.02470914 -0.06246382 -0.3124675 -0.9478725 -0.3007402 0 0 0 1 -0.9969448 -0.02169403 0.07503818 -0.196505 -0.04483935 0.9455539 -0.322362 0.02470914 -0.06395938 -0.3247418 -0.9436377 -0.3007402 0 0 0 1 -0.9970949 -0.0149861 0.07468256 -0.196505 -0.03913948 0.9419213 -0.3335451 0.02470914 -0.06534665 -0.3354991 -0.9397714 -0.3007402 0 0 0 1 -0.9971914 -0.009284032 0.07431778 -0.196505 -0.03430375 0.9387018 -0.3430192 0.02470914 -0.06657775 -0.3446052 -0.9363839 -0.3007402 0 0 0 1 -0.9972486 -0.004683168 0.07398129 -0.196505 -0.03040817 0.9360157 -0.3506422 0.02470914 -0.06760563 -0.3519271 -0.9335828 -0.3007402 0 0 0 1 -0.9972792 -0.001278453 0.07370809 -0.196505 -0.02752901 0.9339771 -0.3562709 0.02470914 -0.06838628 -0.3573307 -0.9314709 -0.3007402 0 0 0 1 -0.9972927 8.35143e-4 0.07352835 -0.196505 -0.02574332 0.9326897 -0.3597598 0.02470914 -0.06887969 -0.3606787 -0.9301432 -0.3007402 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -1.50996e-7 5.68434e-14 0.08954165 -1.47115e-7 -0.9742956 -0.2252731 0.02421998 3.40154e-8 0.2252731 -0.9742956 0.03911464 0 0 0 1 1 -1.51098e-7 9.1709e-10 0.08954165 -1.47215e-7 -0.9756348 -0.2194009 0.02421998 3.40457e-8 0.2194009 -0.9756348 0.03911464 0 0 0 1 1 -1.51361e-7 3.56721e-9 0.08954165 -1.47505e-7 -0.9792995 -0.2024163 0.02421998 3.41312e-8 0.2024163 -0.9792995 0.03911464 0 0 0 1 1 -1.51685e-7 7.80744e-9 0.08954165 -1.47972e-7 -0.9845355 -0.1751854 0.02421998 3.42597e-8 0.1751854 -0.9845355 0.03911464 0 0 0 1 1 -1.51935e-7 1.34983e-8 0.08954165 -1.48601e-7 -0.9903588 -0.138526 0.02421998 3.44152e-8 0.138526 -0.9903588 0.03911464 0 0 0 1 1 -1.51954e-7 2.04937e-8 0.08954165 -1.49379e-7 -0.9956396 -0.09328314 0.02421998 3.4579e-8 0.09328314 -0.9956396 0.03911464 0 0 0 1 1 -1.51574e-7 2.86316e-8 0.08954165 -1.50294e-7 -0.9991837 -0.04039756 0.02421998 3.47315e-8 0.04039756 -0.9991837 0.03911464 0 0 0 1 1 -1.50637e-7 3.77285e-8 0.08954165 -1.51328e-7 -0.9998187 0.01904369 0.02421998 3.4853e-8 -0.01904369 -0.9998187 0.03911464 0 0 0 1 1 -1.48999e-7 4.75762e-8 0.08954165 -1.52461e-7 -0.9964842 0.08378153 0.02421998 3.49255e-8 -0.08378153 -0.9964842 0.03911464 0 0 0 1 1 -1.46555e-7 5.79443e-8 0.08954165 -1.53673e-7 -0.9883206 0.152389 0.02421998 3.49342e-8 -0.152389 -0.9883206 0.03911464 0 0 0 1 1 -1.4324e-7 6.85873e-8 0.08954165 -1.54939e-7 -0.974748 0.2233078 0.02421998 3.48687e-8 -0.2233078 -0.974748 0.03911464 0 0 0 1 1 -1.39043e-7 7.92547e-8 0.08954165 -1.56233e-7 -0.9555243 0.2949125 0.02421998 3.47242e-8 -0.2949125 -0.9555243 0.03911464 0 0 0 1 1 -1.3401e-7 8.97051e-8 0.08954165 -1.57529e-7 -0.9307741 0.3655948 0.02421998 3.45018e-8 -0.3655948 -0.9307741 0.03911464 0 0 0 1 1 -1.28237e-7 9.97191e-8 0.08954165 -1.58803e-7 -0.9009842 0.4338519 0.02421998 3.42092e-8 -0.4338519 -0.9009842 0.03911464 0 0 0 1 1 -1.2187e-7 1.09111e-7 0.08954165 -1.60034e-7 -0.8669649 0.4983692 0.02421998 3.38597e-8 -0.4983692 -0.8669649 0.03911464 0 0 0 1 1 -1.15086e-7 1.17739e-7 0.08954165 -1.61204e-7 -0.8297867 0.5580807 0.02421998 3.34713e-8 -0.5580807 -0.8297867 0.03911464 0 0 0 1 1 -1.08146e-7 1.25444e-7 0.08954165 -1.62291e-7 -0.7910206 0.6117895 0.02421998 3.30661e-8 -0.6117895 -0.7910206 0.03911464 0 0 0 1 1 -1.01584e-7 1.31889e-7 0.08954165 -1.63237e-7 -0.7538272 0.6570727 0.02421998 3.26737e-8 -0.6570727 -0.7538272 0.03911464 0 0 0 1 1 -9.60605e-8 1.36779e-7 0.08954165 -1.63983e-7 -0.7221903 0.6916946 0.02421998 3.23357e-8 -0.6916946 -0.7221903 0.03911464 0 0 0 1 1 -9.22663e-8 1.39888e-7 0.08954165 -1.64473e-7 -0.7003049 0.7138438 0.02421998 3.21004e-8 -0.7138438 -0.7003049 0.03911464 0 0 0 1 1 -9.08655e-8 1.40988e-7 0.08954165 -1.64649e-7 -0.6921978 0.7217078 0.02421998 3.20135e-8 -0.7217078 -0.6921978 0.03911464 0 0 0 1 1 -9.12315e-8 1.4069e-7 0.08954165 -1.64596e-7 -0.6942692 0.7197154 0.02421998 3.20161e-8 -0.7197154 -0.6942692 0.03911464 0 0 0 1 1 -9.22733e-8 1.39834e-7 0.08954165 -1.64445e-7 -0.7001689 0.7139772 0.02421998 3.20263e-8 -0.7139772 -0.7001689 0.03911464 0 0 0 1 1 -9.38996e-8 1.38473e-7 0.08954165 -1.6421e-7 -0.7093803 0.7048258 0.02421998 3.20471e-8 -0.7048258 -0.7093803 0.03911464 0 0 0 1 1 -9.6014e-8 1.36655e-7 0.08954165 -1.63903e-7 -0.7213521 0.6925686 0.02421998 3.20803e-8 -0.6925686 -0.7213521 0.03911464 0 0 0 1 1 -9.85195e-8 1.34427e-7 0.08954165 -1.63538e-7 -0.7355254 0.6774971 0.02421998 3.21278e-8 -0.6774971 -0.7355254 0.03911464 0 0 0 1 1 -1.01322e-7 1.31833e-7 0.08954165 -1.63125e-7 -0.751355 0.6598982 0.02421998 3.21915e-8 -0.6598982 -0.751355 0.03911464 0 0 0 1 1 -1.04332e-7 1.2892e-7 0.08954165 -1.62678e-7 -0.7683264 0.6400582 0.02421998 3.22741e-8 -0.6400582 -0.7683264 0.03911464 0 0 0 1 1 -1.07469e-7 1.25735e-7 0.08954165 -1.62205e-7 -0.7859684 0.6182666 0.02421998 3.23789e-8 -0.6182666 -0.7859684 0.03911464 0 0 0 1 1 -1.1066e-7 1.22325e-7 0.08954165 -1.61716e-7 -0.8038619 0.5948161 0.02421998 3.25103e-8 -0.5948161 -0.8038619 0.03911464 0 0 0 1 1 -1.50996e-7 4.9738e-14 0.08954165 -1.24065e-7 -0.8216438 0.5700014 0.02421998 -8.60678e-8 -0.5700014 -0.8216438 0.03911464 0 0 0 1 1 -1.5231e-7 -4.44332e-9 0.08954165 -1.25404e-7 -0.8392168 0.543797 0.02421998 -8.65544e-8 -0.543797 -0.8392168 0.03911464 0 0 0 1 1 -1.53534e-7 -9.13216e-9 0.08954165 -1.26801e-7 -0.8565732 0.5160257 0.02421998 -8.70499e-8 -0.5160257 -0.8565732 0.03911464 0 0 0 1 1 -1.54645e-7 -1.40453e-8 0.08954165 -1.2825e-7 -0.8735312 0.4867682 0.02421998 -8.75453e-8 -0.4867682 -0.8735312 0.03911464 0 0 0 1 1 -1.5562e-7 -1.91592e-8 0.08954165 -1.2975e-7 -0.8899165 0.4561235 0.02421998 -8.8032e-8 -0.4561235 -0.8899165 0.03911464 0 0 0 1 1 -1.56438e-7 -2.44479e-8 0.08954165 -1.31294e-7 -0.9055637 0.4242102 0.02421998 -8.85019e-8 -0.4242102 -0.9055637 0.03911464 0 0 0 1 1 -1.57083e-7 -2.98832e-8 0.08954165 -1.32877e-7 -0.9203198 0.3911669 0.02421998 -8.89478e-8 -0.3911669 -0.9203198 0.03911464 0 0 0 1 1 -1.57539e-7 -3.54347e-8 0.08954165 -1.34494e-7 -0.9340469 0.3571504 0.02421998 -8.93629e-8 -0.3571504 -0.9340469 0.03911464 0 0 0 1 1 -1.57796e-7 -4.10701e-8 0.08954165 -1.36136e-7 -0.9466255 0.3223356 0.02421998 -8.97414e-8 -0.3223356 -0.9466255 0.03911464 0 0 0 1 1 -1.57847e-7 -4.67555e-8 0.08954165 -1.37796e-7 -0.9579563 0.2869141 0.02421998 -9.00784e-8 -0.2869141 -0.9579563 0.03911464 0 0 0 1 1 -1.57689e-7 -5.24564e-8 0.08954165 -1.39466e-7 -0.9679636 0.2510906 0.02421998 -9.037e-8 -0.2510906 -0.9679636 0.03911464 0 0 0 1 1 -1.57322e-7 -5.81372e-8 0.08954165 -1.41136e-7 -0.9765961 0.2150814 0.02421998 -9.06136e-8 -0.2150814 -0.9765961 0.03911464 0 0 0 1 1 -1.56753e-7 -6.37626e-8 0.08954165 -1.42797e-7 -0.9838288 0.179111 0.02421998 -9.08076e-8 -0.179111 -0.9838288 0.03911464 0 0 0 1 1 -1.55991e-7 -6.92975e-8 0.08954165 -1.4444e-7 -0.9896635 0.1434086 0.02421998 -9.09516e-8 -0.1434086 -0.9896635 0.03911464 0 0 0 1 1 -1.5505e-7 -7.47077e-8 0.08954165 -1.46055e-7 -0.9941286 0.1082051 0.02421998 -9.10462e-8 -0.1082051 -0.9941286 0.03911464 0 0 0 1 1 -1.53948e-7 -7.99606e-8 0.08954165 -1.47633e-7 -0.9972782 0.07372994 0.02421998 -9.10935e-8 -0.07372994 -0.9972782 0.03911464 0 0 0 1 1 -1.52706e-7 -8.50252e-8 0.08954165 -1.49164e-7 -0.9991913 0.04020775 0.02421998 -9.10964e-8 -0.04020775 -0.9991913 0.03911464 0 0 0 1 1 -1.51349e-7 -8.98725e-8 0.08954165 -1.50638e-7 -0.9999691 0.00785643 0.02421998 -9.10588e-8 -0.00785643 -0.9999691 0.03911464 0 0 0 1 1 -1.49904e-7 -9.44759e-8 0.08954165 -1.52048e-7 -0.9997328 -0.02311564 0.02421998 -9.09855e-8 0.02311564 -0.9997328 0.03911464 0 0 0 1 1 -1.484e-7 -9.88109e-8 0.08954165 -1.53384e-7 -0.9986204 -0.05251035 0.02421998 -9.08821e-8 0.05251035 -0.9986204 0.03911464 0 0 0 1 1 -1.46868e-7 -1.02856e-7 0.08954165 -1.54638e-7 -0.9967835 -0.08014154 0.02421998 -9.07546e-8 0.08014154 -0.9967835 0.03911464 0 0 0 1 1 -1.45339e-7 -1.0659e-7 0.08954165 -1.55804e-7 -0.9943838 -0.1058342 0.02421998 -9.06096e-8 0.1058342 -0.9943838 0.03911464 0 0 0 1 1 -1.43848e-7 -1.09997e-7 0.08954165 -1.56874e-7 -0.9915892 -0.1294252 0.02421998 -9.04539e-8 0.1294252 -0.9915892 0.03911464 0 0 0 1 1 -1.42424e-7 -1.13059e-7 0.08954165 -1.57841e-7 -0.9885703 -0.1507608 0.02421998 -9.02945e-8 0.1507608 -0.9885703 0.03911464 0 0 0 1 1 -1.41102e-7 -1.15762e-7 0.08954165 -1.587e-7 -0.9854964 -0.1696964 0.02421998 -9.01382e-8 0.1696964 -0.9854964 0.03911464 0 0 0 1 1 -1.39911e-7 -1.18091e-7 0.08954165 -1.59443e-7 -0.982532 -0.1860936 0.02421998 -8.99917e-8 0.1860936 -0.982532 0.03911464 0 0 0 1 1 -1.38881e-7 -1.20033e-7 0.08954165 -1.60065e-7 -0.9798331 -0.1998178 0.02421998 -8.98611e-8 0.1998178 -0.9798331 0.03911464 0 0 0 1 1 -1.3804e-7 -1.21573e-7 0.08954165 -1.6056e-7 -0.9775431 -0.2107358 0.02421998 -8.97523e-8 0.2107358 -0.9775431 0.03911464 0 0 0 1 1 -1.37414e-7 -1.22695e-7 0.08954165 -1.60922e-7 -0.9757894 -0.2187122 0.02421998 -8.96703e-8 0.2187122 -0.9757894 0.03911464 0 0 0 1 1 -1.37024e-7 -1.23383e-7 0.08954165 -1.61144e-7 -0.9746793 -0.2236073 0.02421998 -8.9619e-8 0.2236073 -0.9746793 0.03911464 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 3.14212e-7 5.82433e-8 -7.45058e-9 -3.12362e-7 0.9226125 0.3857283 0 6.74645e-8 -0.3857283 0.9226125 -0.3756471 0 0 0 1 1 3.12885e-7 6.26876e-8 -7.45058e-9 -3.11879e-7 0.9167559 0.3994478 0 6.7512e-8 -0.3994478 0.9167559 -0.3756471 0 0 0 1 1 3.08756e-7 7.51957e-8 -7.45058e-9 -3.10506e-7 0.8990152 0.4379178 7.45058e-9 6.76076e-8 -0.4379178 0.8990152 -0.3756471 0 0 0 1 1 3.0121e-7 9.44608e-8 0 -3.08343e-7 0.8679003 0.4967385 0 6.76401e-8 -0.4967385 0.8679003 -0.3756471 0 0 0 1 1 2.89365e-7 1.18959e-7 -7.45058e-9 -3.05503e-7 0.8211454 0.570719 0 6.74637e-8 -0.570719 0.8211454 -0.3756471 0 0 0 1 1 2.72403e-7 1.46835e-7 -7.45058e-9 -3.02134e-7 0.7568104 0.6536345 3.72529e-9 6.69259e-8 -0.6536345 0.7568104 -0.375647 0 0 0 1 1 2.49916e-7 1.75914e-7 0 -2.9843e-7 0.6743801 0.7383844 -1.86265e-9 6.5901e-8 -0.7383844 0.6743801 -0.3756471 0 0 0 1 1 2.22199e-7 2.03887e-7 0 -2.94626e-7 0.5756412 0.8177024 -9.31323e-10 6.43263e-8 -0.8177024 0.5756412 -0.375647 0 0 0 1 1 1.90393e-7 2.28662e-7 7.45058e-9 -2.90969e-7 0.4649994 0.885311 0 6.22294e-8 -0.885311 0.4649994 -0.3756471 0 0 0 1 1 1.56384e-7 2.48741e-7 0 -2.8768e-7 0.349023 0.9371141 -3.72529e-9 5.97333e-8 -0.9371141 0.349023 -0.375647 0 0 0 1 1 1.22485e-7 2.63486e-7 0 -2.84911e-7 0.2353361 0.971914 7.45058e-9 5.70367e-8 -0.971914 0.2353361 -0.3756471 0 0 0 1 1 9.10383e-8 2.73141e-7 0 -2.82732e-7 0.1313377 0.9913377 -7.45058e-9 5.4376e-8 -0.9913377 0.1313377 -0.375647 0 0 0 1 1 6.41035e-8 2.78622e-7 -1.49012e-8 -2.81135e-7 0.04327336 0.9990633 0 5.19865e-8 -0.9990633 0.04327336 -0.3756471 0 0 0 1 1 4.33293e-8 2.81188e-7 -7.45058e-9 -2.80065e-7 -0.02404481 0.9997109 0 5.00779e-8 -0.9997109 -0.02404481 -0.3756471 0 0 0 1 1 3.00198e-8 2.82091e-7 -7.45058e-9 -2.7945e-7 -0.0669046 0.9977595 0 4.88257e-8 -0.9977595 -0.0669046 -0.375647 0 0 0 1 1 2.53234e-8 2.82273e-7 -7.45058e-9 -2.79247e-7 -0.08197841 0.9966342 -1.49012e-8 4.83784e-8 -0.9966342 -0.08197841 -0.375647 0 0 0 1 1 2.80832e-8 2.82205e-7 0 -2.79401e-7 -0.07301685 0.997331 1.49012e-8 4.8614e-8 -0.997331 -0.07301685 -0.3756471 0 0 0 1 1 3.58935e-8 2.81879e-7 -7.45058e-9 -2.7985e-7 -0.0476135 0.9988658 -1.49012e-8 4.9274e-8 -0.9988658 -0.0476135 -0.375647 0 0 0 1 1 4.80509e-8 2.80972e-7 0 -2.80581e-7 -0.007944405 0.9999685 0 5.02815e-8 -0.9999685 -0.007944405 -0.3756471 0 0 0 1 1 6.38198e-8 2.79066e-7 7.45058e-9 -2.81591e-7 0.0437434 0.9990427 0 5.15514e-8 -0.9990427 0.0437434 -0.3756471 0 0 0 1 1 8.24005e-8 2.75742e-7 7.45058e-9 -2.8287e-7 0.1049954 0.9944726 -2.98023e-8 5.29934e-8 -0.9944726 0.1049954 -0.375647 0 0 0 1 1 1.0292e-7 2.70671e-7 0 -2.844e-7 0.1730909 0.984906 -2.98023e-8 5.45158e-8 -0.984906 0.1730909 -0.3756471 0 0 0 1 1 1.24451e-7 2.63686e-7 0 -2.86144e-7 0.2450812 0.9695026 0 5.60314e-8 -0.9695026 0.2450812 -0.375647 0 0 0 1 1 1.46059e-7 2.54835e-7 7.45058e-9 -2.88049e-7 0.3179216 0.948117 -1.49012e-8 5.74637e-8 -0.948117 0.3179216 -0.375647 0 0 0 1 1 1.66864e-7 2.44402e-7 0 -2.90042e-7 0.388668 0.9213779 -2.98023e-8 5.87536e-8 -0.9213779 0.388668 -0.375647 0 0 0 1 1 1.86102e-7 2.32886e-7 0 -2.92038e-7 0.4546813 0.8906543 -2.98023e-8 5.98636e-8 -0.8906543 0.4546813 -0.375647 0 0 0 1 1 2.03169e-7 2.20956e-7 0 -2.93947e-7 0.5137829 0.8579203 0 6.07792e-8 -0.8579203 0.5137829 -0.375647 0 0 0 1 1 2.17634e-7 2.0939e-7 0 -2.95678e-7 0.5643197 0.8255563 -1.49012e-8 6.15065e-8 -0.8255563 0.5643197 -0.375647 0 0 0 1 1 2.29221e-7 1.99009e-7 0 -2.97144e-7 0.6051172 0.7961363 -1.49012e-8 6.20671e-8 -0.7961363 0.6051172 -0.3756471 0 0 0 1 1 2.37753e-7 1.90628e-7 0 -2.98262e-7 0.6353294 0.7722414 -1.49012e-8 6.24909e-8 -0.7722414 0.6353294 -0.3756471 0 0 0 1 1 2.51676e-7 1.65126e-7 0 -2.89535e-7 0.6542065 0.7563159 0 8.23201e-8 -0.7563159 0.6542065 -0.3756471 0 0 0 1 1 2.54706e-7 1.61543e-7 -7.45058e-9 -2.90073e-7 0.6654212 0.7464681 0 8.26361e-8 -0.7464681 0.6654212 -0.3756471 0 0 0 1 1 2.56903e-7 1.58877e-7 -7.45058e-9 -2.90473e-7 0.6735829 0.7391119 0 8.28632e-8 -0.7391119 0.6735829 -0.3756471 0 0 0 1 1 2.58414e-7 1.57007e-7 7.45058e-9 -2.90752e-7 0.6792155 0.7339389 0 8.30183e-8 -0.7339389 0.6792155 -0.3756471 0 0 0 1 1 2.59376e-7 1.55801e-7 0 -2.90932e-7 0.682811 0.7305951 0 8.31163e-8 -0.7305951 0.682811 -0.375647 0 0 0 1 1 2.59918e-7 1.55117e-7 0 -2.91035e-7 0.6848385 0.7286952 -1.49012e-8 8.3171e-8 -0.7286952 0.6848385 -0.3756471 0 0 0 1 1 2.60162e-7 1.54808e-7 7.45058e-9 -2.91081e-7 0.6857525 0.7278349 0 8.3195e-8 -0.7278349 0.6857525 -0.3756471 0 0 0 1 1 2.60228e-7 1.54725e-7 0 -2.91094e-7 0.6859995 0.7276021 0 8.32009e-8 -0.7276021 0.6859995 -0.3756471 0 0 0 1 1 2.60234e-7 1.54718e-7 7.45058e-9 -2.91096e-7 0.6860234 0.7275792 0 8.32008e-8 -0.7275792 0.6860234 -0.375647 0 0 0 1 1 2.60299e-7 1.54635e-7 -7.45058e-9 -2.91109e-7 0.6862676 0.7273492 -7.45058e-9 8.3207e-8 -0.7273492 0.6862676 -0.375647 0 0 0 1 1 2.60541e-7 1.54327e-7 0 -2.91154e-7 0.6871739 0.726493 -7.45058e-9 8.32315e-8 -0.726493 0.6871739 -0.3756471 0 0 0 1 1 2.61077e-7 1.53641e-7 0 -2.91256e-7 0.6891816 0.7245885 0 8.32865e-8 -0.7245885 0.6891816 -0.375647 0 0 0 1 1 2.62021e-7 1.52424e-7 -1.49012e-8 -2.91437e-7 0.6927223 0.7212045 -7.45058e-9 8.33834e-8 -0.7212045 0.6927223 -0.3756471 0 0 0 1 1 2.63482e-7 1.50515e-7 -7.45058e-9 -2.91719e-7 0.6982123 0.7158908 3.72529e-9 8.35329e-8 -0.7158908 0.6982123 -0.375647 0 0 0 1 1 2.6556e-7 1.47749e-7 0 -2.92127e-7 0.706042 0.70817 -3.72529e-9 8.37445e-8 -0.70817 0.706042 -0.375647 0 0 0 1 1 2.68338e-7 1.43946e-7 7.45058e-9 -2.92687e-7 0.7165629 0.6975226 0 8.40252e-8 -0.6975226 0.7165629 -0.375647 0 0 0 1 1 2.71916e-7 1.38865e-7 -7.45058e-9 -2.93429e-7 0.7301883 0.683246 0 8.43877e-8 -0.683246 0.7301883 -0.375647 0 0 0 1 1 2.76187e-7 1.32502e-7 0 -2.94349e-7 0.7465814 0.6652939 -1.16415e-10 8.48221e-8 -0.6652939 0.7465814 -0.375647 0 0 0 1 1 2.80919e-7 1.25035e-7 0 -2.9542e-7 0.7649297 0.6441137 9.31323e-10 8.53007e-8 -0.6441137 0.7649297 -0.375647 0 0 0 1 1 2.85887e-7 1.16657e-7 -7.45058e-9 -2.96613e-7 0.7844418 0.6202025 0 8.57972e-8 -0.6202025 0.7844418 -0.3756471 0 0 0 1 1 2.90885e-7 1.07581e-7 -7.45058e-9 -2.97897e-7 0.8043707 0.5941277 -3.72529e-9 8.62877e-8 -0.5941277 0.8043707 -0.375647 0 0 0 1 1 2.95731e-7 9.80414e-8 -1.49012e-8 -2.99237e-7 0.8240372 0.5665358 0 8.67524e-8 -0.5665358 0.8240372 -0.3756471 0 0 0 1 1 3.00273e-7 8.82921e-8 7.45058e-9 -3.00599e-7 0.8428482 0.5381513 7.45058e-9 8.71753e-8 -0.5381513 0.8428482 -0.3756471 0 0 0 1 1 3.04394e-7 7.86057e-8 7.45058e-9 -3.01944e-7 0.8603107 0.5097702 3.72529e-9 8.75456e-8 -0.5097702 0.8603107 -0.375647 0 0 0 1 1 3.08013e-7 6.92671e-8 -7.45058e-9 -3.03234e-7 0.8760363 0.4822454 0 8.78574e-8 -0.4822454 0.8760363 -0.3756471 0 0 0 1 1 3.11083e-7 6.05688e-8 -1.49012e-8 -3.0443e-7 0.8897392 0.456469 0 8.81092e-8 -0.456469 0.8897392 -0.3756471 0 0 0 1 1 3.13584e-7 5.28062e-8 -7.45058e-9 -3.05493e-7 0.9012231 0.4333555 0 8.83034e-8 -0.4333555 0.9012231 -0.375647 0 0 0 1 1 3.1552e-7 4.62728e-8 -7.45058e-9 -3.06385e-7 0.9103569 0.4138241 7.45058e-9 8.84451e-8 -0.4138241 0.9103569 -0.3756471 0 0 0 1 1 3.16903e-7 4.12583e-8 -7.45058e-9 -3.07067e-7 0.9170442 0.3987856 0 8.85406e-8 -0.3987856 0.9170442 -0.375647 0 0 0 1 1 3.17742e-7 3.80466e-8 -7.45058e-9 -3.07503e-7 0.9211819 0.3891323 -7.45058e-9 8.85959e-8 -0.3891323 0.9211819 -0.3756471 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 2.58833e-7 1.69902e-7 0 2.26488e-7 -0.23738 -0.9714168 2.98023e-8 -2.11103e-7 0.971417 -0.2373798 -0.4310732 0 0 0 1 1 2.58702e-7 1.70197e-7 7.45058e-9 2.2649e-7 -0.2362132 -0.9717014 2.98023e-8 -2.11178e-7 0.9717014 -0.2362131 -0.4310732 0 0 0 1 1 2.5832e-7 1.71049e-7 1.49012e-8 2.26495e-7 -0.232838 -0.9725155 5.96046e-8 -2.11394e-7 0.9725156 -0.232838 -0.4310732 0 0 0 1 1 2.57705e-7 1.72408e-7 0 2.26501e-7 -0.2274397 -0.9737923 0 -2.11738e-7 0.9737923 -0.2274396 -0.4310733 0 0 0 1 1 2.56868e-7 1.74221e-7 7.45058e-9 2.26507e-7 -0.2202001 -0.9754546 2.98023e-8 -2.122e-7 0.9754546 -0.2202001 -0.4310732 0 0 0 1 1 2.55824e-7 1.76437e-7 -7.45058e-9 2.2651e-7 -0.2113017 -0.9774209 1.49012e-8 -2.12766e-7 0.9774209 -0.2113016 -0.4310733 0 0 0 1 1 2.54584e-7 1.79004e-7 -7.45058e-9 2.26506e-7 -0.2009258 -0.9796066 -4.47035e-8 -2.13425e-7 0.9796066 -0.2009258 -0.4310733 0 0 0 1 1 2.5316e-7 1.81868e-7 0 2.26493e-7 -0.1892559 -0.9819279 5.96046e-8 -2.14165e-7 0.9819279 -0.1892558 -0.4310733 0 0 0 1 1 2.51565e-7 1.84977e-7 -7.45058e-9 2.2647e-7 -0.1764781 -0.9843047 0 -2.14972e-7 0.9843047 -0.176478 -0.4310733 0 0 0 1 1 2.49815e-7 1.88279e-7 0 2.26433e-7 -0.1627813 -0.9866621 0 -2.15835e-7 0.9866621 -0.1627811 -0.4310732 0 0 0 1 1 2.47928e-7 1.91721e-7 -7.45058e-9 2.26381e-7 -0.1483572 -0.9889339 -1.49012e-8 -2.16741e-7 0.9889339 -0.1483572 -0.4310733 0 0 0 1 1 2.45923e-7 1.95252e-7 1.49012e-8 2.26314e-7 -0.1334014 -0.991062 1.49012e-8 -2.17678e-7 0.9910621 -0.1334014 -0.4310732 0 0 0 1 1 2.43822e-7 1.98824e-7 -1.49012e-8 2.2623e-7 -0.118112 -0.9930004 -1.49012e-8 -2.18632e-7 0.9930004 -0.1181119 -0.4310733 0 0 0 1 1 2.41652e-7 2.02386e-7 0 2.26131e-7 -0.1026897 -0.9947135 -3.72529e-8 -2.19591e-7 0.9947135 -0.1026897 -0.4310732 0 0 0 1 1 2.3944e-7 2.05893e-7 7.45058e-9 2.26018e-7 -0.08733717 -0.9961788 -1.49012e-8 -2.20543e-7 0.9961788 -0.08733711 -0.4310732 0 0 0 1 1 2.37218e-7 2.09299e-7 -7.45058e-9 2.25893e-7 -0.07225832 -0.997386 -7.45058e-9 -2.21475e-7 0.997386 -0.07225817 -0.4310732 0 0 0 1 1 2.35017e-7 2.12566e-7 -7.45058e-9 2.25758e-7 -0.05763507 -0.9983379 7.45058e-8 -2.22375e-7 0.998338 -0.05763498 -0.4310732 0 0 0 1 1 2.32856e-7 2.15676e-7 0 2.25615e-7 -0.04356194 -0.9990507 6.33299e-8 -2.23239e-7 0.9990507 -0.04356188 -0.4310732 0 0 0 1 1 2.3075e-7 2.18619e-7 0 2.25468e-7 -0.03011096 -0.9995465 6.33299e-8 -2.24063e-7 0.9995465 -0.0301109 -0.4310733 0 0 0 1 1 2.28718e-7 2.21382e-7 0 2.25318e-7 -0.01735258 -0.9998494 -5.21541e-8 -2.24842e-7 0.9998494 -0.01735249 -0.4310732 0 0 0 1 1 2.26775e-7 2.23956e-7 0 2.25168e-7 -0.005356282 -0.9999857 -2.8871e-8 -2.25572e-7 0.9999856 -0.005356222 -0.4310733 0 0 0 1 1 2.24939e-7 2.2633e-7 0 2.2502e-7 0.005809188 -0.9999831 -1.67638e-8 -2.2625e-7 0.9999832 0.005809307 -0.4310732 0 0 0 1 1 2.23228e-7 2.28496e-7 -7.45058e-9 2.24877e-7 0.01607645 -0.9998708 2.98023e-8 -2.26872e-7 0.9998708 0.01607662 -0.4310733 0 0 0 1 1 2.21658e-7 2.30442e-7 0 2.24743e-7 0.02537924 -0.999678 7.45058e-9 -2.27435e-7 0.999678 0.0253793 -0.4310733 0 0 0 1 1 2.20246e-7 2.32162e-7 0 2.24618e-7 0.03365147 -0.9994336 -1.49012e-8 -2.27934e-7 0.9994337 0.03365156 -0.4310732 0 0 0 1 1 2.19009e-7 2.33644e-7 0 2.24507e-7 0.04082832 -0.9991661 -7.45058e-9 -2.28366e-7 0.9991662 0.04082841 -0.4310732 0 0 0 1 1 2.17964e-7 2.3488e-7 -1.49012e-8 2.24411e-7 0.04684514 -0.9989021 -7.45058e-9 -2.28728e-7 0.9989021 0.0468452 -0.4310733 0 0 0 1 1 2.17126e-7 2.3586e-7 0 2.24334e-7 0.05163768 -0.9986659 2.98023e-8 -2.29016e-7 0.998666 0.05163774 -0.4310733 0 0 0 1 1 2.1651e-7 2.36575e-7 -7.45058e-9 2.24276e-7 0.05514105 -0.9984787 -7.45058e-9 -2.29226e-7 0.9984787 0.05514111 -0.4310733 0 0 0 1 1 2.16131e-7 2.37012e-7 -7.45058e-9 2.2424e-7 0.05729116 -0.9983575 1.49012e-8 -2.29355e-7 0.9983576 0.05729122 -0.4310732 0 0 0 1 1 1.973e-7 1.04755e-7 0 9.31304e-8 0.05802244 -0.9983154 0 -2.03046e-7 0.9983155 0.05802245 -0.4310732 0 0 0 1 1 1.97831e-7 1.03787e-7 -7.45058e-9 9.31232e-8 0.05316371 -0.9985858 7.45058e-9 -2.03069e-7 0.9985858 0.05316377 -0.4310732 0 0 0 1 1 1.993e-7 1.01049e-7 -7.45058e-9 9.31035e-8 0.03947142 -0.9992208 -7.45058e-9 -2.03133e-7 0.9992207 0.03947148 -0.4310732 0 0 0 1 1 2.015e-7 9.67703e-8 -7.45058e-9 9.30748e-8 0.01826009 -0.9998333 3.72529e-9 -2.03233e-7 0.9998334 0.01826018 -0.4310732 0 0 0 1 1 2.04206e-7 9.11767e-8 0 9.30408e-8 -0.009147048 -0.9999582 2.79397e-8 -2.03364e-7 0.9999582 -0.009146929 -0.4310732 0 0 0 1 1 2.07193e-7 8.45015e-8 7.45058e-9 9.30054e-8 -0.04139304 -0.9991429 1.02445e-8 -2.03518e-7 0.999143 -0.04139307 -0.4310732 0 0 0 1 1 2.1025e-7 7.69954e-8 -7.45058e-9 9.29721e-8 -0.07707849 -0.997025 -2.79397e-8 -2.0369e-7 0.9970251 -0.07707843 -0.4310733 0 0 0 1 1 2.13194e-7 6.89314e-8 0 9.29434e-8 -0.1147667 -0.9933925 -4.09782e-8 -2.03874e-7 0.9933925 -0.1147667 -0.4310732 0 0 0 1 1 2.15877e-7 6.06053e-8 7.45058e-9 9.29215e-8 -0.1530031 -0.9882258 3.72529e-8 -2.04062e-7 0.9882258 -0.153003 -0.4310733 0 0 0 1 1 2.18198e-7 5.23312e-8 0 9.2907e-8 -0.1903436 -0.9817176 1.49012e-8 -2.04248e-7 0.9817176 -0.1903436 -0.4310732 0 0 0 1 1 2.20102e-7 4.44355e-8 0 9.28997e-8 -0.2253849 -0.9742699 -1.49012e-8 -2.04423e-7 0.9742699 -0.2253848 -0.4310732 0 0 0 1 1 2.21577e-7 3.72499e-8 7.45058e-9 9.28986e-8 -0.2567855 -0.9664685 1.49012e-8 -2.04582e-7 0.9664686 -0.2567854 -0.4310733 0 0 0 1 1 2.22648e-7 3.11045e-8 7.45058e-9 9.29017e-8 -0.2832776 -0.959038 -2.98023e-8 -2.04717e-7 0.959038 -0.2832776 -0.4310733 0 0 0 1 1 2.23362e-7 2.63244e-8 7.45058e-9 9.29067e-8 -0.3036564 -0.9527816 0 -2.04822e-7 0.9527817 -0.3036564 -0.4310732 0 0 0 1 1 2.23769e-7 2.32276e-8 0 9.2911e-8 -0.3167533 -0.948508 0 -2.04889e-7 0.948508 -0.3167533 -0.4310733 0 0 0 1 1 2.23903e-7 2.21265e-8 0 9.29128e-8 -0.3213899 -0.946947 -2.98023e-8 -2.04913e-7 0.946947 -0.3213899 -0.4310732 0 0 0 1 1 2.23873e-7 2.23788e-8 -7.45058e-9 9.29131e-8 -0.320331 -0.9473056 2.98023e-8 -2.04908e-7 0.9473057 -0.3203311 -0.4310732 0 0 0 1 1 2.23787e-7 2.30886e-8 -1.49012e-8 9.29139e-8 -0.3173497 -0.9483087 -1.49012e-8 -2.04892e-7 0.9483087 -0.3173496 -0.4310733 0 0 0 1 1 2.2365e-7 2.41847e-8 7.45058e-9 9.29152e-8 -0.3127367 -0.9498399 2.98023e-8 -2.04868e-7 0.9498399 -0.3127366 -0.4310732 0 0 0 1 1 2.23466e-7 2.55961e-8 -7.45058e-9 9.29171e-8 -0.306782 -0.9517798 -1.49012e-8 -2.04838e-7 0.9517798 -0.306782 -0.4310733 0 0 0 1 1 2.23238e-7 2.72512e-8 1.49012e-8 9.29195e-8 -0.299777 -0.9540094 -1.49012e-8 -2.04802e-7 0.9540094 -0.2997768 -0.4310732 0 0 0 1 1 2.22972e-7 2.90791e-8 7.45058e-9 9.29225e-8 -0.2920137 -0.9564143 -1.49012e-8 -2.04762e-7 0.9564143 -0.2920136 -0.4310733 0 0 0 1 1 2.22675e-7 3.10086e-8 7.45058e-9 9.29261e-8 -0.2837871 -0.9588873 2.98023e-8 -2.0472e-7 0.9588873 -0.283787 -0.4310733 0 0 0 1 1 2.22356e-7 3.29695e-8 -7.45058e-9 9.293e-8 -0.2753944 -0.9613314 2.98023e-8 -2.04678e-7 0.9613314 -0.2753944 -0.4310732 0 0 0 1 1 2.22025e-7 3.48914e-8 -7.45058e-9 9.29343e-8 -0.2671355 -0.9636589 5.96046e-8 -2.04636e-7 0.9636589 -0.2671355 -0.4310732 0 0 0 1 1 2.21698e-7 3.67052e-8 -7.45058e-9 9.29386e-8 -0.2593124 -0.9657937 0 -2.04596e-7 0.9657936 -0.2593123 -0.4310732 0 0 0 1 1 2.2139e-7 3.83418e-8 7.45058e-9 9.29428e-8 -0.2522283 -0.9676678 0 -2.04561e-7 0.9676678 -0.2522283 -0.4310732 0 0 0 1 1 2.21118e-7 3.97329e-8 -7.45058e-9 9.29466e-8 -0.2461883 -0.969222 -2.98023e-8 -2.04531e-7 0.9692221 -0.2461883 -0.4310732 0 0 0 1 1 2.20901e-7 4.08107e-8 0 9.29497e-8 -0.2414971 -0.9704015 2.98023e-8 -2.04507e-7 0.9704015 -0.2414971 -0.4310732 0 0 0 1 1 2.20758e-7 4.15073e-8 -1.49012e-8 9.29517e-8 -0.2384597 -0.9711525 -2.98023e-8 -2.04492e-7 0.9711525 -0.2384597 -0.4310733 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -1.50996e-7 4.9738e-14 -0.08954165 -1.32845e-7 -0.8797947 0.4753538 0.02421998 -7.17764e-8 -0.4753538 -0.8797947 0.03911464 0 0 0 1 1 -1.51081e-7 -3.38403e-10 -0.08954165 -1.32923e-7 -0.8808763 0.4733466 0.02421998 -7.18118e-8 -0.4733466 -0.8808763 0.03911464 0 0 0 1 1 -1.51325e-7 -1.32488e-9 -0.08954165 -1.33151e-7 -0.883999 0.4674889 0.02421998 -7.19137e-8 -0.4674889 -0.883999 0.03911464 0 0 0 1 1 -1.51703e-7 -2.91824e-9 -0.08954165 -1.3352e-7 -0.8889502 0.4580039 0.02421998 -7.20749e-8 -0.4580039 -0.8889502 0.03911464 0 0 0 1 1 -1.52189e-7 -5.07937e-9 -0.08954165 -1.34022e-7 -0.8954841 0.4450934 0.02421998 -7.22866e-8 -0.4450934 -0.8954841 0.03911464 0 0 0 1 1 -1.52747e-7 -7.77001e-9 -0.08954165 -1.34648e-7 -0.9033299 0.4289464 0.02421998 -7.25391e-8 -0.4289464 -0.9033299 0.03911464 0 0 0 1 1 -1.53343e-7 -1.09517e-8 -0.08954165 -1.35391e-7 -0.9121982 0.4097492 0.02421998 -7.28221e-8 -0.4097492 -0.9121982 0.03911464 0 0 0 1 1 -1.53938e-7 -1.45846e-8 -0.08954165 -1.36244e-7 -0.9217883 0.3876937 0.02421998 -7.31247e-8 -0.3876937 -0.9217883 0.03911464 0 0 0 1 1 -1.54496e-7 -1.8627e-8 -0.08954165 -1.37197e-7 -0.9317952 0.3629846 0.02421998 -7.34361e-8 -0.3629846 -0.9317952 0.03911464 0 0 0 1 1 -1.54979e-7 -2.30343e-8 -0.08954165 -1.38242e-7 -0.9419171 0.3358454 0.02421998 -7.37455e-8 -0.3358454 -0.9419171 0.03911464 0 0 0 1 1 -1.55355e-7 -2.77589e-8 -0.08954165 -1.39368e-7 -0.951863 0.3065238 0.02421998 -7.40427e-8 -0.3065238 -0.951863 0.03911464 0 0 0 1 1 -1.55593e-7 -3.27499e-8 -0.08954165 -1.40565e-7 -0.9613603 0.2752931 0.02421998 -7.4318e-8 -0.2752931 -0.9613603 0.03911464 0 0 0 1 1 -1.55666e-7 -3.79535e-8 -0.08954165 -1.4182e-7 -0.9701628 0.2424542 0.02421998 -7.45631e-8 -0.2424542 -0.9701628 0.03911464 0 0 0 1 1 -1.55558e-7 -4.33132e-8 -0.08954165 -1.43121e-7 -0.9780577 0.2083342 0.02421998 -7.47708e-8 -0.2083342 -0.9780577 0.03911464 0 0 0 1 1 -1.55254e-7 -4.87705e-8 -0.08954165 -1.44454e-7 -0.984872 0.1732831 0.02421998 -7.49356e-8 -0.1732831 -0.984872 0.03911464 0 0 0 1 1 -1.54749e-7 -5.42658e-8 -0.08954165 -1.45805e-7 -0.9904781 0.1376704 0.02421998 -7.50535e-8 -0.1376704 -0.9904781 0.03911464 0 0 0 1 1 -1.54047e-7 -5.97394e-8 -0.08954165 -1.47159e-7 -0.9947968 0.1018787 0.02421998 -7.51227e-8 -0.1018787 -0.9947968 0.03911464 0 0 0 1 1 -1.53157e-7 -6.51323e-8 -0.08954165 -1.48502e-7 -0.9977999 0.06629794 0.02421998 -7.5143e-8 -0.06629794 -0.9977999 0.03911464 0 0 0 1 1 -1.52098e-7 -7.03875e-8 -0.08954165 -1.49819e-7 -0.9995095 0.0313181 0.02421998 -7.51164e-8 -0.0313181 -0.9995095 0.03911464 0 0 0 1 1 -1.50895e-7 -7.54506e-8 -0.08954165 -1.51096e-7 -0.9999964 -0.002676592 0.02421998 -7.50464e-8 0.002676592 -0.9999964 0.03911464 0 0 0 1 1 -1.49578e-7 -8.02706e-8 -0.08954165 -1.52319e-7 -0.9993762 -0.03531351 0.02421998 -7.49384e-8 0.03531351 -0.9993762 0.03911464 0 0 0 1 1 -1.48184e-7 -8.48005e-8 -0.08954165 -1.53476e-7 -0.997804 -0.06623603 0.02421998 -7.47992e-8 0.06623603 -0.997804 0.03911464 0 0 0 1 1 -1.46754e-7 -8.89973e-8 -0.08954165 -1.54553e-7 -0.9954671 -0.0951069 0.02421998 -7.46365e-8 0.0951069 -0.9954671 0.03911464 0 0 0 1 1 -1.45331e-7 -9.28217e-8 -0.08954165 -1.5554e-7 -0.9925781 -0.1216085 0.02421998 -7.44594e-8 0.1216085 -0.9925781 0.03911464 0 0 0 1 1 -1.4396e-7 -9.62383e-8 -0.08954165 -1.56426e-7 -0.9893666 -0.1454435 0.02421998 -7.4277e-8 0.1454435 -0.9893666 0.03911464 0 0 0 1 1 -1.42687e-7 -9.92144e-8 -0.08954165 -1.57202e-7 -0.9860699 -0.1663315 0.02421998 -7.4099e-8 0.1663315 -0.9860699 0.03911464 0 0 0 1 1 -1.41557e-7 -1.01719e-7 -0.08954165 -1.57857e-7 -0.9829251 -0.184006 0.02421998 -7.39351e-8 0.184006 -0.9829251 0.03911464 0 0 0 1 1 -1.40613e-7 -1.03723e-7 -0.08954165 -1.58382e-7 -0.9801598 -0.1982091 0.02421998 -7.37945e-8 0.1982091 -0.9801598 0.03911464 0 0 0 1 1 -1.39897e-7 -1.05196e-7 -0.08954165 -1.5877e-7 -0.9779829 -0.2086847 0.02421998 -7.36856e-8 0.2086847 -0.9779829 0.03911464 0 0 0 1 1 -1.39445e-7 -1.06106e-7 -0.08954165 -1.5901e-7 -0.9765761 -0.2151721 0.02421998 -7.3616e-8 0.2151721 -0.9765761 0.03911464 0 0 0 1 1 -1.50996e-7 4.26326e-14 -0.08954165 -1.47384e-7 -0.976083 -0.2173982 0.02421998 3.28263e-8 0.2173982 -0.976083 0.03911464 0 0 0 1 1 -1.51067e-7 6.5662e-10 -0.08954165 -1.47455e-7 -0.9770183 -0.2131555 0.02421998 3.28422e-8 0.2131555 -0.9770183 0.03911464 0 0 0 1 1 -1.51257e-7 2.5789e-9 -0.08954165 -1.47661e-7 -0.979646 -0.2007328 0.02421998 3.28887e-8 0.2007328 -0.979646 0.03911464 0 0 0 1 1 -1.51515e-7 5.69999e-9 -0.08954165 -1.47996e-7 -0.9835666 -0.1805459 0.02421998 3.29617e-8 0.1805459 -0.9835666 0.03911464 0 0 0 1 1 -1.51762e-7 9.95615e-9 -0.08954165 -1.48453e-7 -0.9882304 -0.1529729 0.02421998 3.30544e-8 0.1529729 -0.9882304 0.03911464 0 0 0 1 1 -1.51904e-7 1.52831e-8 -0.08954165 -1.49026e-7 -0.992968 -0.1183832 0.02421998 3.31584e-8 0.1183832 -0.992968 0.03911464 0 0 0 1 1 -1.51831e-7 2.16118e-8 -0.08954165 -1.4971e-7 -0.9970182 -0.07716671 0.02421998 3.32636e-8 0.07716671 -0.9970182 0.03911464 0 0 0 1 1 -1.51425e-7 2.88646e-8 -0.08954165 -1.50499e-7 -0.999557 -0.02976404 0.02421998 3.33589e-8 0.02976404 -0.999557 0.03911464 0 0 0 1 1 -1.50565e-7 3.69519e-8 -0.08954165 -1.51385e-7 -0.9997283 0.0233081 0.02421998 3.34325e-8 -0.0233081 -0.9997283 0.03911464 0 0 0 1 1 -1.49129e-7 4.57691e-8 -0.08954165 -1.52361e-7 -0.9966786 0.08143603 0.02421998 3.34727e-8 -0.08143603 -0.9966786 0.03911464 0 0 0 1 1 -1.47004e-7 5.51958e-8 -0.08954165 -1.53416e-7 -0.9895926 0.1438971 0.02421998 3.3468e-8 -0.1438971 -0.9895926 0.03911464 0 0 0 1 1 -1.44089e-7 6.50956e-8 -0.08954165 -1.54541e-7 -0.9777322 0.2098567 0.02421998 3.34081e-8 -0.2098567 -0.9777322 0.03911464 0 0 0 1 1 -1.40301e-7 7.53178e-8 -0.08954165 -1.55722e-7 -0.9604719 0.2783768 0.02421998 3.32841e-8 -0.2783768 -0.9604719 0.03911464 0 0 0 1 1 -1.35582e-7 8.57013e-8 -0.08954165 -1.56947e-7 -0.9373328 0.3484354 0.02421998 3.3089e-8 -0.3484354 -0.9373328 0.03911464 0 0 0 1 1 -1.29899e-7 9.60788e-8 -0.08954165 -1.58202e-7 -0.908007 0.4189552 0.02421998 3.28183e-8 -0.4189552 -0.908007 0.03911464 0 0 0 1 1 -1.23247e-7 1.06283e-7 -0.08954165 -1.59473e-7 -0.872373 0.4888408 0.02421998 3.24699e-8 -0.4888408 -0.872373 0.03911464 0 0 0 1 1 -1.15714e-7 1.16089e-7 -0.08954165 -1.60742e-7 -0.8308836 0.5564463 0.02421998 3.20683e-8 -0.5564463 -0.8308836 0.03911464 0 0 0 1 1 -1.0793e-7 1.24783e-7 -0.08954165 -1.6192e-7 -0.787133 0.6167832 0.02421998 3.16516e-8 -0.6167832 -0.787133 0.03911464 0 0 0 1 1 -1.00918e-7 1.3163e-7 -0.08954165 -1.62891e-7 -0.7471242 0.6646845 0.02421998 3.12657e-8 -0.6646845 -0.7471242 0.03911464 0 0 0 1 1 -9.58506e-8 1.36091e-7 -0.08954165 -1.63549e-7 -0.7179278 0.6961176 0.02421998 3.09805e-8 -0.6961176 -0.7179278 0.03911464 0 0 0 1 1 -9.39157e-8 1.37699e-7 -0.08954165 -1.63793e-7 -0.7067257 0.7074876 0.02421998 3.08711e-8 -0.7074876 -0.7067257 0.03911464 0 0 0 1 1 -9.49157e-8 1.36871e-7 -0.08954165 -1.63666e-7 -0.7125059 0.7016662 0.02421998 3.0922e-8 -0.7016662 -0.7125059 0.03911464 0 0 0 1 1 -9.7595e-8 1.34582e-7 -0.08954165 -1.63318e-7 -0.7279488 0.6856314 0.02421998 3.10547e-8 -0.6856314 -0.7279488 0.03911464 0 0 0 1 1 -1.01446e-7 1.31105e-7 -0.08954165 -1.62801e-7 -0.7500317 0.661402 0.02421998 3.12361e-8 -0.661402 -0.7500317 0.03911464 0 0 0 1 1 -1.0596e-7 1.26723e-7 -0.08954165 -1.62167e-7 -0.7757228 0.6310738 0.02421998 3.14331e-8 -0.6310738 -0.7757228 0.03911464 0 0 0 1 1 -1.10658e-7 1.21767e-7 -0.08954165 -1.6147e-7 -0.8022222 0.5970257 0.02421998 3.16183e-8 -0.5970257 -0.8022222 0.03911464 0 0 0 1 1 -1.15122e-7 1.16631e-7 -0.08954165 -1.60768e-7 -0.8271427 0.561992 0.02421998 3.17727e-8 -0.561992 -0.8271427 0.03911464 0 0 0 1 1 -1.19011e-7 1.11768e-7 -0.08954165 -1.60121e-7 -0.8486072 0.5290233 0.02421998 3.18874e-8 -0.5290233 -0.8486072 0.03911464 0 0 0 1 1 -1.22054e-7 1.07668e-7 -0.08954165 -1.59587e-7 -0.8652282 0.5013782 0.02421998 3.19625e-8 -0.5013782 -0.8652282 0.03911464 0 0 0 1 1 -1.24036e-7 1.04843e-7 -0.08954165 -1.59225e-7 -0.8759558 0.4823915 0.02421998 3.20034e-8 -0.4823915 -0.8759558 0.03911464 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -1.82491e-7 9.23719e-8 0 8.78508e-8 0.7910497 0.6117519 0 -1.8471e-7 -0.6117519 0.7910497 -0.375647 0 0 0 1 1 -1.82502e-7 9.21309e-8 0 8.77097e-8 0.7900649 0.6130231 -1.49012e-8 -1.84667e-7 -0.6130231 0.7900649 -0.3756471 0 0 0 1 1 -1.82529e-7 9.14523e-8 0 8.73129e-8 0.7872824 0.6165926 1.49012e-8 -1.84545e-7 -0.6165926 0.7872824 -0.3756471 0 0 0 1 1 -1.82565e-7 9.04029e-8 0 8.67007e-8 0.7829491 0.6220857 0 -1.84352e-7 -0.6220857 0.7829491 -0.3756471 0 0 0 1 1 -1.82601e-7 8.90498e-8 0 8.59134e-8 0.7773059 0.6291227 0 -1.84097e-7 -0.6291227 0.7773059 -0.375647 0 0 0 1 1 -1.82627e-7 8.74598e-8 0 8.49915e-8 0.7705957 0.6373243 1.49012e-8 -1.83789e-7 -0.6373243 0.7705957 -0.3756471 0 0 0 1 1 -1.82637e-7 8.57004e-8 1.49012e-8 8.39752e-8 0.7630702 0.6463159 0 -1.83436e-7 -0.6463159 0.7630702 -0.3756471 0 0 0 1 1 -1.82625e-7 8.3839e-8 7.45058e-9 8.29047e-8 0.7549945 0.6557313 0 -1.83051e-7 -0.6557313 0.7549945 -0.3756471 0 0 0 1 1 -1.82588e-7 8.19435e-8 0 8.18194e-8 0.7466503 0.6652167 -1.49012e-8 -1.82644e-7 -0.6652167 0.7466503 -0.3756471 0 0 0 1 1 -1.82529e-7 8.0082e-8 -7.45058e-9 8.07583e-8 0.7383364 0.6744326 1.49012e-8 -1.82231e-7 -0.6744326 0.7383364 -0.3756471 0 0 0 1 1 -1.82453e-7 7.83221e-8 -7.45058e-9 7.97594e-8 0.7303687 0.683053 7.45058e-9 -1.81829e-7 -0.683053 0.7303687 -0.375647 0 0 0 1 1 -1.82365e-7 7.67317e-8 0 7.88604e-8 0.7230778 0.6907667 7.45058e-9 -1.81455e-7 -0.6907667 0.7230778 -0.375647 0 0 0 1 1 -1.82277e-7 7.53781e-8 0 7.8098e-8 0.7168041 0.6972747 7.45058e-9 -1.81129e-7 -0.6972747 0.7168041 -0.3756471 0 0 0 1 1 -1.82201e-7 7.43283e-8 -7.45058e-9 7.75084e-8 0.7118958 0.7022852 0 -1.80871e-7 -0.7022852 0.7118958 -0.375647 0 0 0 1 1 -1.82148e-7 7.36494e-8 -1.49012e-8 7.71279e-8 0.7087014 0.7055086 3.72529e-9 -1.80702e-7 -0.7055086 0.7087014 -0.375647 0 0 0 1 1 -1.82128e-7 7.34082e-8 0 7.69929e-8 0.7075625 0.7066507 0 -1.80642e-7 -0.7066507 0.7075625 -0.375647 0 0 0 1 1 -1.8219e-7 7.40854e-8 7.45058e-9 7.73468e-8 0.7106338 0.7035621 0 -1.8083e-7 -0.7035621 0.7106338 -0.3756471 0 0 0 1 1 -1.8235e-7 7.59935e-8 -7.45058e-9 7.83476e-8 0.7192084 0.6947945 0 -1.81351e-7 -0.6947945 0.7192084 -0.3756471 0 0 0 1 1 -1.8255e-7 7.8949e-8 0 7.99084e-8 0.7322606 0.6810244 -9.31323e-10 -1.82133e-7 -0.6810244 0.7322606 -0.3756471 0 0 0 1 1 -1.82727e-7 8.27674e-8 0 8.19438e-8 0.7487133 0.662894 2.32831e-10 -1.83097e-7 -0.662894 0.7487133 -0.375647 0 0 0 1 1 -1.82814e-7 8.72608e-8 0 8.43663e-8 0.7674825 0.6410699 9.31323e-10 -1.84168e-7 -0.6410699 0.7674825 -0.3756471 0 0 0 1 1 -1.8276e-7 9.2236e-8 -7.45058e-9 8.70829e-8 0.7875191 0.6162902 0 -1.85271e-7 -0.6162902 0.7875191 -0.375647 0 0 0 1 1 -1.8253e-7 9.74954e-8 -7.45058e-9 8.9994e-8 0.8078485 0.5893902 0 -1.86343e-7 -0.5893902 0.8078485 -0.375647 0 0 0 1 1 -1.82114e-7 1.02839e-7 7.45058e-9 9.29933e-8 0.8276026 0.5613146 -3.72529e-9 -1.87333e-7 -0.5613146 0.8276026 -0.375647 0 0 0 1 1 -1.81528e-7 1.08068e-7 7.45058e-9 9.59687e-8 0.8460453 0.5331112 -3.72529e-9 -1.88205e-7 -0.5331112 0.8460453 -0.3756471 0 0 0 1 1 -1.80812e-7 1.12986e-7 -7.45058e-9 9.88048e-8 0.8625836 0.5059144 7.45058e-9 -1.88935e-7 -0.5059144 0.8625836 -0.375647 0 0 0 1 1 -1.80032e-7 1.17404e-7 0 1.01384e-7 0.8767643 0.4809202 1.49012e-8 -1.89517e-7 -0.4809202 0.8767643 -0.375647 0 0 0 1 1 -1.7927e-7 1.21141e-7 -1.49012e-8 1.03589e-7 0.8882512 0.4593579 7.45058e-9 -1.89953e-7 -0.4593579 0.8882512 -0.375647 0 0 0 1 1 -1.78616e-7 1.24023e-7 -7.45058e-9 1.05304e-7 0.8967854 0.4424657 0 -1.90254e-7 -0.4424657 0.8967854 -0.3756471 0 0 0 1 1 -1.78165e-7 1.25879e-7 -1.49012e-8 1.06416e-7 0.9021297 0.4314651 0 -1.90431e-7 -0.4314651 0.9021297 -0.375647 0 0 0 1 1 -1.65437e-7 6.45572e-8 0 1.21953e-7 0.903995 0.4275432 7.45058e-9 -1.29091e-7 -0.4275432 0.903995 -0.3756471 0 0 0 1 1 -1.65539e-7 6.28213e-8 0 1.21171e-7 0.8985401 0.4388915 7.45058e-9 -1.29101e-7 -0.4388915 0.8985401 -0.3756471 0 0 0 1 1 -1.65708e-7 5.79009e-8 -7.45058e-9 1.18958e-7 0.8823252 0.4706401 7.45058e-9 -1.29076e-7 -0.4706401 0.8823252 -0.3756471 0 0 0 1 1 -1.65622e-7 5.021e-8 7.45058e-9 1.15506e-7 0.8547559 0.5190303 7.45058e-9 -1.2888e-7 -0.5190303 0.8547559 -0.375647 0 0 0 1 1 -1.64866e-7 4.01929e-8 0 1.11023e-7 0.8147655 0.5797908 3.72529e-9 -1.28335e-7 -0.5797908 0.8147655 -0.3756471 0 0 0 1 1 -1.63018e-7 2.83783e-8 -7.45058e-9 1.05755e-7 0.7615547 0.6481006 0 -1.27264e-7 -0.6481006 0.7615547 -0.375647 0 0 0 1 1 -1.59748e-7 1.54023e-8 7.45058e-9 9.9995e-8 0.6952548 0.7187634 0 -1.2553e-7 -0.7187634 0.6952548 -0.375647 0 0 0 1 1 -1.54897e-7 1.98788e-9 0 9.40702e-8 0.6174045 0.7866458 9.31323e-10 -1.23076e-7 -0.7866458 0.6174045 -0.3756471 0 0 0 1 1 -1.48542e-7 -1.11198e-8 0 8.8314e-8 0.5311109 0.8473023 -9.31323e-10 -1.19954e-7 -0.8473023 0.5311109 -0.3756471 0 0 0 1 1 -1.4101e-7 -2.3244e-8 7.45058e-9 8.30235e-8 0.44082 0.8975955 -1.86265e-9 -1.16323e-7 -0.8975955 0.44082 -0.3756471 0 0 0 1 1 -1.32836e-7 -3.38599e-8 -7.45058e-9 7.84235e-8 0.3517694 0.9360867 -3.72529e-9 -1.12435e-7 -0.9360867 0.3517694 -0.3756471 0 0 0 1 1 -1.24688e-7 -4.26408e-8 1.49012e-8 7.4647e-8 0.2693275 0.9630488 0 -1.08596e-7 -0.9630488 0.2693275 -0.3756471 0 0 0 1 1 -1.17273e-7 -4.94508e-8 -7.45058e-9 7.17406e-8 0.1984538 0.9801102 0 -1.05127e-7 -0.9801102 0.1984538 -0.3756471 0 0 0 1 1 -1.11271e-7 -5.42906e-8 7.45058e-9 6.96901e-8 0.1434426 0.9896587 -7.45058e-9 -1.02332e-7 -0.9896587 0.1434426 -0.3756471 0 0 0 1 1 -1.07289e-7 -5.72101e-8 0 6.84605e-8 0.1079777 0.9941532 0 -1.00485e-7 -0.9941532 0.1079777 -0.375647 0 0 0 1 1 -1.05858e-7 -5.82071e-8 7.45058e-9 6.80421e-8 0.09541538 0.9954376 0 -9.98216e-8 -0.9954376 0.09541538 -0.3756471 0 0 0 1 1 -1.06986e-7 -5.74341e-8 0 6.84018e-8 0.1055111 0.994418 0 -1.00329e-7 -0.994418 0.1055111 -0.375647 0 0 0 1 1 -1.10128e-7 -5.51895e-8 7.45058e-9 6.94453e-8 0.1339645 0.9909862 1.49012e-8 -1.01742e-7 -0.9909862 0.1339645 -0.3756471 0 0 0 1 1 -1.14886e-7 -5.15209e-8 -7.45058e-9 7.11481e-8 0.1780031 0.98403 0 -1.0388e-7 -0.98403 0.1780031 -0.3756471 0 0 0 1 1 -1.20813e-7 -4.64444e-8 7.45058e-9 7.34997e-8 0.2346787 0.972073 0 -1.0654e-7 -0.972073 0.2346787 -0.3756471 0 0 0 1 1 -1.27437e-7 -4.00031e-8 7.45058e-9 7.64772e-8 0.3007442 0.9537049 1.49012e-8 -1.09507e-7 -0.9537049 0.3007442 -0.375647 0 0 0 1 1 -1.34275e-7 -3.23149e-8 7.45058e-9 8.00234e-8 0.3726389 0.9279765 -2.98023e-8 -1.12562e-7 -0.9279765 0.3726389 -0.3756471 0 0 0 1 1 -1.40872e-7 -2.36023e-8 7.45058e-9 8.40338e-8 0.44662 0.8947237 -2.98023e-8 -1.155e-7 -0.8947237 0.44662 -0.3756471 0 0 0 1 1 -1.46849e-7 -1.41989e-8 0 8.8354e-8 0.5190172 0.8547637 0 -1.18152e-7 -0.8547637 0.5190172 -0.375647 0 0 0 1 1 -1.51934e-7 -4.53275e-9 7.45058e-9 9.27874e-8 0.5865436 0.8099177 1.49012e-8 -1.20396e-7 -0.8099177 0.5865436 -0.3756471 0 0 0 1 1 -1.55989e-7 4.91e-9 7.45058e-9 9.71116e-8 0.6465646 0.7628592 0 -1.22173e-7 -0.7628592 0.6465646 -0.375647 0 0 0 1 1 -1.59006e-7 1.36261e-8 0 1.01098e-7 0.6972403 0.7168373 0 -1.23482e-7 -0.7168373 0.6972403 -0.375647 0 0 0 1 1 -1.61085e-7 2.11316e-8 -7.45058e-9 1.04527e-7 0.7374908 0.6753571 1.49012e-8 -1.24374e-7 -0.6753571 0.7374908 -0.375647 0 0 0 1 1 -1.62386e-7 2.69808e-8 1.49012e-8 1.07197e-7 0.7667888 0.6418994 -1.49012e-8 -1.24924e-7 -0.6418994 0.7667888 -0.375647 0 0 0 1 1 -1.63085e-7 3.07678e-8 1.49012e-8 1.08925e-7 0.7848199 0.619724 0 -1.25215e-7 -0.619724 0.7848199 -0.3756471 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - 0 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 1.291667 1.333333 1.375 1.416667 1.458333 1.5 1.541667 1.583333 1.625 1.666667 1.708333 1.75 1.791667 1.833333 1.875 1.916667 1.958333 2 2.041667 2.083333 2.125 2.166667 2.208333 2.25 2.291667 2.333333 2.375 2.416667 2.458333 - - - - - - - - 1 -2.3825e-7 -3.01186e-7 -7.45058e-9 -2.83652e-7 0.07045417 -0.9975151 7.45058e-9 2.58877e-7 0.9975151 0.07045422 -0.4310732 0 0 0 1 1 -2.39224e-7 -3.00348e-7 0 -2.83694e-7 0.06681252 -0.9977656 0 2.58757e-7 0.9977656 0.06681257 -0.4310732 0 0 0 1 1 -2.4197e-7 -2.97955e-7 0 -2.83811e-7 0.0564853 -0.9984034 -7.45058e-9 2.58414e-7 0.9984035 0.05648535 -0.4310732 0 0 0 1 1 -2.46205e-7 -2.94162e-7 -7.45058e-9 -2.83986e-7 0.04035893 -0.9991853 0 2.57877e-7 0.9991853 0.04035901 -0.4310732 0 0 0 1 1 -2.51633e-7 -2.89115e-7 0 -2.842e-7 0.01931971 -0.9998134 1.49012e-8 2.57172e-7 0.9998134 0.01931977 -0.4310733 0 0 0 1 1 -2.57953e-7 -2.8296e-7 1.49012e-8 -2.84434e-7 -0.005731463 -0.9999837 -1.11759e-8 2.56327e-7 0.9999838 -0.005731419 -0.4310732 0 0 0 1 1 -2.64866e-7 -2.75857e-7 0 -2.8467e-7 -0.03386962 -0.9994262 1.86265e-8 2.55371e-7 0.9994263 -0.03386953 -0.4310733 0 0 0 1 1 -2.72085e-7 -2.67991e-7 -7.45058e-9 -2.84892e-7 -0.06414352 -0.9979407 9.31323e-9 2.54334e-7 0.9979407 -0.06414346 -0.4310733 0 0 0 1 1 -2.79338e-7 -2.59575e-7 0 -2.85086e-7 -0.09558101 -0.9954218 -1.30385e-8 2.53249e-7 0.9954217 -0.09558089 -0.4310732 0 0 0 1 1 -2.86382e-7 -2.50854e-7 -7.45058e-9 -2.85244e-7 -0.1271988 -0.9918774 2.98023e-8 2.52147e-7 0.9918773 -0.1271986 -0.4310733 0 0 0 1 1 -2.93002e-7 -2.42103e-7 -7.45058e-9 -2.8536e-7 -0.1580167 -0.9874364 2.98023e-8 2.51065e-7 0.9874365 -0.1580166 -0.4310732 0 0 0 1 1 -2.99019e-7 -2.3362e-7 0 -2.85434e-7 -0.1870718 -0.9823464 -7.45058e-9 2.50036e-7 0.9823464 -0.1870718 -0.4310732 0 0 0 1 1 -3.04284e-7 -2.25725e-7 0 -2.85467e-7 -0.2134305 -0.9769583 2.23517e-8 2.49096e-7 0.9769583 -0.2134304 -0.4310733 0 0 0 1 1 -3.08679e-7 -2.18748e-7 0 -2.85467e-7 -0.2361934 -0.971706 1.49012e-8 2.48278e-7 0.9717062 -0.2361934 -0.4310732 0 0 0 1 1 -3.12108e-7 -2.13024e-7 7.45058e-9 -2.8544e-7 -0.2544962 -0.9670739 2.98023e-8 2.47617e-7 0.9670739 -0.2544961 -0.4310733 0 0 0 1 1 -3.14482e-7 -2.08884e-7 -7.45058e-9 -2.85396e-7 -0.2674987 -0.9635583 4.47035e-8 2.47146e-7 0.9635583 -0.2674987 -0.4310732 0 0 0 1 1 -3.16165e-7 -2.05851e-7 -7.45058e-9 -2.85347e-7 -0.2768966 -0.9608997 1.49012e-8 2.46804e-7 0.9608998 -0.2768965 -0.4310733 0 0 0 1 1 -3.17598e-7 -2.03212e-7 0 -2.85302e-7 -0.285009 -0.9585249 0 2.46508e-7 0.9585249 -0.285009 -0.4310732 0 0 0 1 1 -3.18806e-7 -2.00943e-7 0 -2.85261e-7 -0.2919388 -0.956437 0 2.46255e-7 0.9564371 -0.2919386 -0.4310732 0 0 0 1 1 -3.19815e-7 -1.99018e-7 0 -2.85226e-7 -0.2977853 -0.954633 -2.98023e-8 2.46042e-7 0.954633 -0.2977853 -0.4310732 0 0 0 1 1 -3.20647e-7 -1.9741e-7 7.45058e-9 -2.85195e-7 -0.3026462 -0.9531031 0 2.45864e-7 0.9531031 -0.3026462 -0.4310732 0 0 0 1 1 -3.21321e-7 -1.96092e-7 0 -2.85169e-7 -0.3066168 -0.9518331 -4.47035e-8 2.45719e-7 0.9518332 -0.3066167 -0.4310732 0 0 0 1 1 -3.21856e-7 -1.95035e-7 7.45058e-9 -2.85148e-7 -0.3097898 -0.9508051 0 2.45603e-7 0.9508051 -0.3097898 -0.4310732 0 0 0 1 1 -3.2227e-7 -1.94211e-7 0 -2.85131e-7 -0.3122572 -0.9499977 -1.49012e-8 2.45512e-7 0.9499977 -0.3122572 -0.4310733 0 0 0 1 1 -3.2258e-7 -1.93592e-7 -7.45058e-9 -2.85119e-7 -0.3141092 -0.9493868 0 2.45444e-7 0.9493868 -0.3141091 -0.4310732 0 0 0 1 1 -3.22801e-7 -1.93148e-7 1.49012e-8 -2.8511e-7 -0.3154351 -0.9489471 0 2.45396e-7 0.9489471 -0.3154351 -0.4310732 0 0 0 1 1 -3.22949e-7 -1.9285e-7 0 -2.85103e-7 -0.3163233 -0.9486516 -2.98023e-8 2.45363e-7 0.9486516 -0.3163232 -0.4310732 0 0 0 1 1 -3.23039e-7 -1.92669e-7 0 -2.851e-7 -0.316862 -0.9484717 5.96046e-8 2.45344e-7 0.9484716 -0.316862 -0.4310732 0 0 0 1 1 -3.23085e-7 -1.92576e-7 0 -2.85098e-7 -0.3171385 -0.9483793 0 2.45333e-7 0.9483793 -0.3171385 -0.4310733 0 0 0 1 1 -3.23102e-7 -1.92542e-7 7.45058e-9 -2.85097e-7 -0.3172403 -0.9483453 0 2.4533e-7 0.9483452 -0.3172403 -0.4310732 0 0 0 1 1 -3.55313e-7 -2.86338e-7 0 -3.84271e-7 -0.3172548 -0.9483405 -2.98023e-8 2.46116e-7 0.9483405 -0.3172547 -0.4310733 0 0 0 1 1 -3.5525e-7 -2.86444e-7 0 -3.84275e-7 -0.3169612 -0.9484386 -2.98023e-8 2.46142e-7 0.9484387 -0.3169612 -0.4310732 0 0 0 1 1 -3.55049e-7 -2.86781e-7 7.45058e-9 -3.84287e-7 -0.3160196 -0.9487527 0 2.46225e-7 0.9487528 -0.3160195 -0.4310732 0 0 0 1 1 -3.54689e-7 -2.87381e-7 0 -3.84307e-7 -0.3143387 -0.9493109 -2.98023e-8 2.46375e-7 0.9493109 -0.3143386 -0.4310732 0 0 0 1 1 -3.54148e-7 -2.88276e-7 -2.23517e-8 -3.84335e-7 -0.3118261 -0.9501391 0 2.46598e-7 0.9501392 -0.311826 -0.4310732 0 0 0 1 1 -3.53405e-7 -2.89495e-7 7.45058e-9 -3.8437e-7 -0.3083877 -0.9512609 1.49012e-8 2.46904e-7 0.9512609 -0.3083875 -0.4310733 0 0 0 1 1 -3.52435e-7 -2.91067e-7 7.45058e-9 -3.84413e-7 -0.3039284 -0.9526949 -2.98023e-8 2.47299e-7 0.9526949 -0.3039284 -0.4310732 0 0 0 1 1 -3.51213e-7 -2.93022e-7 7.45058e-9 -3.84461e-7 -0.2983507 -0.9544564 2.98023e-8 2.47794e-7 0.9544564 -0.2983507 -0.4310733 0 0 0 1 1 -3.49711e-7 -2.95387e-7 7.45058e-9 -3.84514e-7 -0.2915555 -0.956554 -1.49012e-8 2.48395e-7 0.9565541 -0.2915555 -0.4310733 0 0 0 1 1 -3.47898e-7 -2.98189e-7 0 -3.84569e-7 -0.283441 -0.9589897 0 2.49112e-7 0.9589899 -0.2834409 -0.4310733 0 0 0 1 1 -3.45743e-7 -3.0145e-7 7.45058e-9 -3.84622e-7 -0.2739032 -0.9617573 4.47035e-8 2.49953e-7 0.9617574 -0.2739032 -0.4310733 0 0 0 1 1 -3.43209e-7 -3.05193e-7 7.45058e-9 -3.84671e-7 -0.2628356 -0.9648407 -1.49012e-8 2.50926e-7 0.9648408 -0.2628355 -0.4310733 0 0 0 1 1 -3.40255e-7 -3.09438e-7 0 -3.84709e-7 -0.2501294 -0.9682125 0 2.5204e-7 0.9682126 -0.2501293 -0.4310733 0 0 0 1 1 -3.3684e-7 -3.14198e-7 -7.45058e-9 -3.84732e-7 -0.2356741 -0.9718321 -7.45058e-9 2.53303e-7 0.9718321 -0.2356739 -0.4310732 0 0 0 1 1 -3.32914e-7 -3.19487e-7 -7.45058e-9 -3.84733e-7 -0.2193576 -0.9756446 2.98023e-8 2.54724e-7 0.9756446 -0.2193575 -0.4310733 0 0 0 1 1 -3.28425e-7 -3.2531e-7 7.45058e-9 -3.84702e-7 -0.2010675 -0.9795773 -2.23517e-8 2.56309e-7 0.9795774 -0.2010675 -0.4310732 0 0 0 1 1 -3.23341e-7 -3.3164e-7 -7.45058e-9 -3.8463e-7 -0.1807818 -0.9835232 4.47035e-8 2.58059e-7 0.9835234 -0.1807816 -0.4310732 0 0 0 1 1 -3.17717e-7 -3.38338e-7 -7.45058e-9 -3.84509e-7 -0.1588394 -0.9873044 2.98023e-8 2.59942e-7 0.9873044 -0.1588393 -0.4310733 0 0 0 1 1 -3.11643e-7 -3.45243e-7 7.45058e-9 -3.84334e-7 -0.1356803 -0.9907528 -4.00469e-8 2.61919e-7 0.9907528 -0.1356803 -0.4310732 0 0 0 1 1 -3.05221e-7 -3.522e-7 0 -3.84104e-7 -0.1117559 -0.9937357 -1.86265e-9 2.63949e-7 0.9937357 -0.1117558 -0.4310732 0 0 0 1 1 -2.98567e-7 -3.59067e-7 7.45058e-9 -3.83821e-7 -0.08752683 -0.9961623 -5.58794e-8 2.65993e-7 0.9961623 -0.08752674 -0.4310732 0 0 0 1 1 -2.91807e-7 -3.6571e-7 7.45058e-9 -3.8349e-7 -0.06345913 -0.9979844 -7.45058e-9 2.68012e-7 0.9979845 -0.06345904 -0.4310732 0 0 0 1 1 -2.85082e-7 -3.7201e-7 7.45058e-9 -3.83121e-7 -0.04002023 -0.999199 4.47035e-8 2.69966e-7 0.999199 -0.0400202 -0.4310733 0 0 0 1 1 -2.78541e-7 -3.77862e-7 1.49012e-8 -3.82726e-7 -0.01767585 -0.9998438 7.45058e-9 2.71819e-7 0.9998438 -0.0176757 -0.4310733 0 0 0 1 1 -2.72342e-7 -3.83171e-7 0 -3.82321e-7 0.003114864 -0.9999952 7.45058e-9 2.73534e-7 0.9999952 0.003114983 -0.4310733 0 0 0 1 1 -2.66646e-7 -3.87856e-7 0 -3.81924e-7 0.02189974 -0.9997602 -2.98023e-8 2.75076e-7 0.9997602 0.02189988 -0.4310733 0 0 0 1 1 -2.6162e-7 -3.91844e-7 0 -3.81555e-7 0.03823569 -0.9992688 -7.45058e-9 2.76411e-7 0.9992688 0.03823574 -0.4310732 0 0 0 1 1 -2.5743e-7 -3.95068e-7 0 -3.81234e-7 0.05168781 -0.9986634 2.98023e-8 2.77506e-7 0.9986634 0.05168788 -0.4310733 0 0 0 1 1 -2.54242e-7 -3.97461e-7 7.45058e-9 -3.80982e-7 0.06182647 -0.998087 -7.45058e-9 2.78329e-7 0.998087 0.06182654 -0.4310732 0 0 0 1 1 -2.52216e-7 -3.98955e-7 0 -3.80818e-7 0.068225 -0.9976699 7.45058e-9 2.78848e-7 0.99767 0.06822507 -0.4310732 0 0 0 1 - - - - - - - - LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR - - - - - - - - - - - - - - - - - - - 1 0 0 0 0 -4.37114e-8 -1 0 0 1 -4.37114e-8 0 0 0 0 1 - - 1 0 0 0 0 0 -1 0.04088391 0 1 0 -0.02018755 0 0 0 1 - - 1 0 0 0 0 0.9934375 -0.1143761 0 0 0.1143761 0.9934375 -0.194438 0 0 0 1 - - 1 0 0 0 -2.22827e-16 0.9258054 0.3780007 -3.72529e-9 0 -0.3780007 0.9258053 -0.3676334 0 0 0 1 - - 1 0 0 0 0 0.9957995 -0.09156074 -9.77889e-9 0 0.09156077 0.9957995 -0.07797433 0 0 0 1 - - - 1 - 0 - 0 - 0.1802077 - -0.03303807 - - - - - - 1 - 0 - - - - - -0.09349707 -0.05538832 -0.9940777 0.1656292 0.1139737 0.9912922 -0.0659528 0.02458553 0.9890745 -0.1194651 -0.08636999 -0.3007234 0 0 0 1 - - 0.9999269 1.47073e-4 0.0121001 2.98023e-8 -7.26653e-4 0.9988516 0.0479084 -5.58794e-9 -0.01207914 -0.04791368 0.9987785 -0.3238729 0 0 0 1 - - 0.9996847 8.13621e-4 -0.02510269 -8.56817e-8 0.001165986 0.9968942 0.07874503 0 0.02508879 -0.07874946 0.9965788 -0.2581572 0 0 0 1 - - 0.9943069 0.005958037 0.1063873 1.49012e-8 0.003777199 0.995837 -0.09107221 -1.49012e-8 -0.1064871 0.09095558 0.9901453 -0.1130893 0 0 0 1 - - 0.9999999 5.80214e-7 -5.68249e-5 -1.97906e-8 5.79515e-7 0.9997917 0.02040377 0 5.68249e-5 -0.02040377 0.9997917 -0.04929709 0 0 0 1 - - 0.9999999 4.80562e-6 1.63528e-4 6.49015e-9 4.80539e-6 0.9982743 -0.05872198 0 -1.63528e-4 0.05872198 0.9982743 -0.03822243 0 0 0 1 - - - 1 - 1.573581 - 0.03419893 - 0 - 0.002011656 - - - - - - 1 - 1.573581 - - - - - - 1 - 1.573581 - - - - - 0.9942042 0.01518451 0.106431 0.007374659 -0.007752027 0.9975237 -0.06990261 -0.02407584 -0.1072289 0.0686724 0.99186 -0.114673 0 0 0 1 - - 0.9997627 -3.39467e-6 -0.02178483 -2.43017e-8 -1.00378e-4 0.9999886 -0.00476245 -1.86265e-9 0.0217846 0.004763506 0.9997514 -0.04910958 0 0 0 1 - - 0.9997481 9.11376e-4 0.02242242 3.35276e-8 8.86247e-6 0.9991589 -0.04100683 0 -0.02244093 0.0409967 0.9989072 -0.03219759 0 0 0 1 - - - 1 - 1.585134 - 0.03364485 - 0 - 0.001513421 - - - - - - 1 - 1.607066 - - - - - - 1.585134 - - - - - 0.9942042 0.0151845 0.106431 0.01757193 -0.007752028 0.9975237 -0.06990255 -0.0453514 -0.1072289 0.06867235 0.9918599 -0.1194025 0 0 0 1 - - 1 2.20258e-6 2.51458e-4 -7.61065e-9 2.20817e-6 0.9998462 -0.01753639 0 -2.51458e-4 0.01753639 0.9998461 -0.02511728 0 0 0 1 - - - 1 - 1.585134 - 0.02438956 - 0 - 4.07464e-4 - - - - - - 1.585134 - - - - - 0.9942043 0.01516978 0.1064312 -9.2914e-4 -0.007752162 0.9975333 -0.06976461 0.02650937 -0.107227 0.06853521 0.9918696 -0.1201515 0 0 0 1 - - 0.9999996 2.56589e-5 8.57367e-4 5.82077e-10 2.56533e-5 0.9982107 -0.05979438 -7.45058e-9 -8.57368e-4 0.05979437 0.9982103 -0.04212457 0 0 0 1 - - 0.9999995 3.08976e-5 -9.40783e-4 9.77889e-9 3.08966e-5 0.9978453 0.06561208 -7.45058e-9 9.40783e-4 -0.06561208 0.9978448 -0.0316624 0 0 0 1 - - - 1 - 1.585134 - 0.03422701 - 0 - -2.32823e-4 - - - - - - 1 - 1.585134 - - - - - - 1.585134 - - - - - 0.9942043 0.01516974 0.1064312 -0.001006626 -0.007752167 0.9975334 -0.06976414 0.05007137 -0.107227 0.06853475 0.9918696 -0.1194239 0 0 0 1 - - 0.9999996 2.56523e-5 8.57354e-4 2.04891e-8 2.56589e-5 0.9982107 -0.05979469 0 -8.57354e-4 0.05979469 0.9982103 -0.02885437 0 0 0 1 - - 0.9999996 3.08966e-5 -9.40776e-4 2.64845e-8 3.08957e-5 0.9978453 0.06561161 0 9.40776e-4 -0.0656116 0.9978449 -0.02168822 0 0 0 1 - - - 1 - 1.585134 - 0.02344489 - 0 - -1.59472e-4 - - - - - - 1 - 1.585134 - - - - - - 1.585134 - - - - - - 1 - 1.676481 - - - - - - 1 - 1.652283 - - - - - - 1.664325 - - - - - -0.09349707 0.05538832 0.9940777 -0.1656292 -0.1139737 0.9912922 -0.0659528 0.02458553 -0.9890745 -0.1194651 -0.08636999 -0.3007234 0 0 0 1 - - 0.9999269 -1.47073e-4 -0.0121001 -2.98023e-8 7.26653e-4 0.9988516 0.0479084 -5.58794e-9 0.01207914 -0.04791368 0.9987785 -0.3238729 0 0 0 1 - - 0.9996847 -8.13621e-4 0.02510269 8.56817e-8 -0.001165986 0.9968942 0.07874503 0 -0.02508879 -0.07874946 0.9965788 -0.2581572 0 0 0 1 - - 0.9943069 -0.005958037 -0.1063873 -1.49012e-8 -0.003777199 0.995837 -0.09107221 -1.49012e-8 0.1064871 0.09095558 0.9901453 -0.1130893 0 0 0 1 - - 0.9999999 -5.80214e-7 5.68249e-5 1.97906e-8 -5.79515e-7 0.9997917 0.02040377 0 -5.68249e-5 -0.02040377 0.9997917 -0.04929709 0 0 0 1 - - 0.9999999 -4.80562e-6 -1.63528e-4 -6.49015e-9 -4.80539e-6 0.9982743 -0.05872198 0 1.63528e-4 0.05872198 0.9982743 -0.03822243 0 0 0 1 - - - 1 - -1.573581 - -0.03419893 - 0 - 0.002011656 - - - - - - 1 - -1.573581 - - - - - - 1 - -1.573581 - - - - - 0.9942042 -0.01518451 -0.106431 -0.007374659 0.007752027 0.9975237 -0.06990261 -0.02407584 0.1072289 0.0686724 0.99186 -0.114673 0 0 0 1 - - 0.9997627 3.39467e-6 0.02178483 2.43017e-8 1.00378e-4 0.9999886 -0.00476245 -1.86265e-9 -0.0217846 0.004763506 0.9997514 -0.04910958 0 0 0 1 - - 0.9997481 -9.11376e-4 -0.02242242 -3.35276e-8 -8.86247e-6 0.9991589 -0.04100683 0 0.02244093 0.0409967 0.9989072 -0.03219759 0 0 0 1 - - - 1 - -1.585134 - -0.03364485 - 0 - 0.001513421 - - - - - - 1 - -1.607066 - - - - - - -1.585134 - - - - - 0.9942042 -0.0151845 -0.106431 -0.01757193 0.007752028 0.9975237 -0.06990255 -0.0453514 0.1072289 0.06867235 0.9918599 -0.1194025 0 0 0 1 - - 1 -2.20258e-6 -2.51458e-4 7.61065e-9 -2.20817e-6 0.9998462 -0.01753639 0 2.51458e-4 0.01753639 0.9998461 -0.02511728 0 0 0 1 - - - 1 - -1.585134 - -0.02438956 - 0 - 4.07464e-4 - - - - - - -1.585134 - - - - - 0.9942043 -0.01516978 -0.1064312 9.2914e-4 0.007752162 0.9975333 -0.06976461 0.02650937 0.107227 0.06853521 0.9918696 -0.1201515 0 0 0 1 - - 0.9999996 -2.56589e-5 -8.57367e-4 -5.82077e-10 -2.56533e-5 0.9982107 -0.05979438 -7.45058e-9 8.57368e-4 0.05979437 0.9982103 -0.04212457 0 0 0 1 - - 0.9999995 -3.08976e-5 9.40783e-4 -9.77889e-9 -3.08966e-5 0.9978453 0.06561208 -7.45058e-9 -9.40783e-4 -0.06561208 0.9978448 -0.0316624 0 0 0 1 - - - 1 - -1.585134 - -0.03422701 - 0 - -2.32823e-4 - - - - - - 1 - -1.585134 - - - - - - -1.585134 - - - - - 0.9942043 -0.01516974 -0.1064312 0.001006626 0.007752167 0.9975334 -0.06976414 0.05007137 0.107227 0.06853475 0.9918696 -0.1194239 0 0 0 1 - - 0.9999996 -2.56523e-5 -8.57354e-4 -2.04891e-8 -2.56589e-5 0.9982107 -0.05979469 0 8.57354e-4 0.05979469 0.9982103 -0.02885437 0 0 0 1 - - 0.9999996 -3.08966e-5 9.40776e-4 -2.64845e-8 -3.08957e-5 0.9978453 0.06561161 0 -9.40776e-4 -0.0656116 0.9978449 -0.02168822 0 0 0 1 - - - 1 - -1.585134 - -0.02344489 - 0 - -1.59472e-4 - - - - - - 1 - -1.585134 - - - - - - -1.585134 - - - - - - 1 - -1.676481 - - - - - - 1 - -1.652283 - - - - - - -1.664325 - - - - - - 1 - 0 - - - - - 1 -1.50996e-7 4.79176e-14 0.08954165 -1.50996e-7 -1 6.34688e-7 0.02421998 -4.79176e-14 -6.34688e-7 -1 0.03911464 0 0 0 1 - - 1 3.25765e-7 6.31234e-9 0 -3.25744e-7 0.9991258 0.04180507 0 7.31181e-9 -0.04180507 0.9991258 -0.375647 0 0 0 1 - - 1 1.59203e-7 1.64965e-7 -7.45058e-9 1.02698e-7 0.332252 -0.9431908 0 -2.04969e-7 0.9431908 0.332252 -0.4310732 0 0 0 1 - - - 1 - 2.17315e-7 - 0 - -0.07929152 - -0.1982285 - - - - - - 1 - 1.74901e-7 - - - - - - -1.50996e-7 - - - - - 1 -1.50996e-7 4.79176e-14 -0.08954165 -1.50996e-7 -1 6.34688e-7 0.02421998 -4.79176e-14 -6.34688e-7 -1 0.03911464 0 0 0 1 - - 1 -1.51072e-7 6.31234e-9 0 1.50676e-7 0.9991258 0.04180507 0 -1.26224e-8 -0.04180507 0.9991258 -0.375647 0 0 0 1 - - 1 -1.59203e-7 -2.84783e-7 0 -2.15709e-7 0.332252 -0.9431908 1.86265e-9 2.44779e-7 0.9431908 0.332252 -0.4310732 0 0 0 1 - - - 1 - -2.59522e-7 - 0 - -0.07929152 - -0.1982285 - - - - - - 1 - -3.01936e-7 - - - - - - -1.50996e-7 - - - - - - - Bones - Bones - Bones - - - - - - - - - \ No newline at end of file diff --git a/assets/walkanim.fbx b/assets/walkanim.fbx deleted file mode 100644 index 0480c0e6c54667e60626ba46cf81c59bb2ed63c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700988 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%0AVg7-cN3N^7?$TeUgStj$ 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 z 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 a|C>MG*He3)zjJ2f^`CNH7&N17j{gBvW?m2g diff --git a/eiifwhrn.vcxproj b/eiifwhrn.vcxproj index 276eb54..0c17ce5 100644 --- a/eiifwhrn.vcxproj +++ b/eiifwhrn.vcxproj @@ -1,4 +1,4 @@ - + @@ -166,6 +166,7 @@ + @@ -175,6 +176,7 @@ + @@ -187,12 +189,12 @@ - + - + @@ -204,6 +206,7 @@ + @@ -223,7 +226,6 @@ - diff --git a/eiifwhrn.vcxproj.filters b/eiifwhrn.vcxproj.filters index 6833aa7..c5fb009 100644 --- a/eiifwhrn.vcxproj.filters +++ b/eiifwhrn.vcxproj.filters @@ -49,6 +49,9 @@ Source Files + + Source Files + Source Files @@ -61,6 +64,9 @@ Source Files + + Source Files + @@ -135,10 +141,10 @@ Header Files - + Header Files - + Header Files @@ -195,10 +201,10 @@ Header Files - + Header Files - + Header Files diff --git a/shaders/default.frag b/shaders/default.frag index 56fe314..6045075 100644 --- a/shaders/default.frag +++ b/shaders/default.frag @@ -63,65 +63,23 @@ uniform float envIntensity = 0.8; const float PI = 3.14159265359; -float DistributionGGX(vec3 N, vec3 H, float rough) +// Plain Blinn-Phong: ambient, Lambert diffuse and a half vector highlight. +// Roughness sets how tight and strong the highlight is, metallic tints it and takes away the diffuse. + +// Close enough to the 2.2 curve and much cheaper than pow +vec3 ToLinear(vec3 c) { - float a = rough * rough; - float a2 = a * a; - float NdotH = max(dot(N, H), 0.0); - float NdotH2 = NdotH * NdotH; - float denom = NdotH2 * (a2 - 1.0) + 1.0; - return a2 / max(PI * denom * denom, 1e-5); + return c * c; } -float GeometrySchlickGGX(float NdotV, float rough) -{ - float r = rough + 1.0; - float k = (r * r) / 8.0; - return NdotV / (NdotV * (1.0 - k) + k); -} - -float GeometrySmith(vec3 N, vec3 V, vec3 L, float rough) -{ - float NdotV = max(dot(N, V), 0.0); - float NdotL = max(dot(N, L), 0.0); - return GeometrySchlickGGX(NdotV, rough) * GeometrySchlickGGX(NdotL, rough); -} - -vec3 FresnelSchlick(float cosTheta, vec3 F0) -{ - return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0); -} - -vec3 FresnelSchlickRoughness(float cosTheta, vec3 F0, float rough) -{ - vec3 f = max(vec3(1.0 - rough), F0); - return F0 + (f - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0); -} - -vec3 EnvironmentBRDF(vec3 F0, float rough, float NdotV) -{ - const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022); - const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04); - vec4 r = rough * c0 + c1; - float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y; - vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw; - return F0 * AB.x + AB.y; -} - -// Light from one direction, L points from the surface toward the light -vec3 ShadeLight(vec3 L, vec3 radiance, vec3 N, vec3 V, vec3 albedo, float metal, float rough, vec3 F0, float NdotV) +// Light from one direction, L points from the surface toward the light. +// diffuse and specular are already scaled for this pixel, see main. +vec3 ShadeLight(vec3 L, vec3 radiance, vec3 N, vec3 V, vec3 diffuse, vec3 specular, float power) { float NdotL = max(dot(N, L), 0.0); - if (NdotL <= 0.0) - return vec3(0.0); - vec3 H = normalize(V + L); - vec3 F = FresnelSchlick(max(dot(H, V), 0.0), F0); - float NDF = DistributionGGX(N, H, rough); - float G = GeometrySmith(N, V, L, rough); - vec3 specular = (NDF * G * F) / max(4.0 * NdotV * NdotL, 1e-4); - vec3 kD = (vec3(1.0) - F) * (1.0 - metal); - return (kD * albedo / PI + specular) * radiance * NdotL; + float highlight = pow(max(dot(N, H), 0.0), power); + return (diffuse + specular * highlight) * radiance * NdotL; } // Inverse square falloff, windowed so it reaches exactly zero at the radius @@ -196,7 +154,7 @@ void main() albedoSample = texture(tex, texCoord); if (albedoSample.a < 0.1) discard; - albedoSample.rgb = pow(albedoSample.rgb, vec3(2.2)); + albedoSample.rgb = ToLinear(albedoSample.rgb); } albedoSample.rgb = mix(albedoSample.rgb, colorOverride.rgb, colorOverride.w); @@ -207,22 +165,25 @@ void main() vec3 N = normalize(normal); vec3 V = normalize(viewPos - FragPos); - float NdotV = max(dot(N, V), 1e-4); - vec3 F0 = mix(vec3(0.04), albedo, metal); + float smoothness = 1.0 - clamp(rough, 0.0, 1.0); + float power = exp2(10.0 * smoothness + 1.0); // 2 when fully rough, 2048 when mirror smooth + vec3 specularColor = mix(vec3(0.5 * smoothness * smoothness), albedo * (0.25 + 0.75 * smoothness), metal); + vec3 diffuseBRDF = albedo * (1.0 - metal) / PI; // the light intensities were tuned with the 1/PI in + vec3 specularBRDF = specularColor / PI; vec3 direct = vec3(0.0); // Facing away from the sun has no direct light, so skip the BRDF and the 9 shadow samples vec3 sunL = normalize(-dirLight.direction); if (dot(N, sunL) > 0.0) { float shadow = ShadowCalculation(fragposlightspace, N, sunL); - direct += ShadeLight(sunL, dirLight.color * dirLight.intensity, N, V, albedo, metal, rough, F0, NdotV) * shadow; + direct += ShadeLight(sunL, dirLight.color * dirLight.intensity, N, V, diffuseBRDF, specularBRDF, power) * shadow; } for (int i = 0; i < directionalLightCount; i++) { vec3 L = normalize(-directionalLights[i].direction); vec3 radiance = directionalLights[i].color * directionalLights[i].intensity; - direct += ShadeLight(L, radiance, N, V, albedo, metal, rough, F0, NdotV); + direct += ShadeLight(L, radiance, N, V, diffuseBRDF, specularBRDF, power); } for (int i = 0; i < pointLightCount; i++) { @@ -237,7 +198,7 @@ void main() if (dot(N, L) <= 0.0) continue; - vec3 lit = ShadeLight(L, radiance, N, V, albedo, metal, rough, F0, NdotV); + vec3 lit = ShadeLight(L, radiance, N, V, diffuseBRDF, specularBRDF, power); if (pointLights[i].shadowTile >= 0) lit *= LocalShadow(pointLights[i].shadowTile + PointShadowFace(-toLight), FragPos, N); direct += lit; @@ -259,19 +220,14 @@ void main() continue; vec3 radiance = spotLights[i].color * spotLights[i].intensity * PointAttenuation(distanceSquared, radius) * cone; - vec3 lit = ShadeLight(L, radiance, N, V, albedo, metal, rough, F0, NdotV); + vec3 lit = ShadeLight(L, radiance, N, V, diffuseBRDF, specularBRDF, power); if (spotLights[i].shadowTile >= 0) lit *= LocalShadow(spotLights[i].shadowTile, FragPos, N); direct += lit; } - vec3 ambientF = FresnelSchlickRoughness(NdotV, F0, rough); - vec3 ambientKD = (vec3(1.0) - ambientF) * (1.0 - metal); - vec3 irradiance = pow(textureLod(environmentMap, N, 7.0).rgb, vec3(2.2)) * envIntensity; - vec3 R = reflect(-V, N); - vec3 prefiltered = pow(textureLod(environmentMap, R, rough * 7.0).rgb, vec3(2.2)) * envIntensity; - vec3 specularIBL = prefiltered * EnvironmentBRDF(F0, rough, NdotV); - vec3 ambient = (ambientKD * irradiance * albedo + specularIBL) * ao; + // Ambient is the sky's blurred colour in the direction the surface faces + vec3 ambient = ToLinear(textureLod(environmentMap, N, 7.0).rgb) * envIntensity * albedo * ao; FragColor = vec4(direct + ambient + albedo * emissive * 4.0, albedoSample.a); } diff --git a/shaders/default.vert b/shaders/default.vert index 7a04ec7..5d3f760 100644 --- a/shaders/default.vert +++ b/shaders/default.vert @@ -29,7 +29,8 @@ vec2 SurfaceUV() { if (uvMode == 0) return aTex + uvOffset; - vec3 n = abs(aNormal); + // Unscale the normal first, so a stretched mesh picks the axis it faces in the world + vec3 n = abs(aNormal / max(tileScale, vec3(1e-4))); vec3 p = aPos * tileScale; if (n.y >= n.x && n.y >= n.z) return p.xz + uvOffset; if (n.x >= n.z) return p.zy + uvOffset; diff --git a/shaders/deferred_lighting.frag b/shaders/deferred_lighting.frag index 2c9f1b0..cd7499d 100644 --- a/shaders/deferred_lighting.frag +++ b/shaders/deferred_lighting.frag @@ -58,65 +58,23 @@ uniform float envIntensity = 0.8; const float PI = 3.14159265359; -float DistributionGGX(vec3 N, vec3 H, float rough) +// Plain Blinn-Phong: ambient, Lambert diffuse and a half vector highlight. +// Roughness sets how tight and strong the highlight is, metallic tints it and takes away the diffuse. + +// Close enough to the 2.2 curve and much cheaper than pow +vec3 ToLinear(vec3 c) { - float a = rough * rough; - float a2 = a * a; - float NdotH = max(dot(N, H), 0.0); - float NdotH2 = NdotH * NdotH; - float denom = NdotH2 * (a2 - 1.0) + 1.0; - return a2 / max(PI * denom * denom, 1e-5); + return c * c; } -float GeometrySchlickGGX(float NdotV, float rough) -{ - float r = rough + 1.0; - float k = (r * r) / 8.0; - return NdotV / (NdotV * (1.0 - k) + k); -} - -float GeometrySmith(vec3 N, vec3 V, vec3 L, float rough) -{ - float NdotV = max(dot(N, V), 0.0); - float NdotL = max(dot(N, L), 0.0); - return GeometrySchlickGGX(NdotV, rough) * GeometrySchlickGGX(NdotL, rough); -} - -vec3 FresnelSchlick(float cosTheta, vec3 F0) -{ - return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0); -} - -vec3 FresnelSchlickRoughness(float cosTheta, vec3 F0, float rough) -{ - vec3 f = max(vec3(1.0 - rough), F0); - return F0 + (f - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0); -} - -vec3 EnvironmentBRDF(vec3 F0, float rough, float NdotV) -{ - const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022); - const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04); - vec4 r = rough * c0 + c1; - float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y; - vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw; - return F0 * AB.x + AB.y; -} - -// Light from one direction, L points from the surface toward the light -vec3 ShadeLight(vec3 L, vec3 radiance, vec3 N, vec3 V, vec3 albedo, float metal, float rough, vec3 F0, float NdotV) +// Light from one direction, L points from the surface toward the light. +// diffuse and specular are already scaled for this pixel, see main. +vec3 ShadeLight(vec3 L, vec3 radiance, vec3 N, vec3 V, vec3 diffuse, vec3 specular, float power) { float NdotL = max(dot(N, L), 0.0); - if (NdotL <= 0.0) - return vec3(0.0); - vec3 H = normalize(V + L); - vec3 F = FresnelSchlick(max(dot(H, V), 0.0), F0); - float NDF = DistributionGGX(N, H, rough); - float G = GeometrySmith(N, V, L, rough); - vec3 specular = (NDF * G * F) / max(4.0 * NdotV * NdotL, 1e-4); - vec3 kD = (vec3(1.0) - F) * (1.0 - metal); - return (kD * albedo / PI + specular) * radiance * NdotL; + float highlight = pow(max(dot(N, H), 0.0), power); + return (diffuse + specular * highlight) * radiance * NdotL; } // Inverse square falloff, windowed so it reaches exactly zero at the radius @@ -203,22 +161,25 @@ void main() vec3 N = normalize(normal); vec3 V = normalize(viewPos - FragPos); - float NdotV = max(dot(N, V), 1e-4); - vec3 F0 = mix(vec3(0.04), albedo, metal); + float smoothness = 1.0 - clamp(rough, 0.0, 1.0); + float power = exp2(10.0 * smoothness + 1.0); // 2 when fully rough, 2048 when mirror smooth + vec3 specularColor = mix(vec3(0.5 * smoothness * smoothness), albedo * (0.25 + 0.75 * smoothness), metal); + vec3 diffuseBRDF = albedo * (1.0 - metal) / PI; // the light intensities were tuned with the 1/PI in + vec3 specularBRDF = specularColor / PI; vec3 direct = vec3(0.0); // Facing away from the sun has no direct light, so skip the BRDF and the 9 shadow samples vec3 sunL = normalize(-dirLight.direction); if (dot(N, sunL) > 0.0) { float shadow = ShadowCalculation(lightSpaceMatrix * vec4(FragPos, 1.0), N, sunL); - direct += ShadeLight(sunL, dirLight.color * dirLight.intensity, N, V, albedo, metal, rough, F0, NdotV) * shadow; + direct += ShadeLight(sunL, dirLight.color * dirLight.intensity, N, V, diffuseBRDF, specularBRDF, power) * shadow; } for (int i = 0; i < directionalLightCount; i++) { vec3 L = normalize(-directionalLights[i].direction); vec3 radiance = directionalLights[i].color * directionalLights[i].intensity; - direct += ShadeLight(L, radiance, N, V, albedo, metal, rough, F0, NdotV); + direct += ShadeLight(L, radiance, N, V, diffuseBRDF, specularBRDF, power); } for (int i = 0; i < pointLightCount; i++) { @@ -233,7 +194,7 @@ void main() if (dot(N, L) <= 0.0) continue; - vec3 lit = ShadeLight(L, radiance, N, V, albedo, metal, rough, F0, NdotV); + vec3 lit = ShadeLight(L, radiance, N, V, diffuseBRDF, specularBRDF, power); if (pointLights[i].shadowTile >= 0) lit *= LocalShadow(pointLights[i].shadowTile + PointShadowFace(-toLight), FragPos, N); direct += lit; @@ -255,19 +216,14 @@ void main() continue; vec3 radiance = spotLights[i].color * spotLights[i].intensity * PointAttenuation(distanceSquared, radius) * cone; - vec3 lit = ShadeLight(L, radiance, N, V, albedo, metal, rough, F0, NdotV); + vec3 lit = ShadeLight(L, radiance, N, V, diffuseBRDF, specularBRDF, power); if (spotLights[i].shadowTile >= 0) lit *= LocalShadow(spotLights[i].shadowTile, FragPos, N); direct += lit; } - vec3 ambientF = FresnelSchlickRoughness(NdotV, F0, rough); - vec3 ambientKD = (vec3(1.0) - ambientF) * (1.0 - metal); - vec3 irradiance = pow(textureLod(environmentMap, N, 7.0).rgb, vec3(2.2)) * envIntensity; - vec3 R = reflect(-V, N); - vec3 prefiltered = pow(textureLod(environmentMap, R, rough * 7.0).rgb, vec3(2.2)) * envIntensity; - vec3 specularIBL = prefiltered * EnvironmentBRDF(F0, rough, NdotV); - vec3 ambient = (ambientKD * irradiance * albedo + specularIBL) * ao; + // Ambient is the sky's blurred colour in the direction the surface faces + vec3 ambient = ToLinear(textureLod(environmentMap, N, 7.0).rgb) * envIntensity * albedo * ao; vec3 emission = albedo * material.a * 4.0; diff --git a/shaders/geometry.frag b/shaders/geometry.frag index 93c2696..344be16 100644 --- a/shaders/geometry.frag +++ b/shaders/geometry.frag @@ -23,7 +23,7 @@ void main() albedo = texture(tex, TexCoord); if (albedo.a < 0.1) discard; - albedo.rgb = pow(albedo.rgb, vec3(2.2)); + albedo.rgb = albedo.rgb * albedo.rgb; // same cheap 2.2 stand-in as the lighting shaders } albedo.rgb = mix(albedo.rgb, colorOverride.rgb, colorOverride.w); diff --git a/shaders/geometry.vert b/shaders/geometry.vert index 72d0283..661d079 100644 --- a/shaders/geometry.vert +++ b/shaders/geometry.vert @@ -27,7 +27,8 @@ vec2 SurfaceUV() { if (uvMode == 0) return aTexCoord + uvOffset; - vec3 n = abs(aNormal); + // Unscale the normal first, so a stretched mesh picks the axis it faces in the world + vec3 n = abs(aNormal / max(tileScale, vec3(1e-4))); vec3 p = aPos * tileScale; if (n.y >= n.x && n.y >= n.z) return p.xz + uvOffset; if (n.x >= n.z) return p.zy + uvOffset; diff --git a/t.h b/t.h index 22e4979..39bfa7b 100644 --- a/t.h +++ b/t.h @@ -80,65 +80,81 @@ public: void LookAt(glm::vec3 eye, glm::vec3 target) noexcept { TranslateTo(eye); orient = -orient * target; + version++; } void TranslateBy(glm::vec3 e) noexcept { pos += e; + version++; } void TranslateTo(glm::vec3 e) noexcept { pos = e; + version++; } void ScaleBy(glm::vec3 e) noexcept { scale *= e; + version++; } void ScaleBy(GLfloat e) noexcept { scale *= e; + version++; } void ScaleTo(glm::vec3 e) noexcept { scale = e; + version++; } void ScaleTo(GLfloat e) noexcept { scale = glm::vec3(e); + version++; } void ScaleToX(GLfloat e) noexcept { scale.x = e; + version++; } void ScaleToY(GLfloat e) noexcept { scale.y = e; + version++; } void ScaleToZ(GLfloat e) noexcept { scale.z = e; + version++; } void RotateToQuaternion(glm::quat q) noexcept { orient = q; + version++; } void RotateByQuaternion(glm::quat q) noexcept { orient = q * orient; + version++; } void NormalizeRotation() noexcept { orient = glm::normalize(orient); + version++; } void RotateByQuaternionCumulate(glm::quat q) noexcept { orient = orient * q; + version++; } void RotateByEulerAnglesCumulate(glm::vec3 e) noexcept { orient = orient * glm::quat(e); + version++; } void RotateToEulerAngles(glm::vec3 e) noexcept { orient = glm::quat(e); + version++; } void RotateByEulerAngles(glm::vec3 e) noexcept { RotateByQuaternion(glm::quat(e)); @@ -185,6 +201,12 @@ public: target.scale = scale; target.orient = orient; target.pos = pos; + target.version++; + } + + // Goes up every time it moves, turns or is resized, so other code can tell when something it worked out is stale + unsigned int GetVersion() const noexcept { + return version; } glm::mat4 GetScaleMatrix() const noexcept { @@ -199,8 +221,19 @@ public: return glm::mat4_cast(orient); } + // Kept until the transform changes. Physics asks for the same ones many times a step. glm::mat4 GetMatrix() const noexcept { - return GetTranslationMatrix() * GetRotationMatrix() * GetScaleMatrix(); + if (cachedMatrixVersion != version) { + // The rotation with each axis scaled and the translation dropped in, rather than three full matrices multiplied + glm::mat4 matrix = glm::mat4_cast(orient); + matrix[0] *= scale.x; + matrix[1] *= scale.y; + matrix[2] *= scale.z; + matrix[3] = glm::vec4(pos, 1.0f); + cachedMatrix = matrix; + cachedMatrixVersion = version; + } + return cachedMatrix; } glm::mat4 GetMatrixRotationless() const noexcept { @@ -221,6 +254,10 @@ private: glm::vec3 pos; glm::vec3 scale; glm::quat orient; + + unsigned int version = 1; + mutable unsigned int cachedMatrixVersion = 0; + mutable glm::mat4 cachedMatrix = glm::mat4(1.0f); }; class t_package { diff --git a/t2d.h b/t2d.h index f590fc1..0a3cec2 100644 --- a/t2d.h +++ b/t2d.h @@ -11,6 +11,8 @@ #include #include #include "Structures.h" +#include "common.h" +#include "Window.h" // Recalculate reads the window's size class t2d_package { diff --git a/tFunctions.cpp b/tFunctions.cpp index fdb0613..bd36427 100644 --- a/tFunctions.cpp +++ b/tFunctions.cpp @@ -349,108 +349,130 @@ bool TInTNoInfo(t& t1, t& t2) { //FINAL return true; } -std::optional TInT(t& t1, t& t2) { - std::vector worldvertices1 = { +// Separating axis test between two boxes: the 3 face directions of each, and the 9 crossings of those. +// The direction they overlap least along is the way to push them apart, and that overlap is how deep they are. +// Each box's reach along a direction comes straight from its half sizes, no corners needed. +std::optional TInT(const t& t1, const t& t2, bool withPoint) { + const glm::vec3 axes1[3] = { t1.GetRightVector(), t1.GetUpVector(), t1.GetFrontVector() }; + const glm::vec3 axes2[3] = { t2.GetRightVector(), t2.GetUpVector(), t2.GetFrontVector() }; + const glm::vec3 half1 = t1.GetScale() * 0.5f; + const glm::vec3 half2 = t2.GetScale() * 0.5f; + const glm::vec3 center1 = t1.GetTranslation(); + const glm::vec3 center2 = t2.GetTranslation(); + + glm::vec3 axes[15]; + for (int i = 0; i < 3; i++) { + axes[i] = axes1[i]; + axes[3 + i] = axes2[i]; + for (int j = 0; j < 3; j++) + axes[6 + i * 3 + j] = glm::cross(axes1[i], axes2[j]); + } + + float lowestoverlap = FLT_MAX; + glm::vec3 bestAxis(0.0f); + bool bestInfront = false; + + for (int i = 0; i < 15; i++) { + glm::vec3 axis = axes[i]; + if (i >= 6) { + const float len = glm::length(axis); + if (len < 1e-6f) continue; // parallel edges, already covered by the face directions + axis /= len; + } + + const float c1 = glm::dot(center1, axis); + const float c2 = glm::dot(center2, axis); + const float r1 = glm::abs(glm::dot(axes1[0], axis)) * half1.x + glm::abs(glm::dot(axes1[1], axis)) * half1.y + + glm::abs(glm::dot(axes1[2], axis)) * half1.z; + const float r2 = glm::abs(glm::dot(axes2[0], axis)) * half2.x + glm::abs(glm::dot(axes2[1], axis)) * half2.y + + glm::abs(glm::dot(axes2[2], axis)) * half2.z; + + const float min1 = c1 - r1, max1 = c1 + r1; + const float min2 = c2 - r2, max2 = c2 + r2; + if (!(min1 < max2 && min2 < max1)) + return {}; + + const float overlap = glm::min(max1, max2) - glm::max(min1, min2); + if (overlap < lowestoverlap) { + lowestoverlap = overlap; + bestAxis = axis; + bestInfront = c1 > c2; + } + } + + TInTInfo tr; + tr.overlap = lowestoverlap; + tr.CN = bestAxis * (bestInfront ? 1.0f : -1.0f); // from t2 toward t1 + tr.POI = withPoint ? BoxContactPoint(t1, t2) : glm::vec3(0.0f); + return tr; +} + +// Where two overlapping boxes touch: the middle of whichever corners are inside the other box, +// or with none, the closest point between their edges +glm::vec3 BoxContactPoint(const t& t1, const t& t2) { + static const glm::vec3 corners[8] = { {0.5f,0.5f,0.5f},{0.5f,-0.5f,0.5f},{0.5f,0.5f,-0.5f},{0.5f,-0.5f,-0.5f}, {-0.5f,0.5f,0.5f},{-0.5f,-0.5f,0.5f},{-0.5f,0.5f,-0.5f},{-0.5f,-0.5f,-0.5f}, }; - std::vector worldvertices2 = worldvertices1; - glm::mat4 t1mat = t1.GetMatrix(), t2mat = t2.GetMatrix(); - for (glm::vec3& v : worldvertices1) v = glm::vec3(t1mat * glm::vec4(v, 1.0f)); - for (glm::vec3& v : worldvertices2) v = glm::vec3(t2mat * glm::vec4(v, 1.0f)); + const glm::mat4 t1mat = t1.GetMatrix(), t2mat = t2.GetMatrix(); + const glm::mat4 t1inv = glm::inverse(t1mat), t2inv = glm::inverse(t2mat); - glm::vec3 fv1=t1.GetFrontVector(), rv1=t1.GetRightVector(), uv1=t1.GetUpVector(); - glm::vec3 fv2=t2.GetFrontVector(), rv2=t2.GetRightVector(), uv2=t2.GetUpVector(); + glm::vec3 worldvertices1[8], worldvertices2[8]; + for (int i = 0; i < 8; i++) { + worldvertices1[i] = glm::vec3(t1mat * glm::vec4(corners[i], 1.0f)); + worldvertices2[i] = glm::vec3(t2mat * glm::vec4(corners[i], 1.0f)); + } - std::vector allAxes = { - fv1, uv1, rv1, fv2, uv2, rv2, - glm::cross(fv1,fv2), glm::cross(fv1,rv2), glm::cross(fv1,uv2), - glm::cross(rv1,fv2), glm::cross(rv1,rv2), glm::cross(rv1,uv2), - glm::cross(uv1,fv2), glm::cross(uv1,rv2), glm::cross(uv1,uv2) + glm::vec3 summed(0.0f); + int inside = 0; + for (int i = 0; i < 8; i++) { + if (glm::all(glm::lessThanEqual(glm::abs(glm::vec3(t1inv * glm::vec4(worldvertices2[i], 1.0f))), glm::vec3(0.5f + 1e-4f)))) { + summed += worldvertices2[i]; + inside++; + } + if (glm::all(glm::lessThanEqual(glm::abs(glm::vec3(t2inv * glm::vec4(worldvertices1[i], 1.0f))), glm::vec3(0.5f + 1e-4f)))) { + summed += worldvertices1[i]; + inside++; + } + } + if (inside > 0) + return summed / (float)inside; + + static const int edgeIdx[][2] = { + {0,1},{0,2},{1,3},{2,3}, + {4,5},{4,6},{5,7},{6,7}, + {0,4},{1,5},{2,6},{3,7} }; - TInTInfo tr; - float lowestoverlap = FLT_MAX; - bool bestInfront = false; - int bestIndex = 0; + float bestDist = FLT_MAX; + glm::vec3 bestPt(0.0f); - for (int i = 0; i < (int)allAxes.size(); i++) { - glm::vec3 axis = allAxes[i]; - if (i >= 6) { - float len = glm::length(axis); - if (len < 1e-6f) continue; - axis = axis / len; - allAxes[i] = axis; - } - std::optional b = TAxisCollidesTCN(worldvertices1, worldvertices2, axis); - if (!b.has_value()) return {}; - if (b->overlap < lowestoverlap) { - lowestoverlap = b->overlap; - bestInfront = b->infront; - bestIndex = i; - } - } + for (auto& e1 : edgeIdx) { + glm::vec3 p1 = worldvertices1[e1[0]], p2 = worldvertices1[e1[1]]; + for (auto& e2 : edgeIdx) { + glm::vec3 p3 = worldvertices2[e2[0]], p4 = worldvertices2[e2[1]]; - tr.overlap = lowestoverlap; - tr.CN = allAxes[bestIndex] * (bestInfront ? 1.0f : -1.0f); - - // POI - glm::mat4 t1inv = glm::inverse(t1mat), t2inv = glm::inverse(t2mat); - std::vector contactPts; - for (const glm::vec3& v : worldvertices2) { - glm::vec3 local = glm::vec3(t1inv * glm::vec4(v, 1.0f)); - if (glm::all(glm::lessThanEqual(glm::abs(local), glm::vec3(0.5f + 1e-4f)))) - contactPts.push_back(v); - } - for (const glm::vec3& v : worldvertices1) { - glm::vec3 local = glm::vec3(t2inv * glm::vec4(v, 1.0f)); - if (glm::all(glm::lessThanEqual(glm::abs(local), glm::vec3(0.5f + 1e-4f)))) - contactPts.push_back(v); - } - - if (contactPts.empty()) { - static const int edgeIdx[][2] = { - {0,1},{0,2},{1,3},{2,3}, - {4,5},{4,6},{5,7},{6,7}, - {0,4},{1,5},{2,6},{3,7} - }; - - float bestDist = FLT_MAX; - glm::vec3 bestPt(0.0f); - - for (auto& e1 : edgeIdx) { - glm::vec3 p1 = worldvertices1[e1[0]], p2 = worldvertices1[e1[1]]; - for (auto& e2 : edgeIdx) { - glm::vec3 p3 = worldvertices2[e2[0]], p4 = worldvertices2[e2[1]]; - - glm::vec3 d1=p2-p1, d2=p4-p3, r=p1-p3; - float a=glm::dot(d1,d1), e=glm::dot(d2,d2), f=glm::dot(d2,r); - float s, t; - if (a < 1e-10f && e < 1e-10f) { s=0.0f; t=0.0f; } - else if (a < 1e-10f) { s=0.0f; t=glm::clamp(f/e,0.0f,1.0f); } + glm::vec3 d1=p2-p1, d2=p4-p3, r=p1-p3; + float a=glm::dot(d1,d1), e=glm::dot(d2,d2), f=glm::dot(d2,r); + float s, t; + if (a < 1e-10f && e < 1e-10f) { s=0.0f; t=0.0f; } + else if (a < 1e-10f) { s=0.0f; t=glm::clamp(f/e,0.0f,1.0f); } + else { + float c=glm::dot(d1,r), b=glm::dot(d1,d2), denom=a*e-b*b; + if (e < 1e-10f) { t=0.0f; s=glm::clamp(-c/a,0.0f,1.0f); } else { - float c=glm::dot(d1,r), b=glm::dot(d1,d2), denom=a*e-b*b; - if (e < 1e-10f) { t=0.0f; s=glm::clamp(-c/a,0.0f,1.0f); } - else { - s = denom > 1e-10f ? glm::clamp((b*f-c*e)/denom,0.0f,1.0f) : 0.0f; - t = (b*s+f)/e; - if (t < 0.0f) { t=0.0f; s=glm::clamp(-c/a,0.0f,1.0f); } - else if (t > 1.0f) { t=1.0f; s=glm::clamp((b-c)/a,0.0f,1.0f); } - } + s = denom > 1e-10f ? glm::clamp((b*f-c*e)/denom,0.0f,1.0f) : 0.0f; + t = (b*s+f)/e; + if (t < 0.0f) { t=0.0f; s=glm::clamp(-c/a,0.0f,1.0f); } + else if (t > 1.0f) { t=1.0f; s=glm::clamp((b-c)/a,0.0f,1.0f); } } - glm::vec3 c1=p1+s*d1, c2=p3+t*d2; - float dist = glm::length(c1-c2); - if (dist < bestDist) { bestDist=dist; bestPt=(c1+c2)*0.5f; } } + glm::vec3 c1=p1+s*d1, c2=p3+t*d2; + float dist = glm::dot(c1-c2, c1-c2); + if (dist < bestDist) { bestDist=dist; bestPt=(c1+c2)*0.5f; } } - tr.POI = bestPt; - } else { - tr.POI = glm::vec3(0.0f); - for (const glm::vec3& p : contactPts) tr.POI += p; - tr.POI /= (float)contactPts.size(); } - - return tr; + return bestPt; } glm::quat AngleAxis(glm::vec3 axis, float angle) { float halfangle = angle * 0.5f; diff --git a/tFunctions.h b/tFunctions.h index da26f86..f244f74 100644 --- a/tFunctions.h +++ b/tFunctions.h @@ -51,7 +51,9 @@ std::optional> TAxisCollidesT(std::vector < glm::vec std::optional TAxisCollidesTCN(std::vector < glm::vec3 >& t1, std::vector < glm::vec3 >& t2, glm::vec3 axis); bool TNearT(t& t1, t& t22); -std::optional TInT(t& t1, t& t2); +// withPoint false leaves POI at zero, for callers that work out their own contact points +std::optional TInT(const t& t1, const t& t2, bool withPoint = true); +glm::vec3 BoxContactPoint(const t& t1, const t& t2); bool TInTNoInfo(t& t1, t& t2); glm::quat AngleAxis(glm::vec3 axis, float angle);