1/* WARNING, THIS FILE WAS GENERATED, DO NOT EDIT */
2#ifndef SKY_GLSL_GEN_HGLES3_GLES3
3#define SKY_GLSL_GEN_HGLES3_GLES3
4
5
6#include "drivers/gles3/shader_gles3.h"
7
8
9class SkyShaderGLES3 : public ShaderGLES3 {
10
11public:
12
13 enum Uniforms {
14 BCS,
15 GLOBAL_SHADER_S,
16 ORIENTATION,
17 PROJECTION,
18 POSITION,
19 TIME,
20 LUMINANCE_MULTIPLIER,
21 FOG_AERIAL_PERSPECTIVE,
22 FOG_LIGHT_COLOR,
23 FOG_SUN_SCATTER,
24 FOG_ENABLED,
25 FOG_DENSITY,
26 Z_FAR,
27 DIRECTIONAL_LIGHT_COUNT,
28 };
29
30 enum ShaderVariant {
31 MODE_BACKGROUND,
32 MODE_HALF_RES,
33 MODE_QUARTER_RES,
34 MODE_CUBEMAP,
35 MODE_CUBEMAP_HALF_RES,
36 MODE_CUBEMAP_QUARTER_RES,
37 };
38
39 enum Specializations {
40 USE_MULTIVIEW=1,
41 USE_INVERTED_Y=2,
42 };
43
44 _FORCE_INLINE_ bool version_bind_shader(RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { return _version_bind_shader(p_version,p_variant,p_specialization); }
45
46 _FORCE_INLINE_ int version_get_uniform(Uniforms p_uniform,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { return _version_get_uniform(p_uniform,p_version,p_variant,p_specialization); }
47
48 #define _FU if (version_get_uniform(p_uniform,p_version,p_variant,p_specialization)<0) return;
49
50 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform1f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
51
52 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, double p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform1f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
53
54 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint8_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform1ui(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
55
56 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int8_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform1i(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
57
58 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint16_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform1ui(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
59
60 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int16_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform1i(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
61
62 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, uint32_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform1ui(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
63
64 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, int32_t p_value,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform1i(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_value); }
65
66 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Color& p_color,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU GLfloat col[4]={p_color.r,p_color.g,p_color.b,p_color.a}; glUniform4fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,col); }
67
68 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Vector2& p_vec2,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU GLfloat vec2[2]={float(p_vec2.x),float(p_vec2.y)}; glUniform2fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,vec2); }
69
70 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Size2i& p_vec2,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU GLint vec2[2]={GLint(p_vec2.x),GLint(p_vec2.y)}; glUniform2iv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,vec2); }
71
72 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Vector3& p_vec3,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU GLfloat vec3[3]={float(p_vec3.x),float(p_vec3.y),float(p_vec3.z)}; glUniform3fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,vec3); }
73
74 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform2f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_a,p_b); }
75
76 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform3f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_a,p_b,p_c); }
77
78 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, float p_a, float p_b, float p_c, float p_d,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU glUniform4f(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),p_a,p_b,p_c,p_d); }
79
80 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Transform3D& p_transform,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU
81
82 const Transform3D &tr = p_transform;
83
84 GLfloat matrix[16]={ /* build a 16x16 matrix */
85 (GLfloat)tr.basis.rows[0][0],
86 (GLfloat)tr.basis.rows[1][0],
87 (GLfloat)tr.basis.rows[2][0],
88 (GLfloat)0,
89 (GLfloat)tr.basis.rows[0][1],
90 (GLfloat)tr.basis.rows[1][1],
91 (GLfloat)tr.basis.rows[2][1],
92 (GLfloat)0,
93 (GLfloat)tr.basis.rows[0][2],
94 (GLfloat)tr.basis.rows[1][2],
95 (GLfloat)tr.basis.rows[2][2],
96 (GLfloat)0,
97 (GLfloat)tr.origin.x,
98 (GLfloat)tr.origin.y,
99 (GLfloat)tr.origin.z,
100 (GLfloat)1
101 };
102
103 glUniformMatrix4fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,false,matrix);
104
105 }
106
107 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Transform2D& p_transform,RID p_version,ShaderVariant p_variant,uint64_t p_specialization=2) { _FU
108
109 const Transform2D &tr = p_transform;
110
111 GLfloat matrix[16]={ /* build a 16x16 matrix */
112 (GLfloat)tr.columns[0][0],
113 (GLfloat)tr.columns[0][1],
114 (GLfloat)0,
115 (GLfloat)0,
116 (GLfloat)tr.columns[1][0],
117 (GLfloat)tr.columns[1][1],
118 (GLfloat)0,
119 (GLfloat)0,
120 (GLfloat)0,
121 (GLfloat)0,
122 (GLfloat)1,
123 (GLfloat)0,
124 (GLfloat)tr.columns[2][0],
125 (GLfloat)tr.columns[2][1],
126 (GLfloat)0,
127 (GLfloat)1
128 };
129
130 glUniformMatrix4fv(version_get_uniform(p_uniform,p_version,p_variant,p_specialization),1,false,matrix);
131
132 }
133
134 _FORCE_INLINE_ void version_set_uniform(Uniforms p_uniform, const Projection& p_matrix, RID p_version, ShaderVariant p_variant,uint64_t p_specialization=2) { _FU
135
136 GLfloat matrix[16];
137
138 for (int i = 0; i < 4; i++) {
139 for (int j = 0; j < 4; j++) {
140 matrix[i * 4 + j] = p_matrix.columns[i][j];
141 }
142 }
143
144 glUniformMatrix4fv(version_get_uniform(p_uniform, p_version, p_variant, p_specialization), 1, false, matrix);
145 }
146
147#undef _FU
148
149
150protected:
151
152 virtual void _init() override {
153
154 static const char* _uniform_strings[]={
155 "bcs",
156 "global_shader_s",
157 "orientation",
158 "projection",
159 "position",
160 "time",
161 "luminance_multiplier",
162 "fog_aerial_perspective",
163 "fog_light_color",
164 "fog_sun_scatter",
165 "fog_enabled",
166 "fog_density",
167 "z_far",
168 "directional_light_count",
169 };
170
171 static const char* _variant_defines[]={
172 "",
173 "#define USE_HALF_RES_PASS",
174 "#define USE_QUARTER_RES_PASS",
175 "#define USE_CUBEMAP_PASS",
176 "#define USE_CUBEMAP_PASS \n#define USE_HALF_RES_PASS",
177 "#define USE_CUBEMAP_PASS \n#define USE_QUARTER_RES_PASS",
178 };
179
180 static TexUnitPair _texunit_pairs[]={
181 {"source_color_correction",-1},
182 {"radiance",-1},
183 {"half_res",-2},
184 {"quarter_res",-3},
185 };
186
187 static UBOPair _ubo_pairs[]={
188 {"TonemapData",0},
189 {"GlobalShaderUniformData",1},
190 {"DirectionalLights",4},
191 {"MaterialUniforms",3},
192 {"MultiviewData",5},
193 };
194
195 static Specialization _spec_pairs[]={
196 {"USE_MULTIVIEW",false},
197 {"USE_INVERTED_Y",true},
198 };
199
200 static const Feedback* _feedbacks=nullptr;
201 static const char _vertex_code[]={
20210,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,48,41,32,105,110,32,118,101,99,50,32,118,101,114,116,101,120,95,97,116,116,114,105,98,59,10,10,111,117,116,32,118,101,99,50,32,117,118,95,105,110,116,101,114,112,59,10,47,42,32,99,108,97,110,103,45,102,111,114,109,97,116,32,111,110,32,42,47,10,10,118,111,105,100,32,109,97,105,110,40,41,32,123,10,35,105,102,100,101,102,32,85,83,69,95,73,78,86,69,82,84,69,68,95,89,10,9,117,118,95,105,110,116,101,114,112,32,61,32,118,101,114,116,101,120,95,97,116,116,114,105,98,59,10,35,101,108,115,101,10,9,47,47,32,87,101,39,114,101,32,100,111,105,110,103,32,99,108,111,99,107,119,105,115,101,32,99,117,108,108,105,110,103,32,115,111,32,102,108,105,112,32,116,104,101,32,111,114,100,101,114,10,9,117,118,95,105,110,116,101,114,112,32,61,32,118,101,99,50,40,118,101,114,116,101,120,95,97,116,116,114,105,98,46,120,44,32,118,101,114,116,101,120,95,97,116,116,114,105,98,46,121,32,42,32,45,49,46,48,41,59,10,35,101,110,100,105,102,10,9,103,108,95,80,111,115,105,116,105,111,110,32,61,32,118,101,99,52,40,117,118,95,105,110,116,101,114,112,44,32,49,46,48,44,32,49,46,48,41,59,10,125,10,10,47,42,32,99,108,97,110,103,45,102,111,114,109,97,116,32,111,102,102,32,42,47,10, 0};
203
204 static const char _fragment_code[]={
20510,35,100,101,102,105,110,101,32,77,95,80,73,32,51,46,49,52,49,53,57,50,54,53,51,53,57,10,10,35,105,102,100,101,102,32,85,83,69,95,66,67,83,10,117,110,105,102,111,114,109,32,118,101,99,51,32,98,99,115,59,10,35,101,110,100,105,102,10,10,35,105,102,100,101,102,32,85,83,69,95,67,79,76,79,82,95,67,79,82,82,69,67,84,73,79,78,10,35,105,102,100,101,102,32,85,83,69,95,49,68,95,76,85,84,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,115,111,117,114,99,101,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,59,32,47,47,116,101,120,117,110,105,116,58,45,49,10,35,101,108,115,101,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,51,68,32,115,111,117,114,99,101,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,59,32,47,47,116,101,120,117,110,105,116,58,45,49,10,35,101,110,100,105,102,10,35,101,110,100,105,102,10,10,108,97,121,111,117,116,40,115,116,100,49,52,48,41,32,117,110,105,102,111,114,109,32,84,111,110,101,109,97,112,68,97,116,97,32,123,32,47,47,117,98,111,58,48,10,9,102,108,111,97,116,32,101,120,112,111,115,117,114,101,59,10,9,102,108,111,97,116,32,119,104,105,116,101,59,10,9,105,110,116,32,116,111,110,101,109,97,112,112,101,114,59,10,9,105,110,116,32,112,97,100,59,10,125,59,10,10,118,101,99,51,32,97,112,112,108,121,95,98,99,115,40,118,101,99,51,32,99,111,108,111,114,44,32,118,101,99,51,32,98,99,115,41,32,123,10,9,99,111,108,111,114,32,61,32,109,105,120,40,118,101,99,51,40,48,46,48,41,44,32,99,111,108,111,114,44,32,98,99,115,46,120,41,59,10,9,99,111,108,111,114,32,61,32,109,105,120,40,118,101,99,51,40,48,46,53,41,44,32,99,111,108,111,114,44,32,98,99,115,46,121,41,59,10,9,99,111,108,111,114,32,61,32,109,105,120,40,118,101,99,51,40,100,111,116,40,118,101,99,51,40,49,46,48,41,44,32,99,111,108,111,114,41,32,42,32,48,46,51,51,51,51,51,41,44,32,99,111,108,111,114,44,32,98,99,115,46,122,41,59,10,10,9,114,101,116,117,114,110,32,99,111,108,111,114,59,10,125,10,35,105,102,100,101,102,32,85,83,69,95,67,79,76,79,82,95,67,79,82,82,69,67,84,73,79,78,10,35,105,102,100,101,102,32,85,83,69,95,49,68,95,76,85,84,10,118,101,99,51,32,97,112,112,108,121,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,40,118,101,99,51,32,99,111,108,111,114,41,32,123,10,9,99,111,108,111,114,46,114,32,61,32,116,101,120,116,117,114,101,40,115,111,117,114,99,101,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,44,32,118,101,99,50,40,99,111,108,111,114,46,114,44,32,48,46,48,102,41,41,46,114,59,10,9,99,111,108,111,114,46,103,32,61,32,116,101,120,116,117,114,101,40,115,111,117,114,99,101,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,44,32,118,101,99,50,40,99,111,108,111,114,46,103,44,32,48,46,48,102,41,41,46,103,59,10,9,99,111,108,111,114,46,98,32,61,32,116,101,120,116,117,114,101,40,115,111,117,114,99,101,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,44,32,118,101,99,50,40,99,111,108,111,114,46,98,44,32,48,46,48,102,41,41,46,98,59,10,9,114,101,116,117,114,110,32,99,111,108,111,114,59,10,125,10,35,101,108,115,101,10,118,101,99,51,32,97,112,112,108,121,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,40,118,101,99,51,32,99,111,108,111,114,41,32,123,10,9,114,101,116,117,114,110,32,116,101,120,116,117,114,101,76,111,100,40,115,111,117,114,99,101,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,44,32,99,111,108,111,114,44,32,48,46,48,41,46,114,103,98,59,10,125,10,35,101,110,100,105,102,10,35,101,110,100,105,102,10,10,118,101,99,51,32,116,111,110,101,109,97,112,95,102,105,108,109,105,99,40,118,101,99,51,32,99,111,108,111,114,44,32,102,108,111,97,116,32,112,95,119,104,105,116,101,41,32,123,10,9,47,47,32,101,120,112,111,115,117,114,101,32,98,105,97,115,58,32,105,110,112,117,116,32,115,99,97,108,101,32,40,99,111,108,111,114,32,42,61,32,98,105,97,115,44,32,119,104,105,116,101,32,42,61,32,98,105,97,115,41,32,116,111,32,109,97,107,101,32,116,104,101,32,98,114,105,103,104,116,110,101,115,115,32,99,111,110,115,105,115,116,101,110,116,32,119,105,116,104,32,111,116,104,101,114,32,116,111,110,101,109,97,112,112,101,114,115,10,9,47,47,32,97,108,115,111,32,117,115,101,102,117,108,32,116,111,32,115,99,97,108,101,32,116,104,101,32,105,110,112,117,116,32,116,111,32,116,104,101,32,114,97,110,103,101,32,116,104,97,116,32,116,104,101,32,116,111,110,101,109,97,112,112,101,114,32,105,115,32,100,101,115,105,103,110,101,100,32,102,111,114,32,40,115,111,109,101,32,114,101,113,117,105,114,101,32,118,101,114,121,32,104,105,103,104,32,105,110,112,117,116,32,118,97,108,117,101,115,41,10,9,47,47,32,104,97,115,32,110,111,32,101,102,102,101,99,116,32,111,110,32,116,104,101,32,99,117,114,118,101,39,115,32,103,101,110,101,114,97,108,32,115,104,97,112,101,32,111,114,32,118,105,115,117,97,108,32,112,114,111,112,101,114,116,105,101,115,10,9,99,111,110,115,116,32,102,108,111,97,116,32,101,120,112,111,115,117,114,101,95,98,105,97,115,32,61,32,50,46,48,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,65,32,61,32,48,46,50,50,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,59,32,47,47,32,98,105,97,115,32,98,97,107,101,100,32,105,110,116,111,32,99,111,110,115,116,97,110,116,115,32,102,111,114,32,112,101,114,102,111,114,109,97,110,99,101,10,9,99,111,110,115,116,32,102,108,111,97,116,32,66,32,61,32,48,46,51,48,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,67,32,61,32,48,46,49,48,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,68,32,61,32,48,46,50,48,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,69,32,61,32,48,46,48,49,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,70,32,61,32,48,46,51,48,102,59,10,10,9,118,101,99,51,32,99,111,108,111,114,95,116,111,110,101,109,97,112,112,101,100,32,61,32,40,40,99,111,108,111,114,32,42,32,40,65,32,42,32,99,111,108,111,114,32,43,32,67,32,42,32,66,41,32,43,32,68,32,42,32,69,41,32,47,32,40,99,111,108,111,114,32,42,32,40,65,32,42,32,99,111,108,111,114,32,43,32,66,41,32,43,32,68,32,42,32,70,41,41,32,45,32,69,32,47,32,70,59,10,9,102,108,111,97,116,32,112,95,119,104,105,116,101,95,116,111,110,101,109,97,112,112,101,100,32,61,32,40,40,112,95,119,104,105,116,101,32,42,32,40,65,32,42,32,112,95,119,104,105,116,101,32,43,32,67,32,42,32,66,41,32,43,32,68,32,42,32,69,41,32,47,32,40,112,95,119,104,105,116,101,32,42,32,40,65,32,42,32,112,95,119,104,105,116,101,32,43,32,66,41,32,43,32,68,32,42,32,70,41,41,32,45,32,69,32,47,32,70,59,10,10,9,114,101,116,117,114,110,32,99,111,108,111,114,95,116,111,110,101,109,97,112,112,101,100,32,47,32,112,95,119,104,105,116,101,95,116,111,110,101,109,97,112,112,101,100,59,10,125,10,10,47,47,32,65,100,97,112,116,101,100,32,102,114,111,109,32,104,116,116,112,115,58,47,47,103,105,116,104,117,98,46,99,111,109,47,84,104,101,82,101,97,108,77,74,80,47,66,97,107,105,110,103,76,97,98,47,98,108,111,98,47,109,97,115,116,101,114,47,66,97,107,105,110,103,76,97,98,47,65,67,69,83,46,104,108,115,108,10,47,47,32,40,77,73,84,32,76,105,99,101,110,115,101,41,46,10,118,101,99,51,32,116,111,110,101,109,97,112,95,97,99,101,115,40,118,101,99,51,32,99,111,108,111,114,44,32,102,108,111,97,116,32,112,95,119,104,105,116,101,41,32,123,10,9,99,111,110,115,116,32,102,108,111,97,116,32,101,120,112,111,115,117,114,101,95,98,105,97,115,32,61,32,49,46,56,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,65,32,61,32,48,46,48,50,52,53,55,56,54,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,66,32,61,32,48,46,48,48,48,48,57,48,53,51,55,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,67,32,61,32,48,46,57,56,51,55,50,57,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,68,32,61,32,48,46,52,51,50,57,53,49,102,59,10,9,99,111,110,115,116,32,102,108,111,97,116,32,69,32,61,32,48,46,50,51,56,48,56,49,102,59,10,10,9,47,47,32,69,120,112,111,115,117,114,101,32,98,105,97,115,32,98,97,107,101,100,32,105,110,116,111,32,116,114,97,110,115,102,111,114,109,32,116,111,32,115,97,118,101,32,115,104,97,100,101,114,32,105,110,115,116,114,117,99,116,105,111,110,115,46,32,69,113,117,105,118,97,108,101,110,116,32,116,111,32,96,99,111,108,111,114,32,42,61,32,101,120,112,111,115,117,114,101,95,98,105,97,115,96,10,9,99,111,110,115,116,32,109,97,116,51,32,114,103,98,95,116,111,95,114,114,116,32,61,32,109,97,116,51,40,10,9,9,9,118,101,99,51,40,48,46,53,57,55,49,57,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,44,32,48,46,51,53,52,53,56,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,44,32,48,46,48,52,56,50,51,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,41,44,10,9,9,9,118,101,99,51,40,48,46,48,55,54,48,48,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,44,32,48,46,57,48,56,51,52,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,44,32,48,46,48,49,53,54,54,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,41,44,10,9,9,9,118,101,99,51,40,48,46,48,50,56,52,48,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,44,32,48,46,49,51,51,56,51,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,44,32,48,46,56,51,55,55,55,102,32,42,32,101,120,112,111,115,117,114,101,95,98,105,97,115,41,41,59,10,10,9,99,111,110,115,116,32,109,97,116,51,32,111,100,116,95,116,111,95,114,103,98,32,61,32,109,97,116,51,40,10,9,9,9,118,101,99,51,40,49,46,54,48,52,55,53,102,44,32,45,48,46,53,51,49,48,56,102,44,32,45,48,46,48,55,51,54,55,102,41,44,10,9,9,9,118,101,99,51,40,45,48,46,49,48,50,48,56,102,44,32,49,46,49,48,56,49,51,102,44,32,45,48,46,48,48,54,48,53,102,41,44,10,9,9,9,118,101,99,51,40,45,48,46,48,48,51,50,55,102,44,32,45,48,46,48,55,50,55,54,102,44,32,49,46,48,55,54,48,50,102,41,41,59,10,10,9,99,111,108,111,114,32,42,61,32,114,103,98,95,116,111,95,114,114,116,59,10,9,118,101,99,51,32,99,111,108,111,114,95,116,111,110,101,109,97,112,112,101,100,32,61,32,40,99,111,108,111,114,32,42,32,40,99,111,108,111,114,32,43,32,65,41,32,45,32,66,41,32,47,32,40,99,111,108,111,114,32,42,32,40,67,32,42,32,99,111,108,111,114,32,43,32,68,41,32,43,32,69,41,59,10,9,99,111,108,111,114,95,116,111,110,101,109,97,112,112,101,100,32,42,61,32,111,100,116,95,116,111,95,114,103,98,59,10,10,9,112,95,119,104,105,116,101,32,42,61,32,101,120,112,111,115,117,114,101,95,98,105,97,115,59,10,9,102,108,111,97,116,32,112,95,119,104,105,116,101,95,116,111,110,101,109,97,112,112,101,100,32,61,32,40,112,95,119,104,105,116,101,32,42,32,40,112,95,119,104,105,116,101,32,43,32,65,41,32,45,32,66,41,32,47,32,40,112,95,119,104,105,116,101,32,42,32,40,67,32,42,32,112,95,119,104,105,116,101,32,43,32,68,41,32,43,32,69,41,59,10,10,9,114,101,116,117,114,110,32,99,111,108,111,114,95,116,111,110,101,109,97,112,112,101,100,32,47,32,112,95,119,104,105,116,101,95,116,111,110,101,109,97,112,112,101,100,59,10,125,10,10,118,101,99,51,32,116,111,110,101,109,97,112,95,114,101,105,110,104,97,114,100,40,118,101,99,51,32,99,111,108,111,114,44,32,102,108,111,97,116,32,112,95,119,104,105,116,101,41,32,123,10,9,114,101,116,117,114,110,32,40,112,95,119,104,105,116,101,32,42,32,99,111,108,111,114,32,43,32,99,111,108,111,114,41,32,47,32,40,99,111,108,111,114,32,42,32,112,95,119,104,105,116,101,32,43,32,112,95,119,104,105,116,101,41,59,10,125,10,10,47,47,32,84,104,105,115,32,101,120,112,101,99,116,115,32,48,45,49,32,114,97,110,103,101,32,105,110,112,117,116,46,10,118,101,99,51,32,108,105,110,101,97,114,95,116,111,95,115,114,103,98,40,118,101,99,51,32,99,111,108,111,114,41,32,123,10,9,47,47,99,111,108,111,114,32,61,32,99,108,97,109,112,40,99,111,108,111,114,44,32,118,101,99,51,40,48,46,48,41,44,32,118,101,99,51,40,49,46,48,41,41,59,10,9,47,47,99,111,110,115,116,32,118,101,99,51,32,97,32,61,32,118,101,99,51,40,48,46,48,53,53,102,41,59,10,9,47,47,114,101,116,117,114,110,32,109,105,120,40,40,118,101,99,51,40,49,46,48,102,41,32,43,32,97,41,32,42,32,112,111,119,40,99,111,108,111,114,46,114,103,98,44,32,118,101,99,51,40,49,46,48,102,32,47,32,50,46,52,102,41,41,32,45,32,97,44,32,49,50,46,57,50,102,32,42,32,99,111,108,111,114,46,114,103,98,44,32,108,101,115,115,84,104,97,110,40,99,111,108,111,114,46,114,103,98,44,32,118,101,99,51,40,48,46,48,48,51,49,51,48,56,102,41,41,41,59,10,9,47,47,32,65,112,112,114,111,120,105,109,97,116,105,111,110,32,102,114,111,109,32,104,116,116,112,58,47,47,99,104,105,108,108,105,97,110,116,46,98,108,111,103,115,112,111,116,46,99,111,109,47,50,48,49,50,47,48,56,47,115,114,103,98,45,97,112,112,114,111,120,105,109,97,116,105,111,110,115,45,102,111,114,45,104,108,115,108,46,104,116,109,108,10,9,114,101,116,117,114,110,32,109,97,120,40,118,101,99,51,40,49,46,48,53,53,41,32,42,32,112,111,119,40,99,111,108,111,114,44,32,118,101,99,51,40,48,46,52,49,54,54,54,54,54,54,55,41,41,32,45,32,118,101,99,51,40,48,46,48,53,53,41,44,32,118,101,99,51,40,48,46,48,41,41,59,10,125,10,10,47,47,32,84,104,105,115,32,101,120,112,101,99,116,115,32,48,45,49,32,114,97,110,103,101,32,105,110,112,117,116,44,32,111,117,116,115,105,100,101,32,116,104,97,116,32,114,97,110,103,101,32,105,116,32,98,101,104,97,118,101,115,32,112,111,111,114,108,121,46,10,118,101,99,51,32,115,114,103,98,95,116,111,95,108,105,110,101,97,114,40,118,101,99,51,32,99,111,108,111,114,41,32,123,10,9,47,47,32,65,112,112,114,111,120,105,109,97,116,105,111,110,32,102,114,111,109,32,104,116,116,112,58,47,47,99,104,105,108,108,105,97,110,116,46,98,108,111,103,115,112,111,116,46,99,111,109,47,50,48,49,50,47,48,56,47,115,114,103,98,45,97,112,112,114,111,120,105,109,97,116,105,111,110,115,45,102,111,114,45,104,108,115,108,46,104,116,109,108,10,9,114,101,116,117,114,110,32,99,111,108,111,114,32,42,32,40,99,111,108,111,114,32,42,32,40,99,111,108,111,114,32,42,32,48,46,51,48,53,51,48,54,48,49,49,32,43,32,48,46,54,56,50,49,55,49,49,49,49,41,32,43,32,48,46,48,49,50,53,50,50,56,55,56,41,59,10,125,10,10,35,100,101,102,105,110,101,32,84,79,78,69,77,65,80,80,69,82,95,76,73,78,69,65,82,32,48,10,35,100,101,102,105,110,101,32,84,79,78,69,77,65,80,80,69,82,95,82,69,73,78,72,65,82,68,32,49,10,35,100,101,102,105,110,101,32,84,79,78,69,77,65,80,80,69,82,95,70,73,76,77,73,67,32,50,10,35,100,101,102,105,110,101,32,84,79,78,69,77,65,80,80,69,82,95,65,67,69,83,32,51,10,10,118,101,99,51,32,97,112,112,108,121,95,116,111,110,101,109,97,112,112,105,110,103,40,118,101,99,51,32,99,111,108,111,114,44,32,102,108,111,97,116,32,112,95,119,104,105,116,101,41,32,123,32,47,47,32,105,110,112,117,116,115,32,97,114,101,32,76,73,78,69,65,82,44,32,97,108,119,97,121,115,32,111,117,116,112,117,116,115,32,99,108,97,109,112,101,100,32,91,48,59,49,93,32,99,111,108,111,114,10,9,47,47,32,69,110,115,117,114,101,32,99,111,108,111,114,32,118,97,108,117,101,115,32,112,97,115,115,101,100,32,116,111,32,116,111,110,101,109,97,112,112,101,114,115,32,97,114,101,32,112,111,115,105,116,105,118,101,46,10,9,47,47,32,84,104,101,121,32,99,97,110,32,98,101,32,110,101,103,97,116,105,118,101,32,105,110,32,116,104,101,32,99,97,115,101,32,111,102,32,110,101,103,97,116,105,118,101,32,108,105,103,104,116,115,44,32,119,104,105,99,104,32,108,101,97,100,115,32,116,111,32,117,110,100,101,115,105,114,101,100,32,98,101,104,97,118,105,111,114,46,10,9,105,102,32,40,116,111,110,101,109,97,112,112,101,114,32,61,61,32,84,79,78,69,77,65,80,80,69,82,95,76,73,78,69,65,82,41,32,123,10,9,9,114,101,116,117,114,110,32,99,111,108,111,114,59,10,9,125,32,101,108,115,101,32,105,102,32,40,116,111,110,101,109,97,112,112,101,114,32,61,61,32,84,79,78,69,77,65,80,80,69,82,95,82,69,73,78,72,65,82,68,41,32,123,10,9,9,114,101,116,117,114,110,32,116,111,110,101,109,97,112,95,114,101,105,110,104,97,114,100,40,109,97,120,40,118,101,99,51,40,48,46,48,102,41,44,32,99,111,108,111,114,41,44,32,112,95,119,104,105,116,101,41,59,10,9,125,32,101,108,115,101,32,105,102,32,40,116,111,110,101,109,97,112,112,101,114,32,61,61,32,84,79,78,69,77,65,80,80,69,82,95,70,73,76,77,73,67,41,32,123,10,9,9,114,101,116,117,114,110,32,116,111,110,101,109,97,112,95,102,105,108,109,105,99,40,109,97,120,40,118,101,99,51,40,48,46,48,102,41,44,32,99,111,108,111,114,41,44,32,112,95,119,104,105,116,101,41,59,10,9,125,32,101,108,115,101,32,123,32,47,47,32,84,79,78,69,77,65,80,80,69,82,95,65,67,69,83,10,9,9,114,101,116,117,114,110,32,116,111,110,101,109,97,112,95,97,99,101,115,40,109,97,120,40,118,101,99,51,40,48,46,48,102,41,44,32,99,111,108,111,114,41,44,32,112,95,119,104,105,116,101,41,59,10,9,125,10,125,10,10,105,110,32,118,101,99,50,32,117,118,95,105,110,116,101,114,112,59,10,10,47,42,32,99,108,97,110,103,45,102,111,114,109,97,116,32,111,110,32,42,47,10,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,67,117,98,101,32,114,97,100,105,97,110,99,101,59,32,47,47,116,101,120,117,110,105,116,58,45,49,10,35,105,102,100,101,102,32,85,83,69,95,67,85,66,69,77,65,80,95,80,65,83,83,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,67,117,98,101,32,104,97,108,102,95,114,101,115,59,32,47,47,116,101,120,117,110,105,116,58,45,50,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,67,117,98,101,32,113,117,97,114,116,101,114,95,114,101,115,59,32,47,47,116,101,120,117,110,105,116,58,45,51,10,35,101,108,105,102,32,100,101,102,105,110,101,100,40,85,83,69,95,77,85,76,84,73,86,73,69,87,41,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,65,114,114,97,121,32,104,97,108,102,95,114,101,115,59,32,47,47,116,101,120,117,110,105,116,58,45,50,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,65,114,114,97,121,32,113,117,97,114,116,101,114,95,114,101,115,59,32,47,47,116,101,120,117,110,105,116,58,45,51,10,35,101,108,115,101,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,104,97,108,102,95,114,101,115,59,32,47,47,116,101,120,117,110,105,116,58,45,50,10,117,110,105,102,111,114,109,32,115,97,109,112,108,101,114,50,68,32,113,117,97,114,116,101,114,95,114,101,115,59,32,47,47,116,101,120,117,110,105,116,58,45,51,10,35,101,110,100,105,102,10,10,108,97,121,111,117,116,40,115,116,100,49,52,48,41,32,117,110,105,102,111,114,109,32,71,108,111,98,97,108,83,104,97,100,101,114,85,110,105,102,111,114,109,68,97,116,97,32,123,32,47,47,117,98,111,58,49,10,9,118,101,99,52,32,103,108,111,98,97,108,95,115,104,97,100,101,114,95,117,110,105,102,111,114,109,115,91,77,65,88,95,71,76,79,66,65,76,95,83,72,65,68,69,82,95,85,78,73,70,79,82,77,83,93,59,10,125,59,10,10,115,116,114,117,99,116,32,68,105,114,101,99,116,105,111,110,97,108,76,105,103,104,116,68,97,116,97,32,123,10,9,118,101,99,52,32,100,105,114,101,99,116,105,111,110,95,101,110,101,114,103,121,59,10,9,118,101,99,52,32,99,111,108,111,114,95,115,105,122,101,59,10,9,98,111,111,108,32,101,110,97,98,108,101,100,59,10,125,59,10,10,108,97,121,111,117,116,40,115,116,100,49,52,48,41,32,117,110,105,102,111,114,109,32,68,105,114,101,99,116,105,111,110,97,108,76,105,103,104,116,115,32,123,32,47,47,117,98,111,58,52,10,9,68,105,114,101,99,116,105,111,110,97,108,76,105,103,104,116,68,97,116,97,32,100,97,116,97,91,77,65,88,95,68,73,82,69,67,84,73,79,78,65,76,95,76,73,71,72,84,95,68,65,84,65,95,83,84,82,85,67,84,83,93,59,10,125,10,100,105,114,101,99,116,105,111,110,97,108,95,108,105,103,104,116,115,59,10,10,47,42,32,99,108,97,110,103,45,102,111,114,109,97,116,32,111,102,102,32,42,47,10,10,35,105,102,100,101,102,32,77,65,84,69,82,73,65,76,95,85,78,73,70,79,82,77,83,95,85,83,69,68,10,108,97,121,111,117,116,40,115,116,100,49,52,48,41,32,117,110,105,102,111,114,109,32,77,97,116,101,114,105,97,108,85,110,105,102,111,114,109,115,123,32,47,47,117,98,111,58,51,10,10,35,77,65,84,69,82,73,65,76,95,85,78,73,70,79,82,77,83,10,10,125,59,10,35,101,110,100,105,102,10,47,42,32,99,108,97,110,103,45,102,111,114,109,97,116,32,111,110,32,42,47,10,35,71,76,79,66,65,76,83,10,10,35,105,102,100,101,102,32,85,83,69,95,67,85,66,69,77,65,80,95,80,65,83,83,10,35,100,101,102,105,110,101,32,65,84,95,67,85,66,69,77,65,80,95,80,65,83,83,32,116,114,117,101,10,35,101,108,115,101,10,35,100,101,102,105,110,101,32,65,84,95,67,85,66,69,77,65,80,95,80,65,83,83,32,102,97,108,115,101,10,35,101,110,100,105,102,10,10,35,105,102,100,101,102,32,85,83,69,95,72,65,76,70,95,82,69,83,95,80,65,83,83,10,35,100,101,102,105,110,101,32,65,84,95,72,65,76,70,95,82,69,83,95,80,65,83,83,32,116,114,117,101,10,35,101,108,115,101,10,35,100,101,102,105,110,101,32,65,84,95,72,65,76,70,95,82,69,83,95,80,65,83,83,32,102,97,108,115,101,10,35,101,110,100,105,102,10,10,35,105,102,100,101,102,32,85,83,69,95,81,85,65,82,84,69,82,95,82,69,83,95,80,65,83,83,10,35,100,101,102,105,110,101,32,65,84,95,81,85,65,82,84,69,82,95,82,69,83,95,80,65,83,83,32,116,114,117,101,10,35,101,108,115,101,10,35,100,101,102,105,110,101,32,65,84,95,81,85,65,82,84,69,82,95,82,69,83,95,80,65,83,83,32,102,97,108,115,101,10,35,101,110,100,105,102,10,10,47,47,32,109,97,116,52,32,105,115,32,97,32,119,97,115,116,101,32,111,102,32,115,112,97,99,101,44,32,98,117,116,32,119,101,32,100,111,110,39,116,32,104,97,118,101,32,97,110,32,101,97,115,121,32,119,97,121,32,116,111,32,115,101,116,32,97,32,109,97,116,51,32,117,110,105,102,111,114,109,32,102,111,114,32,110,111,119,10,117,110,105,102,111,114,109,32,109,97,116,52,32,111,114,105,101,110,116,97,116,105,111,110,59,10,117,110,105,102,111,114,109,32,118,101,99,52,32,112,114,111,106,101,99,116,105,111,110,59,10,117,110,105,102,111,114,109,32,118,101,99,51,32,112,111,115,105,116,105,111,110,59,10,117,110,105,102,111,114,109,32,102,108,111,97,116,32,116,105,109,101,59,10,117,110,105,102,111,114,109,32,102,108,111,97,116,32,108,117,109,105,110,97,110,99,101,95,109,117,108,116,105,112,108,105,101,114,59,10,10,117,110,105,102,111,114,109,32,102,108,111,97,116,32,102,111,103,95,97,101,114,105,97,108,95,112,101,114,115,112,101,99,116,105,118,101,59,10,117,110,105,102,111,114,109,32,118,101,99,51,32,102,111,103,95,108,105,103,104,116,95,99,111,108,111,114,59,10,117,110,105,102,111,114,109,32,102,108,111,97,116,32,102,111,103,95,115,117,110,95,115,99,97,116,116,101,114,59,10,117,110,105,102,111,114,109,32,98,111,111,108,32,102,111,103,95,101,110,97,98,108,101,100,59,10,117,110,105,102,111,114,109,32,102,108,111,97,116,32,102,111,103,95,100,101,110,115,105,116,121,59,10,117,110,105,102,111,114,109,32,102,108,111,97,116,32,122,95,102,97,114,59,10,117,110,105,102,111,114,109,32,117,105,110,116,32,100,105,114,101,99,116,105,111,110,97,108,95,108,105,103,104,116,95,99,111,117,110,116,59,10,10,35,105,102,100,101,102,32,85,83,69,95,77,85,76,84,73,86,73,69,87,10,108,97,121,111,117,116,40,115,116,100,49,52,48,41,32,117,110,105,102,111,114,109,32,77,117,108,116,105,118,105,101,119,68,97,116,97,32,123,32,47,47,32,117,98,111,58,53,10,9,104,105,103,104,112,32,109,97,116,52,32,112,114,111,106,101,99,116,105,111,110,95,109,97,116,114,105,120,95,118,105,101,119,91,77,65,88,95,86,73,69,87,83,93,59,10,9,104,105,103,104,112,32,109,97,116,52,32,105,110,118,95,112,114,111,106,101,99,116,105,111,110,95,109,97,116,114,105,120,95,118,105,101,119,91,77,65,88,95,86,73,69,87,83,93,59,10,9,104,105,103,104,112,32,118,101,99,52,32,101,121,101,95,111,102,102,115,101,116,91,77,65,88,95,86,73,69,87,83,93,59,10,125,10,109,117,108,116,105,118,105,101,119,95,100,97,116,97,59,10,35,101,110,100,105,102,10,10,108,97,121,111,117,116,40,108,111,99,97,116,105,111,110,32,61,32,48,41,32,111,117,116,32,118,101,99,52,32,102,114,97,103,95,99,111,108,111,114,59,10,10,35,105,102,100,101,102,32,85,83,69,95,68,69,66,65,78,68,73,78,71,10,47,47,32,104,116,116,112,115,58,47,47,119,119,119,46,105,114,121,111,107,117,46,99,111,109,47,110,101,120,116,45,103,101,110,101,114,97,116,105,111,110,45,112,111,115,116,45,112,114,111,99,101,115,115,105,110,103,45,105,110,45,99,97,108,108,45,111,102,45,100,117,116,121,45,97,100,118,97,110,99,101,100,45,119,97,114,102,97,114,101,10,118,101,99,51,32,105,110,116,101,114,108,101,97,118,101,100,95,103,114,97,100,105,101,110,116,95,110,111,105,115,101,40,118,101,99,50,32,112,111,115,41,32,123,10,9,99,111,110,115,116,32,118,101,99,51,32,109,97,103,105,99,32,61,32,118,101,99,51,40,48,46,48,54,55,49,49,48,53,54,102,44,32,48,46,48,48,53,56,51,55,49,53,102,44,32,53,50,46,57,56,50,57,49,56,57,102,41,59,10,9,102,108,111,97,116,32,114,101,115,32,61,32,102,114,97,99,116,40,109,97,103,105,99,46,122,32,42,32,102,114,97,99,116,40,100,111,116,40,112,111,115,44,32,109,97,103,105,99,46,120,121,41,41,41,32,42,32,50,46,48,32,45,32,49,46,48,59,10,9,114,101,116,117,114,110,32,118,101,99,51,40,114,101,115,44,32,45,114,101,115,44,32,114,101,115,41,32,47,32,50,53,53,46,48,59,10,125,10,35,101,110,100,105,102,10,10,118,111,105,100,32,109,97,105,110,40,41,32,123,10,9,118,101,99,51,32,99,117,98,101,95,110,111,114,109,97,108,59,10,35,105,102,100,101,102,32,85,83,69,95,77,85,76,84,73,86,73,69,87,10,9,47,47,32,73,110,32,109,117,108,116,105,118,105,101,119,32,111,117,114,32,112,114,111,106,101,99,116,105,111,110,32,109,97,116,114,105,99,101,115,32,119,105,108,108,32,99,111,110,116,97,105,110,32,112,111,115,105,116,105,111,110,97,108,32,97,110,100,32,114,111,116,97,116,105,111,110,97,108,32,111,102,102,115,101,116,115,32,116,104,97,116,32,119,101,32,110,101,101,100,32,116,111,32,112,114,111,112,101,114,108,121,32,117,110,112,114,111,106,101,99,116,46,10,9,118,101,99,52,32,117,110,112,114,111,106,101,99,116,32,61,32,118,101,99,52,40,117,118,95,105,110,116,101,114,112,46,120,44,32,117,118,95,105,110,116,101,114,112,46,121,44,32,49,46,48,44,32,49,46,48,41,59,10,9,118,101,99,52,32,117,110,112,114,111,106,101,99,116,101,100,32,61,32,109,117,108,116,105,118,105,101,119,95,100,97,116,97,46,105,110,118,95,112,114,111,106,101,99,116,105,111,110,95,109,97,116,114,105,120,95,118,105,101,119,91,86,105,101,119,73,110,100,101,120,93,32,42,32,117,110,112,114,111,106,101,99,116,59,10,9,99,117,98,101,95,110,111,114,109,97,108,32,61,32,117,110,112,114,111,106,101,99,116,101,100,46,120,121,122,32,47,32,117,110,112,114,111,106,101,99,116,101,100,46,119,59,10,9,99,117,98,101,95,110,111,114,109,97,108,32,43,61,32,109,117,108,116,105,118,105,101,119,95,100,97,116,97,46,101,121,101,95,111,102,102,115,101,116,91,86,105,101,119,73,110,100,101,120,93,46,120,121,122,59,10,35,101,108,115,101,10,9,99,117,98,101,95,110,111,114,109,97,108,46,122,32,61,32,45,49,46,48,59,10,9,99,117,98,101,95,110,111,114,109,97,108,46,120,32,61,32,40,117,118,95,105,110,116,101,114,112,46,120,32,43,32,112,114,111,106,101,99,116,105,111,110,46,120,41,32,47,32,112,114,111,106,101,99,116,105,111,110,46,121,59,10,9,99,117,98,101,95,110,111,114,109,97,108,46,121,32,61,32,40,45,117,118,95,105,110,116,101,114,112,46,121,32,45,32,112,114,111,106,101,99,116,105,111,110,46,122,41,32,47,32,112,114,111,106,101,99,116,105,111,110,46,119,59,10,35,101,110,100,105,102,10,9,99,117,98,101,95,110,111,114,109,97,108,32,61,32,109,97,116,51,40,111,114,105,101,110,116,97,116,105,111,110,41,32,42,32,99,117,98,101,95,110,111,114,109,97,108,59,10,9,99,117,98,101,95,110,111,114,109,97,108,32,61,32,110,111,114,109,97,108,105,122,101,40,99,117,98,101,95,110,111,114,109,97,108,41,59,10,10,9,118,101,99,50,32,117,118,32,61,32,103,108,95,70,114,97,103,67,111,111,114,100,46,120,121,59,32,47,47,32,117,118,95,105,110,116,101,114,112,32,42,32,48,46,53,32,43,32,48,46,53,59,10,10,9,118,101,99,50,32,112,97,110,111,114,97,109,97,95,99,111,111,114,100,115,32,61,32,118,101,99,50,40,97,116,97,110,40,99,117,98,101,95,110,111,114,109,97,108,46,120,44,32,45,99,117,98,101,95,110,111,114,109,97,108,46,122,41,44,32,97,99,111,115,40,99,117,98,101,95,110,111,114,109,97,108,46,121,41,41,59,10,10,9,105,102,32,40,112,97,110,111,114,97,109,97,95,99,111,111,114,100,115,46,120,32,60,32,48,46,48,41,32,123,10,9,9,112,97,110,111,114,97,109,97,95,99,111,111,114,100,115,46,120,32,43,61,32,77,95,80,73,32,42,32,50,46,48,59,10,9,125,10,10,9,112,97,110,111,114,97,109,97,95,99,111,111,114,100,115,32,47,61,32,118,101,99,50,40,77,95,80,73,32,42,32,50,46,48,44,32,77,95,80,73,41,59,10,10,9,118,101,99,51,32,99,111,108,111,114,32,61,32,118,101,99,51,40,48,46,48,44,32,48,46,48,44,32,48,46,48,41,59,10,9,102,108,111,97,116,32,97,108,112,104,97,32,61,32,49,46,48,59,32,47,47,32,79,110,108,121,32,97,118,97,105,108,97,98,108,101,32,116,111,32,115,117,98,112,97,115,115,101,115,10,9,118,101,99,52,32,104,97,108,102,95,114,101,115,95,99,111,108,111,114,32,61,32,118,101,99,52,40,49,46,48,41,59,10,9,118,101,99,52,32,113,117,97,114,116,101,114,95,114,101,115,95,99,111,108,111,114,32,61,32,118,101,99,52,40,49,46,48,41,59,10,9,118,101,99,52,32,99,117,115,116,111,109,95,102,111,103,32,61,32,118,101,99,52,40,48,46,48,41,59,10,10,35,105,102,100,101,102,32,85,83,69,95,67,85,66,69,77,65,80,95,80,65,83,83,10,35,105,102,100,101,102,32,85,83,69,83,95,72,65,76,70,95,82,69,83,95,67,79,76,79,82,10,9,104,97,108,102,95,114,101,115,95,99,111,108,111,114,32,61,32,116,101,120,116,117,114,101,40,115,97,109,112,108,101,114,67,117,98,101,40,104,97,108,102,95,114,101,115,44,32,83,65,77,80,76,69,82,95,76,73,78,69,65,82,95,87,73,84,72,95,77,73,80,77,65,80,83,95,67,76,65,77,80,41,44,32,99,117,98,101,95,110,111,114,109,97,108,41,59,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,83,95,81,85,65,82,84,69,82,95,82,69,83,95,67,79,76,79,82,10,9,113,117,97,114,116,101,114,95,114,101,115,95,99,111,108,111,114,32,61,32,116,101,120,116,117,114,101,40,115,97,109,112,108,101,114,67,117,98,101,40,113,117,97,114,116,101,114,95,114,101,115,44,32,83,65,77,80,76,69,82,95,76,73,78,69,65,82,95,87,73,84,72,95,77,73,80,77,65,80,83,95,67,76,65,77,80,41,44,32,99,117,98,101,95,110,111,114,109,97,108,41,59,10,35,101,110,100,105,102,10,35,101,108,115,101,10,35,105,102,100,101,102,32,85,83,69,83,95,72,65,76,70,95,82,69,83,95,67,79,76,79,82,10,35,105,102,100,101,102,32,85,83,69,95,77,85,76,84,73,86,73,69,87,10,9,104,97,108,102,95,114,101,115,95,99,111,108,111,114,32,61,32,116,101,120,116,117,114,101,76,111,100,40,115,97,109,112,108,101,114,50,68,65,114,114,97,121,40,104,97,108,102,95,114,101,115,44,32,83,65,77,80,76,69,82,95,76,73,78,69,65,82,95,67,76,65,77,80,41,44,32,118,101,99,51,40,117,118,44,32,86,105,101,119,73,110,100,101,120,41,44,32,48,46,48,41,59,10,35,101,108,115,101,10,9,104,97,108,102,95,114,101,115,95,99,111,108,111,114,32,61,32,116,101,120,116,117,114,101,76,111,100,40,115,97,109,112,108,101,114,50,68,40,104,97,108,102,95,114,101,115,44,32,83,65,77,80,76,69,82,95,76,73,78,69,65,82,95,67,76,65,77,80,41,44,32,117,118,44,32,48,46,48,41,59,10,35,101,110,100,105,102,10,35,101,110,100,105,102,10,35,105,102,100,101,102,32,85,83,69,83,95,81,85,65,82,84,69,82,95,82,69,83,95,67,79,76,79,82,10,35,105,102,100,101,102,32,85,83,69,95,77,85,76,84,73,86,73,69,87,10,9,113,117,97,114,116,101,114,95,114,101,115,95,99,111,108,111,114,32,61,32,116,101,120,116,117,114,101,76,111,100,40,115,97,109,112,108,101,114,50,68,65,114,114,97,121,40,113,117,97,114,116,101,114,95,114,101,115,44,32,83,65,77,80,76,69,82,95,76,73,78,69,65,82,95,67,76,65,77,80,41,44,32,118,101,99,51,40,117,118,44,32,86,105,101,119,73,110,100,101,120,41,44,32,48,46,48,41,59,10,35,101,108,115,101,10,9,113,117,97,114,116,101,114,95,114,101,115,95,99,111,108,111,114,32,61,32,116,101,120,116,117,114,101,76,111,100,40,115,97,109,112,108,101,114,50,68,40,113,117,97,114,116,101,114,95,114,101,115,44,32,83,65,77,80,76,69,82,95,76,73,78,69,65,82,95,67,76,65,77,80,41,44,32,117,118,44,32,48,46,48,41,59,10,35,101,110,100,105,102,10,35,101,110,100,105,102,10,35,101,110,100,105,102,10,10,9,123,10,10,35,67,79,68,69,32,58,32,83,75,89,10,10,9,125,10,10,9,99,111,108,111,114,32,42,61,32,108,117,109,105,110,97,110,99,101,95,109,117,108,116,105,112,108,105,101,114,59,10,10,9,47,47,32,67,111,110,118,101,114,116,32,116,111,32,76,105,110,101,97,114,32,102,111,114,32,116,111,110,101,109,97,112,112,105,110,103,32,115,111,32,99,111,108,111,114,32,109,97,116,99,104,101,115,32,115,99,101,110,101,32,115,104,97,100,101,114,32,98,101,116,116,101,114,10,9,99,111,108,111,114,32,61,32,115,114,103,98,95,116,111,95,108,105,110,101,97,114,40,99,111,108,111,114,41,59,10,9,99,111,108,111,114,32,42,61,32,101,120,112,111,115,117,114,101,59,10,9,99,111,108,111,114,32,61,32,97,112,112,108,121,95,116,111,110,101,109,97,112,112,105,110,103,40,99,111,108,111,114,44,32,119,104,105,116,101,41,59,10,9,99,111,108,111,114,32,61,32,108,105,110,101,97,114,95,116,111,95,115,114,103,98,40,99,111,108,111,114,41,59,10,10,35,105,102,100,101,102,32,85,83,69,95,66,67,83,10,9,99,111,108,111,114,32,61,32,97,112,112,108,121,95,98,99,115,40,99,111,108,111,114,44,32,98,99,115,41,59,10,35,101,110,100,105,102,10,10,35,105,102,100,101,102,32,85,83,69,95,67,79,76,79,82,95,67,79,82,82,69,67,84,73,79,78,10,9,99,111,108,111,114,32,61,32,97,112,112,108,121,95,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,40,99,111,108,111,114,44,32,99,111,108,111,114,95,99,111,114,114,101,99,116,105,111,110,41,59,10,35,101,110,100,105,102,10,10,9,102,114,97,103,95,99,111,108,111,114,46,114,103,98,32,61,32,99,111,108,111,114,59,10,9,102,114,97,103,95,99,111,108,111,114,46,97,32,61,32,97,108,112,104,97,59,10,10,35,105,102,100,101,102,32,85,83,69,95,68,69,66,65,78,68,73,78,71,10,9,102,114,97,103,95,99,111,108,111,114,46,114,103,98,32,43,61,32,105,110,116,101,114,108,101,97,118,101,100,95,103,114,97,100,105,101,110,116,95,110,111,105,115,101,40,103,108,95,70,114,97,103,67,111,111,114,100,46,120,121,41,32,42,32,108,117,109,105,110,97,110,99,101,95,109,117,108,116,105,112,108,105,101,114,59,10,35,101,110,100,105,102,10,125,10, 0};
206
207 _setup(_vertex_code,_fragment_code,"SkyShaderGLES3",14,_uniform_strings,5,_ubo_pairs,0,_feedbacks,4,_texunit_pairs,2,_spec_pairs,6,_variant_defines);
208 }
209
210};
211
212#endif
213
214