
// Vk3DVision (http://3dsurroundgaming.com/) - Original Shader
#version 450
#extension GL_EXT_nonuniform_qualifier : require
#extension GL_ARB_shader_draw_parameters : require
#extension GL_ARB_shader_ballot : require

out float gl_ClipDistance[1];

invariant gl_Position;

struct S_MATRICES
{
    mat4 _mModelViewProj;
    mat4 _mModelViewProjPrevious;
    mat4 _mModelView;
    mat4 _mInvModelView;
};

struct unaligned_float3
{
    float x;
    float y;
    float z;
};

struct S_TBN
{
    int _iNormal;
    int _iTangent;
};

struct S_INDICES
{
    uint _uiObjectIndex;
    uint _uiMaterialIndex;
    uint _uiMaterialInstanceIndex;
    uint _uiLastFrameMaterialIndex;
    uint _uiLastFrameMaterialInstanceIndex;
    uint _uiPositionsBufferIndex;
    uint _uiPrevPositionsBufferIndex;
    uint _uiNormalsBufferIndex;
    uint _uiPositionOffset;
    uint _uiPrevPositionOffset;
    uint _uiNormalOffset;
    uint _uiMatricesIndex;
};

struct S_MAIN_DEFAULT
{
    S_INDICES _Indices;
};

struct S_MAIN_DEFAULT_ARRAY
{
    S_MAIN_DEFAULT _aMain[32];
};

struct S_SPEEDTREE_MESH_OBJECT
{
    mat4 _mModel;
    mat4 _mModelLast;
    mat4 _mInvModel;
    mat4 _mInvModelLast;
    vec4 _vDiversityOffset;
    uint _uiSceneZoneIndex;
    uint _uiNeighborSceneZoneIndex;
    uint _uiDisplayFlags;
    uint _uiPackedLocalExposureCompensation;
    vec4 _vPortalDirAndDistance;
    int _iPickingID[2];
    uint _uiPadding[2];
    vec4 _vTreeRotation;
    vec4 _vWindGlobal;
    vec4 _vWindVector;
    vec4 _vWindBranchAdherences;
    vec4 _vWindBranch;
    vec4 _vWindBranchTwitch;
    vec4 _vWindBranchWhipTurbulences;
    vec4 _vWindFrondRipple;
    vec4 _vWindLeaf1Ripple;
    vec4 _vWindLeaf1Tumble;
    vec4 _vWindLeaf1Twitch;
    vec4 _vWindLeaf2Ripple;
    vec4 _vWindLeaf2Tumble;
    vec4 _vWindLeaf2Twitch;
    vec4 _vAnchorAllTime;
    vec4 _vRollingBranch;
    vec4 _vRollingLeafOffset;
    vec4 _vRollingNoise;
    uint _uiLOD;
    uint _uiSmooth;
    float _fLocalExposureCompensation;
    float _fLocalExposureCompensationEV100;
    vec4 _vWindGlobalLast;
    vec4 _vWindBranchLast;
    vec4 _vWindFrondRippleLast;
    vec4 _vWindLeaf1RippleLast;
    vec4 _vWindLeaf1TumbleLast;
    vec4 _vWindLeaf1TwitchLast;
    vec4 _vWindLeaf2RippleLast;
    vec4 _vWindLeaf2TumbleLast;
    vec4 _vAnchorAllTimeLast;
};

struct S_PASS_MATRICES
{
    mat4 _mViewJitteredProj;
    mat4 _mViewProj;
    mat4 _mView;
    mat4 _mInvView;
    mat4 _mJitteredProj;
};

struct S_EYE_DATA
{
    S_PASS_MATRICES _mCurrentFrameMatrices[2];
    S_PASS_MATRICES _mPreviousFrameMatrices[2];
    mat4 _mJitteredProjection[2];
    mat4 _mNoJitterProjection[2];
    mat4 _mInvViewJitteredProj[2];
    vec4 _vWorldSpaceCameraVector[2];
    vec4 _vWorldSpaceCameraPosition[2];
    vec4 _vFrameBufferScale;
    vec4 _vFrameBufferViewportSize;
    vec4 _vFrameBufferOneOnViewportSize;
    vec4 _vViewportSize;
    vec4 _vFogSubCrop;
    uint _uiAlignment0;
    uint _uiAlignment1;
    float _vCameraJitterDeltaX;
    float _vCameraJitterDeltaY;
    vec4 _vfRcpFVolumetricFogDepthTileSize;
};

