Sign in to follow this  
SteveDeFacto

How to compile shaders into my project?

Recommended Posts

I have some default shaders in my project that I would like to compile into it so I will not have to have separate files floating around. Currently I have a string in a function which I am compiling when the program starts. Example:


[code]
void BuildDefaultEffect( Ovgl::Instance* inst )
{
inst->DefaultEffect = new Ovgl::Effect;

// Create shader string.
std::string shader =
"Texture2D txDiffuse;"
"SamplerState samLinear"
"{"
" Filter = MIN_MAG_MIP_LINEAR;"
" AddressU = Wrap;"
" AddressV = Wrap;"
"};"
"TextureCube txEnvironment;"
"SamplerState envSampler"
"{"
" Filter = MIN_MAG_MIP_LINEAR;"
" AddressU = Clamp;"
" AddressV = Clamp;"
" AddressW = Clamp;"
"};"
"float4 Ambient = float4( 0.0f, 0.0f, 0.0f, 1.0f );"
"float4 Diffuse = float4( 0.75f, 0.75f, 0.75f, 1.0f );"
"float Environment_map_intensity = 1.0f;"
"int Light_Count : LIGHTCOUNT;"
"float4 ViewPos : VIEWPOS;"
"float4 Lights[255] : LIGHTARRAY;"
"float4 LightColors[255] : LIGHTCOLORARRAY;"
"float4x4 World : WORLD;"
"float4x4 View : WORLDVIEW;"
"float4x4 Projection : PROJECTION;"
"float4x4 Bones[255] : BONEARRAY;"
"struct VS_INPUT"
"{"
" float3 pos : POSITION;"
" float3 norm : NORMAL;"
" float2 tex : TEXCOORD0;"
" float4 bw : TEXCOORD1;"
" float4 bi : TEXCOORD2;"
"};"
"struct PS_INPUT"
"{"
" float4 posVS : SV_POSITION;"
" float4 posWS : POSITION;"
" float2 tex : TEXCOORD0;"
" float4 norm : NORMAL;"
"};"
"PS_INPUT VS( VS_INPUT In )"
"{"
" PS_INPUT Out = (PS_INPUT)0;"
" float4x4 skinTransform = 0;"
" float3x3 normTransform = 0;"
" skinTransform += Bones[In.bi.x] * In.bw.x;"
" skinTransform += Bones[In.bi.y] * In.bw.y;"
" skinTransform += Bones[In.bi.z] * In.bw.z;"
" skinTransform += Bones[In.bi.w] * In.bw.w;"
" normTransform += (float3x3)(Bones[In.bi.x] * In.bw.x);"
" normTransform += (float3x3)(Bones[In.bi.y] * In.bw.y);"
" normTransform += (float3x3)(Bones[In.bi.z] * In.bw.z);"
" normTransform += (float3x3)(Bones[In.bi.w] * In.bw.w);"
" Out.posVS = mul(float4(In.pos, 1), skinTransform);"
" Out.posWS = Out.posVS;"
" Out.norm = float4(mul(In.norm, normTransform), 0);"
" Out.posVS = mul(mul(Out.posVS, View), Projection);"
" Out.tex = In.tex;"
" return Out;"
"}"
"float4 PS( PS_INPUT In) : SV_Target"
"{"
" float4 light = float4( 0, 0, 0, 0 );"
" float txWidth, txHeight;"
" txEnvironment.GetDimensions(txWidth, txHeight);"
" float4 envColor = float4( 0, 0, 0, 1 );"
" if(txWidth > 0)"
" {"
" envColor = Environment_map_intensity * txEnvironment.Sample( envSampler, reflect( normalize( In.posWS.xyz - ViewPos.xyz ), In.norm.xyz ) );"
" }"
" txDiffuse.GetDimensions(txWidth, txHeight);"
" float4 texColor = float4( 1, 1, 1, 1 );"
" if(txWidth > 0)"
" {"
" texColor = txDiffuse.Sample( samLinear, In.tex );"
" }"
" for(int i = 0; i < Light_Count; i++)"
" {"
" float4 lightDir = Lights[i] - In.posWS;"
" float4 NdotL = saturate(dot(In.norm, normalize(lightDir)));"
" float4 attenuation = 1/length(lightDir);"
" light += LightColors[i] * NdotL * attenuation * 10;"
" }"
" light.w = 1;"
" return ( ((texColor + envColor) * Diffuse) * (light + Ambient) );"
"}"
"technique10 Render"
"{"
" pass P0"
" {"
" SetVertexShader( CompileShader( vs_4_0, VS() ) );"
" SetGeometryShader( NULL );"
" SetPixelShader( CompileShader( ps_4_0, PS() ) );"
" }"
"}";

// Create effect.
D3DX10CreateEffectFromMemory( shader.c_str(), shader.size(), NULL, NULL, NULL, "fx_4_0", D3D10_SHADER_ENABLE_STRICTNESS, 0, inst->D3DDevice, NULL, NULL, &inst->DefaultEffect->SFX, NULL, NULL );

// Get shader variables.
inst->DefaultEffect->Technique = inst->DefaultEffect->SFX->GetTechniqueByName( "Render" );
inst->DefaultEffect->Shadow_Maps = inst->DefaultEffect->SFX->GetVariableBySemantic( "SHADOWMAPS" )->AsShaderResource();
inst->DefaultEffect->Cube_Views = inst->DefaultEffect->SFX->GetVariableBySemantic( "CUBEVIEWS" )->AsMatrix();
inst->DefaultEffect->Light_Count = inst->DefaultEffect->SFX->GetVariableBySemantic( "LIGHTCOUNT" )->AsScalar();
inst->DefaultEffect->Lights = inst->DefaultEffect->SFX->GetVariableBySemantic( "LIGHTARRAY" )->AsVector();
inst->DefaultEffect->Light_Colors = inst->DefaultEffect->SFX->GetVariableBySemantic( "LIGHTCOLORARRAY" )->AsVector();
inst->DefaultEffect->Bones = inst->DefaultEffect->SFX->GetVariableBySemantic( "BONEARRAY" )->AsMatrix();
inst->DefaultEffect->View = inst->DefaultEffect->SFX->GetVariableBySemantic( "WORLDVIEW" )->AsMatrix();
inst->DefaultEffect->ViewPos = inst->DefaultEffect->SFX->GetVariableBySemantic( "VIEWPOS" )->AsVector();
inst->DefaultEffect->Projection = inst->DefaultEffect->SFX->GetVariableBySemantic( "PROJECTION" )->AsMatrix();

// Get technique.
D3D10_PASS_DESC PassDesc;
inst->DefaultEffect->Technique->GetPassByIndex( 0 )->GetDesc( &PassDesc );

// Create vertex layout desc.
D3D10_INPUT_ELEMENT_DESC vertexlayout[] =
{
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0 },
{ "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D10_INPUT_PER_VERTEX_DATA, 0 },
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D10_INPUT_PER_VERTEX_DATA, 0 },
{ "TEXCOORD", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 32, D3D10_INPUT_PER_VERTEX_DATA, 0 },
{ "TEXCOORD", 2, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 48, D3D10_INPUT_PER_VERTEX_DATA, 0 },
};

