diff --git a/libtacoma.so b/libtacoma.so index c6389ef..e30a93e 100755 Binary files a/libtacoma.so and b/libtacoma.so differ diff --git a/log_nvprosample.txt b/log_nvprosample.txt index f10d512..304bef3 100644 --- a/log_nvprosample.txt +++ b/log_nvprosample.txt @@ -25,3 +25,30 @@ VK_KHR_acceleration_structure VK_KHR_ray_query BLAS Compaction: 2.6MB -> 0.9MB (1.7MB saved, 66.1% smaller) +_______________ +Vulkan Version: + - available: 1.4.309 + - requesting: 1.3.0 +______________________ +Used Instance Layers : +VK_LAYER_KHRONOS_validation + +Used Instance Extensions : +____________________ +Devices : 1 +0: AMD Radeon RX 6950 XT + - Compatible +Compatible physical devices found : 1 +Using Device: + - Device Name : AMD Radeon RX 6950 XT + - Vendor : AMD + - Driver Version : 2.0.341 + - API Version : 1.4.308 + - Device Type : Discrete GPU +________________________ +Used Device Extensions : +VK_KHR_deferred_host_operations +VK_KHR_acceleration_structure +VK_KHR_ray_query + +BLAS Compaction: 2.6MB -> 0.9MB (1.7MB saved, 66.1% smaller) diff --git a/modules/Tacoma/libtacoma.so b/modules/Tacoma/libtacoma.so index c6389ef..e30a93e 100755 Binary files a/modules/Tacoma/libtacoma.so and b/modules/Tacoma/libtacoma.so differ diff --git a/modules/Tacoma/shaders/raytrace.comp.glsl.spv b/modules/Tacoma/shaders/raytrace.comp.glsl.spv index 1bc3a53..89f1ca8 100644 Binary files a/modules/Tacoma/shaders/raytrace.comp.glsl.spv and b/modules/Tacoma/shaders/raytrace.comp.glsl.spv differ diff --git a/settings.cfg b/settings.cfg index 5f9fce0..1284e45 100644 --- a/settings.cfg +++ b/settings.cfg @@ -1,4 +1,4 @@ master_volume 0.642776 music_volume 0.522385 sfx_volume 1 -fullscreen 1 +fullscreen 0 diff --git a/src/editor/trile_editor.jai b/src/editor/trile_editor.jai index fec0178..fb749a8 100644 --- a/src/editor/trile_editor.jai +++ b/src/editor/trile_editor.jai @@ -304,7 +304,6 @@ draw_material_tab :: (theme: *GR.Overall_Theme, area: GR.Rect) { bottom := area.y + area.h; sliders_h := ui_h(18, 0); - // Toggle: Palette | Color Picker r.h = row_h; half := r.w / 2; r.w = half; @@ -322,7 +321,6 @@ draw_material_tab :: (theme: *GR.Overall_Theme, area: GR.Rect) { if use_color_picker { GR.color_picker(r, *current_color, *theme.color_picker_theme); } else { - // Palette file selector if g_palettes.count > 1 { r.h = row_h; pal_w := r.w / cast(float)g_palettes.count; @@ -350,7 +348,6 @@ draw_material_tab :: (theme: *GR.Overall_Theme, area: GR.Rect) { } r.y += top_h; - // Trile material picker unique_mats : [..]Material; unique_mats.allocator = temp; for x: 0..15 for y: 0..15 for z: 0..15 { @@ -374,11 +371,11 @@ draw_material_tab :: (theme: *GR.Overall_Theme, area: GR.Rect) { array_add(*as_entries, e); } - r.h = bot_h; + r.h = bot_h * 0.75; region2, inside2 := GR.begin_scrollable_region(r, *theme.scrollable_region_theme); end_y2 := draw_swatches(as_entries, inside2, block, *trile_palette_scroll, 10000, theme); GR.end_scrollable_region(region2, inside2.x + inside2.w, end_y2, *trile_palette_scroll); - r.y += bot_h; + r.y += bot_h * 0.75; r.h = ui_h(3, 2); GR.label(r, "Roughness", *t_label_left(theme)); @@ -391,7 +388,7 @@ draw_material_tab :: (theme: *GR.Overall_Theme, area: GR.Rect) { r.y += r.h; GR.label(r, "Emittance", *t_label_left(theme)); r.y += r.h; - GR.slider(r, *emittance, 0, 2, 1, *theme.slider_theme); + GR.slider(r, *emittance, 0, 127, 1, *theme.slider_theme); } diff --git a/src/shaders/jai/shader_trile.jai b/src/shaders/jai/shader_trile.jai index 757794d..df2995a 100644 --- a/src/shaders/jai/shader_trile.jai +++ b/src/shaders/jai/shader_trile.jai @@ -533,32 +533,32 @@ vs_trile_source_glsl430 := u8.[ vec3 vc = v; if ((index / 2) == 0) { - vec3 _1913 = vc; - _1913.z = v.y; - _1913.y = v.z; - vc = _1913; + vec3 _1921 = vc; + _1921.z = v.y; + _1921.y = v.z; + vc = _1921; } if ((index / 2) == 2) { - vec3 _1917 = vc; - _1917.z = v.x; - _1917.x = v.z; - vc = _1917; + vec3 _1925 = vc; + _1925.z = v.x; + _1925.x = v.z; + vc = _1925; } if ((index % 2) == 1) { - vec3 _1921 = vc; - _1921.z = _1921.z * (-1.0); - vc = _1921; + vec3 _1929 = vc; + _1929.z = _1929.z * (-1.0); + vc = _1929; } - vec3 _1924 = vc; - float _601 = _1924.x + off.x; - vec3 _1926 = _1924; - _1926.x = _601; - float _607 = _1924.y + off.y; - _1926.y = _607; - vc = _1926; - vec2 _625 = _1926.xy * (1.0 / ((abs(_601) + abs(_607)) + _1924.z)); + vec3 _1932 = vc; + float _601 = _1932.x + off.x; + vec3 _1934 = _1932; + _1934.x = _601; + float _607 = _1932.y + off.y; + _1934.y = _607; + vc = _1934; + vec2 _625 = _1934.xy * (1.0 / ((abs(_601) + abs(_607)) + _1932.z)); float _628 = _625.x; float _630 = _625.y; return vec2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); @@ -840,40 +840,52 @@ vs_trile_source_glsl430 := u8.[ count++; } int _1355 = int(round(trixel_material.w * 255.0)); - int _1366 = (_1355 >> 5) & 7; - float _1372 = max(float(_1366) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - float _1378 = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; - vec3 _1384 = abs(fnormal.xyz); - float _1386 = _1384.x; - float _1388 = _1384.y; - bool _1389 = _1386 >= _1388; - bool _1397; - if (_1389) + float emittance = 0.0; + int roughnessInt = 0; + float roughness = 0.0500000007450580596923828125; + float metallic = 0.0; + if ((_1355 & 1) != 0) { - _1397 = _1386 >= _1384.z; + emittance = float((_1355 >> 1) & 127) * 0.0078740157186985015869140625; } else { - _1397 = _1389; + int _1375 = (_1355 >> 5) & 7; + roughnessInt = _1375; + roughness = max(float(_1375) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; + } + vec3 _1392 = abs(fnormal.xyz); + float _1394 = _1392.x; + float _1396 = _1392.y; + bool _1397 = _1394 >= _1396; + bool _1405; + if (_1397) + { + _1405 = _1394 >= _1392.z; + } + else + { + _1405 = _1397; } vec3 N; - if (_1397) + if (_1405) { N = vec3(sign(fnormal.x), 0.0, 0.0); } else { - bool _1410 = _1388 >= _1386; - bool _1418; - if (_1410) + bool _1418 = _1396 >= _1394; + bool _1426; + if (_1418) { - _1418 = _1388 >= _1384.z; + _1426 = _1396 >= _1392.z; } else { - _1418 = _1410; + _1426 = _1418; } - if (_1418) + if (_1426) { N = vec3(0.0, sign(fnormal.y), 0.0); } @@ -882,103 +894,101 @@ vs_trile_source_glsl430 := u8.[ N = vec3(0.0, 0.0, sign(fnormal.z)); } } - vec3 _1435 = normalize(cam - vpos); - vec3 _1439 = normalize(_271.sunPosition); - vec3 _1444 = normalize(_1435 + _1439); - vec3 _1451 = vec3(_1378); - vec3 _1452 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, _1451); - float param = max(dot(_1444, _1435), 0.0); - vec3 param_1 = _1452; - vec3 _1461 = fresnelSchlick(param, param_1); + vec3 _1443 = normalize(cam - vpos); + vec3 _1447 = normalize(_271.sunPosition); + vec3 _1452 = normalize(_1443 + _1447); + vec3 _1460 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); + float param = max(dot(_1452, _1443), 0.0); + vec3 param_1 = _1460; + vec3 _1469 = fresnelSchlick(param, param_1); vec3 param_2 = N; - vec3 param_3 = _1444; - float param_4 = _1372; + vec3 param_3 = _1452; + float param_4 = roughness; vec3 param_5 = N; - vec3 param_6 = _1435; - vec3 param_7 = _1439; - float param_8 = _1372; - float _1495 = max(dot(N, _1439), 0.0); - float _1512 = 1.0 - _1378; - vec4 _1528 = _1275.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); - vec3 _1539 = ((_1528.xyz / vec3(_1528.w)) * 0.5) + vec3(0.5); - float _1543 = _1539.z - 0.001000000047497451305389404296875; - vec3 _1898 = _1539; - _1898.z = _1543; - vec3 light = ((((((((vec3(1.0) - _1461) * _1512) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1461 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1435), 0.0)) * _1495) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1898.xy, _1543))) * _1495) * _271.sunLightColor) * _271.sunIntensity; - vec3 _1580 = trileCenter + (N * 0.4900000095367431640625); - ivec3 _1586 = ivec3(mod(floor(trileCenter), vec3(32.0))); - ivec3 param_9 = _1586; - int param_10 = _1366; - vec4 _1612 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), 0.0); - float _1613 = _1612.x; - bool _1623 = _1275.rdm_enabled == 1; - bool _1629; - if (_1623) + vec3 param_6 = _1443; + vec3 param_7 = _1447; + float param_8 = roughness; + float _1503 = max(dot(N, _1447), 0.0); + vec4 _1536 = _1275.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); + vec3 _1547 = ((_1536.xyz / vec3(_1536.w)) * 0.5) + vec3(0.5); + float _1551 = _1547.z - 0.001000000047497451305389404296875; + vec3 _1906 = _1547; + _1906.z = _1551; + vec3 light = ((((((((vec3(1.0) - _1469) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1469 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1443), 0.0)) * _1503) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1906.xy, _1551))) * _1503) * _271.sunLightColor) * _271.sunIntensity; + vec3 _1588 = trileCenter + (N * 0.4900000095367431640625); + ivec3 _1594 = ivec3(mod(floor(trileCenter), vec3(32.0))); + ivec3 param_9 = _1594; + int param_10 = roughnessInt; + vec4 _1620 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), 0.0); + float _1621 = _1620.x; + bool _1631 = _1275.rdm_enabled == 1; + bool _1637; + if (_1631) { - _1629 = rdm_get_atlas_rect(param_9, param_10).z > 0.0; + _1637 = rdm_get_atlas_rect(param_9, param_10).z > 0.0; } else { - _1629 = _1623; + _1637 = _1631; } - if (_1629) + if (_1637) { - float param_11 = max(dot(N, _1435), 0.0); - vec3 param_12 = _1452; - float param_13 = _1372; - vec3 _1642 = FresnelSchlickRoughness(param_11, param_12, param_13); - vec3 _1649 = vpos - _1580; + float param_11 = max(dot(N, _1443), 0.0); + vec3 param_12 = _1460; + float param_13 = roughness; + vec3 _1650 = FresnelSchlickRoughness(param_11, param_12, param_13); + vec3 _1657 = vpos - _1588; vec3 param_14 = N; vec3 param_15 = -cv; - vec3 param_16 = _1580; - vec3 param_17 = _1649; - int param_18 = _1366; - ivec3 param_19 = _1586; - vec3 _1664 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * _1275.rdm_tint; - float _1686 = max(dot(N, _1435), 0.0); - vec4 _1689 = texture(brdf_lut_rdmsmp, vec2(_1686, _1372)); - float _1699 = sin(_1372 * 3.141285419464111328125); - light += (((((mix(_1664, vec3(dot(_1664, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1451) * ((_1642 * _1689.x) + vec3(_1689.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1699))) * (1.0 - (((0.89999997615814208984375 * _1372) * _1699) * pow(1.0 - _1686, 2.0)))) * (1.0 - clamp((_1372 - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + vec3 param_16 = _1588; + vec3 param_17 = _1657; + int param_18 = roughnessInt; + ivec3 param_19 = _1594; + vec3 _1672 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * _1275.rdm_tint; + float _1694 = max(dot(N, _1443), 0.0); + vec4 _1697 = texture(brdf_lut_rdmsmp, vec2(_1694, roughness)); + float _1707 = sin(roughness * 3.141285419464111328125); + light += (((((mix(_1672, vec3(dot(_1672, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)) * ((_1650 * _1697.x) + vec3(_1697.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1707))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1707) * pow(1.0 - _1694, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); vec3 param_20 = N; - vec3 param_21 = _1649; - ivec3 param_22 = _1586; - light += (((((((vec3(1.0) - _1642) * _1512) * (sample_rdm_diff(param_20, param_21, param_22) * _1275.rdm_tint)) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1613) * _1275.rdm_diff_scale); + vec3 param_21 = _1657; + ivec3 param_22 = _1594; + light += (((((((vec3(1.0) - _1650) * (1.0 - metallic)) * (sample_rdm_diff(param_20, param_21, param_22) * _1275.rdm_tint)) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1621) * _1275.rdm_diff_scale); if (_1275.rdm_diff_scale < 0.001000000047497451305389404296875) { - light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1613); + light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1621); } } else { - light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1613); - vec3 _1810 = reflect(-_1435, N); - vec3 R = _1810; - if (_1810.y < 0.0) + light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1621); + vec3 _1818 = reflect(-_1443, N); + vec3 R = _1818; + if (_1818.y < 0.0) { R = reflect(R, vec3(0.0, 1.0, 0.0)); } vec3 param_23 = R; vec3 param_24 = _271.sunPosition; - light += ((_1461 * sky(param_23, param_24)) * 0.100000001490116119384765625); + light += ((_1469 * sky(param_23, param_24)) * 0.100000001490116119384765625); } - frag_color = vec4(mix(_271.deepColor, light + ((trixel_material.xyz * (float((_1355 >> 1) & 3) * 0.3333333432674407958984375)) * _1275.emissive_scale), vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); + frag_color = vec4(mix(_271.deepColor, light + ((trixel_material.xyz * emittance) * _1275.emissive_scale), vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); if (_1275.is_preview == 1) { - vec4 _1853 = frag_color; - vec3 _1857 = mix(_1853.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); - frag_color.x = _1857.x; - frag_color.y = _1857.y; - frag_color.z = _1857.z; + vec4 _1861 = frag_color; + vec3 _1865 = mix(_1861.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); + frag_color.x = _1865.x; + frag_color.y = _1865.y; + frag_color.z = _1865.z; } else { if (_1275.is_preview == 2) { - vec4 _1871 = frag_color; - vec3 _1875 = mix(_1871.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); - frag_color.x = _1875.x; - frag_color.y = _1875.y; - frag_color.z = _1875.z; + vec4 _1879 = frag_color; + vec3 _1883 = mix(_1879.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); + frag_color.x = _1883.x; + frag_color.y = _1883.y; + frag_color.z = _1883.z; } } } @@ -1206,43 +1216,43 @@ fs_trile_source_glsl430 := u8.[ 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x76,0x63,0x20,0x3d,0x20,0x76,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20, 0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x31, - 0x33,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x39,0x31,0x33,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x31,0x33,0x2e,0x79,0x20,0x3d, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32, + 0x31,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x79,0x20,0x3d, 0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63, - 0x20,0x3d,0x20,0x5f,0x31,0x39,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f, 0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39, - 0x31,0x37,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x31,0x37,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x31,0x37,0x2e,0x78,0x20, + 0x32,0x35,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x39,0x32,0x35,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x35,0x2e,0x78,0x20, 0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x31,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20, 0x25,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, - 0x39,0x32,0x31,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32, - 0x31,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31, + 0x39,0x32,0x39,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x5f,0x31,0x39,0x32,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32, + 0x39,0x2e,0x7a,0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x31,0x39,0x32,0x34,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x39,0x33,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31, - 0x39,0x32,0x34,0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x36,0x20,0x3d,0x20, - 0x5f,0x31,0x39,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x36, + 0x39,0x33,0x32,0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x33,0x34,0x20,0x3d,0x20, + 0x5f,0x31,0x39,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x34, 0x2e,0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32, - 0x34,0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x32,0x36,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x36,0x3b, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33, + 0x32,0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x39,0x33,0x34,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x34,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x32,0x35,0x20,0x3d, - 0x20,0x5f,0x31,0x39,0x32,0x36,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30, + 0x20,0x5f,0x31,0x39,0x33,0x34,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30, 0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20,0x2b, 0x20,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31, - 0x39,0x32,0x34,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x39,0x33,0x32,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, 0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x78, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x33,0x30, 0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x72, @@ -1889,360 +1899,377 @@ fs_trile_source_glsl430 := u8.[ 0x74,0x20,0x5f,0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28,0x72,0x6f, 0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72, 0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x36,0x36,0x20,0x3d, - 0x20,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20, - 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33, - 0x37,0x32,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f, - 0x31,0x33,0x36,0x36,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37, - 0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32, - 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32, - 0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x31,0x33,0x37,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28, - 0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36, - 0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x38,0x34,0x20,0x3d, - 0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33, - 0x38,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3d,0x20, - 0x5f,0x31,0x33,0x38,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f, - 0x6c,0x20,0x5f,0x31,0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x20, - 0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x31,0x33,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x38,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x7a,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, - 0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x4e,0x3b,0x0a,0x20, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74, + 0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74, + 0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39, + 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f, + 0x31,0x33,0x35,0x35,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d, + 0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, + 0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31, + 0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31, + 0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34, + 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x37,0x35,0x20,0x3d,0x20,0x28, + 0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33, + 0x37,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34, + 0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37, + 0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31, + 0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74, + 0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f, + 0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20, + 0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37, + 0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, + 0x33,0x39,0x32,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e, + 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33, + 0x39,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f, + 0x31,0x33,0x39,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x30,0x35,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x37,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, - 0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38, - 0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x38,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x30, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20, - 0x5f,0x31,0x33,0x38,0x38,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x34,0x31,0x30,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73, - 0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c, - 0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x31,0x34,0x33,0x35,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, - 0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x33,0x39,0x20,0x3d, - 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x37,0x31,0x2e, - 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x34,0x20,0x3d,0x20,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x33,0x35,0x20,0x2b, - 0x20,0x5f,0x31,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x5f,0x31,0x34,0x35,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x5f, - 0x31,0x33,0x37,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x34,0x35,0x32,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39, - 0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c, - 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, - 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x5f,0x31,0x34,0x35,0x31,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30, + 0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, + 0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x30, + 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20, + 0x5f,0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x34,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34, + 0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34, + 0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31, + 0x33,0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x31, + 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x32,0x36,0x29,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28, + 0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x33,0x20,0x3d,0x20,0x6e,0x6f, + 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70, + 0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, + 0x34,0x34,0x37,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, + 0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35, + 0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31, + 0x34,0x34,0x33,0x20,0x2b,0x20,0x5f,0x31,0x34,0x34,0x37,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x30,0x20,0x3d,0x20,0x6d, + 0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39, + 0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31, + 0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, + 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, - 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x34,0x34,0x2c,0x20,0x5f, - 0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x5f, + 0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20, - 0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x34,0x36,0x31,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53, + 0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x5f,0x31,0x34,0x36,0x39,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53, 0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d, - 0x20,0x5f,0x31,0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37, - 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x33, - 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d, - 0x20,0x5f,0x31,0x33,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x31,0x34,0x39,0x35,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x39,0x29,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35, - 0x31,0x32,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x33,0x37,0x38, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x35,0x32,0x38, - 0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61, - 0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72, - 0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35, - 0x33,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x78,0x79,0x7a, - 0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x77,0x29, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28, - 0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x35,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39,0x2e,0x7a,0x20, - 0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, - 0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32, - 0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x38,0x39,0x38,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x5f,0x31,0x38,0x39,0x38,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35, - 0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67, - 0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63, - 0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x31,0x29,0x20, - 0x2a,0x20,0x5f,0x31,0x35,0x31,0x32,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20, - 0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30, - 0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29, - 0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x31,0x20,0x2a,0x20,0x28,0x44, - 0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d, - 0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20, - 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d, - 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x39,0x35,0x29, - 0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37, - 0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36, - 0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65, - 0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f, - 0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x5f,0x31,0x38,0x39,0x38,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x34,0x33,0x29, - 0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x39,0x35,0x29,0x20,0x2a,0x20,0x5f,0x32, - 0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72, - 0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65, - 0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x35,0x38,0x30,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e, - 0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30, - 0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30, - 0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x35,0x38,0x36,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d,0x6f, - 0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e, - 0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30,0x29, - 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20, - 0x3d,0x20,0x5f,0x31,0x33,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63, - 0x34,0x20,0x5f,0x31,0x36,0x31,0x32,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72, - 0x65,0x28,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73, - 0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67, - 0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c, - 0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20, - 0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63, - 0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x31,0x33,0x20, - 0x3d,0x20,0x5f,0x31,0x36,0x31,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, - 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37, - 0x35,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d, - 0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36, - 0x32,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x32, - 0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x36,0x32,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74, - 0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2e,0x7a, - 0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x32,0x39,0x20,0x3d,0x20,0x5f,0x31,0x36, - 0x32,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x31,0x36,0x32,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, - 0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x32,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36, - 0x34,0x32,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c, - 0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x34,0x39,0x20,0x3d, - 0x20,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20, - 0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f, - 0x31,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31, - 0x36,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36, - 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38, - 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x36,0x36,0x34,0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72, - 0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x36,0x38,0x36,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, - 0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x36, - 0x38,0x39,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x62,0x72,0x64, - 0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65, - 0x63,0x32,0x28,0x5f,0x31,0x36,0x38,0x36,0x2c,0x20,0x5f,0x31,0x33,0x37,0x32,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x31,0x36,0x39,0x39,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x5f,0x31,0x33, - 0x37,0x32,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39, - 0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20, - 0x28,0x28,0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x36,0x34,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x36,0x36,0x34,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32, - 0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30, - 0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32, - 0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32, - 0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39, - 0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x31,0x34,0x35,0x31,0x29, - 0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x34,0x32,0x20,0x2a,0x20,0x5f,0x31,0x36, - 0x38,0x39,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x36, - 0x38,0x39,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e, - 0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20, - 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39, - 0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32, - 0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x39,0x29,0x29,0x29,0x20, - 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39, - 0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39, - 0x38,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x33,0x37,0x32,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x36,0x39,0x39,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e, - 0x30,0x20,0x2d,0x20,0x5f,0x31,0x36,0x38,0x36,0x2c,0x20,0x32,0x2e,0x30,0x29,0x29, - 0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6c,0x61,0x6d, - 0x70,0x28,0x28,0x5f,0x31,0x33,0x37,0x32,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20, - 0x2a,0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30, - 0x34,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d, - 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34, - 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38, - 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28, - 0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x34,0x32,0x29,0x20,0x2a,0x20, - 0x5f,0x31,0x35,0x31,0x32,0x29,0x20,0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65, - 0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x32,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e, - 0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39, - 0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74, + 0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, + 0x5f,0x31,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x37,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x33,0x20, + 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34, + 0x34,0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x34,0x20,0x5f,0x31,0x35,0x33,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37, + 0x35,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76, + 0x65,0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a, + 0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x34,0x37,0x20,0x3d,0x20,0x28,0x28, + 0x5f,0x31,0x35,0x33,0x36,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76,0x65,0x63,0x33, + 0x28,0x5f,0x31,0x35,0x33,0x36,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35, + 0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35,0x31,0x20,0x3d, + 0x20,0x5f,0x31,0x35,0x34,0x37,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33, + 0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x30,0x36,0x20,0x3d, + 0x20,0x5f,0x31,0x35,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x30, + 0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28, + 0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20, + 0x2d,0x20,0x5f,0x31,0x34,0x36,0x39,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20, + 0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x74, 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, - 0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x20,0x2a,0x20,0x5f, - 0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63, - 0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66, - 0x5f,0x73,0x63,0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30, - 0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35, - 0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28, - 0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69, - 0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a, - 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, - 0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20, - 0x28,0x28,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, - 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61, - 0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, - 0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72, - 0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x33, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x38,0x31,0x30,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28, - 0x2d,0x5f,0x31,0x34,0x33,0x35,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38, - 0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x31,0x38,0x31,0x30,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74, - 0x28,0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, - 0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50, - 0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x36, - 0x31,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36, - 0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f, - 0x32,0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c, - 0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, - 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28, - 0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20, - 0x31,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39, - 0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e, - 0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70, - 0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65, - 0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29, - 0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65, - 0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x35,0x33, - 0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x35, - 0x37,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x35,0x33,0x2e,0x78,0x79, - 0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30, - 0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31, - 0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30, - 0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x35,0x37,0x2e,0x78, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x35,0x37,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x35,0x37,0x2e,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, - 0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76, - 0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x37,0x31,0x20,0x3d,0x20,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x37,0x35,0x20, - 0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x37,0x31,0x2e,0x78,0x79,0x7a,0x2c, - 0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30, - 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, - 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33, - 0x31,0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38, - 0x37,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d, - 0x20,0x5f,0x31,0x38,0x37,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38, + 0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36, + 0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x39,0x20, + 0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47, + 0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20, + 0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, + 0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30, + 0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, + 0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31, + 0x35,0x30,0x33,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37, + 0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35, + 0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20, + 0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77, + 0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x5f,0x31,0x39,0x30,0x36,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31, + 0x35,0x35,0x31,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x30,0x33,0x29,0x20, + 0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43, + 0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e, + 0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x38,0x38,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c, + 0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30, + 0x2e,0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33, + 0x31,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x39,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63, + 0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c, + 0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33, + 0x32,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39, + 0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x30,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49, + 0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x36, + 0x32,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x73,0x61, + 0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x76, + 0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64, + 0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35, + 0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46, + 0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f, + 0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x32,0x30,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, + 0x31,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d, + 0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x31,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x33, + 0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61, + 0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e, + 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x36,0x33,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x33,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36, + 0x33,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31, + 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, + 0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x35, + 0x30,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69, + 0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x35,0x37,0x20,0x3d,0x20, + 0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x38,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d, + 0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31, + 0x35,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36, + 0x35,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20, + 0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x37,0x32,0x20,0x3d,0x20,0x73,0x61, + 0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d, + 0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x39,0x34,0x20,0x3d,0x20,0x6d,0x61,0x78, + 0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20, + 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x34,0x20,0x5f,0x31,0x36,0x39,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75, + 0x72,0x65,0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d,0x73, + 0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x36,0x39,0x34,0x2c,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x30,0x37, + 0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36, + 0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28, + 0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x37,0x32,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x36,0x37,0x32,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35, + 0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37, + 0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30, + 0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30, + 0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31, + 0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74, + 0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x35, + 0x30,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x37,0x2e,0x78,0x29,0x20,0x2b,0x20,0x76, + 0x65,0x63,0x33,0x28,0x5f,0x31,0x36,0x39,0x37,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f, + 0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30, + 0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31, + 0x37,0x30,0x37,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20, + 0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35, + 0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x20,0x2a,0x20,0x5f,0x31,0x37,0x30, + 0x37,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f, + 0x31,0x36,0x39,0x34,0x2c,0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a, + 0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34, + 0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20, + 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x35,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, + 0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31, + 0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x35,0x30,0x29,0x20,0x2a,0x20,0x28, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29, + 0x20,0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64, + 0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69, + 0x6e,0x74,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31, + 0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39, + 0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, + 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20, + 0x5f,0x31,0x36,0x32,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72, + 0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37, + 0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65, + 0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34, + 0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34, + 0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69, + 0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e, + 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20, + 0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e, + 0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65, + 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20, + 0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32, + 0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, + 0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72, + 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79, + 0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x31,0x38,0x20, + 0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x34,0x33, + 0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65, + 0x63,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x31,0x38,0x2e, + 0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52, + 0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65, + 0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d, + 0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f, + 0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, + 0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x73,0x6b, + 0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x34,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34, + 0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, + 0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64,0x65, + 0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, + 0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69, + 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e, + 0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x65,0x6d,0x69,0x73, + 0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30, + 0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67, + 0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32, + 0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d, + 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x36,0x31,0x20,0x3d,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x36,0x35,0x20,0x3d,0x20, + 0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x36,0x31,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, + 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, + 0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37, + 0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37,0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a, - 0x0a,0x00, + 0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20, + 0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x34, + 0x20,0x5f,0x31,0x38,0x37,0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x38,0x33,0x20,0x3d,0x20,0x6d,0x69, + 0x78,0x28,0x5f,0x31,0x38,0x37,0x39,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30, + 0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32, + 0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38, + 0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29, + 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, + 0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x78, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38, + 0x38,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d, + 0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es @@ -2641,32 +2668,32 @@ vs_trile_source_glsl300es := u8.[ highp vec3 vc = v; if ((index / 2) == 0) { - highp vec3 _1913 = vc; - _1913.z = v.y; - _1913.y = v.z; - vc = _1913; + highp vec3 _1921 = vc; + _1921.z = v.y; + _1921.y = v.z; + vc = _1921; } if ((index / 2) == 2) { - highp vec3 _1917 = vc; - _1917.z = v.x; - _1917.x = v.z; - vc = _1917; + highp vec3 _1925 = vc; + _1925.z = v.x; + _1925.x = v.z; + vc = _1925; } if ((index % 2) == 1) { - highp vec3 _1921 = vc; - _1921.z = _1921.z * (-1.0); - vc = _1921; + highp vec3 _1929 = vc; + _1929.z = _1929.z * (-1.0); + vc = _1929; } - highp vec3 _1924 = vc; - highp float _601 = _1924.x + off.x; - highp vec3 _1926 = _1924; - _1926.x = _601; - highp float _607 = _1924.y + off.y; - _1926.y = _607; - vc = _1926; - highp vec2 _625 = _1926.xy * (1.0 / ((abs(_601) + abs(_607)) + _1924.z)); + highp vec3 _1932 = vc; + highp float _601 = _1932.x + off.x; + highp vec3 _1934 = _1932; + _1934.x = _601; + highp float _607 = _1932.y + off.y; + _1934.y = _607; + vc = _1934; + highp vec2 _625 = _1934.xy * (1.0 / ((abs(_601) + abs(_607)) + _1932.z)); highp float _628 = _625.x; highp float _630 = _625.y; return vec2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); @@ -2948,40 +2975,52 @@ vs_trile_source_glsl300es := u8.[ count++; } int _1355 = int(round(trixel_material.w * 255.0)); - int _1366 = (_1355 >> 5) & 7; - highp float _1372 = max(float(_1366) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - highp float _1378 = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; - highp vec3 _1384 = abs(fnormal.xyz); - highp float _1386 = _1384.x; - highp float _1388 = _1384.y; - bool _1389 = _1386 >= _1388; - bool _1397; - if (_1389) + highp float emittance = 0.0; + int roughnessInt = 0; + highp float roughness = 0.0500000007450580596923828125; + highp float metallic = 0.0; + if ((_1355 & 1) != 0) { - _1397 = _1386 >= _1384.z; + emittance = float((_1355 >> 1) & 127) * 0.0078740157186985015869140625; } else { - _1397 = _1389; + int _1375 = (_1355 >> 5) & 7; + roughnessInt = _1375; + roughness = max(float(_1375) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; + } + highp vec3 _1392 = abs(fnormal.xyz); + highp float _1394 = _1392.x; + highp float _1396 = _1392.y; + bool _1397 = _1394 >= _1396; + bool _1405; + if (_1397) + { + _1405 = _1394 >= _1392.z; + } + else + { + _1405 = _1397; } highp vec3 N; - if (_1397) + if (_1405) { N = vec3(sign(fnormal.x), 0.0, 0.0); } else { - bool _1410 = _1388 >= _1386; - bool _1418; - if (_1410) + bool _1418 = _1396 >= _1394; + bool _1426; + if (_1418) { - _1418 = _1388 >= _1384.z; + _1426 = _1396 >= _1392.z; } else { - _1418 = _1410; + _1426 = _1418; } - if (_1418) + if (_1426) { N = vec3(0.0, sign(fnormal.y), 0.0); } @@ -2990,103 +3029,101 @@ vs_trile_source_glsl300es := u8.[ N = vec3(0.0, 0.0, sign(fnormal.z)); } } - highp vec3 _1435 = normalize(cam - vpos); - highp vec3 _1439 = normalize(_271.sunPosition); - highp vec3 _1444 = normalize(_1435 + _1439); - highp vec3 _1451 = vec3(_1378); - highp vec3 _1452 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, _1451); - highp float param = max(dot(_1444, _1435), 0.0); - highp vec3 param_1 = _1452; - highp vec3 _1461 = fresnelSchlick(param, param_1); + highp vec3 _1443 = normalize(cam - vpos); + highp vec3 _1447 = normalize(_271.sunPosition); + highp vec3 _1452 = normalize(_1443 + _1447); + highp vec3 _1460 = mix(vec3(0.039999999105930328369140625), trixel_material.xyz, vec3(metallic)); + highp float param = max(dot(_1452, _1443), 0.0); + highp vec3 param_1 = _1460; + highp vec3 _1469 = fresnelSchlick(param, param_1); highp vec3 param_2 = N; - highp vec3 param_3 = _1444; - highp float param_4 = _1372; + highp vec3 param_3 = _1452; + highp float param_4 = roughness; highp vec3 param_5 = N; - highp vec3 param_6 = _1435; - highp vec3 param_7 = _1439; - highp float param_8 = _1372; - highp float _1495 = max(dot(N, _1439), 0.0); - highp float _1512 = 1.0 - _1378; - highp vec4 _1528 = _1275.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); - highp vec3 _1539 = ((_1528.xyz / vec3(_1528.w)) * 0.5) + vec3(0.5); - highp float _1543 = _1539.z - 0.001000000047497451305389404296875; - highp vec3 _1898 = _1539; - _1898.z = _1543; - highp vec3 light = ((((((((vec3(1.0) - _1461) * _1512) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1461 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1435), 0.0)) * _1495) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1898.xy, _1543))) * _1495) * _271.sunLightColor) * _271.sunIntensity; - highp vec3 _1580 = trileCenter + (N * 0.4900000095367431640625); - ivec3 _1586 = ivec3(mod(floor(trileCenter), vec3(32.0))); - ivec3 param_9 = _1586; - int param_10 = _1366; - highp vec4 _1612 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), 0.0); - highp float _1613 = _1612.x; - bool _1623 = _1275.rdm_enabled == 1; - bool _1629; - if (_1623) + highp vec3 param_6 = _1443; + highp vec3 param_7 = _1447; + highp float param_8 = roughness; + highp float _1503 = max(dot(N, _1447), 0.0); + highp vec4 _1536 = _1275.mvp_shadow * vec4(floor(vpos * 16.0) * vec3(0.0625), 1.0); + highp vec3 _1547 = ((_1536.xyz / vec3(_1536.w)) * 0.5) + vec3(0.5); + highp float _1551 = _1547.z - 0.001000000047497451305389404296875; + highp vec3 _1906 = _1547; + _1906.z = _1551; + highp vec3 light = ((((((((vec3(1.0) - _1469) * (1.0 - metallic)) * trixel_material.xyz) * vec3(0.3183410167694091796875)) + ((_1469 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(N, _1443), 0.0)) * _1503) + 9.9999997473787516355514526367188e-05))) * texture(shadowtex_shadowsmp, vec3(_1906.xy, _1551))) * _1503) * _271.sunLightColor) * _271.sunIntensity; + highp vec3 _1588 = trileCenter + (N * 0.4900000095367431640625); + ivec3 _1594 = ivec3(mod(floor(trileCenter), vec3(32.0))); + ivec3 param_9 = _1594; + int param_10 = roughnessInt; + highp vec4 _1620 = texture(ssaotex_trilesmp, vec2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), 0.0); + highp float _1621 = _1620.x; + bool _1631 = _1275.rdm_enabled == 1; + bool _1637; + if (_1631) { - _1629 = rdm_get_atlas_rect(param_9, param_10).z > 0.0; + _1637 = rdm_get_atlas_rect(param_9, param_10).z > 0.0; } else { - _1629 = _1623; + _1637 = _1631; } - if (_1629) + if (_1637) { - highp float param_11 = max(dot(N, _1435), 0.0); - highp vec3 param_12 = _1452; - highp float param_13 = _1372; - highp vec3 _1642 = FresnelSchlickRoughness(param_11, param_12, param_13); - highp vec3 _1649 = vpos - _1580; + highp float param_11 = max(dot(N, _1443), 0.0); + highp vec3 param_12 = _1460; + highp float param_13 = roughness; + highp vec3 _1650 = FresnelSchlickRoughness(param_11, param_12, param_13); + highp vec3 _1657 = vpos - _1588; highp vec3 param_14 = N; highp vec3 param_15 = -cv; - highp vec3 param_16 = _1580; - highp vec3 param_17 = _1649; - int param_18 = _1366; - ivec3 param_19 = _1586; - highp vec3 _1664 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * _1275.rdm_tint; - highp float _1686 = max(dot(N, _1435), 0.0); - highp vec4 _1689 = texture(brdf_lut_rdmsmp, vec2(_1686, _1372)); - highp float _1699 = sin(_1372 * 3.141285419464111328125); - light += (((((mix(_1664, vec3(dot(_1664, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1451) * ((_1642 * _1689.x) + vec3(_1689.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1699))) * (1.0 - (((0.89999997615814208984375 * _1372) * _1699) * pow(1.0 - _1686, 2.0)))) * (1.0 - clamp((_1372 - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + highp vec3 param_16 = _1588; + highp vec3 param_17 = _1657; + int param_18 = roughnessInt; + ivec3 param_19 = _1594; + highp vec3 _1672 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19) * _1275.rdm_tint; + highp float _1694 = max(dot(N, _1443), 0.0); + highp vec4 _1697 = texture(brdf_lut_rdmsmp, vec2(_1694, roughness)); + highp float _1707 = sin(roughness * 3.141285419464111328125); + light += (((((mix(_1672, vec3(dot(_1672, vec3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), vec3(metallic)) * ((_1650 * _1697.x) + vec3(_1697.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1707))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1707) * pow(1.0 - _1694, 2.0)))) * (1.0 - clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); highp vec3 param_20 = N; - highp vec3 param_21 = _1649; - ivec3 param_22 = _1586; - light += (((((((vec3(1.0) - _1642) * _1512) * (sample_rdm_diff(param_20, param_21, param_22) * _1275.rdm_tint)) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1613) * _1275.rdm_diff_scale); + highp vec3 param_21 = _1657; + ivec3 param_22 = _1594; + light += (((((((vec3(1.0) - _1650) * (1.0 - metallic)) * (sample_rdm_diff(param_20, param_21, param_22) * _1275.rdm_tint)) * vec3(0.3183410167694091796875)) * trixel_material.xyz) * _1621) * _1275.rdm_diff_scale); if (_1275.rdm_diff_scale < 0.001000000047497451305389404296875) { - light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1613); + light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1621); } } else { - light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1613); - highp vec3 _1810 = reflect(-_1435, N); - highp vec3 R = _1810; - if (_1810.y < 0.0) + light += (((_1275.ambient_color * _1275.ambient_intensity) * trixel_material.xyz) * _1621); + highp vec3 _1818 = reflect(-_1443, N); + highp vec3 R = _1818; + if (_1818.y < 0.0) { R = reflect(R, vec3(0.0, 1.0, 0.0)); } highp vec3 param_23 = R; highp vec3 param_24 = _271.sunPosition; - light += ((_1461 * sky(param_23, param_24)) * 0.100000001490116119384765625); + light += ((_1469 * sky(param_23, param_24)) * 0.100000001490116119384765625); } - frag_color = vec4(mix(_271.deepColor, light + ((trixel_material.xyz * (float((_1355 >> 1) & 3) * 0.3333333432674407958984375)) * _1275.emissive_scale), vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); + frag_color = vec4(mix(_271.deepColor, light + ((trixel_material.xyz * emittance) * _1275.emissive_scale), vec3(smoothstep(0.0, _271.planeHeight, vpos.y))), 1.0); if (_1275.is_preview == 1) { - highp vec4 _1853 = frag_color; - highp vec3 _1857 = mix(_1853.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); - frag_color.x = _1857.x; - frag_color.y = _1857.y; - frag_color.z = _1857.z; + highp vec4 _1861 = frag_color; + highp vec3 _1865 = mix(_1861.xyz, vec3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), vec3(0.5)); + frag_color.x = _1865.x; + frag_color.y = _1865.y; + frag_color.z = _1865.z; } else { if (_1275.is_preview == 2) { - highp vec4 _1871 = frag_color; - highp vec3 _1875 = mix(_1871.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); - frag_color.x = _1875.x; - frag_color.y = _1875.y; - frag_color.z = _1875.z; + highp vec4 _1879 = frag_color; + highp vec3 _1883 = mix(_1879.xyz, vec3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), vec3(0.5)); + frag_color.x = _1883.x; + frag_color.y = _1883.y; + frag_color.z = _1883.z; } } } @@ -3327,44 +3364,44 @@ fs_trile_source_glsl300es := u8.[ 0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d, 0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39, - 0x31,0x33,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x31,0x33,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x31,0x33,0x2e,0x79,0x20, + 0x32,0x31,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x76,0x2e,0x79,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x79,0x20, 0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x31,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20, 0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x31,0x37,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x31,0x37,0x2e,0x7a,0x20, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x35,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x35,0x2e,0x7a,0x20, 0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x39,0x31,0x37,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x31,0x37, + 0x31,0x39,0x32,0x35,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x35, 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x25,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x31, 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x31, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x39, 0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f, - 0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a, + 0x31,0x39,0x32,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39,0x2e,0x7a, 0x20,0x2a,0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x34,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, + 0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x33,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x34,0x2e,0x78,0x20,0x2b, + 0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x32,0x2e,0x78,0x20,0x2b, 0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x36,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x36,0x2e, + 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x33,0x34,0x20,0x3d,0x20,0x5f, + 0x31,0x39,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x34,0x2e, 0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d, - 0x20,0x5f,0x31,0x39,0x32,0x34,0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x36,0x2e,0x79,0x20,0x3d,0x20, + 0x20,0x5f,0x31,0x39,0x33,0x32,0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x34,0x2e,0x79,0x20,0x3d,0x20, 0x5f,0x36,0x30,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32, - 0x36,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x28,0x28, + 0x31,0x39,0x33,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x32,0x20,0x5f,0x36,0x32,0x35,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33, + 0x34,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2f,0x20,0x28,0x28, 0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20,0x2b,0x20,0x61,0x62,0x73,0x28, - 0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x32,0x34,0x2e,0x7a, + 0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x33,0x32,0x2e,0x7a, 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e, 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, @@ -4053,221 +4090,239 @@ fs_trile_source_glsl300es := u8.[ 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x69, 0x6e,0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, 0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35, - 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31, - 0x33,0x36,0x36,0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20, - 0x35,0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x32,0x20,0x3d,0x20, - 0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x36,0x36,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34, - 0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c, - 0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30, - 0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x31,0x33,0x37,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33, - 0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32, - 0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x33,0x38,0x34,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x36,0x20, - 0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x38, - 0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x38,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x37,0x20, - 0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34, - 0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x39,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, - 0x76,0x65,0x63,0x33,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20, + 0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30, + 0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35, + 0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74, + 0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x69,0x66,0x20,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x26,0x20,0x31,0x29, + 0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e, + 0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30, + 0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30, + 0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31, + 0x33,0x37,0x35,0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20, + 0x35,0x29,0x20,0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f, + 0x31,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c, + 0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31, + 0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39, + 0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36, + 0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x33, + 0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33, + 0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38, + 0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x33,0x39,0x32, + 0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33, + 0x39,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3d,0x20,0x5f,0x31, + 0x33,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, + 0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3e,0x3d, + 0x20,0x5f,0x31,0x33,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x34,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, 0x5f,0x31,0x33,0x39,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x69, - 0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31, - 0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, - 0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, - 0x20,0x5f,0x31,0x34,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3e, - 0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20, - 0x5f,0x31,0x34,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34, - 0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73, - 0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33, + 0x39,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30, + 0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x5f,0x31,0x34,0x33,0x35,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, - 0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20, + 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x30,0x35, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f, + 0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x34,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x32, + 0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x32, + 0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, + 0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x5f,0x31,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x31,0x38, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x32,0x36,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e, + 0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x66, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x33, + 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d, + 0x20,0x2d,0x20,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x34,0x37,0x20,0x3d, + 0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x37,0x31,0x2e, + 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34, + 0x35,0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f, + 0x31,0x34,0x34,0x33,0x20,0x2b,0x20,0x5f,0x31,0x34,0x34,0x37,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31, - 0x34,0x33,0x39,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, - 0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x5f,0x31,0x34,0x34,0x34,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x69,0x7a,0x65,0x28,0x5f,0x31,0x34,0x33,0x35,0x20,0x2b,0x20,0x5f,0x31,0x34,0x33, - 0x39,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x5f,0x31,0x34,0x35,0x31,0x20,0x3d,0x20,0x76,0x65,0x63,0x33,0x28, - 0x5f,0x31,0x33,0x37,0x38,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x35,0x32,0x20,0x3d,0x20,0x6d, - 0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39, - 0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31, - 0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, - 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x5f,0x31,0x34, - 0x35,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, + 0x34,0x36,0x30,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30, + 0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, + 0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78, - 0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x34,0x34,0x2c,0x20,0x5f,0x31,0x34,0x33, - 0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x5f,0x31,0x34,0x34, + 0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x31,0x20,0x3d, + 0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x34,0x36,0x39,0x20,0x3d, 0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28, 0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x34,0x3b,0x0a,0x20,0x20,0x20, + 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x32,0x3b,0x0a,0x20,0x20, + 0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36, - 0x20,0x3d,0x20,0x5f,0x31,0x34,0x33,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, - 0x20,0x3d,0x20,0x5f,0x31,0x34,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x34,0x39,0x35, - 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, - 0x34,0x33,0x39,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x31, - 0x32,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x33,0x37,0x38,0x3b, + 0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x33,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x37,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73, + 0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x33,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64, + 0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x34,0x37,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x34,0x20,0x5f,0x31,0x35,0x33,0x36,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35, + 0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65, + 0x63,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20, + 0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30, + 0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x34,0x37, + 0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x33,0x36,0x2e,0x78,0x79,0x7a,0x20,0x2f, + 0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x35,0x33,0x36,0x2e,0x77,0x29,0x29,0x20, + 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35,0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34, + 0x37,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, + 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, + 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x30,0x36,0x20, + 0x3d,0x20,0x5f,0x31,0x35,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39, + 0x30,0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x31,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67, + 0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63, + 0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x39,0x29,0x20, + 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, + 0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, + 0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63, + 0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39, + 0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28, + 0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69, + 0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53, + 0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63, + 0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f, + 0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x30,0x33,0x29,0x20,0x2b,0x20,0x39,0x2e, + 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36, + 0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65, + 0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65, + 0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61,0x64,0x6f, + 0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x39,0x30,0x36, + 0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x35,0x31,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x5f,0x31,0x35,0x30,0x33,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75, + 0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f, + 0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x35,0x38,0x38,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65,0x43,0x65, + 0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39, + 0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34, + 0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x31,0x35,0x39,0x34,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33,0x28,0x6d, + 0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65,0x43,0x65, + 0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32,0x2e,0x30, + 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30, + 0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, - 0x5f,0x31,0x35,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x6d,0x76, - 0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x76,0x65,0x63,0x34,0x28, - 0x66,0x6c,0x6f,0x6f,0x72,0x28,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e, - 0x30,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35, - 0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x35,0x33,0x39,0x20,0x3d,0x20, - 0x28,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x76,0x65, - 0x63,0x33,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x20,0x5f,0x31,0x35,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x35,0x33,0x39,0x2e,0x7a, - 0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34, - 0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34, - 0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x39,0x38,0x20,0x3d,0x20,0x5f, - 0x31,0x35,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x38,0x39,0x38,0x2e, - 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, - 0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31, - 0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x31,0x29,0x20,0x2a,0x20,0x5f, - 0x31,0x35,0x31,0x32,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, - 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37, - 0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b, - 0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x31,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74, - 0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, - 0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76, - 0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28, - 0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30, - 0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x39,0x35,0x29,0x20,0x2b,0x20, - 0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35, - 0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38, - 0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x74,0x65,0x78,0x74,0x75, - 0x72,0x65,0x28,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x5f,0x73,0x68,0x61, - 0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x38, - 0x39,0x38,0x2e,0x78,0x79,0x2c,0x20,0x5f,0x31,0x35,0x34,0x33,0x29,0x29,0x29,0x20, - 0x2a,0x20,0x5f,0x31,0x34,0x39,0x35,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e, - 0x73,0x75,0x6e,0x4c,0x69,0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a, - 0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69, - 0x74,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x5f,0x31,0x35,0x38,0x30,0x20,0x3d,0x20,0x74,0x72,0x69,0x6c,0x65, - 0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e, - 0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31, - 0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65, - 0x63,0x33,0x20,0x5f,0x31,0x35,0x38,0x36,0x20,0x3d,0x20,0x69,0x76,0x65,0x63,0x33, - 0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x74,0x72,0x69,0x6c,0x65, - 0x43,0x65,0x6e,0x74,0x65,0x72,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x33,0x32, - 0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x30,0x20,0x3d,0x20,0x5f,0x31,0x33,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x36,0x31,0x32, - 0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28,0x73,0x73,0x61,0x6f,0x74, - 0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63, - 0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78, - 0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73, - 0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61, - 0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x31,0x33,0x20,0x3d, - 0x20,0x5f,0x31,0x36,0x31,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x31,0x36,0x32,0x33,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20, - 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x32, - 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x32,0x33, - 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x36,0x32,0x39,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f, - 0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x29,0x2e,0x7a,0x20, - 0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x32,0x39,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32, - 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20, - 0x28,0x5f,0x31,0x36,0x32,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x6d,0x61,0x78, - 0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x5f,0x31,0x36,0x32,0x30,0x20,0x3d,0x20,0x74,0x65,0x78,0x74,0x75,0x72,0x65,0x28, + 0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x5f,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, + 0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f, + 0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31, + 0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67, + 0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65, + 0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, + 0x36,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x30,0x2e,0x78,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33,0x31,0x20,0x3d,0x20, + 0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65, + 0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x36,0x33,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x5f,0x31,0x36,0x33,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x33,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d, + 0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, + 0x30,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x33,0x37,0x20,0x3d, + 0x20,0x5f,0x31,0x36,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x37,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20, + 0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34, + 0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36, + 0x35,0x30,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c, + 0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x31,0x36,0x35,0x37,0x20,0x3d,0x20,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31, + 0x35,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34, + 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x32,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x34,0x32,0x20,0x3d,0x20,0x46,0x72,0x65,0x73, - 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e, - 0x65,0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, - 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x34,0x39,0x20,0x3d,0x20,0x76,0x70, - 0x6f,0x73,0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31, - 0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37, - 0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d, - 0x20,0x5f,0x31,0x33,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x35,0x20,0x3d,0x20,0x2d,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x38,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x35, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d, - 0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x36,0x34, + 0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x36,0x37,0x32, 0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61, 0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, @@ -4275,158 +4330,158 @@ fs_trile_source_glsl300es := u8.[ 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37, 0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x36,0x38,0x36,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, - 0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, + 0x5f,0x31,0x36,0x39,0x34,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, + 0x4e,0x2c,0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, - 0x65,0x63,0x34,0x20,0x5f,0x31,0x36,0x38,0x39,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, + 0x65,0x63,0x34,0x20,0x5f,0x31,0x36,0x39,0x37,0x20,0x3d,0x20,0x74,0x65,0x78,0x74, 0x75,0x72,0x65,0x28,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x5f,0x72,0x64,0x6d, - 0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x36,0x38,0x36,0x2c, - 0x20,0x5f,0x31,0x33,0x37,0x32,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, - 0x36,0x39,0x39,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x5f,0x31,0x33,0x37,0x32,0x20, - 0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34, - 0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28, - 0x28,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x36,0x34,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x36,0x36,0x34,0x2c,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32, - 0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31, - 0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39, - 0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30, - 0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38, - 0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x31,0x34,0x35,0x31,0x29,0x20,0x2a,0x20, - 0x28,0x28,0x5f,0x31,0x36,0x34,0x32,0x20,0x2a,0x20,0x5f,0x31,0x36,0x38,0x39,0x2e, - 0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x36,0x38,0x39,0x2e, - 0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d, - 0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28, - 0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39, - 0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37, - 0x35,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x39,0x29,0x29,0x29,0x20,0x2a,0x20,0x28, - 0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39, - 0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33, - 0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x33,0x37,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31, - 0x36,0x39,0x39,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28,0x31,0x2e,0x30,0x20,0x2d, - 0x20,0x5f,0x31,0x36,0x38,0x36,0x2c,0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x29,0x20, - 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28, - 0x5f,0x31,0x33,0x37,0x32,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33, - 0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33, - 0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x30,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28, - 0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20, - 0x5f,0x31,0x36,0x34,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35,0x31,0x32,0x29,0x20, - 0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69, - 0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x29, - 0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e, - 0x74,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38, - 0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36, - 0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, - 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f, - 0x31,0x36,0x31,0x33,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64, - 0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x20, - 0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37, - 0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32, - 0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67, - 0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61, - 0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f, - 0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74, - 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, - 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32,0x37, - 0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, - 0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f, - 0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69, - 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, - 0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, - 0x31,0x38,0x31,0x30,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d, - 0x5f,0x31,0x34,0x33,0x35,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x52,0x20, - 0x3d,0x20,0x5f,0x31,0x38,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x31,0x30,0x2e,0x79,0x20,0x3c,0x20,0x30, - 0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65, - 0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, - 0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e, - 0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34, - 0x36,0x31,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29,0x29,0x20,0x2a,0x20, - 0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31, - 0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6d,0x69,0x78,0x28, - 0x5f,0x32,0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x2c,0x20, - 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c, - 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e, - 0x20,0x31,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38, - 0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29, - 0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65, - 0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e, - 0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76,0x70,0x6f,0x73,0x2e,0x79,0x29, - 0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69, - 0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x73,0x6d,0x70,0x2c,0x20,0x76,0x65,0x63,0x32,0x28,0x5f,0x31,0x36,0x39,0x34,0x2c, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x5f,0x31,0x37,0x30,0x37,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x32, + 0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32, + 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68, + 0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31, + 0x36,0x37,0x32,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31, + 0x36,0x37,0x32,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35, + 0x39,0x39,0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31, + 0x32,0x35,0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39, + 0x36,0x31,0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20, + 0x30,0x2e,0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30, + 0x32,0x32,0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x76, + 0x65,0x63,0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a, + 0x20,0x28,0x28,0x5f,0x31,0x36,0x35,0x30,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x37, + 0x2e,0x78,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x5f,0x31,0x36,0x39,0x37, + 0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64, + 0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39, + 0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38, + 0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x37,0x30,0x37,0x29,0x29,0x29,0x20,0x2a,0x20, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39, + 0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34, + 0x33,0x37,0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29, + 0x20,0x2a,0x20,0x5f,0x31,0x37,0x30,0x37,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x28, + 0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x36,0x39,0x34,0x2c,0x20,0x32,0x2e,0x30, + 0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x63,0x6c, + 0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2d, + 0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33,0x33,0x33,0x33,0x33,0x33, + 0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35, + 0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x34,0x20,0x5f,0x31,0x38,0x35,0x33,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63, - 0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x35,0x37,0x20,0x3d, - 0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x35,0x33,0x2e,0x78,0x79,0x7a,0x2c,0x20, - 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, - 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, - 0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30, - 0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x35,0x37,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x35,0x37,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x35,0x37,0x2e,0x7a,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77, - 0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x37,0x31,0x20,0x3d,0x20, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, - 0x63,0x33,0x20,0x5f,0x31,0x38,0x37,0x35,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f, - 0x31,0x38,0x37,0x31,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, - 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33, - 0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37,0x35,0x2e,0x78,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37,0x35,0x2e, - 0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31, - 0x38,0x37,0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31, + 0x36,0x35,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31, + 0x35,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67, + 0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63, + 0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x35,0x30,0x29,0x20, + 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, + 0x63,0x29,0x29,0x20,0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64, + 0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x32,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d, + 0x5f,0x74,0x69,0x6e,0x74,0x29,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30, + 0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39, + 0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78, + 0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29, + 0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37, + 0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, + 0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63, + 0x61,0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39, + 0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x5f,0x31,0x32, + 0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, + 0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72, + 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79, + 0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28, + 0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69, + 0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a, + 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c, + 0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x5f,0x31,0x38,0x31,0x38,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65, + 0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x34,0x33,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x31,0x38,0x2e,0x79, + 0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52,0x20, + 0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x5f,0x32,0x37,0x31, + 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28, + 0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x29, + 0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34, + 0x39,0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32, + 0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, + 0x6d,0x69,0x78,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c, + 0x6f,0x72,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74,0x72, + 0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79, + 0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f, + 0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x73,0x6d,0x6f, + 0x6f,0x74,0x68,0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37, + 0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x76, + 0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73, + 0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31,0x38,0x36,0x31,0x20,0x3d,0x20, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, + 0x31,0x38,0x36,0x35,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x36,0x31, + 0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x30,0x30, + 0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30, + 0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39, + 0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37, + 0x35,0x2c,0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36, + 0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36, + 0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36, + 0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, + 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70, + 0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x31, + 0x38,0x37,0x39,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x38,0x33,0x20,0x3d, + 0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x37,0x39,0x2e,0x78,0x79,0x7a,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30, + 0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37, + 0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30, + 0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31, + 0x32,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38, + 0x33,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20, + 0x5f,0x31,0x38,0x38,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, + 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a, + 0x00, ]; /* #pragma clang diagnostic ignored "-Wmissing-prototypes" @@ -4916,32 +4971,32 @@ vs_trile_source_metal_macos := u8.[ float3 vc = v; if ((index / 2) == 0) { - float3 _1913 = vc; - _1913.z = v.y; - _1913.y = v.z; - vc = _1913; + float3 _1921 = vc; + _1921.z = v.y; + _1921.y = v.z; + vc = _1921; } if ((index / 2) == 2) { - float3 _1917 = vc; - _1917.z = v.x; - _1917.x = v.z; - vc = _1917; + float3 _1925 = vc; + _1925.z = v.x; + _1925.x = v.z; + vc = _1925; } if ((index % 2) == 1) { - float3 _1921 = vc; - _1921.z = _1921.z * (-1.0); - vc = _1921; + float3 _1929 = vc; + _1929.z = _1929.z * (-1.0); + vc = _1929; } - float3 _1924 = vc; - float _601 = _1924.x + off.x; - float3 _1926 = _1924; - _1926.x = _601; - float _607 = _1924.y + off.y; - _1926.y = _607; - vc = _1926; - float2 _625 = _1926.xy * (1.0 / ((abs(_601) + abs(_607)) + _1924.z)); + float3 _1932 = vc; + float _601 = _1932.x + off.x; + float3 _1934 = _1932; + _1934.x = _601; + float _607 = _1932.y + off.y; + _1934.y = _607; + vc = _1934; + float2 _625 = _1934.xy * (1.0 / ((abs(_601) + abs(_607)) + _1932.z)); float _628 = _625.x; float _630 = _625.y; return float2(((_628 + _630) + 1.0) * 0.5, ((_628 - _630) + 1.0) * 0.5); @@ -5233,40 +5288,52 @@ vs_trile_source_metal_macos := u8.[ count++; } int _1355 = int(round(trixel_material.w * 255.0)); - int _1366 = (_1355 >> 5) & 7; - float _1372 = fast::max(float(_1366) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - float _1378 = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; - float3 _1384 = abs(in.fnormal.xyz); - float _1386 = _1384.x; - float _1388 = _1384.y; - bool _1389 = _1386 >= _1388; - bool _1397; - if (_1389) + float emittance = 0.0; + int roughnessInt = 0; + float roughness = 0.0500000007450580596923828125; + float metallic = 0.0; + if ((_1355 & 1) != 0) { - _1397 = _1386 >= _1384.z; + emittance = float((_1355 >> 1) & 127) * 0.0078740157186985015869140625; } else { - _1397 = _1389; + int _1375 = (_1355 >> 5) & 7; + roughnessInt = _1375; + roughness = fast::max(float(_1375) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_1355 >> 3) & 3) * 0.3333333432674407958984375; + } + float3 _1392 = abs(in.fnormal.xyz); + float _1394 = _1392.x; + float _1396 = _1392.y; + bool _1397 = _1394 >= _1396; + bool _1405; + if (_1397) + { + _1405 = _1394 >= _1392.z; + } + else + { + _1405 = _1397; } float3 N; - if (_1397) + if (_1405) { N = float3(sign(in.fnormal.x), 0.0, 0.0); } else { - bool _1410 = _1388 >= _1386; - bool _1418; - if (_1410) + bool _1418 = _1396 >= _1394; + bool _1426; + if (_1418) { - _1418 = _1388 >= _1384.z; + _1426 = _1396 >= _1392.z; } else { - _1418 = _1410; + _1426 = _1418; } - if (_1418) + if (_1426) { N = float3(0.0, sign(in.fnormal.y), 0.0); } @@ -5275,103 +5342,101 @@ vs_trile_source_metal_macos := u8.[ N = float3(0.0, 0.0, sign(in.fnormal.z)); } } - float3 _1435 = fast::normalize(in.cam - in.vpos); - float3 _1439 = fast::normalize(float3(_271.sunPosition)); - float3 _1444 = fast::normalize(_1435 + _1439); - float3 _1451 = float3(_1378); - float3 _1452 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, _1451); - float param = fast::max(dot(_1444, _1435), 0.0); - float3 param_1 = _1452; - float3 _1461 = fresnelSchlick(param, param_1); + float3 _1443 = fast::normalize(in.cam - in.vpos); + float3 _1447 = fast::normalize(float3(_271.sunPosition)); + float3 _1452 = fast::normalize(_1443 + _1447); + float3 _1460 = mix(float3(0.039999999105930328369140625), trixel_material.xyz, float3(metallic)); + float param = fast::max(dot(_1452, _1443), 0.0); + float3 param_1 = _1460; + float3 _1469 = fresnelSchlick(param, param_1); float3 param_2 = N; - float3 param_3 = _1444; - float param_4 = _1372; + float3 param_3 = _1452; + float param_4 = roughness; float3 param_5 = N; - float3 param_6 = _1435; - float3 param_7 = _1439; - float param_8 = _1372; - float _1495 = fast::max(dot(N, _1439), 0.0); - float _1512 = 1.0 - _1378; - float4 _1528 = _1275.mvp_shadow * float4(floor(in.vpos * 16.0) * float3(0.0625), 1.0); - float3 _1539 = ((_1528.xyz / float3(_1528.w)) * 0.5) + float3(0.5); - float _1543 = _1539.z - 0.001000000047497451305389404296875; - float3 _1898 = _1539; - _1898.z = _1543; - float3 light = ((((((((float3(1.0) - _1461) * _1512) * trixel_material.xyz) * float3(0.3183410167694091796875)) + ((_1461 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(N, _1435), 0.0)) * _1495) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _1898.xy, _1543)) * _1495) * _271.sunLightColor) * _271.sunIntensity; - float3 _1580 = in.trileCenter + (N * 0.4900000095367431640625); - int3 _1586 = int3(mod(floor(in.trileCenter), float3(32.0))); - int3 param_9 = _1586; - int param_10 = _1366; - float4 _1612 = ssaotex.sample(trilesmp, float2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), bias(0.0)); - float _1613 = _1612.x; - bool _1623 = _1275.rdm_enabled == 1; - bool _1629; - if (_1623) + float3 param_6 = _1443; + float3 param_7 = _1447; + float param_8 = roughness; + float _1503 = fast::max(dot(N, _1447), 0.0); + float4 _1536 = _1275.mvp_shadow * float4(floor(in.vpos * 16.0) * float3(0.0625), 1.0); + float3 _1547 = ((_1536.xyz / float3(_1536.w)) * 0.5) + float3(0.5); + float _1551 = _1547.z - 0.001000000047497451305389404296875; + float3 _1906 = _1547; + _1906.z = _1551; + float3 light = ((((((((float3(1.0) - _1469) * (1.0 - metallic)) * trixel_material.xyz) * float3(0.3183410167694091796875)) + ((_1469 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(N, _1443), 0.0)) * _1503) + 9.9999997473787516355514526367188e-05))) * shadowtex.sample_compare(shadowsmp, _1906.xy, _1551)) * _1503) * _271.sunLightColor) * _271.sunIntensity; + float3 _1588 = in.trileCenter + (N * 0.4900000095367431640625); + int3 _1594 = int3(mod(floor(in.trileCenter), float3(32.0))); + int3 param_9 = _1594; + int param_10 = roughnessInt; + float4 _1620 = ssaotex.sample(trilesmp, float2(gl_FragCoord.x / float(_1275.screen_w), gl_FragCoord.y / float(_1275.screen_h)), bias(0.0)); + float _1621 = _1620.x; + bool _1631 = _1275.rdm_enabled == 1; + bool _1637; + if (_1631) { - _1629 = rdm_get_atlas_rect(param_9, param_10, rdm_lookup, trilesmp).z > 0.0; + _1637 = rdm_get_atlas_rect(param_9, param_10, rdm_lookup, trilesmp).z > 0.0; } else { - _1629 = _1623; + _1637 = _1631; } - if (_1629) + if (_1637) { - float param_11 = fast::max(dot(N, _1435), 0.0); - float3 param_12 = _1452; - float param_13 = _1372; - float3 _1642 = FresnelSchlickRoughness(param_11, param_12, param_13); - float3 _1649 = in.vpos - _1580; + float param_11 = fast::max(dot(N, _1443), 0.0); + float3 param_12 = _1460; + float param_13 = roughness; + float3 _1650 = FresnelSchlickRoughness(param_11, param_12, param_13); + float3 _1657 = in.vpos - _1588; float3 param_14 = N; float3 param_15 = -in.cv; - float3 param_16 = _1580; - float3 param_17 = _1649; - int param_18 = _1366; - int3 param_19 = _1586; - float3 _1664 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19, _271, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * _1275.rdm_tint; - float _1686 = fast::max(dot(N, _1435), 0.0); - float4 _1689 = brdf_lut.sample(rdmsmp, float2(_1686, _1372)); - float _1699 = sin(_1372 * 3.141285419464111328125); - light += (((((mix(_1664, float3(dot(_1664, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), _1451) * ((_1642 * _1689.x) + float3(_1689.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1699))) * (1.0 - (((0.89999997615814208984375 * _1372) * _1699) * powr(1.0 - _1686, 2.0)))) * (1.0 - fast::clamp((_1372 - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); + float3 param_16 = _1588; + float3 param_17 = _1657; + int param_18 = roughnessInt; + int3 param_19 = _1594; + float3 _1672 = sample_rdm(param_14, param_15, param_16, param_17, param_18, param_19, _271, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * _1275.rdm_tint; + float _1694 = fast::max(dot(N, _1443), 0.0); + float4 _1697 = brdf_lut.sample(rdmsmp, float2(_1694, roughness)); + float _1707 = sin(roughness * 3.141285419464111328125); + light += (((((mix(_1672, float3(dot(_1672, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875))), float3(metallic)) * ((_1650 * _1697.x) + float3(_1697.y))) * _1275.rdm_spec_scale) * (1.0 - (0.699999988079071044921875 * _1707))) * (1.0 - (((0.89999997615814208984375 * roughness) * _1707) * powr(1.0 - _1694, 2.0)))) * (1.0 - fast::clamp((roughness - 0.5) * 3.3333332538604736328125, 0.0, 1.0))); float3 param_20 = N; - float3 param_21 = _1649; - int3 param_22 = _1586; - light += (((((((float3(1.0) - _1642) * _1512) * (sample_rdm_diff(param_20, param_21, param_22, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * _1275.rdm_tint)) * float3(0.3183410167694091796875)) * trixel_material.xyz) * _1613) * _1275.rdm_diff_scale); + float3 param_21 = _1657; + int3 param_22 = _1594; + light += (((((((float3(1.0) - _1650) * (1.0 - metallic)) * (sample_rdm_diff(param_20, param_21, param_22, rdm_lookup, trilesmp, rdm_atlas, rdmsmp) * _1275.rdm_tint)) * float3(0.3183410167694091796875)) * trixel_material.xyz) * _1621) * _1275.rdm_diff_scale); if (_1275.rdm_diff_scale < 0.001000000047497451305389404296875) { - light += (((float3(_1275.ambient_color) * _1275.ambient_intensity) * trixel_material.xyz) * _1613); + light += (((float3(_1275.ambient_color) * _1275.ambient_intensity) * trixel_material.xyz) * _1621); } } else { - light += (((float3(_1275.ambient_color) * _1275.ambient_intensity) * trixel_material.xyz) * _1613); - float3 _1810 = reflect(-_1435, N); - float3 R = _1810; - if (_1810.y < 0.0) + light += (((float3(_1275.ambient_color) * _1275.ambient_intensity) * trixel_material.xyz) * _1621); + float3 _1818 = reflect(-_1443, N); + float3 R = _1818; + if (_1818.y < 0.0) { R = reflect(R, float3(0.0, 1.0, 0.0)); } float3 param_23 = R; float3 param_24 = float3(_271.sunPosition); - light += ((_1461 * sky(param_23, param_24, _271)) * 0.100000001490116119384765625); + light += ((_1469 * sky(param_23, param_24, _271)) * 0.100000001490116119384765625); } - out.frag_color = float4(mix(float3(_271.deepColor), light + ((trixel_material.xyz * (float((_1355 >> 1) & 3) * 0.3333333432674407958984375)) * _1275.emissive_scale), float3(smoothstep(0.0, _271.planeHeight, in.vpos.y))), 1.0); + out.frag_color = float4(mix(float3(_271.deepColor), light + ((trixel_material.xyz * emittance) * _1275.emissive_scale), float3(smoothstep(0.0, _271.planeHeight, in.vpos.y))), 1.0); if (_1275.is_preview == 1) { - float4 _1853 = out.frag_color; - float3 _1857 = mix(_1853.xyz, float3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), float3(0.5)); - out.frag_color.x = _1857.x; - out.frag_color.y = _1857.y; - out.frag_color.z = _1857.z; + float4 _1861 = out.frag_color; + float3 _1865 = mix(_1861.xyz, float3(0.300000011920928955078125, 0.699999988079071044921875, 1.0), float3(0.5)); + out.frag_color.x = _1865.x; + out.frag_color.y = _1865.y; + out.frag_color.z = _1865.z; } else { if (_1275.is_preview == 2) { - float4 _1871 = out.frag_color; - float3 _1875 = mix(_1871.xyz, float3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), float3(0.5)); - out.frag_color.x = _1875.x; - out.frag_color.y = _1875.y; - out.frag_color.z = _1875.z; + float4 _1879 = out.frag_color; + float3 _1883 = mix(_1879.xyz, float3(1.0, 0.300000011920928955078125, 0.20000000298023223876953125), float3(0.5)); + out.frag_color.x = _1883.x; + out.frag_color.y = _1883.y; + out.frag_color.z = _1883.z; } } return out; @@ -5658,43 +5723,43 @@ fs_trile_source_metal_macos := u8.[ 0x20,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x69,0x6e,0x64, 0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x30,0x29,0x0a,0x20,0x20, 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x5f,0x31,0x39,0x31,0x33,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x31,0x33,0x2e,0x7a,0x20,0x3d, + 0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x31,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x3d, 0x20,0x76,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31, - 0x39,0x31,0x33,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x31,0x33,0x3b, + 0x39,0x32,0x31,0x2e,0x79,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x3b, 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28, 0x69,0x6e,0x64,0x65,0x78,0x20,0x2f,0x20,0x32,0x29,0x20,0x3d,0x3d,0x20,0x32,0x29, 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x31,0x37,0x20,0x3d,0x20,0x76,0x63, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x31,0x37,0x2e, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x35,0x20,0x3d,0x20,0x76,0x63, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x35,0x2e, 0x7a,0x20,0x3d,0x20,0x76,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x39,0x31,0x37,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a, + 0x20,0x5f,0x31,0x39,0x32,0x35,0x2e,0x78,0x20,0x3d,0x20,0x76,0x2e,0x7a,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39, - 0x31,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, 0x20,0x28,0x28,0x69,0x6e,0x64,0x65,0x78,0x20,0x25,0x20,0x32,0x29,0x20,0x3d,0x3d, 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x31,0x20,0x3d, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x39,0x20,0x3d, 0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x39, - 0x32,0x31,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x2e,0x7a,0x20,0x2a, + 0x32,0x39,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39,0x2e,0x7a,0x20,0x2a, 0x20,0x28,0x2d,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x31,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x39,0x3b,0x0a,0x20,0x20,0x20, 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, - 0x39,0x32,0x34,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x34, + 0x39,0x33,0x32,0x20,0x3d,0x20,0x76,0x63,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x31,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x32, 0x2e,0x78,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x32,0x36,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x32,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x32,0x36,0x2e, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x33,0x34,0x20,0x3d,0x20,0x5f, + 0x31,0x39,0x33,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x39,0x33,0x34,0x2e, 0x78,0x20,0x3d,0x20,0x5f,0x36,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x34, + 0x6f,0x61,0x74,0x20,0x5f,0x36,0x30,0x37,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x32, 0x2e,0x79,0x20,0x2b,0x20,0x6f,0x66,0x66,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x5f,0x31,0x39,0x32,0x36,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x36,0x3b,0x0a, + 0x5f,0x31,0x39,0x33,0x34,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x36,0x30,0x37,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x63,0x20,0x3d,0x20,0x5f,0x31,0x39,0x33,0x34,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x20,0x5f,0x36,0x32,0x35,0x20, - 0x3d,0x20,0x5f,0x31,0x39,0x32,0x36,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e, + 0x3d,0x20,0x5f,0x31,0x39,0x33,0x34,0x2e,0x78,0x79,0x20,0x2a,0x20,0x28,0x31,0x2e, 0x30,0x20,0x2f,0x20,0x28,0x28,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x31,0x29,0x20, 0x2b,0x20,0x61,0x62,0x73,0x28,0x5f,0x36,0x30,0x37,0x29,0x29,0x20,0x2b,0x20,0x5f, - 0x31,0x39,0x32,0x34,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x31,0x39,0x33,0x32,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, 0x6f,0x61,0x74,0x20,0x5f,0x36,0x32,0x38,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e, 0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x36,0x33, 0x30,0x20,0x3d,0x20,0x5f,0x36,0x32,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20, @@ -6475,387 +6540,405 @@ fs_trile_source_metal_macos := u8.[ 0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x35,0x35,0x20,0x3d,0x20,0x69,0x6e,0x74,0x28, 0x72,0x6f,0x75,0x6e,0x64,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, 0x65,0x72,0x69,0x61,0x6c,0x2e,0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x36,0x36, - 0x20,0x3d,0x20,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20, - 0x26,0x20,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, - 0x31,0x33,0x37,0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78, - 0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x36,0x36,0x29,0x20,0x2a,0x20, - 0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35, - 0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69, + 0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49, + 0x6e,0x74,0x20,0x3d,0x20,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e, 0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30, - 0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x37,0x38,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e, - 0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33, - 0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38, - 0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x5f,0x31,0x33,0x38,0x34,0x20,0x3d,0x20,0x61,0x62,0x73,0x28,0x69, - 0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x36,0x20, - 0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x38,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f, - 0x31,0x33,0x38,0x39,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x20,0x3e,0x3d,0x20, - 0x5f,0x31,0x33,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20, - 0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x31,0x33,0x38,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38, - 0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x34,0x2e,0x7a,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x33,0x39,0x37, - 0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x4e,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x37,0x29,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x30, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31,0x30,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x38,0x38,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x38,0x36,0x3b,0x0a,0x20, + 0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26, + 0x20,0x31,0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34, + 0x30,0x31,0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39, + 0x31,0x34,0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x33,0x37,0x35,0x20,0x3d, + 0x20,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68, + 0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x35,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65, + 0x73,0x73,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x33,0x37,0x35,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37, + 0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39, + 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e,0x3e,0x20, + 0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33, + 0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39, + 0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x33,0x39,0x32,0x20,0x3d,0x20, + 0x61,0x62,0x73,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x31,0x33,0x39,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x78,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x33,0x39,0x36,0x20, + 0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62, + 0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x33,0x39,0x37,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39, + 0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x30,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x33,0x39,0x37,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x30,0x35,0x20,0x3d, + 0x20,0x5f,0x31,0x33,0x39,0x34,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e, + 0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x34,0x30,0x35,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x30,0x35, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x73,0x69,0x67,0x6e,0x28, + 0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x34,0x31, - 0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x31,0x34,0x31,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x31, - 0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x38,0x38,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, - 0x38,0x34,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x5f,0x31,0x34,0x31,0x38,0x20,0x3d,0x20,0x5f,0x31,0x34,0x31,0x30, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x38,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x2c, - 0x20,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c, - 0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x31,0x34,0x33,0x35,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61,0x6d,0x20, - 0x2d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x33,0x39,0x20,0x3d,0x20,0x66, - 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f, - 0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x34,0x34,0x20,0x3d,0x20,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x31,0x34, - 0x33,0x35,0x20,0x2b,0x20,0x5f,0x31,0x34,0x33,0x39,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x35,0x31,0x20,0x3d,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x33,0x37,0x38,0x29,0x3b,0x0a,0x20, + 0x38,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3e,0x3d,0x20,0x5f,0x31,0x33, + 0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c, + 0x20,0x5f,0x31,0x34,0x32,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x34,0x31,0x38,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x34,0x32,0x36,0x20,0x3d,0x20,0x5f,0x31,0x33,0x39,0x36,0x20,0x3e, + 0x3d,0x20,0x5f,0x31,0x33,0x39,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, + 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x34,0x32,0x36,0x20,0x3d,0x20, + 0x5f,0x31,0x34,0x31,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x34, + 0x32,0x36,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69, + 0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x79,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x4e,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c, + 0x20,0x30,0x2e,0x30,0x2c,0x20,0x73,0x69,0x67,0x6e,0x28,0x69,0x6e,0x2e,0x66,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x7a,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x34,0x33,0x20,0x3d,0x20,0x66,0x61, + 0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e, + 0x2e,0x63,0x61,0x6d,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x34, + 0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x69,0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e, + 0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x35,0x32,0x20, - 0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30, - 0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32, - 0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x74,0x72,0x69, - 0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a, - 0x2c,0x20,0x5f,0x31,0x34,0x35,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x34,0x34,0x2c, - 0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x36,0x31,0x20,0x3d,0x20,0x66,0x72, - 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x34, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x33,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20, - 0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x33,0x35,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d, - 0x20,0x5f,0x31,0x33,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x31,0x34,0x39,0x35,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, - 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x39, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x20,0x5f,0x31,0x35,0x31,0x32,0x20,0x3d,0x20,0x31,0x2e,0x30,0x20,0x2d, - 0x20,0x5f,0x31,0x33,0x37,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x34,0x20,0x5f,0x31,0x35,0x32,0x38,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64,0x6f,0x77,0x20,0x2a,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x28,0x66,0x6c,0x6f,0x6f,0x72,0x28,0x69,0x6e,0x2e,0x76,0x70, - 0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, - 0x35,0x33,0x39,0x20,0x3d,0x20,0x28,0x28,0x5f,0x31,0x35,0x32,0x38,0x2e,0x78,0x79, - 0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x35,0x32,0x38, - 0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x34,0x33,0x20,0x3d,0x20,0x5f,0x31,0x35, - 0x33,0x39,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30, - 0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38, - 0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x39,0x38,0x20,0x3d,0x20,0x5f, - 0x31,0x35,0x33,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x5f,0x31,0x38,0x39,0x38,0x2e, - 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34,0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x28,0x28, - 0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30, - 0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35, - 0x31,0x32,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74, - 0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37, - 0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b, - 0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x31,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74, - 0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72, - 0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x66,0x61, - 0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f, - 0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f, - 0x31,0x34,0x39,0x35,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39, - 0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34, - 0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29, - 0x20,0x2a,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d, - 0x70,0x6c,0x65,0x5f,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x73,0x68,0x61,0x64, - 0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x38,0x39,0x38,0x2e,0x78,0x79,0x2c, - 0x20,0x5f,0x31,0x35,0x34,0x33,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x34,0x39,0x35, - 0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69,0x67,0x68, - 0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73, - 0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x38,0x30,0x20,0x3d,0x20, - 0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x20,0x2b, - 0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30,0x30,0x30, - 0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x5f,0x31,0x35,0x38,0x36,0x20, - 0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f,0x6f,0x72, - 0x28,0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72,0x29, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d,0x20,0x5f, - 0x31,0x33,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34, - 0x20,0x5f,0x31,0x36,0x31,0x32,0x20,0x3d,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78, - 0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67, - 0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28, - 0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c, - 0x20,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20, - 0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63, - 0x72,0x65,0x65,0x6e,0x5f,0x68,0x29,0x29,0x2c,0x20,0x62,0x69,0x61,0x73,0x28,0x30, - 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x36,0x31,0x33,0x20,0x3d,0x20,0x5f,0x31,0x36,0x31,0x32,0x2e,0x78,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x32,0x33,0x20, - 0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62, - 0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, - 0x6f,0x6c,0x20,0x5f,0x31,0x36,0x32,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x31,0x36,0x32,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x32,0x39,0x20,0x3d,0x20,0x72, - 0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f,0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63, - 0x74,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x31,0x30,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c, - 0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x5f,0x31,0x36,0x32,0x39,0x20,0x3d,0x20,0x5f,0x31,0x36,0x32,0x33,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, - 0x36,0x32,0x39,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f, - 0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31,0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34, - 0x35,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x20,0x3d,0x20,0x5f,0x31,0x33, - 0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x20,0x5f,0x31,0x36,0x34,0x32,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e, - 0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65, - 0x73,0x73,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x31,0x36,0x34,0x39,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73, - 0x20,0x2d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x34,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d, - 0x20,0x2d,0x69,0x6e,0x2e,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36, - 0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31, - 0x37,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34,0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20, - 0x3d,0x20,0x5f,0x31,0x33,0x36,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x20,0x3d, - 0x20,0x5f,0x31,0x35,0x38,0x36,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x36,0x34,0x20,0x3d,0x20,0x73, - 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x2c,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x39,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2c,0x20,0x72,0x64,0x6d,0x5f, - 0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70, - 0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d, - 0x73,0x6d,0x70,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d, - 0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x38,0x36,0x20,0x3d,0x20,0x66,0x61,0x73, - 0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, - 0x34,0x33,0x35,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,0x38,0x39, - 0x20,0x3d,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x2e,0x73,0x61,0x6d,0x70, - 0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x32,0x28,0x5f,0x31,0x36,0x38,0x36,0x2c,0x20,0x5f,0x31,0x33,0x37,0x32,0x29,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x5f,0x31,0x36,0x39,0x39,0x20,0x3d,0x20,0x73,0x69,0x6e,0x28,0x5f,0x31,0x33,0x37, - 0x32,0x20,0x2a,0x20,0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34, - 0x36,0x34,0x31,0x31,0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28, - 0x28,0x28,0x28,0x28,0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x36,0x34,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x36,0x36,0x34,0x2c, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39, - 0x39,0x39,0x32,0x37,0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35, - 0x2c,0x20,0x30,0x2e,0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31, - 0x38,0x32,0x32,0x35,0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e, - 0x30,0x37,0x32,0x32,0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32, - 0x39,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x5f,0x31,0x34, - 0x35,0x31,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x36,0x34,0x32,0x20,0x2a,0x20, - 0x5f,0x31,0x36,0x38,0x39,0x2e,0x78,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x5f,0x31,0x36,0x38,0x39,0x2e,0x79,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f, - 0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x73,0x70,0x65,0x63,0x5f,0x73,0x63, - 0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x30, - 0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30,0x37,0x31, - 0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39, - 0x39,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x28,0x28, - 0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x36,0x31,0x35,0x38,0x31, - 0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x20,0x2a,0x20,0x5f,0x31,0x33, - 0x37,0x32,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x39,0x29,0x20,0x2a,0x20,0x70, - 0x6f,0x77,0x72,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x36,0x38,0x36,0x2c, - 0x20,0x32,0x2e,0x30,0x29,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20, - 0x2d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x5f, - 0x31,0x33,0x37,0x32,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e, - 0x33,0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36, - 0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x34, - 0x39,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x38,0x36, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, - 0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x34,0x32,0x29,0x20,0x2a, - 0x20,0x5f,0x31,0x35,0x31,0x32,0x29,0x20,0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c, - 0x65,0x5f,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x30,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f, - 0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72, - 0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70, - 0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69, - 0x6e,0x74,0x29,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, - 0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31, - 0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20, - 0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35, - 0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, - 0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61, - 0x6c,0x65,0x20,0x3c,0x20,0x30,0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30, - 0x30,0x34,0x37,0x34,0x39,0x37,0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34, - 0x30,0x34,0x32,0x39,0x36,0x38,0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61, - 0x74,0x33,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74, - 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e, - 0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74, - 0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, - 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31, - 0x33,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, - 0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31, - 0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65, - 0x6e,0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20, + 0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, + 0x65,0x28,0x5f,0x31,0x34,0x34,0x33,0x20,0x2b,0x20,0x5f,0x31,0x34,0x34,0x37,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x34, + 0x36,0x30,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33, + 0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20, 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e, - 0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x31,0x33,0x29,0x3b,0x0a,0x20, + 0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x6d,0x65,0x74,0x61, + 0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x34,0x35,0x32,0x2c,0x20,0x5f, + 0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, + 0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x20,0x5f,0x31,0x34,0x36,0x39,0x20,0x3d,0x20,0x66,0x72,0x65,0x73, + 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d, + 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x31,0x34,0x35,0x32,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x35,0x20,0x3d,0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34, + 0x33,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x31,0x34,0x34,0x37,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, + 0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x30,0x33,0x20,0x3d,0x20, + 0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, + 0x20,0x5f,0x31,0x34,0x34,0x37,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x35,0x33,0x36,0x20, + 0x3d,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x6d,0x76,0x70,0x5f,0x73,0x68,0x61,0x64, + 0x6f,0x77,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x66,0x6c,0x6f,0x6f, + 0x72,0x28,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2a,0x20,0x31,0x36,0x2e,0x30, + 0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x36,0x32, + 0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x34,0x37,0x20,0x3d,0x20,0x28,0x28,0x5f, + 0x31,0x35,0x33,0x36,0x2e,0x78,0x79,0x7a,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x5f,0x31,0x35,0x33,0x36,0x2e,0x77,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e, + 0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x35,0x35, + 0x31,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34,0x37,0x2e,0x7a,0x20,0x2d,0x20,0x30,0x2e, + 0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37,0x34, + 0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38,0x37, + 0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, + 0x39,0x30,0x36,0x20,0x3d,0x20,0x5f,0x31,0x35,0x34,0x37,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x5f,0x31,0x39,0x30,0x36,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x35,0x35,0x31, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67, + 0x68,0x74,0x20,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x34,0x36,0x39, + 0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c, + 0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d, + 0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31, + 0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29, + 0x20,0x2b,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x28,0x44,0x69, + 0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65, + 0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20, + 0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c, + 0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x35,0x30,0x33,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39, + 0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35, + 0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29, + 0x29,0x29,0x20,0x2a,0x20,0x73,0x68,0x61,0x64,0x6f,0x77,0x74,0x65,0x78,0x2e,0x73, + 0x61,0x6d,0x70,0x6c,0x65,0x5f,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x73,0x68, + 0x61,0x64,0x6f,0x77,0x73,0x6d,0x70,0x2c,0x20,0x5f,0x31,0x39,0x30,0x36,0x2e,0x78, + 0x79,0x2c,0x20,0x5f,0x31,0x35,0x35,0x31,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x35, + 0x30,0x33,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x4c,0x69, + 0x67,0x68,0x74,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x31, + 0x2e,0x73,0x75,0x6e,0x49,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x35,0x38,0x38,0x20, + 0x3d,0x20,0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65,0x72, + 0x20,0x2b,0x20,0x28,0x4e,0x20,0x2a,0x20,0x30,0x2e,0x34,0x39,0x30,0x30,0x30,0x30, + 0x30,0x30,0x39,0x35,0x33,0x36,0x37,0x34,0x33,0x31,0x36,0x34,0x30,0x36,0x32,0x35, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x5f,0x31,0x35,0x39, + 0x34,0x20,0x3d,0x20,0x69,0x6e,0x74,0x33,0x28,0x6d,0x6f,0x64,0x28,0x66,0x6c,0x6f, + 0x6f,0x72,0x28,0x69,0x6e,0x2e,0x74,0x72,0x69,0x6c,0x65,0x43,0x65,0x6e,0x74,0x65, + 0x72,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x33,0x32,0x2e,0x30,0x29, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x20,0x3d, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x36,0x32,0x30,0x20, + 0x3d,0x20,0x73,0x73,0x61,0x6f,0x74,0x65,0x78,0x2e,0x73,0x61,0x6d,0x70,0x6c,0x65, + 0x28,0x74,0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x32,0x28,0x67,0x6c,0x5f,0x46,0x72,0x61,0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x78, + 0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73, + 0x63,0x72,0x65,0x65,0x6e,0x5f,0x77,0x29,0x2c,0x20,0x67,0x6c,0x5f,0x46,0x72,0x61, + 0x67,0x43,0x6f,0x6f,0x72,0x64,0x2e,0x79,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x73,0x63,0x72,0x65,0x65,0x6e,0x5f,0x68,0x29, + 0x29,0x2c,0x20,0x62,0x69,0x61,0x73,0x28,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x32,0x31,0x20,0x3d, + 0x20,0x5f,0x31,0x36,0x32,0x30,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f, + 0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33,0x31,0x20,0x3d,0x20,0x5f,0x31,0x32,0x37,0x35, + 0x2e,0x72,0x64,0x6d,0x5f,0x65,0x6e,0x61,0x62,0x6c,0x65,0x64,0x20,0x3d,0x3d,0x20, + 0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x62,0x6f,0x6f,0x6c,0x20,0x5f,0x31,0x36,0x33, + 0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x31, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x31,0x36,0x33,0x37,0x20,0x3d,0x20,0x72,0x64,0x6d,0x5f,0x67,0x65,0x74,0x5f, + 0x61,0x74,0x6c,0x61,0x73,0x5f,0x72,0x65,0x63,0x74,0x28,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x39,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x30,0x2c,0x20,0x72,0x64, + 0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c,0x65,0x73, + 0x6d,0x70,0x29,0x2e,0x7a,0x20,0x3e,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x5f,0x31,0x36,0x33,0x37,0x20, + 0x3d,0x20,0x5f,0x31,0x36,0x33,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x36,0x33,0x37,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x20,0x3d,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e,0x2c,0x20,0x5f,0x31, + 0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x32,0x20,0x3d,0x20,0x5f,0x31,0x34,0x36,0x30,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x31,0x33,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x5f,0x31,0x36,0x35,0x30,0x20,0x3d,0x20,0x46,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53, + 0x63,0x68,0x6c,0x69,0x63,0x6b,0x52,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x33,0x29,0x3b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31, - 0x38,0x31,0x30,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f, - 0x31,0x34,0x33,0x35,0x2c,0x20,0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38, - 0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, - 0x5f,0x31,0x38,0x31,0x30,0x2e,0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x52,0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74, - 0x28,0x52,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20, - 0x52,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69, - 0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c, - 0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x31,0x20, - 0x2a,0x20,0x73,0x6b,0x79,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x34,0x2c,0x20,0x5f,0x32,0x37,0x31,0x29,0x29, - 0x20,0x2a,0x20,0x30,0x2e,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39, - 0x30,0x31,0x31,0x36,0x31,0x31,0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c, - 0x6f,0x61,0x74,0x34,0x28,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, - 0x5f,0x32,0x37,0x31,0x2e,0x64,0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x2c, - 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65, - 0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a, - 0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x33,0x35,0x35,0x20,0x3e, - 0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33, - 0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35, - 0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37, - 0x35,0x2e,0x65,0x6d,0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65, - 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68, - 0x73,0x74,0x65,0x70,0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70, - 0x6c,0x61,0x6e,0x65,0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76, - 0x70,0x6f,0x73,0x2e,0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73, - 0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x34,0x20,0x5f,0x31,0x38,0x35,0x33,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x35,0x37, - 0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x35,0x33,0x2e,0x78,0x79,0x7a, - 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, - 0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38, - 0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c, - 0x20,0x31,0x2e,0x30,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e, - 0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, - 0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20, - 0x5f,0x31,0x38,0x35,0x37,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x36,0x35,0x37,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x20,0x2d,0x20, + 0x5f,0x31,0x35,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x34,0x20,0x3d, + 0x20,0x4e,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35,0x20,0x3d,0x20,0x2d,0x69, + 0x6e,0x2e,0x63,0x76,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x20,0x3d,0x20, + 0x5f,0x31,0x35,0x38,0x38,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x37,0x20,0x3d, + 0x20,0x5f,0x31,0x36,0x35,0x37,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x69,0x6e,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x20,0x3d,0x20,0x72, + 0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x49,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x39,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x36,0x37,0x32, + 0x20,0x3d,0x20,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x28,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x31,0x34,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x35, + 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x31,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x38,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x39,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2c,0x20, + 0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74,0x72,0x69,0x6c, + 0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c,0x61,0x73,0x2c, + 0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35, + 0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x36,0x39,0x34,0x20,0x3d, + 0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x4e, + 0x2c,0x20,0x5f,0x31,0x34,0x34,0x33,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f, + 0x31,0x36,0x39,0x37,0x20,0x3d,0x20,0x62,0x72,0x64,0x66,0x5f,0x6c,0x75,0x74,0x2e, + 0x73,0x61,0x6d,0x70,0x6c,0x65,0x28,0x72,0x64,0x6d,0x73,0x6d,0x70,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x32,0x28,0x5f,0x31,0x36,0x39,0x34,0x2c,0x20,0x72,0x6f,0x75, + 0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x30,0x37,0x20,0x3d,0x20, + 0x73,0x69,0x6e,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x2a,0x20, + 0x33,0x2e,0x31,0x34,0x31,0x32,0x38,0x35,0x34,0x31,0x39,0x34,0x36,0x34,0x31,0x31, + 0x31,0x33,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28, + 0x6d,0x69,0x78,0x28,0x5f,0x31,0x36,0x37,0x32,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x36,0x37,0x32,0x2c,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x33,0x28,0x30,0x2e,0x32,0x31,0x32,0x35,0x39,0x39,0x39,0x39,0x32,0x37, + 0x35,0x32,0x30,0x37,0x35,0x31,0x39,0x35,0x33,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e, + 0x37,0x31,0x35,0x32,0x30,0x30,0x30,0x30,0x36,0x39,0x36,0x31,0x38,0x32,0x32,0x35, + 0x30,0x39,0x37,0x36,0x35,0x36,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x37,0x32,0x32, + 0x30,0x30,0x30,0x30,0x30,0x32,0x38,0x36,0x31,0x30,0x32,0x32,0x39,0x34,0x39,0x32, + 0x31,0x38,0x37,0x35,0x29,0x29,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f, + 0x31,0x36,0x35,0x30,0x20,0x2a,0x20,0x5f,0x31,0x36,0x39,0x37,0x2e,0x78,0x29,0x20, + 0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x36,0x39,0x37,0x2e,0x79, + 0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f, + 0x73,0x70,0x65,0x63,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x20,0x2a,0x20,0x28,0x31, + 0x2e,0x30,0x20,0x2d,0x20,0x28,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38, + 0x38,0x30,0x37,0x39,0x30,0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35, + 0x20,0x2a,0x20,0x5f,0x31,0x37,0x30,0x37,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31, + 0x2e,0x30,0x20,0x2d,0x20,0x28,0x28,0x28,0x30,0x2e,0x38,0x39,0x39,0x39,0x39,0x39, + 0x39,0x37,0x36,0x31,0x35,0x38,0x31,0x34,0x32,0x30,0x38,0x39,0x38,0x34,0x33,0x37, + 0x35,0x20,0x2a,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x37,0x30,0x37,0x29,0x20,0x2a,0x20,0x70,0x6f,0x77,0x72,0x28,0x31, + 0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x36,0x39,0x34,0x2c,0x20,0x32,0x2e,0x30,0x29, + 0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x66,0x61,0x73, + 0x74,0x3a,0x3a,0x63,0x6c,0x61,0x6d,0x70,0x28,0x28,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x20,0x2d,0x20,0x30,0x2e,0x35,0x29,0x20,0x2a,0x20,0x33,0x2e,0x33, + 0x33,0x33,0x33,0x33,0x33,0x32,0x35,0x33,0x38,0x36,0x30,0x34,0x37,0x33,0x36,0x33, + 0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x20,0x3d,0x20,0x4e,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x20,0x3d,0x20,0x5f,0x31,0x36,0x35,0x37, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x6e,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x32,0x20,0x3d,0x20,0x5f,0x31,0x35,0x39,0x34,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, + 0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x31,0x36,0x35,0x30,0x29,0x20,0x2a,0x20, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29, + 0x29,0x20,0x2a,0x20,0x28,0x73,0x61,0x6d,0x70,0x6c,0x65,0x5f,0x72,0x64,0x6d,0x5f, + 0x64,0x69,0x66,0x66,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x30,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x31,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, + 0x32,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x6c,0x6f,0x6f,0x6b,0x75,0x70,0x2c,0x20,0x74, + 0x72,0x69,0x6c,0x65,0x73,0x6d,0x70,0x2c,0x20,0x72,0x64,0x6d,0x5f,0x61,0x74,0x6c, + 0x61,0x73,0x2c,0x20,0x72,0x64,0x6d,0x73,0x6d,0x70,0x29,0x20,0x2a,0x20,0x5f,0x31, + 0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x74,0x69,0x6e,0x74,0x29,0x29,0x20,0x2a, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31, + 0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35, + 0x29,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, + 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32, + 0x31,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64,0x6d,0x5f,0x64, + 0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x72,0x64, + 0x6d,0x5f,0x64,0x69,0x66,0x66,0x5f,0x73,0x63,0x61,0x6c,0x65,0x20,0x3c,0x20,0x30, + 0x2e,0x30,0x30,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x34,0x37,0x34,0x39,0x37, + 0x34,0x35,0x31,0x33,0x30,0x35,0x33,0x38,0x39,0x34,0x30,0x34,0x32,0x39,0x36,0x38, + 0x37,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, + 0x2b,0x3d,0x20,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32, + 0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e, + 0x74,0x5f,0x69,0x6e,0x74,0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x29,0x20,0x2a,0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, + 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x61,0x6d, + 0x62,0x69,0x65,0x6e,0x74,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x29,0x20,0x2a,0x20,0x5f, + 0x31,0x32,0x37,0x35,0x2e,0x61,0x6d,0x62,0x69,0x65,0x6e,0x74,0x5f,0x69,0x6e,0x74, + 0x65,0x6e,0x73,0x69,0x74,0x79,0x29,0x20,0x2a,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, + 0x5f,0x6d,0x61,0x74,0x65,0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a, + 0x20,0x5f,0x31,0x36,0x32,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x31,0x38,0x20,0x3d,0x20, + 0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x2d,0x5f,0x31,0x34,0x34,0x33,0x2c,0x20, + 0x4e,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x33,0x20,0x52,0x20,0x3d,0x20,0x5f,0x31,0x38,0x31,0x38,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31,0x38,0x31,0x38,0x2e, + 0x79,0x20,0x3c,0x20,0x30,0x2e,0x30,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x52, + 0x20,0x3d,0x20,0x72,0x65,0x66,0x6c,0x65,0x63,0x74,0x28,0x52,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x20,0x3d,0x20,0x52,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x32,0x34,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32, + 0x37,0x31,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b, + 0x3d,0x20,0x28,0x28,0x5f,0x31,0x34,0x36,0x39,0x20,0x2a,0x20,0x73,0x6b,0x79,0x28, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x32,0x34,0x2c,0x20,0x5f,0x32,0x37,0x31,0x29,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x34,0x39,0x30,0x31,0x31,0x36,0x31,0x31, + 0x39,0x33,0x38,0x34,0x37,0x36,0x35,0x36,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f, + 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x6d, + 0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x37,0x31,0x2e,0x64, + 0x65,0x65,0x70,0x43,0x6f,0x6c,0x6f,0x72,0x29,0x2c,0x20,0x6c,0x69,0x67,0x68,0x74, + 0x20,0x2b,0x20,0x28,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x6d,0x61,0x74,0x65, + 0x72,0x69,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74,0x74, + 0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x5f,0x31,0x32,0x37,0x35,0x2e,0x65,0x6d, + 0x69,0x73,0x73,0x69,0x76,0x65,0x5f,0x73,0x63,0x61,0x6c,0x65,0x29,0x2c,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x73,0x6d,0x6f,0x6f,0x74,0x68,0x73,0x74,0x65,0x70, + 0x28,0x30,0x2e,0x30,0x2c,0x20,0x5f,0x32,0x37,0x31,0x2e,0x70,0x6c,0x61,0x6e,0x65, + 0x48,0x65,0x69,0x67,0x68,0x74,0x2c,0x20,0x69,0x6e,0x2e,0x76,0x70,0x6f,0x73,0x2e, + 0x79,0x29,0x29,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x69,0x66,0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65, + 0x76,0x69,0x65,0x77,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20, + 0x5f,0x31,0x38,0x36,0x31,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38,0x36,0x35,0x20,0x3d,0x20,0x6d, + 0x69,0x78,0x28,0x5f,0x31,0x38,0x36,0x31,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, + 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c, + 0x20,0x30,0x2e,0x36,0x39,0x39,0x39,0x39,0x39,0x39,0x38,0x38,0x30,0x37,0x39,0x30, + 0x37,0x31,0x30,0x34,0x34,0x39,0x32,0x31,0x38,0x37,0x35,0x2c,0x20,0x31,0x2e,0x30, + 0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36, + 0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, + 0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20, + 0x5f,0x31,0x38,0x36,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, - 0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x35,0x37,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x36,0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, + 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x31, + 0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69,0x65,0x77,0x20,0x3d, + 0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x34,0x20,0x5f,0x31,0x38,0x37,0x39,0x20,0x3d,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x38, + 0x38,0x33,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38,0x37,0x39,0x2e,0x78, + 0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20, + 0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32, + 0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x32,0x30, + 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33,0x32,0x32,0x33,0x38, + 0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x35,0x37,0x2e,0x7a,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66, - 0x20,0x28,0x5f,0x31,0x32,0x37,0x35,0x2e,0x69,0x73,0x5f,0x70,0x72,0x65,0x76,0x69, - 0x65,0x77,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x31,0x38,0x37,0x31,0x20,0x3d,0x20,0x6f,0x75, - 0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x31,0x38,0x37,0x35,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x31,0x38, - 0x37,0x31,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31, - 0x2e,0x30,0x2c,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39, - 0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x2c,0x20, - 0x30,0x2e,0x32,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x39,0x38,0x30,0x32,0x33, - 0x32,0x32,0x33,0x38,0x37,0x36,0x39,0x35,0x33,0x31,0x32,0x35,0x29,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37, - 0x35,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, - 0x79,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37,0x35,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61, - 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x37, - 0x35,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, - 0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20, - 0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x78,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74, + 0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20, + 0x5f,0x31,0x38,0x38,0x33,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x31,0x38,0x38,0x33,0x2e,0x7a,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d, + 0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b, + 0x0a,0x7d,0x0a,0x0a,0x00, ]; trile_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; diff --git a/src/shaders/jai/shader_trixel.jai b/src/shaders/jai/shader_trixel.jai index 1686260..5061273 100644 --- a/src/shaders/jai/shader_trixel.jai +++ b/src/shaders/jai/shader_trixel.jai @@ -158,7 +158,7 @@ vs_trixel_source_glsl430 := u8.[ float time; }; - uniform trixel_world_config _205; + uniform trixel_world_config _215; uniform ivec4 trixel_fs_params[1]; layout(location = 0) in vec4 color; @@ -201,55 +201,65 @@ vs_trixel_source_glsl430 := u8.[ void main() { int _150 = int(round(color.w * 255.0)); - float _172 = max(float((_150 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - float _178 = float((_150 >> 3) & 3) * 0.3333333432674407958984375; + float emittance = 0.0; + float roughness = 0.0500000007450580596923828125; + float metallic = 0.0; + if ((_150 & 1) != 0) + { + emittance = float((_150 >> 1) & 127) * 0.0078740157186985015869140625; + } + else + { + roughness = max(float((_150 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_150 >> 3) & 3) * 0.3333333432674407958984375; + } vec3 light = color.xyz * 0.300000011920928955078125; - vec3 _187 = (color.xyz * (float((_150 >> 1) & 3) * 0.3333333432674407958984375)) * 5.0; - vec3 _192 = normalize(fnormal.xyz); - vec3 _201 = normalize(cam - pos.xyz); - vec3 _210 = normalize(_205.sunPosition); - vec3 _215 = normalize(_201 + _210); - float param = max(dot(_215, _201), 0.0); - vec3 param_1 = mix(vec3(0.039999999105930328369140625), color.xyz, vec3(_178)); - vec3 _232 = fresnelSchlick(param, param_1); - vec3 param_2 = _192; - vec3 param_3 = _215; - float param_4 = _172; - vec3 param_5 = _192; - vec3 param_6 = _201; - vec3 param_7 = _210; - float param_8 = _172; - float _267 = max(dot(_192, _210), 0.0); - light += ((((((vec3(1.0) - _232) * (1.0 - _178)) * color.xyz) * vec3(0.3183410167694091796875)) + ((_232 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_192, _201), 0.0)) * _267) + 9.9999997473787516355514526367188e-05))) * _267); + vec3 _197 = (color.xyz * emittance) * 5.0; + vec3 _202 = normalize(fnormal.xyz); + vec3 _211 = normalize(cam - pos.xyz); + vec3 _220 = normalize(_215.sunPosition); + vec3 _225 = normalize(_211 + _220); + float param = max(dot(_225, _211), 0.0); + vec3 param_1 = mix(vec3(0.039999999105930328369140625), color.xyz, vec3(metallic)); + vec3 _242 = fresnelSchlick(param, param_1); + vec3 param_2 = _202; + vec3 param_3 = _225; + float param_4 = roughness; + vec3 param_5 = _202; + vec3 param_6 = _211; + vec3 param_7 = _220; + float param_8 = roughness; + float _277 = max(dot(_202, _220), 0.0); + light += ((((((vec3(1.0) - _242) * (1.0 - metallic)) * color.xyz) * vec3(0.3183410167694091796875)) + ((_242 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_202, _211), 0.0)) * _277) + 9.9999997473787516355514526367188e-05))) * _277); if (trixel_fs_params[0].x == 1) { - frag_color = vec4((_192 * 0.5) + vec3(0.5), 1.0); + frag_color = vec4((_202 * 0.5) + vec3(0.5), 1.0); } else { if (trixel_fs_params[0].x == 2) { - frag_color = vec4((color.xyz * ((_267 * 0.60000002384185791015625) + 0.4000000059604644775390625)) + _187, 1.0); + frag_color = vec4((color.xyz * ((_277 * 0.60000002384185791015625) + 0.4000000059604644775390625)) + _197, 1.0); } else { if (trixel_fs_params[0].x == 3) { - frag_color = vec4(((color.xyz * ((_192 * 0.5) + vec3(0.5))) * ((_267 * 0.4000000059604644775390625) + 0.60000002384185791015625)) + _187, 1.0); + frag_color = vec4(((color.xyz * ((_202 * 0.5) + vec3(0.5))) * ((_277 * 0.4000000059604644775390625) + 0.60000002384185791015625)) + _197, 1.0); } else { - frag_color = vec4(light + _187, 1.0); + frag_color = vec4(light + _197, 1.0); } } } if (vtrixel_state > 0.5) { - vec4 _390 = frag_color; - vec3 _394 = mix(_390.xyz, vec3(1.0, 1.0, 0.5), vec3(0.5)); - frag_color.x = _394.x; - frag_color.y = _394.y; - frag_color.z = _394.z; + vec4 _398 = frag_color; + vec3 _402 = mix(_398.xyz, vec3(1.0, 1.0, 0.5), vec3(0.5)); + frag_color.x = _402.x; + frag_color.y = _402.y; + frag_color.z = _402.z; } } @@ -279,7 +289,7 @@ fs_trixel_source_glsl430 := u8.[ 0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74, 0x69,0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d, 0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f, - 0x6e,0x66,0x69,0x67,0x20,0x5f,0x32,0x30,0x35,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66, + 0x6e,0x66,0x69,0x67,0x20,0x5f,0x32,0x31,0x35,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66, 0x6f,0x72,0x6d,0x20,0x69,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c, 0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x6c, 0x61,0x79,0x6f,0x75,0x74,0x28,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x3d, @@ -355,139 +365,152 @@ fs_trixel_source_glsl430 := u8.[ 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x69,0x6e, 0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x77,0x20, 0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x32,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28, - 0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x35, - 0x29,0x20,0x26,0x20,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35, - 0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33, - 0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30, - 0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38, - 0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, - 0x74,0x20,0x5f,0x31,0x37,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28, - 0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20, - 0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37, - 0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30, - 0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35, - 0x30,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x5f,0x31,0x38,0x37,0x20,0x3d,0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, - 0x79,0x7a,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35, - 0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30, - 0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x35, - 0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39, - 0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e, - 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x31,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x70,0x6f,0x73,0x2e, - 0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f, - 0x32,0x31,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, - 0x5f,0x32,0x30,0x35,0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x35, - 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x30, - 0x31,0x20,0x2b,0x20,0x5f,0x32,0x31,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78, - 0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x31,0x35,0x2c,0x20,0x5f,0x32,0x30,0x31,0x29, - 0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31, - 0x30,0x35,0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32, - 0x35,0x29,0x2c,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76, - 0x65,0x63,0x33,0x28,0x5f,0x31,0x37,0x38,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x33,0x32,0x20,0x3d,0x20,0x66,0x72,0x65,0x73, + 0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35, + 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39, + 0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d, + 0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x28,0x5f, + 0x31,0x35,0x30,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6d,0x69, + 0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28, + 0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31,0x32,0x37, + 0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31,0x35,0x37, + 0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34,0x30,0x36, + 0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d,0x61,0x78, + 0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20, + 0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38, + 0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36, + 0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33, + 0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20, + 0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33, + 0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, + 0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31, + 0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x37,0x20,0x3d, + 0x20,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d, + 0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x35,0x2e,0x30,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x32,0x20,0x3d,0x20, + 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e,0x6f,0x72,0x6d,0x61, + 0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, + 0x20,0x5f,0x32,0x31,0x31,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a, + 0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x30,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x35, + 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x31,0x20,0x2b,0x20, + 0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, + 0x28,0x5f,0x32,0x32,0x35,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33, + 0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20,0x66,0x72,0x65,0x73, 0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d, 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f, - 0x31,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, - 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x31,0x35,0x3b,0x0a,0x20,0x20, + 0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61, + 0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20, - 0x3d,0x20,0x5f,0x31,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x20,0x3d,0x20,0x5f,0x32,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65, - 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x32,0x31, - 0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x5f,0x31,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x37,0x20,0x3d,0x20,0x6d,0x61, - 0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x39,0x32,0x2c,0x20,0x5f,0x32,0x31,0x30, - 0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67, - 0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33, - 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32,0x33,0x32,0x29,0x20,0x2a,0x20, - 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x37,0x38,0x29,0x29,0x20,0x2a,0x20, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63, - 0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39, - 0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28, - 0x28,0x5f,0x32,0x33,0x32,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62, - 0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32, - 0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d, - 0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33, - 0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74, - 0x28,0x5f,0x31,0x39,0x32,0x2c,0x20,0x5f,0x32,0x30,0x31,0x29,0x2c,0x20,0x30,0x2e, - 0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2b,0x20,0x39,0x2e, - 0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36, - 0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65, - 0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66, - 0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d, - 0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x34,0x28,0x28,0x5f,0x31,0x39,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, - 0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e, - 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c, - 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70, - 0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x32,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, - 0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e, - 0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x36,0x37,0x20,0x2a,0x20,0x30, - 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, - 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x34,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37, - 0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x38,0x37, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, - 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d, - 0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20, - 0x76,0x65,0x63,0x34,0x28,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a, - 0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x39,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, - 0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a, - 0x20,0x28,0x28,0x5f,0x32,0x36,0x37,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30, - 0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33, - 0x39,0x30,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30, - 0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36, - 0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x38,0x37,0x2c,0x20,0x31,0x2e,0x30, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73, - 0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, + 0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f,0x32,0x31,0x31,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20, + 0x3d,0x20,0x5f,0x32,0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28, + 0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x32,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30, + 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20, + 0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20, + 0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d, + 0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x20,0x2a,0x20,0x63,0x6f, + 0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28, + 0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30, + 0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f, + 0x32,0x34,0x32,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74, + 0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34, + 0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74, + 0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28, + 0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f, + 0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29, + 0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39, + 0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35, + 0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30, + 0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f, + 0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x31, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63, - 0x34,0x28,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x38,0x37,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x74,0x72,0x69, - 0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29, - 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x34,0x20,0x5f,0x33,0x39,0x30,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f, - 0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76, - 0x65,0x63,0x33,0x20,0x5f,0x33,0x39,0x34,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f, - 0x33,0x39,0x30,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e, - 0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x76,0x65, - 0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d, - 0x20,0x5f,0x33,0x39,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20, - 0x5f,0x33,0x39,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f, - 0x33,0x39,0x34,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a, - 0x00, + 0x34,0x28,0x28,0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b, + 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69, + 0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72, + 0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, + 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79, + 0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x36, + 0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31, + 0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x34,0x30,0x30,0x30, + 0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33, + 0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73, + 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20, + 0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65, + 0x63,0x34,0x28,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a, + 0x20,0x28,0x28,0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b, + 0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28, + 0x28,0x5f,0x32,0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30, + 0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30, + 0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30, + 0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35, + 0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28, + 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x74,0x72,0x69,0x78,0x65, + 0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20, + 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x34,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x76,0x65,0x63, + 0x33,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x33,0x39, + 0x38,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c, + 0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, + 0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f, + 0x34,0x30,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, + 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x34, + 0x30,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, + 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x34,0x30, + 0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, ]; /* #version 300 es @@ -574,7 +597,7 @@ vs_trixel_source_glsl300es := u8.[ highp float time; }; - uniform trixel_world_config _205; + uniform trixel_world_config _215; uniform ivec4 trixel_fs_params[1]; in highp vec4 color; @@ -617,55 +640,65 @@ vs_trixel_source_glsl300es := u8.[ void main() { int _150 = int(round(color.w * 255.0)); - highp float _172 = max(float((_150 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - highp float _178 = float((_150 >> 3) & 3) * 0.3333333432674407958984375; + highp float emittance = 0.0; + highp float roughness = 0.0500000007450580596923828125; + highp float metallic = 0.0; + if ((_150 & 1) != 0) + { + emittance = float((_150 >> 1) & 127) * 0.0078740157186985015869140625; + } + else + { + roughness = max(float((_150 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_150 >> 3) & 3) * 0.3333333432674407958984375; + } highp vec3 light = color.xyz * 0.300000011920928955078125; - highp vec3 _187 = (color.xyz * (float((_150 >> 1) & 3) * 0.3333333432674407958984375)) * 5.0; - highp vec3 _192 = normalize(fnormal.xyz); - highp vec3 _201 = normalize(cam - pos.xyz); - highp vec3 _210 = normalize(_205.sunPosition); - highp vec3 _215 = normalize(_201 + _210); - highp float param = max(dot(_215, _201), 0.0); - highp vec3 param_1 = mix(vec3(0.039999999105930328369140625), color.xyz, vec3(_178)); - highp vec3 _232 = fresnelSchlick(param, param_1); - highp vec3 param_2 = _192; - highp vec3 param_3 = _215; - highp float param_4 = _172; - highp vec3 param_5 = _192; - highp vec3 param_6 = _201; - highp vec3 param_7 = _210; - highp float param_8 = _172; - highp float _267 = max(dot(_192, _210), 0.0); - light += ((((((vec3(1.0) - _232) * (1.0 - _178)) * color.xyz) * vec3(0.3183410167694091796875)) + ((_232 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_192, _201), 0.0)) * _267) + 9.9999997473787516355514526367188e-05))) * _267); + highp vec3 _197 = (color.xyz * emittance) * 5.0; + highp vec3 _202 = normalize(fnormal.xyz); + highp vec3 _211 = normalize(cam - pos.xyz); + highp vec3 _220 = normalize(_215.sunPosition); + highp vec3 _225 = normalize(_211 + _220); + highp float param = max(dot(_225, _211), 0.0); + highp vec3 param_1 = mix(vec3(0.039999999105930328369140625), color.xyz, vec3(metallic)); + highp vec3 _242 = fresnelSchlick(param, param_1); + highp vec3 param_2 = _202; + highp vec3 param_3 = _225; + highp float param_4 = roughness; + highp vec3 param_5 = _202; + highp vec3 param_6 = _211; + highp vec3 param_7 = _220; + highp float param_8 = roughness; + highp float _277 = max(dot(_202, _220), 0.0); + light += ((((((vec3(1.0) - _242) * (1.0 - metallic)) * color.xyz) * vec3(0.3183410167694091796875)) + ((_242 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / vec3(((4.0 * max(dot(_202, _211), 0.0)) * _277) + 9.9999997473787516355514526367188e-05))) * _277); if (trixel_fs_params[0].x == 1) { - frag_color = vec4((_192 * 0.5) + vec3(0.5), 1.0); + frag_color = vec4((_202 * 0.5) + vec3(0.5), 1.0); } else { if (trixel_fs_params[0].x == 2) { - frag_color = vec4((color.xyz * ((_267 * 0.60000002384185791015625) + 0.4000000059604644775390625)) + _187, 1.0); + frag_color = vec4((color.xyz * ((_277 * 0.60000002384185791015625) + 0.4000000059604644775390625)) + _197, 1.0); } else { if (trixel_fs_params[0].x == 3) { - frag_color = vec4(((color.xyz * ((_192 * 0.5) + vec3(0.5))) * ((_267 * 0.4000000059604644775390625) + 0.60000002384185791015625)) + _187, 1.0); + frag_color = vec4(((color.xyz * ((_202 * 0.5) + vec3(0.5))) * ((_277 * 0.4000000059604644775390625) + 0.60000002384185791015625)) + _197, 1.0); } else { - frag_color = vec4(light + _187, 1.0); + frag_color = vec4(light + _197, 1.0); } } } if (vtrixel_state > 0.5) { - highp vec4 _390 = frag_color; - highp vec3 _394 = mix(_390.xyz, vec3(1.0, 1.0, 0.5), vec3(0.5)); - frag_color.x = _394.x; - frag_color.y = _394.y; - frag_color.z = _394.z; + highp vec4 _398 = frag_color; + highp vec3 _402 = mix(_398.xyz, vec3(1.0, 1.0, 0.5), vec3(0.5)); + frag_color.x = _402.x; + frag_color.y = _402.y; + frag_color.z = _402.z; } } @@ -703,7 +736,7 @@ fs_trixel_source_glsl300es := u8.[ 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x74,0x69, 0x6d,0x65,0x3b,0x0a,0x7d,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f,0x72,0x6d,0x20, 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e, - 0x66,0x69,0x67,0x20,0x5f,0x32,0x30,0x35,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f, + 0x66,0x69,0x67,0x20,0x5f,0x32,0x31,0x35,0x3b,0x0a,0x0a,0x75,0x6e,0x69,0x66,0x6f, 0x72,0x6d,0x20,0x69,0x76,0x65,0x63,0x34,0x20,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f, 0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x31,0x5d,0x3b,0x0a,0x69,0x6e, 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x63,0x6f,0x6c,0x6f, @@ -784,146 +817,161 @@ fs_trixel_source_glsl300es := u8.[ 0x20,0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x69,0x6e, 0x74,0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x77,0x20, 0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x32,0x20, - 0x3d,0x20,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35, - 0x30,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20,0x2a,0x20,0x30, - 0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34, - 0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30, - 0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35, - 0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31, - 0x37,0x38,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30, - 0x20,0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e, - 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37, - 0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20, - 0x3d,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e, - 0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39, - 0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x38,0x37,0x20,0x3d,0x20, - 0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x66,0x6c, - 0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20, + 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74, + 0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30, + 0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33, + 0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, + 0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x28,0x5f,0x31,0x35,0x30,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, + 0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31, + 0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31, + 0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34, + 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x6d, + 0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e, + 0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x31,0x34, + 0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33,0x35,0x34,0x37,0x39,0x37, + 0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30,0x2e,0x30,0x35,0x30,0x30, + 0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30,0x35,0x39,0x36,0x39, + 0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x20,0x3d,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x33,0x29,0x20, 0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33, 0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33, - 0x37,0x35,0x29,0x29,0x20,0x2a,0x20,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x32,0x20, - 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e,0x6f,0x72, - 0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30,0x31,0x20,0x3d,0x20, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20,0x2d,0x20, - 0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x30,0x20,0x3d,0x20, - 0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x30,0x35,0x2e,0x73, - 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x35, - 0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x30, - 0x31,0x20,0x2b,0x20,0x5f,0x32,0x31,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x31,0x35,0x2c, - 0x20,0x5f,0x32,0x30,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63,0x33,0x28, - 0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33, - 0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, - 0x5f,0x31,0x37,0x38,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68, - 0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x33,0x32,0x20,0x3d,0x20,0x66,0x72, - 0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70,0x61,0x72, - 0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68, - 0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x36,0x20,0x3d,0x20,0x5f,0x32,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, - 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37, - 0x20,0x3d,0x20,0x5f,0x32,0x31,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38, - 0x20,0x3d,0x20,0x5f,0x31,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, - 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x37,0x20,0x3d,0x20, - 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x39,0x32,0x2c,0x20,0x5f,0x32, - 0x31,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c, + 0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x68,0x69, + 0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d, + 0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33, + 0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35, + 0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x31,0x39,0x37,0x20,0x3d,0x20,0x28, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x65,0x6d,0x69,0x74, + 0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x30, + 0x32,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66,0x6e, + 0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x31,0x31,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x63,0x61,0x6d,0x20, + 0x2d,0x20,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x32,0x30,0x20, + 0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x35, + 0x2e,0x73,0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x3b,0x0a,0x20, + 0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32, + 0x32,0x35,0x20,0x3d,0x20,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f, + 0x32,0x31,0x31,0x20,0x2b,0x20,0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72, + 0x61,0x6d,0x20,0x3d,0x20,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32, + 0x35,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x76,0x65,0x63, + 0x33,0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35, + 0x39,0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29, + 0x2c,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63, + 0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x32,0x34, + 0x32,0x20,0x3d,0x20,0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69, + 0x63,0x6b,0x28,0x70,0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x31,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65, + 0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x20,0x3d,0x20,0x5f,0x32,0x30, + 0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, + 0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20,0x5f,0x32,0x32,0x35, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67, + 0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20, + 0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20, + 0x76,0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20,0x5f, + 0x32,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76, + 0x65,0x63,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x32, + 0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f, + 0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x68,0x69,0x67, + 0x68,0x70,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x37,0x37,0x20,0x3d,0x20, + 0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32, + 0x32,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c, 0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x76,0x65, - 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32,0x33,0x32,0x29,0x20, - 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x37,0x38,0x29,0x29,0x20, - 0x2a,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29,0x20,0x2a,0x20,0x76, - 0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37, - 0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b, - 0x20,0x28,0x28,0x5f,0x32,0x33,0x32,0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72, - 0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79, - 0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x76,0x65, - 0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d,0x61,0x78,0x28,0x64, - 0x6f,0x74,0x28,0x5f,0x31,0x39,0x32,0x2c,0x20,0x5f,0x32,0x30,0x31,0x29,0x2c,0x20, - 0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2b,0x20, - 0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35, - 0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38, - 0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c, - 0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20, - 0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, - 0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x5f,0x31,0x39,0x32,0x20,0x2a,0x20,0x30,0x2e, - 0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73, - 0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20, - 0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, - 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x63,0x6f,0x6c,0x6f, - 0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x36,0x37,0x20,0x2a, - 0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, - 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e, - 0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34, - 0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31, - 0x38,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65, - 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x63,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x20, + 0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, + 0x63,0x29,0x29,0x20,0x2a,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x29, + 0x20,0x2a,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x33,0x31,0x38,0x33,0x34,0x31, + 0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36,0x38,0x37,0x35, + 0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x34,0x32,0x20,0x2a,0x20,0x28,0x44, + 0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47,0x58,0x28,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x2c, + 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47,0x65,0x6f,0x6d, + 0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f, + 0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70,0x61,0x72,0x61, + 0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29,0x29,0x29,0x20, + 0x2f,0x20,0x76,0x65,0x63,0x33,0x28,0x28,0x28,0x34,0x2e,0x30,0x20,0x2a,0x20,0x6d, + 0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x31, + 0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37, + 0x29,0x20,0x2b,0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33, + 0x37,0x38,0x37,0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33, + 0x36,0x37,0x31,0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f, + 0x32,0x37,0x37,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72, + 0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30, + 0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, + 0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x5f,0x32,0x30,0x32,0x20, + 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x35,0x29,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74,0x72,0x69,0x78,0x65, 0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b,0x30,0x5d,0x2e,0x78, - 0x20,0x3d,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20, - 0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x28,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, - 0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x39,0x32,0x20,0x2a,0x20,0x30,0x2e, - 0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x29, - 0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x36,0x37,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30, - 0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37, - 0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30,0x2e,0x36,0x30,0x30, - 0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31, - 0x35,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x38,0x37,0x2c,0x20,0x31, - 0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, - 0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76, - 0x65,0x63,0x34,0x28,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x38,0x37, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a, - 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x76,0x74, - 0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20,0x30,0x2e, - 0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20,0x5f,0x33,0x39,0x30, - 0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63, - 0x33,0x20,0x5f,0x33,0x39,0x34,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x33,0x39, - 0x30,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28,0x31,0x2e,0x30,0x2c, - 0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x76,0x65,0x63,0x33, - 0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20,0x3d,0x20,0x5f, - 0x33,0x39,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66, - 0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x33, - 0x39,0x34,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x33,0x39, - 0x34,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d,0x0a,0x0a,0x00, + 0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61, + 0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32, + 0x37,0x37,0x20,0x2a,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, + 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20, + 0x2b,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, + 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20, + 0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x74, + 0x72,0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x5b, + 0x30,0x5d,0x2e,0x78,0x20,0x3d,0x3d,0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x28,0x28,0x63,0x6f,0x6c, + 0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x30,0x32,0x20, + 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x76,0x65,0x63,0x33,0x28,0x30,0x2e, + 0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37,0x20,0x2a,0x20, + 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, + 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x20,0x2b,0x20,0x30, + 0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38,0x35,0x37, + 0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f,0x31,0x39, + 0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x20,0x3d,0x20,0x76,0x65,0x63,0x34,0x28,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20, + 0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66, + 0x20,0x28,0x76,0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20, + 0x3e,0x20,0x30,0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70,0x20,0x76,0x65,0x63,0x34,0x20, + 0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f, + 0x72,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x68,0x69,0x67,0x68,0x70, + 0x20,0x76,0x65,0x63,0x33,0x20,0x5f,0x34,0x30,0x32,0x20,0x3d,0x20,0x6d,0x69,0x78, + 0x28,0x5f,0x33,0x39,0x38,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x76,0x65,0x63,0x33,0x28, + 0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20, + 0x76,0x65,0x63,0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, + 0x20,0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x79,0x20, + 0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d, + 0x20,0x5f,0x34,0x30,0x32,0x2e,0x7a,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x7d, + 0x0a,0x0a,0x00, ]; /* #include @@ -1106,59 +1154,69 @@ vs_trixel_source_metal_macos := u8.[ return GeometrySchlickGGX(param_2, param_3) * GeometrySchlickGGX(param, param_1); } - fragment main0_out main0(main0_in in [[stage_in]], constant trixel_world_config& _205 [[buffer(0)]], constant trixel_fs_params& _303 [[buffer(1)]]) + fragment main0_out main0(main0_in in [[stage_in]], constant trixel_world_config& _215 [[buffer(0)]], constant trixel_fs_params& _313 [[buffer(1)]]) { main0_out out = {}; int _150 = int(round(in.color.w * 255.0)); - float _172 = fast::max(float((_150 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); - float _178 = float((_150 >> 3) & 3) * 0.3333333432674407958984375; - float3 light = in.color.xyz * 0.300000011920928955078125; - float3 _187 = (in.color.xyz * (float((_150 >> 1) & 3) * 0.3333333432674407958984375)) * 5.0; - float3 _192 = fast::normalize(in.fnormal.xyz); - float3 _201 = fast::normalize(in.cam - in.pos.xyz); - float3 _210 = fast::normalize(float3(_205.sunPosition)); - float3 _215 = fast::normalize(_201 + _210); - float param = fast::max(dot(_215, _201), 0.0); - float3 param_1 = mix(float3(0.039999999105930328369140625), in.color.xyz, float3(_178)); - float3 _232 = fresnelSchlick(param, param_1); - float3 param_2 = _192; - float3 param_3 = _215; - float param_4 = _172; - float3 param_5 = _192; - float3 param_6 = _201; - float3 param_7 = _210; - float param_8 = _172; - float _267 = fast::max(dot(_192, _210), 0.0); - light += ((((((float3(1.0) - _232) * (1.0 - _178)) * in.color.xyz) * float3(0.3183410167694091796875)) + ((_232 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(_192, _201), 0.0)) * _267) + 9.9999997473787516355514526367188e-05))) * _267); - if (_303.view_mode == 1) + float emittance = 0.0; + float roughness = 0.0500000007450580596923828125; + float metallic = 0.0; + if ((_150 & 1) != 0) { - out.frag_color = float4((_192 * 0.5) + float3(0.5), 1.0); + emittance = float((_150 >> 1) & 127) * 0.0078740157186985015869140625; } else { - if (_303.view_mode == 2) + roughness = fast::max(float((_150 >> 5) & 7) * 0.14285714924335479736328125, 0.0500000007450580596923828125); + metallic = float((_150 >> 3) & 3) * 0.3333333432674407958984375; + } + float3 light = in.color.xyz * 0.300000011920928955078125; + float3 _197 = (in.color.xyz * emittance) * 5.0; + float3 _202 = fast::normalize(in.fnormal.xyz); + float3 _211 = fast::normalize(in.cam - in.pos.xyz); + float3 _220 = fast::normalize(float3(_215.sunPosition)); + float3 _225 = fast::normalize(_211 + _220); + float param = fast::max(dot(_225, _211), 0.0); + float3 param_1 = mix(float3(0.039999999105930328369140625), in.color.xyz, float3(metallic)); + float3 _242 = fresnelSchlick(param, param_1); + float3 param_2 = _202; + float3 param_3 = _225; + float param_4 = roughness; + float3 param_5 = _202; + float3 param_6 = _211; + float3 param_7 = _220; + float param_8 = roughness; + float _277 = fast::max(dot(_202, _220), 0.0); + light += ((((((float3(1.0) - _242) * (1.0 - metallic)) * in.color.xyz) * float3(0.3183410167694091796875)) + ((_242 * (DistributionGGX(param_2, param_3, param_4) * GeometrySmith(param_5, param_6, param_7, param_8))) / float3(((4.0 * fast::max(dot(_202, _211), 0.0)) * _277) + 9.9999997473787516355514526367188e-05))) * _277); + if (_313.view_mode == 1) + { + out.frag_color = float4((_202 * 0.5) + float3(0.5), 1.0); + } + else + { + if (_313.view_mode == 2) { - out.frag_color = float4((in.color.xyz * ((_267 * 0.60000002384185791015625) + 0.4000000059604644775390625)) + _187, 1.0); + out.frag_color = float4((in.color.xyz * ((_277 * 0.60000002384185791015625) + 0.4000000059604644775390625)) + _197, 1.0); } else { - if (_303.view_mode == 3) + if (_313.view_mode == 3) { - out.frag_color = float4(((in.color.xyz * ((_192 * 0.5) + float3(0.5))) * ((_267 * 0.4000000059604644775390625) + 0.60000002384185791015625)) + _187, 1.0); + out.frag_color = float4(((in.color.xyz * ((_202 * 0.5) + float3(0.5))) * ((_277 * 0.4000000059604644775390625) + 0.60000002384185791015625)) + _197, 1.0); } else { - out.frag_color = float4(light + _187, 1.0); + out.frag_color = float4(light + _197, 1.0); } } } if (in.vtrixel_state > 0.5) { - float4 _390 = out.frag_color; - float3 _394 = mix(_390.xyz, float3(1.0, 1.0, 0.5), float3(0.5)); - out.frag_color.x = _394.x; - out.frag_color.y = _394.y; - out.frag_color.z = _394.z; + float4 _398 = out.frag_color; + float3 _402 = mix(_398.xyz, float3(1.0, 1.0, 0.5), float3(0.5)); + out.frag_color.x = _402.x; + out.frag_color.y = _402.y; + out.frag_color.z = _402.z; } return out; } @@ -1299,158 +1357,172 @@ fs_trixel_source_metal_macos := u8.[ 0x6e,0x20,0x69,0x6e,0x20,0x5b,0x5b,0x73,0x74,0x61,0x67,0x65,0x5f,0x69,0x6e,0x5d, 0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72,0x69,0x78, 0x65,0x6c,0x5f,0x77,0x6f,0x72,0x6c,0x64,0x5f,0x63,0x6f,0x6e,0x66,0x69,0x67,0x26, - 0x20,0x5f,0x32,0x30,0x35,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30, + 0x20,0x5f,0x32,0x31,0x35,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x30, 0x29,0x5d,0x5d,0x2c,0x20,0x63,0x6f,0x6e,0x73,0x74,0x61,0x6e,0x74,0x20,0x74,0x72, 0x69,0x78,0x65,0x6c,0x5f,0x66,0x73,0x5f,0x70,0x61,0x72,0x61,0x6d,0x73,0x26,0x20, - 0x5f,0x33,0x30,0x33,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29, + 0x5f,0x33,0x31,0x33,0x20,0x5b,0x5b,0x62,0x75,0x66,0x66,0x65,0x72,0x28,0x31,0x29, 0x5d,0x5d,0x29,0x0a,0x7b,0x0a,0x20,0x20,0x20,0x20,0x6d,0x61,0x69,0x6e,0x30,0x5f, 0x6f,0x75,0x74,0x20,0x6f,0x75,0x74,0x20,0x3d,0x20,0x7b,0x7d,0x3b,0x0a,0x20,0x20, 0x20,0x20,0x69,0x6e,0x74,0x20,0x5f,0x31,0x35,0x30,0x20,0x3d,0x20,0x69,0x6e,0x74, 0x28,0x72,0x6f,0x75,0x6e,0x64,0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e, 0x77,0x20,0x2a,0x20,0x32,0x35,0x35,0x2e,0x30,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x32,0x20,0x3d,0x20,0x66,0x61, - 0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f, - 0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33,0x33, - 0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20,0x30, - 0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38, - 0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f,0x31,0x37,0x38,0x20,0x3d, - 0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20, - 0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33,0x33,0x33,0x33, - 0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39,0x35,0x38,0x39, - 0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x3d,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c, - 0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30, - 0x30,0x30,0x31,0x31,0x39,0x32,0x30,0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38, - 0x31,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, - 0x5f,0x31,0x38,0x37,0x20,0x3d,0x20,0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72, - 0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f, - 0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a, - 0x20,0x30,0x2e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34, - 0x34,0x30,0x37,0x39,0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x29,0x29,0x20,0x2a, - 0x20,0x35,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x5f,0x31,0x39,0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f, - 0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d, - 0x61,0x6c,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f, - 0x61,0x74,0x33,0x20,0x5f,0x32,0x30,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a, - 0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61, - 0x6d,0x20,0x2d,0x20,0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x31,0x30, - 0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69, - 0x7a,0x65,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x30,0x35,0x2e,0x73, - 0x75,0x6e,0x50,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x31,0x35,0x20,0x3d,0x20, - 0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28, - 0x5f,0x32,0x30,0x31,0x20,0x2b,0x20,0x5f,0x32,0x31,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20, - 0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32, - 0x31,0x35,0x2c,0x20,0x5f,0x32,0x30,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61, - 0x6d,0x5f,0x31,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x28,0x30,0x2e,0x30,0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39, - 0x33,0x30,0x33,0x32,0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c, - 0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x31,0x37,0x38,0x29,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x33,0x32,0x20,0x3d,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65, + 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61, + 0x74,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x30,0x2e, + 0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35,0x38,0x30, + 0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63, + 0x20,0x3d,0x20,0x30,0x2e,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28, + 0x28,0x5f,0x31,0x35,0x30,0x20,0x26,0x20,0x31,0x29,0x20,0x21,0x3d,0x20,0x30,0x29, + 0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65, + 0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x28,0x28,0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x31,0x29,0x20,0x26,0x20,0x31, + 0x32,0x37,0x29,0x20,0x2a,0x20,0x30,0x2e,0x30,0x30,0x37,0x38,0x37,0x34,0x30,0x31, + 0x35,0x37,0x31,0x38,0x36,0x39,0x38,0x35,0x30,0x31,0x35,0x38,0x36,0x39,0x31,0x34, + 0x30,0x36,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e,0x65,0x73,0x73,0x20,0x3d,0x20,0x66, + 0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28, + 0x5f,0x31,0x35,0x30,0x20,0x3e,0x3e,0x20,0x35,0x29,0x20,0x26,0x20,0x37,0x29,0x20, + 0x2a,0x20,0x30,0x2e,0x31,0x34,0x32,0x38,0x35,0x37,0x31,0x34,0x39,0x32,0x34,0x33, + 0x33,0x35,0x34,0x37,0x39,0x37,0x33,0x36,0x33,0x32,0x38,0x31,0x32,0x35,0x2c,0x20, + 0x30,0x2e,0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x37,0x34,0x35,0x30,0x35, + 0x38,0x30,0x35,0x39,0x36,0x39,0x32,0x33,0x38,0x32,0x38,0x31,0x32,0x35,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69, + 0x63,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x28,0x28,0x5f,0x31,0x35,0x30,0x20, + 0x3e,0x3e,0x20,0x33,0x29,0x20,0x26,0x20,0x33,0x29,0x20,0x2a,0x20,0x30,0x2e,0x33, + 0x33,0x33,0x33,0x33,0x33,0x33,0x34,0x33,0x32,0x36,0x37,0x34,0x34,0x30,0x37,0x39, + 0x35,0x38,0x39,0x38,0x34,0x33,0x37,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a, + 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x6c,0x69,0x67,0x68,0x74, + 0x20,0x3d,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20, + 0x2a,0x20,0x30,0x2e,0x33,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,0x39,0x32,0x30, + 0x39,0x32,0x38,0x39,0x35,0x35,0x30,0x37,0x38,0x31,0x32,0x35,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x31,0x39,0x37,0x20,0x3d,0x20, + 0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20, + 0x65,0x6d,0x69,0x74,0x74,0x61,0x6e,0x63,0x65,0x29,0x20,0x2a,0x20,0x35,0x2e,0x30, + 0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x30, + 0x32,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c, + 0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x66,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x2e,0x78, + 0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x5f,0x32,0x31,0x31,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72, + 0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x69,0x6e,0x2e,0x63,0x61,0x6d,0x20,0x2d,0x20, + 0x69,0x6e,0x2e,0x70,0x6f,0x73,0x2e,0x78,0x79,0x7a,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x32,0x30,0x20,0x3d,0x20,0x66, + 0x61,0x73,0x74,0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x28,0x5f,0x32,0x31,0x35,0x2e,0x73,0x75,0x6e,0x50,0x6f, + 0x73,0x69,0x74,0x69,0x6f,0x6e,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x32,0x35,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, + 0x3a,0x3a,0x6e,0x6f,0x72,0x6d,0x61,0x6c,0x69,0x7a,0x65,0x28,0x5f,0x32,0x31,0x31, + 0x20,0x2b,0x20,0x5f,0x32,0x32,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c, + 0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, + 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x32,0x32,0x35,0x2c,0x20, + 0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x20, + 0x3d,0x20,0x6d,0x69,0x78,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x30, + 0x33,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x30,0x35,0x39,0x33,0x30,0x33,0x32, + 0x38,0x33,0x36,0x39,0x31,0x34,0x30,0x36,0x32,0x35,0x29,0x2c,0x20,0x69,0x6e,0x2e, + 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, + 0x33,0x28,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29,0x29,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x32,0x34,0x32,0x20,0x3d,0x20, 0x66,0x72,0x65,0x73,0x6e,0x65,0x6c,0x53,0x63,0x68,0x6c,0x69,0x63,0x6b,0x28,0x70, 0x61,0x72,0x61,0x6d,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x31,0x29,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x32,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x5f,0x32,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x33,0x20,0x3d,0x20, - 0x5f,0x32,0x31,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, - 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x5f,0x31,0x37,0x32,0x3b,0x0a, + 0x5f,0x32,0x32,0x35,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x35,0x20,0x3d,0x20,0x5f,0x32,0x30,0x32,0x3b,0x0a, 0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x35,0x20,0x3d,0x20,0x5f,0x31,0x39,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x20,0x3d,0x20, - 0x5f,0x32,0x30,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20,0x5f,0x32,0x31,0x30,0x3b, - 0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x70,0x61,0x72,0x61,0x6d, - 0x5f,0x38,0x20,0x3d,0x20,0x5f,0x31,0x37,0x32,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x20,0x5f,0x32,0x36,0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74, - 0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f,0x74,0x28,0x5f,0x31,0x39,0x32,0x2c,0x20, - 0x5f,0x32,0x31,0x30,0x29,0x2c,0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28, - 0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32, - 0x33,0x32,0x29,0x20,0x2a,0x20,0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x5f,0x31,0x37, - 0x38,0x29,0x29,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78, - 0x79,0x7a,0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33, - 0x31,0x38,0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37, - 0x39,0x36,0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x33,0x32, - 0x20,0x2a,0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e, - 0x47,0x47,0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72, - 0x61,0x6d,0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a, - 0x20,0x47,0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70, - 0x61,0x72,0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c, - 0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f, - 0x38,0x29,0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x28, - 0x34,0x2e,0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28, - 0x64,0x6f,0x74,0x28,0x5f,0x31,0x39,0x32,0x2c,0x20,0x5f,0x32,0x30,0x31,0x29,0x2c, - 0x20,0x30,0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37,0x29,0x20,0x2b, - 0x20,0x39,0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37, - 0x35,0x31,0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31, - 0x38,0x38,0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x36,0x37, - 0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x30,0x33,0x2e, - 0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a, - 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75, - 0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66, - 0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x5f,0x31,0x39,0x32,0x20,0x2a,0x20,0x30,0x2e, - 0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29, - 0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x30,0x33,0x2e,0x76,0x69, - 0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x69,0x6e,0x2e, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32, - 0x36,0x37,0x20,0x2a,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33, - 0x38,0x34,0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20, - 0x2b,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, - 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20, - 0x2b,0x20,0x5f,0x31,0x38,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f, - 0x33,0x30,0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d, - 0x20,0x33,0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x5f,0x36,0x20,0x3d,0x20,0x5f,0x32,0x31,0x31,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66, + 0x6c,0x6f,0x61,0x74,0x33,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x37,0x20,0x3d,0x20, + 0x5f,0x32,0x32,0x30,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20, + 0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x20,0x3d,0x20,0x72,0x6f,0x75,0x67,0x68,0x6e, + 0x65,0x73,0x73,0x3b,0x0a,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x20,0x5f, + 0x32,0x37,0x37,0x20,0x3d,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28, + 0x64,0x6f,0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x32,0x30,0x29,0x2c, + 0x20,0x30,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x6c,0x69,0x67,0x68,0x74, + 0x20,0x2b,0x3d,0x20,0x28,0x28,0x28,0x28,0x28,0x28,0x66,0x6c,0x6f,0x61,0x74,0x33, + 0x28,0x31,0x2e,0x30,0x29,0x20,0x2d,0x20,0x5f,0x32,0x34,0x32,0x29,0x20,0x2a,0x20, + 0x28,0x31,0x2e,0x30,0x20,0x2d,0x20,0x6d,0x65,0x74,0x61,0x6c,0x6c,0x69,0x63,0x29, + 0x29,0x20,0x2a,0x20,0x69,0x6e,0x2e,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a, + 0x29,0x20,0x2a,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x33,0x31,0x38, + 0x33,0x34,0x31,0x30,0x31,0x36,0x37,0x36,0x39,0x34,0x30,0x39,0x31,0x37,0x39,0x36, + 0x38,0x37,0x35,0x29,0x29,0x20,0x2b,0x20,0x28,0x28,0x5f,0x32,0x34,0x32,0x20,0x2a, + 0x20,0x28,0x44,0x69,0x73,0x74,0x72,0x69,0x62,0x75,0x74,0x69,0x6f,0x6e,0x47,0x47, + 0x58,0x28,0x70,0x61,0x72,0x61,0x6d,0x5f,0x32,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d, + 0x5f,0x33,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x34,0x29,0x20,0x2a,0x20,0x47, + 0x65,0x6f,0x6d,0x65,0x74,0x72,0x79,0x53,0x6d,0x69,0x74,0x68,0x28,0x70,0x61,0x72, + 0x61,0x6d,0x5f,0x35,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x36,0x2c,0x20,0x70, + 0x61,0x72,0x61,0x6d,0x5f,0x37,0x2c,0x20,0x70,0x61,0x72,0x61,0x6d,0x5f,0x38,0x29, + 0x29,0x29,0x20,0x2f,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x28,0x28,0x34,0x2e, + 0x30,0x20,0x2a,0x20,0x66,0x61,0x73,0x74,0x3a,0x3a,0x6d,0x61,0x78,0x28,0x64,0x6f, + 0x74,0x28,0x5f,0x32,0x30,0x32,0x2c,0x20,0x5f,0x32,0x31,0x31,0x29,0x2c,0x20,0x30, + 0x2e,0x30,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x20,0x2b,0x20,0x39, + 0x2e,0x39,0x39,0x39,0x39,0x39,0x39,0x37,0x34,0x37,0x33,0x37,0x38,0x37,0x35,0x31, + 0x36,0x33,0x35,0x35,0x35,0x31,0x34,0x35,0x32,0x36,0x33,0x36,0x37,0x31,0x38,0x38, + 0x65,0x2d,0x30,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x5f,0x32,0x37,0x37,0x29,0x3b, + 0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31,0x33,0x2e,0x76,0x69, + 0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x31,0x29,0x0a,0x20,0x20, + 0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e, + 0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f, + 0x61,0x74,0x34,0x28,0x28,0x5f,0x32,0x30,0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29, + 0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x30,0x2e,0x35,0x29,0x2c,0x20, + 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31,0x33,0x2e,0x76,0x69,0x65,0x77, + 0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x32,0x29,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, 0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, - 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x28,0x69,0x6e,0x2e,0x63, - 0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x31,0x39, - 0x32,0x20,0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x36, - 0x37,0x20,0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39, - 0x36,0x30,0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29, - 0x20,0x2b,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, - 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x20,0x2b, - 0x20,0x5f,0x31,0x38,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72, - 0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x34,0x28,0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x38,0x37,0x2c,0x20, - 0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20, - 0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x2e,0x76, - 0x74,0x72,0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20,0x30, - 0x2e,0x35,0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x39,0x30,0x20,0x3d,0x20, - 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f, - 0x33,0x39,0x34,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x33,0x39,0x30,0x2e,0x78, - 0x79,0x7a,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20, - 0x31,0x2e,0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74, - 0x33,0x28,0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, - 0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e, - 0x78,0x20,0x3d,0x20,0x5f,0x33,0x39,0x34,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20, - 0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c, - 0x6f,0x72,0x2e,0x79,0x20,0x3d,0x20,0x5f,0x33,0x39,0x34,0x2e,0x79,0x3b,0x0a,0x20, - 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f, - 0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x33,0x39,0x34,0x2e,0x7a, - 0x3b,0x0a,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75, - 0x72,0x6e,0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, + 0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x69,0x6e,0x2e,0x63,0x6f, + 0x6c,0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37, + 0x20,0x2a,0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34, + 0x31,0x38,0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x20,0x2b,0x20, + 0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30,0x34,0x36, + 0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20, + 0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x65,0x6c, + 0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x5f,0x33,0x31, + 0x33,0x2e,0x76,0x69,0x65,0x77,0x5f,0x6d,0x6f,0x64,0x65,0x20,0x3d,0x3d,0x20,0x33, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d, + 0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28,0x28,0x28,0x69,0x6e,0x2e,0x63,0x6f,0x6c, + 0x6f,0x72,0x2e,0x78,0x79,0x7a,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x30,0x32,0x20, + 0x2a,0x20,0x30,0x2e,0x35,0x29,0x20,0x2b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x30,0x2e,0x35,0x29,0x29,0x29,0x20,0x2a,0x20,0x28,0x28,0x5f,0x32,0x37,0x37,0x20, + 0x2a,0x20,0x30,0x2e,0x34,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x35,0x39,0x36,0x30, + 0x34,0x36,0x34,0x34,0x37,0x37,0x35,0x33,0x39,0x30,0x36,0x32,0x35,0x29,0x20,0x2b, + 0x20,0x30,0x2e,0x36,0x30,0x30,0x30,0x30,0x30,0x30,0x32,0x33,0x38,0x34,0x31,0x38, + 0x35,0x37,0x39,0x31,0x30,0x31,0x35,0x36,0x32,0x35,0x29,0x29,0x20,0x2b,0x20,0x5f, + 0x31,0x39,0x37,0x2c,0x20,0x31,0x2e,0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x65,0x6c,0x73,0x65,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67, + 0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x3d,0x20,0x66,0x6c,0x6f,0x61,0x74,0x34,0x28, + 0x6c,0x69,0x67,0x68,0x74,0x20,0x2b,0x20,0x5f,0x31,0x39,0x37,0x2c,0x20,0x31,0x2e, + 0x30,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20, + 0x7d,0x0a,0x20,0x20,0x20,0x20,0x69,0x66,0x20,0x28,0x69,0x6e,0x2e,0x76,0x74,0x72, + 0x69,0x78,0x65,0x6c,0x5f,0x73,0x74,0x61,0x74,0x65,0x20,0x3e,0x20,0x30,0x2e,0x35, + 0x29,0x0a,0x20,0x20,0x20,0x20,0x7b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x66,0x6c,0x6f,0x61,0x74,0x34,0x20,0x5f,0x33,0x39,0x38,0x20,0x3d,0x20,0x6f,0x75, + 0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x3b,0x0a,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x20,0x5f,0x34,0x30, + 0x32,0x20,0x3d,0x20,0x6d,0x69,0x78,0x28,0x5f,0x33,0x39,0x38,0x2e,0x78,0x79,0x7a, + 0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28,0x31,0x2e,0x30,0x2c,0x20,0x31,0x2e, + 0x30,0x2c,0x20,0x30,0x2e,0x35,0x29,0x2c,0x20,0x66,0x6c,0x6f,0x61,0x74,0x33,0x28, + 0x30,0x2e,0x35,0x29,0x29,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x6f, + 0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72,0x2e,0x78,0x20, + 0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x78,0x3b,0x0a,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f,0x6c,0x6f,0x72, + 0x2e,0x79,0x20,0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x79,0x3b,0x0a,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x6f,0x75,0x74,0x2e,0x66,0x72,0x61,0x67,0x5f,0x63,0x6f, + 0x6c,0x6f,0x72,0x2e,0x7a,0x20,0x3d,0x20,0x5f,0x34,0x30,0x32,0x2e,0x7a,0x3b,0x0a, + 0x20,0x20,0x20,0x20,0x7d,0x0a,0x20,0x20,0x20,0x20,0x72,0x65,0x74,0x75,0x72,0x6e, + 0x20,0x6f,0x75,0x74,0x3b,0x0a,0x7d,0x0a,0x0a,0x00, ]; trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc: sg_shader_desc; @@ -1480,49 +1552,49 @@ trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[1].size = 160; desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_205.skyBase"; + desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_215.skyBase"; desc.uniform_blocks[1].glsl_uniforms[1].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_205.skyTop"; + desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_215.skyTop"; desc.uniform_blocks[1].glsl_uniforms[2].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_205.sunDisk"; + desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_215.sunDisk"; desc.uniform_blocks[1].glsl_uniforms[3].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_205.horizonHalo"; + desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_215.horizonHalo"; desc.uniform_blocks[1].glsl_uniforms[4].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_205.sunHalo"; + desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_215.sunHalo"; desc.uniform_blocks[1].glsl_uniforms[5].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_205.sunLightColor"; + desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_215.sunLightColor"; desc.uniform_blocks[1].glsl_uniforms[6].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_205.sunPosition"; + desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_215.sunPosition"; desc.uniform_blocks[1].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_205.sunIntensity"; + desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_215.sunIntensity"; desc.uniform_blocks[1].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_205.skyIntensity"; + desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_215.skyIntensity"; desc.uniform_blocks[1].glsl_uniforms[9].type = .INT; desc.uniform_blocks[1].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_205.hasClouds"; + desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_215.hasClouds"; desc.uniform_blocks[1].glsl_uniforms[10].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_205.planeHeight"; + desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_215.planeHeight"; desc.uniform_blocks[1].glsl_uniforms[11].type = .INT; desc.uniform_blocks[1].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_205.animatePlaneHeight"; + desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_215.animatePlaneHeight"; desc.uniform_blocks[1].glsl_uniforms[12].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_205.waterColor"; + desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_215.waterColor"; desc.uniform_blocks[1].glsl_uniforms[13].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[13].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_205.deepColor"; + desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_215.deepColor"; desc.uniform_blocks[1].glsl_uniforms[14].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[14].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_205.time"; + desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_215.time"; desc.uniform_blocks[2].stage = .FRAGMENT; desc.uniform_blocks[2].layout = .STD140; desc.uniform_blocks[2].size = 16; @@ -1553,49 +1625,49 @@ trixel_shader_desc :: (backend: sg_backend) -> sg_shader_desc { desc.uniform_blocks[1].size = 160; desc.uniform_blocks[1].glsl_uniforms[0].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[0].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_205.skyBase"; + desc.uniform_blocks[1].glsl_uniforms[0].glsl_name = "_215.skyBase"; desc.uniform_blocks[1].glsl_uniforms[1].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[1].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_205.skyTop"; + desc.uniform_blocks[1].glsl_uniforms[1].glsl_name = "_215.skyTop"; desc.uniform_blocks[1].glsl_uniforms[2].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[2].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_205.sunDisk"; + desc.uniform_blocks[1].glsl_uniforms[2].glsl_name = "_215.sunDisk"; desc.uniform_blocks[1].glsl_uniforms[3].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[3].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_205.horizonHalo"; + desc.uniform_blocks[1].glsl_uniforms[3].glsl_name = "_215.horizonHalo"; desc.uniform_blocks[1].glsl_uniforms[4].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[4].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_205.sunHalo"; + desc.uniform_blocks[1].glsl_uniforms[4].glsl_name = "_215.sunHalo"; desc.uniform_blocks[1].glsl_uniforms[5].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[5].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_205.sunLightColor"; + desc.uniform_blocks[1].glsl_uniforms[5].glsl_name = "_215.sunLightColor"; desc.uniform_blocks[1].glsl_uniforms[6].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[6].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_205.sunPosition"; + desc.uniform_blocks[1].glsl_uniforms[6].glsl_name = "_215.sunPosition"; desc.uniform_blocks[1].glsl_uniforms[7].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[7].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_205.sunIntensity"; + desc.uniform_blocks[1].glsl_uniforms[7].glsl_name = "_215.sunIntensity"; desc.uniform_blocks[1].glsl_uniforms[8].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[8].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_205.skyIntensity"; + desc.uniform_blocks[1].glsl_uniforms[8].glsl_name = "_215.skyIntensity"; desc.uniform_blocks[1].glsl_uniforms[9].type = .INT; desc.uniform_blocks[1].glsl_uniforms[9].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_205.hasClouds"; + desc.uniform_blocks[1].glsl_uniforms[9].glsl_name = "_215.hasClouds"; desc.uniform_blocks[1].glsl_uniforms[10].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[10].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_205.planeHeight"; + desc.uniform_blocks[1].glsl_uniforms[10].glsl_name = "_215.planeHeight"; desc.uniform_blocks[1].glsl_uniforms[11].type = .INT; desc.uniform_blocks[1].glsl_uniforms[11].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_205.animatePlaneHeight"; + desc.uniform_blocks[1].glsl_uniforms[11].glsl_name = "_215.animatePlaneHeight"; desc.uniform_blocks[1].glsl_uniforms[12].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[12].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_205.waterColor"; + desc.uniform_blocks[1].glsl_uniforms[12].glsl_name = "_215.waterColor"; desc.uniform_blocks[1].glsl_uniforms[13].type = .FLOAT3; desc.uniform_blocks[1].glsl_uniforms[13].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_205.deepColor"; + desc.uniform_blocks[1].glsl_uniforms[13].glsl_name = "_215.deepColor"; desc.uniform_blocks[1].glsl_uniforms[14].type = .FLOAT; desc.uniform_blocks[1].glsl_uniforms[14].array_count = 0; - desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_205.time"; + desc.uniform_blocks[1].glsl_uniforms[14].glsl_name = "_215.time"; desc.uniform_blocks[2].stage = .FRAGMENT; desc.uniform_blocks[2].layout = .STD140; desc.uniform_blocks[2].size = 16; diff --git a/src/shaders/shader_trile.glsl b/src/shaders/shader_trile.glsl index 484cb23..f08dc26 100644 --- a/src/shaders/shader_trile.glsl +++ b/src/shaders/shader_trile.glsl @@ -490,10 +490,17 @@ void main() { vec3 albedo = trixel_material.xyz; int packedMaterial = int(round(trixel_material.w * 255.0)); - float emittance = float((packedMaterial >> 1) & 0x3) / 3.0; - int roughnessInt = (packedMaterial >> 5) & 0x7; - float roughness = max(float(roughnessInt) / 7.0, 0.05); - float metallic = float((packedMaterial >> 3) & 0x3) / 3.0; + float emittance = 0.0; + int roughnessInt = 0; + float roughness = 0.05; + float metallic = 0.0; + if ((packedMaterial & 0x1) != 0) { + emittance = float((packedMaterial >> 1) & 0x7F) / 127.0; + } else { + roughnessInt = (packedMaterial >> 5) & 0x7; + roughness = max(float(roughnessInt) / 7.0, 0.05); + metallic = float((packedMaterial >> 3) & 0x3) / 3.0; + } // Snap normal to nearest axis to avoid interpolation noise vec3 absN = abs(fnormal.xyz); diff --git a/src/shaders/shader_trixel.glsl b/src/shaders/shader_trixel.glsl index 0d280ab..7ed2ebb 100644 --- a/src/shaders/shader_trixel.glsl +++ b/src/shaders/shader_trixel.glsl @@ -100,10 +100,17 @@ void main() { // Get the material info. vec3 albedo = color.xyz; int packedMaterial = int(round(color.w*255.0)); - float emittance = float((packedMaterial >> 1) & 0x3) / 3.0; - int roughnessInt = (packedMaterial >> 5) & 0x7; - float roughness = max(float(roughnessInt) / 7.0, 0.05); - float metallic = float((packedMaterial >> 3) & 0x3) / 3.0; + float emittance = 0.0; + int roughnessInt = 0; + float roughness = 0.05; + float metallic = 0.0; + if ((packedMaterial & 0x1) != 0) { + emittance = float((packedMaterial >> 1) & 0x7F) / 127.0; + } else { + roughnessInt = (packedMaterial >> 5) & 0x7; + roughness = max(float(roughnessInt) / 7.0, 0.05); + metallic = float((packedMaterial >> 3) & 0x3) / 3.0; + } // Ambient light. vec3 light = 0.3 * albedo; diff --git a/src/trile.jai b/src/trile.jai index 88380d7..e26a210 100644 --- a/src/trile.jai +++ b/src/trile.jai @@ -136,10 +136,9 @@ ltriles :: () { } @Command Material :: struct { - addRoughness : u8 = 0; roughness : u8 = 4; metallic : u8 = 0; - emittance : u8 = 0; + emittance : u8 = 0; // 0 = not emissive; 1-127 = emissive (replaces roughness/metallic in encoding) color : Vector3 = .{1.0, 0.0, 1.0}; } @@ -174,12 +173,14 @@ TrixelSerialize :: [5]u8; TrileSerialize :: struct { name : string = "test"; - trixels : [16][16][16] TrixelSerialize; + version : int = 0; + trixels : [16][16][16] TrixelSerialize; }; trile_to_serialize_form :: (t: Trile) -> TrileSerialize { ts := TrileSerialize.{ - name = t.name, + name = t.name, + version = 1, }; for i: 0..15 { for j: 0..15 { @@ -193,16 +194,27 @@ trile_to_serialize_form :: (t: Trile) -> TrileSerialize { } trile_from_serialize_form :: (ts: TrileSerialize) -> Trile { - t := Trile.{ - name = sprint("%",ts.name) - }; + t := Trile.{ name = sprint("%", ts.name) }; for i: 0..15 { for j: 0..15 { for k: 0..15 { matinfo := ts.trixels[i][j][k]; - mat := material_from_rgba(matinfo[1], matinfo[2], matinfo[3], matinfo[4]); + mat : Material; + if ts.version == 0 { + // Old format: bit 0=addRoughness(unused), bits 1-2=emittance(0-3), bits 3-4=metallic, bits 5-7=roughness + packed := matinfo[4]; + old_emittance := (packed >> 1) & 0x3; + mat.metallic = (packed >> 3) & 0x3; + mat.roughness = (packed >> 5) & 0x7; + mat.emittance = old_emittance * 42; // scale 0-3 → 0,42,84,126 + mat.color.x = cast(float) matinfo[1] / 255.0; + mat.color.y = cast(float) matinfo[2] / 255.0; + mat.color.z = cast(float) matinfo[3] / 255.0; + } else { + mat = material_from_rgba(matinfo[1], matinfo[2], matinfo[3], matinfo[4]); + } t.trixels[i][j][k].material = mat; - t.trixels[i][j][k].empty = matinfo[0] == 0; + t.trixels[i][j][k].empty = matinfo[0] == 0; } } } @@ -210,8 +222,12 @@ trile_from_serialize_form :: (ts: TrileSerialize) -> Trile { } material_encode_to_char :: (mat: Material) -> u8 { - return (mat.addRoughness & 0x1) | ((mat.emittance & 0x3) << 1) | - ((mat.metallic & 0x3) << 3) | ((mat.roughness & 0x7) << 5); + if mat.emittance > 0 { + // Emissive mode: bit 0 = 1, bits 1-7 = emittance (0-127) + return 0x1 | ((mat.emittance & 0x7F) << 1); + } + // Material mode: bit 0 = 0, bits 3-4 = metallic, bits 5-7 = roughness + return ((mat.metallic & 0x3) << 3) | ((mat.roughness & 0x7) << 5); } material_encode_to_float :: (mat: Material) -> float { @@ -220,9 +236,12 @@ material_encode_to_float :: (mat: Material) -> float { material_decode_from_char :: (packedMaterial: u8) -> Material { mat : Material; - mat.emittance = (packedMaterial >> 1) & 3; - mat.roughness = (packedMaterial >> 5) & 7; - mat.metallic = (packedMaterial >> 3) & 3; + if packedMaterial & 0x1 { + mat.emittance = (packedMaterial >> 1) & 0x7F; + } else { + mat.roughness = (packedMaterial >> 5) & 7; + mat.metallic = (packedMaterial >> 3) & 3; + } return mat; }