struct S_CASCADED_SHADOW
{
    mat4 _mCascadeMatrix[2][8];
    mat4 _mViewSpaceToStaticShadowMapSpace[2];
    vec4 _vfCascadeShadowAttenuation;
    vec4 _vfShadowCascadeTextureTexelSize;
    vec4 _vfStaticShadowBlurRadius;
    vec4 _vfCascadeLinearZProjFactors[8];
    vec4 _vfCascadeParams[8];
};

struct S_CLUSTER_LIGHT_SETUP
{
    S_CASCADED_SHADOW _CascadedShadow;
    vec4 _vfSkinUVParamsAndNormalBias;
    vec4 _vfShadowTextureTexelSize;
    vec4 _vfDummy_SkinFresnelF0AndF90;
    uint _uiCascadedUsed;
    float _fSSSWidth;
    float _fOffsetBias;
    float _fDummy;
};

struct S_CLUSTER_INFO
{
    mat4 _mViewToClusterView[2];
    mat4 _mClusterProjMatrix;
    mat4 _mClusterInvProjMatrix;
    vec4 _vfLeftEyeToCombinedEyeVsDeltaXZ;
    uint _uiFinestMipWidth;
    uint _uiFinestMipHeight;
    uint _uiFinestMipDepth;
    uint _uiFinestMipWidthHeight;
    float _fZSliceGeomFactor;
    float _fRcpLogZSliceGeomFactor;
    float _fDummy0;
    float _fDummy1;
    float _fNearP;
    float _fInvNearP;
    float _fFarP;
    float _fClusterCoincidentWithCamera;
};

struct S_PASS
{
    S_EYE_DATA _EyeData;
    vec4 _avFrustumCorners[4];
    vec4 _vTime;
    vec4 _cFogColor;
    vec4 _vFogSetup;
    vec4 _cSunColor;
    vec4 _vSunDir;
    vec4 _vProjectionSetup;
    vec4 _vProjectionCoeff;
    vec4 _vOutputColor;
    vec4 _vfVsClippingPlane[2];
    S_CLUSTER_LIGHT_SETUP _LightSetup;
    S_CLUSTER_INFO _ClusterInfo;
    float _fIBLIntensity;
    float _fGIIntensity;
    float _fAmbiantOcclusionDirectIntensity;
    float _fAmbiantOcclusionIndirectIntensity;
    float _fNormalSign;
    int _iFogType;
    float _fSelfOcclusionDebugRatio;
    float _fEmissive;
    int _iEnableSkinSSSSS;
    int _iUseHairOpaquePrepass;
    float _fLocalSceneExposure;
    uint _uiDebugMode;
    uint _sFlags;
    float _fTAADropsSharpness;
    uint _uNeoScaleX;
    uint _uNeoScaleY;
    uint _uiDirectOverdrawFilter;
    float _fCoderTest0;
    float _fCoderTest1;
    float _fCoderTest2;
    uint _uiBakeOutput;
    float _fDefaultAmbientIntensity;
    float _fDefaultLightingIntensity;
    uint _uiOutputColor;
    float _fAARotation;
    float _fClampDirectSpecular;
    float _fNearPlane;
    float _fFarPlane;
    float _fNDFFilteringScreenSpaceVariance;
    float _fNDFFilteringThreshold;
    float _fNDFFilteringScreenSpaceVariance_EyeShader;
    float _fNDFFilteringThreshold_EyeShader;
    float _fSurfaceGradientTextureFiltering;
    float _fZero;
    uint _uDepthClamp;
    uint _uiLightDebugMode;
    vec4 _vfFragCoordToDepthTexFactor;
    vec4 _vfFragCoordToDepthTexFactor_HalfRes;
    uint _uHdr;
    uint _uiDrawMayaSwatch;
    float _fEyeRoughnessBias;
    float _fDummy1;
};

layout(set = 1, binding = 24, std430) readonly buffer stc_g_rbMatrices_Layout
{
    S_MATRICES g_rbMatrices[];
} _426;

layout(set = 1, binding = 39, std430) readonly buffer g_rbVertices_Layout
{
    unaligned_float3 g_rbVertices[];
} g_rbVertices_Buffer[];

