summaryrefslogtreecommitdiff
path: root/config/mpv/shaders/Anime4K_Restore_CNN_Light_L.glsl
blob: bb56c5f2acdeadb1b107928d1ddc2b8cfc57d3db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
// MIT License

// Copyright (c) 2019-2021 bloc97
// All rights reserved.

// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:

// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-4x3x3x3
//!HOOK MAIN
//!BIND MAIN
//!SAVE conv2d_tf
//!WIDTH MAIN.w
//!HEIGHT MAIN.h
//!COMPONENTS 4
#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off)))
vec4 hook() {
    vec4 result = mat4(-0.3121595, -0.16015582, 0.7613578, -0.07872309, 0.21392867, -0.42621255, 0.016876986, 0.12110712, 0.02038841, -0.19282676, -0.15770264, -0.1084413, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0);
    result += mat4(-0.12552223, -0.083054066, 0.495511, 0.5403114, -0.1533985, -0.09299428, 0.17482238, 0.5946519, 0.20526499, 0.020372698, -0.31500116, 0.09922892, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0);
    result += mat4(0.08668323, -0.13311374, -0.39233676, -0.4587636, 0.208799, 0.11574962, 0.13181932, 0.18146871, -0.24301258, 0.004480876, 0.33004108, 0.1385218, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0);
    result += mat4(0.449001, -0.11644384, -0.0744516, -0.107470006, -0.32716283, -0.066886626, 0.20652097, 0.32370695, -0.042742286, -0.22166389, 0.049405176, 0.038091604, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0);
    result += mat4(0.10391923, 0.2673158, -0.55740565, 0.17091747, 0.08372797, 0.11278112, -0.23313446, -0.31862217, -0.24139628, 0.13689329, 0.23599875, 0.14540868, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0);
    result += mat4(-0.18721278, 0.24591266, -0.023833893, 0.2817452, -0.11235389, -0.0077523952, -0.43163663, -0.43850788, 0.2774973, 0.34667507, -0.24041831, -0.2998129, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0);
    result += mat4(0.7607615, -0.046572756, 0.2598385, -0.0365372, -0.16320613, -0.20682378, -0.04575179, -0.02823936, 0.040848836, 0.17379133, 0.0022711165, 0.12745439, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0);
    result += mat4(-0.04915079, -0.117427886, -0.30197635, -0.03883247, 0.19696562, 0.19068222, -0.22107181, -0.48057473, -0.063908204, 0.08287587, 0.08349706, -0.075385995, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0);
    result += mat4(0.03786763, 0.14098835, -0.16988485, -0.19634144, -0.11515268, 0.31674543, 0.40924296, -0.40733826, 0.0056218314, -0.37257367, -0.0035978516, -0.11775368, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0);
    result += vec4(-0.47451666, -0.08904337, -0.026395155, -0.04560168);
    return result;
}
//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-4x3x3x3
//!HOOK MAIN
//!BIND MAIN
//!SAVE conv2d_tf1
//!WIDTH MAIN.w
//!HEIGHT MAIN.h
//!COMPONENTS 4
#define go_0(x_off, y_off) (MAIN_texOff(vec2(x_off, y_off)))
vec4 hook() {
    vec4 result = mat4(0.05964298, -0.18047667, 0.22150186, 0.32393023, 0.19224727, 0.06107447, 0.26372415, 0.06027015, -0.10696717, 0.012515964, 0.01632917, 0.045418333, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, -1.0);
    result += mat4(0.28248543, 0.04708609, 0.30679616, 0.23818778, -0.30436623, 0.17426667, 0.6364361, 0.38911265, -0.26475692, 0.42065635, 0.20049259, 0.06918251, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 0.0);
    result += mat4(-0.010705641, 0.17970432, -0.23039694, 0.4299671, -0.06842852, 0.69462544, -0.09131652, -0.06738311, 0.1296807, -0.062316183, -0.17991066, -0.15755148, 0.0, 0.0, 0.0, 0.0) * go_0(-1.0, 1.0);
    result += mat4(-0.17362565, 0.086272724, -0.3286674, -0.40955663, 0.301752, -0.40373057, 0.12792736, -0.25862378, 0.25302804, -0.23381458, -0.006669091, -0.090612546, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, -1.0);
    result += mat4(0.04762081, 0.23059015, 0.11120868, -0.4695307, -0.2920274, -0.4641044, 0.15963633, -0.5298672, -0.025412926, -0.3828207, 0.40178013, 0.018041555, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 0.0);
    result += mat4(0.18887755, -0.57716, -0.2706466, 0.61065227, -0.6992862, 0.027110055, 0.06402473, 0.16341272, -0.18700467, 0.5344178, 0.06452154, -0.06359607, 0.0, 0.0, 0.0, 0.0) * go_0(0.0, 1.0);
    result += mat4(-0.017523423, 0.39032352, 0.14955276, -0.34615228, 0.26964864, -0.19066305, -0.49392194, 0.24481915, 0.19092974, -0.11552945, 0.0856213, 0.29958043, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, -1.0);
    result += mat4(-0.059764467, -0.3233135, -0.0461482, -0.20614421, 0.51836395, -0.36346158, -0.4359726, -0.21462736, 0.1989283, 0.095549144, -0.37464142, -0.2278768, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 0.0);
    result += mat4(-0.3072, 0.19582677, 0.10922164, -0.15610325, 0.077935345, 0.4157265, -0.23797372, 0.20121297, -0.19081697, -0.23798944, -0.21298932, 0.1003782, 0.0, 0.0, 0.0, 0.0) * go_0(1.0, 1.0);
    result += vec4(0.015314525, 0.06547362, 0.012922978, -0.03593228);
    return result;
}
//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-4x3x3x16
//!HOOK MAIN
//!BIND conv2d_tf
//!BIND conv2d_tf1
//!SAVE conv2d_1_tf
//!WIDTH conv2d_tf.w
//!HEIGHT conv2d_tf.h
//!COMPONENTS 4
#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0))
#define go_2(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_3(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0))
vec4 hook() {
    vec4 result = mat4(0.15442072, 0.019371454, -0.15003064, 0.18532817, 0.12251825, 0.1261931, 0.361698, 0.21224988, -0.07551095, 0.20023881, 0.1732665, -0.4010919, -0.101981014, -0.29093143, 0.16304632, 0.06483745) * go_0(-1.0, -1.0);
    result += mat4(-0.2309402, -0.23416479, 0.11091344, 0.28948462, -0.25330463, 0.089632146, 0.008226284, 0.001207808, -0.032884933, -0.023607042, 0.057268113, -0.13289304, 0.077667125, -0.43884975, 0.2859323, -0.24912749) * go_0(-1.0, 0.0);
    result += mat4(-0.13453412, -0.4753908, 0.088979624, -0.9546404, -0.074312694, -0.3135252, 0.09578599, -0.09457591, -0.17005765, 0.14082985, -0.10425161, 0.019865887, 0.0716233, 0.09926633, -0.0700611, -0.24842767) * go_0(-1.0, 1.0);
    result += mat4(-0.034493893, 0.062263623, -0.14301337, -0.1572284, 0.018308917, -0.2544097, 0.04338111, 0.1368561, 0.009645297, -0.109165356, 0.041603997, -0.06204043, -0.13544674, 0.050235625, -0.14451157, 0.14487998) * go_0(0.0, -1.0);
    result += mat4(0.10732497, 0.22030698, 0.082727715, 0.24799195, -0.22089402, -0.5156608, 0.05692086, -0.3068239, 0.14064531, 0.25901955, -0.21138026, -0.22874267, 0.25873578, 0.26231503, 0.19119039, -0.057458233) * go_0(0.0, 0.0);
    result += mat4(0.08051138, -0.098645724, 0.36835003, 0.28211826, -0.11982244, 0.008514222, 0.0010616772, -0.097934015, -0.051363803, -0.053696193, -0.011350932, 0.44846848, -0.13292734, 0.19749554, 0.16572045, -0.35668787) * go_0(0.0, 1.0);
    result += mat4(-0.16214915, 0.22749685, 0.09061332, 0.12530097, 0.0905566, -0.18355326, 0.025281625, 0.007922537, -0.2596196, 0.11147502, 0.40927407, 0.079360984, 0.15852645, -0.07072697, -0.094690844, 0.21072926) * go_0(1.0, -1.0);
    result += mat4(0.13145733, -0.10433707, -0.15926386, -0.11801066, 0.37575594, -0.0825212, 0.05299609, -0.105920896, 0.009549182, 0.17860718, 0.0121821305, 0.14026615, -0.2761725, 0.16623454, -0.11989365, -0.2326514) * go_0(1.0, 0.0);
    result += mat4(0.103067346, 0.27742139, -0.2082691, 0.15680477, 0.09624863, -0.28825518, -0.15642273, -0.51509017, -0.10563679, -0.089178324, 0.13331929, 0.31384012, -0.053811543, 0.0026897502, -0.0038833907, -0.17445561) * go_0(1.0, 1.0);
    result += mat4(-0.18791525, 0.30387872, -0.08082712, 0.124749154, -0.1373371, 0.010697776, 0.19706097, -0.05321014, 0.15902345, 0.0078632375, -0.21068238, 0.06926176, 0.034010064, 0.122016616, 0.036059093, 0.21729809) * go_1(-1.0, -1.0);
    result += mat4(0.113350324, 0.19164339, 0.31083134, -0.018765269, -0.011434192, -0.006854011, -0.3153248, 0.26498723, -0.07461278, -0.09499136, -0.2579004, 0.18082312, 0.10827941, 0.23454572, -0.09952285, -0.04263498) * go_1(-1.0, 0.0);
    result += mat4(0.04570515, -0.3235553, 0.23864084, 0.119092084, 0.18591438, 0.048512425, 0.05789494, 0.2629443, 0.030203812, -0.28034347, -0.08986968, -0.0031989263, -0.20138015, -0.31875676, -0.041946437, -0.07365735) * go_1(-1.0, 1.0);
    result += mat4(0.13835867, 0.2413709, -0.15207066, -0.1436335, -0.28003788, -0.10648049, 0.039136406, 0.04577514, 0.1441817, 0.027836233, 0.01925198, 0.024747284, -0.3286621, 0.2855217, 0.12275058, -0.08310275) * go_1(0.0, -1.0);
    result += mat4(-0.035598844, 0.040902074, -0.029799893, -0.015776278, 0.02603868, 0.09987377, -0.22285576, -0.053994235, 0.037340023, 0.13223282, -0.016271597, 0.10442418, 0.07477142, 0.34070927, -0.20869213, 0.312183) * go_1(0.0, 0.0);
    result += mat4(0.15777738, 0.1491854, -0.023929382, 0.2303143, 0.034600727, -0.08041788, -0.057930127, -0.21437378, 0.022960516, -0.08988659, 0.039297275, 0.20840374, 0.013393495, -0.1529195, -0.22247994, 0.10728966) * go_1(0.0, 1.0);
    result += mat4(-0.08726617, -0.13290732, -0.1795328, -0.02552723, -0.03159147, -0.024922794, 0.2310698, -0.16219823, 0.24332541, -0.04378182, -0.12888455, -0.2114414, -0.14884377, 0.2925833, -0.02248768, 0.10762543) * go_1(1.0, -1.0);
    result += mat4(0.030859483, -0.045362987, -0.04303646, -0.1476474, -0.062661864, -0.15741493, 0.16520277, -0.061726347, -0.20602837, -0.085056074, 0.015026156, 0.16562271, 0.30175918, 0.08830515, 0.063278705, 0.0684893) * go_1(1.0, 0.0);
    result += mat4(0.18610452, -0.016320957, -0.097022615, -0.040539484, 0.10804552, -0.15499668, 0.054955207, -0.08061264, 0.13459252, -0.08951028, 0.14811765, 0.12273436, 0.099985905, 0.035088334, -0.06762167, 0.025195826) * go_1(1.0, 1.0);
    result += mat4(0.16010718, 0.09835038, 0.18442345, 0.114723936, -0.13478006, -0.13412605, -0.099865146, -0.04866049, -0.09774236, -0.084004305, -0.0025963662, -0.037890904, 0.3636055, 0.27028054, 0.093381576, -0.015571203) * go_2(-1.0, -1.0);
    result += mat4(0.09829301, 0.16861407, -0.11442181, -0.040133063, 0.3366785, -0.045818496, 0.18903455, -0.13923167, -0.030843422, -0.00700777, -0.12766178, -0.15399466, -0.1146612, 0.04199957, -0.005995134, -0.0037666433) * go_2(-1.0, 0.0);
    result += mat4(-0.027994923, -0.0024115935, -0.13645874, -0.2814859, -0.00446565, 0.19805923, 0.023246035, 0.029780824, 0.09185108, 0.11832038, 0.11513373, 0.03325153, -0.09219416, -0.11043864, -0.05115953, 0.06281926) * go_2(-1.0, 1.0);
    result += mat4(0.015596652, -0.060436554, -0.09227254, 0.12882945, -0.15550487, -0.15460472, 0.015830947, 0.10262883, -0.016280128, -0.040893838, -0.10107096, -0.30291194, -0.0068264077, -0.004494254, 0.0010056776, -0.11982617) * go_2(0.0, -1.0);
    result += mat4(0.07489016, -0.12127775, 0.057703316, -0.1462056, 0.12672256, -0.071760945, 0.11466251, 0.14471, -0.13763267, -0.029681725, 0.28835618, 0.107503735, -0.35319996, -0.012912346, -0.14310624, -0.19995177) * go_2(0.0, 0.0);
    result += mat4(-0.091537826, -0.04903988, 0.09268812, 0.15748534, 0.075387105, -0.08980121, -0.16732723, 0.009190707, -0.027690355, 0.41236666, 0.023232438, -0.14432448, 0.043271653, -0.017663797, -0.029447125, 0.14463232) * go_2(0.0, 1.0);
    result += mat4(-0.034891237, -0.16135657, -0.0068932846, -0.07065149, -0.036002066, 0.04310736, 0.022731226, 0.0027131499, 0.14450073, 0.08778493, -0.20618501, 0.0047292234, -0.12996885, 0.056311693, 0.001654932, -0.11672328) * go_2(1.0, -1.0);
    result += mat4(-0.007078873, 0.049492516, -0.13358623, 0.055675432, 0.31173193, -0.000506798, 0.021261262, -0.014661166, 0.081634395, 0.3279645, -0.01096493, -0.023528514, 0.034178182, -0.18167561, -0.017689308, 0.17755817) * go_2(1.0, 0.0);
    result += mat4(-0.13897008, -0.01110729, 0.16355942, 0.046413124, 0.16686451, -0.23978676, -0.061606795, 0.19991758, 0.15213645, 0.14209794, 0.26253015, -0.0065806126, 0.11074361, 0.06300078, 0.106317356, -0.04660152) * go_2(1.0, 1.0);
    result += mat4(-0.011438846, -0.049626473, -0.5400771, -0.14859518, 0.19780715, -0.4255129, -0.098992884, -0.08261326, -0.3401094, 0.07255526, 0.073176466, -0.122585826, 0.051061142, 0.042256277, -0.22684483, -0.028620709) * go_3(-1.0, -1.0);
    result += mat4(0.0766796, 0.14548446, -0.29298007, 0.37498912, -0.18203637, 0.10888433, -0.039574057, -0.27900356, 0.02884223, 0.33059385, -0.12526917, 0.08121949, 0.00850377, -0.061016615, 0.03412656, 0.19114983) * go_3(-1.0, 0.0);
    result += mat4(0.016404582, 0.12546924, 0.10185072, 0.30112886, 0.08473686, -0.15219629, -0.20517822, -0.089625396, 0.07328328, 0.2181237, 0.06917066, 0.23612428, 0.08522925, 0.046357162, 0.11582959, 0.16683513) * go_3(-1.0, 1.0);
    result += mat4(-0.16686358, 0.15286005, -0.07458396, 0.03369594, 0.6712508, -0.15543757, 0.20482695, -0.013049321, -0.054833837, 0.023935242, -0.11720662, -0.08694667, 0.31656232, -0.15169555, -0.19861637, 0.13114922) * go_3(0.0, -1.0);
    result += mat4(-0.0530445, 0.39022553, -0.2291974, -0.056234572, -0.014221621, -0.025927829, 0.15540533, 0.014657371, 0.053946793, 0.025131358, 0.064114854, 0.15350954, 0.07567761, 0.15679917, 0.027071277, 0.05052827) * go_3(0.0, 0.0);
    result += mat4(0.31031817, -0.13418207, -0.1472058, 0.16706052, -0.24059261, 0.23732296, -0.13351545, 0.16874683, -0.18032528, 0.14801969, -0.027664399, 0.07481748, -0.0028773202, -0.05811543, -0.011862517, 0.11862505) * go_3(0.0, 1.0);
    result += mat4(0.026516391, 0.18864882, 0.047930393, -0.023929218, 0.024615198, -0.29148546, 0.20028056, 0.3141248, -0.117067575, 0.0731651, 0.25607067, 0.14689313, 0.19304241, -0.19415607, -0.11822561, -0.1631293) * go_3(1.0, -1.0);
    result += mat4(-0.066051, 0.10352506, 0.15745261, -0.07248566, -0.12528268, 0.13937128, 0.017677372, 0.15802717, 0.20002304, 0.08699917, 0.205593, -0.05785632, -0.29440826, 0.101653114, -0.10106199, 0.011273689) * go_3(1.0, 0.0);
    result += mat4(-0.17435393, 0.053856604, -0.089555204, 0.09800441, -0.25675765, 0.20366132, 0.06328609, -0.0024097774, 0.015516969, -0.16857336, -0.020245643, -0.09945456, -0.18572363, 0.078594975, -0.040483516, 0.11708851) * go_3(1.0, 1.0);
    result += vec4(-0.06311658, -0.014458573, 0.08800438, -0.08281843);
    return result;
}
//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-4x3x3x16
//!HOOK MAIN
//!BIND conv2d_tf
//!BIND conv2d_tf1
//!SAVE conv2d_1_tf1
//!WIDTH conv2d_tf.w
//!HEIGHT conv2d_tf.h
//!COMPONENTS 4
#define go_0(x_off, y_off) (max((conv2d_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_1(x_off, y_off) (max((conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0))
#define go_2(x_off, y_off) (max(-(conv2d_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_3(x_off, y_off) (max(-(conv2d_tf1_texOff(vec2(x_off, y_off))), 0.0))
vec4 hook() {
    vec4 result = mat4(-0.0030944443, 0.07389833, 0.29549822, -0.1331977, 0.16668768, -0.6257478, 0.029786112, -0.09838488, -0.113271065, 0.18543887, -0.054232005, -0.058293566, 0.026605438, 0.48566622, 0.24530499, -0.054320723) * go_0(-1.0, -1.0);
    result += mat4(0.5060644, -0.1265508, 0.22169735, 0.26704386, -0.019467538, 0.17471965, -0.16144477, 0.10154692, -0.0015556838, -0.30002865, -0.0057676295, -0.0864105, -0.14182709, 0.1359065, 0.4109874, 0.4363237) * go_0(-1.0, 0.0);
    result += mat4(-0.3634056, -0.10702927, -0.47792634, 0.4584187, -0.0029139025, -0.027064854, 0.042522278, -0.15416941, 0.10603017, 0.11253841, -0.045258883, 0.003984308, -0.057636335, 0.13956228, 0.3247574, -0.023946967) * go_0(-1.0, 1.0);
    result += mat4(-0.08823117, -0.14564307, -0.11193747, 0.013603483, -0.08481065, 0.23073168, 0.27738553, 0.3431272, 0.054153968, -0.036412586, -0.27404976, -0.20824966, -0.0057737585, 0.032476973, 0.2679855, -0.10800982) * go_0(0.0, -1.0);
    result += mat4(-0.0688757, 0.14111552, 0.011284892, -0.23107743, 0.20162651, 0.07497322, -0.25874448, -0.16603303, -0.109170154, 0.10802038, 0.100117974, -0.01459213, 0.05077889, 0.11511715, 0.15825179, 0.041204873) * go_0(0.0, 0.0);
    result += mat4(-0.30425802, -0.12385621, -0.18752103, -0.14844313, 0.099329226, 0.099750586, -0.05585029, -0.107243575, -0.093491845, 0.06903144, -0.022883493, 0.112499386, 0.055184927, -0.05712281, -0.016835542, 0.043570396) * go_0(0.0, 1.0);
    result += mat4(-0.039821744, 0.07851079, -0.067919075, -0.2484062, -0.23657611, 0.058591146, 0.0638809, -0.11417449, -0.0499953, -0.11109237, -0.16717528, 0.12274107, -0.07153902, 0.005507715, 0.105724424, -0.2499695) * go_0(1.0, -1.0);
    result += mat4(0.05061626, 0.13575439, 0.09859521, 0.027350457, -0.029957747, -0.030532781, -0.010594633, 0.15470104, -0.08615085, 0.070149764, -0.18005456, 0.21735401, 0.13169718, 0.0061157923, -0.04623085, -0.16111535) * go_0(1.0, 0.0);
    result += mat4(0.22807954, 0.010461574, 0.23563161, 0.079285204, 0.13509962, 0.15413262, -0.026737982, 0.07018025, 0.24876022, -0.11427947, -0.040941272, -0.08925519, -0.017087704, 0.00023598553, 0.08654444, -0.08906466) * go_0(1.0, 1.0);
    result += mat4(0.0828652, 0.1322468, -0.015602157, 0.05744745, 0.11739746, -0.18617462, -0.21513584, -0.13375513, -0.15625504, -0.20036289, -0.1736684, 0.15717487, 0.08574142, 0.2518187, -0.017995516, -0.0026419363) * go_1(-1.0, -1.0);
    result += mat4(0.07851825, -0.10621693, -0.0523921, 0.061341807, 0.037963066, -0.084521644, -0.23672101, -0.039815765, 0.08815273, -0.25228027, -0.01715371, -0.07939508, -0.09715275, -0.15899225, -0.13137534, -0.015766833) * go_1(-1.0, 0.0);
    result += mat4(0.29915932, 0.075957365, -0.045697514, -0.03242492, 0.009988394, -0.02347126, -0.017127013, 0.008045407, -0.12426576, -0.048316177, -0.04417786, -0.013488124, -0.033953518, 0.2127077, -0.048453957, -0.0035997932) * go_1(-1.0, 1.0);
    result += mat4(-0.20117961, 0.3017623, -0.06841564, 0.10935895, 0.014994331, -0.034477253, 0.121806145, 0.12059877, -0.04505973, -0.022529617, -0.21945497, -0.11276221, 0.122358754, -0.1343328, -0.0349866, -0.064763315) * go_1(0.0, -1.0);
    result += mat4(-0.21757433, -0.36637086, 0.040753234, -0.12145611, -0.18294552, 0.05011555, 0.095947176, 0.057595383, 0.19281986, -0.13649757, -0.21870594, 0.17415549, 0.02042881, -0.10065778, -0.09903729, -0.41858634) * go_1(0.0, 0.0);
    result += mat4(0.08711207, -0.13792232, -0.09935207, -0.060337353, -0.17015, -0.14340968, 0.21273264, 0.1489192, -0.10398479, -0.11002093, -0.06963045, 0.07631407, -0.17242615, 0.093503065, 0.02788461, 0.06625324) * go_1(0.0, 1.0);
    result += mat4(0.00064912357, -0.0818433, 0.043723058, 0.15582946, 0.24821943, 0.26146665, 0.22133058, 0.25681224, -0.22082663, -0.075903185, 0.0511629, 0.04789437, -0.005813984, 0.17861767, -0.1506084, -0.10538546) * go_1(1.0, -1.0);
    result += mat4(-0.23955925, 0.09375534, 0.1720641, -0.039416283, 0.025072638, 0.05016675, 0.07577935, 0.15611532, 0.18027548, 0.10244854, 0.04419544, 0.11061515, -0.06750084, 0.069786765, 0.16263439, 0.11831941) * go_1(1.0, 0.0);
    result += mat4(-0.15403374, 0.0004271012, 0.23384596, -0.017478801, -0.29381666, 0.0176296, 0.22522882, -0.017342003, 0.052783873, 0.016950658, -0.20423183, 0.09841249, 0.05201525, -0.12586024, 0.06298853, 0.1274076) * go_1(1.0, 1.0);
    result += mat4(-0.09029305, 0.10058256, -0.07683778, -0.10463176, -0.110383265, -0.09477163, 0.11413091, -0.05529946, -0.10600398, 0.086920366, -0.05267391, 0.26750228, -0.07631594, 0.23008183, -0.1505339, 0.11311915) * go_2(-1.0, -1.0);
    result += mat4(0.13540205, -0.3702383, -0.17151284, 0.12285428, -0.07098511, -0.33170938, 0.21792257, -0.030566221, -0.19197504, 0.32529896, 0.0066510215, 0.11896838, 0.09611353, -0.11206545, -0.25215596, -0.26613554) * go_2(-1.0, 0.0);
    result += mat4(-0.20876907, 0.1884469, 0.27721602, 0.28173122, 0.1308087, -0.023862263, -0.03207546, 0.07727191, -0.04951507, -0.07809719, 0.027685694, -0.15000944, -0.11033757, -0.042305786, -0.16270795, 0.14871795) * go_2(-1.0, 1.0);
    result += mat4(0.0085653765, -0.08927939, 0.11540255, 0.12216152, 0.17407167, -0.12023236, -0.18426204, -0.0643216, 0.10668196, 0.18635844, 0.0063510956, -0.015281886, 0.06963777, 0.12295946, -0.14211844, -0.06024959) * go_2(0.0, -1.0);
    result += mat4(0.045965716, 0.15714912, 0.03395944, -0.09975828, -0.00736067, 0.04211788, -0.08542664, -0.13995941, 0.08059087, -0.0056135952, -0.07713997, -0.13336182, -0.08862202, -0.24502432, -0.1431597, 0.002003944) * go_2(0.0, 0.0);
    result += mat4(0.16642651, 0.16417964, -0.022325149, -0.14180517, -0.10153339, -0.042109378, 0.0824451, 0.06404697, 0.13791306, -0.13224612, -0.0615377, -0.088797495, 0.050542045, 0.076969534, 0.008740052, -0.10910571) * go_2(0.0, 1.0);
    result += mat4(0.08566208, -0.055053536, -0.07076485, 0.03961143, 0.19162773, -0.050413597, -0.07160118, 0.04668011, 0.0005757711, -0.052275393, 0.08664552, -0.33957654, 0.05167243, 0.08684821, -0.14229055, 0.24489568) * go_2(1.0, -1.0);
    result += mat4(-0.20070654, -0.01969111, 0.041909944, 0.11115526, -0.17357665, 0.0759508, -0.035195384, -0.048765752, -0.022145739, -0.13386181, 0.18688412, -0.23037574, -0.07441306, 0.05627215, -0.09633299, 0.0070167244) * go_2(1.0, 0.0);
    result += mat4(0.061574485, -0.08389358, -0.01156681, -0.22177692, -0.0373137, 0.03835596, -0.010348736, 0.39262566, 0.039833605, -0.26716095, 0.103135586, 0.071706414, 0.10831962, -0.09730237, -0.016627906, 0.017252894) * go_2(1.0, 1.0);
    result += mat4(-0.16174383, 0.122170255, -0.2996154, -0.20168543, -0.13659056, 0.062429883, 0.27509043, 0.23638053, 0.16383079, -0.091072604, 0.042774975, -0.16427462, -0.017387114, -0.22409686, 0.018817296, -0.32276142) * go_3(-1.0, -1.0);
    result += mat4(0.081673935, 0.13050474, 0.20680526, -0.12181144, -0.10623234, 0.10250106, 0.21963577, 0.1553881, -0.043683648, 0.12579097, -0.17556712, 0.06615675, 0.17135994, 0.19701992, 0.21423505, 0.078435905) * go_3(-1.0, 0.0);
    result += mat4(0.21854138, 0.087298766, 0.09662069, -0.026137067, -0.21631563, -0.025677206, 0.010150135, -0.21178368, 0.22678888, -0.16723736, -0.15372188, -0.0441072, 0.13883334, -0.09260497, -0.124385595, 0.07591) * go_3(-1.0, 1.0);
    result += mat4(0.004329714, -0.27207136, -0.026172446, -0.060229942, 0.080086544, 0.0041282205, 0.16522302, -0.26769605, -0.10856039, -0.042661514, 0.15895316, 0.179028, -0.26828498, 0.15715885, -0.016881302, -0.351972) * go_3(0.0, -1.0);
    result += mat4(0.09235993, 0.049689393, -0.11670934, 0.0062410035, 0.02082651, -0.0016200132, -0.17172258, 0.19427788, -0.34048712, -0.3563599, 0.23004659, 0.037575036, -0.022416988, 0.1714327, 0.1252197, -0.20665655) * go_3(0.0, 0.0);
    result += mat4(-0.034568917, 0.08467901, 0.08665528, 0.14160603, -0.03194954, 0.08198591, -0.33520445, 0.016677378, 0.08151648, -0.008391879, -0.04192163, 0.050898127, 0.13626754, -0.07709889, -0.18897085, -0.014427688) * go_3(0.0, 1.0);
    result += mat4(-0.017537694, -0.03310898, 0.008274341, 0.022409648, 0.30013382, -0.09682773, -0.053299233, -0.15830381, 0.07365559, 0.022687433, 0.068925254, 0.057489343, -0.20625152, -0.0703281, 0.043387175, -0.11021442) * go_3(1.0, -1.0);
    result += mat4(0.04497764, -0.19082525, -0.09380221, 0.059049837, -0.08972269, 0.15246935, -0.105094194, -0.05520923, -0.15861648, -0.25656873, 0.1332275, 0.119783744, 0.0027767164, -0.15254039, -0.026110472, -0.15430546) * go_3(1.0, 0.0);
    result += mat4(-0.017996697, 0.044508345, -0.21518922, 0.042703316, 0.10774219, -0.0062209964, -0.23275954, 0.0055670617, -0.116071865, 0.103371, 0.40991488, 0.050469946, -0.0061665857, 0.11058959, -0.10221216, -0.16318509) * go_3(1.0, 1.0);
    result += vec4(0.009706988, 0.052360505, -0.006459865, -0.023117626);
    return result;
}
//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-4x3x3x16
//!HOOK MAIN
//!BIND conv2d_1_tf
//!BIND conv2d_1_tf1
//!SAVE conv2d_2_tf
//!WIDTH conv2d_1_tf.w
//!HEIGHT conv2d_1_tf.h
//!COMPONENTS 4
#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0))
#define go_2(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_3(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0))
vec4 hook() {
    vec4 result = mat4(0.0067172563, 0.20424569, -0.06953991, -0.24604546, 0.015095357, -0.094539605, -0.08955404, 0.02527341, 0.029983135, 0.017139183, 0.029270673, -0.041121062, 0.09538655, 0.047269233, 0.115659714, 0.08380952) * go_0(-1.0, -1.0);
    result += mat4(0.058384888, 0.095011316, -0.020539057, -0.17497243, -0.049868032, -0.05733782, -0.1225944, -0.013362398, 0.18759528, -0.111500025, 0.06435386, 0.08188189, -0.38002574, -0.09003319, -0.106419586, 0.13796164) * go_0(-1.0, 0.0);
    result += mat4(0.15410765, 0.07865242, -0.18611045, -0.096856266, -0.09336454, -0.09357923, -0.066904604, 0.017346999, 0.22277097, -0.139654, 0.17733002, -0.18611546, 0.020830221, -0.14827307, -0.033924643, -0.07219094) * go_0(-1.0, 1.0);
    result += mat4(-0.04303851, 0.26125386, 0.15021065, -0.18122485, -0.21107425, 0.13313828, -0.0413825, -0.025623225, 0.24839655, -0.17453058, -0.082668535, 0.006671543, -0.04027525, 0.081874155, -0.15050101, 0.18369351) * go_0(0.0, -1.0);
    result += mat4(0.06257433, 0.13847339, -0.14209862, -0.27931213, 0.16121961, -0.0472114, 0.29026622, 0.010667496, -0.03340659, -0.054129306, -0.24450202, 0.015692461, 0.32197708, -0.14451696, 0.17821231, 0.026947293) * go_0(0.0, 0.0);
    result += mat4(0.23717941, -0.13378409, 0.22290707, -0.037714235, 0.032102574, -0.03357105, 0.042710587, 0.0908193, -0.058789253, -0.152496, 0.023119569, -0.11276214, -0.16953792, 0.037704498, 0.08451481, -0.04197843) * go_0(0.0, 1.0);
    result += mat4(-0.041834246, 0.20752978, -0.015408815, -0.053054586, -0.050238702, -0.15875496, 0.04646044, 0.026028935, 0.09344363, -0.14853503, 0.007596154, -0.027418062, -0.06938665, 0.054399867, -0.052426945, 0.034146793) * go_0(1.0, -1.0);
    result += mat4(0.15370506, -0.06814617, 0.081324704, 0.05859508, -0.020070305, 0.0025909252, 0.070928715, -0.014417664, 0.046562728, 0.12728177, 0.0011938637, 0.07621342, -0.118741915, 0.019952973, -0.1750021, -0.01353546) * go_0(1.0, 0.0);
    result += mat4(-0.03904141, 0.045813367, 0.16838093, 0.06844073, -0.12253747, 0.11705786, 0.15288478, 0.06986539, -0.1642031, 0.0039010218, 0.03788506, -0.059418906, 0.018590761, -0.14439704, 0.10065016, -0.034953013) * go_0(1.0, 1.0);
    result += mat4(0.39894256, -0.014112804, -0.33250526, -0.049284596, 0.0016996292, 0.14965428, -0.27605486, 0.09312361, 0.03030105, -0.20855728, -0.17701724, 0.22243498, 0.104224436, -0.08335481, -0.0070754453, -0.074653015) * go_1(-1.0, -1.0);
    result += mat4(-0.2077007, 0.30046573, -0.1665097, -0.03963533, -0.040067594, -0.03217066, -0.2377716, 0.13414007, -0.19492646, 0.3054315, 0.18088886, 0.10722761, 0.20133844, 0.116499715, -0.29430315, -0.0094765145) * go_1(-1.0, 0.0);
    result += mat4(-0.045032475, 0.030827237, 0.06695073, 0.20432845, -0.09989096, 0.013327862, -0.029183265, -0.11000168, 0.1432428, 0.06617376, -0.1351195, -0.0028506205, 0.2280109, -0.1606073, -0.047838468, -0.1369382) * go_1(-1.0, 1.0);
    result += mat4(0.060911953, 0.18373097, 0.03339952, -0.1876622, 0.13702099, 0.092423, -0.4852063, -0.16894694, 0.3766692, -0.5306536, -0.25754413, 0.697843, -0.07317406, 0.053250294, 0.123326555, -0.018244859) * go_1(0.0, -1.0);
    result += mat4(0.14574128, -0.18319398, 0.1287441, 0.09867269, -0.10074185, 0.0013175872, -0.35293633, -0.06409049, -0.20718198, 0.054708675, -0.23875418, 0.07051506, -0.039265912, -0.03195356, -0.059752796, -0.05629582) * go_1(0.0, 0.0);
    result += mat4(-0.019917445, 0.2741996, 0.1074112, 0.05093345, 0.111982726, -0.044076357, 0.009184935, -0.09966932, 0.20920074, 0.018752905, 0.23181447, -0.1441766, 0.04901415, 0.08614861, 0.057410307, 0.19325444) * go_1(0.0, 1.0);
    result += mat4(0.029384427, 0.32428998, -0.0652952, -0.0014898714, 0.05580445, 0.02433932, -0.07760205, -0.07489954, 0.11064703, -0.20926528, -0.15917283, -0.01970145, -0.04058942, -0.020394623, 0.33482835, -0.0015747667) * go_1(1.0, -1.0);
    result += mat4(0.018420307, -0.10834582, 0.0035915808, 0.22485581, 0.31851482, 0.13008803, -0.3010393, 0.026077375, 0.16443856, -0.28586847, 0.012821169, -0.19696367, -0.16386569, 0.09183615, 0.07266596, 0.0018468339) * go_1(1.0, 0.0);
    result += mat4(0.20340963, 0.15881158, -0.008819638, 0.03094529, 0.14462633, -0.22346762, 0.055944122, 0.29882652, -0.048889857, 0.088027984, 0.03338601, -0.13585909, 0.086100176, 0.035659004, 0.22164848, 0.23784931) * go_1(1.0, 1.0);
    result += mat4(-0.32512864, 0.047765087, 0.085670486, -0.07003488, 0.088455416, -0.22160402, 0.18886077, -0.062269628, 0.07731524, 0.17293613, -0.108228214, 0.053829852, -0.26030904, -0.16260493, 0.046369266, 0.14794856) * go_2(-1.0, -1.0);
    result += mat4(0.38978532, -0.022174917, -0.318627, -0.011369223, 0.1177237, -0.081134096, 0.20669158, 0.06227942, -0.1880046, -0.05789359, 0.027680848, -0.0014003547, -0.07092043, -0.031749535, 0.16225913, 0.11305492) * go_2(-1.0, 0.0);
    result += mat4(-0.22184533, 0.43385834, -0.10121702, -0.15607876, -0.19441724, -0.045819342, -0.02387479, 0.14238684, 0.11384521, 0.006365508, 0.10977756, 0.15142392, -0.21443036, 0.20895573, 0.03991157, 0.013612001) * go_2(-1.0, 1.0);
    result += mat4(-0.12903006, 0.053408407, -0.22798079, 0.08913307, 0.1994365, -0.28666854, -0.14517297, 0.24799585, 0.20327948, 0.09273231, 0.06267855, 0.107404105, -0.0032277398, 0.083151214, -0.161928, -0.06397808) * go_2(0.0, -1.0);
    result += mat4(0.49047637, 0.28292403, -0.17009999, 0.07741362, -0.3008769, 0.04829706, -0.03738356, -0.1387036, -0.286046, 0.27938396, 0.12569435, -0.03790402, -0.193405, -0.2013352, 0.008611879, 0.22801764) * go_2(0.0, 0.0);
    result += mat4(0.07507263, 0.45650464, 0.029081898, -0.31588197, -0.16113025, -0.056244254, -0.1599916, 0.0048096254, 0.09545904, -0.019636763, -0.045133047, 0.12951574, -0.13048242, 0.009236148, -0.28360525, -0.011751916) * go_2(0.0, 1.0);
    result += mat4(0.09881537, -0.03976286, 0.034756802, -0.046642534, 0.07681702, -0.13942878, -0.1225796, 0.13467209, -0.12663542, -0.01099844, 0.34393293, -0.059591126, -0.16380295, -0.08926999, 0.0072954674, 0.113335274) * go_2(1.0, -1.0);
    result += mat4(-0.059803315, 0.08174276, 0.22782542, -0.17334269, -0.004971277, 0.04129481, -0.24477586, -0.13026576, 0.0070829513, -0.15230092, 0.25700346, -0.16330211, 0.11528786, -0.046131127, 0.0018710928, 0.15803483) * go_2(1.0, 0.0);
    result += mat4(0.22115204, -0.041110255, -0.07497528, -0.26691216, -0.050703373, -0.122038215, -0.29834756, -0.072499596, 0.15184678, 0.102226995, -0.12561728, -0.044903316, -0.06965652, 0.14258687, -0.30563253, 0.05288965) * go_2(1.0, 1.0);
    result += mat4(-0.06411628, 0.13331823, 0.121055335, 0.035398223, 0.04578577, 0.033497076, -0.109780736, -0.030118302, -0.025399385, -0.23032789, 0.12063102, -0.19131438, -0.08287316, -0.08126883, -0.05525208, 0.11957608) * go_3(-1.0, -1.0);
    result += mat4(0.058913298, -0.047860727, -0.21739075, -0.098592296, -0.28014815, -0.088535324, -0.17853473, -0.11196917, 0.24998626, 0.07109989, -0.15027797, 0.046973743, 0.0150298895, -0.17392379, -0.021261899, 0.07085719) * go_3(-1.0, 0.0);
    result += mat4(-0.14065513, 0.1336434, -0.1588126, -0.08196126, 0.13494843, -0.16510099, -0.07900882, -0.08536446, -0.080063865, 0.029449888, 0.03415512, 0.00607866, -0.0020613114, 0.13038346, 0.059975993, -0.042729657) * go_3(-1.0, 1.0);
    result += mat4(-0.073781945, 0.059039086, 0.15116078, 0.051626742, -0.13881274, 0.14560735, -0.04016639, 0.14490582, -0.09094676, -0.093935564, 0.21549009, -0.22984798, 0.18878065, -0.13996498, -0.28508714, 0.14521378) * go_3(0.0, -1.0);
    result += mat4(-0.04454871, 0.2148702, -0.14123967, -0.061976172, -0.09634304, -0.0022805624, -0.065165035, -0.014065436, -0.025243485, -0.053862095, -0.06827438, -0.0022138122, -0.08966902, 0.04952943, 0.14950716, 0.062900215) * go_3(0.0, 0.0);
    result += mat4(0.16264483, -0.0790757, -0.004665779, -0.06575136, 0.10734634, -0.17040369, -0.106759235, -0.09089966, -0.0476721, 0.080667615, -0.17463788, 0.10605212, 0.15507114, 0.0068211197, -0.1437759, -0.1905158) * go_3(0.0, 1.0);
    result += mat4(-0.085919686, 0.06779113, 0.11573285, -0.018384984, -0.13030791, 0.14144802, -0.0051966775, 0.084903985, 0.026977485, 0.10417517, 0.050564185, 0.013426585, 0.066684656, -0.19598661, 0.06204502, 0.07382553) * go_3(1.0, -1.0);
    result += mat4(0.013290317, 0.27665758, 0.081712365, 0.0082313735, 0.13598959, -0.14565259, -0.17715023, 0.0005993916, -0.0630908, 0.10112624, -0.05431139, 0.10131552, 0.18742636, 0.04065649, 0.36151186, 0.15031748) * go_3(1.0, 0.0);
    result += mat4(0.09578676, -0.07445569, 0.19372752, 0.0873302, 0.09619433, -0.056639615, 0.14357083, -0.12148105, 0.0947366, -0.10065648, -0.00096683315, 0.089373566, -0.013590614, 0.07386965, -0.16210817, -0.17365378) * go_3(1.0, 1.0);
    result += vec4(-0.2229027, -0.023593506, 0.09530417, 0.07350141);
    return result;
}
//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-4x3x3x16
//!HOOK MAIN
//!BIND conv2d_1_tf
//!BIND conv2d_1_tf1
//!SAVE conv2d_2_tf1
//!WIDTH conv2d_1_tf.w
//!HEIGHT conv2d_1_tf.h
//!COMPONENTS 4
#define go_0(x_off, y_off) (max((conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_1(x_off, y_off) (max((conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0))
#define go_2(x_off, y_off) (max(-(conv2d_1_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_3(x_off, y_off) (max(-(conv2d_1_tf1_texOff(vec2(x_off, y_off))), 0.0))
vec4 hook() {
    vec4 result = mat4(0.13559312, 0.009897671, 0.21008113, 0.01714997, 0.0371892, -0.039423928, 0.030186681, 0.020029318, -0.0008547875, 0.048969947, -0.18668023, -0.07400372, -0.10944948, 0.2519561, -0.14963885, 0.1430385) * go_0(-1.0, -1.0);
    result += mat4(-0.08797974, 0.12059387, 0.08434505, -0.13270326, -0.08473326, -0.15229875, -0.16363342, -0.13201451, 0.07631103, 0.07864708, -0.21264254, 0.19229949, -0.08181112, 0.0020015694, 0.028765475, -0.049179375) * go_0(-1.0, 0.0);
    result += mat4(-0.05339964, 0.04117356, 0.039415177, 0.15233362, -0.073976636, -0.08332922, -0.024761995, 0.09779936, 0.21532646, 0.074571975, 0.044987462, 0.06508563, -0.118726365, -0.06304771, -0.017516484, 0.045250002) * go_0(-1.0, 1.0);
    result += mat4(0.22158256, -0.108245544, -0.06308264, 0.05572328, -0.013072155, -0.041787438, -0.008197477, -0.0027003125, 0.064336225, -0.03514008, -0.23820004, -0.003522163, 0.14467451, 0.03326054, -0.1282513, 0.0019114616) * go_0(0.0, -1.0);
    result += mat4(-0.072665825, 0.031040892, 0.12599258, -0.133377, 0.19786513, -0.10786761, 0.19258699, 0.00881678, 0.14048989, -0.13248791, -0.058053903, 0.25616854, 0.09957861, -0.13633865, 0.05367808, -0.21128236) * go_0(0.0, 0.0);
    result += mat4(-0.11336731, -0.19384088, -0.007544781, 0.2679557, -0.121750295, -0.088445134, -0.061620638, 0.080990516, 0.06581607, -0.009135087, 0.11530104, 0.37149042, 0.0605281, 0.040292032, -0.008433763, 0.006068574) * go_0(0.0, 1.0);
    result += mat4(-0.044468917, -0.15659462, -0.1427094, -0.05121799, 0.09299926, 0.093964495, 0.07754709, -0.09489884, -0.08794373, -0.08115843, -0.094312586, 0.042061858, 0.081877165, -0.06937112, 0.07758071, -0.11938869) * go_0(1.0, -1.0);
    result += mat4(0.16352268, -0.075367816, -0.0023272384, 0.0110105695, 0.057450347, -0.060388602, 0.054815687, -0.048579365, 0.25283673, -0.13788672, -0.052238084, 0.015336426, 0.079310514, 0.078248024, 0.044556607, -0.1467428) * go_0(1.0, 0.0);
    result += mat4(0.052145824, 0.004387519, -0.12075529, 0.04342918, -0.066643596, -0.07237038, 0.06617707, 0.025373913, 0.08437174, -0.10925376, 0.074627854, -0.049248267, 0.055661283, -0.09068479, 0.040476434, 0.09204731) * go_0(1.0, 1.0);
    result += mat4(0.17160581, 0.020360226, 0.39429632, 0.23600738, -0.011635322, -0.0041154837, -0.23182215, -0.0541016, 0.046903595, 0.0842813, -0.23668933, -0.0912132, 0.0119827185, 0.08163649, -0.06411619, -0.100775495) * go_1(-1.0, -1.0);
    result += mat4(-0.005907593, -0.25699085, 0.14183241, -0.08267193, -0.08152817, -0.003916246, -0.2688842, -3.031705e-06, 0.13563219, 0.044359975, -0.14159985, -0.027408432, 0.04725594, 0.0957995, 0.12609522, 0.020076675) * go_1(-1.0, 0.0);
    result += mat4(-0.15009235, -0.041003212, -0.04626333, 0.100060545, -0.121796995, 0.016384857, -0.11762165, 0.05623779, -0.1913862, 0.15594113, -0.060742132, 0.01704267, 0.06340309, 0.023079645, 0.08537837, 0.12147535) * go_1(-1.0, 1.0);
    result += mat4(0.07278, -0.086907014, 0.14119364, 0.16678816, 0.06456502, 0.046093445, -0.2820693, -0.19737254, -0.54787016, 0.08072064, 0.1911717, -0.26347235, -0.096118905, 0.14175718, -0.04440545, 0.16685739) * go_1(0.0, -1.0);
    result += mat4(0.37467942, 0.30115667, 0.02126725, 0.17785111, 0.020670753, 0.1948425, -0.12449899, 0.19494262, -0.60316455, 0.0052317446, 0.11386479, -0.40112028, 0.057974793, 0.19828567, -0.016882258, -0.04818754) * go_1(0.0, 0.0);
    result += mat4(-0.043528866, -0.029886147, -0.1614067, -0.1358237, 0.14438556, 0.18248484, 0.018096823, -0.09417333, 0.10935841, -0.097040445, 0.073800094, -0.011161595, 0.076941945, 0.0193359, 0.048559856, -0.15719637) * go_1(0.0, 1.0);
    result += mat4(-0.017906046, -0.098237716, 0.003646768, 0.04859253, 0.17554073, 0.066356964, -0.14422391, -0.033022974, -0.24254087, 0.21759818, 0.0012959866, 0.039138388, 0.17170915, 0.044053745, -0.070346184, 0.028636558) * go_1(1.0, -1.0);
    result += mat4(-0.047093727, 0.34279326, 0.02897982, 0.12524845, 0.18989459, 0.031822756, -0.1276038, 0.14263506, -0.019259883, 0.014314143, 0.21610728, -0.12370208, 0.12206605, 0.24094662, 0.16300224, -0.14696234) * go_1(1.0, 0.0);
    result += mat4(-0.084809646, 0.104368255, -0.113627195, 0.19478577, -0.15528835, -0.01860345, -0.30864966, 0.04325333, -0.03316702, -0.0019556102, -0.0020096563, 0.044673797, 0.13369878, -0.054616388, 0.034764327, -0.14509949) * go_1(1.0, 1.0);
    result += mat4(-0.09198498, -0.104429886, -0.29737356, -0.083914585, 0.018187644, 0.14870952, -0.021611772, 0.015469684, 0.079760715, -0.18559219, 0.18070693, 0.06221625, -0.01685367, -0.023539424, 0.2029264, -0.16358122) * go_2(-1.0, -1.0);
    result += mat4(0.12931404, 0.29990608, -0.108246796, 0.045164827, 0.07163564, 0.052275807, 0.18463825, -0.02994129, 0.18461096, -0.014200408, 0.08855313, 0.021860885, 0.076146334, -0.085933916, 0.07895229, -0.24515118) * go_2(-1.0, 0.0);
    result += mat4(-0.24528976, 0.19109753, -0.09019975, -0.24652398, -0.119591095, -0.089302965, 0.0103786895, -0.1726828, 0.21758892, -0.067210495, -0.08615481, -0.010782645, 0.1153701, -0.13168839, -0.111284085, -0.117043644) * go_2(-1.0, 1.0);
    result += mat4(-0.23337996, 0.07421462, -0.023520496, -0.15505022, -0.069929205, 0.21566634, 0.12028246, -0.083322704, 0.11232317, -0.056286857, 0.07580477, 0.0636714, 0.04717007, -0.38778234, 0.13493043, -0.1971189) * go_2(0.0, -1.0);
    result += mat4(0.016980764, -0.08934874, -0.17570284, -0.11182923, -0.26352197, 0.1429643, -0.0042802924, -0.12530631, -0.12499802, -0.02800966, -0.020643214, -0.061088994, 0.02750407, 0.2539809, -0.029508257, 0.20016028) * go_2(0.0, 0.0);
    result += mat4(0.12790309, -0.22477293, -0.10950275, -0.1646443, -0.006728729, 0.1284691, -0.061029423, -0.044097975, -0.12108, 0.042810522, 0.06076997, -0.023156589, -0.18490389, -0.024377767, 0.008955767, -0.14467046) * go_2(0.0, 1.0);
    result += mat4(0.036254022, 0.017976135, 0.08254032, -0.011082076, -0.11610731, 0.13071638, -0.03502488, -0.04589077, 0.08964723, 0.06882186, 0.07106857, -0.064971365, -0.4070485, 0.11656879, -0.09065456, 0.12045769) * go_2(1.0, -1.0);
    result += mat4(-0.15844108, -0.123666815, -0.049825884, -0.096722, -0.17381117, 0.07535767, -0.07992279, 0.047078174, -0.021063428, 0.13578749, 0.084241435, 0.0067677125, -0.14977045, 0.083699614, 0.14093648, -0.090126656) * go_2(1.0, 0.0);
    result += mat4(0.14516175, 0.102111146, 0.2653116, -0.20395896, 0.010169468, 0.16485152, 0.025582263, -0.044132408, -0.045357224, 0.1288252, 0.020205546, 0.021502694, -0.24400307, 0.009825931, -0.1474786, -0.082656585) * go_2(1.0, 1.0);
    result += mat4(-0.1809076, 0.034548596, -0.12579073, -0.016494548, 0.08466355, -0.12827906, 0.10433612, -0.022261372, -0.088265926, 0.20759174, 0.011311484, 0.031796552, -0.029714083, -0.017929344, -0.037819322, -0.04482616) * go_3(-1.0, -1.0);
    result += mat4(-0.18618329, 0.12604913, -0.065007515, 0.20215775, -0.08507774, -0.00235953, -0.18427908, -0.04934901, -0.061944883, 0.15631352, 0.18557191, -0.21363941, 0.020878771, -0.093201034, -0.00046942534, -0.03307451) * go_3(-1.0, 0.0);
    result += mat4(-0.21720769, -0.0405984, 0.08853193, 0.032682713, 0.019174002, 0.029194806, -0.0579306, 0.073755205, 0.07985911, -0.059560716, -0.000501011, 0.017081605, -0.045847952, 0.038666602, 0.17370792, -0.05714378) * go_3(-1.0, 1.0);
    result += mat4(-0.09609274, 0.18841888, 0.01962752, -0.024508065, 0.07508026, -0.09336991, -0.0887551, 0.03625213, 0.103315085, -0.024734419, 0.0783935, 0.3010156, 0.041211147, -0.070621885, 0.15130648, -0.07027945) * go_3(0.0, -1.0);
    result += mat4(-0.12224366, -0.13677344, 0.2245914, -0.052402727, 0.006152242, -0.013166172, -0.3515303, -0.12610568, 0.23373212, 0.037435725, -0.18097815, 0.02322401, -0.2505032, -0.010512621, -0.048544355, -0.01699723) * go_3(0.0, 0.0);
    result += mat4(0.046250515, 0.14552876, 0.18799494, 0.12764487, -0.24308394, 0.013552401, -0.05976431, 0.18072776, 0.012114948, 0.16277741, 0.05691475, -0.0037657372, -0.08651094, 0.011603496, 0.13227989, 0.005284736) * go_3(0.0, 1.0);
    result += mat4(0.1992486, -0.07951749, 0.12866485, 0.018532516, -0.03411027, -0.06673619, -0.19512677, 0.010910418, 0.055802237, -0.18195997, -0.10011558, -0.0798033, -0.05855395, 0.050812017, -0.023025153, 0.06152583) * go_3(1.0, -1.0);
    result += mat4(0.1095769, -0.26638696, 0.0011676316, 0.023450503, 0.07346097, 0.14900672, -0.07502783, -0.20782046, -0.23998637, -0.1808688, -0.15239471, 0.10662581, -0.06799364, 0.11236035, -0.31909212, 0.15238762) * go_3(1.0, 0.0);
    result += mat4(0.10869413, -0.1259459, -0.0578771, 0.06806587, 0.15551692, 0.0066165742, -0.06756317, 0.047824837, -0.12383911, -0.108470246, 0.081882946, -0.13548237, 0.016066918, -0.06939899, 0.14699927, -0.1643628) * go_3(1.0, 1.0);
    result += vec4(-0.036630917, -0.022851214, 0.08509398, -0.02551649);
    return result;
}
//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-4x3x3x16
//!HOOK MAIN
//!BIND conv2d_2_tf
//!BIND conv2d_2_tf1
//!SAVE conv2d_3_tf
//!WIDTH conv2d_2_tf.w
//!HEIGHT conv2d_2_tf.h
//!COMPONENTS 4
#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0))
#define go_2(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_3(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0))
vec4 hook() {
    vec4 result = mat4(-0.029776346, 0.08150289, -0.018306466, -0.060286522, 0.020998199, -0.09240719, -0.034482293, 0.02438061, -0.061729085, 0.11446907, 0.046089847, 0.0855784, 0.10372171, -0.011123345, -0.021418836, 0.04728621) * go_0(-1.0, -1.0);
    result += mat4(0.05898243, -0.044722393, 0.10011565, -0.028903142, -0.10152609, -0.065831065, -0.09447598, -0.025358345, -0.06686195, 0.08223471, 0.08847784, -0.035673894, 0.0773218, -0.16110274, -0.162683, 0.015182388) * go_0(-1.0, 0.0);
    result += mat4(-0.011625321, -0.07395555, -0.09507625, 0.01726033, -0.08712309, -0.13567716, -0.12652361, -0.02162895, -0.011108306, 0.13127652, 0.10638906, 0.013269429, 0.18866186, 0.024482341, -0.02786814, 0.039826714) * go_0(-1.0, 1.0);
    result += mat4(-0.0545538, 0.24771722, 0.06395592, 0.1481535, -0.04005798, 0.13192517, 0.12546192, -0.012222131, -0.14361234, 0.14278066, 0.13950849, -0.002582191, 0.03404403, -0.0679054, 0.03213576, -0.03281059) * go_0(0.0, -1.0);
    result += mat4(-0.17215483, 0.31385368, -0.24187365, -0.02283786, -0.002075702, -0.130016, -0.20109513, -0.08138311, -0.17400685, -0.1155281, -0.020879207, 0.11053393, 0.028524853, -0.10110371, 0.034702647, -0.20337525) * go_0(0.0, 0.0);
    result += mat4(-0.07222207, -0.022905111, -0.013341299, 0.10433479, 0.1344348, -0.055382404, 0.008649655, -0.007156299, -0.0072664693, -0.14056057, -0.043226738, 0.16727526, -0.2732074, 0.12511961, -0.055439442, 0.0075639305) * go_0(0.0, 1.0);
    result += mat4(-0.12808691, 0.2382534, 0.030479062, 0.12996791, 0.012681221, 0.14638355, 0.066171065, 0.14732742, -0.07658475, 0.09879736, 0.03677056, 0.22744955, 0.044221535, 0.0068931826, 0.011108752, -0.01766157) * go_0(1.0, -1.0);
    result += mat4(-0.11421859, 0.20724542, 0.18407707, 0.12889363, 0.005909295, -0.3454409, 0.13604216, 0.14290486, -0.08664927, 0.02447888, 0.048201386, 0.025448436, 0.17964222, 0.020554837, -0.00023350351, -0.08114028) * go_0(1.0, 0.0);
    result += mat4(-0.04137874, 0.10703713, 0.0037668168, 0.12053635, -0.00356944, -0.024869593, -0.1350359, 0.04542057, -0.13719356, 0.049603727, 0.00017469452, 0.20690751, 0.09619444, 0.022089276, -0.043486, 0.09166758) * go_0(1.0, 1.0);
    result += mat4(0.07467253, -0.0021723416, -0.027128335, 0.021624539, 0.1530219, -0.07349356, -0.0025286041, -0.103148624, -0.027187893, -0.043423675, -0.049464755, 0.16441195, -0.046070855, 0.020315405, -0.013701918, -0.047294576) * go_1(-1.0, -1.0);
    result += mat4(0.18642314, -0.11243862, -0.19431297, -0.0074273334, 0.082619846, 0.06902485, -0.08826083, 0.029759731, -0.019716715, 0.13059565, -0.089803986, -0.057940748, -0.100200355, -0.025722781, -0.20885101, 0.1661614) * go_1(-1.0, 0.0);
    result += mat4(0.19797751, -0.037035957, -0.13551311, 0.009642935, 0.08321675, -0.0033166087, 0.005456223, -0.09315462, -0.040124875, 0.0030235224, 0.073154725, 0.14793383, -0.018944133, -0.029860528, -0.2718046, 0.07078449) * go_1(-1.0, 1.0);
    result += mat4(0.016985007, 0.23592415, -0.031398177, 0.0040747854, -0.039274756, 0.069920205, 0.06800335, -0.075722046, 0.010911783, 0.026746044, -0.034521844, -0.10206245, 0.17570145, -0.008743653, -0.09064728, 0.21455698) * go_1(0.0, -1.0);
    result += mat4(-0.07792183, 0.014284214, 0.26056328, -0.0042300634, -0.013066412, 0.08422942, 0.061678603, 0.25444114, -0.010880772, 0.07664101, -0.073734924, 0.10301846, -0.12723732, -0.13751248, 0.022496099, 0.25941393) * go_1(0.0, 0.0);
    result += mat4(0.058782425, -0.041042328, 0.008163272, -0.1594089, 0.019900851, 0.040990017, 0.073564716, 0.0147259645, -0.12981267, 0.04976688, 0.04728104, 0.076040536, -0.24122393, -0.040639922, -0.1326057, -0.025168303) * go_1(0.0, 1.0);
    result += mat4(0.16873342, 0.08618755, -0.04953932, 0.074691184, 0.14675249, -0.06762311, -0.017239146, 0.009361164, 0.033111166, 0.0334236, 0.0037848193, 0.061346095, -0.004921934, -0.16271128, -0.20889415, 0.02617755) * go_1(1.0, -1.0);
    result += mat4(0.15732965, 0.104585506, -0.05348141, -0.20170747, -0.061679956, -0.21832703, -0.011572214, 0.027820297, 0.30180755, 0.054473676, -0.12332198, 0.08947658, 0.1640259, -0.09157691, -0.059142504, 0.034273557) * go_1(1.0, 0.0);
    result += mat4(0.08544174, 0.02079748, 0.114510335, 0.083957404, -0.0035725844, -0.034238115, -0.010522109, -0.019307062, 0.051028147, 0.09421387, -0.0791829, -0.037119675, 0.06824164, -0.11687332, -0.08388446, -0.05192566) * go_1(1.0, 1.0);
    result += mat4(-0.042990375, 0.06469371, 0.051467825, 0.04208096, 0.009534703, -0.078901336, 0.0045742025, -0.12949632, -0.0017265689, -0.0133034615, 0.048099745, 0.02000361, -0.053014588, 0.035693523, -0.013261323, -0.026367221) * go_2(-1.0, -1.0);
    result += mat4(-0.1531308, 0.13600288, -0.067816734, 0.026114602, -0.0050157974, -0.063830465, 0.04513666, -0.045045182, -0.034199856, 0.041578777, -0.027645085, 0.06933243, 0.07579231, -0.041179284, 0.21093765, -0.14186452) * go_2(-1.0, 0.0);
    result += mat4(-0.08780614, 0.09671397, 0.11346011, 0.0826285, 0.013309549, -0.019246483, 0.03853444, 0.024446195, 0.051032458, -0.16324776, -0.010742914, 0.028286528, 0.078897014, -0.04894165, 0.1041555, -0.18081218) * go_2(-1.0, 1.0);
    result += mat4(0.04127592, -0.02520086, 0.00040121697, -0.06630621, -0.17007016, 0.12813038, -0.043990012, 0.24619617, -0.110632844, -0.01193759, -0.07568665, 0.19011353, 0.0850965, -0.022551114, -0.033233803, -0.084730625) * go_2(0.0, -1.0);
    result += mat4(-0.017814532, -0.16891596, 0.14684445, 0.0391303, 0.002102956, -0.07517066, 0.11098496, 0.06581342, -0.14621635, 0.15772773, 0.106168136, 0.098250926, 0.12597321, -0.028675884, 0.063359246, 0.16132426) * go_2(0.0, 0.0);
    result += mat4(-0.02959728, 0.07123367, 0.07299489, 0.014731123, -0.017139684, 0.031505708, 0.050989497, 0.010858134, 0.031520355, -0.04066258, 0.064435154, -0.081837505, -0.10959038, 0.046862453, 0.030759295, 0.06302795) * go_2(0.0, 1.0);
    result += mat4(-0.029232508, -0.063871294, 0.04261743, -0.021765925, -0.051165566, 0.08245764, -0.060388993, -0.030220632, -0.018850734, 0.17230928, 0.028899953, 0.093402065, -0.04034553, -0.09680808, 0.053164296, -0.04945091) * go_2(1.0, -1.0);
    result += mat4(-0.14222968, 0.071179725, -0.05626751, 0.030826535, -0.20497178, 0.23688124, -0.012944558, -0.047092658, -0.022926742, 0.062793225, -0.034194358, -0.004130986, -0.24947311, 0.09390664, -0.047846988, -0.04262698) * go_2(1.0, 0.0);
    result += mat4(-0.089844696, 0.05353127, 0.1047918, 0.10651817, 0.01841955, 0.029267816, 0.09288914, 0.049159337, 0.11141062, -0.06493444, 0.084544234, -0.14500283, -0.14425856, -0.09688385, 0.10086001, -0.1031784) * go_2(1.0, 1.0);
    result += mat4(-0.075068034, 0.054907538, -0.05561235, -0.023779817, -0.03260125, 0.18083814, 0.046910446, 0.09240694, -0.07720725, 0.15685509, 0.04930297, 0.098255605, -0.045554668, -0.0028055848, 0.107158065, 0.087896496) * go_3(-1.0, -1.0);
    result += mat4(-0.035308894, 0.1409516, 0.081780136, 0.0045858845, 0.015413542, -0.05709274, 0.07695804, -0.07015399, -0.18072547, 0.05931223, 0.1521085, 0.08119817, -0.034870245, -0.0022475075, 0.06265457, -0.10786606) * go_3(-1.0, 0.0);
    result += mat4(-0.043546084, -0.04235023, 0.015473703, -0.06892842, -0.01743581, -0.04852591, -0.099449754, -0.015578352, -0.08416331, -0.13966691, -0.12968402, -0.05609662, 0.00018884665, -0.07868233, -0.08650141, -0.054413274) * go_3(-1.0, 1.0);
    result += mat4(0.011574507, 0.02319825, -0.02716998, 0.15774268, 0.13405922, -0.029829495, -0.07076622, 0.046702743, 0.10353285, 0.23007378, 0.0474258, 0.12766424, -0.098613836, 0.0038083296, -0.0014142119, -0.118981354) * go_3(0.0, -1.0);
    result += mat4(0.105174474, 0.38004848, -0.07853433, 0.052282844, 0.12509638, 0.071673185, -0.049978934, -0.19038959, 0.24493037, -0.22895396, 0.052312642, -0.0713939, -0.0991077, 0.20241655, -0.2894461, -0.095297694) * go_3(0.0, 0.0);
    result += mat4(0.052787807, -0.04954958, -0.059942912, 0.081637025, 0.055148426, 0.065382, 0.048245437, -0.20134816, 0.16412456, -0.09390551, -0.04890225, 0.036937825, -0.02254699, 0.0033290114, -0.07960711, -0.019033523) * go_3(0.0, 1.0);
    result += mat4(-0.007623016, -0.08622466, -0.003977357, -0.0032922106, -0.043611825, 0.13181941, 0.024928533, -0.067392, 0.104507394, -0.07568277, 0.18976669, -0.1632421, -0.062549, -0.18889137, 0.048727725, -0.113094784) * go_3(1.0, -1.0);
    result += mat4(0.2318713, 0.0945156, 0.12710798, 0.13125664, 0.150075, 0.12771942, 0.050104607, -0.22135235, -0.1856332, -0.23993027, 0.061452776, -0.04559579, -0.13711359, -0.00848112, 0.017278124, -0.023232406) * go_3(1.0, 0.0);
    result += mat4(0.04486916, 0.00012748115, -0.07937425, -0.032867633, 0.030686392, -0.065888256, 0.052165303, -0.02122266, -0.10055607, -0.16972935, 0.08551326, 0.06943511, -0.15514486, -0.14082724, -0.005856006, 0.039357003) * go_3(1.0, 1.0);
    result += vec4(0.043367792, -0.0010999382, -0.09082188, -0.09036971);
    return result;
}
//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-4x3x3x16
//!HOOK MAIN
//!BIND conv2d_2_tf
//!BIND conv2d_2_tf1
//!SAVE conv2d_3_tf1
//!WIDTH conv2d_2_tf.w
//!HEIGHT conv2d_2_tf.h
//!COMPONENTS 4
#define go_0(x_off, y_off) (max((conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_1(x_off, y_off) (max((conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0))
#define go_2(x_off, y_off) (max(-(conv2d_2_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_3(x_off, y_off) (max(-(conv2d_2_tf1_texOff(vec2(x_off, y_off))), 0.0))
vec4 hook() {
    vec4 result = mat4(0.018365785, 0.056635693, 0.027987389, -0.06774126, 0.059250228, 0.008829948, 0.0054535856, 0.11694493, 0.020078717, -0.011992712, 0.037174806, 0.0109760305, 0.071536936, -0.1271089, 0.00582807, -0.035379007) * go_0(-1.0, -1.0);
    result += mat4(0.0719298, 0.052358728, -0.01698708, -0.27655587, -0.00252828, -0.20993611, 0.13032056, 0.052814215, -0.007491474, 0.05919679, -0.012827765, 0.0736076, 0.062072225, -0.08209702, 0.07047629, 0.008228225) * go_0(-1.0, 0.0);
    result += mat4(0.06318285, 0.119213484, -0.03865439, -0.24798301, 0.012478338, -0.099944, 0.022916641, 0.08138396, 0.07087842, -0.016068337, 0.016989013, -0.07799673, 0.046645187, 0.16852292, 0.09248818, -0.121941045) * go_0(-1.0, 1.0);
    result += mat4(0.043351877, 0.009651379, -0.08239731, -0.2181343, -0.04726574, -0.046309136, -0.0067029684, 0.036949635, 0.11031322, -0.011857523, -0.05920429, -0.16113846, -0.07745769, 0.007887075, 0.025049403, 0.23033161) * go_0(0.0, -1.0);
    result += mat4(0.11410022, -0.17562369, 0.16175644, -0.294293, 0.06211042, -0.11473502, 0.03340883, -0.0039381394, -0.06531143, -0.039002866, -0.107858464, 0.029548405, -0.04398086, 0.1865168, -0.09091276, -0.030024884) * go_0(0.0, 0.0);
    result += mat4(0.11863169, 0.3705913, 0.11595667, -0.14338666, -0.00062933913, -0.06311472, 0.14663234, -0.0137533955, 0.04960406, 0.07391353, 0.039575323, -0.17657103, 0.103790075, -0.029589118, 0.02244941, 0.102862775) * go_0(0.0, 1.0);
    result += mat4(0.085088186, 0.14315818, -0.09905407, -0.21927914, 0.09772363, -0.023324043, 0.14425614, 0.115123145, 0.07634221, 0.0030336354, -0.092962086, -0.02129422, 0.017042374, -0.026202, -0.053286806, 0.14434282) * go_0(1.0, -1.0);
    result += mat4(0.06527802, 0.22462176, -0.20712662, -0.1917811, -0.07364259, 0.015908202, -0.13669463, 0.074507296, -0.07444384, -0.01602805, 0.0737073, -0.02053336, 0.0031263786, 0.13550416, 0.059802372, -0.018406197) * go_0(1.0, 0.0);
    result += mat4(0.11984084, 0.10279949, 0.05909351, -0.14254346, 0.08343409, -0.10996522, 0.055658706, 0.09483723, -0.00037302315, -0.1023849, 0.024638308, -0.06035606, 0.009368431, -0.07192455, 0.055757556, 0.11310911) * go_0(1.0, 1.0);
    result += mat4(-0.106970504, 0.00378512, 0.017310042, 0.11180763, -0.015492836, -0.00015024364, 0.034152903, -0.010521848, 0.045124777, -0.07235776, -0.0102385, 0.013651859, -0.043738768, -0.018746193, 0.10842521, 0.047614846) * go_1(-1.0, -1.0);
    result += mat4(-0.21751434, -0.060159717, -0.0437094, 0.05608005, -0.1057904, -0.086132385, 0.034373242, 0.10009911, 0.006123515, 0.07953867, 0.010423554, 0.033484474, 0.005131653, 0.05809073, 0.15556116, 0.07476878) * go_1(-1.0, 0.0);
    result += mat4(-0.13673957, 0.09925296, 0.058989998, -0.13771361, -0.06847178, -0.0952534, 0.07449458, 0.04603009, 0.014882766, -0.03431146, 0.0037722746, -0.028442768, 0.10207739, 0.12722921, 0.07659409, -0.15705611) * go_1(-1.0, 1.0);
    result += mat4(0.033936974, -0.096649006, 0.17983615, -0.15591061, -0.09052182, -0.030537466, -0.054657687, 0.07129416, 0.05881139, -0.08796982, 0.120041266, 0.20572647, -0.005559237, 0.15947166, -0.17152944, -0.3285524) * go_1(0.0, -1.0);
    result += mat4(0.1729126, -0.06308083, 0.006867785, 0.1554229, -0.030760985, 0.17790678, -0.029191574, -0.0752064, 0.04388794, 0.06857963, -0.03737401, -0.1255904, 0.32547247, -0.008966797, -0.22328256, -0.19747403) * go_1(0.0, 0.0);
    result += mat4(-0.16978589, 0.09591529, -0.010301272, 0.17852457, -0.086456954, 0.105396844, 0.021147847, -0.026033312, 0.046762183, -0.0841983, 0.02260958, 0.10423554, -0.03417891, 0.004749418, 0.032336563, 0.15511736) * go_1(0.0, 1.0);
    result += mat4(0.038508814, 0.042908613, -0.035137936, -0.11902896, -0.02223479, -0.00017429345, 0.087418005, 0.1574839, 0.05111329, -0.04597281, -0.0968185, 0.13819316, -0.19214489, -0.06708213, 0.100682124, 0.23275493) * go_1(1.0, -1.0);
    result += mat4(-0.003585873, 0.13163432, 0.12436604, -0.032789636, -0.103133716, 0.044623792, -0.05732702, 0.07641575, 0.021681506, 0.11962758, -0.003224509, -0.012374682, 0.06794041, -0.062758334, 0.0006875955, -0.09876971) * go_1(1.0, 0.0);
    result += mat4(0.04922349, -0.057416447, -0.1244954, 0.03960561, -0.0048592878, -0.13086806, 0.0407464, -0.08549415, 0.028584689, -0.18458742, -0.044534452, 0.10620146, 0.013448987, -0.13193779, 0.11742856, 0.06879233) * go_1(1.0, 1.0);
    result += mat4(0.04239818, -0.0016604724, 0.03374042, -0.107967876, 0.027899148, -0.024791412, -0.05234236, -0.11883906, 0.017895112, -0.04754008, -0.005744556, -0.016562168, 0.041258805, -0.048900403, -0.034146603, -0.062212102) * go_2(-1.0, -1.0);
    result += mat4(-0.030390125, 0.02774086, -0.00019181508, 0.03739864, 0.012506553, -0.0067803487, 0.00587091, -0.050883844, 0.07588692, 0.012330674, -0.053366184, -0.0979771, -0.09252313, -0.038679264, -0.14131838, 0.14069267) * go_2(-1.0, 0.0);
    result += mat4(-0.0011222548, -0.06318413, -0.053742763, 0.12812628, 0.007877803, 0.04037401, -0.008401254, 0.1453836, 0.051213756, -0.19370696, -0.053253576, 0.036631003, -0.1768064, -0.066332504, -0.087460876, 0.12230022) * go_2(-1.0, 1.0);
    result += mat4(-0.0284495, 0.13042223, 0.0015651446, 0.17087978, 0.051884282, -0.033448137, 0.09141178, -0.12461211, 0.17102586, 0.11300558, -0.044399347, -0.08837932, -0.09440944, 0.14919382, -0.18538216, -0.0037018924) * go_2(0.0, -1.0);
    result += mat4(0.017704565, 0.1289248, -0.116331935, -0.017901694, 0.03039263, 0.10348899, -0.19931746, -0.12808663, 0.061957173, 0.25767362, -0.018270707, -0.12901513, -0.14823154, -0.21692185, 0.13080728, 0.16094291) * go_2(0.0, 0.0);
    result += mat4(-0.0076881787, -0.069866724, 0.0015381697, 0.015452623, 0.03610792, 0.112246804, -0.14373404, -0.08820609, -0.09337249, -0.3429672, 0.008870105, 0.32514817, -0.05403618, -0.06635686, 0.14075227, 0.24142979) * go_2(0.0, 1.0);
    result += mat4(-0.012279444, -0.026314212, -0.12416408, -0.075317904, 0.058244277, -0.04223168, 0.12220245, -0.3397781, 0.08845024, 0.040772777, -0.015931146, -0.10965621, -0.07073117, 0.0017085096, -0.05243393, 0.05297493) * go_2(1.0, -1.0);
    result += mat4(-0.010699537, 0.048144013, 0.013379392, -0.08659869, 0.1583042, -0.17162801, 0.101226576, 0.07152354, 0.12641072, 0.14044335, -0.19954208, -0.0063039674, 0.08237099, -0.17798401, 0.07456669, -0.115644924) * go_2(1.0, 0.0);
    result += mat4(0.030852545, -0.08245508, -0.10616119, -0.099587545, 0.095534995, 0.03277007, 0.029916087, 0.025810499, 0.013536943, -0.115019225, -0.08302771, 0.26415688, 0.1036765, -0.049080867, -0.10254558, -0.050596543) * go_2(1.0, 1.0);
    result += mat4(-0.025310325, 0.038376007, 0.07019572, 0.053637907, -0.06981313, 0.022841092, 0.057480395, 0.13475196, -0.010039458, 0.034559198, -0.074906185, 0.016889043, 0.01573766, -0.018776735, -0.020736758, -0.06539893) * go_3(-1.0, -1.0);
    result += mat4(0.086512975, 0.17006655, 0.107877396, -0.12771194, 0.01601117, 0.018367456, 0.049247764, 0.040130366, 0.15309817, -0.059705973, 0.0008964115, 0.07470588, 0.020266797, 0.19596037, -0.22866741, -0.0653838) * go_3(-1.0, 0.0);
    result += mat4(-0.024692819, 0.054435227, 0.06585996, 0.056158487, -0.102186695, -0.14371845, 0.060076084, -0.013986965, 0.043692082, 0.068043366, -0.04594107, -0.06293896, -0.020335956, -0.06268913, -0.06395714, -0.012514665) * go_3(-1.0, 1.0);
    result += mat4(0.046697836, -0.008187645, -0.08881239, -0.21047528, 0.039960902, 0.08431973, -0.009442194, 0.0053251297, 0.13640396, -0.041760333, 0.01793897, -0.017338607, 0.043925084, -0.09181759, 0.12172818, -0.06657766) * go_3(0.0, -1.0);
    result += mat4(-0.10218194, 0.08669389, 0.1582477, -0.12854744, -0.21381377, -0.22898476, 0.16309665, 0.11658842, 0.101608664, -0.056855537, 0.05401942, -0.030335711, -0.20323426, -0.042470008, -0.04552337, -0.003919669) * go_3(0.0, 0.0);
    result += mat4(0.10197622, 0.13790248, 0.06391807, -0.14679092, -0.16883425, 0.022199761, 0.15344559, 0.022598835, -0.03920776, 0.2595217, 0.016427478, -0.46238324, -0.021787262, 0.3999378, -0.09523129, -0.1734398) * go_3(0.0, 1.0);
    result += mat4(-0.14963593, -0.012666624, 0.008798215, 0.108962655, -0.048416525, -0.01233249, -0.088134535, -0.10119655, -0.1512229, -0.022498403, 0.012616117, 0.0050400454, 0.053306054, 0.013757072, -0.17899287, -0.026707372) * go_3(1.0, -1.0);
    result += mat4(-0.006485492, 0.086848, 0.064182825, -0.19033141, -0.014499353, 0.17664601, -0.10398096, 0.11600775, -0.14518072, 0.07205333, 0.02659856, -0.029227281, -0.07299912, 0.060606066, -0.0668552, 0.039262053) * go_3(1.0, 0.0);
    result += mat4(-0.087111704, -0.03343962, 0.1719795, -0.10150684, 0.021731641, -0.1624684, -0.008371406, 0.16211133, -0.04928001, -0.0011312334, 0.17462562, -0.2260615, 0.0020117653, 0.041031644, -0.100837715, 0.0019446685) * go_3(1.0, 1.0);
    result += vec4(-0.054012906, 0.011357599, 0.022775173, -0.008543977);
    return result;
}
//!DESC Anime4K-v4.0-Restore-CNN-Light-(L)-Conv-3x3x3x16
//!HOOK MAIN
//!BIND MAIN
//!BIND conv2d_3_tf
//!BIND conv2d_3_tf1
//!SAVE MAIN
//!WIDTH conv2d_3_tf.w
//!HEIGHT conv2d_3_tf.h
#define go_0(x_off, y_off) (max((conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_1(x_off, y_off) (max((conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0))
#define go_2(x_off, y_off) (max(-(conv2d_3_tf_texOff(vec2(x_off, y_off))), 0.0))
#define go_3(x_off, y_off) (max(-(conv2d_3_tf1_texOff(vec2(x_off, y_off))), 0.0))
vec4 hook() {
    vec4 result = mat4(-0.027446823, 0.015480956, 0.024978671, 0.0, 0.009492665, -0.014989642, -0.021592475, 0.0, -0.0032312495, 0.023923593, 0.02484071, 0.0, 0.012422352, 0.021713857, 0.025667233, 0.0) * go_0(-1.0, -1.0);
    result += mat4(0.12311308, 0.08183103, 0.06746433, 0.0, 0.057164397, -0.018254938, -0.030237408, 0.0, -0.01048612, 0.016734324, 0.024460476, 0.0, -0.0045858826, 0.053524103, 0.061457925, 0.0) * go_0(-1.0, 0.0);
    result += mat4(0.029684702, 0.0027974101, 0.0017736165, 0.0, 0.012598558, -0.026175976, -0.035763424, 0.0, 0.04602441, 0.06188488, 0.067857884, 0.0, -0.04205712, -0.005807686, -0.0036818262, 0.0) * go_0(-1.0, 1.0);
    result += mat4(-0.07758304, -0.039055396, -0.031794816, 0.0, -0.03789667, -0.028441753, -0.029363198, 0.0, 0.031249411, -0.015022652, -0.016605923, 0.0, 0.076818354, 0.033713996, 0.031936634, 0.0) * go_0(0.0, -1.0);
    result += mat4(-0.094431475, -0.18576479, -0.18875112, 0.0, 0.11380822, 0.07997936, 0.07573455, 0.0, -0.20394452, -0.18843266, -0.18413323, 0.0, -0.06208063, -0.0503662, -0.048973672, 0.0) * go_0(0.0, 0.0);
    result += mat4(-0.005080195, -0.026377767, -0.028327197, 0.0, 0.036335666, -0.008359186, -0.01165921, 0.0, 0.009813933, 0.0502395, 0.05498729, 0.0, -0.09884054, -0.029089369, -0.018288353, 0.0) * go_0(0.0, 1.0);
    result += mat4(0.027389664, 0.036220636, 0.039404258, 0.0, -0.009039701, 0.00954236, 0.015111768, 0.0, 0.035014525, -0.007359644, -0.008508985, 0.0, 0.012787102, -0.031248722, -0.036244307, 0.0) * go_0(1.0, -1.0);
    result += mat4(0.095856264, 0.053747043, 0.03935329, 0.0, -0.06526771, -0.014226513, -0.0043449183, 0.0, 0.032720715, 0.07120592, 0.0691468, 0.0, 0.008594679, -0.011399377, -0.015391372, 0.0) * go_0(1.0, 0.0);
    result += mat4(0.031696722, 0.041434575, 0.042331327, 0.0, -0.026618242, -0.009308595, -0.006082988, 0.0, -0.030376343, 0.019672098, 0.020888174, 0.0, 0.007889906, 0.04398408, 0.046942573, 0.0) * go_0(1.0, 1.0);
    result += mat4(-0.067687705, -0.031972304, -0.035391998, 0.0, 0.03161171, -0.012172016, -0.009187467, 0.0, -0.08273219, -0.012533276, -0.013450553, 0.0, -0.0013634394, -0.017583458, -0.016990695, 0.0) * go_1(-1.0, -1.0);
    result += mat4(0.053821027, -0.044256393, -0.05154184, 0.0, -0.0014283431, -0.0053749247, -0.0029650803, 0.0, 0.017598502, 0.071339406, 0.07267949, 0.0, 0.05042889, -0.004350604, -0.011241483, 0.0) * go_1(-1.0, 0.0);
    result += mat4(0.083323844, -0.007076231, -0.014210033, 0.0, -0.0055656726, 0.0036294237, 0.0071962937, 0.0, -0.015160121, -0.025000174, -0.026037684, 0.0, -0.030659223, -0.04783674, -0.04378358, 0.0) * go_1(-1.0, 1.0);
    result += mat4(-0.03697539, 0.05040892, 0.059873745, 0.0, -0.011934452, 0.012441209, 0.0070052454, 0.0, -0.02413624, 0.03353414, 0.030515382, 0.0, 0.01729646, 0.014660608, 0.010080224, 0.0) * go_1(0.0, -1.0);
    result += mat4(-0.082112856, -0.14056805, -0.13998206, 0.0, -0.10171712, -0.018883629, -0.024322048, 0.0, 0.022233076, 0.056945004, 0.061482497, 0.0, 0.086474806, 0.087248504, 0.07979154, 0.0) * go_1(0.0, 0.0);
    result += mat4(0.08545672, -0.013023894, -0.024823532, 0.0, -0.048603658, -5.2223837e-05, 0.0043880795, 0.0, 0.014235624, 0.014501152, 0.010247261, 0.0, -0.12722546, -0.079288736, -0.068653144, 0.0) * go_1(0.0, 1.0);
    result += mat4(-0.012746521, 0.04923936, 0.050673384, 0.0, -0.021141483, 0.017532008, 0.017722001, 0.0, -0.03461523, -0.05052322, -0.03327761, 0.0, -0.026152508, -0.0030442516, -0.011405874, 0.0) * go_1(1.0, -1.0);
    result += mat4(0.042295046, 0.07459282, 0.075747974, 0.0, -0.026194256, 0.028959358, 0.037080046, 0.0, -0.0429621, -0.014827359, -0.0048673726, 0.0, -0.012039111, 0.05228239, 0.05505433, 0.0) * go_1(1.0, 0.0);
    result += mat4(0.013691378, 0.024998715, 0.033314276, 0.0, -0.0040774145, 0.020538067, 0.03289949, 0.0, -0.04331287, -0.024354817, -0.016805895, 0.0, -0.061634906, 0.016174257, 0.032918334, 0.0) * go_1(1.0, 1.0);
    result += mat4(0.036309656, -0.0025671532, -0.0058873137, 0.0, -0.00021040218, 0.03550807, 0.044204578, 0.0, 0.011205288, -0.01191122, -0.008500504, 0.0, 0.028116144, 0.03092762, 0.015054988, 0.0) * go_2(-1.0, -1.0);
    result += mat4(-0.043622844, 0.0032035725, 0.009383631, 0.0, -0.05872068, -0.0059771305, 0.0033955304, 0.0, 0.04055881, -0.011590197, -0.017561652, 0.0, 0.07314536, 0.026969202, 0.0111518465, 0.0) * go_2(-1.0, 0.0);
    result += mat4(-0.02920387, 0.007615008, 0.008545619, 0.0, 0.0019481669, 0.02356058, 0.028398797, 0.0, 0.01299215, -0.004687672, -0.014043777, 0.0, 0.03618494, -0.010858717, -0.012487545, 0.0) * go_2(-1.0, 1.0);
    result += mat4(0.045424536, 0.015271878, 0.011332928, 0.0, 0.03262098, 0.06879299, 0.06677157, 0.0, -0.047707465, -0.008411108, -0.009536846, 0.0, -0.02341842, 0.00079428096, -0.0067220055, 0.0) * go_2(0.0, -1.0);
    result += mat4(-0.07219977, 0.028312154, 0.040263493, 0.0, -0.18076392, -0.16833182, -0.15985635, 0.0, 0.08688884, 0.027772961, 0.029713217, 0.0, 0.030533962, 0.0007754374, 0.0034755205, 0.0) * go_2(0.0, 0.0);
    result += mat4(0.00043551082, 0.017675243, 0.022731617, 0.0, 0.023139693, 0.040268958, 0.038756497, 0.0, -0.0009018418, -0.013531529, -0.014315878, 0.0, 0.020188345, -0.047718555, -0.04955741, 0.0) * go_2(0.0, 1.0);
    result += mat4(0.006277089, -0.012076307, -0.01375468, 0.0, 0.010497306, -0.010667078, -0.012330478, 0.0, -0.00873328, 0.03542282, 0.03371017, 0.0, -0.021816442, 0.009581848, 0.010574142, 0.0) * go_2(1.0, -1.0);
    result += mat4(-0.025197823, 0.026983947, 0.037576202, 0.0, 0.08731438, 0.026805395, 0.014267176, 0.0, -0.012070486, -0.03869262, -0.040370286, 0.0, -0.05934671, -0.02594934, -0.0147215435, 0.0) * go_2(1.0, 0.0);
    result += mat4(-0.017806856, -0.034425024, -0.033865456, 0.0, 0.01875298, 0.007957339, 0.0034370075, 0.0, 0.029184546, 0.002934761, 0.0013058868, 0.0, -0.0037938498, -0.013589367, 0.0001401033, 0.0) * go_2(1.0, 1.0);
    result += mat4(0.051800918, 0.017623285, 0.018787442, 0.0, -0.02531001, -0.010332114, -0.008697563, 0.0, 0.0038738789, 0.01370301, 0.01667722, 0.0, -0.009865196, 0.012254964, 0.018924749, 0.0) * go_3(-1.0, -1.0);
    result += mat4(-0.11382378, -0.053599454, -0.041276414, 0.0, 0.006183193, 0.011189667, 0.0050635478, 0.0, 0.03382837, -0.016763126, -0.01916798, 0.0, -0.0413647, 0.0030488407, 0.00895303, 0.0) * go_3(-1.0, 0.0);
    result += mat4(-0.056702536, 0.014455115, 0.023727283, 0.0, 0.009101698, -0.0015014359, -0.008830026, 0.0, -0.016093068, -0.026151508, -0.028569523, 0.0, -0.012162173, 0.00861688, 0.009360787, 0.0) * go_3(-1.0, 1.0);
    result += mat4(0.054968443, -0.024450222, -0.034345508, 0.0, -0.06314399, -0.10111204, -0.094132446, 0.0, -0.030927159, -0.035802677, -0.040950663, 0.0, -0.009914458, 0.002234521, 0.001724604, 0.0) * go_3(0.0, -1.0);
    result += mat4(0.022633806, 0.032667287, 0.04392391, 0.0, 0.16084842, 0.118454054, 0.107429564, 0.0, 0.12786314, 0.049045473, 0.041819893, 0.0, 0.04110358, 0.0032263063, -0.00035324623, 0.0) * go_3(0.0, 0.0);
    result += mat4(-0.05721206, 0.012003442, 0.022888413, 0.0, 0.0418822, 0.009937634, -0.0002695128, 0.0, 0.030876271, -0.028735299, -0.028016793, 0.0, 0.055110812, 0.017954832, 0.013376778, 0.0) * go_3(0.0, 1.0);
    result += mat4(0.030245563, -0.004563411, -0.011548634, 0.0, -0.0019167186, -0.037195824, -0.034822978, 0.0, 0.013851069, 0.009246424, 0.0098178, 0.0, 0.010259163, -0.009214546, -0.010807817, 0.0) * go_3(1.0, -1.0);
    result += mat4(0.017283956, 0.007628472, -0.004674172, 0.0, 0.016830245, -0.02368545, -0.031228593, 0.0, -0.009841211, -0.053673275, -0.060858946, 0.0, 0.044214632, -0.02702588, -0.03674765, 0.0) * go_3(1.0, 0.0);
    result += mat4(0.013241274, 0.02067889, 0.011102761, 0.0, 0.008591704, -0.016928269, -0.021754708, 0.0, 0.02089359, 0.02608476, 0.014523651, 0.0, 0.027577786, -0.031684186, -0.044099897, 0.0) * go_3(1.0, 1.0);
    result += vec4(-0.0032218588, -0.0002418485, 0.0005031786, 0.0);
    return result + MAIN_tex(MAIN_pos);
}