// Create vertex layout.
inst->D3DDevice->CreateInputLayout( vertexlayout, sizeof(vertexlayout)/sizeof(vertexlayout[0]), PassDesc.pIAInputSignature, PassDesc.IAInputSignatureSize, &inst->DefaultEffect->Layout );
}
[/code]

This however results in my project initializing slowly and requires a developer to open the source files in order to modify the shaders. I was thinking maybe I could use a pre-build event with [color=#1C2837][size=2][font="Arial"]fxc.exe to compile the shader then somehow add the compiled shader to my project? I'm not sure how to do the last part though...[/font][/size][/color]

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1302498611' post='4796943']
Check out the [font="Lucida Console"]/Fh[/font] option for [font="Lucida Console"]fxc[/font]. It outputs a header file that you can include, which contains the compiled shader code.

You could definitely hook that up as a pre-build event.
[/quote]

Alright, I compiled it into a header files but how do I use the header file?

Header file:

[code]

#if 0
//
// FX Version: fx_4_0
// Child effect (requires effect pool): false
//
// 1 local buffer(s)
//
cbuffer $Globals
{
float4 Ambient = { 0, 0, 0, 1 }; // Offset: 0, size: 16
float4 Diffuse = { 0.75, 0.75, 0.75, 1 };// Offset: 16, size: 16
float Environment_map_intensity = 1;// Offset: 32, size: 4
int Light_Count : LIGHTCOUNT; // Offset: 36, size: 4
float4 ViewPos : VIEWPOS; // Offset: 48, size: 16
float4 Lights[255] : LIGHTARRAY; // Offset: 64, size: 4080
float4 LightColors[255] : LIGHTCOLORARRAY;// Offset: 4144, size: 4080
float4x4 World : WORLD; // Offset: 8224, size: 64
float4x4 View : WORLDVIEW; // Offset: 8288, size: 64
float4x4 Projection : PROJECTION; // Offset: 8352, size: 64
float4x4 Bones[255] : BONEARRAY; // Offset: 8416, size: 16320
}

//
// 4 local object(s)
//
Texture2D txDiffuse;
SamplerState samLinear
{
Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */);
AddressU = uint(WRAP /* 1 */);
AddressV = uint(WRAP /* 1 */);
};
TextureCube txEnvironment;
SamplerState envSampler
{
Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */);
AddressU = uint(CLAMP /* 3 */);
AddressV = uint(CLAMP /* 3 */);
AddressW = uint(CLAMP /* 3 */);
};

//
// 1 technique(s)
//
technique10 Render
{
pass P0
{
VertexShader = asm {
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float4 Ambient; // Offset: 0 Size: 16 [unused]
// = 0x00000000 0x00000000 0x00000000 0x3f800000
// float4 Diffuse; // Offset: 16 Size: 16 [unused]
// = 0x3f400000 0x3f400000 0x3f400000 0x3f800000
// float Environment_map_intensity; // Offset: 32 Size: 4 [unused]
// = 0x3f800000
// int Light_Count; // Offset: 36 Size: 4 [unused]
// float4 ViewPos; // Offset: 48 Size: 16 [unused]
// float4 Lights[255]; // Offset: 64 Size: 4080 [unused]
// float4 LightColors[255]; // Offset: 4144 Size: 4080 [unused]
// float4x4 World; // Offset: 8224 Size: 64 [unused]
// float4x4 View; // Offset: 8288 Size: 64
// float4x4 Projection; // Offset: 8352 Size: 64
// float4x4 Bones[255]; // Offset: 8416 Size: 16320
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// $Globals cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------ ------
// POSITION 0 xyz 0 NONE float xyz
// NORMAL 0 xyz 1 NONE float xyz
// TEXCOORD 0 xy 2 NONE float xy
// TEXCOORD 1 xyzw 3 NONE float xyzw
// TEXCOORD 2 xyzw 4 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION 0 xyzw 0 POS float xyzw
// POSITION 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xy 2 NONE float xy
// NORMAL 0 xyzw 3 NONE float xyzw
//
vs_4_0
dcl_constantbuffer cb0[1546], dynamicIndexed
dcl_input v0.xyz
dcl_input v1.xyz
dcl_input v2.xy
dcl_input v3.xyzw
dcl_input v4.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xy
dcl_output o3.xyzw
dcl_temps 4
ftou r0.xyzw, v4.xyzw
ishl r0.xyzw, r0.xyzw, l(2)
mul r1.xyzw, v3.yyyy, cb0[r0.y + 529].xyzw
mad r1.xyzw, cb0[r0.x + 529].xyzw, v3.xxxx, r1.xyzw
mad r1.xyzw, cb0[r0.z + 529].xyzw, v3.zzzz, r1.xyzw
mad r1.xyzw, cb0[r0.w + 529].xyzw, v3.wwww, r1.xyzw
mov r2.xyz, v0.xyzx
mov r2.w, l(1.000000)
dp4 r1.w, r2.xyzw, r1.xyzw
mul r3.xyzw, v3.yyyy, cb0[r0.y + 526].xyzw
mad r3.xyzw, cb0[r0.x + 526].xyzw, v3.xxxx, r3.xyzw
mad r3.xyzw, cb0[r0.z + 526].xyzw, v3.zzzz, r3.xyzw
mad r3.xyzw, cb0[r0.w + 526].xyzw, v3.wwww, r3.xyzw
dp4 r1.x, r2.xyzw, r3.xyzw
dp3 o3.x, v1.xyzx, r3.xyzx
mul r3.xyzw, v3.yyyy, cb0[r0.y + 527].xyzw
mad r3.xyzw, cb0[r0.x + 527].xyzw, v3.xxxx, r3.xyzw
mad r3.xyzw, cb0[r0.z + 527].xyzw, v3.zzzz, r3.xyzw
mad r3.xyzw, cb0[r0.w + 527].xyzw, v3.wwww, r3.xyzw
dp4 r1.y, r2.xyzw, r3.xyzw
dp3 o3.y, v1.xyzx, r3.xyzx
mul r3.xyzw, v3.yyyy, cb0[r0.y + 528].xyzw
mad r3.xyzw, cb0[r0.x + 528].xyzw, v3.xxxx, r3.xyzw
mad r3.xyzw, cb0[r0.z + 528].xyzw, v3.zzzz, r3.xyzw
mad r0.xyzw, cb0[r0.w + 528].xyzw, v3.wwww, r3.xyzw
dp4 r1.z, r2.xyzw, r0.xyzw
dp3 o3.z, v1.xyzx, r0.xyzx
dp4 r0.x, r1.xyzw, cb0[518].xyzw
dp4 r0.y, r1.xyzw, cb0[519].xyzw
dp4 r0.z, r1.xyzw, cb0[520].xyzw
dp4 r0.w, r1.xyzw, cb0[521].xyzw
mov o1.xyzw, r1.xyzw
dp4 o0.x, r0.xyzw, cb0[522].xyzw
dp4 o0.y, r0.xyzw, cb0[523].xyzw
dp4 o0.z, r0.xyzw, cb0[524].xyzw
dp4 o0.w, r0.xyzw, cb0[525].xyzw
mov o2.xy, v2.xyxx
mov o3.w, l(0)
ret
// Approximately 39 instruction slots used

};
GeometryShader = NULL;
PixelShader = asm {
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
// float4 Ambient; // Offset: 0 Size: 16
// = 0x00000000 0x00000000 0x00000000 0x3f800000
// float4 Diffuse; // Offset: 16 Size: 16
// = 0x3f400000 0x3f400000 0x3f400000 0x3f800000
// float Environment_map_intensity; // Offset: 32 Size: 4
// = 0x3f800000
// int Light_Count; // Offset: 36 Size: 4
// float4 ViewPos; // Offset: 48 Size: 16
// float4 Lights[255]; // Offset: 64 Size: 4080
// float4 LightColors[255]; // Offset: 4144 Size: 4080
// float4x4 World; // Offset: 8224 Size: 64 [unused]
// float4x4 View; // Offset: 8288 Size: 64 [unused]
// float4x4 Projection; // Offset: 8352 Size: 64 [unused]
// float4x4 Bones[255]; // Offset: 8416 Size: 16320 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// samLinear sampler NA NA 0 1
// envSampler sampler NA NA 1 1
// txDiffuse texture float4 2d 0 1
// txEnvironment texture float4 cube 1 1
// $Globals cbuffer NA NA 0 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_POSITION 0 xyzw 0 POS float
// POSITION 0 xyzw 1 NONE float xyzw
// TEXCOORD 0 xy 2 NONE float xy
// NORMAL 0 xyzw 3 NONE float xyzw
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------ ------
// SV_Target 0 xyzw 0 TARGET float xyzw
//
ps_4_0
dcl_constantbuffer cb0[514], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texturecube (float,float,float,float) t1
dcl_input_ps linear v1.xyzw
dcl_input_ps linear v2.xy
dcl_input_ps linear v3.xyzw
dcl_output o0.xyzw
dcl_temps 5
resinfo r0.xyzw, l(0), t1.xyzw
lt r0.x, l(0.000000), r0.x
if_nz r0.x
add r0.xyz, v1.xyzx, -cb0[3].xyzx
dp3 r0.w, r0.xyzx, r0.xyzx
rsq r0.w, r0.w
mul r0.xyz, r0.wwww, r0.xyzx
dp3 r0.w, r0.xyzx, v3.xyzx
add r0.w, r0.w, r0.w
mad r0.xyz, v3.xyzx, -r0.wwww, r0.xyzx
sample r0.xyzw, r0.xyzx, t1.xyzw, s1
mul r0.xyzw, r0.xyzw, cb0[2].xxxx
else
mov r0.xyzw, l(0,0,0,1.000000)
endif
resinfo r1.xyzw, l(0), t0.xyzw
lt r1.x, l(0.000000), r1.x
if_nz r1.x
sample r1.xyzw, v2.xyxx, t0.xyzw, s0
else
mov r1.xyzw, l(1.000000,1.000000,1.000000,1.000000)
endif
mov r2.xyz, l(0,0,0,0)
mov r3.x, l(0)
loop
ige r3.y, r3.x, cb0[2].y
breakc_nz r3.y
add r4.xyzw, -v1.xyzw, cb0[r3.x + 4].xyzw
dp4 r3.y, r4.xyzw, r4.xyzw
rsq r3.z, r3.y
mul r4.xyzw, r3.zzzz, r4.xyzw
dp4_sat r3.z, v3.xyzw, r4.xyzw
sqrt r3.y, r3.y
div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y
mul r4.xyz, r3.zzzz, cb0[r3.x + 259].xyzx
mul r3.yzw, r3.yyyy, r4.xxyz
mad r2.xyz, r3.yzwy, l(10.000000, 10.000000, 10.000000, 0.000000), r2.xyzx
iadd r3.x, r3.x, l(1)
endloop
add r0.xyzw, r0.xyzw, r1.xyzw
mul r0.xyzw, r0.xyzw, cb0[1].xyzw
mov r2.w, l(1.000000)
add r1.xyzw, r2.xyzw, cb0[0].xyzw
mul o0.xyzw, r0.xyzw, r1.xyzw
ret
// Approximately 45 instruction slots used

};
}

}