layout(set = 1, binding = 40, std430) readonly buffer g_rbTBNs_Layout
{
    S_TBN g_rbTBNs[];
} g_rbTBNs_Buffer[];

layout(set = 0, binding = 52, std140) uniform dyn_CONSTANT_BUFFER_BLOCK_CB_S_MAIN_ARRAY_BINDING
{
    S_MAIN_DEFAULT_ARRAY g_cbMainArray;
} _3239;

layout(set = 1, binding = 33, std430) readonly buffer g_rbObjects_Layout
{
    S_SPEEDTREE_MESH_OBJECT g_rbObjects[];
} g_rbObjects_Buffer[];

layout(set = 2, binding = 53, std140) uniform dyn_CONSTANT_BUFFER_BLOCK_CB_S_PASS_BINDING
{
    S_PASS g_cbPass;
} _3486;

layout(location = 8) in vec2 in_uv0;
layout(location = 10) in vec4 in_lodPosition;
layout(location = 11) in vec4 in_windBranchData;
layout(location = 12) in vec4 in_windExtraDataFlag;
layout(location = 13) in vec4 in_LeafAnchorHint;
layout(location = 8) out vec2 interp_uv0;
layout(location = 21) out vec3 interp_vfVsPosition;
layout(location = 13) out vec3 interp_vfVsNormal;
layout(location = 23) out float interp_instanceID;

