- add sources.
[platform/framework/web/crosswalk.git] / src / gpu / command_buffer / client / gles2_trace_implementation_autogen.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // DO NOT EDIT!
8
9 // This file is included by gles2_trace_implementation.h
10 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_TRACE_IMPLEMENTATION_AUTOGEN_H_
11 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_TRACE_IMPLEMENTATION_AUTOGEN_H_
12
13 virtual void ActiveTexture(GLenum texture) OVERRIDE;
14 virtual void AttachShader(GLuint program, GLuint shader) OVERRIDE;
15 virtual void BindAttribLocation(
16     GLuint program, GLuint index, const char* name) OVERRIDE;
17 virtual void BindBuffer(GLenum target, GLuint buffer) OVERRIDE;
18 virtual void BindFramebuffer(GLenum target, GLuint framebuffer) OVERRIDE;
19 virtual void BindRenderbuffer(GLenum target, GLuint renderbuffer) OVERRIDE;
20 virtual void BindTexture(GLenum target, GLuint texture) OVERRIDE;
21 virtual void BlendColor(
22     GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) OVERRIDE;
23 virtual void BlendEquation(GLenum mode) OVERRIDE;
24 virtual void BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) OVERRIDE;
25 virtual void BlendFunc(GLenum sfactor, GLenum dfactor) OVERRIDE;
26 virtual void BlendFuncSeparate(
27     GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) OVERRIDE;
28 virtual void BufferData(
29     GLenum target, GLsizeiptr size, const void* data, GLenum usage) OVERRIDE;
30 virtual void BufferSubData(
31     GLenum target, GLintptr offset, GLsizeiptr size,
32     const void* data) OVERRIDE;
33 virtual GLenum CheckFramebufferStatus(GLenum target) OVERRIDE;
34 virtual void Clear(GLbitfield mask) OVERRIDE;
35 virtual void ClearColor(
36     GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) OVERRIDE;
37 virtual void ClearDepthf(GLclampf depth) OVERRIDE;
38 virtual void ClearStencil(GLint s) OVERRIDE;
39 virtual void ColorMask(
40     GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) OVERRIDE;
41 virtual void CompileShader(GLuint shader) OVERRIDE;
42 virtual void CompressedTexImage2D(
43     GLenum target, GLint level, GLenum internalformat, GLsizei width,
44     GLsizei height, GLint border, GLsizei imageSize,
45     const void* data) OVERRIDE;
46 virtual void CompressedTexSubImage2D(
47     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
48     GLsizei height, GLenum format, GLsizei imageSize,
49     const void* data) OVERRIDE;
50 virtual void CopyTexImage2D(
51     GLenum target, GLint level, GLenum internalformat, GLint x, GLint y,
52     GLsizei width, GLsizei height, GLint border) OVERRIDE;
53 virtual void CopyTexSubImage2D(
54     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y,
55     GLsizei width, GLsizei height) OVERRIDE;
56 virtual GLuint CreateProgram() OVERRIDE;
57 virtual GLuint CreateShader(GLenum type) OVERRIDE;
58 virtual void CullFace(GLenum mode) OVERRIDE;
59 virtual void DeleteBuffers(GLsizei n, const GLuint* buffers) OVERRIDE;
60 virtual void DeleteFramebuffers(
61     GLsizei n, const GLuint* framebuffers) OVERRIDE;
62 virtual void DeleteProgram(GLuint program) OVERRIDE;
63 virtual void DeleteRenderbuffers(
64     GLsizei n, const GLuint* renderbuffers) OVERRIDE;
65 virtual void DeleteShader(GLuint shader) OVERRIDE;
66 virtual void DeleteTextures(GLsizei n, const GLuint* textures) OVERRIDE;
67 virtual void DepthFunc(GLenum func) OVERRIDE;
68 virtual void DepthMask(GLboolean flag) OVERRIDE;
69 virtual void DepthRangef(GLclampf zNear, GLclampf zFar) OVERRIDE;
70 virtual void DetachShader(GLuint program, GLuint shader) OVERRIDE;
71 virtual void Disable(GLenum cap) OVERRIDE;
72 virtual void DisableVertexAttribArray(GLuint index) OVERRIDE;
73 virtual void DrawArrays(GLenum mode, GLint first, GLsizei count) OVERRIDE;
74 virtual void DrawElements(
75     GLenum mode, GLsizei count, GLenum type, const void* indices) OVERRIDE;
76 virtual void Enable(GLenum cap) OVERRIDE;
77 virtual void EnableVertexAttribArray(GLuint index) OVERRIDE;
78 virtual void Finish() OVERRIDE;
79 virtual void Flush() OVERRIDE;
80 virtual void FramebufferRenderbuffer(
81     GLenum target, GLenum attachment, GLenum renderbuffertarget,
82     GLuint renderbuffer) OVERRIDE;
83 virtual void FramebufferTexture2D(
84     GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
85     GLint level) OVERRIDE;
86 virtual void FrontFace(GLenum mode) OVERRIDE;
87 virtual void GenBuffers(GLsizei n, GLuint* buffers) OVERRIDE;
88 virtual void GenerateMipmap(GLenum target) OVERRIDE;
89 virtual void GenFramebuffers(GLsizei n, GLuint* framebuffers) OVERRIDE;
90 virtual void GenRenderbuffers(GLsizei n, GLuint* renderbuffers) OVERRIDE;
91 virtual void GenTextures(GLsizei n, GLuint* textures) OVERRIDE;
92 virtual void GetActiveAttrib(
93     GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size,
94     GLenum* type, char* name) OVERRIDE;
95 virtual void GetActiveUniform(
96     GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size,
97     GLenum* type, char* name) OVERRIDE;
98 virtual void GetAttachedShaders(
99     GLuint program, GLsizei maxcount, GLsizei* count,
100     GLuint* shaders) OVERRIDE;
101 virtual GLint GetAttribLocation(GLuint program, const char* name) OVERRIDE;
102 virtual void GetBooleanv(GLenum pname, GLboolean* params) OVERRIDE;
103 virtual void GetBufferParameteriv(
104     GLenum target, GLenum pname, GLint* params) OVERRIDE;
105 virtual GLenum GetError() OVERRIDE;
106 virtual void GetFloatv(GLenum pname, GLfloat* params) OVERRIDE;
107 virtual void GetFramebufferAttachmentParameteriv(
108     GLenum target, GLenum attachment, GLenum pname, GLint* params) OVERRIDE;
109 virtual void GetIntegerv(GLenum pname, GLint* params) OVERRIDE;
110 virtual void GetProgramiv(
111     GLuint program, GLenum pname, GLint* params) OVERRIDE;
112 virtual void GetProgramInfoLog(
113     GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) OVERRIDE;
114 virtual void GetRenderbufferParameteriv(
115     GLenum target, GLenum pname, GLint* params) OVERRIDE;
116 virtual void GetShaderiv(GLuint shader, GLenum pname, GLint* params) OVERRIDE;
117 virtual void GetShaderInfoLog(
118     GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) OVERRIDE;
119 virtual void GetShaderPrecisionFormat(
120     GLenum shadertype, GLenum precisiontype, GLint* range,
121     GLint* precision) OVERRIDE;
122 virtual void GetShaderSource(
123     GLuint shader, GLsizei bufsize, GLsizei* length, char* source) OVERRIDE;
124 virtual const GLubyte* GetString(GLenum name) OVERRIDE;
125 virtual void GetTexParameterfv(
126     GLenum target, GLenum pname, GLfloat* params) OVERRIDE;
127 virtual void GetTexParameteriv(
128     GLenum target, GLenum pname, GLint* params) OVERRIDE;
129 virtual void GetUniformfv(
130     GLuint program, GLint location, GLfloat* params) OVERRIDE;
131 virtual void GetUniformiv(
132     GLuint program, GLint location, GLint* params) OVERRIDE;
133 virtual GLint GetUniformLocation(GLuint program, const char* name) OVERRIDE;
134 virtual void GetVertexAttribfv(
135     GLuint index, GLenum pname, GLfloat* params) OVERRIDE;
136 virtual void GetVertexAttribiv(
137     GLuint index, GLenum pname, GLint* params) OVERRIDE;
138 virtual void GetVertexAttribPointerv(
139     GLuint index, GLenum pname, void** pointer) OVERRIDE;
140 virtual void Hint(GLenum target, GLenum mode) OVERRIDE;
141 virtual GLboolean IsBuffer(GLuint buffer) OVERRIDE;
142 virtual GLboolean IsEnabled(GLenum cap) OVERRIDE;
143 virtual GLboolean IsFramebuffer(GLuint framebuffer) OVERRIDE;
144 virtual GLboolean IsProgram(GLuint program) OVERRIDE;
145 virtual GLboolean IsRenderbuffer(GLuint renderbuffer) OVERRIDE;
146 virtual GLboolean IsShader(GLuint shader) OVERRIDE;
147 virtual GLboolean IsTexture(GLuint texture) OVERRIDE;
148 virtual void LineWidth(GLfloat width) OVERRIDE;
149 virtual void LinkProgram(GLuint program) OVERRIDE;
150 virtual void PixelStorei(GLenum pname, GLint param) OVERRIDE;
151 virtual void PolygonOffset(GLfloat factor, GLfloat units) OVERRIDE;
152 virtual void ReadPixels(
153     GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,
154     void* pixels) OVERRIDE;
155 virtual void ReleaseShaderCompiler() OVERRIDE;
156 virtual void RenderbufferStorage(
157     GLenum target, GLenum internalformat, GLsizei width,
158     GLsizei height) OVERRIDE;
159 virtual void SampleCoverage(GLclampf value, GLboolean invert) OVERRIDE;
160 virtual void Scissor(GLint x, GLint y, GLsizei width, GLsizei height) OVERRIDE;
161 virtual void ShaderBinary(
162     GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
163     GLsizei length) OVERRIDE;
164 virtual void ShaderSource(
165     GLuint shader, GLsizei count, const GLchar* const* str,
166     const GLint* length) OVERRIDE;
167 virtual void ShallowFinishCHROMIUM() OVERRIDE;
168 virtual void ShallowFlushCHROMIUM() OVERRIDE;
169 virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
170 virtual void StencilFuncSeparate(
171     GLenum face, GLenum func, GLint ref, GLuint mask) OVERRIDE;
172 virtual void StencilMask(GLuint mask) OVERRIDE;
173 virtual void StencilMaskSeparate(GLenum face, GLuint mask) OVERRIDE;
174 virtual void StencilOp(GLenum fail, GLenum zfail, GLenum zpass) OVERRIDE;
175 virtual void StencilOpSeparate(
176     GLenum face, GLenum fail, GLenum zfail, GLenum zpass) OVERRIDE;
177 virtual void TexImage2D(
178     GLenum target, GLint level, GLint internalformat, GLsizei width,
179     GLsizei height, GLint border, GLenum format, GLenum type,
180     const void* pixels) OVERRIDE;
181 virtual void TexParameterf(
182     GLenum target, GLenum pname, GLfloat param) OVERRIDE;
183 virtual void TexParameterfv(
184     GLenum target, GLenum pname, const GLfloat* params) OVERRIDE;
185 virtual void TexParameteri(GLenum target, GLenum pname, GLint param) OVERRIDE;
186 virtual void TexParameteriv(
187     GLenum target, GLenum pname, const GLint* params) OVERRIDE;
188 virtual void TexSubImage2D(
189     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
190     GLsizei height, GLenum format, GLenum type, const void* pixels) OVERRIDE;
191 virtual void Uniform1f(GLint location, GLfloat x) OVERRIDE;
192 virtual void Uniform1fv(
193     GLint location, GLsizei count, const GLfloat* v) OVERRIDE;
194 virtual void Uniform1i(GLint location, GLint x) OVERRIDE;
195 virtual void Uniform1iv(
196     GLint location, GLsizei count, const GLint* v) OVERRIDE;
197 virtual void Uniform2f(GLint location, GLfloat x, GLfloat y) OVERRIDE;
198 virtual void Uniform2fv(
199     GLint location, GLsizei count, const GLfloat* v) OVERRIDE;
200 virtual void Uniform2i(GLint location, GLint x, GLint y) OVERRIDE;
201 virtual void Uniform2iv(
202     GLint location, GLsizei count, const GLint* v) OVERRIDE;
203 virtual void Uniform3f(
204     GLint location, GLfloat x, GLfloat y, GLfloat z) OVERRIDE;
205 virtual void Uniform3fv(
206     GLint location, GLsizei count, const GLfloat* v) OVERRIDE;
207 virtual void Uniform3i(GLint location, GLint x, GLint y, GLint z) OVERRIDE;
208 virtual void Uniform3iv(
209     GLint location, GLsizei count, const GLint* v) OVERRIDE;
210 virtual void Uniform4f(
211     GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) OVERRIDE;
212 virtual void Uniform4fv(
213     GLint location, GLsizei count, const GLfloat* v) OVERRIDE;
214 virtual void Uniform4i(
215     GLint location, GLint x, GLint y, GLint z, GLint w) OVERRIDE;
216 virtual void Uniform4iv(
217     GLint location, GLsizei count, const GLint* v) OVERRIDE;
218 virtual void UniformMatrix2fv(
219     GLint location, GLsizei count, GLboolean transpose,
220     const GLfloat* value) OVERRIDE;
221 virtual void UniformMatrix3fv(
222     GLint location, GLsizei count, GLboolean transpose,
223     const GLfloat* value) OVERRIDE;
224 virtual void UniformMatrix4fv(
225     GLint location, GLsizei count, GLboolean transpose,
226     const GLfloat* value) OVERRIDE;
227 virtual void UseProgram(GLuint program) OVERRIDE;
228 virtual void ValidateProgram(GLuint program) OVERRIDE;
229 virtual void VertexAttrib1f(GLuint indx, GLfloat x) OVERRIDE;
230 virtual void VertexAttrib1fv(GLuint indx, const GLfloat* values) OVERRIDE;
231 virtual void VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) OVERRIDE;
232 virtual void VertexAttrib2fv(GLuint indx, const GLfloat* values) OVERRIDE;
233 virtual void VertexAttrib3f(
234     GLuint indx, GLfloat x, GLfloat y, GLfloat z) OVERRIDE;
235 virtual void VertexAttrib3fv(GLuint indx, const GLfloat* values) OVERRIDE;
236 virtual void VertexAttrib4f(
237     GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) OVERRIDE;
238 virtual void VertexAttrib4fv(GLuint indx, const GLfloat* values) OVERRIDE;
239 virtual void VertexAttribPointer(
240     GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,
241     const void* ptr) OVERRIDE;
242 virtual void Viewport(
243     GLint x, GLint y, GLsizei width, GLsizei height) OVERRIDE;
244 virtual void BlitFramebufferEXT(
245     GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0,
246     GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask,
247     GLenum filter) OVERRIDE;
248 virtual void RenderbufferStorageMultisampleEXT(
249     GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
250     GLsizei height) OVERRIDE;
251 virtual void FramebufferTexture2DMultisampleEXT(
252     GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
253     GLint level, GLsizei samples) OVERRIDE;
254 virtual void TexStorage2DEXT(
255     GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width,
256     GLsizei height) OVERRIDE;
257 virtual void GenQueriesEXT(GLsizei n, GLuint* queries) OVERRIDE;
258 virtual void DeleteQueriesEXT(GLsizei n, const GLuint* queries) OVERRIDE;
259 virtual GLboolean IsQueryEXT(GLuint id) OVERRIDE;
260 virtual void BeginQueryEXT(GLenum target, GLuint id) OVERRIDE;
261 virtual void EndQueryEXT(GLenum target) OVERRIDE;
262 virtual void GetQueryivEXT(
263     GLenum target, GLenum pname, GLint* params) OVERRIDE;
264 virtual void GetQueryObjectuivEXT(
265     GLuint id, GLenum pname, GLuint* params) OVERRIDE;
266 virtual void InsertEventMarkerEXT(
267     GLsizei length, const GLchar* marker) OVERRIDE;
268 virtual void PushGroupMarkerEXT(GLsizei length, const GLchar* marker) OVERRIDE;
269 virtual void PopGroupMarkerEXT() OVERRIDE;
270 virtual void GenVertexArraysOES(GLsizei n, GLuint* arrays) OVERRIDE;
271 virtual void DeleteVertexArraysOES(GLsizei n, const GLuint* arrays) OVERRIDE;
272 virtual GLboolean IsVertexArrayOES(GLuint array) OVERRIDE;
273 virtual void BindVertexArrayOES(GLuint array) OVERRIDE;
274 virtual void SwapBuffers() OVERRIDE;
275 virtual GLuint GetMaxValueInBufferCHROMIUM(
276     GLuint buffer_id, GLsizei count, GLenum type, GLuint offset) OVERRIDE;
277 virtual void GenSharedIdsCHROMIUM(
278     GLuint namespace_id, GLuint id_offset, GLsizei n, GLuint* ids) OVERRIDE;
279 virtual void DeleteSharedIdsCHROMIUM(
280     GLuint namespace_id, GLsizei n, const GLuint* ids) OVERRIDE;
281 virtual void RegisterSharedIdsCHROMIUM(
282     GLuint namespace_id, GLsizei n, const GLuint* ids) OVERRIDE;
283 virtual GLboolean EnableFeatureCHROMIUM(const char* feature) OVERRIDE;
284 virtual void* MapBufferCHROMIUM(GLuint target, GLenum access) OVERRIDE;
285 virtual GLboolean UnmapBufferCHROMIUM(GLuint target) OVERRIDE;
286 virtual void* MapImageCHROMIUM(GLuint image_id, GLenum access) OVERRIDE;
287 virtual void UnmapImageCHROMIUM(GLuint image_id) OVERRIDE;
288 virtual void* MapBufferSubDataCHROMIUM(
289     GLuint target, GLintptr offset, GLsizeiptr size, GLenum access) OVERRIDE;
290 virtual void UnmapBufferSubDataCHROMIUM(const void* mem) OVERRIDE;
291 virtual void* MapTexSubImage2DCHROMIUM(
292     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
293     GLsizei height, GLenum format, GLenum type, GLenum access) OVERRIDE;
294 virtual void UnmapTexSubImage2DCHROMIUM(const void* mem) OVERRIDE;
295 virtual void ResizeCHROMIUM(
296     GLuint width, GLuint height, GLfloat scale_factor) OVERRIDE;
297 virtual const GLchar* GetRequestableExtensionsCHROMIUM() OVERRIDE;
298 virtual void RequestExtensionCHROMIUM(const char* extension) OVERRIDE;
299 virtual void RateLimitOffscreenContextCHROMIUM() OVERRIDE;
300 virtual void GetMultipleIntegervCHROMIUM(
301     const GLenum* pnames, GLuint count, GLint* results,
302     GLsizeiptr size) OVERRIDE;
303 virtual void GetProgramInfoCHROMIUM(
304     GLuint program, GLsizei bufsize, GLsizei* size, void* info) OVERRIDE;
305 virtual GLuint CreateStreamTextureCHROMIUM(GLuint texture) OVERRIDE;
306 virtual void DestroyStreamTextureCHROMIUM(GLuint texture) OVERRIDE;
307 virtual GLuint CreateImageCHROMIUM(
308     GLsizei width, GLsizei height, GLenum internalformat) OVERRIDE;
309 virtual void DestroyImageCHROMIUM(GLuint image_id) OVERRIDE;
310 virtual void GetImageParameterivCHROMIUM(
311     GLuint image_id, GLenum pname, GLint* params) OVERRIDE;
312 virtual void GetTranslatedShaderSourceANGLE(
313     GLuint shader, GLsizei bufsize, GLsizei* length, char* source) OVERRIDE;
314 virtual void PostSubBufferCHROMIUM(
315     GLint x, GLint y, GLint width, GLint height) OVERRIDE;
316 virtual void TexImageIOSurface2DCHROMIUM(
317     GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId,
318     GLuint plane) OVERRIDE;
319 virtual void CopyTextureCHROMIUM(
320     GLenum target, GLenum source_id, GLenum dest_id, GLint level,
321     GLint internalformat, GLenum dest_type) OVERRIDE;
322 virtual void DrawArraysInstancedANGLE(
323     GLenum mode, GLint first, GLsizei count, GLsizei primcount) OVERRIDE;
324 virtual void DrawElementsInstancedANGLE(
325     GLenum mode, GLsizei count, GLenum type, const void* indices,
326     GLsizei primcount) OVERRIDE;
327 virtual void VertexAttribDivisorANGLE(GLuint index, GLuint divisor) OVERRIDE;
328 virtual void GenMailboxCHROMIUM(GLbyte* mailbox) OVERRIDE;
329 virtual void ProduceTextureCHROMIUM(
330     GLenum target, const GLbyte* mailbox) OVERRIDE;
331 virtual void ConsumeTextureCHROMIUM(
332     GLenum target, const GLbyte* mailbox) OVERRIDE;
333 virtual void BindUniformLocationCHROMIUM(
334     GLuint program, GLint location, const char* name) OVERRIDE;
335 virtual void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) OVERRIDE;
336 virtual void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) OVERRIDE;
337 virtual void TraceBeginCHROMIUM(const char* name) OVERRIDE;
338 virtual void TraceEndCHROMIUM() OVERRIDE;
339 virtual void AsyncTexSubImage2DCHROMIUM(
340     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
341     GLsizei height, GLenum format, GLenum type, const void* data) OVERRIDE;
342 virtual void AsyncTexImage2DCHROMIUM(
343     GLenum target, GLint level, GLint internalformat, GLsizei width,
344     GLsizei height, GLint border, GLenum format, GLenum type,
345     const void* pixels) OVERRIDE;
346 virtual void WaitAsyncTexImage2DCHROMIUM(GLenum target) OVERRIDE;
347 virtual void DiscardFramebufferEXT(
348     GLenum target, GLsizei count, const GLenum* attachments) OVERRIDE;
349 virtual void LoseContextCHROMIUM(GLenum current, GLenum other) OVERRIDE;
350 virtual GLuint InsertSyncPointCHROMIUM() OVERRIDE;
351 virtual void WaitSyncPointCHROMIUM(GLuint sync_point) OVERRIDE;
352 virtual void DrawBuffersEXT(GLsizei count, const GLenum* bufs) OVERRIDE;
353 #endif  // GPU_COMMAND_BUFFER_CLIENT_GLES2_TRACE_IMPLEMENTATION_AUTOGEN_H_
354