#version 310 es
precision mediump float;

struct Inner {
  int x;
};
struct S {
  ivec3 a;
  int b;
  uvec3 c;
  uint d;
  vec3 e;
  float f;
  mat2x3 g;
  mat3x2 h;
  Inner i;
  Inner j[4];
};

layout(binding = 0) buffer S_1 {
  ivec3 a;
  int b;
  uvec3 c;
  uint d;
  vec3 e;
  float f;
  mat2x3 g;
  mat3x2 h;
  Inner i;
  Inner j[4];
} s;

layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void tint_symbol() {
  s.a = ivec3(0, 0, 0);
  s.b = 0;
  s.c = uvec3(0u, 0u, 0u);
  s.d = 0u;
  s.e = vec3(0.0f, 0.0f, 0.0f);
  s.f = 0.0f;
  s.g = mat2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
  s.h = mat3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
  Inner tint_symbol_1 = Inner(0);
  s.i = tint_symbol_1;
  Inner tint_symbol_2[4] = Inner[4](Inner(0), Inner(0), Inner(0), Inner(0));
  s.j = tint_symbol_2;
  return;
}
void main() {
  tint_symbol();
}