void main()
{
    int _3229 = gl_InstanceIndex + gl_DrawIDARB;
    int _3230 = readFirstInvocationARB(_3229);
    uint _5124 = uint(gl_VertexIndex);
    uint _5127 = _5124 + _3239.g_cbMainArray._aMain[_3230]._Indices._uiPositionOffset;
    vec4 _5140 = vec4(g_rbVertices_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiPositionsBufferIndex].g_rbVertices[_5127].x, g_rbVertices_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiPositionsBufferIndex].g_rbVertices[_5127].y, g_rbVertices_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiPositionsBufferIndex].g_rbVertices[_5127].z, 1.0);
    uint _5147 = _5124 + _3239.g_cbMainArray._aMain[_3230]._Indices._uiNormalOffset;
    int _5176 = g_rbTBNs_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5147]._iNormal & 1023;
    int _5179 = (g_rbTBNs_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5147]._iNormal >> 10) & 1023;
    int _5182 = (g_rbTBNs_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiNormalsBufferIndex].g_rbTBNs[_5147]._iNormal >> 20) & 1023;
    int _9820;
    if (_5176 > 512)
    {
        _9820 = _5176 | (-1024);
    }
    else
    {
        _9820 = _5176;
    }
    int _9822;
    if (_5179 > 512)
    {
        _9822 = _5179 | (-1024);
    }
    else
    {
        _9822 = _5179;
    }
    int _9824;
    if (_5182 > 512)
    {
        _9824 = _5182 | (-1024);
    }
    else
    {
        _9824 = _5182;
    }
    vec3 _5325 = _5140.xyz;
    float _5976 = length(_5325);
    float _5987 = max(g_rbVertices_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiPositionsBufferIndex].g_rbVertices[_5127].y - (0.25 / g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.z), 0.0) * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.z;
    float _9830;
    if (_5987 != 0.0)
    {
        _9830 = pow(abs(_5987), g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.w);
    }
    else
    {
        _9830 = _5987;
    }
    float _6001 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.x * 0.800000011920928955078125;
    vec4 _6002 = vec4(g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.x, _6001, 0.0, 0.0);
    vec4 _6058 = _6002 + vec4(0.5);
    vec4 _6059 = fract(_6058);
    vec4 _6060 = _6059 * 2.0;
    vec4 _6062 = _6060 - vec4(1.0);
    vec4 _6063 = abs(_6062);
    vec4 _6067 = _6063 * _6063;
    vec4 _6069 = _6063 * 2.0;
    vec4 _6071 = vec4(3.0) - _6069;
    vec4 _6072 = _6067 * _6071;
    vec4 _6053 = _6072 - vec4(0.5);
    vec4 _6054 = _6053 * 2.0;
    float _6005 = _6054.x;
    float _6007 = _6054.y;
    float _6010 = _6007 * _6007;
    float _6011 = _6005 + _6010;
    float _6015 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindGlobal.y * _6011;
    float _6028 = _6015 * _9830;
    vec2 _6032 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.xz * _6028;
    vec2 _6034 = _5140.xz;
    vec2 _6035 = _6034 + _6032;
    vec3 _6037 = vec3(_6035.x, _5140.y, _6035.y);
    vec3 _6042 = normalize(_6037);
    vec3 _6044 = _6042 * _5976;
    vec3 _5925 = _6044 - _5325;
    vec3 _6246 = vec3(in_windBranchData.y);
    vec3 _6247 = _6246 * vec3(0.0625, -1.0, 16.0);
    vec3 _6248 = fract(_6247);
    vec3 _6250 = _6248.xzy;
    vec3 _6251 = _6250 * 2.0;
    vec3 _6252 = _6251 - vec3(1.0);
    vec3 _6222 = _6252 * in_windBranchData.x;
    float _6321 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.x + in_windBranchData.y;
    float _6324 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.x * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.y;
    float _6326 = _6324 + in_windBranchData.y;
    float _6328 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.y * 0.5;
    float _6332 = _6328 * _6321;
    vec4 _6333 = vec4(_6321, _6326, _6332, 0.0);
    vec4 _6472 = _6333 + vec4(0.5);
    vec4 _6473 = fract(_6472);
    vec4 _6474 = _6473 * 2.0;
    vec4 _6476 = _6474 - vec4(1.0);
    vec4 _6477 = abs(_6476);
    vec4 _6481 = _6477 * _6477;
    vec4 _6483 = _6477 * 2.0;
    vec4 _6485 = vec4(3.0) - _6483;
    vec4 _6486 = _6481 * _6485;
    vec4 _6467 = _6486 - vec4(0.5);
    vec4 _6468 = _6467 * 2.0;
    float _6358 = _6468.x;
    float _6360 = _6468.y;
    float _6362 = _6468.z;
    float _6363 = _6360 * _6362;
    bool _6366 = _6363 < 0.0;
    float _9841;
    if (_6366)
    {
        _9841 = -_6363;
    }
    else
    {
        _9841 = _6363;
    }
    float _9864 = _6366 ? (-1.0) : 1.0;
    float _6376 = mix(_6363, _9864, _9841);
    float _6380 = mix(_6376, _9864, _9841);
    float _6383 = _6380 * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.x;
    float _6386 = 1.0 - g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindVector.w;
    float _6387 = _6383 * _6386;
    float _6390 = 1.0 - g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.x;
    float _6391 = _6358 * _6390;
    float _6392 = _6387 + _6391;
    vec3 _6237 = _6222 * _6392;
    vec3 _6239 = _6237 * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.y;
    vec3 _6241 = _5325 + _6239;
    vec3 _6557 = vec3(in_windBranchData.w);
    vec3 _6558 = _6557 * vec3(0.0625, -1.0, 16.0);
    vec3 _6559 = fract(_6558);
    vec3 _6561 = _6559.xzy;
    vec3 _6562 = _6561 * 2.0;
    vec3 _6563 = _6562 - vec3(1.0);
    vec3 _6533 = _6563 * in_windBranchData.z;
    float _6632 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.z + in_windBranchData.w;
    float _6635 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.z * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.w;
    float _6637 = _6635 + in_windBranchData.w;
    float _6639 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.w * 0.5;
    float _6643 = _6639 * _6632;
    vec4 _6644 = vec4(_6632, _6637, _6643, 0.0);
    vec4 _6783 = _6644 + vec4(0.5);
    vec4 _6784 = fract(_6783);
    vec4 _6785 = _6784 * 2.0;
    vec4 _6787 = _6785 - vec4(1.0);
    vec4 _6788 = abs(_6787);
    vec4 _6792 = _6788 * _6788;
    vec4 _6794 = _6788 * 2.0;
    vec4 _6796 = vec4(3.0) - _6794;
    vec4 _6797 = _6792 * _6796;
    vec4 _6778 = _6797 - vec4(0.5);
    vec4 _6779 = _6778 * 2.0;
    float _6669 = _6779.x;
    float _6671 = _6779.y;
    float _6673 = _6779.z;
    float _6674 = _6671 * _6673;
    bool _6677 = _6674 < 0.0;
    float _9851;
    if (_6677)
    {
        _9851 = -_6674;
    }
    else
    {
        _9851 = _6674;
    }
    float _9865 = _6677 ? (-1.0) : 1.0;
    float _6687 = mix(_6674, _9865, _9851);
    float _6691 = mix(_6687, _9865, _9851);
    float _6694 = _6691 * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.z;
    float _6698 = _6694 * _6386;
    float _6701 = 1.0 - g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranchTwitch.z;
    float _6702 = _6669 * _6701;
    float _6703 = _6698 + _6702;
    vec3 _6548 = _6533 * _6703;
    vec3 _6550 = _6548 * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vWindBranch.w;
    vec3 _6552 = _6241 + _6550;
    vec3 _5946 = _6552 - _5325;
    vec3 _5956 = _5946 * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z;
    vec3 _5957 = _5925 + _5956;
    vec3 _5959 = _5325 + _5957;
    float _5746 = mix(in_lodPosition.w, 1.0, g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.z);
    vec2 _5748 = in_lodPosition.xy * _5746;
    float _5751 = -in_lodPosition.z;
    float _5752 = _5748.x;
    float _5753 = _5748.y;
    vec3 _5754 = vec3(_5752, _5753, _5751);
    vec3 _5757 = _5754 * g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._vTreeRotation.w;
    float _5761 = _5959.x;
    float _5762 = _5959.y;
    float _5763 = _5959.z;
    vec4 _5764 = vec4(_5761, _5762, _5763, 1.0);
    vec4 _5765 = g_rbObjects_Buffer[_3239.g_cbMainArray._aMain[_3230]._Indices._uiObjectIndex].g_rbObjects[0]._mModel * _5764;
    float _5770 = _5765.x;
    float _5771 = _5765.y;
    float _5772 = _5765.z;
    vec4 _5773 = vec4(_5770, _5771, _5772, 1.0);
    vec4 _5774 = _3486.g_cbPass._EyeData._mCurrentFrameMatrices[0]._mView * _5773;
    vec3 _5775 = _5774.xyz;
    vec3 _5778 = _5775 + _5757;
    float _5782 = _5778.x;
    float _5783 = _5778.y;
    float _5784 = _5778.z;
    vec4 _5785 = vec4(_5782, _5783, _5784, 1.0);
    vec4 _5786 = _3486.g_cbPass._EyeData._mCurrentFrameMatrices[0]._mInvView * _5785;
    float _5793 = _5786.x;
    float _5794 = _5786.y;
    float _5795 = _5786.z;
    vec4 _5796 = vec4(_5793, _5794, _5795, 1.0);
    vec4 _5797 = _3486.g_cbPass._EyeData._mCurrentFrameMatrices[0]._mViewJitteredProj * _5796;
    vec4 _5818 = _3486.g_cbPass._EyeData._mCurrentFrameMatrices[0]._mView * _5796;
    vec4 _9858;
    if (_3486.g_cbPass._uDepthClamp == 4294967295u)
    {
        float _6837 = _5797.w;
        vec4 _9859;
        if ((_5797.z / _6837) > 1.0)
        {
            vec4 _9860;
            if (_5818.z > _3486.g_cbPass._fNearPlane)
            {
                vec4 _9811 = _5797;
                _9811.z = _6837;
                _9860 = _9811;
            }
            else
            {
                _9860 = _5797;
            }
            _9859 = _9860;
        }
        else
        {
            _9859 = _5797;
        }
        _9858 = _9859;
    }
    else
    {
        _9858 = _5797;
    }
    interp_instanceID = float(_3229) + 0.5;
    float _5007 = _5818.x;
    float _5008 = _5818.y;
    float _5009 = _5818.z;
    vec4 _5010 = vec4(_5007, _5008, _5009, 1.0);
    float _5011 = dot(_3486.g_cbPass._vfVsClippingPlane[0], _5010);
    float _5012 = -_5011;
    gl_ClipDistance[0] = _5012;
    interp_uv0 = in_uv0;
    interp_vfVsPosition = _5818.xyz;
    interp_vfVsNormal = mat3(_426.g_rbMatrices[_3239.g_cbMainArray._aMain[_3230]._Indices._uiMatricesIndex]._mModelView[0].xyz, _426.g_rbMatrices[_3239.g_cbMainArray._aMain[_3230]._Indices._uiMatricesIndex]._mModelView[1].xyz, _426.g_rbMatrices[_3239.g_cbMainArray._aMain[_3230]._Indices._uiMatricesIndex]._mModelView[2].xyz) * (vec3(float(_9820), float(_9822), float(_9824)) * vec3(0.001956947147846221923828125));
    gl_Position = _9858;
}