#endif

const BYTE g_main[] =
{
68, 88, 66, 67, 44, 8,
184, 217, 17, 248, 179, 56,
147, 237, 47, 151, 5, 32,
18, 245, 1, 0, 0, 0,
229, 25, 0, 0, 1, 0,
0, 0, 36, 0, 0, 0,
70, 88, 49, 48, 185, 25,
0, 0, 1, 16, 255, 254,
1, 0, 0, 0, 11, 0,
0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 17, 23,
0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0,
0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 36, 71,
108, 111, 98, 97, 108, 115,
0, 102, 108, 111, 97, 116,
52, 0, 13, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 16, 0, 0, 0,
16, 0, 0, 0, 16, 0,
0, 0, 10, 33, 0, 0,
65, 109, 98, 105, 101, 110,
116, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 128, 63,
68, 105, 102, 102, 117, 115,
101, 0, 0, 0, 64, 63,
0, 0, 64, 63, 0, 0,
64, 63, 0, 0, 128, 63,
102, 108, 111, 97, 116, 0,
96, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0,
4, 0, 0, 0, 16, 0,
0, 0, 4, 0, 0, 0,
9, 9, 0, 0, 69, 110,
118, 105, 114, 111, 110, 109,
101, 110, 116, 95, 109, 97,
112, 95, 105, 110, 116, 101,
110, 115, 105, 116, 121, 0,
0, 0, 128, 63, 105, 110,
116, 0, 160, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 4, 0, 0, 0,
16, 0, 0, 0, 4, 0,
0, 0, 17, 9, 0, 0,
76, 105, 103, 104, 116, 95,
67, 111, 117, 110, 116, 0,
76, 73, 71, 72, 84, 67,
79, 85, 78, 84, 0, 86,
105, 101, 119, 80, 111, 115,
0, 86, 73, 69, 87, 80,
79, 83, 0, 13, 0, 0,
0, 1, 0, 0, 0, 255,
0, 0, 0, 240, 15, 0,
0, 16, 0, 0, 0, 240,
15, 0, 0, 10, 33, 0,
0, 76, 105, 103, 104, 116,
115, 0, 76, 73, 71, 72,
84, 65, 82, 82, 65, 89,
0, 76, 105, 103, 104, 116,
67, 111, 108, 111, 114, 115,
0, 76, 73, 71, 72, 84,
67, 79, 76, 79, 82, 65,
82, 82, 65, 89, 0, 102,
108, 111, 97, 116, 52, 120,
52, 0, 49, 1, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 64, 0, 0, 0,
64, 0, 0, 0, 64, 0,
0, 0, 11, 100, 0, 0,
87, 111, 114, 108, 100, 0,
87, 79, 82, 76, 68, 0,
86, 105, 101, 119, 0, 87,
79, 82, 76, 68, 86, 73,
69, 87, 0, 80, 114, 111,
106, 101, 99, 116, 105, 111,
110, 0, 80, 82, 79, 74,
69, 67, 84, 73, 79, 78,
0, 49, 1, 0, 0, 1,
0, 0, 0, 255, 0, 0,
0, 192, 63, 0, 0, 64,
0, 0, 0, 192, 63, 0,
0, 11, 100, 0, 0, 66,
111, 110, 101, 115, 0, 66,
79, 78, 69, 65, 82, 82,
65, 89, 0, 84, 101, 120,
116, 117, 114, 101, 50, 68,
0, 179, 1, 0, 0, 2,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 12, 0, 0, 0, 116,
120, 68, 105, 102, 102, 117,
115, 101, 0, 83, 97, 109,
112, 108, 101, 114, 83, 116,
97, 116, 101, 0, 227, 1,
0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 21, 0,
0, 0, 115, 97, 109, 76,
105, 110, 101, 97, 114, 0,
1, 0, 0, 0, 2, 0,
0, 0, 21, 0, 0, 0,
1, 0, 0, 0, 2, 0,
0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 2, 0,
0, 0, 1, 0, 0, 0,
84, 101, 120, 116, 117, 114,
101, 67, 117, 98, 101, 0,
58, 2, 0, 0, 2, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
17, 0, 0, 0, 116, 120,
69, 110, 118, 105, 114, 111,
110, 109, 101, 110, 116, 0,
101, 110, 118, 83, 97, 109,
112, 108, 101, 114, 0, 1,
0, 0, 0, 2, 0, 0,
0, 21, 0, 0, 0, 1,
0, 0, 0, 2, 0, 0,
0, 3, 0, 0, 0, 1,
0, 0, 0, 2, 0, 0,
0, 3, 0, 0, 0, 1,
0, 0, 0, 2, 0, 0,
0, 3, 0, 0, 0, 82,
101, 110, 100, 101, 114, 0,
80, 48, 0, 108, 10, 0,
0, 68, 88, 66, 67, 161,
105, 133, 81, 106, 253, 9,
17, 204, 236, 193, 126, 163,
68, 93, 107, 1, 0, 0,
0, 108, 10, 0, 0, 5,
0, 0, 0, 52, 0, 0,
0, 224, 2, 0, 0, 132,
3, 0, 0, 28, 4, 0,
0, 240, 9, 0, 0, 82,
68, 69, 70, 164, 2, 0,
0, 1, 0, 0, 0, 72,
0, 0, 0, 1, 0, 0,
0, 28, 0, 0, 0, 0,
4, 254, 255, 0, 1, 0,
0, 112, 2, 0, 0, 60,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0,
0, 36, 71, 108, 111, 98,
97, 108, 115, 0, 171, 171,
171, 60, 0, 0, 0, 11,
0, 0, 0, 96, 0, 0,
0, 160, 96, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 104, 1, 0, 0, 0,
0, 0, 0, 16, 0, 0,
0, 0, 0, 0, 0, 112,
1, 0, 0, 128, 1, 0,
0, 144, 1, 0, 0, 16,
0, 0, 0, 16, 0, 0,
0, 0, 0, 0, 0, 112,
1, 0, 0, 152, 1, 0,
0, 168, 1, 0, 0, 32,
0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 196,
1, 0, 0, 212, 1, 0,
0, 216, 1, 0, 0, 36,
0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 228,
1, 0, 0, 0, 0, 0,
0, 244, 1, 0, 0, 48,
0, 0, 0, 16, 0, 0,
0, 0, 0, 0, 0, 112,
1, 0, 0, 0, 0, 0,
0, 252, 1, 0, 0, 64,
0, 0, 0, 240, 15, 0,
0, 0, 0, 0, 0, 4,
2, 0, 0, 0, 0, 0,
0, 20, 2, 0, 0, 48,
16, 0, 0, 240, 15, 0,
0, 0, 0, 0, 0, 32,
2, 0, 0, 0, 0, 0,
0, 48, 2, 0, 0, 32,
32, 0, 0, 64, 0, 0,
0, 0, 0, 0, 0, 56,
2, 0, 0, 0, 0, 0,
0, 72, 2, 0, 0, 96,
32, 0, 0, 64, 0, 0,
0, 2, 0, 0, 0, 56,
2, 0, 0, 0, 0, 0,
0, 77, 2, 0, 0, 160,
32, 0, 0, 64, 0, 0,
0, 2, 0, 0, 0, 56,
2, 0, 0, 0, 0, 0,
0, 88, 2, 0, 0, 224,
32, 0, 0, 192, 63, 0,
0, 2, 0, 0, 0, 96,
2, 0, 0, 0, 0, 0,
0, 65, 109, 98, 105, 101,
110, 116, 0, 1, 0, 3,
0, 1, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 128, 63, 68,
105, 102, 102, 117, 115, 101,
0, 0, 0, 64, 63, 0,
0, 64, 63, 0, 0, 64,
63, 0, 0, 128, 63, 69,
110, 118, 105, 114, 111, 110,
109, 101, 110, 116, 95, 109,
97, 112, 95, 105, 110, 116,
101, 110, 115, 105, 116, 121,
0, 171, 171, 0, 0, 3,
0, 1, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 128, 63, 76,
105, 103, 104, 116, 95, 67,
111, 117, 110, 116, 0, 0,
0, 2, 0, 1, 0, 1,
0, 0, 0, 0, 0, 0,
0, 0, 0, 86, 105, 101,
119, 80, 111, 115, 0, 76,
105, 103, 104, 116, 115, 0,
171, 1, 0, 3, 0, 1,
0, 4, 0, 255, 0, 0,
0, 0, 0, 0, 0, 76,
105, 103, 104, 116, 67, 111,
108, 111, 114, 115, 0, 1,
0, 3, 0, 1, 0, 4,
0, 255, 0, 0, 0, 0,
0, 0, 0, 87, 111, 114,
108, 100, 0, 171, 171, 3,
0, 3, 0, 4, 0, 4,
0, 0, 0, 0, 0, 0,
0, 0, 0, 86, 105, 101,
119, 0, 80, 114, 111, 106,
101, 99, 116, 105, 111, 110,
0, 66, 111, 110, 101, 115,
0, 171, 171, 3, 0, 3,
0, 4, 0, 4, 0, 255,
0, 0, 0, 0, 0, 0,
0, 77, 105, 99, 114, 111,
115, 111, 102, 116, 32, 40,
82, 41, 32, 72, 76, 83,
76, 32, 83, 104, 97, 100,
101, 114, 32, 67, 111, 109,
112, 105, 108, 101, 114, 32,
57, 46, 50, 57, 46, 57,
53, 50, 46, 51, 49, 49,
49, 0, 171, 171, 171, 73,
83, 71, 78, 156, 0, 0,
0, 5, 0, 0, 0, 8,
0, 0, 0, 128, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 0, 0, 0, 0, 7,
7, 0, 0, 137, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 1, 0, 0, 0, 7,
7, 0, 0, 144, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 2, 0, 0, 0, 3,
3, 0, 0, 144, 0, 0,
0, 1, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 3, 0, 0, 0, 15,
15, 0, 0, 144, 0, 0,
0, 2, 0, 0, 0, 0,
0, 0, 0, 3, 0, 0,
0, 4, 0, 0, 0, 15,
15, 0, 0, 80, 79, 83,
73, 84, 73, 79, 78, 0,
78, 79, 82, 77, 65, 76,
0, 84, 69, 88, 67, 79,
79, 82, 68, 0, 171, 171,
171, 79, 83, 71, 78, 144,
0, 0, 0, 4, 0, 0,
0, 8, 0, 0, 0, 104,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 3,
0, 0, 0, 0, 0, 0,
0, 15, 0, 0, 0, 116,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 1, 0, 0,
0, 15, 0, 0, 0, 125,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 2, 0, 0,
0, 3, 12, 0, 0, 134,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 3, 0, 0,
0, 15, 0, 0, 0, 83,
86, 95, 80, 79, 83, 73,
84, 73, 79, 78, 0, 80,
79, 83, 73, 84, 73, 79,
78, 0, 84, 69, 88, 67,
79, 79, 82, 68, 0, 78,
79, 82, 77, 65, 76, 0,
171, 171, 171, 83, 72, 68,
82, 204, 5, 0, 0, 64,
0, 1, 0, 115, 1, 0,
0, 89, 8, 0, 4, 70,
142, 32, 0, 0, 0, 0,
0, 10, 6, 0, 0, 95,
0, 0, 3, 114, 16, 16,
0, 0, 0, 0, 0, 95,
0, 0, 3, 114, 16, 16,
0, 1, 0, 0, 0, 95,
0, 0, 3, 50, 16, 16,
0, 2, 0, 0, 0, 95,
0, 0, 3, 242, 16, 16,
0, 3, 0, 0, 0, 95,
0, 0, 3, 242, 16, 16,
0, 4, 0, 0, 0, 103,
0, 0, 4, 242, 32, 16,
0, 0, 0, 0, 0, 1,
0, 0, 0, 101, 0, 0,
3, 242, 32, 16, 0, 1,
0, 0, 0, 101, 0, 0,
3, 50, 32, 16, 0, 2,
0, 0, 0, 101, 0, 0,
3, 242, 32, 16, 0, 3,
0, 0, 0, 104, 0, 0,
2, 4, 0, 0, 0, 28,
0, 0, 5, 242, 0, 16,
0, 0, 0, 0, 0, 70,
30, 16, 0, 4, 0, 0,
0, 41, 0, 0, 7, 242,
0, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 0,
0, 0, 0, 1, 64, 0,
0, 2, 0, 0, 0, 56,
0, 0, 10, 242, 0, 16,
0, 1, 0, 0, 0, 86,
21, 16, 0, 3, 0, 0,
0, 70, 142, 32, 6, 0,
0, 0, 0, 17, 2, 0,
0, 26, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 1,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 17,
2, 0, 0, 10, 0, 16,
0, 0, 0, 0, 0, 6,
16, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 1,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 17,
2, 0, 0, 42, 0, 16,
0, 0, 0, 0, 0, 166,
26, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 1,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 17,
2, 0, 0, 58, 0, 16,
0, 0, 0, 0, 0, 246,
31, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 54, 0, 0,
5, 114, 0, 16, 0, 2,
0, 0, 0, 70, 18, 16,
0, 0, 0, 0, 0, 54,
0, 0, 5, 130, 0, 16,
0, 2, 0, 0, 0, 1,
64, 0, 0, 0, 0, 128,
63, 17, 0, 0, 7, 130,
0, 16, 0, 1, 0, 0,
0, 70, 14, 16, 0, 2,
0, 0, 0, 70, 14, 16,
0, 1, 0, 0, 0, 56,
0, 0, 10, 242, 0, 16,
0, 3, 0, 0, 0, 86,
21, 16, 0, 3, 0, 0,
0, 70, 142, 32, 6, 0,
0, 0, 0, 14, 2, 0,
0, 26, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 14,
2, 0, 0, 10, 0, 16,
0, 0, 0, 0, 0, 6,
16, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 14,
2, 0, 0, 42, 0, 16,
0, 0, 0, 0, 0, 166,
26, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 14,
2, 0, 0, 58, 0, 16,
0, 0, 0, 0, 0, 246,
31, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 17, 0, 0,
7, 18, 0, 16, 0, 1,
0, 0, 0, 70, 14, 16,
0, 2, 0, 0, 0, 70,
14, 16, 0, 3, 0, 0,
0, 16, 0, 0, 7, 18,
32, 16, 0, 3, 0, 0,
0, 70, 18, 16, 0, 1,
0, 0, 0, 70, 2, 16,
0, 3, 0, 0, 0, 56,
0, 0, 10, 242, 0, 16,
0, 3, 0, 0, 0, 86,
21, 16, 0, 3, 0, 0,
0, 70, 142, 32, 6, 0,
0, 0, 0, 15, 2, 0,
0, 26, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 15,
2, 0, 0, 10, 0, 16,
0, 0, 0, 0, 0, 6,
16, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 15,
2, 0, 0, 42, 0, 16,
0, 0, 0, 0, 0, 166,
26, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 15,
2, 0, 0, 58, 0, 16,
0, 0, 0, 0, 0, 246,
31, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 17, 0, 0,
7, 34, 0, 16, 0, 1,
0, 0, 0, 70, 14, 16,
0, 2, 0, 0, 0, 70,
14, 16, 0, 3, 0, 0,
0, 16, 0, 0, 7, 34,
32, 16, 0, 3, 0, 0,
0, 70, 18, 16, 0, 1,
0, 0, 0, 70, 2, 16,
0, 3, 0, 0, 0, 56,
0, 0, 10, 242, 0, 16,
0, 3, 0, 0, 0, 86,
21, 16, 0, 3, 0, 0,
0, 70, 142, 32, 6, 0,
0, 0, 0, 16, 2, 0,
0, 26, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 16,
2, 0, 0, 10, 0, 16,
0, 0, 0, 0, 0, 6,
16, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 3,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 16,
2, 0, 0, 42, 0, 16,
0, 0, 0, 0, 0, 166,
26, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 50, 0, 0,
12, 242, 0, 16, 0, 0,
0, 0, 0, 70, 142, 32,
6, 0, 0, 0, 0, 16,
2, 0, 0, 58, 0, 16,
0, 0, 0, 0, 0, 246,
31, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 3,
0, 0, 0, 17, 0, 0,
7, 66, 0, 16, 0, 1,
0, 0, 0, 70, 14, 16,
0, 2, 0, 0, 0, 70,
14, 16, 0, 0, 0, 0,
0, 16, 0, 0, 7, 66,
32, 16, 0, 3, 0, 0,
0, 70, 18, 16, 0, 1,
0, 0, 0, 70, 2, 16,
0, 0, 0, 0, 0, 17,
0, 0, 8, 18, 0, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 1, 0, 0,
0, 70, 142, 32, 0, 0,
0, 0, 0, 6, 2, 0,
0, 17, 0, 0, 8, 34,
0, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 70, 142, 32,
0, 0, 0, 0, 0, 7,
2, 0, 0, 17, 0, 0,
8, 66, 0, 16, 0, 0,
0, 0, 0, 70, 14, 16,
0, 1, 0, 0, 0, 70,
142, 32, 0, 0, 0, 0,
0, 8, 2, 0, 0, 17,
0, 0, 8, 130, 0, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 1, 0, 0,
0, 70, 142, 32, 0, 0,
0, 0, 0, 9, 2, 0,
0, 54, 0, 0, 5, 242,
32, 16, 0, 1, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 17, 0, 0,
8, 18, 32, 16, 0, 0,
0, 0, 0, 70, 14, 16,
0, 0, 0, 0, 0, 70,
142, 32, 0, 0, 0, 0,
0, 10, 2, 0, 0, 17,
0, 0, 8, 34, 32, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 0, 0, 0,
0, 70, 142, 32, 0, 0,
0, 0, 0, 11, 2, 0,
0, 17, 0, 0, 8, 66,
32, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 0,
0, 0, 0, 70, 142, 32,
0, 0, 0, 0, 0, 12,
2, 0, 0, 17, 0, 0,
8, 130, 32, 16, 0, 0,
0, 0, 0, 70, 14, 16,
0, 0, 0, 0, 0, 70,
142, 32, 0, 0, 0, 0,
0, 13, 2, 0, 0, 54,
0, 0, 5, 50, 32, 16,
0, 2, 0, 0, 0, 70,
16, 16, 0, 2, 0, 0,
0, 54, 0, 0, 5, 130,
32, 16, 0, 3, 0, 0,
0, 1, 64, 0, 0, 0,
0, 0, 0, 62, 0, 0,
1, 83, 84, 65, 84, 116,
0, 0, 0, 39, 0, 0,
0, 4, 0, 0, 0, 0,
0, 0, 0, 9, 0, 0,
0, 19, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 5, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 181,
2, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 2,
0, 0, 0, 0, 0, 0,
0, 204, 9, 0, 0, 68,
88, 66, 67, 45, 50, 163,
142, 242, 188, 47, 201, 187,
237, 164, 195, 29, 110, 43,
98, 1, 0, 0, 0, 204,
9, 0, 0, 5, 0, 0,
0, 52, 0, 0, 0, 140,
3, 0, 0, 36, 4, 0,
0, 88, 4, 0, 0, 80,
9, 0, 0, 82, 68, 69,
70, 80, 3, 0, 0, 1,
0, 0, 0, 244, 0, 0,
0, 5, 0, 0, 0, 28,
0, 0, 0, 0, 4, 255,
255, 0, 1, 0, 0, 28,
3, 0, 0, 188, 0, 0,
0, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 198,
0, 0, 0, 3, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0,
0, 209, 0, 0, 0, 2,
0, 0, 0, 5, 0, 0,
0, 4, 0, 0, 0, 255,
255, 255, 255, 0, 0, 0,
0, 1, 0, 0, 0, 12,
0, 0, 0, 219, 0, 0,
0, 2, 0, 0, 0, 5,
0, 0, 0, 9, 0, 0,
0, 255, 255, 255, 255, 1,
0, 0, 0, 1, 0, 0,
0, 12, 0, 0, 0, 233,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0,
0, 115, 97, 109, 76, 105,
110, 101, 97, 114, 0, 101,
110, 118, 83, 97, 109, 112,
108, 101, 114, 0, 116, 120,
68, 105, 102, 102, 117, 115,
101, 0, 116, 120, 69, 110,
118, 105, 114, 111, 110, 109,
101, 110, 116, 0, 36, 71,
108, 111, 98, 97, 108, 115,
0, 171, 171, 233, 0, 0,
0, 11, 0, 0, 0, 12,
1, 0, 0, 160, 96, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 20, 2, 0,
0, 0, 0, 0, 0, 16,
0, 0, 0, 2, 0, 0,
0, 28, 2, 0, 0, 44,
2, 0, 0, 60, 2, 0,
0, 16, 0, 0, 0, 16,
0, 0, 0, 2, 0, 0,
0, 28, 2, 0, 0, 68,
2, 0, 0, 84, 2, 0,
0, 32, 0, 0, 0, 4,
0, 0, 0, 2, 0, 0,
0, 112, 2, 0, 0, 128,
2, 0, 0, 132, 2, 0,
0, 36, 0, 0, 0, 4,
0, 0, 0, 2, 0, 0,
0, 144, 2, 0, 0, 0,
0, 0, 0, 160, 2, 0,
0, 48, 0, 0, 0, 16,
0, 0, 0, 2, 0, 0,
0, 28, 2, 0, 0, 0,
0, 0, 0, 168, 2, 0,
0, 64, 0, 0, 0, 240,
15, 0, 0, 2, 0, 0,
0, 176, 2, 0, 0, 0,
0, 0, 0, 192, 2, 0,
0, 48, 16, 0, 0, 240,
15, 0, 0, 2, 0, 0,
0, 204, 2, 0, 0, 0,
0, 0, 0, 220, 2, 0,
0, 32, 32, 0, 0, 64,
0, 0, 0, 0, 0, 0,
0, 228, 2, 0, 0, 0,
0, 0, 0, 244, 2, 0,
0, 96, 32, 0, 0, 64,
0, 0, 0, 0, 0, 0,
0, 228, 2, 0, 0, 0,
0, 0, 0, 249, 2, 0,
0, 160, 32, 0, 0, 64,
0, 0, 0, 0, 0, 0,
0, 228, 2, 0, 0, 0,
0, 0, 0, 4, 3, 0,
0, 224, 32, 0, 0, 192,
63, 0, 0, 0, 0, 0,
0, 12, 3, 0, 0, 0,
0, 0, 0, 65, 109, 98,
105, 101, 110, 116, 0, 1,
0, 3, 0, 1, 0, 4,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 128,
63, 68, 105, 102, 102, 117,
115, 101, 0, 0, 0, 64,
63, 0, 0, 64, 63, 0,
0, 64, 63, 0, 0, 128,
63, 69, 110, 118, 105, 114,
111, 110, 109, 101, 110, 116,
95, 109, 97, 112, 95, 105,
110, 116, 101, 110, 115, 105,
116, 121, 0, 171, 171, 0,
0, 3, 0, 1, 0, 1,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 128,
63, 76, 105, 103, 104, 116,
95, 67, 111, 117, 110, 116,
0, 0, 0, 2, 0, 1,
0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 86,
105, 101, 119, 80, 111, 115,
0, 76, 105, 103, 104, 116,
115, 0, 171, 1, 0, 3,
0, 1, 0, 4, 0, 255,
0, 0, 0, 0, 0, 0,
0, 76, 105, 103, 104, 116,
67, 111, 108, 111, 114, 115,
0, 1, 0, 3, 0, 1,
0, 4, 0, 255, 0, 0,
0, 0, 0, 0, 0, 87,
111, 114, 108, 100, 0, 171,
171, 3, 0, 3, 0, 4,
0, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 86,
105, 101, 119, 0, 80, 114,
111, 106, 101, 99, 116, 105,
111, 110, 0, 66, 111, 110,
101, 115, 0, 171, 171, 3,
0, 3, 0, 4, 0, 4,
0, 255, 0, 0, 0, 0,
0, 0, 0, 77, 105, 99,
114, 111, 115, 111, 102, 116,
32, 40, 82, 41, 32, 72,
76, 83, 76, 32, 83, 104,
97, 100, 101, 114, 32, 67,
111, 109, 112, 105, 108, 101,
114, 32, 57, 46, 50, 57,
46, 57, 53, 50, 46, 51,
49, 49, 49, 0, 171, 171,
171, 73, 83, 71, 78, 144,
0, 0, 0, 4, 0, 0,
0, 8, 0, 0, 0, 104,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 3,
0, 0, 0, 0, 0, 0,
0, 15, 0, 0, 0, 116,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 1, 0, 0,
0, 15, 15, 0, 0, 125,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 2, 0, 0,
0, 3, 3, 0, 0, 134,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 3, 0, 0,
0, 15, 15, 0, 0, 83,
86, 95, 80, 79, 83, 73,
84, 73, 79, 78, 0, 80,
79, 83, 73, 84, 73, 79,
78, 0, 84, 69, 88, 67,
79, 79, 82, 68, 0, 78,
79, 82, 77, 65, 76, 0,
171, 171, 171, 79, 83, 71,
78, 44, 0, 0, 0, 1,
0, 0, 0, 8, 0, 0,
0, 32, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 3, 0, 0, 0, 0,
0, 0, 0, 15, 0, 0,
0, 83, 86, 95, 84, 97,
114, 103, 101, 116, 0, 171,
171, 83, 72, 68, 82, 240,
4, 0, 0, 64, 0, 0,
0, 60, 1, 0, 0, 89,
8, 0, 4, 70, 142, 32,
0, 0, 0, 0, 0, 2,
2, 0, 0, 90, 0, 0,
3, 0, 96, 16, 0, 0,
0, 0, 0, 90, 0, 0,
3, 0, 96, 16, 0, 1,
0, 0, 0, 88, 24, 0,
4, 0, 112, 16, 0, 0,
0, 0, 0, 85, 85, 0,
0, 88, 48, 0, 4, 0,
112, 16, 0, 1, 0, 0,
0, 85, 85, 0, 0, 98,
16, 0, 3, 242, 16, 16,
0, 1, 0, 0, 0, 98,
16, 0, 3, 50, 16, 16,
0, 2, 0, 0, 0, 98,
16, 0, 3, 242, 16, 16,
0, 3, 0, 0, 0, 101,
0, 0, 3, 242, 32, 16,
0, 0, 0, 0, 0, 104,
0, 0, 2, 5, 0, 0,
0, 61, 0, 0, 7, 242,
0, 16, 0, 0, 0, 0,
0, 1, 64, 0, 0, 0,
0, 0, 0, 70, 126, 16,
0, 1, 0, 0, 0, 49,
0, 0, 7, 18, 0, 16,
0, 0, 0, 0, 0, 1,
64, 0, 0, 0, 0, 0,
0, 10, 0, 16, 0, 0,
0, 0, 0, 31, 0, 4,
3, 10, 0, 16, 0, 0,
0, 0, 0, 0, 0, 0,
9, 114, 0, 16, 0, 0,
0, 0, 0, 70, 18, 16,
0, 1, 0, 0, 0, 70,
130, 32, 128, 65, 0, 0,
0, 0, 0, 0, 0, 3,
0, 0, 0, 16, 0, 0,
7, 130, 0, 16, 0, 0,
0, 0, 0, 70, 2, 16,
0, 0, 0, 0, 0, 70,
2, 16, 0, 0, 0, 0,
0, 68, 0, 0, 5, 130,
0, 16, 0, 0, 0, 0,
0, 58, 0, 16, 0, 0,
0, 0, 0, 56, 0, 0,
7, 114, 0, 16, 0, 0,
0, 0, 0, 246, 15, 16,
0, 0, 0, 0, 0, 70,
2, 16, 0, 0, 0, 0,
0, 16, 0, 0, 7, 130,
0, 16, 0, 0, 0, 0,
0, 70, 2, 16, 0, 0,
0, 0, 0, 70, 18, 16,
0, 3, 0, 0, 0, 0,
0, 0, 7, 130, 0, 16,
0, 0, 0, 0, 0, 58,
0, 16, 0, 0, 0, 0,
0, 58, 0, 16, 0, 0,
0, 0, 0, 50, 0, 0,
10, 114, 0, 16, 0, 0,
0, 0, 0, 70, 18, 16,
0, 3, 0, 0, 0, 246,
15, 16, 128, 65, 0, 0,
0, 0, 0, 0, 0, 70,
2, 16, 0, 0, 0, 0,
0, 69, 0, 0, 9, 242,
0, 16, 0, 0, 0, 0,
0, 70, 2, 16, 0, 0,
0, 0, 0, 70, 126, 16,
0, 1, 0, 0, 0, 0,
96, 16, 0, 1, 0, 0,
0, 56, 0, 0, 8, 242,
0, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 0,
0, 0, 0, 6, 128, 32,
0, 0, 0, 0, 0, 2,
0, 0, 0, 18, 0, 0,
1, 54, 0, 0, 8, 242,
0, 16, 0, 0, 0, 0,
0, 2, 64, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 128, 63, 21, 0, 0,
1, 61, 0, 0, 7, 242,
0, 16, 0, 1, 0, 0,
0, 1, 64, 0, 0, 0,
0, 0, 0, 70, 126, 16,
0, 0, 0, 0, 0, 49,
0, 0, 7, 18, 0, 16,
0, 1, 0, 0, 0, 1,
64, 0, 0, 0, 0, 0,
0, 10, 0, 16, 0, 1,
0, 0, 0, 31, 0, 4,
3, 10, 0, 16, 0, 1,
0, 0, 0, 69, 0, 0,
9, 242, 0, 16, 0, 1,
0, 0, 0, 70, 16, 16,
0, 2, 0, 0, 0, 70,
126, 16, 0, 0, 0, 0,
0, 0, 96, 16, 0, 0,
0, 0, 0, 18, 0, 0,
1, 54, 0, 0, 8, 242,
0, 16, 0, 1, 0, 0,
0, 2, 64, 0, 0, 0,
0, 128, 63, 0, 0, 128,
63, 0, 0, 128, 63, 0,
0, 128, 63, 21, 0, 0,
1, 54, 0, 0, 8, 114,
0, 16, 0, 2, 0, 0,
0, 2, 64, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 54, 0, 0,
5, 18, 0, 16, 0, 3,
0, 0, 0, 1, 64, 0,
0, 0, 0, 0, 0, 48,
0, 0, 1, 33, 0, 0,
8, 34, 0, 16, 0, 3,
0, 0, 0, 10, 0, 16,
0, 3, 0, 0, 0, 26,
128, 32, 0, 0, 0, 0,
0, 2, 0, 0, 0, 3,
0, 4, 3, 26, 0, 16,
0, 3, 0, 0, 0, 0,
0, 0, 11, 242, 0, 16,
0, 4, 0, 0, 0, 70,
30, 16, 128, 65, 0, 0,
0, 1, 0, 0, 0, 70,
142, 32, 6, 0, 0, 0,
0, 4, 0, 0, 0, 10,
0, 16, 0, 3, 0, 0,
0, 17, 0, 0, 7, 34,
0, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 4,
0, 0, 0, 70, 14, 16,
0, 4, 0, 0, 0, 68,
0, 0, 5, 66, 0, 16,
0, 3, 0, 0, 0, 26,
0, 16, 0, 3, 0, 0,
0, 56, 0, 0, 7, 242,
0, 16, 0, 4, 0, 0,
0, 166, 10, 16, 0, 3,
0, 0, 0, 70, 14, 16,
0, 4, 0, 0, 0, 17,
32, 0, 7, 66, 0, 16,
0, 3, 0, 0, 0, 70,
30, 16, 0, 3, 0, 0,
0, 70, 14, 16, 0, 4,
0, 0, 0, 75, 0, 0,
5, 34, 0, 16, 0, 3,
0, 0, 0, 26, 0, 16,
0, 3, 0, 0, 0, 14,
0, 0, 10, 34, 0, 16,
0, 3, 0, 0, 0, 2,
64, 0, 0, 0, 0, 128,
63, 0, 0, 128, 63, 0,
0, 128, 63, 0, 0, 128,
63, 26, 0, 16, 0, 3,
0, 0, 0, 56, 0, 0,
10, 114, 0, 16, 0, 4,
0, 0, 0, 166, 10, 16,
0, 3, 0, 0, 0, 70,
130, 32, 6, 0, 0, 0,
0, 3, 1, 0, 0, 10,
0, 16, 0, 3, 0, 0,
0, 56, 0, 0, 7, 226,
0, 16, 0, 3, 0, 0,
0, 86, 5, 16, 0, 3,
0, 0, 0, 6, 9, 16,
0, 4, 0, 0, 0, 50,
0, 0, 12, 114, 0, 16,
0, 2, 0, 0, 0, 150,
7, 16, 0, 3, 0, 0,
0, 2, 64, 0, 0, 0,
0, 32, 65, 0, 0, 32,
65, 0, 0, 32, 65, 0,
0, 0, 0, 70, 2, 16,
0, 2, 0, 0, 0, 30,
0, 0, 7, 18, 0, 16,
0, 3, 0, 0, 0, 10,
0, 16, 0, 3, 0, 0,
0, 1, 64, 0, 0, 1,
0, 0, 0, 22, 0, 0,
1, 0, 0, 0, 7, 242,
0, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 0,
0, 0, 0, 70, 14, 16,
0, 1, 0, 0, 0, 56,
0, 0, 8, 242, 0, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 0, 0, 0,
0, 70, 142, 32, 0, 0,
0, 0, 0, 1, 0, 0,
0, 54, 0, 0, 5, 130,
0, 16, 0, 2, 0, 0,
0, 1, 64, 0, 0, 0,
0, 128, 63, 0, 0, 0,
8, 242, 0, 16, 0, 1,
0, 0, 0, 70, 14, 16,
0, 2, 0, 0, 0, 70,
142, 32, 0, 0, 0, 0,
0, 0, 0, 0, 0, 56,
0, 0, 7, 242, 32, 16,
0, 0, 0, 0, 0, 70,
14, 16, 0, 0, 0, 0,
0, 70, 14, 16, 0, 1,
0, 0, 0, 62, 0, 0,
1, 83, 84, 65, 84, 116,
0, 0, 0, 45, 0, 0,
0, 5, 0, 0, 0, 0,
0, 0, 0, 4, 0, 0,
0, 22, 0, 0, 0, 2,
0, 0, 0, 0, 0, 0,
0, 3, 0, 0, 0, 3,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 20, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 57,
13, 0, 0, 0, 0, 0,
0, 4, 0, 0, 0, 160,
96, 0, 0, 0, 0, 0,
0, 11, 0, 0, 0, 255,
255, 255, 255, 0, 0, 0,
0, 48, 0, 0, 0, 20,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 56,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 72,
0, 0, 0, 20, 0, 0,
0, 0, 0, 0, 0, 16,
0, 0, 0, 80, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 130, 0, 0,
0, 102, 0, 0, 0, 0,
0, 0, 0, 32, 0, 0,
0, 156, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 192, 0, 0, 0, 164,
0, 0, 0, 204, 0, 0,
0, 36, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 215,
0, 0, 0, 20, 0, 0,
0, 223, 0, 0, 0, 48,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 0,
0, 231, 0, 0, 0, 10,
1, 0, 0, 64, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 21, 1, 0, 0, 231,
0, 0, 0, 33, 1, 0,
0, 48, 16, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 86,
1, 0, 0, 58, 1, 0,
0, 92, 1, 0, 0, 32,
32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 98, 1, 0,
0, 58, 1, 0, 0, 103,
1, 0, 0, 96, 32, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 113, 1, 0, 0, 58,
1, 0, 0, 124, 1, 0,
0, 160, 32, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 163,
1, 0, 0, 135, 1, 0,
0, 169, 1, 0, 0, 224,
32, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 217, 1, 0,
0, 189, 1, 0, 0, 0,
0, 0, 0, 255, 255, 255,
255, 0, 0, 0, 0, 12,
2, 0, 0, 240, 1, 0,
0, 0, 0, 0, 0, 255,
255, 255, 255, 3, 0, 0,
0, 45, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0,
0, 22, 2, 0, 0, 46,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 34,
2, 0, 0, 47, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 46, 2, 0,
0, 0, 0, 0, 0, 98,
2, 0, 0, 70, 2, 0,
0, 0, 0, 0, 0, 255,
255, 255, 255, 0, 0, 0,
0, 112, 2, 0, 0, 240,
1, 0, 0, 0, 0, 0,
0, 255, 255, 255, 255, 4,
0, 0, 0, 45, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 123, 2, 0,
0, 46, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0,
0, 135, 2, 0, 0, 47,
0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 147,
2, 0, 0, 48, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 159, 2, 0,
0, 0, 0, 0, 0, 171,
2, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 178,
2, 0, 0, 3, 0, 0,
0, 0, 0, 0, 0, 6,
0, 0, 0, 0, 0, 0,
0, 7, 0, 0, 0, 37,
13, 0, 0, 8, 0, 0,
0, 0, 0, 0, 0, 1,
0, 0, 0, 45, 13, 0,
0, 7, 0, 0, 0, 0,
0, 0, 0, 7, 0, 0,
0, 9, 23, 0, 0
};
[/code]

Share this post


Link to post
Share on other sites
I've not actually used the 'compile to header' option before, but I'm guessing you pass the compiled output into the [font="Lucida Console"]D3DX10CreateEffectFromMemory[/font] function as usual.

e.g.
[font="Lucida Console"]D3DX10CreateEffectFromMemory( g_main, sizeof(g_main), ...[/font]

Also, by the sounds of it you can use [font="Lucida Console"]/Vn[/font] to specify a variable name other than [font="Lucida Console"]g_main[/font] to be generated.

Share this post


Link to post
Share on other sites
I wrote a program to solve this exact problem of embedding text files in C[++] source: [url="https://bitbucket.org/sherief/text-to-c-string"]https://bitbucket.or...ext-to-c-string[/url]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this