From d03d508ebf29745d1a92dd3581793e8bacb12ccf Mon Sep 17 00:00:00 2001 From: Michel Pollet Date: Fri, 1 Jun 2012 23:17:00 +0100 Subject: [PATCH] reprap: c3 update etc probably last update befire I spin it out Signed-off-by: Michel Pollet --- examples/board_reprap/Makefile | 15 +- examples/board_reprap/gfx/BlurryCircle.png | Bin 167 -> 626 bytes examples/board_reprap/gfx/BlurryCircle16.png | Bin 0 -> 267 bytes examples/board_reprap/gfx/BlurryCircle4.png | Bin 0 -> 82 bytes examples/board_reprap/gfx/BlurryCircle8.png | Bin 0 -> 122 bytes examples/board_reprap/gfx/Fxaa3_11.h | 2047 ++++++ examples/board_reprap/gfx/hb.png | Bin 0 -> 269671 bytes examples/board_reprap/gfx/postproc.fs | 87 + examples/board_reprap/gfx/postproc.vs | 16 + examples/board_reprap/marlin/Marlin.hex | 5610 ++++++++--------- examples/board_reprap/reprap_flash.bin | Bin 0 -> 65536 bytes examples/board_reprap/src/reprap_gl.c | 752 ++- examples/shared/libc3/Makefile | 80 + .../src/c3 => shared/libc3}/README.md | 0 examples/shared/libc3/libc3.pc | 12 + .../src/c3 => shared/libc3/src}/c3.c | 0 .../src/c3 => shared/libc3/src}/c3.h | 10 +- .../src/c3 => shared/libc3/src}/c3algebra.c | 25 +- .../src/c3 => shared/libc3/src}/c3algebra.h | 0 .../src/c3 => shared/libc3/src}/c3arcball.c | 2 +- .../src/c3 => shared/libc3/src}/c3arcball.h | 2 +- .../src/c3 => shared/libc3/src}/c3cairo.c | 10 +- .../src/c3 => shared/libc3/src}/c3cairo.h | 9 +- .../src/c3 => shared/libc3/src}/c3camera.c | 2 +- .../src/c3 => shared/libc3/src}/c3camera.h | 2 +- examples/shared/libc3/src/c3config.h | 5 + .../src/c3 => shared/libc3/src}/c3context.c | 9 +- .../src/c3 => shared/libc3/src}/c3context.h | 14 +- .../src/c3 => shared/libc3/src}/c3driver.h | 0 .../libc3/src}/c3driver_context.h | 2 +- .../libc3/src}/c3driver_geometry.h | 2 +- .../c3 => shared/libc3/src}/c3driver_object.h | 2 +- .../src/c3 => shared/libc3/src}/c3geometry.c | 10 +- .../src/c3 => shared/libc3/src}/c3geometry.h | 34 +- examples/shared/libc3/src/c3lines.c | 142 + examples/shared/libc3/src/c3lines.h | 50 + .../src/c3 => shared/libc3/src}/c3object.c | 9 +- .../src/c3 => shared/libc3/src}/c3object.h | 6 +- .../src/c3 => shared/libc3/src}/c3pixels.c | 0 .../src/c3 => shared/libc3/src}/c3pixels.h | 11 +- .../c3 => shared/libc3/src}/c3quaternion.c | 2 +- .../c3 => shared/libc3/src}/c3quaternion.h | 2 +- .../src/c3 => shared/libc3/src}/c3stl.c | 9 +- .../src/c3 => shared/libc3/src}/c3stl.h | 0 .../src/c3 => shared/libc3/src}/c3texture.c | 26 +- .../src/c3 => shared/libc3/src}/c3texture.h | 8 +- .../src/c3 => shared/libc3/src}/c3transform.c | 2 +- .../src/c3 => shared/libc3/src}/c3transform.h | 2 +- .../src/c3 => shared/libc3/src}/c_array.h | 0 .../src/c3 => shared/libc3/src}/c_utils.c | 0 .../src/c3 => shared/libc3/src}/c_utils.h | 0 51 files changed, 5850 insertions(+), 3178 deletions(-) create mode 100644 examples/board_reprap/gfx/BlurryCircle16.png create mode 100644 examples/board_reprap/gfx/BlurryCircle4.png create mode 100644 examples/board_reprap/gfx/BlurryCircle8.png create mode 100644 examples/board_reprap/gfx/Fxaa3_11.h create mode 100644 examples/board_reprap/gfx/hb.png create mode 100644 examples/board_reprap/gfx/postproc.fs create mode 100644 examples/board_reprap/gfx/postproc.vs create mode 100644 examples/board_reprap/reprap_flash.bin create mode 100644 examples/shared/libc3/Makefile rename examples/{board_reprap/src/c3 => shared/libc3}/README.md (100%) create mode 100644 examples/shared/libc3/libc3.pc rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3.c (100%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3.h (85%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3algebra.c (96%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3algebra.h (100%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3arcball.c (99%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3arcball.h (99%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3cairo.c (92%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3cairo.h (91%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3camera.c (99%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3camera.h (99%) create mode 100644 examples/shared/libc3/src/c3config.h rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3context.c (94%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3context.h (89%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3driver.h (100%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3driver_context.h (98%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3driver_geometry.h (98%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3driver_object.h (98%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3geometry.c (96%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3geometry.h (89%) create mode 100644 examples/shared/libc3/src/c3lines.c create mode 100644 examples/shared/libc3/src/c3lines.h rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3object.c (95%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3object.h (97%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3pixels.c (100%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3pixels.h (88%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3quaternion.c (99%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3quaternion.h (98%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3stl.c (96%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3stl.h (100%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3texture.c (78%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3texture.h (87%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3transform.c (98%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c3transform.h (97%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c_array.h (100%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c_utils.c (100%) rename examples/{board_reprap/src/c3 => shared/libc3/src}/c_utils.h (100%) diff --git a/examples/board_reprap/Makefile b/examples/board_reprap/Makefile index d3c2cb4..50b4e3b 100644 --- a/examples/board_reprap/Makefile +++ b/examples/board_reprap/Makefile @@ -21,15 +21,17 @@ firm_src = ${wildcard atmega*.c} firmware = ${firm_src:.c=.hex} simavr = ../../ +LIBC3 = ../shared/libc3 + IPATH = . IPATH += src IPATH += ../parts IPATH += ../shared +IPATH += $(LIBC3)/src IPATH += ${simavr}/include IPATH += ${simavr}/simavr/sim VPATH = src -VPATH += src/c3 VPATH += ../parts VPATH += ../shared @@ -42,9 +44,7 @@ include ../Makefile.opengl LDFLAGS += ${shell pkg-config --libs pangocairo} LDFLAGS += -lpthread -lutil -ldl LDFLAGS += -lm - -C3SRC = ${wildcard src/c3/*.c} -C3OBJ = ${patsubst src/c3%,${OBJ}%,${C3SRC:.c=.o}} +LDFLAGS += -rpath $(LIBC3)/${OBJ}/.libs -L$(LIBC3)/${OBJ}/.libs -lc3 CPPFLAGS += ${patsubst %,-I%,${subst :, ,${IPATH}}} @@ -55,18 +55,19 @@ include ${simavr}/Makefile.common board = ${OBJ}/${target}.elf -${board} : ${C3OBJ} ${board} : ${OBJ}/mongoose.o ${board} : ${OBJ}/button.o ${board} : ${OBJ}/uart_pty.o ${board} : ${OBJ}/thermistor.o ${board} : ${OBJ}/heatpot.o ${board} : ${OBJ}/stepper.o -${board} : ${OBJ}/c_utils.o ${board} : ${OBJ}/${target}.o ${board} : ${OBJ}/${target}_gl.o -${target}: ${board} +build-libc3: + $(MAKE) -C $(LIBC3) CC="$(CC)" CFLAGS="$(CFLAGS)" + +${target}: build-libc3 ${board} @echo $@ done clean: clean-${OBJ} diff --git a/examples/board_reprap/gfx/BlurryCircle.png b/examples/board_reprap/gfx/BlurryCircle.png index 9490ccf6ddd0f5d0f45899aba9774f8a2af1f346..a8a316bed16d835b8aa72898adf5d07ac965ff13 100644 GIT binary patch literal 626 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj{$|z+~y^;uumfXV10$S&JM+SPNJM zbHZG5wuo%oz!i~|n!Yt*>J3jhhYg!DYtB#5&v@;vb1Nc(V`bCYH~$`~$Dh&j zj5+xv?DO+E#p&BMgub1_8zP@1PYgrk-_T$Ihqq>hK z8O`iD{`g?RhtC;OyV!gg8yNr3Z(hE9`PD4bxqj`36W3qgy?_7y-Mh25M%ni*TbO-8 zgh9gK)Kb1TwL4?_+!p6;udc4Xonw~0_14+5zDt9C)|v3eHZNm1&=4qKU$)_HUi#*n zhYve1zkG0g*y^W6J43WYxmsiNzQ2Xpwpd}&{^tjT8h-t)+kH3BL`p1LM{M)W9JR@w zOM_0P7!@LnyZHas@or|vExz20Yp=f!n|}WJ$|Jk}&(dTtNDy%;QF{Koutm8Z30~H$)cjvy*6pa8EkCg{koD&ZGq~YDFyjAtS=;?m* zM!y!3gBo+^$?k}lvhPudolp!{+;axOxg45JDgJy%PJeyG6tJl4Mb{6PwhoZe7ZO0F z3bBcLl9>wv)(7|VfK~24<@iB>)&9wY%vDNPTn{*L*M-&`O%?yMi|^lqnxm5?BX79d z-*Z2Z?_DFuXdgH6XuNy>-RJeP=XI|<|GxPRKQQt9|If_OwX%h2p-SsKAeX_@)z4*} HQ$iB}zXBfJ literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|d7dtgAr*6y5*Dy@balD8x|%97 zDu`=zxN1sEOUJytxY+%FGvfrt>ueznix?M4trL-S*up5fU*d)K=B)rBpSmgF9^=!?A`8X79%I`8@Qs}@e4LJxu$G=@Y@>(DtpNoD7n zV}f3j7}gh0V`|TG_PA{F#%B^sgD&f_tXan{&U*WD`b36jjO?oo=E&(4gg7uAIB@Wn z&XEqiS}^+~>&0-R_DrR=zPQ)+{NjI2_u0>PxB2?>T>X1>pm+ZNXJ+`hBRXl@qUl?K OTn0~9KbLh*2~7YTWOOtD literal 0 HcmV?d00001 diff --git a/examples/board_reprap/gfx/BlurryCircle4.png b/examples/board_reprap/gfx/BlurryCircle4.png new file mode 100644 index 0000000000000000000000000000000000000000..82b48d8b856315452053068855355dcaf2f84208 GIT binary patch literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1SHiab7}%9NlzEYkcv4;Kl)iD93*%)6g~h7 cGW`F~%&=sq^4-mu%h!SUp00i_>zopr0E}@IRR910 literal 0 HcmV?d00001 diff --git a/examples/board_reprap/gfx/BlurryCircle8.png b/examples/board_reprap/gfx/BlurryCircle8.png new file mode 100644 index 0000000000000000000000000000000000000000..64ff0a7c976c9acb979106e7096692fcc2b68212 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^M^6{Wkcv4;Kl+&s99B%%kH5#p ztiY_u_+-nrZC%Zb6Bs8ldoqYJwMradIKfcF>G{Cq)&2eTH*}AKOlA20pP9jE#iS&@ R@Rz(GzNf37%Q~loCICZQBMtxn literal 0 HcmV?d00001 diff --git a/examples/board_reprap/gfx/Fxaa3_11.h b/examples/board_reprap/gfx/Fxaa3_11.h new file mode 100644 index 0000000..a2abfec --- /dev/null +++ b/examples/board_reprap/gfx/Fxaa3_11.h @@ -0,0 +1,2047 @@ +/*============================================================================ + + + NVIDIA FXAA 3.11 by TIMOTHY LOTTES + + +------------------------------------------------------------------------------ +COPYRIGHT (C) 2010, 2011 NVIDIA CORPORATION. ALL RIGHTS RESERVED. +------------------------------------------------------------------------------ +TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED +*AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA +OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR +CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR +LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, +OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE +THIS SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + +------------------------------------------------------------------------------ + INTEGRATION CHECKLIST +------------------------------------------------------------------------------ +(1.) +In the shader source, setup defines for the desired configuration. +When providing multiple shaders (for different presets), +simply setup the defines differently in multiple files. +Example, + + #define FXAA_PC 1 + #define FXAA_HLSL_5 1 + #define FXAA_QUALITY__PRESET 12 + +Or, + + #define FXAA_360 1 + +Or, + + #define FXAA_PS3 1 + +Etc. + +(2.) +Then include this file, + + #include "Fxaa3_11.h" + +(3.) +Then call the FXAA pixel shader from within your desired shader. +Look at the FXAA Quality FxaaPixelShader() for docs on inputs. +As for FXAA 3.11 all inputs for all shaders are the same +to enable easy porting between platforms. + + return FxaaPixelShader(...); + +(4.) +Insure pass prior to FXAA outputs RGBL (see next section). +Or use, + + #define FXAA_GREEN_AS_LUMA 1 + +(5.) +Setup engine to provide the following constants +which are used in the FxaaPixelShader() inputs, + + FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat4 fxaaConsoleRcpFrameOpt, + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + FxaaFloat fxaaQualitySubpix, + FxaaFloat fxaaQualityEdgeThreshold, + FxaaFloat fxaaQualityEdgeThresholdMin, + FxaaFloat fxaaConsoleEdgeSharpness, + FxaaFloat fxaaConsoleEdgeThreshold, + FxaaFloat fxaaConsoleEdgeThresholdMin, + FxaaFloat4 fxaaConsole360ConstDir + +Look at the FXAA Quality FxaaPixelShader() for docs on inputs. + +(6.) +Have FXAA vertex shader run as a full screen triangle, +and output "pos" and "fxaaConsolePosPos" +such that inputs in the pixel shader provide, + + // {xy} = center of pixel + FxaaFloat2 pos, + + // {xy__} = upper left of pixel + // {__zw} = lower right of pixel + FxaaFloat4 fxaaConsolePosPos, + +(7.) +Insure the texture sampler(s) used by FXAA are set to bilinear filtering. + + +------------------------------------------------------------------------------ + INTEGRATION - RGBL AND COLORSPACE +------------------------------------------------------------------------------ +FXAA3 requires RGBL as input unless the following is set, + + #define FXAA_GREEN_AS_LUMA 1 + +In which case the engine uses green in place of luma, +and requires RGB input is in a non-linear colorspace. + +RGB should be LDR (low dynamic range). +Specifically do FXAA after tonemapping. + +RGB data as returned by a texture fetch can be non-linear, +or linear when FXAA_GREEN_AS_LUMA is not set. +Note an "sRGB format" texture counts as linear, +because the result of a texture fetch is linear data. +Regular "RGBA8" textures in the sRGB colorspace are non-linear. + +If FXAA_GREEN_AS_LUMA is not set, +luma must be stored in the alpha channel prior to running FXAA. +This luma should be in a perceptual space (could be gamma 2.0). +Example pass before FXAA where output is gamma 2.0 encoded, + + color.rgb = ToneMap(color.rgb); // linear color output + color.rgb = sqrt(color.rgb); // gamma 2.0 color output + return color; + +To use FXAA, + + color.rgb = ToneMap(color.rgb); // linear color output + color.rgb = sqrt(color.rgb); // gamma 2.0 color output + color.a = dot(color.rgb, FxaaFloat3(0.299, 0.587, 0.114)); // compute luma + return color; + +Another example where output is linear encoded, +say for instance writing to an sRGB formated render target, +where the render target does the conversion back to sRGB after blending, + + color.rgb = ToneMap(color.rgb); // linear color output + return color; + +To use FXAA, + + color.rgb = ToneMap(color.rgb); // linear color output + color.a = sqrt(dot(color.rgb, FxaaFloat3(0.299, 0.587, 0.114))); // compute luma + return color; + +Getting luma correct is required for the algorithm to work correctly. + + +------------------------------------------------------------------------------ + BEING LINEARLY CORRECT? +------------------------------------------------------------------------------ +Applying FXAA to a framebuffer with linear RGB color will look worse. +This is very counter intuitive, but happends to be true in this case. +The reason is because dithering artifacts will be more visiable +in a linear colorspace. + + +------------------------------------------------------------------------------ + COMPLEX INTEGRATION +------------------------------------------------------------------------------ +Q. What if the engine is blending into RGB before wanting to run FXAA? + +A. In the last opaque pass prior to FXAA, + have the pass write out luma into alpha. + Then blend into RGB only. + FXAA should be able to run ok + assuming the blending pass did not any add aliasing. + This should be the common case for particles and common blending passes. + +A. Or use FXAA_GREEN_AS_LUMA. + +============================================================================*/ + +/*============================================================================ + + INTEGRATION KNOBS + +============================================================================*/ +// +// FXAA_PS3 and FXAA_360 choose the console algorithm (FXAA3 CONSOLE). +// FXAA_360_OPT is a prototype for the new optimized 360 version. +// +// 1 = Use API. +// 0 = Don't use API. +// +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_PS3 + #define FXAA_PS3 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_360 + #define FXAA_360 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_360_OPT + #define FXAA_360_OPT 0 +#endif +/*==========================================================================*/ +#ifndef FXAA_PC + // + // FXAA Quality + // The high quality PC algorithm. + // + #define FXAA_PC 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_PC_CONSOLE + // + // The console algorithm for PC is included + // for developers targeting really low spec machines. + // Likely better to just run FXAA_PC, and use a really low preset. + // + #define FXAA_PC_CONSOLE 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_120 + #define FXAA_GLSL_120 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GLSL_130 + #define FXAA_GLSL_130 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_3 + #define FXAA_HLSL_3 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_4 + #define FXAA_HLSL_4 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_HLSL_5 + #define FXAA_HLSL_5 0 +#endif +/*==========================================================================*/ +#ifndef FXAA_GREEN_AS_LUMA + // + // For those using non-linear color, + // and either not able to get luma in alpha, or not wanting to, + // this enables FXAA to run using green as a proxy for luma. + // So with this enabled, no need to pack luma in alpha. + // + // This will turn off AA on anything which lacks some amount of green. + // Pure red and blue or combination of only R and B, will get no AA. + // + // Might want to lower the settings for both, + // fxaaConsoleEdgeThresholdMin + // fxaaQualityEdgeThresholdMin + // In order to insure AA does not get turned off on colors + // which contain a minor amount of green. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_GREEN_AS_LUMA 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_EARLY_EXIT + // + // Controls algorithm's early exit path. + // On PS3 turning this ON adds 2 cycles to the shader. + // On 360 turning this OFF adds 10ths of a millisecond to the shader. + // Turning this off on console will result in a more blurry image. + // So this defaults to on. + // + // 1 = On. + // 0 = Off. + // + #define FXAA_EARLY_EXIT 1 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_DISCARD + // + // Only valid for PC OpenGL currently. + // Probably will not work when FXAA_GREEN_AS_LUMA = 1. + // + // 1 = Use discard on pixels which don't need AA. + // For APIs which enable concurrent TEX+ROP from same surface. + // 0 = Return unchanged color on pixels which don't need AA. + // + #define FXAA_DISCARD 0 +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_FAST_PIXEL_OFFSET + // + // Used for GLSL 120 only. + // + // 1 = GL API supports fast pixel offsets + // 0 = do not use fast pixel offsets + // + #ifdef GL_EXT_gpu_shader4 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_FAST_PIXEL_OFFSET 1 + #endif + #ifndef FXAA_FAST_PIXEL_OFFSET + #define FXAA_FAST_PIXEL_OFFSET 0 + #endif +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_GATHER4_ALPHA + // + // 1 = API supports gather4 on alpha channel. + // 0 = API does not support gather4 on alpha channel. + // + #if (FXAA_HLSL_5 == 1) + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_ARB_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifdef GL_NV_gpu_shader5 + #define FXAA_GATHER4_ALPHA 1 + #endif + #ifndef FXAA_GATHER4_ALPHA + #define FXAA_GATHER4_ALPHA 0 + #endif +#endif + +/*============================================================================ + FXAA CONSOLE PS3 - TUNING KNOBS +============================================================================*/ +#ifndef FXAA_CONSOLE__PS3_EDGE_SHARPNESS + // + // Consoles the sharpness of edges on PS3 only. + // Non-PS3 tuning is done with shader input. + // + // Due to the PS3 being ALU bound, + // there are only two safe values here: 4 and 8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // + // 8.0 is sharper + // 4.0 is softer + // 2.0 is really soft (good for vector graphics inputs) + // + #if 1 + #define FXAA_CONSOLE__PS3_EDGE_SHARPNESS 8.0 + #endif + #if 0 + #define FXAA_CONSOLE__PS3_EDGE_SHARPNESS 4.0 + #endif + #if 0 + #define FXAA_CONSOLE__PS3_EDGE_SHARPNESS 2.0 + #endif +#endif +/*--------------------------------------------------------------------------*/ +#ifndef FXAA_CONSOLE__PS3_EDGE_THRESHOLD + // + // Only effects PS3. + // Non-PS3 tuning is done with shader input. + // + // The minimum amount of local contrast required to apply algorithm. + // The console setting has a different mapping than the quality setting. + // + // This only applies when FXAA_EARLY_EXIT is 1. + // + // Due to the PS3 being ALU bound, + // there are only two safe values here: 0.25 and 0.125. + // These options use the shaders ability to a free *|/ by 2|4|8. + // + // 0.125 leaves less aliasing, but is softer + // 0.25 leaves more aliasing, and is sharper + // + #if 1 + #define FXAA_CONSOLE__PS3_EDGE_THRESHOLD 0.125 + #else + #define FXAA_CONSOLE__PS3_EDGE_THRESHOLD 0.25 + #endif +#endif + +/*============================================================================ + FXAA QUALITY - TUNING KNOBS +------------------------------------------------------------------------------ +NOTE the other tuning knobs are now in the shader function inputs! +============================================================================*/ +#ifndef FXAA_QUALITY__PRESET + // + // Choose the quality preset. + // This needs to be compiled into the shader as it effects code. + // Best option to include multiple presets is to + // in each shader define the preset, then include this file. + // + // OPTIONS + // ----------------------------------------------------------------------- + // 10 to 15 - default medium dither (10=fastest, 15=highest quality) + // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) + // 39 - no dither, very expensive + // + // NOTES + // ----------------------------------------------------------------------- + // 12 = slightly faster then FXAA 3.9 and higher edge quality (default) + // 13 = about same speed as FXAA 3.9 and better than 12 + // 23 = closest to FXAA 3.9 visually and performance wise + // _ = the lowest digit is directly related to performance + // _ = the highest digit is directly related to style + // + #define FXAA_QUALITY__PRESET 12 +#endif + + +/*============================================================================ + + FXAA QUALITY - PRESETS + +============================================================================*/ + +/*============================================================================ + FXAA QUALITY - MEDIUM DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 10) + #define FXAA_QUALITY__PS 3 + #define FXAA_QUALITY__P0 1.5 + #define FXAA_QUALITY__P1 3.0 + #define FXAA_QUALITY__P2 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 11) + #define FXAA_QUALITY__PS 4 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 3.0 + #define FXAA_QUALITY__P3 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 12) + #define FXAA_QUALITY__PS 5 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 4.0 + #define FXAA_QUALITY__P4 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 13) + #define FXAA_QUALITY__PS 6 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 4.0 + #define FXAA_QUALITY__P5 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 14) + #define FXAA_QUALITY__PS 7 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 4.0 + #define FXAA_QUALITY__P6 12.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 15) + #define FXAA_QUALITY__PS 8 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 4.0 + #define FXAA_QUALITY__P7 12.0 +#endif + +/*============================================================================ + FXAA QUALITY - LOW DITHER PRESETS +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 20) + #define FXAA_QUALITY__PS 3 + #define FXAA_QUALITY__P0 1.5 + #define FXAA_QUALITY__P1 2.0 + #define FXAA_QUALITY__P2 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 21) + #define FXAA_QUALITY__PS 4 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 22) + #define FXAA_QUALITY__PS 5 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 23) + #define FXAA_QUALITY__PS 6 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 24) + #define FXAA_QUALITY__PS 7 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 3.0 + #define FXAA_QUALITY__P6 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 25) + #define FXAA_QUALITY__PS 8 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 4.0 + #define FXAA_QUALITY__P7 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 26) + #define FXAA_QUALITY__PS 9 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 4.0 + #define FXAA_QUALITY__P8 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 27) + #define FXAA_QUALITY__PS 10 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 4.0 + #define FXAA_QUALITY__P9 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 28) + #define FXAA_QUALITY__PS 11 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 4.0 + #define FXAA_QUALITY__P10 8.0 +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_QUALITY__PRESET == 29) + #define FXAA_QUALITY__PS 12 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.5 + #define FXAA_QUALITY__P2 2.0 + #define FXAA_QUALITY__P3 2.0 + #define FXAA_QUALITY__P4 2.0 + #define FXAA_QUALITY__P5 2.0 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 2.0 + #define FXAA_QUALITY__P10 4.0 + #define FXAA_QUALITY__P11 8.0 +#endif + +/*============================================================================ + FXAA QUALITY - EXTREME QUALITY +============================================================================*/ +#if (FXAA_QUALITY__PRESET == 39) + #define FXAA_QUALITY__PS 12 + #define FXAA_QUALITY__P0 1.0 + #define FXAA_QUALITY__P1 1.0 + #define FXAA_QUALITY__P2 1.0 + #define FXAA_QUALITY__P3 1.0 + #define FXAA_QUALITY__P4 1.0 + #define FXAA_QUALITY__P5 1.5 + #define FXAA_QUALITY__P6 2.0 + #define FXAA_QUALITY__P7 2.0 + #define FXAA_QUALITY__P8 2.0 + #define FXAA_QUALITY__P9 2.0 + #define FXAA_QUALITY__P10 4.0 + #define FXAA_QUALITY__P11 8.0 +#endif + + + +/*============================================================================ + + API PORTING + +============================================================================*/ +#if (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1) + #define FxaaBool bool + #define FxaaDiscard discard + #define FxaaFloat float + #define FxaaFloat2 vec2 + #define FxaaFloat3 vec3 + #define FxaaFloat4 vec4 + #define FxaaHalf float + #define FxaaHalf2 vec2 + #define FxaaHalf3 vec3 + #define FxaaHalf4 vec4 + #define FxaaInt2 ivec2 + #define FxaaSat(x) clamp(x, 0.0, 1.0) + #define FxaaTex sampler2D +#else + #define FxaaBool bool + #define FxaaDiscard clip(-1) + #define FxaaFloat float + #define FxaaFloat2 float2 + #define FxaaFloat3 float3 + #define FxaaFloat4 float4 + #define FxaaHalf half + #define FxaaHalf2 half2 + #define FxaaHalf3 half3 + #define FxaaHalf4 half4 + #define FxaaSat(x) saturate(x) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_120 == 1) + // Requires, + // #version 120 + // And at least, + // #extension GL_EXT_gpu_shader4 : enable + // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9) + #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) + #if (FXAA_FAST_PIXEL_OFFSET == 1) + #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o) + #else + #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) + #endif + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_GLSL_130 == 1) + // Requires "#version 130" or better + #define FxaaTexTop(t, p) textureLod(t, p, 0.0) + #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o) + #if (FXAA_GATHER4_ALPHA == 1) + // use #extension GL_ARB_gpu_shader5 : enable + #define FxaaTexAlpha4(t, p) textureGather(t, p, 3) + #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3) + #define FxaaTexGreen4(t, p) textureGather(t, p, 1) + #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1) + #endif +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_3 == 1) || (FXAA_360 == 1) || (FXAA_PS3 == 1) + #define FxaaInt2 float2 + #define FxaaTex sampler2D + #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0)) + #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0)) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_4 == 1) + #define FxaaInt2 int2 + struct FxaaTex { SamplerState smpl; Texture2D tex; }; + #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) +#endif +/*--------------------------------------------------------------------------*/ +#if (FXAA_HLSL_5 == 1) + #define FxaaInt2 int2 + struct FxaaTex { SamplerState smpl; Texture2D tex; }; + #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0) + #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o) + #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p) + #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o) + #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p) + #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o) +#endif + + +/*============================================================================ + GREEN AS LUMA OPTION SUPPORT FUNCTION +============================================================================*/ +#if (FXAA_GREEN_AS_LUMA == 0) + FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; } +#else + FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } +#endif + + + + +/*============================================================================ + + FXAA3 QUALITY - PC + +============================================================================*/ +#if (FXAA_PC == 1) +/*--------------------------------------------------------------------------*/ +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Used only for FXAA Console, and not used on the 360 version. + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy__} = upper left of pixel + // {__zw} = lower right of pixel + FxaaFloat4 fxaaConsolePosPos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on the optimized 360 version of FXAA Console. + // For everything but 360, just use the same input here as for "tex". + // For 360, same texture, just alias with a 2nd sampler. + // This sampler needs to have an exponent bias of -1. + FxaaTex fxaaConsole360TexExpBiasNegOne, + // + // Only used on the optimized 360 version of FXAA Console. + // For everything but 360, just use the same input here as for "tex". + // For 360, same texture, just alias with a 3nd sampler. + // This sampler needs to have an exponent bias of -2. + FxaaTex fxaaConsole360TexExpBiasNegTwo, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Console. + // This must be from a constant/uniform. + // This effects sub-pixel AA quality and inversely sharpness. + // Where N ranges between, + // N = 0.50 (default) + // N = 0.33 (sharper) + // {x___} = -N/screenWidthInPixels + // {_y__} = -N/screenHeightInPixels + // {__z_} = N/screenWidthInPixels + // {___w} = N/screenHeightInPixels + FxaaFloat4 fxaaConsoleRcpFrameOpt, + // + // Only used on FXAA Console. + // Not used on 360, but used on PS3 and PC. + // This must be from a constant/uniform. + // {x___} = -2.0/screenWidthInPixels + // {_y__} = -2.0/screenHeightInPixels + // {__z_} = 2.0/screenWidthInPixels + // {___w} = 2.0/screenHeightInPixels + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + // + // Only used on FXAA Console. + // Only used on 360 in place of fxaaConsoleRcpFrameOpt2. + // This must be from a constant/uniform. + // {x___} = 8.0/screenWidthInPixels + // {_y__} = 8.0/screenHeightInPixels + // {__z_} = -4.0/screenWidthInPixels + // {___w} = -4.0/screenHeightInPixels + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY__EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_SHARPNESS define. + // It is here now to allow easier tuning. + // This does not effect PS3, as this needs to be compiled in. + // Use FXAA_CONSOLE__PS3_EDGE_SHARPNESS for PS3. + // Due to the PS3 being ALU bound, + // there are only three safe values here: 2 and 4 and 8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // For all other platforms can be a non-power of two. + // 8.0 is sharper (default!!!) + // 4.0 is softer + // 2.0 is really soft (good only for vector graphics inputs) + FxaaFloat fxaaConsoleEdgeSharpness, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // This does not effect PS3, as this needs to be compiled in. + // Use FXAA_CONSOLE__PS3_EDGE_THRESHOLD for PS3. + // Due to the PS3 being ALU bound, + // there are only two safe values here: 1/4 and 1/8. + // These options use the shaders ability to a free *|/ by 2|4|8. + // The console setting has a different mapping than the quality setting. + // Other platforms can use other values. + // 0.125 leaves less aliasing, but is softer (default!!!) + // 0.25 leaves more aliasing, and is sharper + FxaaFloat fxaaConsoleEdgeThreshold, + // + // Only used on FXAA Console. + // This used to be the FXAA_CONSOLE__EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // The console setting has a different mapping than the quality setting. + // This only applies when FXAA_EARLY_EXIT is 1. + // This does not apply to PS3, + // PS3 was simplified to avoid more shader instructions. + // 0.06 - faster but more aliasing in darks + // 0.05 - default + // 0.04 - slower and less aliasing in darks + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaConsoleEdgeThresholdMin, + // + // Extra constants for 360 FXAA Console only. + // Use zeros or anything else for other platforms. + // These must be in physical constant registers and NOT immedates. + // Immedates will result in compiler un-optimizing. + // {xyzw} = float4(1.0, -1.0, 0.25, -0.25) + FxaaFloat4 fxaaConsole360ConstDir +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + #if (FXAA_GATHER4_ALPHA == 1) + #if (FXAA_DISCARD == 0) + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + #endif + #if (FXAA_GREEN_AS_LUMA == 0) + FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1)); + #else + FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM); + FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1)); + #endif + #if (FXAA_DISCARD == 1) + #define lumaM luma4A.w + #endif + #define lumaE luma4A.z + #define lumaS luma4A.x + #define lumaSE luma4A.y + #define lumaNW luma4B.w + #define lumaN luma4B.z + #define lumaW luma4B.x + #else + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #if (FXAA_GREEN_AS_LUMA == 0) + #define lumaM rgbyM.w + #else + #define lumaM rgbyM.y + #endif + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); + #endif +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + #if (FXAA_DISCARD == 1) + FxaaDiscard; + #else + return rgbyM; + #endif +/*--------------------------------------------------------------------------*/ + #if (FXAA_GATHER4_ALPHA == 0) + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #else + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); + #endif +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY__P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY__P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY__P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY__P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY__PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + #if (FXAA_DISCARD == 1) + return FxaaTexTop(tex, posM); + #else + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); + #endif +} +/*==========================================================================*/ +#endif + + + + +/*============================================================================ + + FXAA3 CONSOLE - PC VERSION + +------------------------------------------------------------------------------ +Instead of using this on PC, I'd suggest just using FXAA Quality with + #define FXAA_QUALITY__PRESET 10 +Or + #define FXAA_QUALITY__PRESET 20 +Either are higher qualilty and almost as fast as this on modern PC GPUs. +============================================================================*/ +#if (FXAA_PC_CONSOLE == 1) +/*--------------------------------------------------------------------------*/ +FxaaFloat4 FxaaPixelShader( + // See FXAA Quality FxaaPixelShader() source for docs on Inputs! + FxaaFloat2 pos, + FxaaFloat4 fxaaConsolePosPos, + FxaaTex tex, + FxaaTex fxaaConsole360TexExpBiasNegOne, + FxaaTex fxaaConsole360TexExpBiasNegTwo, + FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat4 fxaaConsoleRcpFrameOpt, + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + FxaaFloat fxaaQualitySubpix, + FxaaFloat fxaaQualityEdgeThreshold, + FxaaFloat fxaaQualityEdgeThresholdMin, + FxaaFloat fxaaConsoleEdgeSharpness, + FxaaFloat fxaaConsoleEdgeThreshold, + FxaaFloat fxaaConsoleEdgeThresholdMin, + FxaaFloat4 fxaaConsole360ConstDir +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNw = FxaaLuma(FxaaTexTop(tex, fxaaConsolePosPos.xy)); + FxaaFloat lumaSw = FxaaLuma(FxaaTexTop(tex, fxaaConsolePosPos.xw)); + FxaaFloat lumaNe = FxaaLuma(FxaaTexTop(tex, fxaaConsolePosPos.zy)); + FxaaFloat lumaSe = FxaaLuma(FxaaTexTop(tex, fxaaConsolePosPos.zw)); +/*--------------------------------------------------------------------------*/ + FxaaFloat4 rgbyM = FxaaTexTop(tex, pos.xy); + #if (FXAA_GREEN_AS_LUMA == 0) + FxaaFloat lumaM = rgbyM.w; + #else + FxaaFloat lumaM = rgbyM.y; + #endif +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaMaxNwSw = max(lumaNw, lumaSw); + lumaNe += 1.0/384.0; + FxaaFloat lumaMinNwSw = min(lumaNw, lumaSw); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaMaxNeSe = max(lumaNe, lumaSe); + FxaaFloat lumaMinNeSe = min(lumaNe, lumaSe); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaMax = max(lumaMaxNeSe, lumaMaxNwSw); + FxaaFloat lumaMin = min(lumaMinNeSe, lumaMinNwSw); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaMaxScaled = lumaMax * fxaaConsoleEdgeThreshold; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaMinM = min(lumaMin, lumaM); + FxaaFloat lumaMaxScaledClamped = max(fxaaConsoleEdgeThresholdMin, lumaMaxScaled); + FxaaFloat lumaMaxM = max(lumaMax, lumaM); + FxaaFloat dirSwMinusNe = lumaSw - lumaNe; + FxaaFloat lumaMaxSubMinM = lumaMaxM - lumaMinM; + FxaaFloat dirSeMinusNw = lumaSe - lumaNw; + if(lumaMaxSubMinM < lumaMaxScaledClamped) return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 dir; + dir.x = dirSwMinusNe + dirSeMinusNw; + dir.y = dirSwMinusNe - dirSeMinusNw; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 dir1 = normalize(dir.xy); + FxaaFloat4 rgbyN1 = FxaaTexTop(tex, pos.xy - dir1 * fxaaConsoleRcpFrameOpt.zw); + FxaaFloat4 rgbyP1 = FxaaTexTop(tex, pos.xy + dir1 * fxaaConsoleRcpFrameOpt.zw); +/*--------------------------------------------------------------------------*/ + FxaaFloat dirAbsMinTimesC = min(abs(dir1.x), abs(dir1.y)) * fxaaConsoleEdgeSharpness; + FxaaFloat2 dir2 = clamp(dir1.xy / dirAbsMinTimesC, -2.0, 2.0); +/*--------------------------------------------------------------------------*/ + FxaaFloat4 rgbyN2 = FxaaTexTop(tex, pos.xy - dir2 * fxaaConsoleRcpFrameOpt2.zw); + FxaaFloat4 rgbyP2 = FxaaTexTop(tex, pos.xy + dir2 * fxaaConsoleRcpFrameOpt2.zw); +/*--------------------------------------------------------------------------*/ + FxaaFloat4 rgbyA = rgbyN1 + rgbyP1; + FxaaFloat4 rgbyB = ((rgbyN2 + rgbyP2) * 0.25) + (rgbyA * 0.25); +/*--------------------------------------------------------------------------*/ + #if (FXAA_GREEN_AS_LUMA == 0) + FxaaBool twoTap = (rgbyB.w < lumaMin) || (rgbyB.w > lumaMax); + #else + FxaaBool twoTap = (rgbyB.y < lumaMin) || (rgbyB.y > lumaMax); + #endif + if(twoTap) rgbyB.xyz = rgbyA.xyz * 0.5; + return rgbyB; } +/*==========================================================================*/ +#endif + + + +/*============================================================================ + + FXAA3 CONSOLE - 360 PIXEL SHADER + +------------------------------------------------------------------------------ +This optimized version thanks to suggestions from Andy Luedke. +Should be fully tex bound in all cases. +As of the FXAA 3.11 release, I have still not tested this code, +however I fixed a bug which was in both FXAA 3.9 and FXAA 3.10. +And note this is replacing the old unoptimized version. +If it does not work, please let me know so I can fix it. +============================================================================*/ +#if (FXAA_360 == 1) +/*--------------------------------------------------------------------------*/ +[reduceTempRegUsage(4)] +float4 FxaaPixelShader( + // See FXAA Quality FxaaPixelShader() source for docs on Inputs! + FxaaFloat2 pos, + FxaaFloat4 fxaaConsolePosPos, + FxaaTex tex, + FxaaTex fxaaConsole360TexExpBiasNegOne, + FxaaTex fxaaConsole360TexExpBiasNegTwo, + FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat4 fxaaConsoleRcpFrameOpt, + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + FxaaFloat fxaaQualitySubpix, + FxaaFloat fxaaQualityEdgeThreshold, + FxaaFloat fxaaQualityEdgeThresholdMin, + FxaaFloat fxaaConsoleEdgeSharpness, + FxaaFloat fxaaConsoleEdgeThreshold, + FxaaFloat fxaaConsoleEdgeThresholdMin, + FxaaFloat4 fxaaConsole360ConstDir +) { +/*--------------------------------------------------------------------------*/ + float4 lumaNwNeSwSe; + #if (FXAA_GREEN_AS_LUMA == 0) + asm { + tfetch2D lumaNwNeSwSe.w___, tex, pos.xy, OffsetX = -0.5, OffsetY = -0.5, UseComputedLOD=false + tfetch2D lumaNwNeSwSe._w__, tex, pos.xy, OffsetX = 0.5, OffsetY = -0.5, UseComputedLOD=false + tfetch2D lumaNwNeSwSe.__w_, tex, pos.xy, OffsetX = -0.5, OffsetY = 0.5, UseComputedLOD=false + tfetch2D lumaNwNeSwSe.___w, tex, pos.xy, OffsetX = 0.5, OffsetY = 0.5, UseComputedLOD=false + }; + #else + asm { + tfetch2D lumaNwNeSwSe.y___, tex, pos.xy, OffsetX = -0.5, OffsetY = -0.5, UseComputedLOD=false + tfetch2D lumaNwNeSwSe._y__, tex, pos.xy, OffsetX = 0.5, OffsetY = -0.5, UseComputedLOD=false + tfetch2D lumaNwNeSwSe.__y_, tex, pos.xy, OffsetX = -0.5, OffsetY = 0.5, UseComputedLOD=false + tfetch2D lumaNwNeSwSe.___y, tex, pos.xy, OffsetX = 0.5, OffsetY = 0.5, UseComputedLOD=false + }; + #endif +/*--------------------------------------------------------------------------*/ + lumaNwNeSwSe.y += 1.0/384.0; + float2 lumaMinTemp = min(lumaNwNeSwSe.xy, lumaNwNeSwSe.zw); + float2 lumaMaxTemp = max(lumaNwNeSwSe.xy, lumaNwNeSwSe.zw); + float lumaMin = min(lumaMinTemp.x, lumaMinTemp.y); + float lumaMax = max(lumaMaxTemp.x, lumaMaxTemp.y); +/*--------------------------------------------------------------------------*/ + float4 rgbyM = tex2Dlod(tex, float4(pos.xy, 0.0, 0.0)); + #if (FXAA_GREEN_AS_LUMA == 0) + float lumaMinM = min(lumaMin, rgbyM.w); + float lumaMaxM = max(lumaMax, rgbyM.w); + #else + float lumaMinM = min(lumaMin, rgbyM.y); + float lumaMaxM = max(lumaMax, rgbyM.y); + #endif + if((lumaMaxM - lumaMinM) < max(fxaaConsoleEdgeThresholdMin, lumaMax * fxaaConsoleEdgeThreshold)) return rgbyM; +/*--------------------------------------------------------------------------*/ + float2 dir; + dir.x = dot(lumaNwNeSwSe, fxaaConsole360ConstDir.yyxx); + dir.y = dot(lumaNwNeSwSe, fxaaConsole360ConstDir.xyxy); + dir = normalize(dir); +/*--------------------------------------------------------------------------*/ + float4 dir1 = dir.xyxy * fxaaConsoleRcpFrameOpt.xyzw; +/*--------------------------------------------------------------------------*/ + float4 dir2; + float dirAbsMinTimesC = min(abs(dir.x), abs(dir.y)) * fxaaConsoleEdgeSharpness; + dir2 = saturate(fxaaConsole360ConstDir.zzww * dir.xyxy / dirAbsMinTimesC + 0.5); + dir2 = dir2 * fxaaConsole360RcpFrameOpt2.xyxy + fxaaConsole360RcpFrameOpt2.zwzw; +/*--------------------------------------------------------------------------*/ + float4 rgbyN1 = tex2Dlod(fxaaConsole360TexExpBiasNegOne, float4(pos.xy + dir1.xy, 0.0, 0.0)); + float4 rgbyP1 = tex2Dlod(fxaaConsole360TexExpBiasNegOne, float4(pos.xy + dir1.zw, 0.0, 0.0)); + float4 rgbyN2 = tex2Dlod(fxaaConsole360TexExpBiasNegTwo, float4(pos.xy + dir2.xy, 0.0, 0.0)); + float4 rgbyP2 = tex2Dlod(fxaaConsole360TexExpBiasNegTwo, float4(pos.xy + dir2.zw, 0.0, 0.0)); +/*--------------------------------------------------------------------------*/ + float4 rgbyA = rgbyN1 + rgbyP1; + float4 rgbyB = rgbyN2 + rgbyP2 + rgbyA * 0.5; +/*--------------------------------------------------------------------------*/ + float4 rgbyR = ((FxaaLuma(rgbyB) - lumaMax) > 0.0) ? rgbyA : rgbyB; + rgbyR = ((FxaaLuma(rgbyB) - lumaMin) > 0.0) ? rgbyR : rgbyA; + return rgbyR; } +/*==========================================================================*/ +#endif + + + +/*============================================================================ + + FXAA3 CONSOLE - OPTIMIZED PS3 PIXEL SHADER (NO EARLY EXIT) + +============================================================================== +The code below does not exactly match the assembly. +I have a feeling that 12 cycles is possible, but was not able to get there. +Might have to increase register count to get full performance. +Note this shader does not use perspective interpolation. + +Use the following cgc options, + + --fenable-bx2 --fastmath --fastprecision --nofloatbindings + +------------------------------------------------------------------------------ + NVSHADERPERF OUTPUT +------------------------------------------------------------------------------ +For reference and to aid in debug, output of NVShaderPerf should match this, + +Shader to schedule: + 0: texpkb h0.w(TRUE), v5.zyxx, #0 + 2: addh h2.z(TRUE), h0.w, constant(0.001953, 0.000000, 0.000000, 0.000000).x + 4: texpkb h0.w(TRUE), v5.xwxx, #0 + 6: addh h0.z(TRUE), -h2, h0.w + 7: texpkb h1.w(TRUE), v5, #0 + 9: addh h0.x(TRUE), h0.z, -h1.w + 10: addh h3.w(TRUE), h0.z, h1 + 11: texpkb h2.w(TRUE), v5.zwzz, #0 + 13: addh h0.z(TRUE), h3.w, -h2.w + 14: addh h0.x(TRUE), h2.w, h0 + 15: nrmh h1.xz(TRUE), h0_n + 16: minh_m8 h0.x(TRUE), |h1|, |h1.z| + 17: maxh h4.w(TRUE), h0, h1 + 18: divx h2.xy(TRUE), h1_n.xzzw, h0_n + 19: movr r1.zw(TRUE), v4.xxxy + 20: madr r2.xz(TRUE), -h1, constant(cConst5.x, cConst5.y, cConst5.z, cConst5.w).zzww, r1.zzww + 22: minh h5.w(TRUE), h0, h1 + 23: texpkb h0(TRUE), r2.xzxx, #0 + 25: madr r0.zw(TRUE), h1.xzxz, constant(cConst5.x, cConst5.y, cConst5.z, cConst5.w), r1 + 27: maxh h4.x(TRUE), h2.z, h2.w + 28: texpkb h1(TRUE), r0.zwzz, #0 + 30: addh_d2 h1(TRUE), h0, h1 + 31: madr r0.xy(TRUE), -h2, constant(cConst5.x, cConst5.y, cConst5.z, cConst5.w).xyxx, r1.zwzz + 33: texpkb h0(TRUE), r0, #0 + 35: minh h4.z(TRUE), h2, h2.w + 36: fenct TRUE + 37: madr r1.xy(TRUE), h2, constant(cConst5.x, cConst5.y, cConst5.z, cConst5.w).xyxx, r1.zwzz + 39: texpkb h2(TRUE), r1, #0 + 41: addh_d2 h0(TRUE), h0, h2 + 42: maxh h2.w(TRUE), h4, h4.x + 43: minh h2.x(TRUE), h5.w, h4.z + 44: addh_d2 h0(TRUE), h0, h1 + 45: slth h2.x(TRUE), h0.w, h2 + 46: sgth h2.w(TRUE), h0, h2 + 47: movh h0(TRUE), h0 + 48: addx.c0 rc(TRUE), h2, h2.w + 49: movh h0(c0.NE.x), h1 + +IPU0 ------ Simplified schedule: -------- +Pass | Unit | uOp | PC: Op +-----+--------+------+------------------------- + 1 | SCT0/1 | mov | 0: TXLr h0.w, g[TEX1].zyxx, const.xxxx, TEX0; + | TEX | txl | 0: TXLr h0.w, g[TEX1].zyxx, const.xxxx, TEX0; + | SCB1 | add | 2: ADDh h2.z, h0.--w-, const.--x-; + | | | + 2 | SCT0/1 | mov | 4: TXLr h0.w, g[TEX1].xwxx, const.xxxx, TEX0; + | TEX | txl | 4: TXLr h0.w, g[TEX1].xwxx, const.xxxx, TEX0; + | SCB1 | add | 6: ADDh h0.z,-h2, h0.--w-; + | | | + 3 | SCT0/1 | mov | 7: TXLr h1.w, g[TEX1], const.xxxx, TEX0; + | TEX | txl | 7: TXLr h1.w, g[TEX1], const.xxxx, TEX0; + | SCB0 | add | 9: ADDh h0.x, h0.z---,-h1.w---; + | SCB1 | add | 10: ADDh h3.w, h0.---z, h1; + | | | + 4 | SCT0/1 | mov | 11: TXLr h2.w, g[TEX1].zwzz, const.xxxx, TEX0; + | TEX | txl | 11: TXLr h2.w, g[TEX1].zwzz, const.xxxx, TEX0; + | SCB0 | add | 14: ADDh h0.x, h2.w---, h0; + | SCB1 | add | 13: ADDh h0.z, h3.--w-,-h2.--w-; + | | | + 5 | SCT1 | mov | 15: NRMh h1.xz, h0; + | SRB | nrm | 15: NRMh h1.xz, h0; + | SCB0 | min | 16: MINh*8 h0.x, |h1|, |h1.z---|; + | SCB1 | max | 17: MAXh h4.w, h0, h1; + | | | + 6 | SCT0 | div | 18: DIVx h2.xy, h1.xz--, h0; + | SCT1 | mov | 19: MOVr r1.zw, g[TEX0].--xy; + | SCB0 | mad | 20: MADr r2.xz,-h1, const.z-w-, r1.z-w-; + | SCB1 | min | 22: MINh h5.w, h0, h1; + | | | + 7 | SCT0/1 | mov | 23: TXLr h0, r2.xzxx, const.xxxx, TEX0; + | TEX | txl | 23: TXLr h0, r2.xzxx, const.xxxx, TEX0; + | SCB0 | max | 27: MAXh h4.x, h2.z---, h2.w---; + | SCB1 | mad | 25: MADr r0.zw, h1.--xz, const, r1; + | | | + 8 | SCT0/1 | mov | 28: TXLr h1, r0.zwzz, const.xxxx, TEX0; + | TEX | txl | 28: TXLr h1, r0.zwzz, const.xxxx, TEX0; + | SCB0/1 | add | 30: ADDh/2 h1, h0, h1; + | | | + 9 | SCT0 | mad | 31: MADr r0.xy,-h2, const.xy--, r1.zw--; + | SCT1 | mov | 33: TXLr h0, r0, const.zzzz, TEX0; + | TEX | txl | 33: TXLr h0, r0, const.zzzz, TEX0; + | SCB1 | min | 35: MINh h4.z, h2, h2.--w-; + | | | + 10 | SCT0 | mad | 37: MADr r1.xy, h2, const.xy--, r1.zw--; + | SCT1 | mov | 39: TXLr h2, r1, const.zzzz, TEX0; + | TEX | txl | 39: TXLr h2, r1, const.zzzz, TEX0; + | SCB0/1 | add | 41: ADDh/2 h0, h0, h2; + | | | + 11 | SCT0 | min | 43: MINh h2.x, h5.w---, h4.z---; + | SCT1 | max | 42: MAXh h2.w, h4, h4.---x; + | SCB0/1 | add | 44: ADDh/2 h0, h0, h1; + | | | + 12 | SCT0 | set | 45: SLTh h2.x, h0.w---, h2; + | SCT1 | set | 46: SGTh h2.w, h0, h2; + | SCB0/1 | mul | 47: MOVh h0, h0; + | | | + 13 | SCT0 | mad | 48: ADDxc0_s rc, h2, h2.w---; + | SCB0/1 | mul | 49: MOVh h0(NE0.xxxx), h1; + +Pass SCT TEX SCB + 1: 0% 100% 25% + 2: 0% 100% 25% + 3: 0% 100% 50% + 4: 0% 100% 50% + 5: 0% 0% 50% + 6: 100% 0% 75% + 7: 0% 100% 75% + 8: 0% 100% 100% + 9: 0% 100% 25% + 10: 0% 100% 100% + 11: 50% 0% 100% + 12: 50% 0% 100% + 13: 25% 0% 100% + +MEAN: 17% 61% 67% + +Pass SCT0 SCT1 TEX SCB0 SCB1 + 1: 0% 0% 100% 0% 100% + 2: 0% 0% 100% 0% 100% + 3: 0% 0% 100% 100% 100% + 4: 0% 0% 100% 100% 100% + 5: 0% 0% 0% 100% 100% + 6: 100% 100% 0% 100% 100% + 7: 0% 0% 100% 100% 100% + 8: 0% 0% 100% 100% 100% + 9: 0% 0% 100% 0% 100% + 10: 0% 0% 100% 100% 100% + 11: 100% 100% 0% 100% 100% + 12: 100% 100% 0% 100% 100% + 13: 100% 0% 0% 100% 100% + +MEAN: 30% 23% 61% 76% 100% +Fragment Performance Setup: Driver RSX Compiler, GPU RSX, Flags 0x5 +Results 13 cycles, 3 r regs, 923,076,923 pixels/s +============================================================================*/ +#if (FXAA_PS3 == 1) && (FXAA_EARLY_EXIT == 0) +/*--------------------------------------------------------------------------*/ +#pragma regcount 7 +#pragma disablepc all +#pragma option O3 +#pragma option OutColorPrec=fp16 +#pragma texformat default RGBA8 +/*==========================================================================*/ +half4 FxaaPixelShader( + // See FXAA Quality FxaaPixelShader() source for docs on Inputs! + FxaaFloat2 pos, + FxaaFloat4 fxaaConsolePosPos, + FxaaTex tex, + FxaaTex fxaaConsole360TexExpBiasNegOne, + FxaaTex fxaaConsole360TexExpBiasNegTwo, + FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat4 fxaaConsoleRcpFrameOpt, + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + FxaaFloat fxaaQualitySubpix, + FxaaFloat fxaaQualityEdgeThreshold, + FxaaFloat fxaaQualityEdgeThresholdMin, + FxaaFloat fxaaConsoleEdgeSharpness, + FxaaFloat fxaaConsoleEdgeThreshold, + FxaaFloat fxaaConsoleEdgeThresholdMin, + FxaaFloat4 fxaaConsole360ConstDir +) { +/*--------------------------------------------------------------------------*/ +// (1) + half4 dir; + half4 lumaNe = h4tex2Dlod(tex, half4(fxaaConsolePosPos.zy, 0, 0)); + #if (FXAA_GREEN_AS_LUMA == 0) + lumaNe.w += half(1.0/512.0); + dir.x = -lumaNe.w; + dir.z = -lumaNe.w; + #else + lumaNe.y += half(1.0/512.0); + dir.x = -lumaNe.y; + dir.z = -lumaNe.y; + #endif +/*--------------------------------------------------------------------------*/ +// (2) + half4 lumaSw = h4tex2Dlod(tex, half4(fxaaConsolePosPos.xw, 0, 0)); + #if (FXAA_GREEN_AS_LUMA == 0) + dir.x += lumaSw.w; + dir.z += lumaSw.w; + #else + dir.x += lumaSw.y; + dir.z += lumaSw.y; + #endif +/*--------------------------------------------------------------------------*/ +// (3) + half4 lumaNw = h4tex2Dlod(tex, half4(fxaaConsolePosPos.xy, 0, 0)); + #if (FXAA_GREEN_AS_LUMA == 0) + dir.x -= lumaNw.w; + dir.z += lumaNw.w; + #else + dir.x -= lumaNw.y; + dir.z += lumaNw.y; + #endif +/*--------------------------------------------------------------------------*/ +// (4) + half4 lumaSe = h4tex2Dlod(tex, half4(fxaaConsolePosPos.zw, 0, 0)); + #if (FXAA_GREEN_AS_LUMA == 0) + dir.x += lumaSe.w; + dir.z -= lumaSe.w; + #else + dir.x += lumaSe.y; + dir.z -= lumaSe.y; + #endif +/*--------------------------------------------------------------------------*/ +// (5) + half4 dir1_pos; + dir1_pos.xy = normalize(dir.xyz).xz; + half dirAbsMinTimesC = min(abs(dir1_pos.x), abs(dir1_pos.y)) * half(FXAA_CONSOLE__PS3_EDGE_SHARPNESS); +/*--------------------------------------------------------------------------*/ +// (6) + half4 dir2_pos; + dir2_pos.xy = clamp(dir1_pos.xy / dirAbsMinTimesC, half(-2.0), half(2.0)); + dir1_pos.zw = pos.xy; + dir2_pos.zw = pos.xy; + half4 temp1N; + temp1N.xy = dir1_pos.zw - dir1_pos.xy * fxaaConsoleRcpFrameOpt.zw; +/*--------------------------------------------------------------------------*/ +// (7) + temp1N = h4tex2Dlod(tex, half4(temp1N.xy, 0.0, 0.0)); + half4 rgby1; + rgby1.xy = dir1_pos.zw + dir1_pos.xy * fxaaConsoleRcpFrameOpt.zw; +/*--------------------------------------------------------------------------*/ +// (8) + rgby1 = h4tex2Dlod(tex, half4(rgby1.xy, 0.0, 0.0)); + rgby1 = (temp1N + rgby1) * 0.5; +/*--------------------------------------------------------------------------*/ +// (9) + half4 temp2N; + temp2N.xy = dir2_pos.zw - dir2_pos.xy * fxaaConsoleRcpFrameOpt2.zw; + temp2N = h4tex2Dlod(tex, half4(temp2N.xy, 0.0, 0.0)); +/*--------------------------------------------------------------------------*/ +// (10) + half4 rgby2; + rgby2.xy = dir2_pos.zw + dir2_pos.xy * fxaaConsoleRcpFrameOpt2.zw; + rgby2 = h4tex2Dlod(tex, half4(rgby2.xy, 0.0, 0.0)); + rgby2 = (temp2N + rgby2) * 0.5; +/*--------------------------------------------------------------------------*/ +// (11) + // compilier moves these scalar ops up to other cycles + #if (FXAA_GREEN_AS_LUMA == 0) + half lumaMin = min(min(lumaNw.w, lumaSw.w), min(lumaNe.w, lumaSe.w)); + half lumaMax = max(max(lumaNw.w, lumaSw.w), max(lumaNe.w, lumaSe.w)); + #else + half lumaMin = min(min(lumaNw.y, lumaSw.y), min(lumaNe.y, lumaSe.y)); + half lumaMax = max(max(lumaNw.y, lumaSw.y), max(lumaNe.y, lumaSe.y)); + #endif + rgby2 = (rgby2 + rgby1) * 0.5; +/*--------------------------------------------------------------------------*/ +// (12) + #if (FXAA_GREEN_AS_LUMA == 0) + bool twoTapLt = rgby2.w < lumaMin; + bool twoTapGt = rgby2.w > lumaMax; + #else + bool twoTapLt = rgby2.y < lumaMin; + bool twoTapGt = rgby2.y > lumaMax; + #endif +/*--------------------------------------------------------------------------*/ +// (13) + if(twoTapLt || twoTapGt) rgby2 = rgby1; +/*--------------------------------------------------------------------------*/ + return rgby2; } +/*==========================================================================*/ +#endif + + + +/*============================================================================ + + FXAA3 CONSOLE - OPTIMIZED PS3 PIXEL SHADER (WITH EARLY EXIT) + +============================================================================== +The code mostly matches the assembly. +I have a feeling that 14 cycles is possible, but was not able to get there. +Might have to increase register count to get full performance. +Note this shader does not use perspective interpolation. + +Use the following cgc options, + + --fenable-bx2 --fastmath --fastprecision --nofloatbindings + +Use of FXAA_GREEN_AS_LUMA currently adds a cycle (16 clks). +Will look at fixing this for FXAA 3.12. +------------------------------------------------------------------------------ + NVSHADERPERF OUTPUT +------------------------------------------------------------------------------ +For reference and to aid in debug, output of NVShaderPerf should match this, + +Shader to schedule: + 0: texpkb h0.w(TRUE), v5.zyxx, #0 + 2: addh h2.y(TRUE), h0.w, constant(0.001953, 0.000000, 0.000000, 0.000000).x + 4: texpkb h1.w(TRUE), v5.xwxx, #0 + 6: addh h0.x(TRUE), h1.w, -h2.y + 7: texpkb h2.w(TRUE), v5.zwzz, #0 + 9: minh h4.w(TRUE), h2.y, h2 + 10: maxh h5.x(TRUE), h2.y, h2.w + 11: texpkb h0.w(TRUE), v5, #0 + 13: addh h3.w(TRUE), -h0, h0.x + 14: addh h0.x(TRUE), h0.w, h0 + 15: addh h0.z(TRUE), -h2.w, h0.x + 16: addh h0.x(TRUE), h2.w, h3.w + 17: minh h5.y(TRUE), h0.w, h1.w + 18: nrmh h2.xz(TRUE), h0_n + 19: minh_m8 h2.w(TRUE), |h2.x|, |h2.z| + 20: divx h4.xy(TRUE), h2_n.xzzw, h2_n.w + 21: movr r1.zw(TRUE), v4.xxxy + 22: maxh h2.w(TRUE), h0, h1 + 23: fenct TRUE + 24: madr r0.xy(TRUE), -h2.xzzw, constant(cConst5.x, cConst5.y, cConst5.z, cConst5.w).zwzz, r1.zwzz + 26: texpkb h0(TRUE), r0, #0 + 28: maxh h5.x(TRUE), h2.w, h5 + 29: minh h5.w(TRUE), h5.y, h4 + 30: madr r1.xy(TRUE), h2.xzzw, constant(cConst5.x, cConst5.y, cConst5.z, cConst5.w).zwzz, r1.zwzz + 32: texpkb h2(TRUE), r1, #0 + 34: addh_d2 h2(TRUE), h0, h2 + 35: texpkb h1(TRUE), v4, #0 + 37: maxh h5.y(TRUE), h5.x, h1.w + 38: minh h4.w(TRUE), h1, h5 + 39: madr r0.xy(TRUE), -h4, constant(cConst5.x, cConst5.y, cConst5.z, cConst5.w).xyxx, r1.zwzz + 41: texpkb h0(TRUE), r0, #0 + 43: addh_m8 h5.z(TRUE), h5.y, -h4.w + 44: madr r2.xy(TRUE), h4, constant(cConst5.x, cConst5.y, cConst5.z, cConst5.w).xyxx, r1.zwzz + 46: texpkb h3(TRUE), r2, #0 + 48: addh_d2 h0(TRUE), h0, h3 + 49: addh_d2 h3(TRUE), h0, h2 + 50: movh h0(TRUE), h3 + 51: slth h3.x(TRUE), h3.w, h5.w + 52: sgth h3.w(TRUE), h3, h5.x + 53: addx.c0 rc(TRUE), h3.x, h3 + 54: slth.c0 rc(TRUE), h5.z, h5 + 55: movh h0(c0.NE.w), h2 + 56: movh h0(c0.NE.x), h1 + +IPU0 ------ Simplified schedule: -------- +Pass | Unit | uOp | PC: Op +-----+--------+------+------------------------- + 1 | SCT0/1 | mov | 0: TXLr h0.w, g[TEX1].zyxx, const.xxxx, TEX0; + | TEX | txl | 0: TXLr h0.w, g[TEX1].zyxx, const.xxxx, TEX0; + | SCB0 | add | 2: ADDh h2.y, h0.-w--, const.-x--; + | | | + 2 | SCT0/1 | mov | 4: TXLr h1.w, g[TEX1].xwxx, const.xxxx, TEX0; + | TEX | txl | 4: TXLr h1.w, g[TEX1].xwxx, const.xxxx, TEX0; + | SCB0 | add | 6: ADDh h0.x, h1.w---,-h2.y---; + | | | + 3 | SCT0/1 | mov | 7: TXLr h2.w, g[TEX1].zwzz, const.xxxx, TEX0; + | TEX | txl | 7: TXLr h2.w, g[TEX1].zwzz, const.xxxx, TEX0; + | SCB0 | max | 10: MAXh h5.x, h2.y---, h2.w---; + | SCB1 | min | 9: MINh h4.w, h2.---y, h2; + | | | + 4 | SCT0/1 | mov | 11: TXLr h0.w, g[TEX1], const.xxxx, TEX0; + | TEX | txl | 11: TXLr h0.w, g[TEX1], const.xxxx, TEX0; + | SCB0 | add | 14: ADDh h0.x, h0.w---, h0; + | SCB1 | add | 13: ADDh h3.w,-h0, h0.---x; + | | | + 5 | SCT0 | mad | 16: ADDh h0.x, h2.w---, h3.w---; + | SCT1 | mad | 15: ADDh h0.z,-h2.--w-, h0.--x-; + | SCB0 | min | 17: MINh h5.y, h0.-w--, h1.-w--; + | | | + 6 | SCT1 | mov | 18: NRMh h2.xz, h0; + | SRB | nrm | 18: NRMh h2.xz, h0; + | SCB1 | min | 19: MINh*8 h2.w, |h2.---x|, |h2.---z|; + | | | + 7 | SCT0 | div | 20: DIVx h4.xy, h2.xz--, h2.ww--; + | SCT1 | mov | 21: MOVr r1.zw, g[TEX0].--xy; + | SCB1 | max | 22: MAXh h2.w, h0, h1; + | | | + 8 | SCT0 | mad | 24: MADr r0.xy,-h2.xz--, const.zw--, r1.zw--; + | SCT1 | mov | 26: TXLr h0, r0, const.xxxx, TEX0; + | TEX | txl | 26: TXLr h0, r0, const.xxxx, TEX0; + | SCB0 | max | 28: MAXh h5.x, h2.w---, h5; + | SCB1 | min | 29: MINh h5.w, h5.---y, h4; + | | | + 9 | SCT0 | mad | 30: MADr r1.xy, h2.xz--, const.zw--, r1.zw--; + | SCT1 | mov | 32: TXLr h2, r1, const.xxxx, TEX0; + | TEX | txl | 32: TXLr h2, r1, const.xxxx, TEX0; + | SCB0/1 | add | 34: ADDh/2 h2, h0, h2; + | | | + 10 | SCT0/1 | mov | 35: TXLr h1, g[TEX0], const.xxxx, TEX0; + | TEX | txl | 35: TXLr h1, g[TEX0], const.xxxx, TEX0; + | SCB0 | max | 37: MAXh h5.y, h5.-x--, h1.-w--; + | SCB1 | min | 38: MINh h4.w, h1, h5; + | | | + 11 | SCT0 | mad | 39: MADr r0.xy,-h4, const.xy--, r1.zw--; + | SCT1 | mov | 41: TXLr h0, r0, const.zzzz, TEX0; + | TEX | txl | 41: TXLr h0, r0, const.zzzz, TEX0; + | SCB0 | mad | 44: MADr r2.xy, h4, const.xy--, r1.zw--; + | SCB1 | add | 43: ADDh*8 h5.z, h5.--y-,-h4.--w-; + | | | + 12 | SCT0/1 | mov | 46: TXLr h3, r2, const.xxxx, TEX0; + | TEX | txl | 46: TXLr h3, r2, const.xxxx, TEX0; + | SCB0/1 | add | 48: ADDh/2 h0, h0, h3; + | | | + 13 | SCT0/1 | mad | 49: ADDh/2 h3, h0, h2; + | SCB0/1 | mul | 50: MOVh h0, h3; + | | | + 14 | SCT0 | set | 51: SLTh h3.x, h3.w---, h5.w---; + | SCT1 | set | 52: SGTh h3.w, h3, h5.---x; + | SCB0 | set | 54: SLThc0 rc, h5.z---, h5; + | SCB1 | add | 53: ADDxc0_s rc, h3.---x, h3; + | | | + 15 | SCT0/1 | mul | 55: MOVh h0(NE0.wwww), h2; + | SCB0/1 | mul | 56: MOVh h0(NE0.xxxx), h1; + +Pass SCT TEX SCB + 1: 0% 100% 25% + 2: 0% 100% 25% + 3: 0% 100% 50% + 4: 0% 100% 50% + 5: 50% 0% 25% + 6: 0% 0% 25% + 7: 100% 0% 25% + 8: 0% 100% 50% + 9: 0% 100% 100% + 10: 0% 100% 50% + 11: 0% 100% 75% + 12: 0% 100% 100% + 13: 100% 0% 100% + 14: 50% 0% 50% + 15: 100% 0% 100% + +MEAN: 26% 60% 56% + +Pass SCT0 SCT1 TEX SCB0 SCB1 + 1: 0% 0% 100% 100% 0% + 2: 0% 0% 100% 100% 0% + 3: 0% 0% 100% 100% 100% + 4: 0% 0% 100% 100% 100% + 5: 100% 100% 0% 100% 0% + 6: 0% 0% 0% 0% 100% + 7: 100% 100% 0% 0% 100% + 8: 0% 0% 100% 100% 100% + 9: 0% 0% 100% 100% 100% + 10: 0% 0% 100% 100% 100% + 11: 0% 0% 100% 100% 100% + 12: 0% 0% 100% 100% 100% + 13: 100% 100% 0% 100% 100% + 14: 100% 100% 0% 100% 100% + 15: 100% 100% 0% 100% 100% + +MEAN: 33% 33% 60% 86% 80% +Fragment Performance Setup: Driver RSX Compiler, GPU RSX, Flags 0x5 +Results 15 cycles, 3 r regs, 800,000,000 pixels/s +============================================================================*/ +#if (FXAA_PS3 == 1) && (FXAA_EARLY_EXIT == 1) +/*--------------------------------------------------------------------------*/ +#pragma regcount 7 +#pragma disablepc all +#pragma option O2 +#pragma option OutColorPrec=fp16 +#pragma texformat default RGBA8 +/*==========================================================================*/ +half4 FxaaPixelShader( + // See FXAA Quality FxaaPixelShader() source for docs on Inputs! + FxaaFloat2 pos, + FxaaFloat4 fxaaConsolePosPos, + FxaaTex tex, + FxaaTex fxaaConsole360TexExpBiasNegOne, + FxaaTex fxaaConsole360TexExpBiasNegTwo, + FxaaFloat2 fxaaQualityRcpFrame, + FxaaFloat4 fxaaConsoleRcpFrameOpt, + FxaaFloat4 fxaaConsoleRcpFrameOpt2, + FxaaFloat4 fxaaConsole360RcpFrameOpt2, + FxaaFloat fxaaQualitySubpix, + FxaaFloat fxaaQualityEdgeThreshold, + FxaaFloat fxaaQualityEdgeThresholdMin, + FxaaFloat fxaaConsoleEdgeSharpness, + FxaaFloat fxaaConsoleEdgeThreshold, + FxaaFloat fxaaConsoleEdgeThresholdMin, + FxaaFloat4 fxaaConsole360ConstDir +) { +/*--------------------------------------------------------------------------*/ +// (1) + half4 rgbyNe = h4tex2Dlod(tex, half4(fxaaConsolePosPos.zy, 0, 0)); + #if (FXAA_GREEN_AS_LUMA == 0) + half lumaNe = rgbyNe.w + half(1.0/512.0); + #else + half lumaNe = rgbyNe.y + half(1.0/512.0); + #endif +/*--------------------------------------------------------------------------*/ +// (2) + half4 lumaSw = h4tex2Dlod(tex, half4(fxaaConsolePosPos.xw, 0, 0)); + #if (FXAA_GREEN_AS_LUMA == 0) + half lumaSwNegNe = lumaSw.w - lumaNe; + #else + half lumaSwNegNe = lumaSw.y - lumaNe; + #endif +/*--------------------------------------------------------------------------*/ +// (3) + half4 lumaNw = h4tex2Dlod(tex, half4(fxaaConsolePosPos.xy, 0, 0)); + #if (FXAA_GREEN_AS_LUMA == 0) + half lumaMaxNwSw = max(lumaNw.w, lumaSw.w); + half lumaMinNwSw = min(lumaNw.w, lumaSw.w); + #else + half lumaMaxNwSw = max(lumaNw.y, lumaSw.y); + half lumaMinNwSw = min(lumaNw.y, lumaSw.y); + #endif +/*--------------------------------------------------------------------------*/ +// (4) + half4 lumaSe = h4tex2Dlod(tex, half4(fxaaConsolePosPos.zw, 0, 0)); + #if (FXAA_GREEN_AS_LUMA == 0) + half dirZ = lumaNw.w + lumaSwNegNe; + half dirX = -lumaNw.w + lumaSwNegNe; + #else + half dirZ = lumaNw.y + lumaSwNegNe; + half dirX = -lumaNw.y + lumaSwNegNe; + #endif +/*--------------------------------------------------------------------------*/ +// (5) + half3 dir; + dir.y = 0.0; + #if (FXAA_GREEN_AS_LUMA == 0) + dir.x = lumaSe.w + dirX; + dir.z = -lumaSe.w + dirZ; + half lumaMinNeSe = min(lumaNe, lumaSe.w); + #else + dir.x = lumaSe.y + dirX; + dir.z = -lumaSe.y + dirZ; + half lumaMinNeSe = min(lumaNe, lumaSe.y); + #endif +/*--------------------------------------------------------------------------*/ +// (6) + half4 dir1_pos; + dir1_pos.xy = normalize(dir).xz; + half dirAbsMinTimes8 = min(abs(dir1_pos.x), abs(dir1_pos.y)) * half(FXAA_CONSOLE__PS3_EDGE_SHARPNESS); +/*--------------------------------------------------------------------------*/ +// (7) + half4 dir2_pos; + dir2_pos.xy = clamp(dir1_pos.xy / dirAbsMinTimes8, half(-2.0), half(2.0)); + dir1_pos.zw = pos.xy; + dir2_pos.zw = pos.xy; + #if (FXAA_GREEN_AS_LUMA == 0) + half lumaMaxNeSe = max(lumaNe, lumaSe.w); + #else + half lumaMaxNeSe = max(lumaNe, lumaSe.y); + #endif +/*--------------------------------------------------------------------------*/ +// (8) + half4 temp1N; + temp1N.xy = dir1_pos.zw - dir1_pos.xy * fxaaConsoleRcpFrameOpt.zw; + temp1N = h4tex2Dlod(tex, half4(temp1N.xy, 0.0, 0.0)); + half lumaMax = max(lumaMaxNwSw, lumaMaxNeSe); + half lumaMin = min(lumaMinNwSw, lumaMinNeSe); +/*--------------------------------------------------------------------------*/ +// (9) + half4 rgby1; + rgby1.xy = dir1_pos.zw + dir1_pos.xy * fxaaConsoleRcpFrameOpt.zw; + rgby1 = h4tex2Dlod(tex, half4(rgby1.xy, 0.0, 0.0)); + rgby1 = (temp1N + rgby1) * 0.5; +/*--------------------------------------------------------------------------*/ +// (10) + half4 rgbyM = h4tex2Dlod(tex, half4(pos.xy, 0.0, 0.0)); + #if (FXAA_GREEN_AS_LUMA == 0) + half lumaMaxM = max(lumaMax, rgbyM.w); + half lumaMinM = min(lumaMin, rgbyM.w); + #else + half lumaMaxM = max(lumaMax, rgbyM.y); + half lumaMinM = min(lumaMin, rgbyM.y); + #endif +/*--------------------------------------------------------------------------*/ +// (11) + half4 temp2N; + temp2N.xy = dir2_pos.zw - dir2_pos.xy * fxaaConsoleRcpFrameOpt2.zw; + temp2N = h4tex2Dlod(tex, half4(temp2N.xy, 0.0, 0.0)); + half4 rgby2; + rgby2.xy = dir2_pos.zw + dir2_pos.xy * fxaaConsoleRcpFrameOpt2.zw; + half lumaRangeM = (lumaMaxM - lumaMinM) / FXAA_CONSOLE__PS3_EDGE_THRESHOLD; +/*--------------------------------------------------------------------------*/ +// (12) + rgby2 = h4tex2Dlod(tex, half4(rgby2.xy, 0.0, 0.0)); + rgby2 = (temp2N + rgby2) * 0.5; +/*--------------------------------------------------------------------------*/ +// (13) + rgby2 = (rgby2 + rgby1) * 0.5; +/*--------------------------------------------------------------------------*/ +// (14) + #if (FXAA_GREEN_AS_LUMA == 0) + bool twoTapLt = rgby2.w < lumaMin; + bool twoTapGt = rgby2.w > lumaMax; + #else + bool twoTapLt = rgby2.y < lumaMin; + bool twoTapGt = rgby2.y > lumaMax; + #endif + bool earlyExit = lumaRangeM < lumaMax; + bool twoTap = twoTapLt || twoTapGt; +/*--------------------------------------------------------------------------*/ +// (15) + if(twoTap) rgby2 = rgby1; + if(earlyExit) rgby2 = rgbyM; +/*--------------------------------------------------------------------------*/ + return rgby2; } +/*==========================================================================*/ +#endif diff --git a/examples/board_reprap/gfx/hb.png b/examples/board_reprap/gfx/hb.png new file mode 100644 index 0000000000000000000000000000000000000000..3ca05c7a7f130d61a8b9af13de7cafb1e98eb7e0 GIT binary patch literal 269671 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]kD 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 z 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

WJBqED5S@4|(IB(YR+k=ADQQPYF!MN2UN+M207# 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

gZLF(4zvw=lx#}Sdh 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≻*={<${oLl`S|&qW+D;oFj0~qDVCm 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

6fmuK3p7shvA6 z%$xHDtSeI+-+pt-v^U=TYN>DG z9NQ1GEpxuH%=*$k^KP{pMTW)(R;1$zTGzYrH(hA>wIIJ<;~IE zZ;$dk|BUbHan4as*v33zduFU{!qd+Gjt{&v0lbx+<6pErHNiG+qVt)T+|R%2dEqVJ ze<#`Bm}-4(vgMVxyI-ATePfD!(lp1^>CSgQaDVs_Vh~N4=9)asHD#)6>O1cD-t&F* zq2q(;j`!blygSV{Ws2?XNtU~r1Y z{$m^YME9`ryG6z}y|NvaBFEOs4--zY$Y9NUzz4KBCArQL8z z7hGb|m30*k>na5{=9um$$6LmY?|AZAK$ z>&fx%G0!55e#SrQSC(?XujwRjKcON_?{@HFII_%!U15E{M)r7N5O5IcH^j z&g#V6HOYBvK_onT1u$EJU(XAEH8(tSZe+$>#P*pvFZR_B@tF$}U;Y^TY)<%tZ-eiC z6@F)CWa`ZDlo^R>AB5lk(Ea`g;KKOd{UAJTx_`n$AvaF>n_naYC3 z(x9m%WG)5#&vSP~r4GpvKg*9@DkFZr5Y;Q0pD&1l0jx~s6N$V+A@UKCCv>v7J_g%E zXZe^sA4lL}aokL{pUw8M7=9|*Po;Y)3^#@CBD0(%hLb>X;E6sG*-IvSC}cO81cuX2 zBB7f=xJ$%?AyRif+KS1uVe{<;1pr$C9^lEtxzQL;9@d+WK|VTQajra^6J6jyVZl$n zJR-n@COGp6R!l)B$bcdEab#Zs#e*S%&{sfmV+!0DjGs*Nk*FR5)rF_H2~-b}<{=}^ za}h`Y51AUEG5i#!pFj)XX;C86OJe%StN@i0X7D3S0SJQ(UVzR8A=r#Cg&~H(&k`Ui zVq5_jhKGcTxJq=HM_(xuu2Lx~gwi!s#yS* z$nX~AL5A&MTx^G+_z(#wKMvvId9-i=JAfB>3Bn+S8zFJyL~e}2kFZ1mw$MZ8dTCrA zhvx@(3loI=09)Yahyq-3fG-KLm_a5ZNT-MCj1Y|;piq4j3b;c86ncP24HKvlJUNUb z`LTF#>D>ib2R_e^ML95#Gaqv2At8u^6e|t|LQg&_n1_y_5u$l{aSSGl#;4H*@%(}i zwjf9(hG@(%LlCBmGE5#I&EjWyk~B}2;!5Kjaf~ev@I(>51X<+f9p$nBX{N*`;|6%V z0W2>nQdCJf&?zGOx=0+>sPD0jak@T?gVGST2aU?2=vg!)g=L0tj5Lv($!CTO7zrFJ zg{LM7)EI#hB~Zd7dW6ahQo-{{kKtJfA}2}WCXoxqi4xfnDmO;wCn+L8oQjZQh|_E- zAjuTxD3Tt!BF$8!8LAvZ*~?JonDQK3)+>N>e07ei>f;~`aMkxX2uYCwkQOO=#HwB? zoRg?QJR?>j&eSEEtXPv1YkMWSKB@jOIfd@AN9kTABG3WoRq6mBk{j|ykN9p=86G>Q z?}H8Z6o@c(PGJD_stWs*2=~>+_f*C{xuHj{M-tVD?028a06>a`jffDqwy0NA2)L&! zd|)Vkpe+O0GK#`pRdK(n1dvmgWc6kDHKpJuzEb*(PS-C1BEs9D^Zn4g;D{*V|9-TQXS9&#SWK9E4(M)2TLglX_Vm2sb z+hxXmEbUgjWTn1j>$tIpm6|AbMsqt`#48XnNFf$osL*;L;h8 z1;ARfN2T(>8W*e?axkH>Dbx-r>=YyFKZul_Ol^^>>_VlLEAQmV?ury0d~ugh+AWrM zi1IqY2=CPd7@grs8%Sh5)C1d+>{A#%S3e& zQG-Cxz!Ns|MGYbeXeZdcN`g=+5midXm2$}~h4h9(^1q2r)pBK>TvaWRSBYh{GG)C~ zSSRJxi8+lj{vB9!MhkUt8R#tfZJ^8DOh@qBd%o0 lkIT7-m<9g_009600{~)Z5HAhBN4o$3002ovPDHLkV1n8LE};Mb literal 0 HcmV?d00001 diff --git a/examples/board_reprap/gfx/postproc.fs b/examples/board_reprap/gfx/postproc.fs new file mode 100644 index 0000000..49de3fd --- /dev/null +++ b/examples/board_reprap/gfx/postproc.fs @@ -0,0 +1,87 @@ +#version 120 + +// References: +// http://www.geeks3d.com/20110405/fxaa-fast-approximate-anti-aliasing-demo-glsl-opengl-test-radeon-geforce/3/ +// http://jmonkeyengine.googlecode.com/svn-history/r9095/trunk/engine/src/core-data/Common/MatDefs/Post/ + +#extension GL_EXT_gpu_shader4 : enable + +uniform sampler2D m_Texture; +uniform vec2 g_Resolution = vec2(800,600); + +//uniform float m_VxOffset; +uniform float m_SpanMax = 8.0; +uniform float m_ReduceMul = (1.0/8.0); + +varying vec2 texCoord; +varying vec4 posPos; + +#define FxaaTex(t, p) texture2D(t, p) + + #define OffsetVec(a, b) ivec2(a, b) + #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o) + +vec3 FxaaPixelShader( + vec4 posPos, // Output of FxaaVertexShader interpolated across screen. + sampler2D tex, // Input texture. + vec2 rcpFrame) // Constant {1.0/frameWidth, 1.0/frameHeight}. +{ + + #define FXAA_REDUCE_MIN (1.0/128.0) + //#define FXAA_REDUCE_MUL (1.0/8.0) + //#define FXAA_SPAN_MAX 8.0 + + vec3 rgbNW = FxaaTex(tex, posPos.zw).xyz; + vec3 rgbNE = FxaaTexOff(tex, posPos.zw, OffsetVec(1,0), rcpFrame.xy).xyz; + vec3 rgbSW = FxaaTexOff(tex, posPos.zw, OffsetVec(0,1), rcpFrame.xy).xyz; + vec3 rgbSE = FxaaTexOff(tex, posPos.zw, OffsetVec(1,1), rcpFrame.xy).xyz; + + vec3 rgbM = FxaaTex(tex, posPos.xy).xyz; + + vec3 luma = vec3(0.299, 0.587, 0.114); + float lumaNW = dot(rgbNW, luma); + float lumaNE = dot(rgbNE, luma); + float lumaSW = dot(rgbSW, luma); + float lumaSE = dot(rgbSE, luma); + float lumaM = dot(rgbM, luma); + + float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE))); + float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE))); + + vec2 dir; + dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE)); + dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE)); + + float dirReduce = max( + (lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * m_ReduceMul), + FXAA_REDUCE_MIN); + float rcpDirMin = 1.0/(min(abs(dir.x), abs(dir.y)) + dirReduce); + dir = min(vec2( m_SpanMax, m_SpanMax), + max(vec2(-m_SpanMax, -m_SpanMax), + dir * rcpDirMin)) * rcpFrame.xy; + + vec3 rgbA = (1.0/2.0) * ( + FxaaTex(tex, posPos.xy + dir * vec2(1.0/3.0 - 0.5)).xyz + + FxaaTex(tex, posPos.xy + dir * vec2(2.0/3.0 - 0.5)).xyz); + vec3 rgbB = rgbA * (1.0/2.0) + (1.0/4.0) * ( + FxaaTex(tex, posPos.xy + dir * vec2(0.0/3.0 - 0.5)).xyz + + FxaaTex(tex, posPos.xy + dir * vec2(3.0/3.0 - 0.5)).xyz); + + float lumaB = dot(rgbB, luma); + + if ((lumaB < lumaMin) || (lumaB > lumaMax)) + { + return rgbA; + } + else + { + return rgbB; + } +} + +void main() +{ + vec2 rcpFrame = vec2(1.0) / g_Resolution; + gl_FragColor = vec4(FxaaPixelShader(posPos, m_Texture, rcpFrame), 1.0); +// gl_FragColor.g *= 2; +} diff --git a/examples/board_reprap/gfx/postproc.vs b/examples/board_reprap/gfx/postproc.vs new file mode 100644 index 0000000..1031ee1 --- /dev/null +++ b/examples/board_reprap/gfx/postproc.vs @@ -0,0 +1,16 @@ +#version 120 +//uniform mat4 g_WorldViewProjectionMatrix; +uniform vec2 g_Resolution = vec2(800,600); +uniform float m_SubPixelShift = 1.0 / 4.0; + +varying vec2 texCoord; +varying vec4 posPos; + +void main() { + gl_Position = ftransform(); + gl_TexCoord[0] = gl_MultiTexCoord0; + texCoord = gl_MultiTexCoord0.xy; + vec2 rcpFrame = vec2(1.0) / g_Resolution; + posPos.xy = texCoord; + posPos.zw = texCoord - (rcpFrame * vec2(0.5 + m_SubPixelShift)); +} diff --git a/examples/board_reprap/marlin/Marlin.hex b/examples/board_reprap/marlin/Marlin.hex index 9ec87c2..4eb3b1c 100644 --- a/examples/board_reprap/marlin/Marlin.hex +++ b/examples/board_reprap/marlin/Marlin.hex @@ -1,2877 +1,2759 @@ -:10000000EFC700000C9418080C9418080C941808FA -:100010000C9418080C9418080C9418080C941808E0 -:100020000C9418080C9418080C9418080C941808D0 -:10003000FFC700000C94DD3AFBC70000F9C70000C1 -:10004000F7C700000C94FA4C0C949D20F1C70000F7 -:100050000C945A22EDC70000EBC70000E9C700006E -:10006000E7C70000E5C70000E3C70000E1C70000E4 +:10000000FCC700000C941A080C941A080C941A08E7 +:100010000C941A080C941A080C941A080C941A08D8 +:100020000C941A080C941A080C941A080C941A08C8 +:100030000C941A080C947F39FDC70000FBC7000020 +:10004000F9C700000C949A490C943321F3C70000BF +:100050000C94E122EFC70000EDC70000EBC70000E1 +:10006000E9C70000E7C70000E5C70000E3C70000DC :10007000084AD73B3BCE016E84BCBFFDC12F3D6C0F :1000800074319ABD56833DDA3D00C77F11BED9E475 :10009000BB4C3E916BAAAABE000000803F05A84C55 :1000A000CDB2D44EB93836A9020C50B99186880821 -:1000B0003CA6AAAA2ABE000000803F4572726F7259 -:1000C0003A005072696E7465722073746F70706557 -:1000D000642064657520746F206572726F72732E70 -:1000E0002046697820746865206572726F7220619D -:1000F0006E6420757365204D39393920746F207214 -:10010000657374617274212E202854656D70657258 -:1001100061747572652069732072657365742E2031 -:10012000536574206974206265666F72652072651C -:100130007374617274696E6729005072696E7465B8 -:10014000722068616C7465642E206B696C6C282960 -:100150002063616C6C6564202121006F6B00526527 -:1001600073656E643A006563686F3A002200556EED -:100170006B6E6F776E20636F6D6D616E643A2200F7 -:100180007A5F6D696E3A00795F6D696E3A00785FEB -:100190006D696E3A005A3A00593A0020436F756E05 -:1001A0007420583A00453A005A3A00593A00583AF1 -:1001B000004649524D574152455F4E414D453A4DDB -:1001C00061726C696E2056313B20537072696E7497 -:1001D00065722F6772626C206D617368757020663E -:1001E0006F722067656E36204649524D5741524521 -:1001F0005F55524C3A687474703A2F2F7777772E88 -:100200006D656E64656C2D70617274732E636F6DB5 -:100210002050524F544F434F4C5F56455253494F15 -:100220004E3A312E30204D414348494E455F545996 -:1002300050453A4D656E64656C204558545255449E -:1002400045525F434F554E543A310A0020423A001E -:1002500020453A00543A0020573A0020453A0054CD -:100260003A0020403A0020423A006F6B20543A0096 -:100270005072696E7465722073746F70706564205B -:1002800064657520746F206572726F72732E2046DC -:10029000697820746865206572726F7220616E647F -:1002A00020757365204D39393920746F207265735C -:1002B00074617274212E202854656D7065726174AA -:1002C0007572652069732072657365742E2053659D -:1002D00074206974206265666F726520726573743C -:1002E000617274696E6729006F6B004E6F204C69F4 -:1002F0006E65204E756D6265722077697468206343 -:100300006865636B73756D2C204C617374204C6948 -:100310006E653A004E6F20436865636B73756D20A0 -:1003200077697468206C696E65206E756D626572A0 -:100330002C204C617374204C696E653A00636865CB -:10034000636B73756D206D69736D617463682C20C8 -:100350004C617374204C696E653A004C696E65207F -:100360004E756D626572206973206E6F74204C61EA -:100370007374204C696E65204E756D6265722B3109 -:100380002C204C617374204C696E653A002020501B -:100390006C616E6E657242756666657242797465EF -:1003A000733A20002046726565204D656D6F727945 -:1003B0003A20006572696B00207C20417574686F7B -:1003C000723A2000323031322D30322D3235002059 -:1003D0004C61737420557064617465643A20003117 -:1003E0002E302E3020524332004D61726C696E3ACD -:1003F000200020536F6674776172652052657365C3 -:100400007400205761746368646F67205265736578 -:1004100074002042726F776E206F7574205265737E -:100420006574002045787465726E616C2052657346 -:10043000657400506F7765725570007374617274E3 -:10044000002200656E717565696E67202200656324 -:10045000686F3A0020746F6F206C6F6E672065784C -:1004600074727573696F6E2070726576656E7465EF -:10047000640020636F6C6420657874727573696FB3 -:100480006E2070726576656E7465640024F427D3FF -:10049000FD204D0FB0119A05160CE9022D09C80177 -:1004A000650733013206DE005405A700AD04830062 -:1004B0002A046900C10356006B03480023033D0072 -:1004C000E6023500B1022D00840228005C02230000 -:1004D0003902200019021C00FD011900E401170077 -:1004E000CD011500B8011300A50111009401100001 -:1004F00084010F0075010E0067010D005A010C0008 -:100500004E010B0043010A0039010A002F010900C6 -:10051000260109001D010800150107000E01080051 -:1005200006010700FF000600F9000600F3000600C0 -:10053000ED000600E7000500E2000500DD00050013 -:10054000D8000500D3000400CF000500CA00040055 -:10055000C6000400C2000400BE000300BB0004008B -:10056000B7000300B4000300B1000400AD000300B5 -:10057000AA000300A7000200A5000300A2000300D8 -:100580009F0002009D0003009A00020098000300F3 -:100590009500020093000200910002008F0002000B -:1005A0008D0002008B00020089000200870002001B -:1005B000850002008300020081000100800002002B -:1005C0007E0002007C0001007B0002007900010037 -:1005D000780002007600010075000100740002003E -:1005E0007200010071000100700002006E00010045 -:1005F0006D0001006C0001006B0002006900010049 -:10060000680001006700010066000100650001004C -:10061000640001006300010062000100610001004C -:10062000600001005F0001005E0001005D0001004C -:100630005C0001005B0000005B0001005A0001004B -:100640005900010058000100570000005700010048 -:100650005600010055000100540000005400010044 -:100660005300010052000100510000005100010040 -:10067000500001004F0000004F0001004E0000003C -:100680004E0001004D0001004C0000004C00010034 -:100690004B0000004B0001004A000100490000002F -:1006A0004900010048000000480001004700000028 -:1006B0004700010046000000460001004500000020 -:1006C0004500010044000000440001004300000018 -:1006D0004300010042000000420001004100000010 -:1006E0004100000041000100400000004000010006 -:1006F0003F0000003F0001003E0000003E000000FF -:100700003E0001003D0000003D0001003C000000F3 -:100710003C0000003C0001003B0000003B000000EA -:100720003B0001003A0000003A0000003A000100DE -:1007300039000000390000003900010038000000D5 -:1007400038000000380001003700000037000000CA -:1007500037000100360000003600000036000100BE -:1007600035000000350000003500000035000100B4 -:1007700034000000340000003400010033000000A9 -:10078000330000003300000033000100320000009D -:100790003200000032000000320001003100000091 -:1007A0003100000031000000310001003000000085 -:1007B0003000000030000000300001002F00000079 -:1007C0002F0000002F0000002F0001002E0000006D -:1007D0002E0000002E0000002E0000002E00010060 -:1007E0002D0000002D0000002D0000002D00010054 -:1007F0002C0000002C0000002C0000002C00000049 -:100800002C0001002B0000002B0000002B0000003A -:100810002B0000002B0001002A0000002A0000002D -:100820002A0000002A0000002A0000002A0001001F -:100830002900000029000000290000002900000014 -:100840002900000029000100280000002800000005 -:1008500028000000280000002800010027000000F8 -:1008600027000000270000002700000027000000EC -:1008700027000000270001002600000026000000DD -:1008800026000000260000002600000024F4B12805 -:1008900073CB111D62AECC159698F410A287900D03 -:1008A000127A190BF96E4009B965D307E65DB506F2 -:1008B0003157D005615116054B4C7D04CE47FD03E1 -:1008C000D14392033F403603093DE902203AA40296 -:1008D0007C376A0212353602DC320802D430E1017C -:1008E000F32EBD01362D9E01982B8101172A670139 -:1008F000B028500160273B0125262801FD24160160 -:10090000E7230701E022F800E821EB00FD20DE00EC -:100910001F20D3004C1FC800841EBF00C51DB5009A -:10092000101DAD00631CA500BE1B9E00201B970080 -:10093000891A9100F8198A006E198500E9187F005C -:100940006A187B00EF1776007917710008176D00A1 -:100950009B166A0031166500CC1562006A155F00AF -:100960000B155B00B01458005814560002145200C6 -:10097000B013500060134E0012134B00C712490011 -:100980007E12460038124500F3114300B0114000BA -:1009900070113F0031113D00F4103C00B8103A00D6 -:1009A0007E103800461037000F103500DA0F340083 -:1009B000A60F3300730F3100420F3000120F3000CA -:1009C000E20E2D00B50E2D00880E2C005C0E2B00C3 -:1009D000310E2A00070E2800DF0D2800B70D270072 -:1009E000900D26006A0D2600440D2400200D2400E1 -:1009F000FC0C2300D90C2200B70C2200950C21001E -:100A0000740C2000540C1F00350C1F00160C1F0026 -:100A1000F70B1E00D90B1D00BC0B1C00A00B1C000B -:100A2000840B1C00680B1B004D0B1B00320B1A00C3 -:100A3000180B1900FF0A1900E60A1900CD0A180060 -:100A4000B50A18009D0A1800850A17006E0A1600DC -:100A5000580A1600420A16002C0A1600160A15003B -:100A6000010A1500EC091400D8091400C409140087 -:100A7000B00914009C0913008909130076091300BA -:100A800063091200510912003F0912002D091100DB -:100A90001C0912000A091100F9081000E9081100E8 -:100AA000D8081000C8081000B8081000A8081000E6 -:100AB00098080F0089080F007A080F006B080F00D4 -:100AC0005C080F004D080E003F080E0031080E00B4 -:100AD00023080E0015080E0007080D00FA070D0088 -:100AE000ED070D00E0070D00D3070D00C6070D0050 -:100AF000B9070C00AD070C00A1070D0094070B000F -:100B000089070C007D070C0071070C0065070B00BE -:100B10005A070B004F070B0044070B0039070B0067 -:100B20002E070B0023070B0018070A000E070B0007 -:100B300003070A00F9060A00EF060A00E5060A00A4 -:100B4000DB060A00D1060900C8060A00BE06090035 -:100B5000B5060A00AB060900A206090099060900BD -:100B600090060900870609007E060900750609003F -:100B70006C060800640609005B06080053060900BD -:100B80004A060800420608003A0608003206080035 -:100B90002A060800220608001A06080012060700A6 -:100BA0000B06080003060800FB050700F405080013 -:100BB000EC050700E5050700DE050700D70507007F -:100BC000D0050700C9050700C2050700BB050700DF -:100BD000B4050700AD050700A6050600A00507003F -:100BE00099050700920506008C050600860507009A -:100BF0007F05060079050600730507006C050600F1 -:100C000066050600600506005A0506005405060044 -:100C10004E05060048050600420505003D05060094 -:100C200037050600310505002C05060026050500E0 -:100C3000210506001B050500160506001005050028 -:100C40000B0505000605060000050500FB04050070 -:100C5000F6040500F1040500EC040500E7040500B6 -:100C6000E2040500DD040500D8040500D3040500F6 -:100C7000CE040500C9040500C4040500BF04040037 -:100C8000BB040500B6040500B10405006563686F88 -:100C90003A00205A3A0020593A0020583A00656E2E -:100CA0006473746F7073206869743A2000457272BF -:100CB0006F723A0054656D7065726174757265206B -:100CC0006865617465642062656420737769746324 -:100CD000686564206F66662E204D415854454D501E -:100CE00020747269676765726564202121003A206B -:100CF000457874727564657220737769746368658A -:100D000064206F66662E204D494E54454D50207428 -:100D100072696767657265642021003A20457874BE -:100D20007275646572207377697463686564206F97 -:100D300066662E204D415854454D502074726967A7 -:100D400067657265642021001000C90220013C0122 -:100D500030020A014003EF005004DD006005D000BE -:100D60007006C5008007BC009008B500A009AE0061 -:100D7000B00AA900C00BA300D00C9F00E00D9A00A0 -:100D8000F00E96000010930010118F0020128C00BE -:100D900030138800401485005015820060168000D2 -:100DA00070177D0080187A0090197800A01A7500DD -:100DB000B01B7300C01C7000D01D6E00E01E6C00E4 -:100DC000F01F6A00002167001022650020236300E5 -:100DD0003024610040255F0050265C0060275A00E7 -:100DE0007028580080295600902A5400A02B5100EA -:100DF000B02C4F00C02D4D00D02E4B00E02F4800EE -:100E0000F0304600003243001033400020343D00F3 -:100E100030353A0040363700503734006038300003 -:100E200070392C00803A2800903B2200A03C1C0026 -:100E3000B03D1400C03E0800D03F0000202D2049E6 -:100E40006E76616C69642065787472756465722071 -:100E50006E756D626572202100202D20496E7661CD -:100E60006C6964206578747275646572206E756D46 -:100E7000626572210020403A006F6B20543A0050A6 -:100E80004944204175746F74756E65206661696CA4 -:100E9000656420212C2054656D70657261747572D3 -:100EA0006520746F206869676800204B643A2000F1 -:100EB000204B693A2000204B703A2000204E6F20D2 -:100EC0006F76657273686F6F742000204B643A20F0 -:100ED00000204B693A2000204B703A200020536FCD -:100EE0006D65206F76657273686F6F742000204B9C -:100EF000643A2000204B693A2000204B703A2000D1 -:100F000020436C617369632050494420002054756C -:100F10003A2000204B753A2000206D61783A20007D -:100F2000206D696E3A200020643A200020626961D9 -:100F3000733A2000002124272A002225282B002094 -:100F4000232629020202020202020204040404040B -:100F50000404040303030303030303010101010168 -:100F60000101010102040810204080010204081060 -:100F7000204080010204081020408080402010089A -:100F80000402010000000102000000000000000453 -:100F90000307060000000000000000000000000041 -:100FA000000000494E46494E4954594E414ECDCC61 -:100FB000CC3D0AD7233C17B7D13877CC2B32959547 -:100FC000E6241FB14F0A000020410000C842004043 -:100FD0001C4620BCBE4CCA1B0E5AAEC59D7477245D -:100FE00011241FBECFEFD0E1DEBFCDBF12E0A0E0E5 -:100FF000B1E0E2E2F2EB02C005900D92A638B10733 -:10100000D9F71AE0A6E8B2E001C01D92A73FB107E8 -:10101000E1F71FE0C0EEDFE004C02297FE010E946E -:101020005D53CE3DD107C9F70E9498200C940F590B -:101030000C940000AF92BF92CF92DF92EF92FF929A -:101040000F931F93DF93CF93CDB7DEB7E0970FB623 -:10105000F894DEBF0FBECDBFDE011196EFE6F2E0E1 -:1010600080E101900D928150E1F7DE015196EFE5AC -:10107000F2E080E101900D928150E1F7DE0191965E -:10108000EFE4F2E080E101900D928150E1F7BE01C2 -:101090006F5F7F4F40E255E021E1A22EB12CAC0EF4 -:1010A000BD1E00E115E091E2E92EF12CEC0EFD1ED3 -:1010B00080E3C82E85E0D82E20E030E0FB0181914E -:1010C0009191A191B191BF01FA0181939193A19363 -:1010D000B193AF01F50181919191A191B1915F011E -:1010E000F80181939193A193B1938F01F7018191BD -:1010F0009191A191B1917F01F60181939193A19377 -:10110000B1936F012F5F3F4F24303105B9F680E076 -:1011100090E0AAEFB3E48093440590934505A09333 -:101120004605B093470580E090E8ABE3B5E48093D3 -:10113000480590934905A0934A05B0934B0580E07C -:1011400090E0DC018093400590934105A093420517 -:10115000B093430520E23EE440E050E020930C05CC -:1011600030930D0540930E0550930F05809358055D -:1011700090935905A0935A05B0935B0580E090E0E9 -:10118000A0EAB1E480934C0590934D05A0934E05E1 -:10119000B0934F058DEC9CECACECBEE38093500516 -:1011A00090935105A0935205B093530580E090E0D1 -:1011B000A0EAB0E48093540590935505A09356059A -:1011C000B0935705E6E6F1E007C09091C00095FFA7 -:1011D000FCCF8093C600319684918823B1F7E0E07C -:1011E000F1E006C09091C00095FFFCCF8093C6004F -:1011F00081918823B9F78091C00085FFFCCF8AE0F8 -:101200008093C600E0960FB6F894DEBF0FBECDBF48 -:10121000CF91DF911F910F91FF90EF90DF90CF90D2 -:10122000BF90AF900895DF93CF9300D0CDB7DEB7D6 -:101230008091F10A9091F20A9E012F5F3F4F009733 -:1012400019F4275F3A4002C0281B390B3A832983DF -:1012500089819A810F900F90CF91DF910895AF927D -:10126000BF92CF92DF92EF92FF920F931F93CF9393 -:10127000DF938BE095E040E052EC61E070E00E948B -:101280008F22EBE3F4E007C09091C00095FFFCCF04 -:101290008093C600319684918823B1F78091C00075 -:1012A00085FFFCCF8AE08093C60086E691E0FC01D2 +:1000B0003CA6AAAA2ABE000000803F6563686F3A8A +:1000C00000737461727400506F7765725570002010 +:1000D00045787465726E616C20526573657400209A +:1000E00042726F776E206F7574205265736574006D +:1000F000205761746368646F67205265736574008C +:1001000020536F6674776172652052657365740061 +:100110004D61726C696E3A2000312E302E302052C3 +:10012000433200204C6173742055706461746564BF +:100130003A2000323031322D30352D303200207CE3 +:1001400020417574686F723A20006572696B0020F7 +:1001500046726565204D656D6F72793A20002020EA +:10016000506C616E6E657242756666657242797436 +:1001700065733A20004572726F723A004C696E6581 +:10018000204E756D626572206973206E6F74204C0D +:10019000617374204C696E65204E756D6265722BBB +:1001A000312C204C617374204C696E653A00636891 +:1001B00065636B73756D206D69736D617463682C15 +:1001C000204C617374204C696E653A004E6F204379 +:1001D0006865636B73756D2077697468206C696EF0 +:1001E00065206E756D6265722C204C617374204CB5 +:1001F000696E653A004E6F204C696E65204E756DD4 +:10020000626572207769746820636865636B7375D3 +:100210006D2C204C617374204C696E653A006F6BD5 +:10022000005072696E7465722073746F70706564CB +:100230002064657520746F206572726F72732E2052 +:1002400046697820746865206572726F7220616EED +:100250006420757365204D39393920746F207265BB +:100260007374617274212E202854656D70657261FB +:10027000747572652069732072657365742E2053DE +:100280006574206974206265666F7265207265739B +:1002900074617274696E6729006F6B20543A002094 +:1002A0002F0020423A00202F0020403A00543A000C +:1002B00020453A0020573A00543A0020453A0020A1 +:1002C000423A004649524D574152455F4E414D45D5 +:1002D0003A4D61726C696E2056313B2053707269E1 +:1002E0006E7465722F6772626C206D6173687570D1 +:1002F00020666F722067656E36204649524D574121 +:1003000052455F55524C3A687474703A2F2F777784 +:10031000772E6D656E64656C2D70617274732E63DB +:100320006F6D2050524F544F434F4C5F56455253C0 +:10033000494F4E3A312E30204D414348494E455F9A +:10034000545950453A4D656E64656C204558545279 +:10035000554445525F434F554E543A310A00583A7E +:1003600000593A005A3A00453A0020436F756E74BE +:1003700020583A00593A005A3A00785F6D696E3A4F +:1003800000795F6D696E3A007A5F6D696E3A00556B +:100390006E6B6E6F776E20636F6D6D616E643A2267 +:1003A000002200526573656E643A006F6B005072F4 +:1003B000696E7465722068616C7465642E206B6967 +:1003C0006C6C28292063616C6C65642021210050CD +:1003D00072696E7465722073746F707065642064E6 +:1003E000657520746F206572726F72732E20466976 +:1003F0007820746865206572726F7220616E642067 +:10040000757365204D39393920746F2072657374A6 +:10041000617274212E202854656D70657261747547 +:1004200072652069732072657365742E205365743C +:10043000206974206265666F7265207265737461ED +:100440007274696E6729000000000102000000005C +:100450000000000403070600000000000000000088 +:10046000000000000000000102040810204080018C +:1004700002040810204080010204081020408080FF +:1004800040201008040201020202020202020204D9 +:100490000404040404040403030303030303030127 +:1004A00001010101010101002225282B002124273F +:1004B0002A6563686F3A0020636F6C642065787406 +:1004C000727573696F6E2070726576656E7465649F +:1004D0000020746F6F206C6F6E6720657874727582 +:1004E00073696F6E2070726576656E746564006501 +:1004F00063686F3A00656E6473746F707320686927 +:10050000743A200020583A0020593A00205A3A0004 +:1005100024F427D3FD204D0FB0119A05160CE902E3 +:100520002D09C801650733013206DE005405A70016 +:10053000AD0483002A046900C10356006B03480020 +:1005400023033D00E6023500B1022D00840228009D +:100550005C0223003902200019021C00FD01190071 +:10056000E4011700CD011500B8011300A501110029 +:100570009401100084010F0075010E0067010D0049 +:100580005A010C004E010B0043010A0039010A0018 +:100590002F010900260109001D01080015010700AF +:1005A0000E01080006010700FF000600F900060022 +:1005B000F3000600ED000600E7000500E20005007C +:1005C000DD000500D8000500D3000400CF000500C1 +:1005D000CA000400C6000400C2000400BE000300FC +:1005E000BB000400B7000300B4000300B100040026 +:1005F000AD000300AA000300A7000200A50003004D +:10060000A20003009F0002009D0003009A00020068 +:100610009800030095000200930002009100020080 +:100620008F0002008D0002008B0002008900020092 +:1006300087000200850002008300020081000100A3 +:10064000800002007E0002007C0001007B000200AE +:1006500079000100780002007600010075000100B9 +:1006600074000200720001007100010070000200BD +:100670006E0001006D0001006C0001006B000200C3 +:1006800069000100680001006700010066000100C8 +:1006900065000100640001006300010062000100C8 +:1006A00061000100600001005F0001005E000100C8 +:1006B0005D0001005C0001005B0000005B000100C8 +:1006C0005A000100590001005800010057000000C5 +:1006D00057000100560001005500010054000000C1 +:1006E00054000100530001005200010051000000BD +:1006F00051000100500001004F0000004F000100B8 +:100700004E0000004E0001004D0001004C000000B2 +:100710004C0001004B0000004B0001004A000100AA +:1007200049000000490001004800000048000100A5 +:10073000470000004700010046000000460001009D +:100740004500000045000100440000004400010095 +:10075000430000004300010042000000420001008D +:100760004100000041000000410001004000000085 +:10077000400001003F0000003F0001003E0000007B +:100780003E0000003E0001003D0000003D00010071 +:100790003C0000003C0000003C0001003B00000069 +:1007A0003B0000003B0001003A0000003A0000005E +:1007B0003A00010039000000390000003900010052 +:1007C0003800000038000000380001003700000049 +:1007D000370000003700010036000000360000003E +:1007E0003600010035000000350000003500000033 +:1007F0003500010034000000340000003400010026 +:10080000330000003300000033000000330001001B +:10081000320000003200000032000000320001000F +:100820003100000031000000310000003100010003 +:1008300030000000300000003000000030000100F7 +:100840002F0000002F0000002F0000002F000100EB +:100850002E0000002E0000002E0000002E000000E0 +:100860002E0001002D0000002D0000002D000000D2 +:100870002D0001002C0000002C0000002C000000C6 +:100880002C0000002C0001002B0000002B000000B9 +:100890002B0000002B0000002B0001002A000000AC +:1008A0002A0000002A0000002A0000002A000000A0 +:1008B0002A00010029000000290000002900000092 +:1008C0002900000029000000290001002800000084 +:1008D0002800000028000000280000002800010077 +:1008E000270000002700000027000000270000006C +:1008F000270000002700000027000100260000005C +:10090000260000002600000026000000260000004F +:1009100024F4B12873CB111D62AECC159698F41057 +:10092000A287900D127A190BF96E4009B965D307A9 +:10093000E65DB5063157D005615116054B4C7D0477 +:10094000CE47FD03D14392033F403603093DE90200 +:10095000203AA4027C376A0212353602DC320802E1 +:10096000D430E101F32EBD01362D9E01982B81017B +:10097000172A6701B028500160273B01252628016E +:10098000FD241601E7230701E022F800E821EB002F +:10099000FD20DE001F20D3004C1FC800841EBF00B6 +:1009A000C51DB500101DAD00631CA500BE1B9E003B +:1009B000201B9700891A9100F8198A006E1985008A +:1009C000E9187F006A187B00EF177600791771002D +:1009D00008176D009B166A0031166500CC15620081 +:1009E0006A155F000B155B00B014580058145600D0 +:1009F00002145200B013500060134E0012134B004B +:100A0000C71249007E12460038124500F311430018 +:100A1000B011400070113F0031113D00F4103C0056 +:100A2000B8103A007E103800461037000F1035001D +:100A3000DA0F3400A60F3300730F3100420F30007D +:100A4000120F3000E20E2D00B50E2D00880E2C0086 +:100A50005C0E2B00310E2A00070E2800DF0D280047 +:100A6000B70D2700900D26006A0D2600440D2400C6 +:100A7000200D2400FC0C2300D90C2200B70C22000E +:100A8000950C2100740C2000540C1F00350C1F0025 +:100A9000160C1F00F70B1E00D90B1D00BC0B1C0011 +:100AA000A00B1C00840B1C00680B1B004D0B1B00D3 +:100AB000320B1A00180B1900FF0A1900E60A190078 +:100AC000CD0A1800B50A18009D0A1800850A1700FB +:100AD0006E0A1600580A1600420A16002C0A160062 +:100AE000160A1500010A1500EC091400D8091400B3 +:100AF000C4091400B00914009C09130089091300EB +:100B00007609130063091200510912003F0912000F +:100B10002D0911001C0912000A091100F908100022 +:100B2000E9081100D8081000C8081000B808100023 +:100B3000A808100098080F0089080F007A080F0015 +:100B40006B080F005C080F004D080E003F080E00F8 +:100B500031080E0023080E0015080E0007080D00CE +:100B6000FA070D00ED070D00E0070D00D3070D009B +:100B7000C6070D00B9070C00AD070C00A1070D005A +:100B800094070B0089070C007D070C0071070C000F +:100B900065070B005A070B004F070B0044070B00BB +:100BA00039070B002E070B0023070B0018070A005C +:100BB0000E070B0003070A00F9060A00EF060A00F9 +:100BC000E5060A00DB060A00D1060900C8060A008D +:100BD000BE060900B5060A00AB060900A206090018 +:100BE0009906090090060900870609007E0609009B +:100BF000750609006C060800640609005B0608001B +:100C0000530609004A060800420608003A06080092 +:100C1000320608002A060800220608001A06080004 +:100C2000120607000B06080003060800FB05070074 +:100C3000F4050800EC050700E5050700DE050700E0 +:100C4000D7050700D0050700C9050700C205070042 +:100C5000BB050700B4050700AD050700A6050600A3 +:100C6000A005070099050700920506008C050600FF +:100C7000860507007F050600790506007305070055 +:100C80006C05060066050600600506005A050600AC +:100C9000540506004E0506004805060042050500FD +:100CA0003D05060037050600310505002C05060048 +:100CB00026050500210506001B0505001605060092 +:100CC000100505000B0505000605060000050500DA +:100CD000FB040500F6040500F1040500EC04050022 +:100CE000E7040500E2040500DD040500D804050062 +:100CF000D3040500CE040500C9040500C4040500A2 +:100D0000BF040400BB040500B6040500B1040500DF +:100D100020626961733A200020643A2000206D69E6 +:100D20006E3A2000206D61783A2000204B753A2001 +:100D3000002054753A200020436C61736963205091 +:100D400049442000204B703A2000204B693A200093 +:100D5000204B643A2000504944204175746F7475EB +:100D60006E65206661696C6564212054656D7065EF +:100D700072617475726520746F2068696768006FAE +:100D80006B20543A0020403A005049442041757489 +:100D90006F74756E65206661696C65642120746985 +:100DA0006D656F757400504944204175746F74759A +:100DB0006E652066696E6973686564202120506CD9 +:100DC00061636520746865204B702C204B6920613D +:100DD0006E64204B6420636F6E7374616E74732055 +:100DE000696E2074686520636F6E666967757261ED +:100DF00074696F6E2E68004572726F723A00202D12 +:100E000020496E76616C69642065787472756465DA +:100E100072206E756D62657221001000C90220019A +:100E20003C0130020A014003EF005004DD00600580 +:100E3000D0007006C5008007BC009008B500A0096E +:100E4000AE00B00AA900C00BA300D00C9F00E00DBB +:100E50009A00F00E96000010930010118F002012DF +:100E60008C003013880040148500501582006016F5 +:100E7000800070177D0080187A0090197800A01A01 +:100E80007500B01B7300C01C7000D01D6E00E01E0A +:100E90006C00F01F6A00002167001022650020230B +:100EA00063003024610040255F0050265C0060270D +:100EB0005A007028580080295600902A5400A02B10 +:100EC0005100B02C4F00C02D4D00D02E4B00E02F14 +:100ED0004800F03046000032430010334000203418 +:100EE0003D0030353A004036370050373400603826 +:100EF000300070392C00803A2800903B2200A03C42 +:100F00001C00B03D1400C03E0800D03F0000202D62 +:100F100020496E76616C69642065787472756465C9 +:100F200072206E756D6265722021003A20457874DA +:100F30007275646572207377697463686564206F85 +:100F400066662E204D415854454D50207472696795 +:100F500067657265642021003A2045787472756473 +:100F60006572207377697463686564206F66662EA6 +:100F7000204D494E54454D50207472696767657223 +:100F8000656420210054656D7065726174757265C9 +:100F90002068656174656420626564207377697494 +:100FA00063686564206F66662E204D415854454D38 +:100FB0005020747269676765726564202121004959 +:100FC0004E46494E4954594E414E000020410000C2 +:100FD000C84200401C4620BCBE4CCA1B0E5AAEC5BF +:100FE0009D74CDCCCC3D0AD7233C17B7D13877CCF4 +:100FF0002B329595E6241FB14F0A11241FBECFEF67 +:10100000D0E1DEBFCDBF12E0A0E0B1E0E8EDFAEA4A +:1010100002C005900D92A038B107D9F71AE0A0E8F8 +:10102000B2E001C01D92A13FB107E1F70E942E215D +:101030000C946A550C940000AF92BF92CF92DF924D +:10104000EF92FF920F931F93CF93DF93CDB7DEB74D +:10105000E0970FB6F894DEBF0FBECDBF80E1E7E3A7 +:10106000F1E0DE01919601900D928A95E1F780E121 +:10107000E7E4F1E0DE01519601900D928A95E1F7E7 +:1010800080E1E7E5F1E0DE01119601900D928A958D +:10109000E1F76E0181E2C80ED11C85E2E82E8AE0FC +:1010A000F82E8E010F5E1F4F65E37AE0AE014F5FB1 +:1010B0005F4F95E1A92E9AE0B92E20E030E0F601CD +:1010C00081919191A191B1916F01F70181939193D8 +:1010D000A193B1937F01F80181919191A191B19177 +:1010E0008F01FB0181939193A193B193BF01FA0109 +:1010F00081919191A191B191AF01F501819391936A +:10110000A193B1935F012F5F3F4F24303105B9F6B2 +:1011100080E090E0AAEFB3E480930D0A90930E0A6A +:10112000A0930F0AB093100A80E090E8ABE3B5E417 +:101130008093090A90930A0AA0930B0AB0930C0AB1 +:101140001092110A1092120A1092130A1092140AA5 +:1011500080E29EE4A0E0B0E08093450A9093460AC6 +:10116000A093470AB093480A1092F9091092FA091D +:101170001092FB091092FC0980E090E0A0EAB1E433 +:101180008093050A9093060AA093070AB093080A71 +:101190008DEC9CECACECBEE38093010A9093020AC8 +:1011A000A093030AB093040A80E090E0A0EAB0E4C0 +:1011B0008093FD099093FE09A093FF09B093000A64 +:1011C000EBEBF0E007C09091C00095FFFCCF80935F +:1011D000C600319684918111F6CFE7E6F1E006C0B2 +:1011E0009091C00095FFFCCF8093C6008191811142 +:1011F000F7CF8091C00085FFFCCF8AE08093C600C6 +:10120000E0960FB6F894DEBF0FBECDBFDF91CF9151 +:101210001F910F91FF90EF90DF90CF90BF90AF9014 +:101220000895CF93DF9300D0CDB7DEB78091EB0A5E +:101230009091EC0A9E012F5F3F4F009719F4215FB8 +:101240003A4002C0281B390B3A83298389819A814D +:101250000F900F90DF91CF910895CF92DF92EF9290 +:10126000FF920F931F93CF93DF9300D000D0CDB7A1 +:10127000DEB740E052EC61E070E081E894E00E946B +:101280001623E1ECF0E007C09091C00095FFFCCF81 +:101290008093C600319684918111F6CF8091C00071 +:1012A00085FFFCCF8AE08093C6008BEB90E0FC01C9 :1012B00007C03091C00035FFFCCF2093C6003196A7 -:1012C00024912223B1F724B720FF14C0E3E3F4E014 +:1012C00024912111F6CF24B720FF14C0E7ECF0E001 :1012D00007C04091C00045FFFCCF3093C600319657 -:1012E00034913323B1F73091C00035FFFCCF3AE0A1 -:1012F0003093C60021FF14C0E3E2F4E007C0409140 -:10130000C00045FFFCCF3093C600319634913323A3 -:10131000B1F73091C00035FFFCCF3AE03093C60002 -:1013200022FF14C0E2E1F4E007C04091C00045FF95 -:10133000FCCF3093C600319634913323B1F730910E +:1012E00034913111F6CF3091C00035FFFCCF3AE098 +:1012F0003093C60021FF14C0EFECF0E007C040912E +:10130000C00045FFFCCF3093C600319634913111B7 +:10131000F6CF3091C00035FFFCCF3AE03093C600E5 +:1013200022FF14C0EFEDF0E007C04091C00045FF80 +:10133000FCCF3093C600319634913111F6CF309105 :10134000C00035FFFCCF3AE03093C60023FF14C045 -:10135000E2E0F4E007C04091C00045FFFCCF3093CD -:10136000C600319634913323B1F73091C00035FF78 -:10137000FCCF3AE03093C60025FF14C0E2EFF3E063 +:10135000E0EFF0E007C04091C00045FFFCCF3093C4 +:10136000C600319634913111F6CF3091C00035FF6F +:10137000FCCF3AE03093C60025FF14C0E0E0F1E076 :1013800007C03091C00035FFFCCF2093C6003196D6 -:1013900024912223B1F72091C00025FFFCCF2AE041 -:1013A0002093C60014BEE9EEF3E007C03091C00000 -:1013B00035FFFCCF2093C600319624912223B1F74C -:1013C000EFEDF3E007C03091C00035FFFCCF209374 -:1013D000C600319624912223B1F72091C00025FF49 -:1013E000FCCF2AE02093C600FC012491E6E6F1E060 +:1013900024912111F6CF2091C00025FFFCCF2AE037 +:1013A0002093C60014BEE0E1F1E007C03091C00018 +:1013B00035FFFCCF2093C600319624912111F6CF42 +:1013C000E9E1F1E007C03091C00035FFFCCF209388 +:1013D000C600319624912111F6CF2091C00025FF3F +:1013E000FCCF2AE02093C600FC012491EBEBF0E057 :1013F00008C03091C00035FFFCCF2093C600319665 -:1014000024912223B1F7EFECF3E007C03091C00044 -:1014100035FFFCCF2093C600319624912223B1F7EB -:10142000E4ECF3E007C03091C00035FFFCCF20931F -:10143000C600319624912223B1F7E8EBF3E007C010 +:1014000024912111F6CFE3E2F1E007C03091C00052 +:1014100035FFFCCF2093C600319624912111F6CFE1 +:10142000E3E3F1E007C03091C00035FFFCCF20932B +:10143000C600319624912111F6CFEEE3F1E007C00A :101440003091C00035FFFCCF2093C6003196249127 -:101450002223B1F7E3EBF3E007C03091C00035FF82 -:10146000FCCF2093C600319624912223B1F720911E +:101450002111F6CFEAE4F1E007C03091C00035FF7A +:10146000FCCF2093C600319624912111F6CF209114 :10147000C00025FFFCCF2AE02093C600FC01849128 -:10148000E6E6F1E008C09091C00095FFFCCF8093A4 -:10149000C600319684918823B1F7E4EAF3E007C0EF +:10148000EBEBF0E008C09091C00095FFFCCF80939B +:10149000C600319684918111F6CFEFE4F1E007C0E8 :1014A0009091C00095FFFCCF8093C6003196849147 -:1014B0008823B1F7B8DEBC018BE095E04AE050E04C -:1014C0000E949C23EDE8F3E007C09091C00095FFD7 -:1014D000FCCF8093C600319684918823B1F78BE0CE -:1014E00095E060ED74E04AE050E00E949C2380911A -:1014F000C00085FFFCCF8AE08093C6001092740480 -:1015000010927504109276041092770480E092DDB8 -:10151000C0E3D5E000E215E03CE5E32E35E0F32E34 -:101520006991799189919991F801A190B190C190B7 -:10153000D1908F010E94DD4FA60195010E941252A9 -:101540000E94B14FF70161937193819391937F0151 -:10155000F5E0C034DF0721F70E94BA4B0E94CF2C80 -:101560000E94D340DF91CF911F910F91FF90EF9098 -:10157000DF90CF90BF90AF90089580916C049091D0 -:101580006D04019660E070E00C94615380916C04EE -:1015900090916D04019660E070E04AE050E00C9498 -:1015A000CE54682FE091EA02F091EB0240E650E061 -:1015B000E49F9001E59F300DF49F300D1124C90187 -:1015C00084519D4F70E00E9418569C0190936D04C9 -:1015D00080936C0481E02115310509F480E00895C1 -:1015E0000E94E2206093B4027093B5028093B60229 -:1015F0009093B702EBE5F1E007C09091C00095FF32 -:10160000FCCF8093C600319684918823B1F78091F6 -:10161000C00085FFFCCF8AE08093C60008958BE070 -:1016200095E00E94D222EEE5F1E007C09091C00063 -:1016300095FFFCCF8093C600319684918823B1F743 -:101640004091AC025091AD026091AE027091AF0238 -:101650004F5F5F4F6F4F7F4F8BE095E02AE030E0A8 -:101660000E946C238091C00085FFFCCF8AE08093AC -:10167000C600B6CF4F925F926F927F928F929F92E9 -:10168000AF92BF92CF92DF92EF92FF920F931F9390 -:10169000CF93DF9370E6C72ED12C64E0662E712CB9 -:1016A00051E0A52EB12CE0E7F2E084904AE0942EC0 -:1016B000E8EEF2E05490442443941CC28D3071F063 -:1016C0008A3321F490916F04992341F020917004A2 -:1016D000309171042F3531050CF4EEC1E0917004A6 -:1016E000F0917104309719F410926F0422C2809126 -:1016F0007204909173048C9DE0018D9DD00D9C9D92 -:10170000D00D1124EC0FFD1FE451FD4F10822091EC -:101710006F04222309F0CBC110926F048C589B4FA9 -:10172000FC0110828E0104511D4FC8016EE470E06F -:101730000E941856009709F412C190936D0480938B -:101740006C049501201B310B280F391F2C0F3D1FF6 -:10175000C90184519D4F60E070E04AE050E00E9472 -:10176000CE54609378047093790480937A049093B4 -:101770007B04E090AC02F090AD020091AE021091BB -:10178000AF02A80197012F5F3F4F4F4F5F4F621786 -:1017900073078407950709F43AC0209172043091C9 -:1017A00073042C9DC0012D9D900D3C9D900D112426 -:1017B00084519D4F68E171E00E942356009739F5EE -:1017C000EBEBF0E007C09091C00095FFFCCF809359 -:1017D000C600319684918823B1F7EBE5F3E007C0AA -:1017E0009091C00095FFFCCF8093C6003196849104 -:1017F0008823B1F78BE095E0B801A7012AE030E03B -:101800000E946C238091C00085FFFCCF92C0809124 -:101810007204909173048C9DE0018D9DD00D9C9D70 -:10182000D00D1124CE0184519D4F6AE270E00E94D8 -:101830001856009709F457C020E000E002C00327C3 -:101840002F5FFE01E20FF11DE451FD4F30813A326E -:10185000B1F790936D0480936C049E0124513D4F29 -:10186000A501421B530B9A01280F391F2C0F3D1F56 -:10187000C90184519D4F60E070E00E9461530E9455 -:10188000AC4F10E00617170709F458C0EBEBF0E077 -:1018900007C09091C00095FFFCCF8093C6003196A1 -:1018A00084918823B1F7EDE3F3E007C09091C00085 -:1018B00095FFFCCF8093C600319684918823B1F7C1 -:1018C0004091AC025091AD026091AE027091AF02B6 -:1018D0008BE095E02AE030E00E946C238091C0000C -:1018E00085FFFCCF26C0EBEBF0E007C09091C00075 -:1018F00095FFFCCF8093C600319684918823B1F781 -:10190000E4E1F3E007C09091C00095FFFCCF809325 -:10191000C600319684918823B1F78BE095E0B80139 -:10192000A7012AE030E00E946C238091C00085FF6F -:10193000FCCF8AE08093C60072DE47C080917804B5 -:1019400090917904A0917A04B0917B048093AC02C9 -:101950009093AD02A093AE02B093AF023BC0C8011A -:101960006AE270E00E9418560097A1F1EBEBF0E0FC -:1019700007C09091C00095FFFCCF8093C6003196C0 -:1019800084918823B1F7EBEEF2E007C09091C0009C -:1019900095FFFCCF8093C600319684918823B1F7E0 -:1019A0004091AC025091AD026091AE027091AF02D5 -:1019B0008BE095E02AE030E00E946C238091C0002B -:1019C00085FFFCCF8AE08093C600109271041092CC -:1019D0007004AFC080917204909173048C9D80015B -:1019E0008D9D100D9C9D100D1124E801C451DD4FFB -:1019F000CE0167E470E00E941856009709F442C0D7 -:101A000090936D0480936C0495012C1B3D0B280F63 -:101A1000391F200F311FC90184519D4F60E070E0D4 -:101A20000E9461530E94AC4F6430710558F580915B -:101A3000AB02882399F4852DE8EEF2E008C090917E -:101A4000C00095FFFCCF8093C60031968491882317 -:101A5000B1F78091C00085FFFCCF12C0882DE0E770 -:101A6000F2E008C09091C00095FFFCCF8093C600C3 -:101A7000319684918823B1F78091C00085FFFCCF17 -:101A80009092C60080917204909173040196B30104 -:101A90000E94F752909373048093720480917C04A7 -:101AA00090917D04019690937D0480937C04109224 -:101AB0007104109270041EC08B3311F440926F04B5 -:101AC00090916F049923B1F4409172045091730482 -:101AD0004C9DF0014D9DF00D5C9DF00D1124E20F29 -:101AE000F31FE451FD4F80832F5F3F4F309371040C -:101AF00020937004809107059091080520910905B5 -:101B000030910A05821B930B8F779070009789F0B4 -:101B100080917C0490917D048430910554F48BE095 -:101B200095E00E94B62280936E048A3009F0C6CDFB -:101B3000D5CDDF91CF911F910F91FF90EF90DF9066 -:101B4000CF90BF90AF909F908F907F906F905F905D -:101B50004F9008958F929F92AF92BF92CF92DF9253 -:101B6000EF92FF920F931F93CF93DF93F1E1EF2E4C -:101B7000F2E0FF2ECDE8D2E008EC12E0E6E8CE2E4F -:101B8000E2E0DE2EF70181917F010BDD882321F158 -:101B9000F4DC4B015C01F6018081882319F460912B -:101BA000D80201C061E070E0882777FD8095982F0A -:101BB0000E94DF4F288139814A815B810E94125245 -:101BC0009B01AC01C501B4010E94644EF801608321 -:101BD00071838283938309C088819981AA81BB81A3 -:101BE000F80180839183A283B38324960C5F1F4FF7 -:101BF0000894C11CD11CF5E1EF16F2E0FF0609F0D4 -:101C0000C1CF86E4CEDC8823D1F0B7DC7B018C0128 -:101C10006093D9027093DA028093DB029093DC0226 -:101C200020E030E0A9010E944051181644F4E092EF -:101C3000F201F092F3010093F4011093F501DF91AA -:101C4000CF911F910F91FF90EF90DF90CF90BF90B9 -:101C5000AF909F908F9008957DDF89E4A2DC882368 -:101C600051F08BDC6093BC027093BD028093BE0286 -:101C70009093BF020BC080E090E0DC018093BC0237 -:101C80009093BD02A093BE02B093BF028AE489DCA8 -:101C9000882351F072DC6093C0027093C10280937C -:101CA000C2029093C302089580E090E0DC0180932B -:101CB000C0029093C102A093C202B093C3020895E0 -:101CC000CF92DF92EF92FF920F931F936091C80221 -:101CD0007091C9028091CA029091CB0220E030E05D -:101CE000A9010E943D4F87FF0BC080E090E0DC011E -:101CF0008093C8029093C902A093CA02B093CB020A -:101D00006091CC027091CD028091CE029091CF0271 -:101D100020E030E0A9010E943D4F87FF0BC080E02A -:101D200090E0DC018093CC029093CD02A093CE0290 -:101D3000B093CF026091D0027091D1028091D20213 -:101D40009091D30220E030E0A9010E943D4F87FF2F -:101D50000BC080E090E0DC018093D0029093D10230 -:101D6000A093D202B093D3026091C8027091C902CD -:101D70008091CA029091CB0220E030E04DE453E420 -:101D80000E944051181664F480E090E0ADE4B3E4A2 -:101D90008093C8029093C902A093CA02B093CB0269 -:101DA0006091CC027091CD028091CE029091CF02D1 -:101DB00020E030E04DE453E40E944051181664F4F2 -:101DC00080E090E0ADE4B3E48093CC029093CD0248 -:101DD000A093CE02B093CF026091D0027091D10255 -:101DE0008091D2029091D30220E030E040EF52E4A3 -:101DF0000E944051181664F480E090E0A0EFB2E435 -:101E00008093D0029093D102A093D202B093D302D8 -:101E10000E94E2206093B4027093B5028093B602F0 -:101E20009093B7026091EA017091EB01882777FDEA -:101E30008095982F0E94DF4F2091F2013091F3019D -:101E40004091F4015091F5010E94125220E030E0DF -:101E500040E752E40E94444F20E030E048EC52E476 -:101E60000E94444F7B018C0188EC92E06CEC72E0A4 -:101E700040ED52E024ED32E0A9EACA2EA2E0DA2ECB -:101E80000E945E2D8091C8029091C902A091CA0261 -:101E9000B091CB0280938D0290938E02A0938F021B -:101EA000B09390028091CC029091CD02A091CE028D -:101EB000B091CF028093910290939202A0939302EB -:101EC000B09394028091D0029091D102A091D2025D -:101ED000B091D3028093950290939602A0939702BB -:101EE000B09398028091D4029091D502A091D6022D -:101EF000B091D7028093990290939A02A0939B028B -:101F0000B0939C021F910F91FF90EF90DF90CF90C4 -:101F100008959F92AF92BF92CF92DF92EF92FF927D -:101F20000F931F93CF93DF93982E6091BC02709113 -:101F3000BD028091BE029091BF022091C0023091FB -:101F4000C1024091C2025091C3020E944D517B01D7 -:101F50008C016091EA017091EB0100D000D000D0BB -:101F6000CDB7DEB72196882777FD8095982F0E9400 -:101F7000DF4F2091F2013091F3014091F401509133 -:101F8000F5010E94125220E030E040E752E40E9446 -:101F9000444F20E030E048EC52E40E94444F5B01A3 -:101FA0006C01E882F9820A831B839C828091A902DA -:101FB0008D838DE892E068EC72E04CEB52E020E01B -:101FC00001E0B2E0EB2E0E9478248091C80290914B -:101FD000C902A091CA02B091CB0280938D02909366 -:101FE0008E02A0938F02B09390028091CC029091C8 -:101FF000CD02A091CE02B091CF0280939102909336 -:102000009202A0939302B09394028091D002909197 -:10201000D102A091D202B091D30280939502909305 -:102020009602A0939702B09398028091D402909167 -:10203000D502A091D602B091D702809399029093D5 -:102040009A02A0939B02B0939C028DB79EB706960E -:102050000FB6F8949EBF0FBE8DBF0E94E220609322 -:10206000B4027093B5028093B6029093B702DF91E9 -:10207000CF911F910F91FF90EF90DF90CF90BF9085 -:10208000AF909F900895F8940E94184C5A985A98CF -:102090005A985A98EBEBF0E007C09091C00095FF7A -:1020A000FCCF8093C600319684918823B1F7EAE390 -:1020B000F1E007C09091C00095FFFCCF8093C6006F -:1020C000319684918823B1F78091C00085FFFCCFC1 -:1020D0008AE08093C600FFCFEF92FF920F931F9389 -:1020E0000E94E2202091B8023091B9024091BA02D8 -:1020F0005091BB02E090B402F090B5020091B6029C -:102100001091B7026E197F09800B910B26173707C4 -:102110004807590730F4211531054105510509F0EB -:10212000B2DF8091EE019091EF01A091F001B091AA -:10213000F1010097A105B10529F10E94E22020914B -:10214000B4023091B5024091B6025091B702621BC1 -:10215000730B840B950B2091EE013091EF014091B0 -:10216000F0015091F101261737074807590750F43D -:1021700090914C0A80914D0A981721F45A985A98D8 -:102180005A985A980E94062D1EBA1F910F91FF90DF -:10219000EF9008952F923F924F925F926F927F92AD -:1021A0008F929F92AF92BF92CF92DF92EF92FF9267 -:1021B0000F931F93DF93CF93CDB7DEB7A2970FB6E0 -:1021C000F894DEBF0FBECDBF87E4EBD9882309F4B6 -:1021D000A3C5D3D90E94AC4F6430710509F43CC04B -:1021E0006530710554F46230710531F16330710569 -:1021F00054F577FF19C00C94F41F6A35710509F482 -:1022000027C56B35710534F46C31710511F00C94F0 -:10221000F41F64C06B35710509F41EC56C3571057A -:1022200011F00C94F41F1DC58091AB02882321F49A -:1022300091DC46DD0C9413208091AB02882319F4C5 -:102240000BDD81E006C08091AB02882329F404DD18 -:1022500080E05FDE0C94132080E5A3D9882341F051 -:102260008CD90E94B14FE62EF72E082F192F03C0EC -:10227000EE24FF24870183E594D9882369F07DD972 -:1022800020E030E04AE754E40E9412520E94B14F2D -:10229000E62EF72E082F192F0E9412410E94E220ED -:1022A0005B016C01AE0CBF1CC01ED11E0E94E2205F -:1022B0006093B4027093B5028093B6029093B70214 -:1022C00004C00E94AB4381E007DF0E94E2206A1550 -:1022D0007B058C059D05A8F30C94F41F8091F201F9 -:1022E0009091F301A091F401B091F5018093DD028A -:1022F0009093DE02A093DF02B093E0028091EA01A6 -:102300009091EB0190938B0280938A0284E690E097 -:102310009093EB018093EA010E94E2206093B40263 -:102320007093B5028093B6029093B70281E00E9449 -:10233000D43A80918D0290918E02A0918F02B0913B -:1023400090028093C8029093C902A093CA02B093EE -:10235000CB028091910290919202A0919302B09150 -:1023600094028093CC029093CD02A093CE02B093BE -:10237000CF028091950290919602A0919702B09120 -:1023800098028093D0029093D102A093D202B0938E -:10239000D3028091990290919A02A0919B02B091F0 -:1023A0009C028093D4029093D502A093D602B0935E -:1023B000D70280E090E0DC018093F2019093F3017A -:1023C000A093F401B093F50188E5EBD8882351F48C -:1023D00089E5E7D8882331F48AE5E3D8882311F426 -:1023E00081E001C080E08093F60188E5DAD8882397 -:1023F00009F4E6C089E5D5D8882309F4E1C080E076 -:1024000090E0DC0180938D0290938E02A0938F0266 -:10241000B09390028093910290939202A0939302C2 -:10242000B09394028DE892E061E972E045E952E0F0 -:1024300029E932E00E94453980E090ECA9E9B3EC4B -:102440008093C8029093C902A093CA02B093CB02B2 -:102450008093CC029093CD02A093CE02B093CF0292 -:102460002091DA013091DB014091DC015091DD01D6 -:102470002093F2013093F3014093F4015093F5015E -:10248000E090DE01F090DF010091E0011091E101A8 -:10249000C801B7010E943D4F87FF08C0E092F201DA -:1024A000F092F3010093F4011093F5016091F201B1 -:1024B0007091F3018091F4019091F50120E030E0FA -:1024C00040E752E40E94444F7B018C0188EC92E08B -:1024D0006CEC72E040ED52E024ED32E0B9EACB2E34 -:1024E000B2E0DB2E0E945E2D0E9412410F2EF0E022 -:1024F0008F2EF0E09F2EF0E0AF2EF0E0BF2EF02DFB -:1025000080928D0290928E02A0928F02B0929002E1 -:102510008092910290929202A0929302B0929402C1 -:102520008DE892E061E972E045E952E029E932E0A4 -:102530000E94453980918D0290918E02A0918F0268 -:10254000B09190028093C8029093C902A093CA02EE -:10255000B093CB028091910290919202A09193024C -:10256000B09194028093CC029093CD02A093CE02BE -:10257000B093CF026091F2017091F3018091F40168 -:102580009091F50120E030E040E752E40E94444F92 -:102590007B018C0188EC92E06CEC72E040ED52E043 -:1025A00024ED32E00E945E2D8092F2019092F301C0 -:1025B000A092F401B092F5010E9412410E94CD3A1E -:1025C0008091F601882331F488E50E94D10A88239E -:1025D00009F4DEC00F2EF0E08F2EF0E09F2EF0E029 -:1025E000AF2EF0E0BF2EF02D80928D0290928E02E1 -:1025F000A0928F02B09290028DE892E061E972E0C1 -:1026000045E952E029E932E00E94453980E090EC4A -:10261000A9E9B3EC8093C8029093C902A093CA02BF -:10262000B093CB026091DA017091DB018091DC0103 -:102630009091DD016093F2017093F3018093F401B6 -:102640009093F50120E030E040E752E40E94444FCF -:102650007B018C0188EC92E06CEC72E040ED52E082 -:1026600024ED32E0A9EACA2EA2E0DA2E0E945E2D05 -:102670000E94124180928D0290928E02A0928F024F -:10268000B09290028DE892E061E972E045E952E093 -:1026900029E932E00E94453980E090E0A0EAB0E408 -:1026A0008093C8029093C902A093CA02B093CB0250 -:1026B0006091F2017091F3018091F4019091F50124 -:1026C00020E030E040E752E40E94444F7B018C015F -:1026D00088EC92E06CEC72E040ED52E024ED32E0E8 -:1026E0000E945E2D0E94124180E090E0A0E2B1ECD9 -:1026F0008093C8029093C902A093CA02B093CB0200 -:102700006091DA017091DB018091DC019091DD0133 -:1027100020E030E040E05FE30E941252262F372F86 -:10272000482F592F2093F2013093F3014093F40185 -:102730005093F50120E030E040E752E40E94444F1E -:102740007B018C0188EC92E06CEC72E040ED52E091 -:1027500024ED32E00E945E2D0E94124180928D0293 -:1027600090928E02A0928F02B09290028092C80244 -:102770009092C902A092CA02B092CB028092F2015A -:102780009092F301A092F401B092F5010E94CD3A2B -:102790008091F601882331F489E50E94D10A8823CB -:1027A00009F4DEC00F2EF0E08F2EF0E09F2EF0E057 -:1027B000AF2EF0E0BF2EF02D809291029092920207 -:1027C000A0929302B09294028DE892E061E972E0E7 -:1027D00045E952E029E932E00E94453980E090EC79 -:1027E000A9E9B3EC8093CC029093CD02A093CE02E2 -:1027F000B093CF026091DE017091DF018091E00122 -:102800009091E1016093F2017093F3018093F401E0 -:102810009093F50120E030E040E752E40E94444FFD -:102820007B018C0188EC92E06CEC72E040ED52E0B0 -:1028300024ED32E0F9EACF2EF2E0DF2E0E945E2D89 -:102840000E9412418092910290929202A092930271 -:10285000B09294028DE892E061E972E045E952E0BD -:1028600029E932E00E94453980E090E0A0EAB0E436 -:102870008093CC029093CD02A093CE02B093CF026E -:102880006091F2017091F3018091F4019091F50152 -:1028900020E030E040E752E40E94444F7B018C018D -:1028A00088EC92E06CEC72E040ED52E024ED32E016 -:1028B0000E945E2D0E94124180E090E0A0E2B1EC07 -:1028C0008093CC029093CD02A093CE02B093CF021E -:1028D0006091DE017091DF018091E0019091E10152 -:1028E00020E030E040E05FE30E941252262F372FB5 -:1028F000482F592F2093F2013093F3014093F401B4 -:102900005093F50120E030E040E752E40E94444F4C -:102910007B018C0188EC92E06CEC72E040ED52E0BF -:1029200024ED32E00E945E2D0E94124180929102BD -:1029300090929202A0929302B09294028092CC0262 -:102940009092CD02A092CE02B092CF028092F2017C -:102950009092F301A092F401B092F5010E94CD3A59 -:102960008091F601882331F48AE50E94D10A8823F8 -:1029700009F4DEC00F2EF0E08F2EF0E09F2EF0E085 -:10298000AF2EF0E0BF2EF02D80929502909296022D -:10299000A0929702B09298028DE892E061E972E00D -:1029A00045E952E029E932E00E94453980E090E0B3 -:1029B000A4E3B3EC8093D0029093D102A093D2020F -:1029C000B093D3026091E2017091E3018091E40140 -:1029D0009091E5016093F2017093F3018093F4010B -:1029E0009093F50120E030E040E752E40E94444F2C -:1029F0007B018C0188EC92E06CEC72E040ED52E0DF -:102A000024ED32E0E9EACE2EE2E0DE2E0E945E2DD9 -:102A10000E9412418092950290929602A092970293 -:102A2000B09298028DE892E061E972E045E952E0E7 -:102A300029E932E00E94453980E090E0A0E8BFE358 -:102A40008093D0029093D102A093D202B093D3028C -:102A50006091F2017091F3018091F4019091F50180 -:102A600020E030E040E752E40E94444F7B018C01BB -:102A700088EC92E06CEC72E040ED52E024ED32E044 -:102A80000E945E2D0E94124180E090E0A0E0B0EC38 -:102A90008093D0029093D102A093D202B093D3023C -:102AA0006091E2017091E3018091E4019091E50170 -:102AB00020E030E040E05FE30E941252262F372FE3 -:102AC000482F592F2093F2013093F3014093F401E2 -:102AD0005093F50120E030E040E752E40E94444F7B -:102AE0007B018C0188EC92E06CEC72E040ED52E0EE -:102AF00024ED32E00E945E2D0E94124180929502E8 -:102B000090929602A0929702B09298028092D00280 -:102B10009092D102A092D202B092D3028092F2019E -:102B20009092F301A092F401B092F5010E94CD3A87 -:102B300088E50E94D10A8823D9F00E94C60A61154F -:102B4000710581059105A1F00E94BD0A20919D02A9 -:102B500030919E0240919F025091A0020E94644ECB -:102B600060938D0270938E0280938F0290939002F7 -:102B700089E50E94D10A8823D9F00E94C60A61150E -:102B8000710581059105A1F00E94BD0A2091A10265 -:102B90003091A2024091A3025091A4020E94644E7F -:102BA00060939102709392028093930290939402A7 -:102BB0008AE50E94D10A8823D9F00E94C60A6115CD -:102BC000710581059105A1F00E94BD0A2091A50221 -:102BD0003091A6024091A7025091A8020E94644E33 -:102BE0006093950270939602809397029093980257 -:102BF0008DE892E061E972E045E952E029E932E0CE -:102C00000E9445398091DD029091DE02A091DF02A1 -:102C1000B091E0028093F2019093F301A093F4014C -:102C2000B093F50180918A0290918B029093EB0111 -:102C30008093EA010E94E2206093B4027093B5028F -:102C40008093B6029093B7020E94CD3A0C94F41F81 -:102C50001092D8020C94F41F81E08093D8020C9457 -:102C6000F41F85E40E94D10A882311F40E941241C6 -:102C700041E1842E42E0942E3DE9E32E32E0F32E32 -:102C80000DE812E0AA24F40181914F010E94D10ABB -:102C90008823A9F10E94BD0AF70120813181428178 -:102CA00053810E94644EF801608371838283938311 -:102CB000FA2DF33061F40E94BD0AF801608371833C -:102CC0008283938389E992E00E94F23918C00E94BE -:102CD000BD0AF70120813181428153810E94644EF7 -:102CE000F80160837183828393838DE892E061E9C8 -:102CF00072E045E952E029E932E00E944539A394A7 -:102D000024E030E0E20EF31E0C5F1F4F3A2D34300A -:102D100009F0B9CF0C94F41F8DE40E94D10A8823E6 -:102D200011F40C944A1F0E94BD0A0E94AC4F6737F1 -:102D3000710509F434C6683771050CF056C0653565 -:102D4000710509F412C5663571051CF56A32710505 -:102D500009F41BC16B32710574F46231710509F419 -:102D6000C0C46F31710509F4A5C06131710511F05E -:102D70000C94F41F99C06335710509F4AEC4643531 -:102D800071050CF0AEC46235710511F00C94F41F9E -:102D9000A1C46A36710509F473C46B36710574F405 -:102DA0006836710509F434C1693671050CF0A1C1AA -:102DB0006C35710511F00C94F41FEDC46D3671057E -:102DC00009F429C26E36710534F46B36710511F0C1 -:102DD0000C94F41F7CC46237710509F407C563378E -:102DE000710511F00C94F41FF3C46C3D710509F4E6 -:102DF00028C76D3D71051CF56B3C710509F469C66A -:102E00006C3C710574F46E3B710509F49BC3693C1D -:102E1000710509F424C66C38710511F00C94F41F87 -:102E200055C16D3C710509F491C66D3C71050CF4FA -:102E30006DC66E3C710511F00C94F41FE5C681E07F -:102E40006F32780709F4F9C791E06033790784F4A9 -:102E5000E1E06D327E0709F415C7F1E06E327F07BD -:102E60000CF0E7C76D3D710511F00C94F41FFBC623 -:102E700021E0653F720709F4F2C731E0663F73074E -:102E80003CF481E06039780711F00C94F41FE4C73A -:102E900091E0663F790709F4E4C7E3E0673E7E0707 -:102EA00011F00C94F41FE1C75A9A5A9A5A9A5A9AF6 -:102EB0000C94F41F0E94E2206093E1027093E202FE -:102EC0008093E3029093E4022091E5023091E602C0 -:102ED0004091E7025091E802621B730B840B950B43 -:102EE00028EE33E040E050E00E940A538DB79EB7D1 -:102EF00008970FB6F8949EBF0FBE8DBF0DB71EB7D3 -:102F00000F5F1F4FCE010196EDB7FEB7928381830D -:102F100083E291E0F80193838283CA01B9012CE333 -:102F200030E040E050E00E940A53F80135832483EA -:102F3000778366830E943D56E6E6F1E084912DB7E3 -:102F40003EB7285F3F4F0FB6F8943EBF0FBE2DBF70 -:102F500008C09091C00095FFFCCF8093C6003196C9 -:102F600084918823B1F7FE01319606C09091C0008C -:102F700095FFFCCF8093C60081918823B9F780919B -:102F8000C00085FFFCCF0C94F11F83E50E94D10A9D -:102F9000882311F40C94F41F0E94BD0A7B018C015C -:102FA00080E50E94D10A882311F40C94F41FC80113 -:102FB000B7010E94AC4F8B0177FF02C00C94F41F45 -:102FC0006F3F710519F014F00C94F41F0E94BD0AB4 -:102FD0000E94AC4F7B01E5E1F2E0819191918E1569 -:102FE0009F0511F40C94F41F32E0E938F307A9F7B8 -:102FF000F7FE01C0F9C78E2D61E00E9403228E2DDD -:10300000602F0E9424228E2DB8010E947821ECC7E7 -:103010008091A9028093E90284E50E94D10A882365 -:1030200061F10E94BD0A0E94B14F6093E9026623DC -:1030300021F1E6E6F1E007C09091C00095FFFCCFDA -:103040008093C600319684918823B1F7E2E3F1E0E2 -:1030500006C09091C00095FFFCCF8093C60081917F -:103060008823B9F78BE095E040E050E00E946623AA -:103070008091C00085FFFCCFB4C783E50E94D10AD0 -:10308000882309F10E94BD0A7B018C01D090E902DE -:10309000AD2CBB240E94AC4FDC01CB016D2D0E94F6 -:1030A000A041F501EE0FFF1FE755F54F9183808397 -:1030B000F501EE0FFF1FEE0FFF1FEF54F54FE082FB -:1030C000F182028313830E94174C8EC783E50E940E -:1030D000D10A882309F488C70E94BD0A0E94AC4F18 -:1030E000DC01CB010E9456429093AC0A8093AB0A5C -:1030F0007BC78091A9028093E90284E50E94D10AEE -:10310000882361F10E94BD0A0E94B14F6093E902D9 -:10311000662321F1E6E6F1E007C09091C00095FF3B -:10312000FCCF8093C600319684918823B1F7E9E4FF -:10313000F1E006C09091C00095FFFCCF8093C600DF -:1031400081918823B9F78BE095E040E050E00E9440 -:1031500066238091C00085FFFCCF43C7EAE6F2E01A -:1031600007C09091C00095FFFCCF8093C6003196B8 -:1031700084918823B1F76091E902E62FF0E0EE0F29 -:10318000FF1FE355F54F808191810E94A642AB015C -:10319000BC018BE095E022E030E00E947524E6E679 -:1031A000F2E007C09091C00095FFFCCF8093C6006D -:1031B000319684918823B1F78091AF0A9091B00A3B -:1031C0000E94204BAB01BC018BE095E022E030E097 -:1031D0000E947524E2E6F2E007C09091C00095FFDE -:1031E000FCCF8093C600319684918823B1F78091FB -:1031F000E90290E00E949A41BC018BE095E04AE030 -:1032000050E00E949C238091C00085FFFCCF8AE0A3 -:103210008093C60008C78091A9028093E90284E5E3 -:103220000E94D10A882361F10E94BD0A0E94B14F19 -:103230006093E902662321F1E6E6F1E007C0909190 -:10324000C00095FFFCCF8093C600319684918823FF -:10325000B1F7E0E6F1E006C09091C00095FFFCCF29 -:103260008093C60081918823B9F78BE095E040E018 -:1032700050E00E9466238091C00085FFFCCFB1C65C -:1032800083E50E94D10A882309F10E94BD0A7B01CF -:103290008C01D090E902AD2CBB240E94AC4FDC0124 -:1032A000CB016D2D0E94A041F501EE0FFF1FE755E8 -:1032B000F54F91838083F501EE0FFF1FEE0FFF1F87 -:1032C000EF54F54FE082F182028313830E94174C82 -:1032D00079D75B016C018091E90290E0880F991F1A -:1032E000FC01E755F54F208031808355954FFC0157 -:1032F0000190F081E02DF8A3EF8FEE24EA94FE2CEC -:103300008701EFE5F2E0249129A3EBE5F2E0449098 -:10331000E7E5F2E034913AA35AE0552E04C189A1C1 -:10332000EFE5F2E008C09091C00095FFFCCF8093DC -:10333000C600319684918823B1F76091E902E62FA7 -:10334000F0E0EE0FFF1FE355F54F808191810E9461 -:10335000A642AB01BC018BE095E022E030E00E9488 -:103360007524842DEBE5F2E008C09091C00095FF34 -:10337000FCCF8093C600319684918823B1F7609189 -:10338000E9028BE095E070E04AE050E00E949C2367 -:103390008AA1E7E5F2E008C09091C00095FFFCCF5C -:1033A0008093C600319684918823B1F717FF03C03C -:1033B000E7E7F1E026C006D79B01AC01C801B701E1 -:1033C000605F784D8F4F9F4F621B730B840B950B83 -:1033D00028EE33E040E050E00E940A538BE095E095 -:1033E000BA01A9012AE030E00E9456238091C00072 -:1033F00085FFFCCF0DC09091C00095FFFCCF80935E -:10340000C60081918823B9F78091C00085FFFCCF69 -:103410005092C600D7D65B016C010E94AB4381E09D -:103420000E946C108FEFE8168FEFF8068FEF0807F9 -:103430008FEF180751F58091E902EF8DF8A1E215A1 -:10344000F30594F490E0880F991FFC01E755F54FC0 -:103450008355954F20813181FC01808191818217B4 -:1034600093070CF048C04CC090E0880F991FFC01F6 -:10347000E755F54F8355954F20813181FC018081BF -:10348000918128173907BCF53BC017FD39C0609101 -:10349000E902E62FF0E0EE0FFF1FE355F54F8081C4 -:1034A00091810E94A6423B014C016091E902E62F06 -:1034B000F0E0EE0FFF1FE755F54F808191810E94EC -:1034C000A6429B01AC01C401B3010E94634E0E945D -:1034D000AC4F262F372F482F592F57FF07C0509535 -:1034E0004095309521953F4F4F4F5F4F2430310528 -:1034F000410551052CF066D6E62EF72E082F192F20 -:10350000FFEFEF16FFEFFF06FFEF0F07FFEF1F07BD -:1035100051F017FD6CC556D66E197F0927E2603150 -:10352000720708F064C54ED66A197B098C099D099B -:10353000693E33E0730730E0830730E0930708F01B -:10354000EECE6BCF83E50E94D10A882361F00E9402 -:10355000BD0A0E94AC4FDC01CB010E945642909301 -:10356000AC0A8093AB0A2ED67B018C01E4E5F2E035 -:10357000A490E0E5F2E08490ECE4F2E0D490EAE09C -:103580006E2E71C01FD66E197F09800B910B693E9C -:10359000E3E07E07E0E08E07E0E09E0708F45EC00F -:1035A0006091A902E62FF0E0EE0FFF1FE355F54F03 -:1035B000808191810E94A642AB01BC018A2DE4E585 -:1035C000F2E008C09091C00095FFFCCF8093C60048 -:1035D000319684918823B1F78BE095E022E030E0CA -:1035E0000E947524882DE0E5F2E008C09091C000AB -:1035F00095FFFCCF8093C600319684918823B1F764 -:103600006091A9028BE095E070E04AE050E00E94F2 -:103610009C238D2DECE4F2E008C09091C00095FF52 -:10362000FCCF8093C600319684918823B1F78091B6 -:10363000AF0A9091B00A0E94204BAB01BC018BE015 -:1036400095E022E030E00E9475248091C00085FF63 -:10365000FCCF6092C600B6D57B018C010E94AB43C3 -:1036600081E00E946C102091AB0A3091AC0A8091ED -:10367000AF0A9091B00A821793070CF483CFC0C4AD -:1036800083E50E94D10A8823F1F00E94BD0A20E060 -:1036900030E0A9010E943D4F87FD0FC00E94BD0A86 -:1036A00020E030E04FE753E40E94405118163CF010 -:1036B0000E94BD0A0E94B14F03C060E001C06FEFDD -:1036C0006093AA0291C48FEF8093AA028DC41092D6 -:1036D000AA028AC41092890287C481E08093890279 -:1036E00083C483E50E94D10A882399F00E94BD0A11 -:1036F00020E030E04AE754E40E9412520E94B14FA9 -:103700006093EE017093EF018093F0019093F101CB -:103710006BC488E50E94D10A882309F07BC489E53F -:103720000E94D10A882309F075C48AE50E94D10A53 -:10373000882309F06FC485E40E94D10A882309F028 -:1037400069C40E9412415A980E947D414DC45A9802 -:1037500089E50E94D10A81115A988AE50E94D10A0E -:10376000882309F441C45A983FC483E50E94D10AD2 -:103770000E94BD0A20E030E04AE754E40E94125261 -:103780000E94B14F6093B8027093B9028093BA025D -:103790009093BB0229C401E112E050E2E52E55E00E -:1037A000F52EF80181918F010E94D10A882339F00A -:1037B0000E94BD0AF701608371838283938324E0B2 -:1037C00030E0E20EF31E32E00531130751F70CC46E -:1037D000E1EBF1E007C09091C00095FFFCCF809332 -:1037E000C600319684918823B1F7FEC3EEEAF1E07A -:1037F00007C09091C00095FFFCCF8093C600319622 -:1038000084918823B1F740918D0250918E0260918E -:103810008F02709190028BE095E022E030E00E94F0 -:103820007524EBEAF1E007C09091C00095FFFCCF52 -:103830008093C600319684918823B1F7409191021C -:103840005091920260919302709194028BE095E006 -:1038500022E030E00E947524E8EAF1E007C0909190 -:10386000C00095FFFCCF8093C600319684918823D9 -:10387000B1F7409195025091960260919702709134 -:1038800098028BE095E022E030E00E947524E5EAA2 -:10389000F1E007C09091C00095FFFCCF8093C60077 -:1038A000319684918823B1F74091990250919A0200 -:1038B00060919B0270919C028BE095E022E030E0E9 -:1038C0000E947524EBE9F1E007C09091C00095FFDC -:1038D000FCCF8093C600319684918823B1F70E9473 -:1038E0006B410E94DF4F20912005309121054091CE -:1038F0002205509123050E94444FAB01BC018BE08F -:1039000095E022E030E0F1D7E8E9F1E007C09091DE -:10391000C00095FFFCCF8093C60031968491882328 -:10392000B1F781E00E946B410E94DF4F2091240596 -:103930003091250540912605509127050E94444F5E -:10394000AB01BC018BE095E022E030E0CED7E5E9A9 -:10395000F1E007C09091C00095FFFCCF8093C600B6 -:10396000319684918823B1F782E00E946B410E94D6 -:10397000DF4F209128053091290540912A0550916B -:103980002B050E94444FAB01BC018BE095E022E087 -:1039900030E0ABD78091C00085FFFCCF22C3EEE8BA -:1039A000F1E007C09091C00095FFFCCF8093C60066 -:1039B000319684918823B1F783B180FD03C0EDE196 -:1039C000F1E009C0E0E2F1E006C09091C00095FF8F -:1039D000FCCF8093C60081918823B9F7E7E8F1E036 -:1039E00007C09091C00095FFFCCF8093C600319630 -:1039F00084918823B1F7199903C0EDE1F1E009C082 -:103A0000E0E2F1E006C09091C00095FFFCCF80930A -:103A1000C60081918823B9F7E0E8F1E007C09091F2 -:103A2000C00095FFFCCF8093C60031968491882317 -:103A3000B1F71A9903C0EDE1F1E009C0E0E2F1E06D -:103A400006C09091C00095FFFCCF8093C600819185 -:103A50008823B9F78091C00085FFFCCFC2C241E145 -:103A6000E42E42E0F42E00E010E0F70181917F01A6 -:103A70000E94D10A882339F10E94BD0A30E3A32EA7 -:103A800035E0B32EA00EB11E0E94B14FF501608348 -:103A90007183828393830E94BD0A2CE5A22E25E0C8 -:103AA000B22EA00EB11EF801E05EFA4F20813181E6 -:103AB000428153810E9412520E94B14FF5016083EE -:103AC0007183828393830C5F1F4F0031110569F668 -:103AD0008BC201E112E090E1E92E95E0F92EF801A8 -:103AE00081918F010E94D10A882339F00E94BD0A7A -:103AF000F701608371838283938324E030E0E20ED8 -:103B0000F31E32E00531130751F76EC283E50E94C0 -:103B1000D10A882351F00E94BD0A60934405709336 -:103B20004505809346059093470584E50E94D10A98 -:103B3000882309F459C20E94BD0A60934805709316 -:103B4000490580934A0590934B054EC283E50E9438 -:103B5000D10A882351F00E94BD0A609340057093FA -:103B60004105809342059093430584E50E94D10A64 -:103B7000882351F00E94BD0A60935805709359053F -:103B800080935A0590935B0582E40E94D10A8823B2 -:103B900061F00E94BD0A0E94B14F60930C057093C2 -:103BA0000D0580930E0590930F0588E50E94D10ABC -:103BB000882351F00E94BD0A60934C0570934D0517 -:103BC00080934E0590934F058AE50E94D10A882381 -:103BD00051F00E94BD0A6093500570935105809387 -:103BE00052059093530585E40E94D10A882309F475 -:103BF000FBC10E94BD0A60935405709355058093E4 -:103C0000560590935705F0C101E112E08DE9E82EC9 -:103C100082E0F82EF80181918F010E94D10A882359 -:103C200039F00E94BD0AF701608371838283938318 -:103C300024E030E0E20EF31E32E00431130751F7C6 -:103C4000D3C183E50E94D10A882309F4CDC10E9423 -:103C5000BD0A0E94AC4F7093EB016093EA0181E0D2 -:103C600080938C02C1C183E50E94D10A882309F4A4 -:103C7000BBC10E94BD0A0E94AC4F7093ED016093DE -:103C8000EC01B2C180E50E94D10A882351F00E9464 -:103C9000BD0A6093FC017093FD018093FE01909337 -:103CA000FF0189E40E94D10A882381F00E94BD0AA5 -:103CB00025E93FEB46ED5DE30E941252609300025E -:103CC00070930102809302029093030284E40E94A5 -:103CD000D10A882381F00E94BD0A25E93FEB46ED19 -:103CE0005DE30E94444F6093040270930502809349 -:103CF00006029093070283E40E94D10A882351F0C0 -:103D00000E94BD0A609308027093090280930A0220 -:103D100090930B020E948341E9E7F1E006C0909185 -:103D2000C00095FFFCCF8093C60081918823B9F72E -:103D3000ECE7F1E006C09091C00095FFFCCF8093C6 -:103D4000C60081918823B9F74091FC015091FD0193 -:103D50006091FE017091FF018BE095E022E030E080 -:103D6000C4D5E0E8F1E006C09091C00095FFFCCF1B -:103D70008093C60081918823B9F760910002709109 -:103D80000102809102029091030225E93FEB46ED8A -:103D90005DE30E94444FAB01BC018BE095E022E063 -:103DA00030E0A3D5E4E8F1E006C09091C00095FFB3 -:103DB000FCCF8093C60081918823B9F760910402FB -:103DC00070910502809106029091070225E93FEB70 -:103DD00046ED5DE30E941252AB01BC018BE095E021 -:103DE00022E030E082D5E8E8F1E006C09091C00022 -:103DF00095FFFCCF8093C60081918823B9F760912D -:103E000008027091090280910A0290910B0225E943 -:103E10003FEB46ED5DE30E941252AB01BC018BE02B -:103E200095E022E030E061D58091C00085FFFCCFB5 -:103E3000D8C081E00E940E3AD7C083E50E94D10A23 -:103E4000882319F00E94BD0A04C060E070E086E19A -:103E500093E40E949845C8C00E941241C5C080E00A -:103E600001C081E00E941A08BFC01092AB0280918D -:103E7000B0029091B102A091B202B091B3028093CE -:103E8000AC029093AD02A093AE02B093AF020E9439 -:103E90000F0BAAC084E50E94D10A882309F45DC0F3 -:103EA0000E94BD0A0E94B14F6093E902E6E6F1E08C -:103EB000662369F107C09091C00095FFFCCF809305 -:103EC000C600319684918823B1F7ECE8F1E006C092 -:103ED0009091C00095FFFCCF8093C600819188230C -:103EE000B9F78BE095E040E050E0F0D3EEE8F1E088 -:103EF00006C09091C00095FFFCCF8093C6008191D1 -:103F00008823B9F78091C00085FFFCCF6AC010926A -:103F1000A90207C09091C00095FFFCCF8093C60016 -:103F2000319684918823B1F7EFE9F1E006C09091D2 -:103F3000C00095FFFCCF8093C60081918823B9F71C -:103F40006091A9028BE095E070E04AE050E0F4D384 -:103F50008091C00085FFFCCF44C0E6E6F1E007C0D9 -:103F60009091C00095FFFCCF8093C600319684915C -:103F70008823B1F7EEE6F1E007C09091C00095FF0D -:103F8000FCCF8093C600319684918823B1F72091AD -:103F9000EA023091EB0280E690E0289FF001299F31 -:103FA000F00D389FF00D1124E451FD4F06C09091A3 -:103FB000C00095FFFCCF8093C60081918823B9F79C -:103FC000ECE6F1E007C09091C00095FFFCCF809334 -:103FD000C600319684918823B1F78091C00085FF97 -:103FE000FCCF8AE08093C6000E94F00A1CC0EAD091 -:103FF0006093E5027093E6028093E7029093E802F3 -:10400000E1D06093B4027093B5028093B6029093AE -:10401000B702EACF0E94124188E50E94D10A8823A4 -:1040200009F095CB95CBA2960FB6F894DEBF0FBEE4 -:10403000CDBFCF91DF911F910F91FF90EF90DF9057 -:10404000CF90BF90AF909F908F907F906F905F9038 -:104050004F903F902F90089580917C0490917D0423 -:104060008330910514F40E943A0B80917C04909166 -:104070007D040097C1F00E94CA1080917C04909149 -:104080007D04019790937D0480937C048091EA02E3 -:104090009091EB02019664E070E00E94F7529093D9 -:1040A000EB028093EA020E94AB4381E00E946C1015 -:1040B0000C94113A0E94184C8091AB028823A1F510 -:1040C00081E08093AB028091AC029091AD02A0910F -:1040D000AE02B091AF028093B0029093B102A09370 -:1040E000B202B093B302EBEBF0E007C09091C000D6 -:1040F00095FFFCCF8093C600319684918823B1F759 -:10410000E2ECF0E007C09091C00095FFFCCF8093F7 -:10411000C600319684918823B1F78091C00085FF55 -:10412000FCCF8AE08093C60008958091AB02089589 -:10413000A4D00E942F0990DFFECF1F920F920FB6DE -:104140000F9211242F933F938F939F93AF93BF931D -:104150008091820490918304A0918404B09185049D -:1041600030918604232F2A592D3720F02D570196A0 -:10417000A11DB11D20938604809382049093830433 -:10418000A0938404B093850480917E0490917F0471 -:10419000A0918004B09181040196A11DB11D80936E -:1041A0007E0490937F04A0938004B0938104BF9118 -:1041B000AF919F918F913F912F910F900FBE0F90D4 -:1041C0001F9018958FB7F894209182043091830442 -:1041D00040918404509185048FBFB901CA010895AC -:1041E0003FB7F89480917E0490917F04A091800461 -:1041F000B091810426B5A89B05C02F3F19F0019608 -:10420000A11DB11D3FBFBA2FA92F982F8827820F5C -:10421000911DA11DB11D9C01AD01220F331F441F33 -:10422000551F280F391F4A1F5B1FB901CA01089586 -:10423000EF92FF920F931F93CF93DF937B018C013B -:10424000CFDFEB010EC0CCDF6C1B7D0B83E0683E43 -:10425000780738F00894E108F10801091109C851FC -:10426000DC4FE114F1040105110569F7DF91CF91ED -:104270001F910F91FF90EF900895789484B582601C -:1042800084BD84B5816084BD85B5826085BD85B5FA -:10429000816085BDEEE6F0E0808181608083E1E8A9 -:1042A000F0E01082808182608083808181608083E1 -:1042B000E0E8F0E0808181608083E1EBF0E08081E4 -:1042C00084608083E0EBF0E0808181608083EAE7B6 -:1042D000F0E080818460808380818260808380813F -:1042E000816080838081806880831092C1000895FE -:1042F0001F93CF93DF93182FEB0161E084D02097B9 -:1043000009F44AC0CF3FD10509F449C0E12FF0E0DC -:10431000ED57F04FE491E330C1F0E43028F4E130A0 -:1043200051F0E230B1F50CC0E63019F1E73049F157 -:10433000E43079F514C084B5806884BDC7BD32C04F -:1043400084B5806284BDC8BD2DC080918000806826 -:1043500080938000D0938900C093880023C080910F -:104360008000806280938000D0938B00C0938A008D -:1043700019C08091B00080688093B000C093B300F2 -:1043800011C08091B00080628093B000C093B400EF -:1043900009C0C038D1051CF4812F60E002C0812F14 -:1043A00061E052D0DF91CF911F910895833071F079 -:1043B000843028F48130A1F0823021F514C0863099 -:1043C000B1F08730D1F08430E9F404C080918000EE -:1043D0008F7703C0809180008F7D80938000089547 -:1043E00084B58F7702C084B58F7D84BD0895809198 -:1043F000B0008F778093B00008958091B0008F7DDA -:104400008093B000089590E0FC01ED59F04F2491A5 -:10441000FC01ED5BF04FE491EE23A9F0F0E0EC5CE1 -:10442000F04FA491B0E0662341F49FB7F8948C91CB -:10443000209582238C939FBF08959FB7F8948C9109 -:10444000822B8C939FBF08950F931F93DF93CF937D -:104450000F92CDB7DEB7282F30E0F901ED57F04FBE -:104460008491F901ED59F04F14912D5B304FF90112 -:1044700004910023C9F0882319F0698397DF6981CB -:10448000E02FF0E0E75CF04FA491B0E0662331F458 -:104490009FB7F8948C911095812304C09FB7F8942E -:1044A0008C91812B8C939FBF0F90CF91DF911F91A7 -:1044B0000F9108951F920F920FB60F9211242F9310 -:1044C0003F934F935F936F938F939F93EF93FF93DC -:1044D0006091C6002091070530910805C901019639 -:1044E0008F7790704091090550910A0584179507C0 -:1044F00041F029573B4FF901608390930805809361 -:104500000705FF91EF919F918F916F915F914F916F -:104510003F912F910F900FBE0F901F9018959A0109 -:10452000AB0182E08093C00060E47BE48CE490E027 -:104530000E942C532150304040405040CA01B901E4 -:1045400022E030E040E050E00E942C533093C50060 -:104550002093C400E1ECF0E0808180618083808161 -:1045600088608083808180688083089580910905B8 -:1045700090910A0520910705309108052817390701 -:1045800069F0FC01E957FB4F208101968F7790700D -:1045900090930A058093090530E002C02FEF3FEFAA -:1045A000C90108958091090590910A059093080525 -:1045B0008093070508956F927F928F929F92AF929A -:1045C000BF92CF92DF92EF92FF920F931F93DF93F0 -:1045D000CF93CDB7DEB7A0970FB6F894DEBF0FBE6E -:1045E000CDBF5C01CB01BA01611571058105910553 -:1045F00031F4C50160E340E050E0A6D042C06E0156 -:104600000894C11CD11CEE24FF248701622E77245C -:1046100088249924A40193010E940A53F60161930E -:104620006F010894E11CF11C011D111DB901CA01A3 -:10463000611571058105910569F7D801C7010197D9 -:10464000A109B1096E010894C11CD11CC80ED91E64 -:1046500013C0F60160816A3010F4605D01C0695CCE -:10466000C50140E050E070D00894E108F10801096C -:1046700011090894C108D108E114F10401051105DC -:1046800041F7A0960FB6F894DEBF0FBECDBFCF9115 -:10469000DF911F910F91FF90EF90DF90CF90BF902F -:1046A000AF909F908F907F906F9008952115310566 -:1046B00039F48091C00085FFFCCF4093C600089577 -:1046C0007ACF9A01AB0160E070E0F0CF9A01462FFB -:1046D00050E060E070E0EACFEF92FF920F931F93FB -:1046E000CF93DF93EC017A018B012115310539F469 -:1046F0008091C00085FFFCCFE092C60016C02A3032 -:10470000310591F477FF0CC06DE240E050E01CD021 -:1047100010950095F094E094E11CF11C011D111D11 -:10472000CE01B801A7012AE046DFDF91CF911F91AA -:104730000F91FF90EF9008959A01FB01AF0166275A -:1047400057FD6095762FC8CF9A01462F50E060E064 -:1047500070E0C2CFCF93DF93EC016DE040E050E01A -:10476000F3DFCE016AE040E050E0EEDFDF91CF9171 -:104770000895CF93DF93EC01A4DFCE01EBDFDF914F -:10478000CF9108958F929F92BF92CF92DF92EF9236 -:10479000FF920F931F93CF93DF934C017A018B010C -:1047A000D22ECB01BA0120E030E0A9010E943D4F9A -:1047B00087FF09C0C4016DE240E050E0C5DF17FB90 -:1047C000109517F91095C0E050E040E030E02FE37D -:1047D00011C0DA01F9016B2F742F8F2F922F20E077 -:1047E00030E040E251E40E94444F562F472F382FCB -:1047F000292FCF5FCD1568F3C801B701DA01F901A0 -:104800002B2F342F4F2F5E2F0E94644EC62EF72E73 -:104810008C01912F0E94B14FC62FE72ED82FB92EB1 -:104820000E94DD4F9B01AC016C2D7F2D802F912FBD -:104830000E94634EC62EF72E182F092FC4014C2F4D -:104840005E2D6D2F7B2D2AE030E030DFDD2009F476 -:104850003EC0E1EBF1E006C09091C00095FFFCCFB7 -:104860008093C60081918823B9F731C098016C2DDF -:104870007F2D832F902F20E030E040E251E40E9412 -:1048800012528B01F82EE92E9701712F832F922F50 -:104890000E94AC4F9B01AC01EB01C401B9014AE09D -:1048A00050E04ADFBE01882777FD8095982F0E944F -:1048B000DF4F9B01AC01F701602F712F8F2F9E2FCF -:1048C0000E94634EC62EF72E182F092FDA94DD2092 -:1048D00069F6DF91CF911F910F91FF90EF90DF90DC -:1048E000CF90BF909F908F9008954CCF08950895DA -:1048F0002F923F924F925F926F927F928F929F92F0 -:10490000AF92BF92CF92DF92EF92FF920F931F93DD -:10491000DF93CF93CDB7DEB7C055D0400FB6F89434 -:10492000DEBF0FBECDBF4C017A8F698F3A012AA737 -:104930000EABEFAAA8AEB9AECAAEDBAE022F10E046 -:10494000000F111F000F111F9301200F311F3BABF0 -:104950002AABD9012D903D904D905C90FC01E00F69 -:10496000F11FC201B10120813181428153810E9436 -:10497000644E6CAF7DAF8EAF9FAFBEA9EB2EFF2410 -:10498000EE0CFF1CEE0CFF1CF301EE0DFF1DFDAB4A -:10499000ECABA080B180C280D380F401EE0DFF1D8E -:1049A000C601B50120813181428153810E94644E4C -:1049B00021966FAF219722967FAF229723968FAFD4 -:1049C000239724969FAF2497FFA98F2F90E0880FFD -:1049D000991F880F991FF401E80FF91F2081318179 -:1049E000428153812B8F3C8F4D8F5E8F498D5A8D25 -:1049F000840F951FDC016D917D918D919C912B8D84 -:104A00003C8D4D8D5E8D0E94634E262F372F482F93 -:104A1000592F2F8F38A349A35AA3E98DFA8D3C96BD -:104A20002996FFAFEEAF2997A98DBA8D1C962D91CF -:104A30003D914D915C911F972EA73FA748AB59AB75 -:104A4000D4011C962D913D914D915C911F972BA304 -:104A50003CA34DA35EA3A20191015058298B3A8B30 -:104A60004B8B5C8B1501260157FA509457F85094E4 -:104A7000E98DFA8DE00FF11F608171818281938150 -:104A8000BCADADADFEADEFAD2B2F3A2F4F2F5E2F4E -:104A90000E94634EB62EA72E882E692EE98DFA8DC0 -:104AA000EE0DFF1D60817181828193812196BFADE2 -:104AB00021972296AFAD22972396FFAD2397249698 -:104AC000EFAD24972B2F3A2F4F2F5E2F0E94634E6E -:104AD0008B01F82EE92E69897A898B899C89F701E7 -:104AE000202F312F4F2F5E2F0E9412526D8B7E8B05 -:104AF0008F8B988FC201B101D5012B2F3A2F482DF2 -:104B0000562D0E9412529B01AC016D897E898F89BE -:104B1000988D0E94634E6D8B7E8B8F8B988F6989E9 -:104B20007A898B899C89D5012B2F3A2F482D562DB8 -:104B30000E9412525B016C01C201B101F701202FEA -:104B4000312F4F2F5E2F0E9412529B01AC01C601E4 -:104B5000B5010E94644E9B01AC016D897E898F89ED -:104B6000988D0E94D74E162F072FF82EE92EA801F8 -:104B70009701652F742F832F922F20E030E0A90139 -:104B80000E943D4F87FF10C0A8019701652F742F29 -:104B9000832F922F2BED3FE049EC50E40E94644EAE -:104BA000162F072FF82EE92EAA968FADAA978823E5 -:104BB00081F0A8019701652F702F832F9E2D2BED7B -:104BC0003FE049EC50E40E94634E162F072FF82E69 -:104BD000E92EA8019701652F702F832F9E2DA9968E -:104BE0002CAD3DAD4EAD5FADA9970E9412522F8DF9 -:104BF00038A149A15AA15F770E944D515B016C0118 -:104C00002FE632E143E85AE30E943D4F87FDA6C2FA -:104C1000C601B5010E941A500E94B14F7DA76CA732 -:104C20006115710521F481E090E09DA78CA7ACA5EA -:104C3000BDA5BD0180E090E00E94DD4F5B016C01ED -:104C4000A8019701652F702F832F9E2DA601950136 -:104C50000E94444F6D8B7FA388A799A76F8D78A181 -:104C600089A19AA1A60195010E94444F2A966FAF8F -:104C70002A972B967FAF2B972C968FAF2C972D963C -:104C80009FAF2D976EA57FA588A999A92BA13CA1BF -:104C90004DA15EA10E94634EA60195010E94444F62 -:104CA0002E966FAF2E972F967FAF2F9760968FAF70 -:104CB000609761969FAF61975D894FA138A529A53F -:104CC000652F742F832F922F20E030E040E05FE3C8 -:104CD0000E941252BD89AFA1F8A5E9A52B2F3A2F4A -:104CE0004F2F5E2F0E9412529B01AC0160E070E0DA -:104CF00080E89FE30E94634E6EA725967FAF2597BD -:104D000026968FAF269727969FAF2797BFA9EB2FA1 -:104D1000F0E0EE0FFF1FEE0FFF1FCE010196E80F30 -:104D2000F91F2B8D3C8D4D8D5E8D20833183428309 -:104D300053832BA13CA14DA15EA12D873E874F87B8 -:104D4000588BBB2441E050E05CA34BA3BAA5AB2F2A -:104D5000B0E0AA0FBB1FAA0FBB1F9C012A0F3B1F6D -:104D60003C8F2B8F5EA9452F50E0440F551F440FF9 -:104D7000551F81E090E08C0F9D1F840F951F98A315 -:104D80008F8FFBA7EAA7CAC19B2D99310CF068C091 -:104D900069897A898B899C89BD89AFA1F8A5E9A524 -:104DA0002B2F3A2F4F2F5E2F0E9412527B018C0126 -:104DB000C201B101BEA52596AFAD25972696FFADE0 -:104DC00026972796EFAD27972B2F3A2F4F2F5E2F41 -:104DD0000E9412529B01AC01C801B7010E94644EAF -:104DE000D62EA72E882E692E69897A898B899C896F -:104DF000BEA52596AFAD25972696FFAD269727969B -:104E0000EFAD27972B2F3A2F4F2F5E2F0E94125274 -:104E1000162F072FF82EE92EC201B101BD89AFA1CF -:104E2000F8A5E9A52B2F3A2F4F2F5E2F0E94125283 -:104E30009B01AC01D801F7016B2F7A2F8F2F9E2F8A -:104E40000E94634E262F372F482F592F298B3A8BDC -:104E50004B8B5C8BB3942D2C3A2C482C562C6AC06F -:104E6000ABA1BCA1BD0180E090E00E94DD4FBD89F7 -:104E7000AFA1F8A5E9A52B2F3A2F4F2F5E2F0E9447 -:104E800012527B018C017F2D912F0E94414F1B01FB -:104E90002C016E2D7F2D802F912F0E9475525B016A -:104EA0006C01EAA9FBA9E080F1800281138117FB64 -:104EB000109517F91095ACA9BDA96D907D908D90B6 -:104EC0009C90C801B701A20191010E941252698B06 -:104ED0007A8B8B8B9C8BC401B301A60195010E9438 -:104EE00012529B01AC0169897A898B899C890E9445 -:104EF000644E262F372F482F592F298B3A8B4B8BF7 -:104F00005C8BC801B701A60195010E9412527B017A -:104F10008C01C401B301A20191010E9412529B01B4 -:104F2000AC01C801B7010E94634E262E372E482ED1 -:104F3000592EBB245CAD4DAD3EAD2FAD652F742F0A -:104F4000832F922F29893A894B895C890E94644E6C -:104F5000EB8DFC8D608371838283938321965FAD9B -:104F6000219722964FAD229723963FAD2397249603 -:104F70002FAD2497652F742F832F922FA2019101BB -:104F80000E94644EAF8DB8A16D937D938D939C93D9 -:104F90001397EAA5FBA560817181828193812A968E -:104FA000BFAD2A972B96AFAD2B972C96FFAD2C97C4 -:104FB0002D96EFAD2D972B2F3A2F4F2F5E2F0E945E -:104FC000644EAAA5BBA56D937D938D939C93139777 -:104FD0006D857E858F8598892E96BFAD2E972F96ED -:104FE000AFAD2F976096FFAD60976196EFAD61977B -:104FF0002B2F3A2F4F2F5E2F0E94644E6D877E8796 -:105000008F87988B69817A818B819C8120E030E049 -:10501000A9010E943D4F87FF07C080E090E0DC01BE -:1050200089839A83AB83BC836D817E818F819885D0 -:1050300020E030E0A9010E943D4F87FF07C080E0DB -:1050400090E0DC018D839E83AF83B88769857A8584 -:105050008B859C8520E030E0A9010E943D4F87FFB1 -:1050600007C080E090E0DC0189879A87AB87BC8726 -:1050700069817A818B819C8120E030E04DE453E4AA -:105080000E944051181644F480E090E0ADE4B3E48F -:1050900089839A83AB83BC836D817E818F81988560 -:1050A00020E030E04DE453E40E944051181644F4EF -:1050B00080E090E0ADE4B3E48D839E83AF83B88756 -:1050C00069857A858B859C8520E030E040EF52E44D -:1050D0000E944051181644F480E090E0A0EFB2E442 -:1050E00089879A87AB87BC87CE010196BE016B5F2B -:1050F0007F4FAE01475F5F4F9E01235F3F4FE8AC9C -:10510000F9AC0AAD1BADFAE6CF2ED12CCC0EDD1ECC -:10511000D5D4EBA1FCA13196FCA3EBA32BA13CA120 -:105120004CA55DA52417350708F42ECE698D7A8D20 -:105130006C5F7F4F498D5A8D485F5F4F898D9A8D87 -:1051400029962EAD3FAD2997E8ACF9AC0AAD1BAD61 -:10515000EAE6CE2ED12CCC0EDD1EB0D4C05BDF4FE4 -:105160000FB6F894DEBF0FBECDBFCF91DF911F9178 -:105170000F91FF90EF90DF90CF90BF90AF909F90F6 -:105180008F907F906F905F904F903F902F900895F9 -:105190008F5F803109F480E008952F923F924F9203 -:1051A0005F926F927F928F929F92AF92BF92CF92B7 -:1051B000DF92EF92FF920F931F93DF93CF93CDB7C0 -:1051C000DEB76A970FB6F894DEBF0FBECDBF9A8FD9 -:1051D000898F3A014B0178018901DC01D8966D91E4 -:1051E0007D918D919C91DB970E94DD4F5B016C015D -:1051F000A40193010E9412520E942A4F0E94B14FB3 -:10520000262F372F482F592F2D873E874F87588BB2 -:10521000C601B501A80197010E9412520E942A4FAF -:105220000E94B14F9B01AC01298B3A8B4B8B5C8B5D -:105230008D859E85AF85B88988379105A105B10513 -:1052400040F488E790E0A0E0B0E08D879E87AF87CC -:10525000B88B283731054105510540F428E730E087 -:1052600040E050E0298B3A8B4B8B5C8BE98DFA8DBB -:10527000EC5BFF4F6080718082809380A98DBA8D36 -:10528000DC966D917D918D919C91DF970E94DD4F11 -:105290006D837E838F839887C401B3010E94DF4FA3 -:1052A0001B012C0120E030E0A9010E943D4F882322 -:1052B00029F1C601B501A60195010E9412527B0198 -:1052C0008C016D817E818F8198859B01AC010E944C -:1052D00012529B01AC01C801B7010E94634E7B01D1 -:1052E0008C01C201B101A20191010E94644E9B0197 -:1052F000AC01C801B7010E94444F04C060E070E0F7 -:1053000080E090E00E942A4F0E94AC4F69837A832C -:105310008B839C83E980FA800B811C81E98DFA8D57 -:10532000E05CFF4F60817181828193810E94DD4F3B -:1053300069877A878B879C8766277727CB016619D1 -:105340007709880999090E94DF4F3B014C0120E051 -:1053500030E0A9010E943D4F882349F169857A8593 -:105360008B859C859B01AC010E9412526D8B7E8BBC -:105370008F8B988FC601B501A60195010E9412522C -:105380009B01AC016D897E898F89988D0E94634E47 -:105390005B016C01C401B301A40193010E94644E3E -:1053A0009B01AC01C601B5010E94444F04C060E0FE -:1053B00070E080E090E00E941A50E98DFA8DA0889C -:1053C000B188C288D3883501460129813A814B8151 -:1053D0005C81621A730A840A950A0E94AC4FA40188 -:1053E0009301261B370B480B590BDA01C90157FFF4 -:1053F00068C0C201B10120E030E0A9010E943D4F28 -:10540000882309F443C0C201B101A20191010E94A5 -:10541000644E7B018C01C601B5010E94DD4F9B01EA -:10542000AC01C801B7010E9412527B018C016D8151 -:105430007E818F8198859B01AC010E9412529B0155 -:10544000AC01C801B7010E94634E7B018C016985E4 -:105450007A858B859C859B01AC010E9412529B0131 -:10546000AC01C801B7010E94644E7B018C01C201EE -:10547000B10120E030E040E850E40E9412529B016C -:10548000AC01C801B7010E94444F04C060E070E065 -:1054900080E090E00E942A4F0E94AC4FE62EF72E4B -:1054A000082F192F17FF03C0EE24FF248701EA14E9 -:1054B000FB040C051D0510F08601750180E090E0ED -:1054C000DC012FB7F894E98DFA8DE45BFF4F308152 -:1054D000332311F5E98DFA8DE48AF58A068B178B53 -:1054E000E80EF91E0A1F1B1FE08EF18E028F138F2C -:1054F0008D859E85AF85B88984AF95AFA6AFB7AFD0 -:10550000AF01405C5F4F89899A89AB89BC89FA01F8 -:1055100080839183A283B3832FBF6A960FB6F894DA -:10552000DEBF0FBECDBFCF91DF911F910F91FF90D6 -:10553000EF90DF90CF90BF90AF909F908F907F9033 -:105540006F905F904F903F902F900895AF92BF92D1 -:10555000CF92DF92EF92FF920F931F93CF93DF933F -:10556000EB018A01209709F472C04115510509F435 -:105570006EC0DAA4CBA4BCA4ADA46EA17FA188A503 -:1055800099A5D601F5012B2F3A2F4F2F5E2F0E94A0 -:105590003D4F882309F45BC08FA9882309F04BC0D5 -:1055A000F801E6A0F7A000A511A5A6019501652FB9 -:1055B000742F832F922FA80197010E944051181633 -:1055C000D4F5C801B701A80197010E9412527B01CE -:1055D0008C012AA93BA94CA95DA95058CA01B9015F -:1055E0000E94644E2EA53FA548A959A90E941252B7 -:1055F0009B01AC01C801B7010E94634E0E947F521B -:10560000E62E172F082FF92EA6019501652F742F6E -:10561000832F922F2E2D312F402F5F2D0E943D4F33 -:1056200087FF04C0ED2C1C2D0B2DFA2C5E2D412F75 -:10563000302F2F2D02C0A6019501852F942FA32F67 -:10564000B22F8EA39FA3A8A7B9A781E08EABDF914D -:10565000CF911F910F91FF90EF90DF90CF90BF906F -:10566000AF900895CF92DF92EF92FF920F931F9326 -:10567000DF93CF930F92CDB7DEB780914C0A809124 -:105680004C0A20914D0A90E04096821B91098F7040 -:1056900090708430910544F120914C0A23502F7072 -:1056A00040E050E000E010E08DE4E82EF12C18C05E -:1056B000222309F420E12150822F90E08E9D600189 -:1056C0008F9DD00C9E9DD00C11248CE795E0C80EC8 -:1056D000D91EC601B801298339DFA80186012981B5 -:1056E00080914D0A281721F70F90CF91DF911F91DC -:1056F0000F91FF90EF90DF90CF9008958F929F923F -:10570000AF92BF92CF92DF92EF92FF920F931F93CF -:10571000CF93DF93EC016B01009709F467C08FA969 -:10572000882309F063C0EEA0FFA008A519A5FB011E -:10573000B6A0A7A090A481A4C801B701D501F40127 -:105740002B2F3A2F4F2F5E2F0E943D4F87FF4EC0C9 -:10575000C801B701A80197010E9412527B018C0178 -:105760002AA93BA94CA95DA95058CA01B9010E94B8 -:10577000644E2EA53FA548A959A90E9412529B012B -:10578000AC01C801B7010E94634E0E947F52E62E11 -:10579000C72FD82F192FA5019401652F742F832FA0 -:1057A000922F2E2D3C2F4D2F512F0E943D4F87FFC2 -:1057B00004C0EB2CCA2DD92D182DA5019401652FFD -:1057C0007A2D832F982D2E2D3C2F4D2F512F0E9457 -:1057D0003D4F882359F08E2D9C2FAD2FB12FF60110 -:1057E00086A397A3A0A7B1A781E086ABDF91CF9155 -:1057F0001F910F91FF90EF90DF90CF90BF90AF90EF -:105800009F908F900895DF92EF92FF920F931F93D6 -:10581000CF93DF93D0904D0A00E010E080E090E05D -:105820002DE4E22EF12C13C02D2D30E02E9DE00151 -:105830002F9DD00D3E9DD00D1124C458DA4FB801D4 -:10584000AE015CDF8D2DA4DCD82EC8018E01209125 -:105850004C0AD21649F7B80140E050E04FDFDF9123 -:10586000CF911F910F91FF90EF90DF9008952F92AD -:105870003F924F925F926F927F928F929F92AF92E0 -:10588000BF92CF92DF92EF92FF920F931F93CF932D -:10589000DF93F0904D0AC0E0D0E03DE4632E712C20 -:1058A0003EC0069D6001079DD00C169DD00C1124B2 -:1058B0008CE795E0C80ED91E209769F18EA9882340 -:1058C00021F4F60186A9882331F18AA09BA0ACA01F -:1058D000BDA06EA17FA188A599A5A50194010E94F4 -:1058E000444F1B012C01069DF001079DF00D169DF4 -:1058F000F00D1124E458FA4F66A177A180A591A577 -:10590000A50194010E94444F8B019C01CE01B2017C -:10591000A10143DC1EAA8F2D3BDCF82EE6010F2DE2 -:10592000112707FD109580914C0A90E00817190780 -:1059300009F0B7CF2097E9F0CAA0DBA0ECA0FDA04A -:105940006EA17FA188A599A5A70196010E94444F49 -:105950004B015C016DEC7CEC8CE49DE3A7019601AE -:105960000E94444F8B019C01CE01B501A40115DCBE -:105970001EAADF91CF911F910F91FF90EF90DF90C2 -:10598000CF90BF90AF909F908F907F906F905F90DF -:105990004F903F902F90089565DE35DF68CF1092CD -:1059A0004C0A10924D0A80E1ECE6F5E0DF011D9211 -:1059B0008A95E9F780E090E0DC018093530A9093A8 -:1059C000540AA093550AB093560A8093570A9093AD -:1059D000580AA093590AB0935A0A80935B0A90938D -:1059E0005C0AA0935D0AB0935E0A80935F0A90936D -:1059F000600AA093610AB093620A80934F0A909361 -:105A0000500AA093510AB093520A0895CF939091EF -:105A10004D0A80914C0A981779F140914D0A242F34 -:105A200030E08DE490E0289FF001299FF00D389F31 -:105A3000F00D1124EC53FA4FC08150E02DE430E01A -:105A400016C0842F90E0829FF001839FF00D929FFB -:105A5000F00D1124EC53FA4F80819181A281B38122 -:105A60000097A105B10509F05F5F4F5F4F7080910E -:105A70004C0A481731F70AC06091AA02662321F048 -:105A80008EE070E00E947821C0E050E08091AA0290 -:105A9000882339F4552329F48EE060E070E00E94F9 -:105AA00078218091AA02882339F0CC2329F08EE056 -:105AB0006C2F70E00E947821CF9108952F923F9231 -:105AC0004F925F926F927F928F929F92AF92BF920E -:105AD000CF92DF92EF92FF920F931F93DF93CF93BA -:105AE000CDB7DEB7C555D0400FB6F894DEBF0FBEB8 -:105AF000CDBF2C013B011A013AA329A39E2CAF2C48 -:105B0000802EB12EDCAACBAA80914C0A41DB649690 -:105B10008FAF6497082F112707FD109505C00E94CD -:105B2000AB4381E00E946C1080914D0A90E0801799 -:105B30009107A9F3D2016D917D918D919C91209156 -:105B400020053091210540912205509123050E94A6 -:105B500012520E94E2516FAB78AF89AF9AAFF30156 -:105B60006081718182819381209124053091250586 -:105B700040912605509127050E9412520E94E25141 -:105B80006BAF7CAF8DAF9EAFD1016D917D918D914B -:105B90009C91209128053091290540912A0550912A -:105BA0002B050E9412520E94E2516FAF21967FAFE7 -:105BB000219722968FAF229723969FAF2397E9A133 -:105BC000FAA1608171818281938120912C053091AD -:105BD0002D0540912E0550912F050E9412520E94D2 -:105BE000E2516FA778AB89AB9AAB80917805909121 -:105BF0007905A0917A05B0917B052FA538A949A90F -:105C00005AA9281739074A075B0709F445C060916C -:105C1000A902E62FF0E0EE0FFF1FE355F54F80815C -:105C200091810E94A64220E030E046E153E40E94C8 -:105C30003D4F87FF31C080914E0A882369F54FA5FB -:105C400058A969A97AA9409378055093790560937A -:105C50007A0570937B05EEE4F4E007C09091C000F4 -:105C600095FFFCCF8093C600319684918823B1F7CD -:105C7000E2E7F4E007C09091C00095FFFCCF80936D -:105C8000C600319684918823B1F78091C00085FFCA -:105C9000FCCF8AE08093C6008091780590917905C9 -:105CA000A0917A05B0917B052FA538A949A95AA9D9 -:105CB000281B390B4A0B5B0BCA01B90157FF07C000 -:105CC00090958095709561957F4F8F4F9F4F0E9463 -:105CD000DF4F7B018C0160912C0570912D05809127 -:105CE0002E0590912F0520E030E04DEC53E40E940A -:105CF00012529B01AC01C801B7010E944051181615 -:105D00006CF54FA558A969A97AA9409378055093D5 -:105D1000790560937A0570937B05EEE4F4E007C0A3 -:105D20009091C00095FFFCCF8093C600319684917E -:105D30008823B1F7E4E5F4E007C09091C00095FF37 -:105D4000FCCF8093C600319684918823B1F780916F -:105D5000C00085FFFCCF8AE08093C60080914C0A8A -:105D6000682F70E07AA369A38DE490E0689FF0014A -:105D7000699FF00D789FF00D1124E458FA4FDF0170 -:105D8000A45BBF4F1C9280916C0590916D05A09112 -:105D90006E05B0916F058BA39CA3ADA3BEA38FA985 -:105DA00098ADA9ADBAAD2BA13CA14DA15EA1821BBE -:105DB000930BA40BB50BB7FF07C0B095A0959095BA -:105DC00081959F4FAF4FBF4F80839183A283B38351 -:105DD0004091700550917105609172057091730545 -:105DE0004FA358A769A77AA78DE490E069A17AA18B -:105DF000689FF001699FF00D789FF00D1124E45821 -:105E0000FA4F8BAD9CADADADBEAD2FA138A549A568 -:105E10005AA5821B930BA40BB50BB7FF07C0B09517 -:105E2000A095909581959F4FAF4FBF4F84839583E9 -:105E3000A683B783409174055091750560917605EE -:105E4000709177054BA75CA76DA77EA78DE490E0C6 -:105E500069A17AA1689FF001699FF00D789FF00D0C -:105E60001124E458FA4F23968CAD9DADAEADBFAD75 -:105E700023972BA53CA54DA55EA5821B930BA40BD8 -:105E8000B50BB7FF07C0B095A095909581959F4F32 -:105E9000AF4FBF4F80879187A287B3874090780527 -:105EA0005090790560907A0570907B052091EC0107 -:105EB0003091ED016FA578A989A99AA9641975098E -:105EC0008609970997FF07C0909580957095619511 -:105ED0007F4F8F4F9F4F442737FD4095542F0E948F -:105EE000D85224E630E040E050E00E942C538DE48C -:105EF00090E069A17AA1689FF001699FF00D789FF9 -:105F0000F00D1124E458FA4F2487358746875787C8 -:105F1000C080D18072816381E480F5800681178121 -:105F200080859185A285B3858E159F05A007B10751 -:105F300014F4D801C70182179307A407B50714F416 -:105F4000DA01C901FB0196014F2F562F2817390797 -:105F50004A075B0714F49C01AD018DE490E0A9A110 -:105F6000BAA1A89FF001A99FF00DB89FF00D1124D0 -:105F7000E458FA4F208B318B428B538B26303105FE -:105F80004105510510F40C942B399F01285B3F4FBC -:105F90008091AA02482F50E060E070E0D9014D9353 -:105FA0005D936D937C93139710A22FA938AD49ADE3 -:105FB0005AAD6BA17CA18DA19EA12617370748077A -:105FC000590714F481E080A38BAD9CADADADBEAD9F -:105FD0002FA138A549A55AA582179307A407B5078D -:105FE00084F48DE490E049A15AA1489FF001499FB3 -:105FF000F00D589FF00D1124E458FA4F80A18260F3 -:1060000080A323966CAD7DAD8EAD9FAD23972BA560 -:106010003CA54DA55EA5621773078407950784F418 -:106020008DE490E049A15AA1489FF001499FF00DED -:10603000589FF00D1124E458FA4F80A1846080A38A -:106040006FA578A989A99AA964157505860597058C -:1060500084F48DE490E0A9A1BAA1A89FF001A99FC2 -:10606000F00DB89FF00D1124E458FA4F80A188601C -:1060700080A38DE490E029A13AA1289FF001299FF7 -:10608000F00D389FF00D1124E458FA4FABA9BCA9CC -:106090008C9181A380819181A281B3810097A10518 -:1060A000B10509F05A9A8DE490E029A13AA1289F00 -:1060B000F001299FF00D389FF00D1124E458FA4F9C -:1060C00084819581A681B7810097A105B10509F06A -:1060D0005A9A8DE490E049A15AA1489FF001499F46 -:1060E000F00D589FF00D1124E458FA4F80859185EA -:1060F000A285B3850097A105B10509F05A9A8DE4F0 -:1061000090E069A17AA1689FF001699FF00D789FE6 -:10611000F00D1124E458FA4F84859585A685B7853E -:106120000097A105B10509F05A9A8DE490E0A9A164 -:10613000BAA1A89FF001A99FF00DB89FF00D1124FE -:10614000E458FA4F84859585A685B7850097A10503 -:10615000B10549F4F090580510915905E0905A05A1 -:1061600000915B0508C0F090400510914105E0905A -:10617000420500914305692D7A2D882D9B2D2F2DE9 -:10618000312F4E2D502F0E943D4F87FD04C0F92C1A -:106190001A2DE82C0B2D90914C0A80914D0AE92F75 -:1061A000F0E07096E81BF109EF70F070FCA7EBA728 -:1061B000BF01882777FD8095982F0E94DF4F4B0104 -:1061C0005C0120E030E040E051E40E943D4F87FF59 -:1061D00017C02BA53CA52230310594F06F2D712FEF -:1061E0008E2D902FA50194010E94125220E030E0E4 -:1061F00040E05EE30E941252F62E172FE82E092F80 -:1062000080916C0590916D05A0916E05B0916F0520 -:106210002FA938AD49AD5AAD281B390B4A0B5B0B82 -:10622000CA01B9010E94DF4F20912005309121055C -:1062300040912205509123050E94444F762E672EEF -:106240008BA39FA3A301382F292F852F942FA32F32 -:10625000B22F89839A83AB83BC8380917005909120 -:106260007105A0917205B09173052BAD3CAD4DAD9C -:106270005EAD281B390B4A0B5B0BCA01B9010E94AA -:10628000DF4F20912405309125054091260550913E -:1062900027050E94444F2B018BAB24969FAF249778 -:1062A000382F292F862F952DA32FB22F8D839E83D4 -:1062B000AF83B8878091740590917505A09176059C -:1062C000B091770523962CAD3DAD4EAD5FAD2397D4 -:1062D000281B390B4A0B5B0BCA01B9010E94DF4F27 -:1062E000209128053091290540912A0550912B05D0 -:1062F0000E94444F362E272E28968FAF28972C9633 -:106300009FAF2C97A101382F292F852F942FA32FD2 -:10631000B22F89879A87AB87BC878090EC019090D9 -:10632000ED018091780590917905A0917A05B09161 -:106330007B052FA538A949A95AA9281B390B4A0B57 -:106340005B0BCA01B9010E94DF4F20912C053091EF -:106350002D0540912E0550912F050E94444F5B0161 -:106360006C01B401882777FD8095982F0E94DF4F3C -:106370009B01AC01C601B5010E94125220E030E041 -:1063800048EC52E40E94444F6B01B82FA92F4B01F7 -:10639000A82EB92E9B01482F592F2D873E874F8756 -:1063A000588B8DE490E049A15AA1489FF001499F84 -:1063B000F00D589FF00D1124E458FA4F20813181DF -:1063C00042815381211531054105510591F5248103 -:1063D000358146815781211531054105510549F522 -:1063E00020853185428553852115310541055105AB -:1063F00001F5B6018B2F9A2F20E030E0A9010E9411 -:106400004051181624F0B7FAB094B7F8B0948DE460 -:1064100090E069A17AA1689FF001699FF00D789FD3 -:10642000F00D1124E458FA4F86A697A6A0AAB1AAA7 -:1064300047C0A3013BA12FA1652F762D832F922F5B -:106440000E94BD524B015C013BA924962FAD2497BD -:10645000642D752D832F922F0E94BD522B013C017C -:10646000A10128963FAD28972C962FAD2C97652F2C -:10647000722D832F922F0E94BD526BA37CA38DA3FC -:106480009EA3C501B401A30192010E94644E2BA1F9 -:106490003CA14DA15EA10E94644E0E947F522DE45A -:1064A00030E0A9A1BAA1A29FF001A39FF00DB29F75 -:1064B000F00D1124E458FA4F66A777A780AB91AB93 -:1064C0008DE490E0E9A1FAA1E89F6001E99FD00C7A -:1064D000F89FD00C11242CE735E0C20ED31ED60154 -:1064E0009E968D909D90AD90BC90D19760E070E0AD -:1064F00080E89FE3A50194010E94444F9B01AC01F9 -:106500006F2D712F8E2D902F0E941252362E272E16 -:10651000782E692EC501B401D101F3012B2F3A2F3A -:106520004F2F5E2F0E941252F60162A373A384A321 -:1065300095A360897189828993890E94DD4FD10179 -:10654000F3012B2F3A2F4F2F5E2F0E9412520E94E1 -:106550002A4F0E94B14FD601D8966D937D938D93AB -:106560009C93DB978E010F5F1F4FB1E14B2E512C97 -:106570004C0E5D1E7201F8016191719181919191B2 -:106580008F01D101F3012B2F322D4F2F562D0E9459 -:106590001252D7016D937D938D939D937D010415C8 -:1065A000150549F7E0E1F5E0F8A7EFA39E012F5D9F -:1065B0003F4F66963FAF2EAF66973F011201DD2435 -:1065C000CC24A0E88A2EFFE3BF2ED101ED90FD90F0 -:1065D0000D911D911D01AA24A394C801B70120E0CB -:1065E00030E0A9010E94405118162CF0AA24C801DD -:1065F000B701905802C0C801B701D3012D913D9158 -:106600004D915D913D012BA33CA34DA35EA30E9440 -:106610004051181664F5AA2021F4A801970150589A -:1066200002C0A80197016BA17CA18DA19EA10E942F -:10663000444F9B01AC01ED2DFC2DA82DBB2DBF01BE -:10664000CD010E943D4F87FD12C0AA2021F417FB07 -:10665000109517F910956BA17CA18DA19EA1A801A1 -:1066600097010E94444FD62EC72E882EB92E6696CB -:10667000EEADFFAD66972E163F0609F0A6CFA60138 -:10668000652F7C2D882D9B2D20E030E040E85FE3D6 -:106690000E943D4F87FFA8C012015CA24BA2D1010E -:1066A000ED90FD900D911D911D01AA24A394C801A8 -:1066B000B70120E030E0A9010E94405118162CF0EB -:1066C000AA24C801B701905802C0C801B701EFA1C0 -:1066D000F8A54190519061907190F8A7EFA3A301A4 -:1066E00092010E944051181634F5AA2021F4A80105 -:1066F0009701505802C0A8019701C301B2010E943E -:10670000444F9B01AC016D2D7C2D882D9B2D0E944B -:106710003D4F87FD10C0AA2021F417FB109517F9F3 -:106720001095C301B201A80197010E94444FD62ED3 -:10673000C72E882EB92E66962EAD3FAD66972216CF -:10674000330609F0ACCF4BA05CA0D2016D917D91D6 -:106750008D919C91D6012B2F3C2D482D5B2D0E94B5 -:106760001252F20161937193819391932F01669676 -:106770002EAD3FAD6697E217F30739F78DE490E051 -:1067800049A15AA1489F8001499F100D589F100DA3 -:10679000112404581A4FD80192966D917D918D91D4 -:1067A0009C919597D6012B2F3C2D482D5B2D0E9457 -:1067B0001252F80162A373A384A395A360AD71ADD7 -:1067C00082AD93AD0E94DD4FD6012B2F3C2D482D7D -:1067D0005B2D0E9412520E94B14FD801D8966D9342 -:1067E0007D938D939C93DB978DE490E0E9A1FAA1D2 -:1067F000E89F8001E99F100DF89F100D11240458A7 -:106800001A4FD80150966D917D918D919C9153971F -:106810000E94DD4FF80126A537A540A951A90E9485 -:10682000444F562E472E382E292EF8018081918113 -:10683000A281B3810097A105B10569F58481958195 -:10684000A681B7810097A105B10529F580859185BD -:10685000A285B3850097A105B105E9F4A2019101D4 -:10686000652F742F832F922F209148053091490571 -:1068700040914A0550914B050E9412520E942A4FA6 -:106880000C5B1F4F0E94B14FD8016D937D938D9388 -:106890009C93139765C1A2019101652F742D832FDD -:1068A000922D209144053091450540914605509127 -:1068B00047050E9412520E942A4F0E94B14F2DE4B8 -:1068C00030E0E9A1FAA1E29F8001E39F100DF29F61 -:1068D000100D112404581A4FE4E46E2E712C600E32 -:1068E000711ED3016D937D938D939C93139780902C -:1068F0005C0590905D05A0905E05B0905F050E94DC -:10690000DD4F6B017C01F80160817181828193818F -:106910000E94DF4F9B01AC01C701B6010E941252D9 -:106920006B017C01D80150966D917D918D919C9168 -:1069300053970E94DD4F9B01AC01C701B6010E9435 -:10694000444F7B018C01C501B4010E94DD4F9B01C6 -:10695000AC01C801B7010E94405118162CF4F30194 -:1069600080829182A282B3828090600590906105BE -:10697000A0906205B09063058DE490E029A13AA152 -:10698000289F8001299F100D389F100D1124045855 -:106990001A4F64E4662E712C600E711ED3016D9146 -:1069A0007D918D919C910E94DD4F6B017C01F801DE -:1069B00064817581868197810E94DF4F9B01AC01C4 -:1069C000C701B6010E9412526B017C01D80150969A -:1069D0006D917D918D919C9153970E94DD4F9B010C -:1069E000AC01C701B6010E94444F7B018C01C50177 -:1069F000B4010E94DD4F9B01AC01C801B7010E94A8 -:106A0000405118162CF4F30180829182A282B38245 -:106A10008090680590906905A0906A05B0906B051C -:106A20008DE490E029A13AA1289F8001299F100DB3 -:106A3000389F100D112404581A4F54E4652E712C00 -:106A4000600E711ED3016D917D918D919C910E947C -:106A5000DD4F6B017C01F80164857585868597851E -:106A60000E94DF4F9B01AC01C701B6010E94125288 -:106A70006B017C01D80150966D917D918D919C9117 -:106A800053970E94DD4F9B01AC01C701B6010E94E4 -:106A9000444F7B018C01C501B4010E94DD4F9B0175 -:106AA000AC01C801B7010E94405118162CF4F30143 -:106AB00080829182A282B382809064059090650565 -:106AC000A0906605B09067058DE490E029A13AA1F9 -:106AD000289F8001299F100D389F100D1124045804 -:106AE0001A4F44E4642E712C600E711ED3016D9117 -:106AF0007D918D919C910E94DD4F6B017C01F8018D -:106B000060857185828593850E94DF4F9B01AC0172 -:106B1000C701B6010E9412526B017C01D801509648 -:106B20006D917D918D919C9153970E94DD4F9B01BA -:106B3000AC01C701B6010E94444F7B018C01C50125 -:106B4000B4010E94DD4F9B01AC01C801B7010E9456 -:106B5000405118162CF4F30180829182A282B382F4 -:106B60008DE490E029A13AA1289F8001299F100D72 -:106B7000389F100D112404581A4FF801EC5BFF4F99 -:106B800060817181828193810E94DD4F6B017C0164 -:106B9000D201F1012B2F342D4F2F522D0E94444F43 -:106BA000D801D2966D937D938D939C93D597C70111 -:106BB000B6012DEB37E346E051E40E9412520E94E9 -:106BC000AC4FF801648F758F868F978F20914C059D -:106BD00030914D0540914E0550914F052B962CAFAD -:106BE0003DAF4EAF5FAF2B97498D5A8D6B8D7C8D2E -:106BF0004BAB5CAB6DAB7EABCB01BA0120E030E0C0 -:106C0000A9010E94405118164CF08BA89CA8ADA871 -:106C1000BEA8B7FAB094B7F8B09404C08BA89CA8EB -:106C2000ADA8BEA8609150057091510580915205A4 -:106C3000909153052F966CAF7DAF8EAF9FAF2F977E -:106C400020E030E040E05FE30E9412527B016C01E3 -:106C5000C501B4012E2D3F2D4C2D5D2D0E944051BC -:106C6000181674F02B966CAD7DAD8EAD9FAD2B9745 -:106C700020E030E040E05FE30E9412527B016C01B3 -:106C80008DE490E0E9A1FAA1E89FD001E99FB00D61 -:106C9000F89FB00D1124A458BA4FFD01B2969296F8 -:106CA0003C90218022812BA333813FA36E2D7F2D29 -:106CB0008C2D9D2DD101FBA1EFA12B2F3A2F4F2F12 -:106CC0005E2F0E943D4F87FD04C0E32CF22CCBA029 -:106CD000DFA04D8D5E8D6F8D78A127964CAF5DAF97 -:106CE0006EAF7FAF2797CB01BA0120E030E0A9015A -:106CF0000E94405118165CF027968CAC9DACAEAC4F -:106D0000BFAC2797B7FAB094B7F8B09406C02796EF -:106D10008CAC9DACAEACBFAC279760915405709124 -:106D20005505809156059091570563966CAF7DAFE0 -:106D30008EAF9FAF639720E030E040E05FE30E94BA -:106D40001252162F072F482E792EC501B401D801F3 -:106D50002B2F3A2F442D572D0E94405118168CF49A -:106D60006E2D7F2D8C2D9D2DD8012B2F3A2F442D4C -:106D7000572D0E943D4F87FD04C0E12EF02EC42CFC -:106D8000D72C8BA59CA5823091050CF469C160912C -:106D90004F0A7091500A8091510A9091520A27E14E -:106DA00037EB41ED58E30E94405118160CF058C1E2 -:106DB0002091530A3091540A4091550A5091560A35 -:106DC0002BA73CA74DA75EA769897A898B899C89E7 -:106DD0000E94634E9B01AC010E941252162F072F96 -:106DE000782E692E8090570A9090580AA090590AE0 -:106DF000B0905A0A6D897E898F89988DA50194017A -:106E00000E94634E9B01AC010E941252B62FA72F25 -:106E1000F82FE92FB801C301272F362F492F582FFC -:106E2000CA01B9018D013F01212F302F472D562D69 -:106E30000E94644E0E947F522B013C016BA57CA5F1 -:106E40008DA59EA520E030E0A9010E9440511816B2 -:106E50006CF46BA57CA58DA59EA527E137EB41EDD4 -:106E600058E30E94405118167CF10CC06BA57CA51C -:106E70008DA59EA527E137EB41ED58EB0E943D4FD4 -:106E800087FD22C0C501B40120E030E0A9010E94C5 -:106E9000405118165CF4C501B40127E137EB41ED10 -:106EA00058E30E94405118167CF00AC0C501B40195 -:106EB00027E137EB41ED58EB0E943D4F87FD04C0C1 -:106EC0003E2C2F2CCBA2DFA2C301B2012B962CADFE -:106ED0003DAD4EAD5FAD2B970E9440511816CCF4DE -:106EE0002B966CAD7DAD8EAD9FAD2B97A30192011E -:106EF0000E94444F9B01AC01D101FBA1EFA16B2F7C -:106F0000722D8F2F9E2F0E941252362E272E8BA36A -:106F10009FA36BA97CA98DA99EA920915B0A3091A2 -:106F20005C0A40915D0A50915E0A0E94634ED62E23 -:106F3000C72EB82E892EE62EF72E082F192FAA2439 -:106F4000A39420E030E0A9010E94405118162CF0D3 -:106F5000AA24C801B701905804C06D2D7C2D8B2D3B -:106F6000982D2F962CAD3DAD4EAD5FAD2F970E9465 -:106F700040511816FCF4AA2021F417FB109517F9BC -:106F800010952F966CAD7DAD8EAD9FAD2F97A8015E -:106F900097010E94444F9B01AC01D101FBA1EFA1DD -:106FA0006B2F722D8F2F9E2F0E941252362E272E5E -:106FB0008BA39FA327966CAD7DAD8EAD9FAD27971C -:106FC00020915F0A3091600A4091610A5091620AF3 -:106FD0000E94634ED62EC72EB82E892EE62EF72E8F -:106FE000082F192FAA24A39420E030E0A9010E94C1 -:106FF000405118162CF0AA24C801B701905804C0BB -:107000006D2D7C2D8B2D982D63962CAD3DAD4EAD09 -:107010005FAD63970E9440511816F4F4AA2021F442 -:1070200017FB109517F9109563966CAD7DAD8EAD7D -:107030009FAD6397A80197010E94444F9B01AC014B -:10704000D101FBA1EFA16B2F722D8F2F9E2F0E94DC -:1070500012527B016C0104C0E32CF22CCBA0DFA008 -:107060008DE490E049A15AA1489F8001499F100DED -:10707000589F100D112404581A4F8E2D9F2DAC2DA2 -:10708000BD2DF80182A793A7A4A7B5A722A933A96C -:1070900044A955A95058CA01B9010E94644ED801AB -:1070A0009E962D913D914D915C91D1970E941252E7 -:1070B0009B01AC016BE077ED83E29BE30E94634EA2 -:1070C0000E947F52B62E872EA82E992E6E2D7F2DD0 -:1070D0008C2D9D2D2B2D382D4A2D592D0E943D4F45 -:1070E00087FD04C0EB2CF82CCA2CD92C8DE490E041 -:1070F000E9A1FAA1E89F8001E99F100DF89F100D0A -:10710000112404581A4F8E2D9F2DAC2DBD2DF80142 -:1071100086A397A3A0A7B1A762A173A184A195A1FB -:107120002B2D382D4A2D592D0E943D4F181634F025 -:1071300081E0D801D7968C93D79702C0F80117AA9F -:107140008DE490E029A13AA1289FF001299FF00D3C -:10715000389FF00D1124E458FA4F81E086ABA3E587 -:10716000BAE0FE01719680E101900D928150E1F745 -:107170008DE490E049A15AA1489F8001499F100DDC -:10718000589F100D112404581A4FD8019296CD9093 -:10719000DD90ED90FC909597C0924F0AD092500AE6 -:1071A000E092510AF092520A96966D917D918D91DE -:1071B0009C919997A70196010E94444F4B015C0155 -:1071C0006DEC7CEC8CE49DE3A70196010E94444F9A -:1071D0006B017C01C801B501A401970186010E94E1 -:1071E000CD286496BFAD6497B0934C0A2FA938ADF3 -:1071F00049AD5AAD20936C0530936D0540936E05F3 -:1072000050936F054BAD5CAD6DAD7EAD4093700599 -:1072100050937105609372057093730523966CAD5E -:107220007DAD8EAD9FAD239760937405709375050A -:1072300080937605909377058FA598A9A9A9BAA9F7 -:107240008093780590937905A0937A05B0937B0598 -:107250000E94CC2CACD1CB5ADF4F0FB6F894DEBFD6 -:107260000FBECDBFCF91DF911F910F91FF90EF9097 -:10727000DF90CF90BF90AF909F908F907F906F9056 -:107280005F904F903F902F900895CF92DF92EF92B2 -:10729000FF920F931F93CF93DF938B017A016901C4 -:1072A000FC01608171818281938120912005309160 -:1072B000210540912205509123050E9412520E94FF -:1072C000E251CCE6D5E060936C0570936D05809338 -:1072D0006E0590936F05F8016081718182819381C1 -:1072E00020912405309125054091260550912705D0 -:1072F0000E9412520E94E2518E010C5F1F4F609358 -:107300007005F801718382839383F7016081718135 -:1073100082819381209128053091290540912A0589 -:1073200050912B050E9412520E94E25128E0E22E59 -:10733000F12CEC0EFD1E60937405F70171838283BE -:107340009383F601608171818281938120912C0564 -:1073500030912D0540912E0550912F050E9412521B -:107360000E94E251FE013C9660937805718382830E -:107370009383CE01B801A7019F0160D780E090E020 -:10738000DC0180934F0A9093500AA093510AB09366 -:10739000520A8093530A9093540AA093550AB093CB -:1073A000560A8093570A9093580AA093590AB093AB -:1073B0005A0A80935B0A90935C0AA0935D0AB0938B -:1073C0005E0A80935F0A9093600AA093610AB0936B -:1073D000620ADF91CF911F910F91FF90EF90DF90A4 -:1073E000CF900895FC016081718182819381209109 -:1073F0002C0530912D0540912E0550912F050E94AE -:1074000012520E94E251609378057093790580933F -:107410007A0590937B0588E795E04CC780934E0AE8 -:1074200008958091970A882349F48091990A8823C6 -:1074300029F480919B0A882309F4AEC0ECE8FCE0B3 -:1074400007C09091C00095FFFCCF8093C600319695 -:1074500084918823B1F7EEE9FCE007C09091C00069 -:1074600095FFFCCF8093C600319684918823B1F7B5 -:107470008091970A882349F1EAE9FCE007C09091DE -:10748000C00095FFFCCF8093C6003196849188237D -:10749000B1F76091650A7091660A8091670A9091D0 -:1074A000680A0E94DF4F209120053091210540910C -:1074B0002205509123050E94444FAB01BC018BE093 -:1074C00095E022E030E00E9475248091990A88239B -:1074D00049F1E6E9FCE007C09091C00095FFFCCFC0 -:1074E0008093C600319684918823B1F76091690A30 -:1074F00070916A0A80916B0A90916C0A0E94DF4F2A -:1075000020912405309125054091260550912705AD -:107510000E94444FAB01BC018BE095E022E030E0DB -:107520000E94752480919B0A882349F1E2E9FCE0DE -:1075300007C09091C00095FFFCCF8093C6003196A4 -:1075400084918823B1F760916D0A70916E0A8091E1 -:107550006F0A9091700A0E94DF4F209128053091A8 -:10756000290540912A0550912B050E94444FAB01FB -:10757000BC018BE095E022E030E00E947524809110 -:10758000C00085FFFCCF8AE08093C6001092970A66 -:107590001092990A10929B0A08951092970A1092DD -:1075A000990A10929B0A08958093FB010895EFE6D3 -:1075B000F0E080818260808308951F920F920FB661 -:1075C0000F9211242F923F924F925F926F927F926F -:1075D0008F929F92AF92BF92CF92DF92EF92FF92E3 -:1075E0000F931F932F933F934F935F936F937F93CB -:1075F0008F939F93AF93BF93EF93FF93DF93CF93BB -:1076000000D000D0CDB7DEB78091630A9091640AB4 -:10761000009709F05DC190914C0A80914D0A98172E -:10762000A1F020914D0A30E08DE490E0289FF00118 -:10763000299FF00D389FF00D1124E458FA4FDF0117 -:10764000A45BBF4F81E08C9302C0E0E0F0E0F093D8 -:10765000640AE093630A309709F434C11092A30AD4 -:107660001092A40A1092A50A1092A60A34AD25AD74 -:107670003093A10A2093A20AC901692F782F27E22B -:107680006131720710F060E177E281E080939C0A3B -:107690006832710510F468E270E06852704038E0BA -:1076A00060307307E0F0872F90E0880F991F880FF4 -:1076B000991F84579B4FFC01329645915491AA27FC -:1076C000659F9001649F210D3A1F06942A1F3A1F5F -:1076D0001124FC0145915491421B530B1FC0CB0157 -:1076E000969587958C7F8457974FFC0145915491CF -:1076F0000296FC0125913491E62FF0E0E770F070DE -:107700002E9FC0012F9F900D3E9F900D1124E3E00E -:1077100096958795EA95E1F7481B590B4436510534 -:10772000A0F4E3EBF1E006C09091C00095FFFCCF20 -:107730008093C60081918823B9F78BE095E04AE0F9 -:1077400050E00E94B92344E650E0CA01A0E0B0E056 -:1077500080939D0A90939E0AA0939F0AB093A00ADB -:107760005093890040938800E091630AF091640A85 -:1077700090AD81AD692F782F87E26131780710F0E5 -:1077800060E177E281E080939C0A6832710510F431 -:1077900068E270E068527040E8E060307E07E0F038 -:1077A000872F90E0880F991F880F991F84579B4F50 -:1077B000FC01329645915491AA27659F9001649FE0 -:1077C000210D3A1F06942A1F3A1F1124FC014591EE -:1077D0005491421B530B1FC0CB01969587958C7F0C -:1077E0008457974FFC01459154910296FC012591D5 -:1077F0003491E62FF0E0E770F0702E9FC0012F9FCC -:10780000900D3E9F900D112403E0969587950A9563 -:10781000E1F7481B590B44365105A0F4E3EBF1E0C6 -:1078200006C09091C00095FFFCCF8093C600819167 -:107830008823B9F78BE095E04AE050E00E94B92335 -:1078400044E650E05093A80A4093A70AE091630AE7 -:10785000F091640A80899189A289B389B695A79528 -:1078600097958795B095A095909581959F4FAF4F2F -:10787000BF4F8093810A9093820AA093830AB093AA -:10788000840A8093850A9093860AA093870AB0930E -:10789000880A8093890A90938A0AA0938B0AB093EE -:1078A0008C0A80938D0A90938E0AA0938F0AB093CE -:1078B000900A1092910A1092920A1092930A1092D2 -:1078C000940A06C080ED97E0909389008093880029 -:1078D000E091630AF091640A309709F43EC480A1F4 -:1078E0008093950A80FF37C016988FEF8093F70139 -:1078F00023B1217031E0232759F18091960A882322 -:1079000039F180819181A281B381181619061A0676 -:107910001B06F4F48091710A9091720AA091730A87 -:10792000B091740A8093650A9093660AA093670ADF -:10793000B093680A3093970A80899189A289B389A4 -:107940008093910A9093920AA093930AB093940A19 -:107950002093960A04C0169A81E08093F7018091E3 -:10796000950A81FF3BC0149A8FEF8093F80121E0C4 -:10797000199B02C020E02FC08091980A882359F1FA -:10798000E091630AF091640A84819581A681B781B0 -:10799000181619061A061B06F4F48091750A9091C0 -:1079A000760AA091770AB091780A8093690A909339 -:1079B0006A0AA0936B0AB0936C0A2093990A808993 -:1079C0009189A289B3898093910A9093920AA09396 -:1079D000930AB093940A2093980A04C0149881E003 -:1079E0008093F8018091950A82FF3BC046988FEF03 -:1079F0008093F90121E01A9B02C020E02FC0809102 -:107A00009A0A882359F1E091630AF091640A80850B -:107A10009185A285B385181619061A061B06F4F47B -:107A20008091790A90917A0AA0917B0AB0917C0AA0 -:107A300080936D0A90936E0AA0936F0AB093700AB8 -:107A400020939B0A80899189A289B3898093910AA6 -:107A50009093920AA093930AB093940A20939A0A5F -:107A600004C0469A81E08093F9018091950A83FFD2 -:107A700003C045988FEF02C0459A81E08093FA01D8 -:107A800080919C0A282F30E03A8329832091810A33 -:107A90003091820A4091830A5091840A8091850A2C -:107AA0009091860AA091870AB091880AA090890ACD -:107AB000B0908A0AC0908B0AD0908C0A60908D0A90 -:107AC00070908E0A80908F0A9090900A1C821B8280 -:107AD00035C16091C00067FF19C02090C600E091D9 -:107AE0000705F0910805BF016F5F7F4F6F777070DA -:107AF000E0900905F0900A056E157F0539F0E95709 -:107B0000FB4F20827093080560930705E091630A9C -:107B1000F091640AE080F180028113812E0D3F1DF7 -:107B2000401F511F12161306140615060CF4159A61 -:107B3000E091630AF091640AE480F5800681178180 -:107B40008E0D9F1DA01FB11F181619061A061B06C1 -:107B50000CF4139AE091630AF091640AE084F184D2 -:107B600002851385AE0CBF1CC01ED11E1A141B0447 -:107B70001C041D040CF4479AE091630AF091640A16 -:107B8000E484F584068517856E0C7F1C801E911E8B -:107B900016141704180419040CF4179A1216130675 -:107BA000140615061CF5E091630AF091640AE0885A -:107BB000F188028913892E193F09400B510BE0907F -:107BC000710AF090720A0091730A1091740A609120 -:107BD000F701E60EF11C011D111DE092710AF092F1 -:107BE000720A0093730A1093740A159818161906EE -:107BF0001A061B061CF5E091630AF091640AE088FE -:107C0000F188028913898E199F09A00BB10BE090AE -:107C1000750AF090760A0091770A1091780A6091BF -:107C2000F801E60EF11C011D111DE092750AF0929B -:107C3000760A0093770A1093780A13981A141B0493 -:107C40001C041D041CF5E091630AF091640AE088AD -:107C5000F18802891389AE18BF08C00AD10AE090E2 -:107C6000790AF0907A0A00917B0A10917C0A60915F -:107C7000F901E60EF11C011D111DE092790AF09246 -:107C80007A0A00937B0A10937C0A4798161417040B -:107C9000180419041CF5E091630AF091640AE08865 -:107CA000F188028913896E187F08800A910AE09092 -:107CB0007D0AF0907E0A00917F0A1091800A6091FF -:107CC000FA01E60EF11C011D111DE0927D0AF092F1 -:107CD0007E0A00937F0A1093800A1798E090910A19 -:107CE000F090920A0091930A1091940A0894E11C72 -:107CF000F11C011D111DE092910AF092920A00936D -:107D0000930A1093940A2090910A3090920A40901E -:107D1000930A5090940A6B817C816F5F7F4F7C83C4 -:107D20006B83E091630AF091640AE088F18802892C -:107D300013892E143F044006510640F4EB81FC8168 -:107D400069817A81E617F7070CF4C3CE2093810A84 -:107D50003093820A4093830A5093840A8093850A61 -:107D60009093860AA093870AB093880AA092890A02 -:107D7000B0928A0AC0928B0AD0928C0A60928D0AC5 -:107D800070928E0A80928F0A9092900A2091910AA6 -:107D90003091920A4091930A5091940AE091630ABB -:107DA000F091640A84899589A689B7898217930717 -:107DB000A407B50708F4C8C020919D0A30919E0A17 -:107DC00040919F0A5091A00A648D758D868D978D84 -:107DD000AA27279FB12D389F7001489FF00C479F1D -:107DE000E00CF11C289FB00DE11CFA1E379FB00D6E -:107DF000E11CFA1E469FB00DE11CFA1E369FB10D24 -:107E0000EA1EFA1EB695EA1EFA1E112424AD35ADFF -:107E10002E0D3F1D3093A20A2093A10A80AD91AD93 -:107E2000A2ADB3AD40E050E082179307A407B507B9 -:107E300020F49093A20A8093A10A9091A10A8091C4 -:107E4000A20A692F782F87E26131780710F060E18C -:107E500077E281E080939C0A6832710510F468E251 -:107E600070E068527040E8E060307E07E0F0872FF5 -:107E700090E0880F991F880F991F84579B4FFC0132 -:107E8000329625913491AA27639FA001629F410DEC -:107E90005A1F06944A1F5A1F1124FC012591349140 -:107EA000241B350B1FC0CB01969587958C7F84577B -:107EB000974FFC01259134910296FC014591549114 -:107EC000E62FF0E0E770F0704E9FC0014F9F900DDD -:107ED0005E9F900D1124F3E096958795FA95E1F752 -:107EE000281B390B24363105A0F4E3EBF1E006C082 -:107EF0009091C00095FFFCCF8093C60081918823AC -:107F0000B9F78BE095E04AE050E00E94B92324E6FF -:107F100030E0309389002093880040E050E0809169 -:107F20009D0A90919E0AA0919F0AB091A00A820F8B -:107F3000931FA41FB51F80939D0A90939E0AA09340 -:107F40009F0AB093A00AE4C02091910A3091920A4E -:107F50004091930A5091940A808D918DA28DB38D9A -:107F600082179307A407B50708F0CAC02091A30A97 -:107F70003091A40A4091A50A5091A60A648D758D8E -:107F8000868D978DAA27279FB12D389F7001489F16 -:107F9000F00C479FE00CF11C289FB00DE11CFA1E6D -:107FA000379FB00DE11CFA1E469FB00DE11CFA1E72 -:107FB000369FB10DEA1EFA1EB695EA1EFA1E11246E -:107FC0006091A10A7091A20A6E157F0538F4DF0155 -:107FD000A05CBF4F6D917C91119702C06E197F0913 -:107FE000E05CFF4F80819181A281B3819B0140E0E1 -:107FF00050E0281739074A075B0708F4BC01F7E28D -:1080000061317F0710F060E177E281E080939C0AA4 -:108010006832710510F468E270E06852704028E040 -:1080200060307207E0F0872F90E0880F991F880F6B -:10803000991F84579B4FFC01329625913491AA27B2 -:10804000639FA001629F410D5A1F06944A1F5A1F49 -:108050001124FC0125913491241B350B1FC0CB0149 -:10806000969587958C7F8457974FFC012591349185 -:108070000296FC0145915491E62FF0E0E770F07014 -:108080004E9FC0014F9F900D5E9F900D112443E0C5 -:10809000969587954A95E1F7281B390B24363105CB -:1080A000A0F4E3EBF1E006C09091C00095FFFCCF97 -:1080B0008093C60081918823B9F78BE095E04AE070 -:1080C00050E00E94B92324E630E0309389002093E9 -:1080D000880040E050E08091A30A9091A40AA0910A -:1080E000A50AB091A60A820F931FA41FB51F809303 -:1080F000A30A9093A40AA093A50AB093A60A08C065 -:108100008091A70A9091A80A909389008093880093 -:108110002091910A3091920A4091930A5091940AC9 -:10812000E091630AF091640A80899189A289B389F8 -:10813000281739074A075B0780F01092640A1092EB -:10814000630A90914C0A80914D0A981731F0809102 -:108150004D0A8F5F8F7080934D0A2496DEBFCDBF8E -:10816000CF91DF91FF91EF91BF91AF919F918F914F -:108170007F916F915F914F913F912F911F910F913F -:10818000FF90EF90DF90CF90BF90AF909F908F9037 -:108190007F906F905F904F903F902F900F900FBE09 -:1081A0000F901F9018950E9A0C9A3E9A3D9A529AEB -:1081B000529A529A529A2098289A2198299A22984B -:1081C0002A9A0D9A0B9A3F9A0F9AA1E8B0E08C91E7 -:1081D0008F7E8C938C9188608C93E0E8F0E08081B6 -:1081E0008D7F808380818E7F808380818F73808369 -:1081F00080818F7C80838C91887F82608C9380E0EB -:1082000090E49093890080938800109285001092EA -:108210008400EFE6F0E080818260808381E0C4D951 -:108220007894089590914C0A80914D0A981729F0FE -:1082300092D281E00E946C10F5CF0895CF93DF9326 -:10824000EFB7F894EC0188819981AA81BB81809372 -:10825000710A9093720AA093730AB093740AEB01A7 -:1082600088819981AA81BB818093750A9093760A4F -:10827000A093770AB093780AEA0188819981AA814C -:10828000BB818093790A90937A0AA0937B0AB0937A -:108290007C0AE90188819981AA81BB8180937D0A4A -:1082A00090937E0AA0937F0AB093800AEFBFDF917C -:1082B000CF9108952FB7F894FC0180819181A2811C -:1082C000B38180937D0A90937E0AA0937F0AB09336 -:1082D000800A2FBF08959FB7F894E82FF0E0EE0FC3 -:1082E000FF1FEE0FFF1FEF58F54F208131814281B4 -:1082F00053819FBFB901CA01089594DF5A985A98D3 -:108300005A985A98089560E070E08FE793E42091BE -:1083100000023091010240910202509103020E943A -:10832000444F6093D00A7093D10A8093D20A9093FD -:10833000D30A0895FC01EB54F54F808190E0089535 -:108340000F931F93CF93DF93EC01062F662359F110 -:10835000EDEAFCE007C09091C00095FFFCCF809350 -:10836000C600319684918823B1F78BE095E0602FA9 -:1083700070E04AE050E00E949C23E9E5FEE007C07F -:108380009091C00095FFFCCF8093C60031968491F8 -:108390008823B1F78091C00085FFFCCF8AE08093ED -:1083A000C6000E944310602F70E0660F771FFB012C -:1083B000EF57FD4F80819181009709F45BC06D57A5 -:1083C0007D4FFB01A081B18101E037C0A901440FBD -:1083D000551F440F551FFA013296E80FF91F65919A -:1083E00074916C177D0744F5D9011197AA0FBB1F33 -:1083F000AA0FBB1FFC01EA0FFB1F259134911296B7 -:10840000A80FB91FFD0105911491840F951FFC0160 -:10841000A591B491A21BB30BC01BD10BAC9FC001A3 -:10842000AD9F900DBC9F900D1124601B710B0E949D -:10843000F752620F731F19C00F5F202F30E02A1709 -:108440003B070CF4C3CF2A173B0769F41197AA0F17 -:10845000BB1FAA0FBB1FA80FB91FFD0185919491E7 -:10846000682F792F02C060E070E020EF3FE3261B09 -:10847000370B16C0BE01882777FD8095982F0E9484 -:10848000DF4F2FE632E143E050E40E94125220E039 -:1084900030E040E851E40E9412520E94AC4F9B0130 -:1084A000C901DF91CF911F910F91089520E030E035 -:1084B000D9011196AD01440F551F440F551FFA0104 -:1084C000E65BF24F65917491681779073CF5D90125 -:1084D000AA0FBB1FAA0FBB1FFD01E85BF24F25913E -:1084E0003491A65BB24FFD01A591B491485B524F08 -:1084F000FA0145915491421B530BFC01EA1BFB0B03 -:108500004E9FC0014F9F900D5E9F900D11246A1BDE -:108510007B0B0E94F752620F731F12C0422F4E5FF7 -:108520009D01AC33B10509F0C3CF4D3339F4E8E315 -:10853000FEE085919491682F792F02C060E070E091 -:1085400020EF3FE3261B370BC90108952F923F927E -:108550004F925F926F927F928F929F92AF92BF9253 -:10856000CF92DF92EF92FF920F931F93CF93DF93FF -:108570008C01C62F662359F1EDEAFCE007C090910B -:10858000C00095FFFCCF8093C6003196849188236C -:10859000B1F78BE095E06C2F70E04AE050E00E946C -:1085A0009C23ECE3FEE007C09091C00095FFFCCF58 -:1085B0008093C600319684918823B1F78091C000E2 -:1085C00085FFFCCF8AE08093C6000E9443106C2F89 -:1085D00070E0660F771FFB01EF57FD4F808191819F -:1085E000009709F488C0C0EFDFE3C01BD10B6D57C3 -:1085F0007D4FFB0160817181A1E060C09A01220F73 -:10860000331F220F331FFC01E20FF31FA590B4901C -:10861000CA15DB050CF051C041505040440F551FA6 -:10862000440F551FFA013296E80FF91F0591149176 -:10863000480F591FFA01859094902E5F3F4F280FE5 -:10864000391FF90165907490B801882777FD8095EE -:10865000982F0E94DF4F1B012C01C819D909BE01B8 -:10866000882777FD8095982F0E94DF4F6B017C0152 -:10867000601A710AB301882777FD8095982F0E94B0 -:10868000DF4F9B01AC01C701B6010E9412527B0172 -:108690008C01A818B908B501882777FD8095982F17 -:1086A0000E94DF4F9B01AC01C801B7010E94444FFB -:1086B0009B01AC01C201B10134C0AF5F4A2F50E051 -:1086C000461757070CF49ACF4617570769F5660FF8 -:1086D000771F660F771F62507040680F791FFB018C -:1086E000859194919C01B901882777FD8095982FF9 -:1086F0000E94DF4F1DC0B801882777FD8095982F15 -:108700000E94DF4F20E030E04AEF5EE30E94125209 -:1087100020E030E040E85DE30E94125220E030E0CB -:10872000A9010E94644E04C060E070E080E090E027 -:10873000DF91CF911F910F91FF90EF90DF90CF903D -:10874000BF90AF909F908F907F906F905F904F9071 -:108750003F902F9008954F925F926F927F928F92E9 -:108760009F92AF92BF92CF92DF92EF92FF920F93C0 -:108770001F93CF93DF938091B60A882309F4C7C172 -:108780008FB7F8941092B60A8FBF8091AD0A90917E -:10879000AE0A60E0DBDE4B015C016091B10A7091D2 -:1087A000B20A8091B30A9091B40AA50194010E9483 -:1087B000634EEB01182F092F9801862F9D2FA32FB1 -:1087C000B22F8093D40A9093D50AA093D60AB0937F -:1087D000D70A6C2F7D2F832F922F20E030E040E2CC -:1087E00051E40E94405118160CF42DC198016C2FD1 -:1087F0007D2F832F922F20E030E040E251EC0E9449 -:108800003D4F87FD1CC18091D80A882309F009C11A -:1088100098016C2F7D2F832F902F2091FC01309198 -:10882000FD014091FE015091FF010E9412522B0167 -:108830003C01862F952DA62DB72D8093DD0A9093B0 -:10884000DE0AA093DF0AB093E00A98016C2F7D2F17 -:10885000832F902F2091D90A3091DA0A4091DB0AB8 -:108860005091DC0A0E94644EF62EE72ED82EC92EB7 -:108870000091CC0A1091CD0AD091CE0AC091CF0AB6 -:10888000A7019601652F742F832F922FFE01202FB1 -:10889000312F4F2F5E2F0E943D4F87FFA6C09E01B4 -:1088A000802F912FA32FBC2F8093D90A9093DA0A9F -:1088B000A093DB0AB093DC0A602F712F832F9C2FCB -:1088C0002091000230910102409102025091030276 -:1088D0000E941252D62FC72F182F092FAE019801D0 -:1088E000852F942FA32FB22F8093E10A9093E20A51 -:1088F000A093E30AB093E40AC501B4012091E50A0C -:108900003091E60A4091E70A5091E80A0E94634ECE -:108910002091040230910502409106025091070215 -:108920000E94125220ED3CEC4CE45DE30E94125296 -:108930006B017C016091E90A7091EA0A8091EB0A6F -:108940009091EC0A23E333E343E75FE30E94125282 -:108950009B01AC01C701B6010E94644E7B01D82E79 -:10896000C92E9601862F9F2DA32FB22F8093E90A3F -:108970009093EA0AA093EB0AB093EC0A8092E50A7E -:108980009092E60AA092E70AB092E80A642D752D4B -:10899000862D972DDE01F8012B2F3A2F4F2F5E2FBA -:1089A0000E94644EF6012E2D3F2D4F2F5E2F0E9408 -:1089B000634E8B01D82FC92F9E01712F832F922FC9 -:1089C00020E030E0A9010E943D4F87FD44C09E0198 -:1089D000602F712F832F922F20E030E04FE753E478 -:1089E0000E9440511816DCF531C00091D00A109158 -:1089F000D10AD091D20AC091D30AA7019601652F5E -:108A0000742F832F922FFE01202F312F4F2F5E2F97 -:108A10000E94405118160CF442CF0F2D1E2DE60176 -:108A20003ECF80E090E0DC018093D90A9093DA0A8F -:108A3000A093DB0AB093DC0A1092D80AE9CE81E059 -:108A40008093D80A08C081E08093D80A00E010E043 -:108A5000DFE7C3E404C000E010E0D0E0C0E08091B4 -:108A6000AD0A9091AE0A2091B70A3091B80A281742 -:108A700039071CF01092B50A12C020910C023091F7 -:108A80000D0282179307B4F79E01602F712F832F79 -:108A90009C2F0E94AC4F759567956093B50A0E9414 -:108AA000E2202091ED0A3091EE0A4091EF0A5091B8 -:108AB000F00A621B730B840B950B683823E1720775 -:108AC00020E0820720E0920710F10E94E2206093EC -:108AD000ED0A7093EE0A8093EF0A9093F00A80916A -:108AE000AF0A9091B00A1816190684F420910E026C -:108AF00030910F02821793074CF42091AB0A30910A -:108B0000AC0A8217930714F42C9A01C02C98DF91B9 -:108B1000CF911F910F91FF90EF90DF90CF90BF907A -:108B2000AF909F908F907F906F905F904F9008953F -:108B30002F923F924F925F926F927F928F929F926D -:108B4000AF92BF92CF92DF92EF92FF920F931F935B -:108B5000DF93CF93CDB7DEB7E9970FB6F894DEBFBA -:108B60000FBECDBF6D877E878F87988B8FE78093F1 -:108B7000B50A0E94E2206B8B7C8B8D8B9E8BE7EC81 -:108B8000F1E006C09091C00095FFFCCF8093C60035 -:108B900081918823B9F78091C00085FFFCCF8AE0DE -:108BA0008093C6002B893C894D895E892B8F3C8F31 -:108BB0004D8F5E8F2F8B388F498F5A8F8FE790E0C4 -:108BC000A0E0B0E089839A83AB83BC833FE7432E68 -:108BD000512C612C712C11E01A8A198AECE2FFE009 -:108BE00094919CA7E7E2FFE0A491ADA7E0E2FFE04B -:108BF000B491BEA7E9E1FFE024912FA7E3E1FFE0F4 -:108C0000349138ABEDE0FFE0449149ABE0E0FFE0A8 -:108C100054915AABEAEFFEE084918BABE4EFFEE0B7 -:108C200094919CABEEEEFEE0A491ADABEDEDFEE0D9 -:108C3000B491BEABE7EDFEE024912FAB8091B60A74 -:108C4000882309F461C48FB7F8941092B60A8FBFD5 -:108C50008091AD0A9091AE0A60E078DC6D837E83EE -:108C60008F8398875F8D48A139A12AA1652F742F22 -:108C7000832F922FBD81AE81DF80C8842B2F3A2FA6 -:108C80004D2D5C2D0E944051181634F03D813F8FD0 -:108C90004E8148A3D9A2CAA26F2D702F8E2D992D77 -:108CA000BD81AE81DF80C8842B2F3A2F4D2D5C2DE6 -:108CB0000E943D4F87FD04C0FD800E81ED2C9C2C51 -:108CC000112309F454C05D814E813F812885652FB1 -:108CD000742F832F922FBD85AE85DF84C8882B2FFC -:108CE0003A2F4D2D5C2D0E94405118160CF00CC4EB -:108CF0000E94E2202B8D3C8D4D8D5E8D621B730B8F -:108D0000840B950B693833E1730730E0830730E05B -:108D1000930708F4F9C3D301C20129813A814B8139 -:108D20005C81821B930BA40BB50BB595A79597950A -:108D300087958093B50A0E94E2206F8B788F898F88 -:108D40009A8FDC01CB012B8D3C8D4D8D5E8D821B6E -:108D5000930BA40BB50B88A799A7AAA7BBA73D8522 -:108D60003F8F4E8548A35F8559A388898AA35D817B -:108D70004E813F812885652F742F832F922FBD85CB -:108D8000AE851F85D8882B2F3A2F412F5D2D0E944D -:108D90003D4F87FFB8C30E94E2202F89388D498D4F -:108DA0005A8D621B730B840B950B693833E1730783 -:108DB00030E0830730E0930708F4A5C30E94E22067 -:108DC0006B8F7C8F8D8F9E8F49895A8941155105F4 -:108DD00009F47FC3DC01CB012F89388D498D5A8D71 -:108DE000821B930BA40BB50B28A539A54AA55BA53F -:108DF000280F391F4A1F5B1F29873A874B875C87DB -:108E000028A539A54AA55BA5281B390B4A0B5B0B86 -:108E1000CA01B90129813A814B815C810E94D852F3 -:108E200029853A854B855C850E942C53240D351D80 -:108E3000461D571D243131054105510504F1290115 -:108E40003A013CEE43165104610471042CF09BEE90 -:108E5000492E512C612C712C40E8441651046104B8 -:108E60007104DCF08EEF90E0A0E0B0E08419950989 -:108E7000A609B70989839A83AB83BC8312C084E1B6 -:108E8000482E512C612C712C24E130E040E050E060 -:108E900029833A834B835C8304C049825A826B8264 -:108EA0007C828CA5ECE2FFE008C09091C00095FFA9 -:108EB000FCCF8093C600319684918823B1F78BE074 -:108EC00095E0B301A2012AE030E00E946C238DA559 -:108ED000E7E2FFE008C09091C00095FFFCCF8093CF -:108EE000C600319684918823B1F78BE095E04981E3 -:108EF0005A816B817C812AE030E00E946C238EA530 -:108F0000E0E2FFE008C09091C00095FFFCCF8093A5 -:108F1000C600319684918823B1F78BE095E04F2D00 -:108F2000502F6E2D792D22E030E00E9475248FA500 -:108F3000E9E1FFE008C09091C00095FFFCCF80936D -:108F4000C600319684918823B1F78BE095E0FF8DC0 -:108F5000E8A139A12AA14F2F5E2F632F722F22E0A3 -:108F600030E00E9475248091C00085FFFCCF8AE02C -:108F70008093C60049895A89433051050CF4A9C22F -:108F800069817A818B819C810E94DF4F20E030E0F3 -:108F900040E850E40E9412525B016C015F8D48A1D1 -:108FA00039A12AA1652F742F832F922F2F2D302FB7 -:108FB0004E2D592D88D620ED3FE049E450E40E9423 -:108FC000125220E030E040E05FE30E9412529B0129 -:108FD000AC01C601B50158D76BA37CA38DA39EA39A -:108FE00069857A858B859C85EAD720E030E04AE761 -:108FF00054E44AD7F62ED72EC82EB92E88A9E3E11D -:10900000FFE008C09091C00095FFFCCF8093C600A0 -:10901000319684918823B1F78BE095E0FBA1ECA118 -:109020003DA12EA14F2F5E2F632F722F22E030E043 -:109030000E94752489A9EDE0FFE008C09091C0006E -:1090400095FFFCCF8093C600319684918823B1F7B9 -:109050008BE095E04F2D5D2D6C2D7B2D22E030E0D7 -:109060000E9475248091C00085FFFCCF8AE0809328 -:10907000C6005BA14CA13DA12EA1652F742F832FAB -:10908000922F2AE939E949E15FE30E94125269AF60 -:1090900078AF182F092F562F472F9801832F922F23 -:1090A000DA01F8012B2F3A2F4F2F5E2F0DD62F2DDF -:1090B0003D2D4C2D5B2DE8D6362E272E89879FA37C -:1090C00059AD48AD9801652F742F832F922F2F2D06 -:1090D0003D2D4C2D5B2D0E94125220E030E040E0EF -:1090E0005EE30E941252E62EA72E982E892E8AA9A0 -:1090F000E0E0FFE039AD98AD0AC0292F9091C000A3 -:1091000095FFFCCF922F8093C600319684918823DF -:10911000A1F78091C00085FFFCCF39AF98AF8AE0FE -:109120008093C6008BA9EAEFFEE039AD98AD0AC086 -:10913000292F9091C00095FFFCCF922F8093C600FD -:10914000319684918823A1F739AF98AF8BE095E0F1 -:10915000F32FE8AD98014F2F5E2F632F702F22E081 -:1091600030E00E9475248091C00085FFFCCF8AE02A -:109170008093C6008CA9E4EFFEE008C09091C00087 -:1091800095FFFCCF8093C600319684918823B1F778 -:109190008BE095E0F10139852FA14F2F522D632FE0 -:1091A000722F22E030E00E9475248091C00085FF7C -:1091B000FCCF8AE08093C6008DA9EEEEFEE008C0E9 -:1091C0009091C00095FFFCCF8093C60031968491AA -:1091D0008823B1F78BE095E094014E2D5A2D632F33 -:1091E000782D22E030E00E9475248091C00085FF38 -:1091F000FCCF8AE08093C6005BA14CA13DA12EA1CB -:10920000652F742F832F922F23EC35EF48EA5EE30E -:109210000E94125269AF78AF182F092F9801832F3F -:10922000922F2F2D3D2D4C2D5B2D2ED6362E272EF9 -:1092300089879FA359AD48AD9801652F742F832F5F -:10924000922F2F2D3D2D4C2D5B2D0E94125220E090 -:1092500030E040E450E418D6E62EA72E982E892E52 -:109260008EA9EDEDFEE039AD98AD0AC0292F9091A1 -:10927000C00095FFFCCF922F8093C6003196849159 -:109280008823A1F78091C00085FFFCCF39AF98AF4C -:109290008AE08093C6008FA9E7EDFEE039AD98AD76 -:1092A0000AC0292F9091C00095FFFCCF922F809388 -:1092B000C600319684918823A1F739AF98AF8BE02F -:1092C00095E0F32FE8AD98014F2F5E2F632F702F9D -:1092D00022E030E00E9475248091C00085FFFCCF21 -:1092E0008AE08093C600E1EDFEE007C09091C000E7 -:1092F00095FFFCCF8093C600319684918823B1F707 -:109300008BE095E0F10139852FA14F2F522D632F6E -:10931000722F22E030E00E9475248091C00085FF0A -:10932000FCCF8AE08093C600EBECFEE007C0909192 -:10933000C00095FFFCCF8093C600319684918823AE -:10934000B1F78BE095E094014E2D5A2D632F782DC7 -:1093500022E030E00E9475248091C00085FFFCCFA0 -:109360008AE08093C6005BA14CA13DA12EA1652F90 -:10937000742F832F922F2DEC3CEC4CE45EE30E9483 -:1093800012526987272E182F092F562F9801832FE5 -:10939000922FF801252F322D4F2F5E2F95D42F2D90 -:1093A0003D2D4C2D5B2D70D5A62E972E882E392E57 -:1093B00059859801652F722D832F922F2F2D3D2DCA -:1093C0004C2D5B2D0E94125220E030E040E450E42E -:1093D0005BD5F62EE72ED82EC92EECEBFEE084915D -:1093E00099850AC0292F9091C00095FFFCCF922F3C -:1093F0008093C600319684918823A1F78091C000A4 -:1094000085FFFCCF99878AE08093C600E6EBFEE0FB -:10941000849199850AC0292F9091C00095FFFCCFB7 -:10942000922F8093C600319684918823A1F7998763 -:109430008BE095E0F98598014F2F522D632F702F07 -:1094400022E030E00E9475248091C00085FFFCCFAF -:109450008AE08093C600E0EBFEE007C09091C00078 -:1094600095FFFCCF8093C600319684918823B1F795 -:109470008BE095E04A2D592D682D732D22E030E0C8 -:109480000E9475248091C00085FFFCCF8AE0809304 -:10949000C600EAEAFEE007C09091C00095FFFCCF4D -:1094A0008093C600319684918823B1F78BE095E0D4 -:1094B000F70196014F2F5E2D632F7C2D22E030E0C7 -:1094C0000E9475248091C00085FFFCCF8AE08093C4 -:1094D000C60089819A81AB81BC81840D951DA61D32 -:1094E000B71DB595A795979587958093B50A298956 -:1094F0003A892F5F3F4F3A8B298BFD840E85EF848D -:10950000988811E001C010E05D854E853F8528896F -:10951000652F742F832F922F20E030E040EA51E432 -:10952000D3D39B01AC01BD81AE81DF80C8846B2F9A -:109530007A2F8D2D9C2DA4D618166CF5EFE7FEE042 -:1095400007C09091C00095FFFCCF8093C600319674 -:1095500084918823B1F78091C00085FFFCCF8AE019 -:109560008093C600E9960FB6F894DEBF0FBECDBF5C -:10957000CF91DF911F910F91FF90EF90DF90CF90EF -:10958000BF90AF909F908F907F906F905F904F9023 -:109590003F902F9008950E94E2202B893C894D89AD -:1095A0005E89621B730B840B950B613D37E073077B -:1095B00030E0830730E0930708F440CB0E94E220BC -:1095C0006B8B7C8B8D8B9E8BE9E7FEE007C09091C7 -:1095D000C00095FFFCCF8093C6003196849188230C -:1095E000B1F78091AD0A9091AE0A60E00E94A64268 -:1095F000AB01BC018BE095E022E030E00E947524D5 -:10960000E5E7FEE007C09091C00095FFFCCF809396 -:10961000C600319684918823B1F780E090E00E94E3 -:109620009A41BC018BE095E04AE050E00E949C2307 -:109630008091C00085FFFCCF8AE08093C600FECAFF -:109640002F923F924F925F926F927F928F929F9252 -:10965000AF92BF92CF92DF92EF92FF920F931F9340 -:10966000CF93DF93C0EFDFE3C81BD90B80E090E01E -:10967000AC014F5F5F4F9A01220F331F220F331F40 -:10968000F901E85BF24FA590B490CA15DB050CF028 -:1096900047C0880F991F880F991FFC01E65BF24FA6 -:1096A00005911491885B924FFC0185909490265B04 -:1096B000324FF90165907490B801882777FD809545 -:1096C000982F7DD41B012C01C819D909BE01882708 -:1096D00077FD8095982F73D46B017C01601A710A15 -:1096E000B301882777FD8095982F69D49B01AC0141 -:1096F000C701B60197D67B018C01A818B908B5013E -:10970000882777FD8095982F5AD49B01AC01C8011A -:10971000B701BAD39B01AC01C201B101D5D217C0C8 -:10972000282F2E5FCA014C33510509F0A1CF2D33EC -:1097300051F4EAE3FEE065917491882777FD809506 -:10974000982F3DD404C060E070E080E090E0DF91AD -:10975000CF911F910F91FF90EF90DF90CF90BF902E -:10976000AF909F908F907F906F905F904F903F90C1 -:109770002F90089580E090E0DC018093CC0A9093D4 -:10978000CD0AA093CE0AB093CF0A60E070E08FE7D5 -:1097900093E4209100023091010240910202509125 -:1097A000030272D36093D00A7093D10A8093D20AD5 -:1097B0009093D30A239A249A569A87ED80937A003D -:1097C000EEE7F0E01082808181608083808182609A -:1097D000808380818460808380818460808380E84E -:1097E00088BDEEE6F0E08081846080836AEF70E0FF -:1097F00080E090E00E94182185E090E060E00E9407 -:10980000A0419093B80A8093B70A83E191E060E0A9 -:109810000E94A04190930D0280930C0286E990E093 -:109820000E94564290930F0280930E02089508956D -:1098300080E090E060E00E94A04180E090E0DC01E8 -:109840008093B10A9093B20AA093B30AB093B40A7A -:1098500080E090E00E9456429093AC0A8093AB0A5D -:109860001092AA0A1092A90A1092B50A83E060E049 -:109870000E9424221092AC0A1092AB0A1092B60AEF -:109880001092AE0A1092AD0A1092B70A1092AC0A6A -:109890001092AB0A84E060E00C942422CF93C82F8E -:1098A000E82FF0E0EE0FFF1FE158FD4F808160E0F0 -:1098B0000E9424220E949520882379F5EDEAFCE09D -:1098C00007C09091C00095FFFCCF8093C6003196F1 -:1098D00084918823B1F78BE095E06C2F40E050E055 -:1098E0000E9466238091C00085FFFCCF8AE08093B0 -:1098F000C600EBE1FDE007C09091C00095FFFCCFF2 -:109900008093C600319684918823B1F78091C0007E -:1099100085FFFCCF8AE08093C600CF910895CF9356 -:10992000C82FE82FF0E0EE0FFF1FE158FD4F8081B8 -:1099300060E00E9424220E949520882379F5EDEAB8 -:10994000FCE007C09091C00095FFFCCF8093C6005B -:10995000319684918823B1F78BE095E06C2F40E03D -:1099600050E00E9466238091C00085FFFCCF8AE012 -:109970008093C600EEEEFCE007C09091C00095FF1A -:10998000FCCF8093C600319684918823B1F78091F3 -:10999000C00085FFFCCF8AE08093C600CF91089578 -:1099A00084E060E00E9424220E949520882309F52B -:1099B000EDEAFCE007C09091C00095FFFCCF8093DA -:1099C000C600319684918823B1F7E4EBFCE007C030 -:1099D0009091C00095FFFCCF8093C6003196849192 -:1099E0008823B1F78091C00085FFFCCF8AE0809387 -:1099F000C60008951F920F920FB60F9211242F9355 -:109A00003F934F935F936F937F938F939F93AF9306 -:109A1000BF93EF93FF9380911002882331F49091CC -:109A2000B50A9093B90A91112B9A9091B90A8917A6 -:109A300008F02B988F5F8F77809310028091BA0A7D -:109A4000833009F448C0843028F48130E1F082305A -:109A5000C0F50DC0853009F466C0853008F457C0E4 -:109A6000863009F47CC0873009F0A6C084C010920B -:109A70007B0080E480937C0080917A0080648093F6 -:109A80007A0081E01BC0209178003091790040E09D -:109A900050E08091C70A9091C80AA091C90AB0917C -:109AA000CA0A820F931FA41FB51F8093C70A909301 -:109AB000C80AA093C90AB093CA0A82E08093BA0A7E -:109AC0007BC082E480937C0080917A0080648093E4 -:109AD0007A0083E0F3CF209178003091790040E064 -:109AE00050E08091BB0A9091BC0AA091BD0AB09150 -:109AF000BE0A820F931FA41FB51F8093BB0A9093C9 -:109B0000BC0AA093BD0AB093BE0A84E0D7CF1092DE -:109B10007B0081E480937C0080917A008064809354 -:109B20007A0085E0CBCF209178003091790040E039 -:109B300050E08091C30A9091C40AA091C50AB091E7 -:109B4000C60A820F931FA41FB51F8093C30A909368 -:109B5000C40AA093C50AB093C60A86E0AFCF10929C -:109B60007B0082E480937C0080917A008064809303 -:109B70007A0087E0A3CF209178003091790040E00F -:109B800050E08091BF0A9091C00AA091C10AB091A3 -:109B9000C20A820F931FA41FB51F8093BF0A909320 -:109BA000C00AA093C10AB093C20A1092BA0A809167 -:109BB000CB0A8F5F8093CB0A8091CB0A803108F467 -:109BC00071C02FEF3FE38091C70A9091C80AA901A5 -:109BD000481B590BCA015093AE0A4093AD0A4091FD -:109BE000BB0A5091BC0A241B350B3093B00A20935A -:109BF000AF0A21E02093B60A1092CB0A1092C70A4E -:109C00001092C80A1092C90A1092CA0A1092C30A86 -:109C10001092C40A1092C50A1092C60A1092BF0A86 -:109C20001092C00A1092C10A1092C20A1092BB0A86 -:109C30001092BC0A1092BD0A1092BE0A20910C022A -:109C400030910D028217930744F01092AA0A1092E5 -:109C5000A90A80E023DE0E945A202091AD0A3091AB -:109C6000AE0A8091B70A9091B80A8217930744F020 -:109C70001092AA0A1092A90A80E051DE0E945A208E -:109C80002091AF0A3091B00A80910E0290910F029C -:109C9000281739073CF01092AC0A1092AB0A80DE0C -:109CA0000E945A20FF91EF91BF91AF919F918F91A8 -:109CB0007F916F915F914F913F912F910F900FBEC8 -:109CC0000F901F9018955058BB27AA270ED076C228 -:109CD0003FD230F044D220F031F49F3F11F41EF413 -:109CE0000FC20EF4E095E7FBDCC1E92F89D280F3C7 -:109CF000BA17620773078407950718F071F49EF589 -:109D0000B8C20EF4E0950B2EBA2FA02D0B01B901AD -:109D100090010C01CA01A0011124FF27591B99F0E1 -:109D2000593F50F4503E68F11A16F040A22F232FED -:109D3000342F4427585FF3CF469537952795A7953D -:109D4000F0405395C9F77EF41F16BA0B620B730BE4 -:109D5000840BBAF09150A1F0FF0FBB1F661F771F55 -:109D6000881FC2F70EC0BA0F621F731F841F48F40A -:109D7000879577956795B795F7959E3F08F0B3CF90 -:109D80009395880F08F09927EE0F9795879508957A -:109D9000DFD158F080E891E009F49EEFE0D128F09F -:109DA00040E851E059F45EEF09C0AAC162C2E92F50 -:109DB000E07826D268F3092E052AC1F32617370763 -:109DC0004807590738F00E2E07F8E02569F0E0251E -:109DD000E0640AC0EF6307F8009407FADB01B901F9 -:109DE0009D01DC01CA01AD01EF935DD0E7D10AD03E -:109DF0005F91552331F02BED3FE049E450FD49ECF4 -:109E000063CF0895DF93DD27B92FBF7740E85FE385 -:109E10001616170648075B0710F4D92F96D29F93A2 -:109E20008F937F936F93A9D3E0E7F0E06CD1C6D115 -:109E30002F913F914F915F9101D3DD2349F09058CD -:109E4000A2EA2AED3FE049EC5FE3D0785D274DDFE1 -:109E5000DF91B4C1F7D180F09F3740F491110EF437 -:109E600009C260E070E080E89FE3089526F01B16C9 -:109E7000611D711D811D1BC135C1EFD008F481E04A -:109E8000089575D1E395ABC10CD098C168D140F06D -:109E90005FD130F021F45F3F19F003C15111EAC1E5 -:109EA0002FC1AED198F39923C9F35523B1F3951B74 -:109EB000550BBB27AA2762177307840738F09F5FEB -:109EC0005F4F220F331F441FAA1FA9F333D00E2E5A -:109ED0003AF0E0E830D091505040E695001CCAF7C7 -:109EE00029D0FE2F27D0660F771F881FBB1F26178C -:109EF00037074807AB07B0E809F0BB0B802DBF015F -:109F0000FF2793585F4F2AF09E3F510568F0C9C064 -:109F1000B1C15F3FECF3983EDCF38695779567958A -:109F2000B795F7959F5FC9F7880F911D969587950F -:109F300097F90895E1E0660F771F881FBB1F62172E -:109F400073078407BA0720F0621B730B840BBA0BEC -:109F5000EE1F88F7E095089504D06894B1118AC186 -:109F6000089556D188F09F5790F0B92F9927B7518F -:109F7000A0F0D1F0660F771F881F991F1AF0BA95CD -:109F8000C9F712C0B13081F074D1B1E0089571C148 -:109F9000672F782F8827B85F39F0B93FCCF38695C3 -:109FA00077956795B395D9F73EF490958095709520 -:109FB00061957F4F8F4F9F4F0895E89409C097FB9D -:109FC0003EF490958095709561957F4F8F4F9F4F90 -:109FD0009923A9F0F92F96E9BB279395F6958795D4 -:109FE00077956795B795F111F8CFFAF4BB0F11F497 -:109FF00060FF1BC06F5F7F4F8F4F9F4F16C088233E -:10A0000011F096E911C0772321F09EE8872F762F73 -:10A0100005C0662371F096E8862F70E060E02AF0B4 -:10A020009A95660F771F881FDAF7880F96958795A0 -:10A0300097F9089507D180F09F3740F491110EF001 -:10A0400019C160E070E080E89FEB089526F41B16CC -:10A05000611D711D811D2BC045C0990F0008550F52 -:10A06000AA0BE0E8FEEF16161706E807F907C0F09E -:10A0700012161306E407F50798F0621B730B840BA6 -:10A08000950B39F40A2661F0232B242B252B21F480 -:10A0900008950A2609F4A140A6958FEF811D811D20 -:10A0A000089597F99F6780E870E060E0089588233D -:10A0B00071F4772321F09850872B762F07C0662301 -:10A0C00011F499270DC09051862B70E060E02AF0C2 -:10A0D0009A95660F771F881FDAF7880F96958795F0 -:10A0E00097F908959F3F31F0915020F48795779527 -:10A0F0006795B795880F911D9695879597F908955F -:10A100009FEF80EC0895DF93CF931F930F93FF92FF -:10A11000EF92DF927B018C01689405C0DA2EEF018B -:10A120008DD1FE01E894A5912591359145915591E8 -:10A13000AEF3EF01DADDFE019701A801DA9479F7B9 -:10A14000DF90EF90FF900F911F91CF91DF910895D5 -:10A1500000240A9416161706180609060895002406 -:10A160000A9412161306140605060895C9CF50D096 -:10A17000E8F3E894E0E0BB279F57F0F02AED3FE0DA -:10A1800049EC06C0EE0FBB0F661F771F881F28F033 -:10A19000B23A62077307840728F0B25A620B730B56 -:10A1A000840BE3959A9572F7803830F49A95BB0F3B -:10A1B000661F771F881FD2F7904896CF092E039409 -:10A1C000000C11F4882352F0BB0F40F4BF2B11F4A4 -:10A1D00060FF04C06F5F7F4F8F4F9F4F0895EF93D5 -:10A1E000E0FF06C0A2EA2AED3FE049EC5FEB7DDD2F -:10A1F000E5DF0F90039401FC9058EDE9F0E0C7C152 -:10A2000057FD9058440F551F59F05F3F71F0479527 -:10A21000880F97FB991F61F09F3F79F0879508950C -:10A22000121613061406551FF2CF4695F1DF08C02B -:10A23000161617061806991FF1CF86957105610548 -:10A2400008940895E5DFA0F0BEE7B91788F4BB27AE -:10A250009F3860F41616B11D672F782F8827985FF6 -:10A26000F7CF869577956795B11D93959639C8F385 -:10A270000895E894BB2766277727CB0197F90895BF -:10A28000ECDE08F48FEF089563DF19F068DF09F062 -:10A2900037CF07CFB901CA0125CF9F775F77B0DFEE -:10A2A00098F39923B9F35523B9F3FF27951758F479 -:10A2B000E52FE91BED3070F75E3B10F0F1E41CC0B8 -:10A2C0009034E0F40AC0E92FE51BED3028F79E3BFF -:10A2D00010F0F1E411C0503488F4F9EA88232AF030 -:10A2E0009A95660F771F881FDAF744232AF05A954C -:10A2F000220F331F441FDAF79F1B5F1BFF931F932F -:10A300000F93FF92EF9279018A01BB27AB2F9B013C -:10A31000AC0196D09701A801BF937B018C01AA27BD -:10A32000BA2FB901CA018CD0AF919701A801EF9063 -:10A33000FF900F911F91D9DC41DFE1D04F9140FF99 -:10A340000895552747FD509509C09B01AC0160E079 -:10A3500070E080E89FE398CDA4CEC4CE59DFE8F347 -:10A360009923D9F3940F511DBBF39150504094F0B1 -:10A3700059F0882332F0660F771F881F91505040A4 -:10A38000C1F79E3F510544F7880F911D969587951B -:10A3900097F908955F3FACF0983E9CF0BB278695F7 -:10A3A00077956795B79508F4B1609395C1F7BB0FA2 -:10A3B00058F711F460FFE8CF6F5F7F4F8F4F9F4FCB -:10A3C000E3CF58CF25DF58F19E5758F19851A0F0B0 -:10A3D000E9F0983020F5092E9927660F771F881F1E -:10A3E000991F0A94D1F712C0062E672F782F88275D -:10A3F000985F11F4000C07C0993FB4F386957795E8 -:10A4000067959395D9F7611D711D811D3EF4909557 -:10A410008095709561957F4F8F4F9F4F08956894F9 -:10A4200029CF27CF0BD0CACE93DE28F098DE18F0C4 -:10A43000952309F036CE64CE11241CCFE1DEA0F3C3 -:10A44000959FD1F3950F50E0551F629FF001729FC9 -:10A45000BB27F00DB11D639FAA27F00DB11DAA1FE8 -:10A46000649F6627B00DA11D661F829F2227B00D35 -:10A47000A11D621F739FB00DA11D621F839FA00DC0 -:10A48000611D221F749F3327A00D611D231F849F10 -:10A49000600D211D822F762F6A2F11249F57504067 -:10A4A0008AF0E1F088234AF0EE0FFF1FBB1F661F02 -:10A4B000771F881F91505040A9F79E3F510570F0BB -:10A4C000F0CDD8CE5F3FECF3983EDCF386957795E0 -:10A4D0006795B795F795E7959F5FC1F7FE2B880FB6 -:10A4E000911D9695879597F908959F9340DE0F905B -:10A4F00007FCEE5F74CE11F40EF402CEF3CD88DECD -:10A50000D0F39923D9F3CEF39F57550B87FF38D05B -:10A510000024A0E640EA900180585695979528F4CB -:10A52000805C660F771F881F20F0261737074807C3 -:10A5300030F4621B730B840B202931294A2BA6951A -:10A5400017940794202531254A2758F7660F771F5F -:10A55000881F20F026173707480730F4620B730B6B -:10A56000840B200D311D411DA09581F7B901842F69 -:10A570009158880F9695879508959B01AC0152CF0D -:10A5800091505040660F771F881FD2F708959F9310 -:10A590008F937F936F93FF93EF939B01AC0142DF07 -:10A5A000EF91FF91B0DD2F913F914F915F913ACFA5 -:10A5B000629FD001739FF001829FE00DF11D649FA7 -:10A5C000E00DF11D929FF00D839FF00D749FF00D33 -:10A5D000659FF00D9927729FB00DE11DF91F639FD4 -:10A5E000B00DE11DF91FBD01CF011124089597FBA6 -:10A5F000092E07260AD077FD04D049D006D00020C6 -:10A600001AF4709561957F4F0895F6F790958195AE -:10A610009F4F0895A1E21A2EAA1BBB1BFD010DC07E -:10A62000AA1FBB1FEE1FFF1FA217B307E407F50702 -:10A6300020F0A21BB30BE40BF50B661F771F881FDE -:10A64000991F1A9469F760957095809590959B0174 -:10A65000AC01BD01CF01089597FB092E05260ED050 -:10A6600057FD04D0D7DF0AD0001C38F45095409530 -:10A67000309521953F4F4F4F5F4F0895F6F79095D6 -:10A680008095709561957F4F8F4F9F4F0895AA1BBE -:10A69000BB1B51E107C0AA1FBB1FA617B70710F0CD -:10A6A000A61BB70B881F991F5A95A9F780959095FF -:10A6B000BC01CD010895EE0FFF1F0590F491E02D30 -:10A6C0000994A1E0B0E0E6E6F3E576C55B0161152B -:10A6D000710521F0DB018C9311969C93482F592F23 -:10A6E0006A01F601E1906F018F018E2D90E080D21A -:10A6F0000097B9F7FE2DFD3229F4D601ED908D01BA -:10A7000021E007C0BE2DBB3219F4F601E1908F01A4 -:10A7100020E068010894C108D108C60163EA7FE01F -:10A7200043E050E029836CD22981009709F572E05B -:10A73000E72EF12CE00EF11EC70166EA7FE045E04E -:10A7400050E05ED22981009729F467E0E62EF12CD3 -:10A75000E00EF11EA114B10421F0D5011196FC9276 -:10A76000EE9220FF0AC130E020E090E88FEF0DC1AB -:10A77000C6016BEA7FE043E050E0298341D22981A2 -:10A78000009731F060E070E0CB01662477240AC0C6 -:10A79000A114B10409F4F5C00E5F1F4FF501118338 -:10A7A0000083EFC03E2D30533A30A0F52260E22FF7 -:10A7B000F0E0AF014870507022FF07C0411551050D -:10A7C00071F50894611C711C2AC04115510519F0DE -:10A7D0000894610871086B017C0152E0CC0CDD1C0F -:10A7E000EE1CFF1C5A95D1F76C0D7D1D8E1D9F1D13 -:10A7F000660F771F881F991F630F711D811D911DA3 -:10A800006839F9E97F07F9E98F07F9E19F0738F01F -:10A81000246005C03E3F39F423FD3FC02860D801C5 -:10A82000ED908D01BFCF353311F03531B1F5F80121 -:10A8300031913D3211F4206102C03B3241F4D80124 -:10A8400011963C911197319642E050E002C041E0F0 -:10A8500050E030533A3020F08F01041B150B1DC01F -:10A8600040E050E0BCE040385B075CF4DA01AA0F3E -:10A87000BB1FAA0FBB1F4A0F5B1F440F551F430F7F -:10A88000511D319130538F013A3060F324FF03C0E2 -:10A89000509541955F4F640E751EC22EDD2421FF39 -:10A8A00008C0A114B10429F001501040F501118332 -:10A8B000008383DB7B018C01F3E0CF22DD2433E0D6 -:10A8C000C316D10421F417FB109517F91095C80190 -:10A8D000B70120E030E0A901D0DA882309F448C0AC -:10A8E00077FE09C042ECC42E4FE0D42E70946194E0 -:10A8F0007108739404C03AEDC32E3FE0D32E26E0D6 -:10A90000822E912C90E2A92EB12C0EC0F601259139 -:10A91000359145915491C801B70184DDE62EF72E9B -:10A92000082F192F6A187B086A147B047CF7B594EA -:10A93000A7940894810891088114910429F08CEF60 -:10A940009FEFC80ED91EF0CFB701C801282F220FE4 -:10A95000292F221F2F3F31F020E030E0A9018DDAAE -:10A96000882331F482E290E09093F60A8093F50A0E -:10A970003E2D2F2D902F812F08C030E020E090E851 -:10A9800003C030E020E090EC8FE7F901AC016F2FBD -:10A99000722F852F942F2196EEE02AC42F923F929A -:10A9A0004F925F927F928F929F92AF92BF92CF927F -:10A9B000DF92EF92FF920F931F93CF93DF934B01A0 -:10A9C000EA016115710519F0FB01808391832097DD -:10A9D00039F09E01225030402332310508F0F1C099 -:10A9E000A82EB92EF50111915F017F01812F90E012 -:10A9F000FFD00097B9F71D3229F4F50111917F01BD -:10AA000001E006C01B3219F4F50111917F0100E04D -:10AA1000209719F0C031D105B9F4103381F4F70152 -:10AA20008081883711F0883551F4F701118182E077 -:10AA300090E0E80EF91E0260C0E1D0E005C020976A -:10AA400019F41033C1F422C0C830D105F9F0C9306F -:10AA5000D10524F4C230D10509F507C0CA30D105AB -:10AA600051F0C031D105D1F426C0A12CB12CC12C9C -:10AA7000F0E4DF2E25C0CAE0D0E0ECECAE2EECEC2A -:10AA8000BE2EECECCE2EECE0DE2E1AC0C8E0D0E0FC -:10AA9000A12CB12CC12C70E1D72E12C09E014427ED -:10AAA00037FD4095542F60E070E080E090E8B2DD23 -:10AAB00059016A0105C0A12CB12CC12C68E0D62E29 -:10AAC00040E060E070E0CB011E01442437FC40947C -:10AAD000542C50ED752E710EE72DEA3070F0212FB9 -:10AAE00021542A3118F439EC732E06C0212F215637 -:10AAF0002A3128F529EA722E710E272D30E02C1705 -:10AB00003D07ECF447FD17C0A616B706C806D906E0 -:10AB100078F0A20191014CDD670D711D811D911D21 -:10AB20006130F0E07F07F0E08F07F0E89F0710F05A -:10AB30004FEF01C041E0F70111917F01CACF8114AD -:10AB4000910491F0442339F00894E108F108F401EC -:10AB5000F182E08209C001FF1BC097012250304002 -:10AB6000F4013183208314C047FF12C000FF05C0E9 -:10AB700060E070E080E090E804C06FEF7FEF8FEF5F -:10AB80009FE722E230E03093F60A2093F50A16C0E0 -:10AB900000FF08C090958095709561957F4F8F4F0D -:10ABA0009F4F0CC097FF0AC082E290E09093F60A94 -:10ABB0008093F50A6FEF7FEF8FEF9FE79B01AC016A -:10ABC00003C020E030E0A901B901CA01DF91CF91B3 -:10ABD0001F910F91FF90EF90DF90CF90BF90AF90BB -:10ABE0009F908F907F905F904F903F902F9008950F -:10ABF00091113BC2803219F089508550D0F70895E9 -:10AC0000FB01DC014150504088F08D9181341CF0F3 -:10AC10008B350CF4805E659161341CF06B350CF45F -:10AC2000605E861B611171F3990B0895881BFCCF40 -:10AC3000FC018191861721F08823D9F7992708957F -:10AC40003197CF010895FB0151915523A9F0BF0120 -:10AC5000DC014D9145174111E1F759F4CD01019007 -:10AC6000002049F04D9140154111C9F3FB014111FC -:10AC7000EFCF81E090E001970895AEE0B0E0E2E42C -:10AC8000F6E5A4C20D891E8986E08C831A830983A8 -:10AC90008FEF9FE79E838D839E01275E3F4FCE01FE -:10ACA00001966F89788DA90108D0EF81F885E00FB2 -:10ACB000F11F10822E96E4E0A5C2ACE0B0E0E2E61F -:10ACC000F6E576C26C011B018A01FC01178216822F -:10ACD000838181FFC4C12E010894411C511CF601DF -:10ACE0009381F10193FD859193FF81911F01882349 -:10ACF00009F4B1C1853239F493FD859193FF8191B7 -:10AD00001F01853221F490E0B601C8D1E8CFEE24CE -:10AD1000FF2420E02032B0F48B3269F08C3228F42A -:10AD2000803251F0833271F40BC08D3239F08033B0 -:10AD300049F421602CC02260246029C0286027C00B -:10AD4000206125C027FD2CC0382F30533A3098F4AD -:10AD500026FF08C08E2D880FE82EEE0CEE0CE80EB4 -:10AD6000E30E15C08F2D880FF82EFF0CFF0CF80E88 -:10AD7000F30E20620CC08E3221F426FD6CC12064DB -:10AD800006C08C3611F4206802C0883649F4F101FF -:10AD900093FD859193FF81911F01882309F0BACF1C -:10ADA000982F9554933018F09052933028F40C5FFC -:10ADB0001F4FFFE3F9830DC0833631F0833771F005 -:10ADC000833509F05CC021C0F801808189830E5F62 -:10ADD0001F4F420171E0A72EB12C15C062E0662E14 -:10ADE000712C600E711EF8018080918026FF03C0D7 -:10ADF0006E2D70E002C06FEF7FEFC4012C8743D14E -:10AE00005C0183012C852F7716C052E0652E712CD2 -:10AE1000600E711EF8018080918026FF03C06E2DA8 -:10AE200070E002C06FEF7FEFC4012C8721D15C017D -:10AE30002C852068830123FD1EC007C080E290E0BE -:10AE4000B6012C872BD1FA942C858F2D90E0A81673 -:10AE5000B906A0F310C0F40127FD859127FF819169 -:10AE60004F0190E0B6012C8719D12C85F110FA948E -:10AE70000894A108B108A114B10469F7E9C08436A7 -:10AE800011F0893641F527FF08C0F8016081718112 -:10AE9000828193810C5F1F4F09C0F801608171812D -:10AEA000882777FD8095982F0E5F1F4F4FE6B42EB1 -:10AEB000B22297FF09C090958095709561957F4F5C -:10AEC0008F4F9F4FF0E8BF2AA2012AE030E012D155 -:10AED000782E741844C0853731F43FEEB32EB22279 -:10AEE0002AE030E025C099EFB92EB2228F36C1F0AA -:10AEF000803720F4883509F0AEC00DC0803721F0CE -:10AF0000883709F0A8C002C020E1B22AB4FE0BC005 -:10AF100084E0B82A08C0B4FE09C0E6E0BE2A06C034 -:10AF200028E030E005C020E130E002C020E132E05E -:10AF3000B7FE08C0F80160817181828193810C5F46 -:10AF40001F4F07C0F8016081718180E090E00E5FC3 -:10AF50001F4FA201CFD0782E7418FFE7BF22B6FE94 -:10AF60000BC02EEFB2227E1438F4B4FE07C0B2FC40 -:10AF700005C08FEEB82202C0A72C01C0AE2C8B2DCD -:10AF800090E0B4FE0DC0FE01E70DF11D20812033DD -:10AF900019F4E9EEBE2209C0A394B2FE06C004C0B3 -:10AFA00086789070009709F0A3948B2C9924B3FCB9 -:10AFB00013C0B0FE0EC0AF1428F4E72CEF0CEA1853 -:10AFC000AF2C07C0E72C05C080E290E0B60166D048 -:10AFD000A394AF14C8F304C0AF1410F4FA1801C05E -:10AFE000FF2484FE0EC080E390E0B60157D082FEBD -:10AFF0001DC081FE03C088E590E010C088E790E0A6 -:10B000000DC0C40186789070009781F081FC02C069 -:10B0100080E201C08BE2B7FC8DE290E0B6013ED049 -:10B0200005C080E390E0B60139D0EA947E14C8F3FD -:10B030007A94F201E70DF11D808190E0B6012ED0E7 -:10B040007720B1F705C080E290E0B60127D0FA94EE -:10B05000FF20C9F744CEF6012681378102C02FEFC9 -:10B060003FEFC9012C96E2E1BFC0992788270895D8 -:10B07000FC010590615070400110D8F780959095C3 -:10B080008E0F9F1F0895FC016150704001900110C8 -:10B09000D8F7809590958E0F9F1F08950F931F935B -:10B0A000CF93DF938C01EB018B8181FF1BC082FF6B -:10B0B0000DC02E813F818C819D812817390764F452 -:10B0C000E881F9810193F983E88306C0E885F98571 -:10B0D000802F0995009731F48E819F8101969F837F -:10B0E0008E8302C00FEF1FEFC801DF91CF911F9138 -:10B0F0000F910895FA01AA27283051F1203181F1EA -:10B10000E8946F936E7F6E5F7F4F8F4F9F4FAF4F6F -:10B11000B1E03ED0B4E03CD0670F781F891F9A1F82 -:10B12000A11D680F791F8A1F911DA11D6A0F711D36 -:10B13000811D911DA11D20D009F468943F912AE042 -:10B14000269F11243019305D3193DEF6CF0108952A -:10B15000462F4770405D4193B3E00FD0C9F7F6CF5B -:10B16000462F4F70405D4A3318F0495D31FD405223 -:10B17000419302D0A9F7EACFB4E0A69597958795B9 -:10B1800077956795BA95C9F7009761057105089598 -:10B190009B01AC010A2E0694579547953795279544 -:10B1A000BA95C9F7620F731F841F951FA01D0895DC -:10B1B0002F923F924F925F926F927F928F929F92C7 -:10B1C000AF92BF92CF92DF92EF92FF920F931F93B5 -:10B1D000CF93DF93CDB7DEB7CA1BDB0B0FB6F89466 -:10B1E000DEBF0FBECDBF09942A88398848885F84A6 -:10B1F0006E847D848C849B84AA84B984C884DF8017 -:10B20000EE80FD800C811B81AA81B981CE0FD11DFA -:10B210000FB6F894DEBF0FBECDBFED010895F894D0 -:02B22000FFCF5E -:10B222005573696E672044656661756C7420736539 -:10B232007474696E67733A004D31313000482000F2 -:10B242004C20002569206D696E2C202569207365CC -:10B2520063004D31303420496E76616C696420653B -:10B262007874727564657220004D31303520496EF4 -:10B2720076616C6964206578747275646572200009 -:10B282004D31303920496E76616C6964206578747D -:10B29200727564657220003F006F6B0020703A0087 -:10B2A20020693A0020643A0020633A005400496E53 -:10B2B20076616C69642065787472756465720041A8 -:10B2C20063746976652045787472756465723A2094 -:10B2D200002E00537465707261746520746F20686B -:10B2E200696768203A2000504944204175746F74A0 -:10B2F200756E652073746172740000803B45008036 -:10B302003B4500007043000000006400640060EAF6 -:10B3120000000080BB44010101010101713DE841CF -:10B32200A97E443E756089440000803FFF3FFF3F95 -:10B332000158595A45000001001A0019000A00007C -:10B3420000FFFF1C001B000A000100FFFF17001690 -:10B35200000A000200FFFFFFFFFFFF04000E0018BB -:10B362000015000A0003000000010002000200288C -:10B3720023000028230000640000001027000000C2 -:10B3820000FA430000FA430000A0400000344200EB -:10B3920000A04214AE9F4200002045F6C8154403A7 -:06B3A20000480D3D000013 +:1014B0008111F6CFB6DE4AE050E0BC0181E894E04D +:1014C0000E943C24EEE5F1E007C09091C00095FF3A +:1014D000FCCF8093C600319684918111F6CF4AE00B +:1014E00050E060ED74E081E894E00E943C2480913B +:1014F000C00085FFFCCF8AE08093C60010922A04CA +:1015000010922B0410922C0410922D0480E094DD94 +:1015100025E1C22E2AE0D22E35E2E32E3AE0F32E68 +:1015200009EE19E0F60161917191819191916F013C +:10153000F70121913191419151917F0129833A83A2 +:101540004B835C830E94744C29813A814B815C817E +:101550000E94A94E0E94484CF801619371938193B7 +:1015600091938F01F5E2CF16FAE0DF06D9F60E94DB +:101570005E440E94FD2C0F900F900F900F90DF9112 +:10158000CF911F910F91FF90EF90DF90CF900C942F +:10159000773F809134049091350460E070E00196CB +:1015A0000C94FE4F80913404909135044AE050E051 +:1015B00060E070E001960C944A5140912E045091E5 +:1015C0002F0490E6949F9001959F300D1124682F71 +:1015D00070E0C90186559D4F0E947C52909335045E +:1015E0008093340421E0892B09F420E0822F0895B0 +:1015F0000E94782160933E0470933F0480934004DE +:1016000090934104EBEAF3E007C09091C00095FF8E +:10161000FCCF8093C600319684918111F6CF8091E2 +:10162000C00085FFFCCF8AE08093C600089581E862 +:1016300094E00E945B23E3EAF3E007C09091C000CE +:1016400095FFFCCF8093C600319684918111F6CF2F +:1016500040913A0450913B0460913C0470913D04E8 +:101660004F5F5F4F6F4F7F4F2AE030E081E894E09B +:101670000E9406248091C00085FFFCCF8AE0809301 +:10168000C600B6CF4F925F927F928F929F92AF9299 +:10169000BF92CF92DF92EF92FF920F931F93CF935F +:1016A000DF9340E6742E54E0452E512CE1E2F2E047 +:1016B00084906AE0B62EEEE1F2E0A490992493942F +:1016C0008091020590910305209104053091050554 +:1016D000821B930B8F779927892B09F0FEC111C2CA +:1016E0008D3051F08A3321F490913104992321F007 +:1016F0002F3531050CF4D4C12115310519F41092A0 +:101700003104FFC18091A8029091A902789EE00166 +:10171000799ED00D1124FE01E20FF31FE655FD4F17 +:101720001082209131042111B6C110923104FC01C4 +:10173000E65DFB4F10828E0106551D4F6EE470E092 +:10174000C8010E947C52009709F403C190933504AC +:1017500080933404801B910B8C0F9D1F4AE050E056 +:1017600060E070E085559D4F0E944A5160933604B9 +:10177000709337048093380490933904C0903A04EE +:10178000D0903B04E0903C04F0903D04970186012A +:101790000F5F1F4F2F4F3F4F60177107820793074F +:1017A000C1F12091A8023091A902729EC001739EDE +:1017B000900D11246FE771E086559D4F0E9487526E +:1017C000892B39F5E5E7F1E007C09091C00095FF5E +:1017D000FCCF8093C600319684918111F6CFECE75F +:1017E000F1E007C09091C00095FFFCCF8093C60048 +:1017F000319684918111F6CF2AE030E0B701A6013D +:1018000081E894E00E9406248091C00085FFFCCF0F +:101810008AC08091A8029091A902789E8001799E49 +:10182000100D1124E801C655DD4F6AE270E0CE01CB +:101830000E947C52009721F450C0F3262F5F02C013 +:1018400020E0F12CF801E20FF11DE655FD4F30814B +:101850003A3299F790933504809334048C1B9D0B96 +:10186000800F911F60E070E085559D4F0E94FE4FF4 +:101870000E94434C2F2D30E02617370709F458C03B +:10188000E5E7F1E007C09091C00095FFFCCF8093A1 +:10189000C600319684918111F6CFEEEAF1E007C0DF +:1018A0009091C00095FFFCCF8093C6003196849143 +:1018B0008111F6CF40913A0450913B0460913C0471 +:1018C00070913D042AE030E081E894E00E94062413 +:1018D0008091C00085FFFCCF26C0E5E7F1E007C09E +:1018E0009091C00095FFFCCF8093C6003196849103 +:1018F0008111F6CFECECF1E007C09091C00095FFAC +:10190000FCCF8093C600319684918111F6CF2AE0F6 +:1019100030E0B701A60181E894E00E94062480919E +:10192000C00085FFFCCF8AE08093C60080DE47C000 +:101930008091360490913704A0913804B091390415 +:1019400080933A0490933B04A0933C04B0933D04ED +:101950003BC06AE270E0C8010E947C52892BA1F171 +:10196000E5E7F1E007C09091C00095FFFCCF8093C0 +:10197000C600319684918111F6CFE5EFF1E007C002 +:101980009091C00095FFFCCF8093C6003196849162 +:101990008111F6CF40913A0450913B0460913C0490 +:1019A00070913D042AE030E081E894E00E94062432 +:1019B0008091C00085FFFCCF8AE08093C600109222 +:1019C0003304109232049DC08091A8029091A90224 +:1019D000789EE001799ED00D11248E0106551D4F91 +:1019E00067E470E0C8010E947C52009709F43EC091 +:1019F0009093350480933404801B910B8C0F9D1FB2 +:101A000060E070E085559D4F0E94FE4F0E94434C60 +:101A10006430710558F580918002811113C08A2DC0 +:101A2000EEE1F2E008C09091C00095FFFCCF8093FA +:101A3000C600319684918111F6CF8091C00085FF58 +:101A4000FCCF12C0882DE1E2F2E008C09091C00006 +:101A500095FFFCCF8093C600319684918111F6CF1B +:101A60008091C00085FFFCCFB092C6008091A80293 +:101A70009091A9020196B2010E948E4F9093A90203 +:101A80008093A8028091A6029091A702019690935C +:101A9000A7028093A602109233041092320410CE53 +:101AA0008B3311F49092310490913104911108CE4E +:101AB0004091A8025091A902749ED001759EB00D6C +:101AC0001124A20FB31FA655BD4F8C932F5F3F4F1C +:101AD0003093330420933204F3CD8091A602909189 +:101AE000A702049774F481E894E00E943F23809356 +:101AF000300420913204309133048A3009F0F0CD63 +:101B0000FBCDDF91CF911F910F91FF90EF90DF9070 +:101B1000CF90BF90AF909F908F907F905F904F90AD +:101B200008958F929F92AF92BF92CF92DF92EF92E1 +:101B3000FF920F931F93CF93DF9378E1A72E72E06C +:101B4000B72E0FE812E0C6E4D4E0E2EA8E2EE2E01F +:101B50009E2EF50181915F0130DD882311F119DDA1 +:101B60006B017C01F4018081811103C060915604F6 +:101B700001C061E070E080E090E00E94764CF801E6 +:101B800020813181428153810E94A94E9B01AC0189 +:101B9000C701B6010E94FB4A688379838A839B83CD +:101BA00009C0F80180819181A281B38188839983E2 +:101BB000AA83BB830C5F1F4F2496FFEF8F1A9F0AE7 +:101BC0008CE1A81682E0B80621F686E4F6DC8823CC +:101BD000D1F0DFDC6B017C016093680470936904D1 +:101BE00080936A0490936B0420E030E0A9010E9486 +:101BF000D74D181644F4C0921401D0921501E0920A +:101C00001601F0921701DF91CF911F910F91FF9074 +:101C1000EF90DF90CF90BF90AF909F908F900895FE +:101C200080DF89E4CADC882351F0B3DC60936C0464 +:101C300070936D0480936E0490936F0408C01092AB +:101C40006C0410926D0410926E0410926F048AE47A +:101C5000B4DC882351F09DDC6093700470937104B0 +:101C600080937204909373040895109270041092FC +:101C7000710410927204109273040895CF92DF924F +:101C8000EF92FF920F931F9320E030E0A901609143 +:101C900046047091470480914804909149040E9441 +:101CA000D44B87FF08C0109246041092470410924C +:101CB00048041092490420E030E0A90160914A04F0 +:101CC00070914B0480914C0490914D040E94D44B30 +:101CD00087FF08C010924A0410924B0410924C04E3 +:101CE00010924D0420E030E0A90160914E04709103 +:101CF0004F0480915004909151040E94D44B87FF6F +:101D000008C010924E0410924F041092500410928A +:101D1000510420E030E04DE453E4609146047091BA +:101D2000470480914804909149040E94D74D1816A9 +:101D300064F480E090E0ADE4B3E4809346049093D3 +:101D40004704A0934804B093490420E030E04DE4F8 +:101D500053E460914A0470914B0480914C0490913B +:101D60004D040E94D74D181664F480E090E0ADE475 +:101D7000B3E480934A0490934B04A0934C04B09333 +:101D80004D0420E030E040EF52E460914E04709149 +:101D90004F0480915004909151040E94D74D181621 +:101DA00064F480E090E0A0EFB2E480934E0490935E +:101DB0004F04A0935004B09351040E947821609383 +:101DC0003E0470933F0480934004909341046091DB +:101DD000020170910301882777FD8095982F0E945A +:101DE000764C2091140130911501409116015091CB +:101DF00017010E94A94E20E030E040E752E40E9423 +:101E0000DB4B20E030E048EC52E40E94DB4BF2E890 +:101E1000CF2EF2E0DF2E7B018C0122E534E04EE490 +:101E200054E06AE474E086E494E00E947C2D8091A2 +:101E3000460490914704A0914804B09149048093CE +:101E40008F0290939002A0939102B093920280919E +:101E50004A0490914B04A0914C04B0914D0480939E +:101E6000930290939402A0939502B093960280916E +:101E70004E0490914F04A0915004B091510480936E +:101E8000970290939802A0939902B0939A0280913E +:101E9000520490915304A0915404B091550480933E +:101EA0009B0290939C02A0939D02B0939E021F916F +:101EB0000F91FF90EF90DF90CF900895AF92BF9277 +:101EC000CF92DF92EF92FF920F931F93CF93DF9306 +:101ED000182F209170043091710440917204509138 +:101EE000730460916C0470916D0480916E04909104 +:101EF0006F040E94E44DEB01082FF92E609102015E +:101F000070910301882777FD8095982F0E94764C69 +:101F10002091140130911501409116015091170143 +:101F20000E94A94E20E030E040E752E40E94DB4BE3 +:101F300020E030E048EC52E40E94DB4B209182022A +:101F40002F931F93FF920F93DF93CF935B016C014D +:101F5000A2E0EA2E01E020E04CE654E066E474E002 +:101F60008FE892E00E9400258091460490914704FA +:101F7000A0914804B091490480938F0290939002FD +:101F8000A0939102B093920280914A0490914B04E5 +:101F9000A0914C04B0914D048093930290939402CD +:101FA000A0939502B093960280914E0490914F04B5 +:101FB000A0915004B091510480939702909398029D +:101FC000A0939902B0939A02809152049091530485 +:101FD000A0915404B091550480939B0290939C026D +:101FE000A0939D02B0939E020E94782160933E04CC +:101FF00070933F0480934004909341040F900F909E +:102000000F900F900F900F90DF91CF911F910F9134 +:10201000FF90EF90DF90CF90BF90AF900895F8942D +:102020000E94BB445A985A985A985A98E5E7F1E0AA +:1020300007C09091C00095FFFCCF8093C6003196F9 +:1020400084918111F6CFEEEAF3E007C09091C000D1 +:1020500095FFFCCF8093C600319684918111F6CF15 +:102060008091C00085FFFCCF8AE08093C600FFCF3F +:10207000CF92DF92EF92FF920F931F930E947821ED +:102080000091600410916104209162043091630416 +:10209000C0903E04D0903F04E0904004F090410492 +:1020A0006C197D098E099F0906171707280739073C +:1020B00028F4012B022B032B09F0B1DF80911901C9 +:1020C00090911A01A0911B01B0911C01892B8A2BC0 +:1020D0008B2B09F10E94782100913E0410913F045E +:1020E0002091400430914104601B710B820B930BD3 +:1020F0000091190110911A0120911B0130911C01CE +:10210000061717072807390730F4909108058091C2 +:102110000705981721F00E94312D1EBA05C05A9864 +:102120005A985A985A98F7CF1F910F91FF90EF90B5 +:10213000DF90CF9008952F923F924F925F926F92CF +:102140007F928F929F92AF92BF92CF92DF92EF9247 +:10215000FF920F931F93CF93DF93CDB7DEB7A69770 +:102160000FB6F894DEBF0FBECDBF87E426DA882312 +:1021700009F489C20EDA0E94434C64307105B1F152 +:1021800044F46230710511F144F577FF17C00C94E7 +:10219000501D6A35710509F422C234F46C317105A1 +:1021A00011F00C94501D60C06B35710509F41BC211 +:1021B0006C35710511F00C94501D1AC2809180028B +:1021C000811104C0AEDC5ADD0C9495208091800210 +:1021D000811103C025DD81E006C08091800281115C +:1021E00005C01EDD80E06ADE0C94952080E5E5D90F +:1021F000882331F0CED90E94484C6B017C0103C08A +:10220000C12CD12C760183E5D8D9882359F0C1D9C6 +:1022100020E030E04AE754E40E94A94E0E94484C76 +:102220006B017C010E94B63F0E9478214B015C014A +:102230008C0C9D1CAE1CBF1C0E94782160933E0438 +:1022400070933F04809340049093410404C00E9423 +:10225000E24181E00DDF0E947821681579058A0549 +:102260009B05A8F30C94501D8091140190911501C9 +:10227000A0911601B09117018093420490934304FA +:10228000A0934404B093450480910201909103010E +:102290009093A1028093A00284E690E090930301C2 +:1022A000809302010E94782160933E0470933F0462 +:1022B000809340049093410481E00E94763980919C +:1022C0008F0290919002A0919102B091920280931E +:1022D000460490934704A0934804B0934904809126 +:1022E000930290919402A0919502B09196028093EE +:1022F0004A0490934B04A0934C04B0934D048091F6 +:10230000970290919802A0919902B0919A028093BD +:102310004E0490934F04A0935004B09351048091C5 +:102320009B0290919C02A0919D02B0919E0280938D +:10233000520490935304A0935404B0935504109204 +:10234000140110921501109216011092170188E5E0 +:1023500034D9882311F090E008C089E52ED9811185 +:10236000FACF8AE52AD991E0982790931801911124 +:102370000C94531D88E521D9882309F48EC089E582 +:102380001CD981110C94531D88C0C0921401D092A5 +:102390001501E0921601F092170120E030E040E7CD +:1023A00052E4609114017091150180911601909191 +:1023B00017010E94DB4BE2E8CE2EE2E0DE2E7B012D +:1023C0008C0122E534E04EE454E06AE474E086E4F3 +:1023D00094E00E947C2D0E94B63F10928F021092D2 +:1023E0009002109291021092920210929302109217 +:1023F000940210929502109296022BE932E047E97E +:1024000052E063E972E08FE892E00E94FC3780912D +:102410008F0290919002A0919102B09192028093CC +:10242000460490934704A0934804B09349048091D4 +:10243000930290919402A0919502B091960280939C +:102440004A0490934B04A0934C04B0934D0420E0B5 +:1024500030E040E752E460911401709115018091E1 +:102460001601909117010E94DB4B7B018C0122E544 +:1024700034E04EE454E06AE474E086E494E00E94C0 +:102480007C2D1092140110921501109216011092D9 +:1024900017010E94B63F0E946F3980911801811187 +:1024A0000C94A31D88E589D881110C94A31D8091FB +:1024B000180181110C947B1E89E57FD881110C9441 +:1024C0007B1E8091180181110C94531F8AE575D8E9 +:1024D00081110C94531F88E570D88823C1F062D80D +:1024E000672B682B692B99F054D820918302309187 +:1024F000840240918502509186020E94FB4A6093BB +:102500008F0270939002809391029093920289E5DA +:1025100054D88823C1F046D8672B682B692B99F0D3 +:1025200038D82091870230918802409189025091D9 +:102530008A020E94FB4A60939302709394028093F4 +:102540009502909396028AE538D88823C1F02AD85C +:10255000672B682B692B99F01CD820918B02309146 +:102560008C0240918D0250918E020E94FB4A609332 +:102570009702709398028093990290939A022BE9A4 +:1025800032E047E952E063E972E08FE892E00E94AE +:10259000FC378091420490914304A0914404B0918F +:1025A00045048093140190931501A0931601B093F4 +:1025B00017018091A0029091A10290930301809352 +:1025C00002010E94782160933E0470933F0480933F +:1025D0004004909341040E946F390C94501D109256 +:1025E00056040C94501D81E0809356040C94501DA9 +:1025F00085E40E94DD0A811102C00E94B63F48E1D5 +:10260000C42E42E0D42E53E8E52E52E0F52E0FE81A +:1026100012E0B12CF60181916F010E94DD0A88233E +:1026200039F1F3E0BF120CC00E94C90AF8016083BF +:102630007183828393838BE992E00E94973818C05C +:102640000E94C90AF70120813181428153810E9491 +:10265000FB4AF80160837183828393832BE932E024 +:1026600047E952E063E972E08FE892E00E94FC37AC +:10267000B394F4E0EF0EF11C0C5F1F4F24E0B21294 +:10268000C9CF0C94501D8DE40E94DD0A882311F4FB +:102690000C94A51C0E94C90A0E94434C683771051E +:1026A00009F4D1C60CF053C06C35710509F44FC55F +:1026B00044F56A32710509F406C174F4623171059A +:1026C00009F4F4C46F31710509F4A4C061317105D6 +:1026D00011F00C94501D98C06335710509F4E2C4E3 +:1026E00034F46235710511F00C94501DD8C4643572 +:1026F000710509F4DBC46535710511F00C94501DAA +:1027000010C56B36710509F4C7C464F469367105E8 +:1027100009F48FC10CF099C46836710511F00C945E +:10272000501D11C16237710509F4B1C534F46D361D +:10273000710511F00C94501D4DC26337710509F4F9 +:1027400098C56737710511F00C94501D82C66C3D19 +:10275000710509F4CDC744F5693C710509F4D8C683 +:1027600074F46C38710509F450C16E3B710509F4BD +:10277000D0C36937710511F00C94501D66C66C3CCE +:10278000710509F41BC734F46B3C710511F00C940E +:10279000501DF8C66D3C710509F430C76E3C7105DB +:1027A00011F00C94501D88C76F3231E0730711F49B +:1027B0000C94781C74F46D3291E0790709F4B9C770 +:1027C00014F00C94741C6D3D710511F00C94501DA7 +:1027D000A1C7653FF1E07F0711F40C948A1C3CF41B +:1027E0006039714011F00C94501D0C94871C663FA9 +:1027F00081E0780711F40C948C1C673E734011F053 +:102800000C94501D0C94901C5A9A5A9A5A9A5A9A9F +:102810000C94501D0E9478216093570470935804C3 +:102820008093590490935A0400915B0410915C04C6 +:1028300020915D0430915E04601B710B820B930B41 +:1028400028EE33E040E050E00E94A14FCA01B901F8 +:102850002CE330E040E050E00E94A14F7F936F9363 +:102860003F932F938AE891E09F938F93CE01019637 +:102870009F938F930E94A152EBEBF0E084910FB6EF +:10288000F894DEBF0FBECDBFEBEBF0E008C0909137 +:10289000C00095FFFCCF8093C600319684918111D2 +:1028A000F6CFFE01319606C09091C00095FFFCCF97 +:1028B0008093C60081918111F7CF8091C00085FF80 +:1028C000FCCF0C944D1D83E50E94DD0A882311F492 +:1028D0000C94501D0E94C90A6B017C0180E50E9486 +:1028E000DD0A882311F40C94501DC701B6010E9423 +:1028F000434C7B0177FF02C00C94501D6F3F710564 +:1029000009F014F40C942B200C94501D819191919A +:102910008017910711F40C94501D22E0E039F20762 +:10292000A9F717FF02C00C94501D61E0802F0E9490 +:1029300092226E2D802F0E94AE22B701802F0E941E +:1029400009220C94501D8091820280935F0484E5DB +:102950000E94DD0A882379F10E94C90A0E94484C2E +:1029600060935F04662339F1EBEBF0E007C09091D0 +:10297000C00095FFFCCF8093C600319684918111F1 +:10298000F6CFE9E9F1E006C09091C00095FFFCCFD9 +:102990008093C60081918111F7CF40E050E06091B3 +:1029A0005F0481E894E00E9400248091C00085FFCC +:1029B000FCCF0C944D1D83E50E94DD0A882309F1AC +:1029C000B0905F040E94C90A6B017C010B2D10E0DE +:1029D0000E94434CDC01CB016B2D0E944640F80164 +:1029E000EE0FFF1FE255F54F91838083F801EE0F44 +:1029F000FF1FEE0FFF1FEC55F54FC082D182E28220 +:102A0000F3820E94BA440C94501D83E50E94DD0AB3 +:102A1000882311F40C94501D0E94C90A0E94434C53 +:102A2000CB010E94CA409093AD0A8093AC0A0C94EB +:102A3000501D8091820280935F0484E50E94DD0A2C +:102A4000882371F10E94C90A0E94484C60935F0478 +:102A5000662331F1EBEBF0E007C09091C00095FFE9 +:102A6000FCCF8093C600319684918111F6CFE0EBC4 +:102A7000F1E006C09091C00095FFFCCF8093C600A6 +:102A800081918111F7CF40E050E060915F0481E8CF +:102A900094E00E9400248091C00085FFFCCFFDC718 +:102AA000E9E9F2E007C09091C00095FFFCCF809368 +:102AB000C600319684918111F6CF60915F04E62FB4 +:102AC000F0E0EE0FFF1FE655F54F808191810E94E7 +:102AD0001641AB01BC0121E030E081E894E00E94A6 +:102AE000FF24EFE9F2E007C09091C00095FFFCCF12 +:102AF0008093C600319684918111F6CF60915F0476 +:102B0000E62FF0E0EE0FFF1FE255F54F8081918137 +:102B10000E941641AB01BC0121E030E081E894E065 +:102B20000E94FF24E2EAF2E007C09091C00095FF06 +:102B3000FCCF8093C600319684918111F6CF8091AD +:102B4000A80A9091A90A0E94C943AB01BC0121E0E7 +:102B500030E081E894E00E94FF24E6EAF2E007C05A +:102B60009091C00095FFFCCF8093C6003196849170 +:102B70008111F6CF8091AC0A9091AD0A0E94C943B1 +:102B8000AB01BC0121E030E081E894E00E94FF2429 +:102B9000E9EAF2E007C09091C00095FFFCCF809376 +:102BA000C600319684918111F6CF80915F0490E048 +:102BB0000E9440404AE050E0BC0181E894E00E945D +:102BC0003C248091C00085FFFCCF8AE08093C60042 +:102BD0000C9495208091820280935F0484E50E948A +:102BE000DD0A882371F10E94C90A0E94484C609353 +:102BF0005F04662331F1EBEBF0E007C09091C00079 +:102C000095FFFCCF8093C600319684918111F6CF59 +:102C1000E7ECF1E006C09091C00095FFFCCF8093F7 +:102C2000C60081918111F7CF40E050E060915F04D0 +:102C300081E894E00E9400248091C00085FFFCCFD1 +:102C40002CC783E50E94DD0A882309F1B0905F0458 +:102C50000E94C90A6B017C010B2D10E00E94434CBD +:102C6000DC01CB016B2D0E944640F801EE0FFF1FE7 +:102C7000E255F54F91838083F801EE0FFF1FEE0FB1 +:102C8000FF1FEC55F54FC082D182E282F3820E9491 +:102C9000BA440E9478214B015C0180915F0490E06E +:102CA000880F991FFC01E255F54F2081318138A32F +:102CB0002F8FFC01E655F54F808191819EA38DA356 +:102CC000CC24CA94DC2C7601EDEAF2E02490E0EB0F +:102CD000F2E03490E4EBF2E0049178EE472E73E0FA +:102CE000572E612C712C1AE00C944C20822DEDEAA9 +:102CF000F2E008C09091C00095FFFCCF8093C60021 +:102D0000319684918111F6CF60915F04E62FF0E057 +:102D1000EE0FFF1FE655F54F808191810E9416410D +:102D2000AB01BC0121E030E081E894E00E94FF2487 +:102D3000832DE0EBF2E008C09091C00095FFFCCF3E +:102D40008093C600319684918111F6CF60915F0423 +:102D50004AE050E070E081E894E00E943C24802F3B +:102D6000E4EBF2E008C09091C00095FFFCCF8093A7 +:102D7000C600319684918111F6CFF7FE03C0EEEDC7 +:102D8000F1E027C00E9478214B015C01C701B60128 +:102D9000605F784D8F4F9F4F681979098A099B09A9 +:102DA000A30192010E94A14F49015A012AE030E09B +:102DB000B501A40181E894E00E94F0238091C00055 +:102DC00085FFFCCF0DC09091C00095FFFCCF809394 +:102DD000C60081918111F7CF8091C00085FFFCCFA3 +:102DE0001093C6000E9478214B015C010E94E241D1 +:102DF00081E03ED99FEFC916D906E906F906C1F56B +:102E000060915F04EF8DF8A12DA13EA12E173F0721 +:102E100014F00C946820E62FF0E0EE0FFF1FE6554B +:102E2000F54F808191810E94164169A37AA38BA3FB +:102E30009CA360915F04E62FF0E0EE0FFF1FE255C8 +:102E4000F54F808191810E94164120E030E040E8FA +:102E50005FE30E94FA4A9B01AC0169A17AA18BA1B0 +:102E60009CA10E94D74D87FD02C00C9434203AC02B +:102E7000F7FC38C060915F04E62FF0E0EE0FFF1F13 +:102E8000E655F54F808191810E94164169A37AA38E +:102E90008BA39CA360915F04E62FF0E0EE0FFF1F71 +:102EA000E255F54F808191810E9416419B01AC0152 +:102EB00069A17AA18BA19CA10E94FA4A0E94434C6D +:102EC000AB01BC0177FF07C07095609550954195A7 +:102ED0005F4F6F4F7F4F443051056105710514F00E +:102EE0000C9434203FEFC316D306E306F30611F427 +:102EF0000C944C20F7FE02C00C9439200E947821DB +:102F00006C197D096031774210F40C944C200C94BC +:102F1000392083E50E94DD0A882359F00E94C90AFE +:102F20000E94434CCB010E94CA409093AD0A80930B +:102F3000AC0A0E9478216B017C01E8EBF2E0A490DE +:102F4000EBEBF2E0B490EFEBF2E014910AE06FC02B +:102F50000E9478216C197D098E099F09693E734092 +:102F60008105910508F45FC060918202A62FB0E050 +:102F7000AA0FBB1FA655B54F8D919C910E9416417B +:102F8000AB01BC018A2DE8EBF2E008C09091C000D3 +:102F900095FFFCCF8093C600319684918111F6CFC6 +:102FA00022E030E081E894E00E94FF248B2DEBEBDF +:102FB000F2E008C09091C00095FFFCCF8093C6005E +:102FC000319684918111F6CF609182024AE050E0FF +:102FD00070E081E894E00E943C24812FEFEBF2E066 +:102FE00008C09091C00095FFFCCF8093C600319639 +:102FF00084918111F6CF8091A80A9091A90A0E942C +:10300000C943AB01BC0121E030E081E894E00E94BB +:10301000FF248091C00085FFFCCF0093C6000E9472 +:1030200078216B017C010E94E24181E021D820914E +:10303000AC0A3091AD0A8091A80A9091A90A821732 +:1030400093070CF485CF0C94422083E50E94DD0A9F +:103050008823F1F00E94C90A20E030E0A9010E9413 +:10306000D44B87FD0FC00E94C90A20E030E04FE733 +:1030700053E40E94D74D18163CF00E94C90A0E94E2 +:10308000484C03C060E001C06FEF6093810208C547 +:103090008FEF8093810204C51092810201C51092C6 +:1030A000A502FEC481E08093A502FAC483E50E94D4 +:1030B000DD0A882399F00E94C90A20E030E04AE73F +:1030C00054E40E94A94E0E94484C609319017093E9 +:1030D0001A0180931B0190931C01E2C488E50E94B1 +:1030E000DD0A8111EDC789E50E94DD0A8111E8C77B +:1030F0008AE50E94DD0A8111E3C785E40E94DD0AAA +:103100008111DEC7D7C75A9889E50E94DD0A81116F +:103110005A988AE50E94DD0A882309F4C1C45A98A6 +:10312000BFC483E50E94DD0A0E94C90A20E030E0A6 +:103130004AE754E40E94A94E0E94484C6093600400 +:10314000709361048093620490936304A9C428E19E +:1031500032E03EA32DA3B5E22B2EBAE03B2E85E351 +:103160009AE098A38F8F19EE812E19E0912E10E02E +:10317000EDA1FEA18191FEA3EDA30E94DD0A8823AB +:1031800009F466C0133009F05CC00E94C90A6B01E3 +:103190007C0120E030E040EA51E40E94D44B87FFFC +:1031A0004AC0A7019601F1016081718182819381FA +:1031B0000E94DB4B762EA72EB82E092F762F272FB5 +:1031C0003A2D4B2D502F6091FD097091FE09809191 +:1031D000FF099091000A0E94A94E6093FD09709327 +:1031E000FE098093FF099093000A272D3A2D4B2D5D +:1031F000502FEF8DF8A160817181828193810E94AF +:10320000A94EEF8DF8A16083718382839383F401CB +:1032100060817181828193810E94744C272D3A2DA7 +:103220004B2D502F0E94A94E0E94484CF401608300 +:10323000718382839383F101C082D182E282F3821F +:1032400007C00E94C90AF10160837183828393835E +:103250001F5FF4E02F0E311C2F8D38A12C5F3F4FE4 +:1032600038A32F8F34E0830E911C143009F080CFE7 +:1032700017C4E3ECF2E007C09091C00095FFFCCFCB +:103280008093C600319684918111F6CF09C4EEE592 +:10329000F3E007C09091C00095FFFCCF8093C6007B +:1032A000319684918111F6CF40918F025091900216 +:1032B000609191027091920222E030E081E894E006 +:1032C0000E94FF24E1E6F3E007C09091C00095FF63 +:1032D000FCCF8093C600319684918111F6CF409146 +:1032E000930250919402609195027091960222E0AF +:1032F00030E081E894E00E94FF24E4E6F3E007C0B8 +:103300009091C00095FFFCCF8093C60031968491C8 +:103310008111F6CF409197025091980260919902E5 +:1033200070919A0222E030E081E894E00E94FF244C +:10333000E7E6F3E007C09091C00095FFFCCF8093D3 +:10334000C600319684918111F6CF40919B02509135 +:103350009C0260919D0270919E0222E030E081E823 +:1033600094E00E94FF24EAE6F3E007C09091C000D9 +:1033700095FFFCCF8093C600319684918111F6CFE2 +:103380000E940F400E94764C2091250A3091260A17 +:103390004091270A5091280A0E94DB4BAB01BC01E7 +:1033A00022E030E081E894E00E94FF24E4E7F3E0CB +:1033B00007C09091C00095FFFCCF8093C600319666 +:1033C00084918111F6CF81E00E940F400E94764CDB +:1033D0002091290A30912A0A40912B0A50912C0AF7 +:1033E0000E94DB4BAB01BC0122E030E081E894E0BD +:1033F0000E94FF24E7E7F3E007C09091C00095FF2B +:10340000FCCF8093C600319684918111F6CF82E083 +:103410000E940F400E94764C20912D0A30912E0A76 +:1034200040912F0A5091300A0E94DB4BAB01BC0146 +:1034300022E030E081E894E00E94FF248091C00007 +:1034400085FFFCCF2AC380E001C081E00E9476396D +:1034500027C3EAE7F3E007C09091C00095FFFCCFD7 +:103460008093C600319684918111F6CF189903C0DC +:10347000E4E8F1E009C0E7E8F1E006C09091C0009F +:1034800095FFFCCF8093C60081918111F7CFE1E8D1 +:10349000F3E007C09091C00095FFFCCF8093C60079 +:1034A000319684918111F6CF199903C0E4E8F1E0D7 +:1034B00009C0E7E8F1E006C09091C00095FFFCCF9D +:1034C0008093C60081918111F7CFE8E8F3E007C04F +:1034D0009091C00095FFFCCF8093C60031968491F7 +:1034E0008111F6CF1A9903C0E4E8F1E009C0E7E8DA +:1034F000F1E006C09091C00095FFFCCF8093C6001C +:1035000081918111F7CF8091C00085FFFCCFC5C2AA +:10351000A8E1EA2EA2E0FA2E00E010E0F701819186 +:103520007F010E94DD0A882339F10E94C90AE5E182 +:10353000CE2EEAE0DE2EC00ED11E0E94484CF601CF +:1035400060837183828393830E94C90AF9EECF2E30 +:10355000F9E0DF2EC00ED11EF801EB5DF54F2081A2 +:103560003181428153810E94A94E0E94484CF6014C +:1035700060837183828393830C5F1F4F0031110539 +:1035800069F68EC208E112E065E3E62E6AE0F62EE7 +:10359000F80181918F010E94DD0A882339F00E9491 +:1035A000C90AF7016083718382839383F4E0EF0E8D +:1035B000F11C22E00C31120759F772C283E50E9418 +:1035C000DD0A882351F00E94C90A60930D0A7093A6 +:1035D0000E0A80930F0A9093100A84E50E94DD0A78 +:1035E000882309F45DC20E94C90A6093090A709396 +:1035F0000A0A80930B0A90930C0A52C283E50E9438 +:10360000DD0A882351F00E94C90A6093110A709361 +:10361000120A8093130A9093140A84E50E94DD0A2B +:10362000882351F00E94C90A6093F9097093FA093E +:103630008093FB099093FC0982E40E94DD0A8823B1 +:1036400061F00E94C90A0E94484C6093450A709339 +:10365000460A8093470A9093480A88E50E94DD0A4B +:10366000882351F00E94C90A6093050A7093060AE4 +:103670008093070A9093080A8AE50E94DD0A88234E +:1036800051F00E94C90A6093010A7093020A809364 +:10369000030A9093040A85E40E94DD0A882309F452 +:1036A000FFC10E94C90A6093FD097093FE098093CF +:1036B000FF099093000AF4C108E112E053E8E52EF7 +:1036C00052E0F52EF80181918F010E94DD0A8823D6 +:1036D00039F00E94C90AF701608371838283938362 +:1036E000F4E0EF0EF11C22E00B31120759F7D8C1BC +:1036F00083E50E94DD0A882309F4D2C10E94C90A29 +:103700000E94434C709303016093020181E0809317 +:103710009F02C6C183E50E94DD0A882309F4C0C167 +:103720000E94C90A0E94434C7093010160930001FA +:10373000B7C180E50E94DD0A882351F00E94C90AC2 +:1037400060932E0170932F0180933001909331018B +:1037500089E40E94DD0A882381F00E94C90A25E9D4 +:103760003FEB46ED5DE30E94A94E60932A01709302 +:103770002B0180932C0190932D0184E40E94DD0A9B +:10378000882381F00E94C90A25E93FEB46ED5DE3FD +:103790000E94DB4B609326017093270180932801E0 +:1037A0009093290183E40E94DD0A882351F00E944E +:1037B000C90A60932201709323018093240190939E +:1037C00025010E942940E0EEF1E006C09091C00082 +:1037D00095FFFCCF8093C60081918111F7CFE3EE76 +:1037E000F1E006C09091C00095FFFCCF8093C60029 +:1037F00081918111F7CF40912E0150912F0160915D +:1038000030017091310122E030E081E894E00E94C3 +:10381000FF24E7EEF1E006C09091C00095FFFCCFD9 +:103820008093C60081918111F7CF25E93FEB46EDEA +:103830005DE360912A0170912B0180912C019091A0 +:103840002D010E94DB4BAB01BC0122E030E081E89E +:1038500094E00E94FF24EBEEF1E006C09091C000DE +:1038600095FFFCCF8093C60081918111F7CF25E9A8 +:103870003FEB46ED5DE36091260170912701809159 +:103880002801909129010E94A94EAB01BC0122E0C0 +:1038900030E081E894E00E94FF24EFEEF1E006C002 +:1038A0009091C00095FFFCCF8093C600819181115B +:1038B000F7CF25E93FEB46ED5DE360912201709182 +:1038C000230180912401909125010E94A94EAB0112 +:1038D000BC0122E030E081E894E00E94FF24809166 +:1038E000C00085FFFCCFD9C081E00E94B038D8C0AD +:1038F00083E50E94DD0A882319F00E94C90A04C0EA +:1039000060E070E086E193E40E94E744C9C00E9451 +:10391000B63FC6C080E001C081E00E941C08C0C064 +:10392000109280028091640490916504A0916604D5 +:10393000B091670480933A0490933B04A0933C04B5 +:10394000B0933D040E94170BABC084E50E94DD0AD2 +:10395000882309F461C00E94C90A0E94484C609300 +:103960005F04662389F1EBEBF0E007C09091C000A3 +:1039700095FFFCCF8093C600319684918111F6CFDC +:10398000E3EFF1E006C09091C00095FFFCCF80937B +:10399000C60081918111F7CF40E050E060915F0453 +:1039A00081E894E02DD7E5EFF1E006C09091C000EA +:1039B00095FFFCCF8093C60081918111F7CF809154 +:1039C000C00085FFFCCF69C010928202EBEBF0E0F3 +:1039D00007C09091C00095FFFCCF8093C600319640 +:1039E00084918111F6CFE6E0F2E006C09091C0002C +:1039F00095FFFCCF8093C60081918111F7CF609134 +:103A000082024AE050E070E081E894E035D780918E +:103A1000C00085FFFCCF41C0EBEBF0E007C0909108 +:103A2000C00095FFFCCF8093C60031968491811130 +:103A3000F6CFEFE8F3E007C09091C00095FFFCCF10 +:103A40008093C600319684918111F6CF80912E0427 +:103A500090912F0420E6289FF001299FF00D11245A +:103A6000E655FD4F06C09091C00095FFFCCF8093B6 +:103A7000C60081918111F7CFE1EAF3E007C0909190 +:103A8000C00095FFFCCF8093C600319684918111D0 +:103A9000F6CF8091C00085FFFCCF8AE08093C600FE +:103AA0000E94F80A42C310928F0210929002109264 +:103AB000910210929202109293021092940210922C +:103AC0009502109296022BE932E047E952E063E951 +:103AD00072E08FE892E00E94FC3780E090ECA9E968 +:103AE000B3EC8093460490934704A0934804B093AA +:103AF000490480934A0490934B04A0934C04B093E0 +:103B00004D0420910401309105014091060150912E +:103B1000070120931401309315014093160150932F +:103B20001701C0900801D0900901E0900A01F090BF +:103B30000B01C701B6010E94D44B87FF02C00C9451 +:103B4000C5110C94CD1110928F0210929002109218 +:103B50009102109292022BE932E047E952E063E9C8 +:103B600072E08FE892E00E94FC3780E090ECA9E9D7 +:103B7000B3EC8093460490934704A0934804B09319 +:103B800049046091040170910501809106019091B2 +:103B900007016093140170931501809316019093AF +:103BA000170120E030E040E752E40E94DB4B42E89E +:103BB000C42E42E0D42E7B018C0122E534E04EE499 +:103BC00054E06AE474E086E494E00E947C2D0E9454 +:103BD000B63F10928F0210929002109291021092B2 +:103BE00092022BE932E047E952E063E972E08FE8A4 +:103BF00092E00E94FC3780E090E0A0EAB0E480937D +:103C0000460490934704A0934804B093490420E0ED +:103C100030E040E752E46091140170911501809109 +:103C20001601909117010E94DB4B7B018C0122E56C +:103C300034E04EE454E06AE474E086E494E00E94E8 +:103C40007C2D0E94B63F80E090E0A0E2B1EC809332 +:103C5000460490934704A0934804B093490420E09D +:103C600030E040E05FE360910401709105018091D4 +:103C70000601909107010E94A94EFB01462F5F2F7C +:103C8000682F792F4093140150931501609316010A +:103C90007093170120E030E040E752E4BF010E943A +:103CA000DB4B7B018C0122E534E04EE454E06AE416 +:103CB00074E086E494E00E947C2D0E94B63F10924E +:103CC0008F02109290021092910210929202109222 +:103CD000460410924704109248041092490410922E +:103CE00014011092150110921601109217010E94F2 +:103CF0006F390C9457121092930210929402109202 +:103D00009502109296022BE932E047E952E063E90E +:103D100072E08FE892E00E94FC3780E090ECA9E925 +:103D2000B3EC80934A0490934B04A0934C04B0935B +:103D30004D04609108017091090180910A019091F0 +:103D40000B016093140170931501809316019093F9 +:103D5000170120E030E040E752E40E94DB4B32E8FC +:103D6000C32E32E0D32E7B018C0122E534E04EE4F9 +:103D700054E06AE474E086E494E00E947C2D0E94A2 +:103D8000B63F1092930210929402109295021092F4 +:103D900096022BE932E047E952E063E972E08FE8EE +:103DA00092E00E94FC3780E090E0A0EAB0E48093CB +:103DB0004A0490934B04A0934C04B0934D0420E02C +:103DC00030E040E752E46091140170911501809158 +:103DD0001601909117010E94DB4B7B018C0122E5BB +:103DE00034E04EE454E06AE474E086E494E00E9437 +:103DF0007C2D0E94B63F80E090E0A0E2B1EC809381 +:103E00004A0490934B04A0934C04B0934D0420E0DB +:103E100030E040E05FE3609108017091090180911A +:103E20000A0190910B010E94A94EFB01462F5F2FC2 +:103E3000682F792F40931401509315016093160158 +:103E40007093170120E030E040E752E4BF010E9488 +:103E5000DB4B7B018C0122E534E04EE454E06AE464 +:103E600074E086E494E00E947C2D0E94B63F10929C +:103E70009302109294021092950210929602109260 +:103E80004A0410924B0410924C0410924D0410926C +:103E900014011092150110921601109217010E9440 +:103EA0006F390C946112109297021092980210923E +:103EB000990210929A022BE932E047E952E063E955 +:103EC00072E08FE892E00E94FC3780E090E0A4E38B +:103ED000B3EC80934E0490934F04A0935004B0939E +:103EE000510460910C0170910D0180910E0190912F +:103EF0000F01609314017093150180931601909344 +:103F0000170120E030E040E752E40E94DB4B22E85A +:103F1000C22E22E0D22E7B018C0122E534E04EE459 +:103F200054E06AE474E086E494E00E947C2D0E94F0 +:103F3000B63F109297021092980210929902109236 +:103F40009A022BE932E047E952E063E972E08FE838 +:103F500092E00E94FC3780E090E0A0E8BFE380930D +:103F60004E0490934F04A0935004B093510420E06A +:103F700030E040E752E460911401709115018091A6 +:103F80001601909117010E94DB4B7B018C0122E509 +:103F900034E04EE454E06AE474E086E494E00E9485 +:103FA0007C2D0E94B63F80E090E0A0E0B0EC8093D2 +:103FB0004E0490934F04A0935004B093510420E01A +:103FC00030E040E05FE360910C0170910D01809161 +:103FD0000E0190910F010E94A94EFB01462F5F2F09 +:103FE000682F792F409314015093150160931601A7 +:103FF0007093170120E030E040E752E4BF010E94D7 +:10400000DB4B7B018C0122E534E04EE454E06AE4B2 +:1040100074E086E494E00E947C2D0E94B63F1092EA +:104020009702109298021092990210929A0210929E +:104030004E0410924F0410925004109251041092AA +:1040400014011092150110921601109217010E948E +:104050006F390C946B120E94C90A0E94434C8B0169 +:10406000ECE1F2E00C94861443D16B017C010C94DA +:1040700072173ED160935B0470935C0480935D047F +:1040800090935E0435D160933E0470933F04809317 +:1040900040049093410404CD2BD1681979098A0911 +:1040A0009B09693E73408105910510F00C947616CA +:1040B0000C94F6160E94B63F5A980E942340F0CC0A +:1040C0000E94B63F88E50E94DD0A81111CC81CC809 +:1040D000E62FF0E0EE0FFF1FE655F54F808191814E +:1040E0000E94164169A37AA38BA39CA360915F04ED +:1040F000E62FF0E0EE0FFF1FE255F54F8081918132 +:104100000E94164120E030E040E85FE30E94FB4A55 +:104110009B01AC0169A17AA18BA19CA10E94D44B07 +:1041200018160CF0A1CF0C947217A6960FB6F8943F +:10413000DEBF0FBECDBFDF91CF911F910F91FF90DA +:10414000EF90DF90CF90BF90AF909F908F907F9037 +:104150006F905F904F903F902F9008958091A602AE +:104160009091A702039714F40E94420B8091A6023B +:104170009091A702892BC1F00E949B108091A6020A +:104180009091A70201979093A7028093A602809135 +:104190002E0490912F04019664E070E00E948E4FEF +:1041A00090932F0480932E040E94E24181E00E94AC +:1041B00038100C94B3380E94BB4480918002811166 +:1041C00034C081E08093800280913A0490913B0456 +:1041D000A0913C04B0913D048093640490936504E5 +:1041E000A0936604B0936704E5E7F1E007C09091FF +:1041F000C00095FFFCCF8093C60031968491811159 +:10420000F6CFEFECF3E007C09091C00095FFFCCF34 +:104210008093C600319684918111F6CF8091C000C1 +:1042200085FFFCCF8AE08093C600089580918002CC +:104230000895E82FF0E0E95BFB4FE491E650E230AF +:1042400060F48091B1008C7F8093B1008091B100C7 +:1042500067707727862B8093B10008959FD00E94C6 +:104260002D097CDFFECF1F920F920FB60F92112403 +:104270002F933F938F939F93AF93BF938091780435 +:1042800090917904A0917A04B0917B0430918004DC +:10429000232F2A592D3720F02D570196A11DB11D2E +:1042A000209380048093780490937904A0937A04F7 +:1042B000B0937B0480917C0490917D04A0917E0456 +:1042C000B0917F040196A11DB11D80937C04909351 +:1042D0007D04A0937E04B0937F04BF91AF919F9122 +:1042E0008F913F912F910F900FBE0F901F901895B7 +:1042F0000F931F938FB7F89400917804109179046D +:1043000020917A0430917B048FBFB801C9011F91BD +:104310000F9108959FB7F89440917C0450917D04CB +:1043200060917E0470917F0486B5A89B06C08F3F84 +:1043300021F04F5F5F4F6F4F7F4F9FBF2227342F7A +:10434000452F562F280F311D411D511DA3E0B0E010 +:104350000C946F4FCF92DF92EF92FF92CF93DF9347 +:104360006B017C01D7DFEB010DC0D4DF6C1B7D0B33 +:10437000683E734038F081E0C81AD108E108F108BE +:10438000C851DC4FC114D104E104F10471F7DF918D +:10439000CF91FF90EF90DF90CF900895789484B5FF +:1043A000826084BD84B5816084BD85B5826085BD31 +:1043B00085B5816085BDEEE6F0E080818160808317 +:1043C000E1E8F0E0108280818260808380818160FA +:1043D0008083E0E8F0E0808181608083E1EBF0E0C1 +:1043E000808184608083E0EBF0E080818160808365 +:1043F000EAE7F0E08081846080838081826080834E +:104400008081816080838081806880831092C10078 +:1044100008951F93CF93DF93182FEB0161E082D0B3 +:10442000209711F460E004C0CF3FD10531F461E082 +:10443000812FDF91CF911F9191C0E12FF0E0E95BD7 +:10444000FB4FE491E330B9F028F4E13051F0E23071 +:10445000B1F50CC0E63019F1E73049F1E43079F5F7 +:1044600014C084B5806884BDC7BD2EC084B5806289 +:1044700084BDC8BD29C08091800080688093800081 +:10448000D0938900C09388001FC080918000806213 +:1044900080938000D0938B00C0938A0015C08091D8 +:1044A000B00080688093B000C093B3000DC08091CD +:1044B000B00080628093B000C093B40005C0C038E3 +:1044C000D1050CF0B4CFAECFDF91CF911F910895FD +:1044D000833069F028F48130A1F0823011F514C0E6 +:1044E0008630B1F08730C1F08430D9F404C08091B7 +:1044F00080008F7703C0809180008F7D8093800043 +:10450000089584B58F7702C084B58F7D84BD0895EA +:104510008091B0008F7703C08091B0008F7D809331 +:10452000B000089590E0FC01E959FB4F2491FC0193 +:10453000E957FB4FE491EE2381F0F0E0E455FB4FA7 +:10454000A491B0E09FB7F8948C91611103C02095BD +:10455000822301C0822B8C939FBF08950F931F93DA +:10456000CF93DF931F92CDB7DEB7A82FB0E0FD0148 +:10457000E95BFB4F8491FD01E959FB4F1491FD016B +:10458000E957FB4F04910023B1F0882319F06983A8 +:104590009FDF6981E02FF0E0E955FB4FA491B0E087 +:1045A0009FB7F8948C91611103C01095812301C0CD +:1045B000812B8C939FBF0F90DF91CF911F910F9113 +:1045C00008951F920F920FB60F9211242F933F93CD +:1045D0004F935F936F938F939F93EF93FF936091AC +:1045E000C6002091020530910305C90101968F771D +:1045F000992740910405509105058417950741F0CE +:10460000F901EE57FB4F60839093030580930205F9 +:10461000FF91EF919F918F916F915F914F913F919A +:104620002F910F900FBE0F901F9018959A01AB011C +:1046300082E08093C00060E47BE48CE490E00E9420 +:10464000C34F2150310941095109CA01B90122E082 +:1046500030E040E050E00E94C34F832F99278093C1 +:10466000C5002093C400E1ECF0E08081806180838C +:1046700080818860808380818068808308958091B4 +:104680000405909105052091020530910305281736 +:10469000390769F0FC01EE57FB4F208101968F77B7 +:1046A0009927909305058093040530E002C02FEF11 +:1046B0003FEFC901089580910405909105059093FD +:1046C00003058093020508956F927F928F929F92C7 +:1046D000AF92BF92CF92DF92EF92FF920F931F9310 +:1046E000CF93DF93CDB7DEB7A0970FB6F894DEBFB8 +:1046F0000FBECDBF8C014115510561057105C1F497 +:1047000040E050E060E3A0960FB6F894DEBF0FBE25 +:10471000CDBFDF91CF911F910F91FF90EF90DF9070 +:10472000CF90BF90AF909F908F907F906F90ABC0D5 +:1047300066246394712C6C0E7D1EC12CD12C7601E5 +:10474000822E912CA12CB12CCB01BA01A501940190 +:104750000E94A14FFA01D3016D933D01BFEFCB1A27 +:10476000DB0AEB0AFB0AA901BF01411551056105EE +:10477000710551F781E0C81AD108E108F10815C0A8 +:10478000E1E0F0E0EC0FFD1FEC0DFD1D60816A30F3 +:1047900010F4605D01C0695C40E050E0C80173D076 +:1047A000A1E0CA1AD108E108F108BFEFCB16DB0679 +:1047B000EB06FB0629F7A0960FB6F894DEBF0FBEF6 +:1047C000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1047D000CF90BF90AF909F908F907F906F900895F3 +:1047E0002115310539F48091C00085FFFCCF40933D +:1047F000C600089569CF9A01AB0160E070E0F0CF88 +:104800009A01462F50E060E070E0EACFCF92DF924D +:10481000EF92FF92CF93DF93EC016A017B012115A8 +:10482000310539F48091C00085FFFCCFC092C600ED +:104830001CC02A30310579F477FF0CC040E050E00D +:104840006DE221D0F094E094D094C094C11CD11CAE +:10485000E11CF11C2AE0B701A601CE01DF91CF9146 +:10486000FF90EF90DF90CF902FCFDF91CF91FF900F +:10487000EF90DF90CF9008959A01AB01662757FD26 +:104880006095762FC3CF9A01462F50E060E070E02C +:10489000BDCFCF93DF93EC0140E050E06DE0F3DF5C +:1048A00040E050E06AE0CE01DF91CF91ECCFCF93B2 +:1048B000DF93EC01A0DFCE01DF91CF91EACF8F92A1 +:1048C0009F92AF92BF92CF92DF92EF92FF920F939F +:1048D0001F93CF93DF938C014A015B01C22F20E02D +:1048E00030E0A901C501B4010E94D44B87FF09C083 +:1048F00040E050E06DE2C801C6DFB7FAB094B7F807 +:10490000B094D0E060E070E080E09FE307C020E07A +:1049100030E040E251E40E94DB4BDF5FDC13F7CF75 +:10492000262F372F482F592FC501B4010E94FB4A6B +:10493000D62EE72EF82ED92F0E94484C962EA72E61 +:10494000B82EC92E0E94744C9B01AC016D2D7E2D9A +:104950008F2D9D2F0E94FA4AD62FF72EE82ED92EA2 +:104960002AE030E0492D5A2D6B2D7C2DC80138DF0F +:10497000CC23B1F1E6E5F2E006C09091C00095FFCE +:10498000FCCF8093C60081918111F7CF29C020E030 +:1049900030E040E251E46D2F7F2D8E2D9D2D0E9441 +:1049A000A94E6B017C017D2D9F2D0E94434C5B0124 +:1049B0004AE050E0C80160DFB501882777FD8095A7 +:1049C000982F0E94764C9B01AC016C2D7D2D8E2D75 +:1049D0009F2D0E94FA4AD62FF72EE82ED92EC150CD +:1049E000C111D5CFDF91CF911F910F91FF90EF9023 +:1049F000DF90CF90BF90AF909F908F9008955FCF42 +:104A00002F923F924F925F926F927F928F929F92DE +:104A1000AF92BF92CF92DF92EF92FF920F931F93CC +:104A2000CF93DF93CDB7DEB7CA54D1090FB6F89450 +:104A3000DEBF0FBECDBF1C017E8B6D8B3A012BA359 +:104A40000EA3E8A6AEAABFAAC8AED9AE34E0239F93 +:104A500080011124400F511F5BAB4AABDA018D90EE +:104A60009D90AD90BC90FC01E00FF11F2081318141 +:104A700042815381C501B4010E94FB4A6AAF7BAFFA +:104A80008CAF9DAFEEA1B4E0EB9F700111249301B8 +:104A90002E0D3F1D3DAB2CABD9014D905D906D901F +:104AA0007C90F101EE0DFF1D208131814281538107 +:104AB000C301B2010E94FB4A6EAF7FAF21968FAF58 +:104AC000219722969FAF2297E8A5B4E0EB9FC00103 +:104AD0001124F101E80FF91F2081318142815381B6 +:104AE0002B8F3C8F4D8F5E8FED89FE89E80FF91F6C +:104AF00060817181828193810E94FA4A462F572FEB +:104B0000682F792F498B5A8B6B8B7C8BAD89BE8933 +:104B10001C968D919D910D90BC91A02D8AA79BA76D +:104B2000ACA7BDA7D1011C962D913D914D915C91F3 +:104B30001F972F8F38A349A35AA3B7FAB094B7F899 +:104B4000B09477FA709477F87094ED89FE89E00F4D +:104B5000F11F7AAD6BAD9CAD8DAD272F362F492F50 +:104B6000582F60817181828193810E94FA4A6F8BF4 +:104B7000788F898F9DA3ED89FE89EE0DFF1D7EAD97 +:104B80006FAD21969FAD219722968FAD2297272F4B +:104B9000362F492F582F60817181828193810E9425 +:104BA000FA4A162F072F382E292E7F89688D998D66 +:104BB0008DA1272F362F492F582FC501B4010E94F0 +:104BC000A94E6B017C01B801C101272F362F492F57 +:104BD000582FC301B2010E94A94E9B01AC01C7012D +:104BE000B6010E94FB4A6B017C01B801C101272F6D +:104BF000362F492F582FC501B4010E94A94E6EA728 +:104C00007FA788AB99AB7F89688D998D8DA1272F60 +:104C1000362F492F582FC301B2010E94A94E9B0184 +:104C2000AC016EA57FA588A999A90E94FA4AA7019F +:104C300096010E946E4B362E272E182F092F20E04A +:104C400030E0A901D101F8016B2F7A2F8F2F9E2F11 +:104C50000E94D44B87FF10C02BED3FE049EC50E49D +:104C6000D101F8016B2F7A2F8F2F9E2F0E94FB4AC4 +:104C7000362E272E182F092FA4968FADA4978823A0 +:104C800081F02BED3FE049EC50E4D101F8016B2FAE +:104C9000722D8F2F902F0E94FA4A362E272E182F12 +:104CA000092FC988DA88EB88FC88E894F7F8A3967E +:104CB0002CAD3DAD4EAD5FADA397D101F8016B2F8B +:104CC000722D8F2F902F0E94A94EA70196010E944E +:104CD000E44D6B017C012FE632E143E85AE30E9488 +:104CE000D44B87FD79C2C701B6010E94B14C0E9426 +:104CF000484C7A8F698FFB01EF2B21F421E030E0E3 +:104D00003A8F298F498D5A8DBA0180E090E00E9438 +:104D1000744C6B017C019B01AC01D101F8016B2F3C +:104D2000722D8F2F902F0E94DB4B6F8B788F1C0181 +:104D3000A701960169897A898B899C890E94DB4B3E +:104D400024966FAF249725967FAF259726968FAF31 +:104D5000269727969FAF27972F8D38A149A15AA153 +:104D60006AA57BA58CA59DA50E94FA4AA70196017C +:104D70000E94DB4B28966FAF289729967FAF299723 +:104D80002A968FAF2A972B969FAF2B9720E030E083 +:104D900040E05FE3BF89A88D6B2F7A2F822D932D82 +:104DA0000E94A94EBF89A88D2B2F3A2F422D532D3B +:104DB0000E94A94E9B01AC0160E070E080E89FE397 +:104DC0000E94FA4A6DA37AA78EA723969FAF2397D6 +:104DD000CE010196FC01A8A554E0A59FE00DF11DB0 +:104DE00011242B8D3C8D4D8D5E8D2083318342832C +:104DF00053832F8D38A149A15AA12D873E874F8714 +:104E0000588B198A41E050E05C8F4B8F81E090E035 +:104E10008C0F9D1FBBA1A4E0BA9F800D911D112492 +:104E200099A788A721E030E02C0F3D1F5EA144E048 +:104E3000549F200D311D11243FA32EA3FCA3EBA3EF +:104E4000ABC1898989310CF050C07F89688D272FCB +:104E5000362F422D532DC501B4010E94A94E6B017E +:104E60007C017DA16AA59EA523968FAD2397272F50 +:104E7000362F492F582FC301B2010E94A94E9B0122 +:104E8000AC01C701B6010E94FB4A7B018C017DA1E8 +:104E90006AA59EA523968FAD2397272F362F492FDE +:104EA000582FC501B4010E94A94E5B016C017F8996 +:104EB000688D272F362F422D532DC301B2010E943A +:104EC000A94E9B01AC016A2D7B2D8C2D9D2D0E943E +:104ED000FA4A862E972EA82EB92E99899F5F998B14 +:104EE0004E2C5F2C602E712E72C0AB8DBC8DBD011F +:104EF00080E090E00E94744CBF89A88D2B2F3A2F40 +:104F0000422D532D0E94A94E7B018C017F2D802FB5 +:104F1000912F0E94D84B2B013C016E2D7F2D802FAD +:104F2000912F0E940C4F698B7A8B8B8B9C8BEAA9FB +:104F3000FBA980819181A281B3819C01AD01505870 +:104F40002F8F38A349A35AA3ACA9BDA9CD90DD905A +:104F5000ED90FC90A30192016F8D78A189A19AA197 +:104F60000E94A94E4B015C0129893A894B895C89D1 +:104F7000C701B6010E94A94E9B01AC01C501B40155 +:104F80000E94FB4A862E972EA82EB92E29893A898F +:104F90004B895C896F8D78A189A19AA10E94A94E45 +:104FA000698B7A8B8B8B9C8BA3019201C701B60115 +:104FB0000E94A94E9B01AC0169897A898B899C89E1 +:104FC0000E94FA4A462E572E682E792E198AA5017C +:104FD0009401BAADABADFCADEDAD6B2F7A2F8F2F39 +:104FE0009E2F0E94FB4AE8A5F9A560837183828306 +:104FF0009383A3019201BEADAFAD2196FFAD219782 +:105000002296EFAD22976B2F7A2F8F2F9E2F0E9423 +:10501000FB4AAEA1BFA16D937D938D939C93139793 +:1050200024967FAD249725966FAD259726969FAD44 +:10503000269727968FAD2797272F362F492F582F42 +:10504000EBA1FCA160817181828193810E94FB4A66 +:10505000ABA1BCA16D937D938D939C9313972896E0 +:105060007FAD289729966FAD29972A969FAD2A97ED +:105070002B968FAD2B97272F362F492F582F6D85C5 +:105080007E858F8598890E94FB4A6D877E878F87F2 +:10509000988B20E030E0A90169817A818B819C8125 +:1050A0000E94D44B87FF04C019821A821B821C8283 +:1050B00020E030E0A9016D817E818F8198850E947A +:1050C000D44B87FF04C01D821E821F82188620E0F9 +:1050D00030E0A90169857A858B859C850E94D44B37 +:1050E00087FF04C019861A861B861C8620E030E0E4 +:1050F0004DE453E469817A818B819C810E94D74D74 +:10510000181644F480E090E0ADE4B3E489839A8318 +:10511000AB83BC8320E030E04DE453E46D817E81BD +:105120008F8198850E94D74D181644F480E090E056 +:10513000ADE4B3E48D839E83AF83B88720E030E095 +:1051400040EF52E469857A858B859C850E94D74D16 +:10515000181644F480E090E0A0EFB2E489879A87C3 +:10516000AB87BC8794E6C92ED12CCC0EDD1EEEA8F1 +:10517000FFA808AD19AD9E01235F3F4FAE01475F09 +:105180005F4FBE016B5F7F4FCE010196B5D4EB8DB3 +:10519000FC8D3196FC8FEB8F2B8D3C8D498D5A8D7C +:1051A0002417350708F44DCE2D893E89245F3F4FE3 +:1051B0004D895E89485F5F4F6D897E896C5F7F4F47 +:1051C00084E6C82ED12CCC0EDD1EEEA8FFA808ADBB +:1051D00019AD8D899E8990D4C65BDF4F0FB6F894C8 +:1051E000DEBF0FBECDBFDF91CF911F910F91FF901A +:1051F000EF90DF90CF90BF90AF909F908F907F9077 +:105200006F905F904F903F902F9008958F5F803107 +:1052100009F480E008952F923F924F925F926F922F +:105220007F928F929F92AF92BF92CF92DF92EF9236 +:10523000FF920F931F93CF93DF93CDB7DEB768979D +:105240000FB6F894DEBF0FBECDBF1C014A015B0153 +:1052500068017901DC01D8966D917D918D919C91C9 +:10526000DB970E94744C69837A838B839C83A501AE +:1052700094010E94A94E0E94C14B0E94484C6D832C +:105280007E838F839887A701960169817A818B81BC +:105290009C810E94A94E0E94C14B0E94484C698784 +:1052A0007A878B879C872D813E814F81588528374F +:1052B00031054105510540F488E790E0A0E0B0E0F9 +:1052C0008D839E83AF83B88729853A854B855C851E +:1052D000283731054105510540F488E790E0A0E00A +:1052E000B0E089879A87AB87BC87F101EC5BFF4F01 +:1052F0004080518062807380C301B2010E94764C6D +:105300006B017C01D101DC966D917D918D919C9119 +:10531000DF970E94744C6D877E878F87988B20E083 +:1053200030E0A901C701B6010E94D44B882339F1AE +:1053300029813A814B815C81CA01B9010E94A94E41 +:105340004B015C012D853E854F855889CA01B90105 +:105350000E94A94E9B01AC01C501B4010E94FA4A0A +:105360004B015C01A7019601C701B6010E94FB4AEF +:105370009B01AC01C501B4010E94DB4B04C060E09D +:1053800070E080E090E00E94C14B0E94434C4B01D2 +:105390005C0166277727CB0164197509860997098F +:1053A0000E94764C2B013C01F101E05CFF4F6081D3 +:1053B0007181828193810E94744C698B7A8B8B8B73 +:1053C0009C8B20E030E0A901C301B2010E94D44BC4 +:1053D000882379F129893A894B895C89CA01B90105 +:1053E0000E94A94E6D8B7E8B8F8B988F29813A817D +:1053F0004B815C81CA01B9010E94A94E9B01AC019D +:105400006D897E898F89988D0E94FA4A69837A8393 +:105410008B839C83A3019201C301B2010E94FB4ACA +:105420009B01AC0169817A818B819C810E94DB4B5D +:1054300004C060E070E080E090E00E94B14CD101D7 +:1054400050962D913D914D915C91539729833A83CC +:105450004B835C8329013A01481859086A087B0884 +:105460000E94434C461A570A680A790A77FE6CC0B4 +:1054700020E030E0A901C701B6010E94D44B882387 +:1054800009F445C0A7019601C701B6010E94FB4A75 +:105490002B013C0169817A818B819C810E94744C33 +:1054A0009B01AC01C301B2010E94A94E2B013C013A +:1054B0002D853E854F855889CA01B9010E94A94EA4 +:1054C0009B01AC01C301B2010E94FA4A2B013C01CD +:1054D00029893A894B895C89CA01B9010E94A94E80 +:1054E0009B01AC01C301B2010E94FB4A4B015C016C +:1054F00020E030E040E850E4C701B6010E94A94E28 +:105500009B01AC01C501B4010E94DB4B04C060E00B +:1055100070E080E090E00E94C14B0E94434C4B0140 +:105520005C01B7FE03C0812C912C540129813A8182 +:105530004B815C8182169306A406B50610F04901E2 +:105540005A01412C512C32018FB7F894F101E45BE0 +:10555000FF4F9081911125C0D10154968D929D925B +:10556000AD92BC925797480C591C6A1C7B1CF101E8 +:10557000408E518E628E738E2D813E814F81588573 +:10558000DC962D933D934D935C93DF97A05CBF4FCA +:1055900029853A854B855C852D933D934D935C938E +:1055A00013978FBF68960FB6F894DEBF0FBECDBFBE +:1055B000DF91CF911F910F91FF90EF90DF90CF90EF +:1055C000BF90AF909F908F907F906F905F904F9023 +:1055D0003F902F900895AF92BF92CF92DF92EF92BB +:1055E000FF920F931F93CF93DF935B017A016115B5 +:1055F000710509F475C04115510509F471C0FB012D +:1056000002A513A5D4A5C5A5CE01202F312F492F62 +:10561000582F66A177A180A591A50E94D44B88231D +:1056200009F45EC0F50187A981114BC0F701C6A03E +:10563000D7A0E0A4F1A4A7019601DE01602F712F8D +:105640008B2F9A2F0E94D74D1816DCF5A7019601D3 +:10565000C701B6010E94A94E6B017C01F50182A928 +:1056600093A9A4A9B5A9BC01CD0190589B01AC0197 +:105670000E94FB4AF50126A537A540A951A90E9421 +:10568000A94E9B01AC01C701B6010E94FA4A0E94D3 +:10569000164F6B017C01762F272F3D2D4E2D5F2D50 +:1056A000FE01602F712F8F2F9E2F0E94D44B87FFFA +:1056B00003C06801ED2EFC2E5C2D4D2D3E2D2F2DAF +:1056C00003C0502F412F9E01852F942FA32FB22F5F +:1056D000F50186A397A3A0A7B1A781E0F50186AB4A +:1056E000DF91CF911F910F91FF90EF90DF90CF90BE +:1056F000BF90AF900895CF92DF92FF920F931F93C8 +:10570000CF93DF931F92CDB7DEB7809108058091CC +:1057100008052091070590E0821B91098F70992759 +:1057200004970CF12091080523502F7040E050E0C1 +:1057300000E010E08DE4F82E12C0211101C020E13C +:105740002150F29E6001112489E095E0C80ED91E17 +:10575000B801C60129833FDFA80186012981809114 +:1057600007052813EACF0F90DF91CF911F910F917A +:10577000FF90DF90CF9008952F923F924F925F92CB +:105780006F927F928F929F92AF92BF92CF92DF9251 +:10579000EF92FF920F931F93CF93DF93EC011B01C6 +:1057A000009709F464C08FA9811161C08EA09FA0E9 +:1057B000A8A4B9A4FB01C6A0D7A0E0A4F1A42C2DF5 +:1057C0003D2D4E2D5F2DC501B4010E94D44B87FFA6 +:1057D0004EC0A5019401C501B4010E94A94E2B0140 +:1057E0003C018AA89BA8ACA8BDA8C501B4019058EB +:1057F0009B01AC010E94FB4A2EA53FA548A959A9CF +:105800000E94A94E9B01AC01C301B2010E94FA4A59 +:105810000E94164F8B01D82FC92F762FCE01272F2C +:10582000312F492F582F6C2D7D2D8E2D9F2D0E94AD +:10583000D44B87FF03C08601DE2DCF2DCE01202F54 +:10584000312F492F5C2F6C2D7D2D8E2D9F2D0E9489 +:10585000D44B882361F09E01802F912FA32FBC2F62 +:10586000F10186A397A3A0A7B1A781E086ABDF9142 +:10587000CF911F910F91FF90EF90DF90CF90BF904D +:10588000AF909F908F907F906F905F904F903F90E0 +:105890002F900895EF92FF920F931F93CF93DF9372 +:1058A000F0900705C0E0D0E080E090E02DE4E22E2B +:1058B0000DC0EF9C80011124075F1A4FA801BE01A3 +:1058C0005BDF8F2DA3DCF82ECE01E80120910805C7 +:1058D000F212EFCF40E050E0BE01DF91CF911F9177 +:1058E0000F91FF90EF9048CF4F925F926F927F920F +:1058F0008F929F92AF92BF92CF92DF92EF92FF92E0 +:105900000F931F93CF93DF9350900705C0E0D0E033 +:105910003DE4432E34C0429E3001439E700C11245E +:1059200089E095E0680E791E209729F18EA98111F2 +:1059300004C0F30186A98823F1F0CAA0DBA0ECA083 +:10594000FDA0A7019601F30166A177A180A591A50D +:105950000E94DB4B4B015C01A70196016EA17FA168 +:1059600088A599A50E94DB4BAB01BC019501840180 +:10597000CE0151DC1EAA852D49DC582EE301252DD0 +:10598000332727FD30958091080590E028173907C7 +:1059900009F0C1CF2097E9F0CAA0DBA0ECA0FDA0E0 +:1059A000A70196016DEC7CEC8CE49DE30E94DB4B3F +:1059B0004B015C01A70196016EA17FA188A599A565 +:1059C0000E94DB4BAB01BC0195018401CE0123DCBD +:1059D0001EAADF91CF911F910F91FF90EF90DF9062 +:1059E000CF90BF90AF909F908F907F906F905F907F +:1059F0004F90089580DE4EDF77CF10920805109209 +:105A0000070580E1E9EDF9E0DF011D928A95E9F7EC +:105A10001092490A10924A0A10924B0A10924C0AAC +:105A200010924D0A10924E0A10924F0A1092500A8C +:105A30001092510A1092520A1092530A1092540A6C +:105A40001092550A1092560A1092570A1092580A4C +:105A50001092590A10925A0A10925B0A10925C0A2C +:105A60000895CF939091070580910805981709F143 +:105A7000209107058DE4289FF0011124EF5AFA4F79 +:105A8000C08130E04DE410C0429FF0011124EF5A74 +:105A9000FA4F80819181A281B381892B8A2B8B2B34 +:105AA00009F03F5F2F5F2F70809108052813ECCF1E +:105AB0000AC060918102662321F070E08EE00E94AE +:105AC0000922C0E030E080918102811107C03111CC +:105AD00005C060E070E08EE00E94092280918102A2 +:105AE000882341F0CC2331F06C2F70E08EE0CF9111 +:105AF0000C940922CF9108952F923F924F925F927A +:105B00006F927F928F929F92AF92BF92CF92DF92CD +:105B1000EF92FF920F931F93CF93DF93CDB7DEB732 +:105B2000CD56D1090FB6F894DEBF0FBECDBF2C0104 +:105B30003B014A015901EFA6FBAA0CAB19AFDEAE3F +:105B4000CDAE8091080562DBAA968FAFAA97082F89 +:105B5000112707FD109505C00E94E24181E00E94D7 +:105B600038108091070590E080179107A9F32091E4 +:105B7000250A3091260A4091270A5091280AD2011D +:105B80006D917D918D919C910E94A94E0E94794EBC +:105B900060966FAF609761967FAF619762968FAFA7 +:105BA000629763969FAF63972091290A30912A0AE2 +:105BB00040912B0A50912C0AF301608171818281FE +:105BC00093810E94A94E0E94794E64966FAF6497AC +:105BD00065967FAF659766968FAF669767969FAF1E +:105BE000679720912D0A30912E0A40912F0A5091EB +:105BF000300AD4016D917D918D919C910E94A94EA6 +:105C00000E94794E68966FAF689769967FAF6997E3 +:105C10006A968FAF6A976B969FAF6B972091310A08 +:105C20003091320A4091330A5091340AF501608173 +:105C30007181828193810E94A94E0E94794E2296A1 +:105C40006FAF229723967FAF239724968FAF249729 +:105C500025969FAF25978091E5099091E609A0913F +:105C6000E709B091E80925962CAD3DAD4EAD5FAD8D +:105C70002597281739074A075B07C1F1609182020F +:105C8000E62FF0E0EE0FFF1FE655F54F8081918182 +:105C90000E94164120E030E046E153E40E94D44BDC +:105CA00087FF24C080910605811120C00C94D03755 +:105CB0009091C00095FFFCCF8093C60031968491EF +:105CC0008111F6CFE7EBF4E007C09091C00095FF9B +:105CD000FCCF8093C600319684918111F6CF8091DC +:105CE000C00085FFFCCF8AE08093C6008091E50963 +:105CF0009091E609A091E709B091E80925962CADAD +:105D00003DAD4EAD5FAD2597281B390B4A0B5B0BA4 +:105D1000CA01B90157FF07C09095809570956195AC +:105D20007F4F8F4F9F4F0E94764C4B015C0120E0CC +:105D300030E04DEC53E46091310A7091320A809169 +:105D4000330A9091340A0E94A94E9B01AC01C5010F +:105D5000B4010E94D74D18167CF525968CAD9DADEB +:105D6000AEADBFAD25978093E5099093E609A0936A +:105D7000E709B093E809E1EBF4E007C09091C000B7 +:105D800095FFFCCF8093C600319684918111F6CFA8 +:105D9000E1EDF4E007C09091C00095FFFCCF809347 +:105DA000C600319684918111F6CF8091C00085FFA5 +:105DB000FCCF8AE08093C600809108059DE4899F0E +:105DC00010011124A9E0B5E02A0E3B1EF101E45BAD +:105DD000FF4F10822091D9093091DA094091DB09F7 +:105DE0005091DC092BA33CA34DA35EA363964CAC5E +:105DF0005DAC6EAC7FAC6397421A530A640A750AB5 +:105E000077FE08C07094609450944094411C511CDB +:105E1000611C711CD1014D925D926D927C92139721 +:105E20002091DD093091DE094091DF095091E009B0 +:105E30002FA338A749A75AA767968CAC9DACAEACE8 +:105E4000BFAC6797821A930AA40AB50AB7FE08C0C6 +:105E5000B094A09490948094811C911CA11CB11CBE +:105E6000D10114968D929D92AD92BC92179720917C +:105E7000E1093091E2094091E3095091E4092BA72F +:105E80003CA74DA75EA76B964CAD5DAD6EAD7FADEB +:105E90006B978BA59CA5ADA5BEA5481B590B6A0B9E +:105EA0007B0B77FF07C070956095509541955F4FCC +:105EB0006F4F7F4F142F052F26966FAF26977DAB20 +:105EC000D10118964C93189719965C9319971A96C6 +:105ED0006C931A971B967C93C090E509D090E609C5 +:105EE000E090E709F090E809A0910001B09101016C +:105EF00025962CAD3DAD4EAD5FAD25972C193D09D6 +:105F00004E095F0957FF07C0509540953095219580 +:105F10003F4F4F4F5F4F0E94794F24E630E040E003 +:105F200050E00E94C34FF101248735874687578789 +:105F3000812F902F2696AFAD2697BDA9881599057C +:105F4000AA05BB0514F4D501C40182179307A40761 +:105F5000B50714F4DA01C901930182014816590604 +:105F60006A067B0614F48C019D01D10150960D93B5 +:105F70001D932D933C935397063011052105310550 +:105F800010F40C94E237F101E85BFF4F809181023D +:105F900090E0A0E0B0E080839183A283B383639616 +:105FA0002CAD3DAD4EAD5FAD63978BA19CA1ADA176 +:105FB000BEA1281739074A075B0724F0D101909644 +:105FC0001C9203C081E0F10180A367962CAD3DAD2A +:105FD0004EAD5FAD67978FA198A5A9A5BAA5281763 +:105FE00039074A075B073CF4D10190968C91909752 +:105FF000826090968C936B962CAD3DAD4EAD5FADAF +:106000006B978BA59CA5ADA5BEA5281739074A0798 +:106010005B073CF4D10190968C91909784609096A8 +:106020008C9325962CAD3DAD4EAD5FAD25972C15CF +:106030003D054E055F053CF4D10190968C919097FB +:10604000886090968C93EDADFEAD8081D1019196E4 +:106050008C9345284628472809F05A9AF1018481F3 +:106060009581A681B781892B8A2B8B2B09F05A9AAF +:10607000F10180859185A285B385892B8A2B8B2B95 +:1060800009F05A9AF10184859585A685B785892BF3 +:106090008A2B8B2B09F05A9AD1011C962D913D9198 +:1060A0004D915C911F972F962CAF3DAF4EAF5FAFD8 +:1060B0002F97232B242B252BE9F44090F90950909E +:1060C000FA096090FB097090FC09242D352D462DAE +:1060D000572DBFA5ABA9FCA9E9AD6B2F7A2F8F2F48 +:1060E0009E2F0E94D44B87FD0EC04FA45BA86CA8C6 +:1060F00079AC09C04090110A5090120A6090130ABE +:106100007090140AE2CF63966CAD7DAD8EAD9FADFD +:1061100063972BA13CA14DA15EA1621B730B840B65 +:10612000950B0E94764C2091250A3091260A4091C9 +:10613000270A5091280A0E94DB4B6BA37FA78BABE9 +:106140009CAB362F272F982F8CA9432F522F692FC6 +:10615000782F498B5A8B6B8B7C8B67966CAD7DADA2 +:106160008EAD9FAD67972FA138A549A55AA5621B93 +:10617000730B840B950B0E94764C2091290A309169 +:106180002A0A40912B0A50912C0A0E94DB4B162FB1 +:10619000072F8FA399AF9801982F89AD432F522FC6 +:1061A000692F782F4D8B5E8B6F8B788F6B966CADD4 +:1061B0007DAD8EAD9FAD6B972BA53CA54DA55EA586 +:1061C000621B730B840B950B0E94764C20912D0A59 +:1061D00030912E0A40912F0A5091300A0E94DB4BD9 +:1061E0006BA77DAF26968FAF26979DAB362F272FB7 +:1061F000982F8DA9432F522F692F782F498F5A8FAF +:106200006B8F7C8FA0900001B090010125966CAD42 +:106210007DAD8EAD9FAD25976C197D098E099F09C7 +:106220000E94764C2091310A3091320A4091330A13 +:106230005091340A0E94DB4B6B017C01B501882729 +:1062400077FD8095982F0E94764C9B01AC01C70189 +:10625000B6010E94A94E20E030E048EC52E40E94D2 +:10626000DB4B462F572F682F792FDB01CA014D8F4B +:106270005E8F6F8F78A3F10180809180A280B380C0 +:10628000F6E08F169104A104B104DCF4F10144811D +:1062900055816681778146305105610571058CF421 +:1062A00040855185628573854630510561057105CC +:1062B00044F4AC01BD017F7746A757A760AB71AB33 +:1062C0003CC05BA14FA53BA92CA9652F742F832F40 +:1062D000922F0E94544F6B017C01A8013FA129AD70 +:1062E000652F702F832F922F0E94544F9B01AC017A +:1062F000C701B6010E94FB4A162F072FF82EE92E80 +:106300005BA54DAD26963FAD26972DA9652F742F21 +:10631000832F922F0E94544F9B01AC01D801F701AB +:106320006B2F7A2F8F2F9E2F0E94FB4A0E94164FB1 +:10633000F10166A777A780AB91ABD1019E962D9115 +:106340003D914D915C91D19729962CAF3DAF4EAFC9 +:106350005FAF299760E070E080E89FE30E94DB4B2D +:106360009B01AC01642D752D862D972D0E94A94EA1 +:106370006FA77BAB8CAB9DAF909108058091070513 +:10638000E92FF0E0E81BF109EF70FF27FAAFE9AF62 +:10639000762F6BA99CA98DAD272F362F492F582F0B +:1063A00060E074E284E799E40E94DB4B0E94794E3E +:1063B0006BA37FA38C0129AD3AAD223031050CF4DB +:1063C0004BC06901EE24D7FCE094FE2CC701B60156 +:1063D0000E94764C20E030E040E051E40E94D44B33 +:1063E00087FF3AC04BA05FA038018091450A909189 +:1063F000460AA091470AB091480A481659066A060B +:106400007B0650F5BC01CD01641975098609970911 +:10641000660F771F881F991FA70196010E94A14F41 +:10642000CA01B9010E94744C0E94794EAB01BC01B3 +:10643000CB01BA01640D751D861D971D0E94744C19 +:106440009B01AC0160E074E284E799E40E94DB4BBD +:106450006FA77BAB8CAB9DAF7FA56BA99CA98DADC6 +:10646000272F362F492F582F29966CAD7DAD8EAD35 +:106470009FAD29970E94A94EA6966FAFA697A796A3 +:106480007FAFA797A8968FAFA897A9969FAFA99718 +:10649000362F272F982FA9968FADA997432F522FCC +:1064A000692F782FD10192964D935D936D937C93D4 +:1064B000959750966D917D918D919C9153970E94E7 +:1064C000744C6B017C017FA56BA99CA98DAD272F16 +:1064D000362F492F582FC701B6010E94A94E0E949E +:1064E000C14B0E94484C6F966CAF7DAF8EAF9FAF93 +:1064F0006F97F10160AF71AF82AF93AF9E012F5ED6 +:106500003F4F3EAB2DABAE014F5F5F4F5CA74BA73C +:1065100085E39AE0A5969FAF8EAFA597DE01919691 +:10652000BAA3A9A32B965FAF4EAF2B971BA21FA2B6 +:1065300000E81FE3EDA9FEA961917191819191910C +:10654000FEABEDABBFA5ABA9FCA9EDAD2B2F3A2F50 +:106550004F2F5E2F0E94A94EAB01BC012B96AEAD12 +:10656000BFAD2B974D935D936D937D932B96BFAFEE +:10657000AEAF2B97DB01CA01BF77A3968CAF9DAF5F +:10658000AEAFBFAFA397A596AEADBFADA5974D90EB +:106590005D906D907D90A596BFAFAEAFA597A3011E +:1065A0009201A3966CAD7DAD8EAD9FADA3970E9479 +:1065B000D74D18160CF5A3962CAD3DAD4EAD5FAD85 +:1065C000A397C301B2010E94DB4B2B01782E692EE9 +:1065D000762FC301272F352D492F582FBBA1AFA1EF +:1065E0006B2F7A2F802F912F0E94D44B87FD04C0F0 +:1065F0004BA25FA2072D162DEDA9FEA929A13AA154 +:10660000E217F30709F096CF20E030E040E85FE3BF +:10661000BBA1AFA16B2F7A2F802F912F0E94D44B5B +:1066200087FF53C03E0131E1630E711C7BA16FA156 +:10663000272F362F402F512FABA5BCA56D917D91F3 +:106640008D919C910E94A94EEBA5FCA5619371933D +:1066500081939193FCA7EBA7E615F70539F77BA18A +:106660006FA1272F362F402F512FA696BFADA6978B +:10667000A796AFADA797A896FFADA897A996EFAD3F +:10668000A9976B2F7A2F8F2F9E2F0E94A94ED10191 +:1066900092966D937D938D939C9395976F966CAD29 +:1066A0007DAD8EAD9FAD6F970E94744CBBA1AFA125 +:1066B0002B2F3A2F402F512F0E94A94E0E94484C59 +:1066C000F10160AF71AF82AF93AF29962CAD3DADB4 +:1066D0004EAD5FAD2997C701B6010E94DB4B162F67 +:1066E000072F8FA39BA781149104A104B10489F5FE +:1066F000F10184819581A681B781892B8A2B8B2B0F +:1067000041F580859185A285B385892B8A2B8B2BBA +:1067100001F52091090A30910A0A40910B0A509123 +:106720000C0AD801FFA1EBA56B2F7A2F8F2F9E2F7C +:106730000E94A94E0E94C14B7101F4E4EF0EF11CBE +:106740000E94484CD7016D937D938D939C93139732 +:10675000FDC020910D0A30910E0A40910F0A509110 +:10676000100AD801FFA1EBA56B2F702F8F2F9E2F42 +:106770000E94A94E0E94C14B0E94484CF101EC5B63 +:10678000FF4FFCA3EBA360837183828393834090CC +:10679000E9095090EA096090EB097090EC090E94B9 +:1067A000744C6FA778AB89AB9AABC501B4010E945A +:1067B000764C9B01AC016FA578A989A99AA90E9482 +:1067C000A94EA70196010E94DB4B4B015C01C3015E +:1067D000B2010E94744C9B01AC01C501B4010E943E +:1067E000D74D181634F4EBA1FCA14082518262828D +:1067F00073824090ED095090EE096090EF0970901F +:10680000F009ABA1BCA16D917D918D919C910E94ED +:10681000744C4B015C01F101648175818681978123 +:106820000E94764C9B01AC01C501B4010E94A94EA7 +:10683000A70196010E94DB4B4B015C01C301B20131 +:106840000E94744C9B01AC01C501B4010E94D74D5C +:1068500018163CF4ABA1BCA14D925D926D927C9256 +:1068600013974090F5095090F6096090F7097090E1 +:10687000F809F101EC5BFF4FFCA3EBA36081718190 +:10688000828193810E94744C4B015C012F966CAD08 +:106890007DAD8EAD9FAD2F970E94764C9B01AC01D4 +:1068A000C501B4010E94A94EA70196010E94DB4BCD +:1068B0004B015C01C301B2010E94744C9B01AC010D +:1068C000C501B4010E94D74D18163CF4ABA1BCA180 +:1068D0004D925D926D927C9213974090F109509089 +:1068E000F2096090F3097090F409EBA1FCA16081BA +:1068F0007181828193810E94744C4B015C01D101B2 +:1069000018966D917D918D919C911B970E94764C6C +:106910009B01AC01C501B4010E94A94EA7019601DB +:106920000E94DB4B6B017C01C301B2010E94744CDD +:106930009B01AC01C701B6010E94D74D181634F473 +:10694000EBA1FCA14082518262827382F101EC5B77 +:10695000FF4F60817181828193810E94744C6B0131 +:106960007C01B8019FA18BA5272F302F492F582FCD +:10697000C701B6010E94DB4B462F572F682F792F96 +:10698000AE964CAF5DAF6EAF7FAFAE97D101D296F2 +:106990004D935D936D937C93D5972DEB37E346E054 +:1069A00051E4C701B6010E94A94E0E94434CF10177 +:1069B000648F758F868F978F4090050A5090060AD6 +:1069C0006090070A7090080A29853A854B855C8596 +:1069D0006F962CAF3DAF4EAF5FAF6F978090010ABF +:1069E0009090020AA090030AB090040A20E030E0E0 +:1069F00040E05FE3C501B4010E94A94E6BA37FA3F1 +:106A00008C016F966CAD7DAD8EAD9FAD6F979F770E +:106A1000BBA1AFA12B2F3A2F402F512F0E94D74D52 +:106A200018165CF020E030E040E05FE3C301B20103 +:106A30000E94A94E6BA37FA38C01D1019296BC91B9 +:106A4000BBA7F101F3A1FFA7D1019496BC91BBAB09 +:106A5000F101F5A1FCAB7BA56FA5272F362F4B2F9E +:106A60005F2FBBA1AFA16B2F7A2F802F912F0E9498 +:106A7000D44B87FD06C02BA52BA33FA53FA30BA995 +:106A80001CA98D859E85AF85B889A3968CAF9DAFD7 +:106A9000AEAFBFAFA397C090FD09D090FE09E090C4 +:106AA000FF09F090000A20E030E040E05FE3C7011A +:106AB000B6010E94A94E6DAF7DAB2A968FAF2A9783 +:106AC0002C969FAF2C97A3966CAD7DAD8EAD9FADF0 +:106AD000A3979F77BDADADA92A96FFAD2A972C96B7 +:106AE000EFAD2C972B2F3A2F4F2F5E2F0E94D74DB3 +:106AF000181604F57DAD6DA92A969FAD2A972C96A0 +:106B00008FAD2C97272F362F492F582FBBA1AFA120 +:106B10006B2F7A2F802F912F0E94D44B87FD0AC0B4 +:106B20009DAD9BA3ADA9AFA32A960FAD2A972C9636 +:106B30001FAD2C97E9ADFAAD32970CF434C127E1C3 +:106B400037EB41ED58E36091590A70915A0A8091F0 +:106B50005B0A90915C0A0E94D74D18160CF023C175 +:106B60002091490A30914A0A40914B0A50914C0AAF +:106B700029AF3AAF4BAF5CAF69817A818B819C8141 +:106B80000E94FA4A6DAB2A967FAF2A972C968FAF58 +:106B90002C97A4969FAFA49780914D0A90914E0A8E +:106BA000A0914F0AB091500A21968CAF9DAFAEAF25 +:106BB000BFAF21979C01AD016D817E818F8198854A +:106BC0000E94FA4AA6966FAFA697A7967FAFA7979F +:106BD000A8968FAFA897A9969FAFA9977DA92A9647 +:106BE0006FAD2A972C969FAD2C97A4968FADA49746 +:106BF000272F362F492F582FDB01FC016B2F7A2FBF +:106C00008F2F9E2F0E94A94E6DAB7EAB8FAB98AF9E +:106C1000A6967FADA697A7966FADA797A8969FADAE +:106C2000A897A9968FADA997272F362F492F582FB0 +:106C3000DB01FC016B2F7A2F8F2F9E2F0E94A94E14 +:106C40009B01AC016DA97EA98FA998AD0E94FB4A5A +:106C50000E94164F6DAB7EAB8FAB98AF69AD7AAD2E +:106C60008BAD9CAD9F7727E137EB41ED58E30E9458 +:106C7000D74D181684F021966CAD7DAD8EAD9FADCD +:106C800021979F7727E137EB41ED58E30E94D74DDD +:106C9000181634F00BC09BA59BA3AFA5AFA304C0EF +:106CA000BBA5BBA3EFA5EFA30BA91CA9A301920150 +:106CB0006DA97EA98FA998AD0E94D74D1816ACF486 +:106CC0002DA93EA94FA958ADC301B2010E94DB4BCB +:106CD0009B01AC01BBA1AFA16B2F7A2F802F912F0D +:106CE0000E94A94E6BA37FA38C012091510A309181 +:106CF000520A4091530A5091540A6F966CAD7DAD83 +:106D00008EAD9FAD6F970E94FA4A2B013C01E8942B +:106D100077F8A5019401C301B2010E94D74D18165E +:106D20009CF4A3019201C501B4010E94DB4B9B01BD +:106D3000AC01BBA1AFA16B2F7A2F802F912F0E94A6 +:106D4000A94E6BA37FA38C012091550A3091560A5E +:106D50004091570A5091580AA3966CAD7DAD8EAD07 +:106D60009FADA3970E94FA4A4B015C01E894B7F8E3 +:106D7000A7019601C501B4010E94D74D18169CF4D5 +:106D8000A5019401C701B6010E94DB4B9B01AC0138 +:106D9000BBA1AFA16B2F7A2F802F912F0E94A94EFC +:106DA0006BA37FA38C013BA12FA1432F522F602FF8 +:106DB000712FD1019A964D935D936D937C939D971E +:106DC000AE966CAD7DAD8EAD9FADAE9790589B01EC +:106DD000AC010E94FB4A29962CAD3DAD4EAD5FAD96 +:106DE00029970E94A94E9B01AC016BE077ED83E2ED +:106DF0009BE30E94FA4A0E94164F6B01F82EE92E7F +:106E0000762FC701272F3D2D492F582FBBA1AFA1AA +:106E10006B2F7A2F802F912F0E94D44B87FD04C0B7 +:106E2000CBA2DFA20F2D1E2D3BA12FA1432F522F4E +:106E3000602F712FF10146A357A360A771A7C70167 +:106E40002C2D3D2D492F5E2DBBA5AFA5FBA9ECA98F +:106E50006B2F7A2F8F2F9E2F0E94D44B18162CF059 +:106E600081E0D101D7968C9302C0F10117AA81E08D +:106E7000D101D6968C9380E1FE013196A9E4BAE067 +:106E800001900D928A95E1F73BA52FA59BA98CA9AE +:106E9000432F522F692F782F4093590A50935A0A43 +:106EA00060935B0A70935C0A232F352F492F582F6C +:106EB0006DEC7CEC8CE49DE30E94DB4B6B017C0170 +:106EC0007BA56FA59BA98CA9272F362F492F582F5B +:106ED000BBA1AFA16B2F7A2F802F912F0E94DB4B8C +:106EE000AB01BC0197018601C1010E940B29AA9642 +:106EF000BFADAA97B093080563962CAD3DAD4EADDE +:106F00005FAD63972093D9093093DA094093DB0989 +:106F10005093DC0967968CAD9DADAEADBFAD679764 +:106F20008093DD099093DE09A093DF09B093E00917 +:106F30006B962CAD3DAD4EAD5FAD6B972093E109E7 +:106F40003093E2094093E3095093E40925968CAD10 +:106F50009DADAEADBFAD25978093E5099093E60951 +:106F6000A093E709B093E8090E94FA2CC359DF4FB8 +:106F70000FB6F894DEBF0FBECDBFDF91CF911F914A +:106F80000F91FF90EF90DF90CF90BF90AF909F90C8 +:106F90008F907F906F905F904F903F902F90A9C1FE +:106FA00025962CAD3DAD4EAD5FAD25972093E509FF +:106FB0003093E6094093E7095093E809E1EBF4E0E8 +:106FC0000C945F2EC359DF4F0FB6F894DEBF0FBE8F +:106FD000CDBFDF91CF911F910F91FF90EF90DF9088 +:106FE000CF90BF90AF909F908F907F906F905F9069 +:106FF0004F903F902F900895EF92FF920F931F9321 +:10700000CF93DF937B018A01E9012091250A30911A +:10701000260A4091270A5091280AFC01608171815B +:10702000828193810E94A94E0E94794EE9EDF9E098 +:1070300060837183828393832091290A30912A0A85 +:1070400040912B0A50912C0AF70160817181828155 +:1070500093810E94A94E0E94794EEDEDF9E0608384 +:1070600071838283938320912D0A30912E0A40915F +:107070002F0A5091300AF8016081718182819381D9 +:107080000E94A94E0E94794EE1EEF9E0608371837F +:10709000828393832091310A3091320A4091330ADE +:1070A0005091340A688179818A819B810E94A94E1E +:1070B0000E94794EE5EEF9E06083718382839383C9 +:1070C0009F0141EE59E06DED79E089ED99E05AD7E5 +:1070D0001092590A10925A0A10925B0A10925C0A96 +:1070E0001092490A10924A0A10924B0A10924C0AC6 +:1070F00010924D0A10924E0A10924F0A1092500AA6 +:107100001092510A1092520A1092530A1092540A85 +:107110001092550A1092560A1092570A1092580A65 +:10712000DF91CF911F910F91FF90EF9008952091E3 +:10713000310A3091320A4091330A5091340AFC01ED +:1071400060817181828193810E94A94E0E94794E53 +:10715000E5EEF9E06083718382839383CF014EC7AC +:1071600080930605089580916F0A8111B5C08091C2 +:107170006E0A8111B1C080916D0A8111ADC0089570 +:107180009091C00095FFFCCF8093C600319684910A +:107190008111F6CFE5EFF4E007C09091C00095FFB4 +:1071A000FCCF8093C600319684918111F6CF8091F7 +:1071B0006F0A882349F1E4E0F5E007C09091C00030 +:1071C00095FFFCCF8093C600319684918111F6CF54 +:1071D0006091700A7091710A8091720A9091730A9D +:1071E0000E94764C2091250A3091260A4091270A68 +:1071F0005091280A0E94DB4BAB01BC0122E030E039 +:1072000081E894E00E94FF2480916E0A882349F16E +:10721000E8E0F5E007C09091C00095FFFCCF8093B7 +:10722000C600319684918111F6CF6091740A7091F5 +:10723000750A8091760A9091770A0E94764C209187 +:10724000290A30912A0A40912B0A50912C0A0E9457 +:10725000DB4BAB01BC0122E030E081E894E00E940E +:10726000FF2480916D0A882349F1ECE0F5E007C026 +:107270009091C00095FFFCCF8093C6003196849119 +:107280008111F6CF6091780A7091790A80917A0A1B +:1072900090917B0A0E94764C20912D0A30912E0A03 +:1072A00040912F0A5091300A0E94DB4BAB01BC0188 +:1072B00022E030E081E894E00E94FF248091C00049 +:1072C00085FFFCCF8AE08093C60010926F0A10926F +:1072D0006E0A10926D0A0895EFEEF4E058CF109206 +:1072E0006F0A10926E0A10926D0A08958093210120 +:1072F0000895EFE6F0E080818260808308951F9218 +:107300000F920FB60F9211240F931F932F933F9359 +:107310004F935F936F937F938F939F93AF93BF939D +:10732000EF93FF938091800A9091810A892B09F055 +:1073300056C19091080580910705981771F0E0916A +:1073400007058DE4E89FF0011124E75FFA4FDF01A4 +:10735000A45BBF4F81E08C9302C0E0E0F0E0F093CB +:10736000810AE093800A309709F433C1DF01A45BFE +:10737000BF4F81E08C931092820A1092830A109280 +:10738000840A1092850A94AD85AD9093860A809305 +:10739000870A692F782F613187E2780710F060E162 +:1073A00077E281E08093880A6832710510F468E220 +:1073B00070E068527109611588E07807E0F0872F66 +:1073C0009927880F991F880F991F805F9A4FFC019A +:1073D000329625913491AA27639FA001629F410DA7 +:1073E0005A1F06944A1F5A1F1124FC0125913491FB +:1073F000241B350B1EC0CB01969587958C7F805F33 +:10740000964FFC01259134910296FC0145915491CF +:10741000FB01E770FF274E9FC0014F9F900D5E9FBD +:10742000900D1124A3E096958795AA95E1F7281B66 +:10743000390B24363105A0F4E8E5F2E006C090915E +:10744000C00095FFFCCF8093C60081918111F7CFDA +:107450004AE050E081E894E00E94572424E630E0BE +:10746000C901A0E0B0E08093890A90938A0AA093B2 +:107470008B0AB0938C0A3093890020938800E091A6 +:10748000800AF091810A60AD71AD613187E27807C1 +:1074900010F060E177E281E08093880A683271053C +:1074A00010F468E270E068527109611588E07807AD +:1074B000D0F0872F9927880F991F880F991F805F19 +:1074C0009A4FFC01329645915491AA27659F9001ED +:1074D000649F210D3A1F06942A1F3A1F1124FC01B4 +:1074E000859194911DC09B01369527952C7F205F37 +:1074F000364FF901859194912E5F3F4FF9014591E7 +:107500005491FB01E770FF274E9F90014F9F300D74 +:107510005E9F300D112443E0369527954A95E1F79B +:10752000821B930B84369105A0F4E8E5F2E006C0D7 +:107530009091C00095FFFCCF8093C600819181118E +:10754000F7CF4AE050E081E894E00E94572484E6B7 +:1075500090E090938E0A80938D0AE091800AF091DA +:10756000810A80899189A289B389B695A795979553 +:107570008795B095A095909581959F4FAF4FBF4F40 +:1075800080938F0A9093900AA093910AB093920AE5 +:107590008093930A9093940AA093950AB093960AC5 +:1075A0008093970A9093980AA093990AB0939A0AA5 +:1075B00080939B0A90939C0AA0939D0AB0939E0A85 +:1075C00010927C0A10927D0A10927E0A10927F0A15 +:1075D00006C080ED97E09093890080938800E09149 +:1075E000800AF091810A309709F46EC480A18093DB +:1075F0009F0A80FF3BC016988FEF80931D018091FA +:1076000021018823B9F123B1217031E0232759F1F9 +:107610008091A00A882339F180819181A281B38170 +:10762000181619061A061B06F4F480915D0A90914B +:107630005E0AA0915F0AB091600A8093700A9093ED +:10764000710AA093720AB093730A30936F0A80890B +:107650009189A289B38980937C0A90937D0AA09333 +:107660007E0AB0937F0A2093A00A04C0169A81E094 +:1076700080931D0180919F0A81FF40C0149A8FEF73 +:1076800080931E01809121018823E1F123B131E033 +:1076900026952170232779F18091A10A882359F139 +:1076A000E091800AF091810A84819581A681B78159 +:1076B000181619061A061B06F4F48091610A9091B7 +:1076C000620AA091630AB091640A8093740A90934D +:1076D000750AA093760AB093770A30936E0A808970 +:1076E0009189A289B38980937C0A90937D0AA093A3 +:1076F0007E0AB0937F0A2093A10A04C0149881E007 +:1077000080931E0180919F0A82FF41C046988FEFAF +:1077100080931F01809121018823E9F123B131E099 +:1077200022FB222720F9232779F18091A20A8823BE +:1077300059F1E091800AF091810A80859185A285B6 +:10774000B385181619061A061B06F4F48091650A0B +:107750009091660AA091670AB091680A8093780AAE +:107760009093790AA0937A0AB0937B0A30936D0ABA +:1077700080899189A289B38980937C0A90937D0A3C +:10778000A0937E0AB0937F0A2093A20A04C0469A6F +:1077900081E080931F0180919F0A83FF03C0459879 +:1077A0008FEF02C0459A81E08093200120E030E015 +:1077B000BDC18091C00087FF19C0E091C600409113 +:1077C000020550910305CA0101968F7799276091B0 +:1077D0000405709105058617970741F0DA01AE5749 +:1077E000BB4FEC939093030580930205E091800AD0 +:1077F000F091810A80918F0A9091900AA091910A4C +:10780000B091920A4081518162817381840F951FEA +:10781000A61FB71F80938F0A9093900AA093910A96 +:10782000B093920A181619061A061B060CF4159A3C +:107830008091930A9091940AA091950AB091960A2A +:107840004481558166817781840F951FA61FB71FDC +:107850008093930A9093940AA093950AB093960A02 +:10786000181619061A061B060CF4139AE091800AE2 +:10787000F091810A8091970A9091980AA091990AB3 +:10788000B0919A0A4085518562857385840F951F52 +:10789000A61FB71F8093970A9093980AA093990AFE +:1078A000B0939A0A181619061A061B060CF4479A82 +:1078B00080919B0A90919C0AA0919D0AB0919E0A8A +:1078C0004485558566857785840F951FA61FB71F4C +:1078D00080939B0A90939C0AA0939D0AB0939E0A62 +:1078E000181619061A061B060CF4179A80918F0AAF +:1078F0009091900AA091910AB091920A18161906D7 +:107900001A061B065CF5E091800AF091810A408915 +:10791000518962897389841B950BA60BB70B8093E1 +:107920008F0A9093900AA093910AB093920A409183 +:107930001D0180915D0A90915E0AA0915F0AB0914D +:10794000600A840F911DA11DB11D80935D0A909363 +:107950005E0AA0935F0AB093600A15988091930A1B +:107960009091940AA091950AB091960A181619065A +:107970001A061B065CF5E091800AF091810A4089A5 +:10798000518962897389841B950BA60BB70B809371 +:10799000930A9093940AA093950AB093960A409103 +:1079A0001E018091610A9091620AA091630AB091D0 +:1079B000640A840F911DA11DB11D8093610A9093EB +:1079C000620AA093630AB093640A13988091970A9D +:1079D0009091980AA091990AB0919A0A18161906DE +:1079E0001A061B065CF5E091800AF091810A408935 +:1079F000518962897389841B950BA60BB70B809301 +:107A0000970A9093980AA093990AB0939A0A409182 +:107A10001F018091650A9091660AA091670AB09152 +:107A2000680A840F911DA11DB11D8093650A909372 +:107A3000660AA093670AB093680A479880919B0AE8 +:107A400090919C0AA0919D0AB0919E0A1816190661 +:107A50001A061B065CF5E091800AF091810A4089C4 +:107A6000518962897389841B950BA60BB70B809390 +:107A70009B0A90939C0AA0939D0AB0939E0A409102 +:107A800020018091690A90916A0AA0916B0AB091D5 +:107A90006C0A840F911DA11DB11D8093690A9093FA +:107AA0006A0AA0936B0AB0936C0A179880917C0ABB +:107AB00090917D0AA0917E0AB0917F0A0196A11D46 +:107AC000B11D80937C0A90937D0AA0937E0AB093A7 +:107AD0007F0A40917C0A50917D0A60917E0A7091E4 +:107AE0007F0A2F5F3F4FE091800AF091810A8089E1 +:107AF0009189A289B389481759076A077B07B0F0B3 +:107B000040917C0A50917D0A60917E0A70917F0AB3 +:107B1000E091800AF091810A84899589A689B789C4 +:107B200084179507A607B70748F4CBC08091880A49 +:107B300090E0281739070CF43CCEE2CF4091890A37 +:107B400050918A0A60918B0A70918C0A048D158D70 +:107B5000268D378DAA27419FB12D529FC001629F6C +:107B6000900D619F800D911D429FB00D811D9A1F48 +:107B7000519FB00D811D9A1F609FB00D811D9A1FEE +:107B8000509FB10D8A1F9A1FB6958A1F9A1F112404 +:107B900044AD55AD480F591F5093870A4093860A4C +:107BA00080AD91ADA2ADB3AD60E070E084179507F4 +:107BB000A607B70720F49093870A8093860A6091FE +:107BC000860A7091870A613187E2780710F060E1D8 +:107BD00077E281E08093880A6832710510F468E2E8 +:107BE00070E068527109611588E07807E0F0872F2E +:107BF0009927880F991F880F991F805F9A4FFC0162 +:107C0000329625913491AA27639FA001629F410D6E +:107C10005A1F06944A1F5A1F1124FC0125913491C2 +:107C2000241B350B1EC0CB01969587958C7F805FFA +:107C3000964FFC01259134910296FC014591549197 +:107C4000FB01E770FF274E9FC0014F9F900D5E9F85 +:107C5000900D1124A3E096958795AA95E1F7281B2E +:107C6000390B24363105A0F4E8E5F2E006C0909126 +:107C7000C00095FFFCCF8093C60081918111F7CFA2 +:107C80004AE050E081E894E00E94572424E630E086 +:107C900030938900209388008091890A90918A0A04 +:107CA000A0918B0AB0918C0A820F931FA11DB11D68 +:107CB0008093890A90938A0AA0938B0AB0938C0AC6 +:107CC000DEC040917C0A50917D0A60917E0A7091DD +:107CD0007F0A808D918DA28DB38D84179507A6079D +:107CE000B70708F0C4C04091820A5091830A60919E +:107CF000840A7091850A048D158D268D378DAA27EB +:107D0000419FB12D529FC001629F900D619F800DD8 +:107D1000911D429FB00D811D9A1F519FB00D811D75 +:107D20009A1F609FB00D811D9A1F509FB10D8A1F31 +:107D30009A1FB6958A1F9A1F11242091860A3091A6 +:107D4000870AE05CFF4F2817390718F4208131813A +:107D500002C0281B390B80819181A281B381A901C6 +:107D600060E070E0481759076A077B0708F49C0138 +:107D7000B901213187E2380710F060E177E281E054 +:107D80008093880A6832710510F468E270E06852E6 +:107D90007109611588E07807E0F0872F9927880F2F +:107DA000991F880F991F805F9A4FFC013296259189 +:107DB0003491AA27639FA001629F410D5A1F069428 +:107DC0004A1F5A1F1124FC0125913491241B350BA5 +:107DD0001EC0CB01969587958C7F805F964FFC01E6 +:107DE000259134910296FC0145915491FB01E77075 +:107DF000FF274E9FC0014F9F900D5E9F900D112455 +:107E000043E0969587954A95E1F7281B390B243670 +:107E10003105A0F4E8E5F2E006C09091C00095FFBE +:107E2000FCCF8093C60081918111F7CF4AE050E0EA +:107E300081E894E00E94572424E630E030938900E2 +:107E4000209388008091820A9091830AA091840AED +:107E5000B091850A820F931FA11DB11D8093820AE4 +:107E60009093830AA093840AB093850A08C08091F6 +:107E70008D0A90918E0A909389008093880040919A +:107E80007C0A50917D0A60917E0A70917F0AE09190 +:107E9000800AF091810A80899189A289B389481763 +:107EA00059076A077B0780F01092810A1092800AB6 +:107EB0009091080580910705981731F0809107058A +:107EC0008F5F8F7080930705FF91EF91BF91AF9106 +:107ED0009F918F917F916F915F914F913F912F91E2 +:107EE0001F910F910F900FBE0F901F9018950E9A33 +:107EF0000C9A3E9A3D9A529A529A529A529A2098C5 +:107F0000289A2198299A22982A9A0D9A0B9A3F9A90 +:107F10000F9AA1E8B0E08C918F7E8C938C91886051 +:107F20008C93E0E8F0E080818D7F808380818E7F7C +:107F3000808380818F73808380818F7C80838C910C +:107F4000887F82608C9380E090E490938900809396 +:107F500088001092850010928400EFE6F0E08081A6 +:107F60008260808381E0C2D9789408959091080559 +:107F700080910705981729F025D281E00E943810DA +:107F8000F5CF0895CF93DF93EFB7F894EC01888194 +:107F90009981AA81BB8180935D0A90935E0AA09328 +:107FA0005F0AB093600AEB0188819981AA81BB8145 +:107FB0008093610A9093620AA093630AB093640A63 +:107FC000EA0188819981AA81BB818093650A909397 +:107FD000660AA093670AB093680AE90188819981CB +:107FE000AA81BB818093690A90936A0AA0936B0A65 +:107FF000B0936C0AEFBFDF91CF9108952FB7F8943B +:10800000FC0180819181A281B3818093690A909360 +:108010006A0AA0936B0AB0936C0A2FBF08950F935E +:108020001F939FB7F89424E0829FF0011124E35A34 +:10803000F54F00811181228133819FBFB801C901B1 +:108040001F910F91089592DF5A985A985A985A980A +:10805000089520912A0130912B0140912C015091DB +:108060002D0160E070E08FE793E40E94DB4B6093AA +:10807000B10A7093B20A8093B30A9093B40A089538 +:108080008055954FFC01808190E008950F931F93D8 +:10809000CF93DF93EC01662309F461C0E7EFFDE0C5 +:1080A00007C09091C00095FFFCCF8093C600319629 +:1080B00084918111F6CF4AE050E070E081E894E0CD +:1080C0000E943C24EEEFFDE007C09091C00095FFB8 +:1080D000FCCF8093C600319684918111F6CF8091B8 +:1080E000C00085FFFCCF8AE08093C6000E940F107D +:1080F00036C0C901880F991F880F991FFC01E45EE3 +:10810000F14F659174916C177D073CF52150310951 +:10811000220F331F220F331FF901E65EF14F059145 +:108120001491245E314FF90145915491FC01E65EB2 +:10813000F14F25913491C41BD50B201B310BC29FED +:10814000C001C39F900DD29F900D1124641B750B2D +:108150000E948E4F600F711F13C04F5F01C041E03E +:10816000242F30E04D3309F0C4CF2D33310531F4E5 +:10817000EAE0FFE085919491BC0102C060E070E00C +:1081800020EF3FE3261B370BC901DF91CF911F91F1 +:108190000F910895CF93DF9321E030E0D901AA0F2A +:1081A000BB1FAA0FBB1FFD01E45EF14F65917491E7 +:1081B0006817790744F521503109220F331F220F28 +:1081C000331FF901E65EF14FC591D491245E314F22 +:1081D000F90145915491FD01E65EF14F25913491ED +:1081E000FC01E41BF50B2C1B3D0BE29FC001E39F40 +:1081F000900DF29F900D1124641B750B0E948E4F01 +:108200006C0F7D1F0BC02F5F3F4F2D33310509F0E1 +:10821000C5CFEAE0FFE085919491BC0120EF3FE3F8 +:10822000261B370BC901DF91CF9108952F923F9202 +:108230004F925F926F927F928F929F92AF92BF9276 +:10824000CF92DF92EF92FF920F931F93CF93DF9322 +:108250008C01662351F1E7EFFDE007C09091C0006B +:1082600095FFFCCF8093C600319684918111F6CFA3 +:108270004AE050E070E081E894E00E943C24EEE0A7 +:10828000FFE007C09091C00095FFFCCF8093C6002F +:10829000319684918111F6CF8091C00085FFFCCF8B +:1082A0008AE08093C6000E940F10C0EFDFE3C01B7E +:1082B000D10B41E05EC09C01220F331F220F331F00 +:1082C000F901E65EF14F65907490C615D7050CF084 +:1082D0004FC00197880F991F880F991FFC01E45E1A +:1082E000F14F25903490865E914FFC0105911491D9 +:1082F000F901E45EF14F45905490B101882777FD74 +:108300008095982F0E94764C6B017C01BE01601B0A +:10831000710B882777FD8095982F0E94764C4B0132 +:108320005C01B20162197309882777FD8095982F47 +:108330000E94764C9B01AC01C501B4010E94A94E7C +:108340004B015C01B301601B710B882777FD8095A1 +:10835000982F0E94764C9B01AC01C501B4010E948C +:10836000DB4B9B01AC01C701B6010E94FB4A17C061 +:108370004F5F842F90E04D3309F09DCFCD9759F496 +:10838000ECE0FFE065917491882777FD8095982F48 +:108390000E94764C04C060E070E080E090E0DF91E5 +:1083A000CF911F910F91FF90EF90DF90CF90BF90F2 +:1083B000AF909F908F907F906F905F904F903F9085 +:1083C0002F9008952F923F924F925F926F927F92DB +:1083D0008F929F92AF92BF92CF92DF92EF92FF92D5 +:1083E0000F931F93CF93DF9300D0CDB7DEB780916B +:1083F000A30A882309F4B8C18FB7F8941092A30A8E +:108400008FBF60E08091AA0A9091AB0A0FDF6B01E9 +:108410007C019B01AC016091A40A7091A50A809136 +:10842000A60A9091A70A0E94FA4AB62EA72E182FE4 +:10843000092FA5019801852F942FA32FB22F809388 +:10844000B50A9093B60AA093B70AB093B80A20E091 +:1084500030E040E251E4D501F8016B2F7A2F8F2FE5 +:108460009E2F0E94D74D18160CF41BC120E030E05F +:1084700040E251ECD501F8016B2F7A2F8F2F9E2F00 +:108480000E94D44B87FD09C18091B90A8111FAC0BD +:1084900020912E0130912F014091300150913101F6 +:1084A000D501F8016B2F7A2D8F2F902F0E94A94EA6 +:1084B000762E672E89839A83A301382F292F852F43 +:1084C000942FA32FB22F8093BE0A9093BF0AA0933C +:1084D000C00AB093C10A2091BA0A3091BB0A4091F8 +:1084E000BC0A5091BD0AD501F8016B2F7A2D8F2F50 +:1084F000902F0E94FB4A8B012C018090C20A909021 +:10850000C30AA090C40AB090C50A282D392D4A2D5F +:108510005B2D602F712F842D952D0E94D44B87FFEA +:108520009BC084012501802F912FA42DB52D809310 +:10853000BA0A9093BB0AA093BC0AB093BD0A2091DB +:108540002A0130912B0140912C0150912D01602F77 +:10855000712F842D952D0E94A94E4B015C01862F11 +:10856000992DAA2DBB2D8093C60A9093C70AA0937C +:10857000C80AB093C90A2091CA0A3091CB0A409127 +:10858000CC0A5091CD0AC701B6010E94FA4A209147 +:1085900026013091270140912801509129010E9424 +:1085A000A94E20ED3CEC4CE45DE30E94A94E1B017A +:1085B0002C0123E333E343E75FE36091CE0A70913C +:1085C000CF0A8091D00A9091D10A0E94A94E9B01B6 +:1085D000AC01C201B1010E94FB4A8B012C01862F24 +:1085E000912FA42DB52D8093CE0A9093CF0AA093FE +:1085F000D00AB093D10AC092CA0AD092CB0AE092B4 +:10860000CC0AF092CD0A282D392D4A2D5B2DD301AD +:10861000F980EA806B2F762D8F2D9E2DECD7202FA1 +:10862000312F442D552DE6D78B017C0120E030E021 +:10863000A901712F9F2D0E94D44B87FD3CC020E0E3 +:1086400030E04FE753E4602F712F8E2D9F2D0E9455 +:10865000D74D1816A4F528C08090B10A9090B20AA0 +:10866000A090B30AB090B40A282D392D4A2D5B2D65 +:10867000602F712F842D952D0E94D74D18160CF068 +:1086800052CF4FCF1092BA0A1092BB0A1092BC0A76 +:108690001092BD0A1092B90AFBCE81E08093B90A0C +:1086A0000AC081E08093B90A00E010E08FE7E82E6D +:1086B00093E4F92E04C000E010E0E12CF12C2091AD +:1086C000AA0A3091AB0A4091D20A5091D30A4217BC +:1086D00053071CF01092B00A11C040913201509122 +:1086E000330124173507B4F7602F712F8E2D9F2D7E +:1086F0000E94434C759567956093B00A0E9478215B +:108700000091D40A1091D50A2091D60A3091D70A47 +:10871000601B710B820B930B6838734181059105C7 +:1087200018F10E9478216093D40A7093D50A80933F +:10873000D60A9093D70A8091A80A9091A90A181690 +:1087400019068CF42091340130913501821793077A +:1087500054F42091AC0A3091AD0A821793070CF0C3 +:1087600002C02C9A01C02C980F900F90DF91CF91EE +:108770001F910F91FF90EF90DF90CF90BF90AF903F +:108780009F908F907F906F905F904F903F902F9031 +:1087900008952F923F924F925F926F927F928F92A5 +:1087A0009F92AF92BF92CF92DF92EF92FF920F9380 +:1087B0001F93CF93DF93C0EFDFE3C81BD90B81E09A +:1087C00090E09C01220F331F220F331FF901E65E58 +:1087D000F14F65907490C615D7050CF04DC0019708 +:1087E000880F991F880F991FFC01E45EF14F2590B7 +:1087F0003490865E914FFC0105911491F901E45E7D +:10880000F14F45905490B101882777FD8095982FBE +:108810000E94764C6B017C01BE01601B710B8827A6 +:1088200077FD8095982F0E94764C4B015C01B20138 +:1088300062197309882777FD8095982F0E94764CDE +:108840009B01AC01C501B4010E94A94E4B015C0122 +:10885000B301601B710B882777FD8095982F0E94CC +:10886000764C9B01AC01C501B401A5D79B01AC01BD +:10887000C701B601C0D60FC001968D33910509F02E +:10888000A0CFECE0FFE065917491882777FD80959B +:10889000982F0E94764CDF91CF911F910F91FF90FE +:1088A000EF90DF90CF90BF90AF909F908F907F9090 +:1088B0006F905F904F903F902F9008951092C20A52 +:1088C0001092C30A1092C40A1092C50A20912A017C +:1088D00030912B0140912C0150912D0160E070E00E +:1088E0008FE793E468D76093B10A7093B20A8093DC +:1088F000B30A9093B40A239A249A569A61E070E0DE +:108900008EE00E94192187ED80937A00EEE7F0E077 +:1089100010828081816080838081826080838081F9 +:108920008460808380818460808380E888BDEEE6F7 +:10893000F0E08081846080836AEF70E080E090E006 +:108940000E94AA2160E085E090E0A0DB9093D30A2A +:108950008093D20A60E083E191E098DB9093330149 +:108960008093320186E990E015DC90933501809385 +:1089700034010895089560E080E090E087DB109274 +:10898000A40A1092A50A1092A60A1092A70A80E0E3 +:1089900090E000DC9093AD0A8093AC0A1092AF0A8D +:1089A0001092AE0A1092B00A2B981092B10A10924F +:1089B000B00A1092B10A1092B30A1092B20A109241 +:1089C000B20A1092AD0A1092AC0A2C9808952F9218 +:1089D0003F924F925F926F927F928F929F92AF924F +:1089E000BF92CF92DF92EF92FF920F931F93CF939C +:1089F000DF93CDB7DEB7E1970FB6F894DEBF0FBEB9 +:108A0000CDBF688B798B8A8B9B8B0E9478216C8B76 +:108A10007D8B8E8B9F8BECE6F2E006C09091C000C0 +:108A200095FFFCCF8093C60081918111F7CF809193 +:108A3000C00085FFFCCF8AE08093C6009CDF8FE7F3 +:108A40008093B00A4C885D886E887F884C865D86EE +:108A50006E867F86AFE7CA2ED12CE12CF12CBFE7C2 +:108A60008B2E912CA12CB12C8EA69FA6A8AAB9AAB8 +:108A700021E02CA31B861A86E0E1FDE084908FA202 +:108A8000E8E1FDE0949098A6EDE1FDE0A490A9A6B0 +:108A9000E4E2FDE0B490BAA6EBE2FDE084908BA6A0 +:108AA000E1E3FDE094909CA68091A30A882309F459 +:108AB000A9C28FB7F8941092A30A8FBF60E080918B +:108AC000AA0A9091AB0AB2DB6E837F83888799876D +:108AD000762F6F81982F8985272F362F492F582F72 +:108AE000B88DA98DEA8DFB8D6B2F7A2FCF010E9457 +:108AF000D74D181644F0AE80A88EBF80B98E8884FA +:108B00008A8E99849B8E7E816F8198858985272F97 +:108B1000362F492F582F612F722D832D902F44D639 +:108B200087FD04C01E812F8038840985ACA0AA204F +:108B300009F42FC3788969899A898B89272F362F61 +:108B4000492F582FBE81AF81E885F9856B2F7A2F89 +:108B5000CF010E94D74D18160CF054C20E94782104 +:108B6000641975098609970969387341810591056A +:108B700008F448C28EA59FA5A8A9B9A98C199D097A +:108B8000AE09BF09B595A795979587958093B00ACB +:108B90000E9478216C877D878E879F874B015C01BF +:108BA00084189508A608B70888A299A2AAA2BBA211 +:108BB0009888988EA988A98EBA88BA8E8B888B8E51 +:108BC000E8C20E9478218C849D84AE84BF84681999 +:108BD00079098A099B09693873418105910508F46F +:108BE00010C20E9478212B013C018A849B84892831 +:108BF00009F4EDC1DC01CB018C849D84AE84BF847B +:108C000088199909AA09BB0988A099A0AAA0BBA0A4 +:108C1000880E991EAA1EBB1E28A139A14AA15BA1DC +:108C2000281B390B4A0B5B0BCA01B901A70196013E +:108C30000E947F4FA50194010E94C34F8EA59FA55E +:108C4000A8A9B9A9280F391F4A1F5B1F2431310574 +:108C50004105510524F12EA73FA748AB59AB2C3E47 +:108C600031054105510544F02BEE30E040E050E085 +:108C70002EA73FA748AB59AB8EA59FA5A8A9B9A918 +:108C800080389105A105B105C4F0EEEFCE2ED12CB0 +:108C9000E12CF12CC81AD90AEA0AFB0A12C024E115 +:108CA00030E040E050E02EA73FA748AB59AB74E15D +:108CB000C72ED12CE12CF12C04C0CEA4DFA4E8A84F +:108CC000F9A88FA1E0E1FDE008C09091C00095FFF8 +:108CD000FCCF8093C600319684918111F6CF2AE0B3 +:108CE00030E04EA55FA568A979A981E894E00E94CB +:108CF000062488A5E8E1FDE008C09091C00095FF3A +:108D0000FCCF8093C600319684918111F6CF2AE082 +:108D100030E0B701A60181E894E00E94062489A50D +:108D2000EDE1FDE008C09091C00095FFFCCF80937D +:108D3000C600319684918111F6CF22E030E0412FB8 +:108D4000522D632D702F81E894E00E94FF248AA5A4 +:108D5000E4E2FDE008C09091C00095FFFCCF809355 +:108D6000C600319684918111F6CF22E030E0F88D73 +:108D7000E98D9A8D8B8D4F2F5E2F692F782F81E88B +:108D800094E00E94FF248091C00085FFFCCF8AE020 +:108D90008093C6004A855B85433051050CF417C1AA +:108DA000C701B601A3D520E030E040E850E4D1D7B8 +:108DB0006C8F7D8F8E8F9F8F212F322D432D502FC3 +:108DC000B88DA98DEA8D1B8D6B2F7A2F8E2F912F49 +:108DD00011D420ED3FE049E450E4BBD720E030E07F +:108DE00040E05FE3B6D79B01AC016C8D7D8D8E8D2D +:108DF0009F8DE1D4362E072F182F9C8FC501B4010B +:108E000075D520E030E04AE754E4D5D4A62E972E5D +:108E1000282E892E8BA5EBE2FDE008C09091C000C2 +:108E200095FFFCCF8093C600319684918111F6CFD7 +:108E300022E030E08C8D432D502F612F782F81E878 +:108E400094E00E94FF248CA5E1E3FDE008C090912E +:108E5000C00095FFFCCF8093C600319684918111AC +:108E6000F6CF22E030E04A2D592D622D782D81E891 +:108E700094E00E94FF248091C00085FFFCCF8AE02F +:108E80008093C6002AE939E949E15FE3EC8D632D5F +:108E9000702F812F9E2F5DD7362E072F182FB92EBA +:108EA000762F272F302F412F5B2D632D702F812F91 +:108EB0009B2DA1D32A2D392D422D582D7CD46C8F7A +:108EC0007CA38DA39EA32A2D392D422D582D632DD1 +:108ED000702F812F9B2D3DD720E030E040E05EE3F6 +:108EE00038D7A62E972E282E892EE7E3FDE007C05F +:108EF0009091C00095FFFCCF8093C600319684917D +:108F00008111F6CF8091C00085FFFCCF8AE080936D +:108F1000C600E4E4FDE007C09091C00095FFFCCFDF +:108F20008093C600319684918111F6CF22E030E023 +:108F3000432D502F612F7B2D81E894E00E94FF2468 +:108F40008091C00085FFFCCF8AE08093C600EAE4F0 +:108F5000FDE007C09091C00095FFFCCF8093C60054 +:108F6000319684918111F6CF22E030E0FC8DECA1A6 +:108F70009DA18EA14F2F5E2F692F782F81E894E05D +:108F80000E94FF248091C00085FFFCCF8AE080937F +:108F9000C600E0E5FDE007C09091C00095FFFCCF62 +:108FA0008093C600319684918111F6CF22E030E0A3 +:108FB0004A2D592D622D782D81E894E00E94FF24DE +:108FC0008091C00085FFFCCF8AE08093C6008EA50B +:108FD0009FA5A8A9B9A98C0D9D1DAE1DBF1DB59556 +:108FE000A795979587958093B00A8A859B8501966A +:108FF0009B878A87188929883A880B8991E09CA3E6 +:1090000001C01CA220E030E040EA51E4B889A989FF +:10901000EA89FB896B2F7A2FCF01EDD29B01AC013E +:10902000BE81AF81E885F9856B2F7A2FCF01BFD53F +:10903000181694F4E6E5FDE007C09091C00095FF96 +:10904000FCCF8093C600319684918111F6CF809138 +:10905000C00085FFFCCF99C00E9478218C889D8834 +:10906000AE88BF88681979098A099B09613D7740F4 +:109070008105910508F440C00E9478216C8B7D8B9E +:109080008E8B9F8BEFE7FDE007C09091C00095FFAE +:10909000FCCF8093C600319684918111F6CF60E0B9 +:1090A0008091AA0A9091AB0AC1D8AB01BC0122E021 +:1090B00030E081E894E00E94FF24E5E8FDE007C08D +:1090C0009091C00095FFFCCF8093C60031968491AB +:1090D0008111F6CF80E090E00E9440404AE050E0ED +:1090E000BC0181E894E00E943C248091C00085FF8F +:1090F000FCCF8AE08093C6000E9478216A837B833C +:109100008C839D830E9478218C849D84AE84BF844F +:10911000840C951CA61CB71C2A813B814C815D8167 +:10912000281939094A095B09260F371F481F591F9B +:1091300021383F444241510590F0E9E8FDE007C085 +:109140009091C00095FFFCCF8093C600319684912A +:109150008111F6CF8091C00085FFFCCF16C0AA8593 +:10916000BB8516970CF4A0CCE6EAFDE007C0909111 +:10917000C00095FFFCCF8093C60031968491811189 +:10918000F6CF8091C00085FFFCCF8AE08093C600B7 +:1091900013C0788969899A898B89272F362F492F9F +:1091A000582FBE81AF81E885F9856B2F7A2FCF01CB +:1091B000FBD287FD06CD25CFE1960FB6F894DEBF32 +:1091C0000FBECDBFDF91CF911F910F91FF90EF9018 +:1091D000DF90CF90BF90AF909F908F907F906F90D7 +:1091E0005F904F903F902F900895CF93DF931F9201 +:1091F000CDB7DEB78983BFDB0E941621698181115B +:109200002FC0E7EFFDE007C08091C00085FFFCCFD5 +:109210009093C600319694919111F6CF4AE050E0B8 +:1092200070E081E894E00E943C248091C00085FFBA +:10923000FCCF8AE08093C600EBE2FFE007C090918C +:10924000C00095FFFCCF8093C600319684918111B8 +:10925000F6CF8091C00085FFFCCF8AE08093C600E6 +:109260000F90DF91CF910895CF93DF931F92CDB7E9 +:10927000DEB7898380DB0E941621698181112FC0AE +:10928000E7EFFDE007C08091C00085FFFCCF909321 +:10929000C600319694919111F6CF4AE050E070E00B +:1092A00081E894E00E943C248091C00085FFFCCFBF +:1092B0008AE08093C600E8E5FFE007C09091C00017 +:1092C00095FFFCCF8093C600319684918111F6CF33 +:1092D0008091C00085FFFCCF8AE08093C6000F908C +:1092E000DF91CF9108952C980E941621811121C001 +:1092F000E7EFFDE007C09091C00095FFFCCF8093A1 +:10930000C600319684918111F6CFE5E8FFE007C0F1 +:109310009091C00095FFFCCF8093C6003196849158 +:109320008111F6CF8091C00085FFFCCF8AE0809349 +:10933000C60008951F920F920FB60F9211242F931B +:109340003F934F935F936F937F938F939F93AF93CD +:10935000BF93EF93FF9380913601811106C08091F6 +:10936000B00A8093D80A81112B9A9091D80A8091E3 +:109370003601891708F02B988F5F8F77809336011D +:109380008091D90A833009F443C020F48130D1F0B0 +:10939000A8F50CC0853009F461C008F453C08630CC +:1093A00009F476C0873009F09EC07EC010927B0021 +:1093B00080E480937C0080917A00806480937A00BE +:1093C00081E019C020917800309179008091DA0A0B +:1093D0009091DB0AA091DC0AB091DD0A820F931F05 +:1093E000A11DB11D8093DA0A9093DB0AA093DC0AD9 +:1093F000B093DD0A82E08093D90A75C082E480933D +:109400007C0080917A00806480937A0083E0F3CFBF +:1094100020917800309179008091DE0A9091DF0AE6 +:10942000A091E00AB091E10A820F931FA11DB11D26 +:109430008093DE0A9093DF0AA093E00AB093E10ADA +:1094400084E0D9CF10927B0081E480937C008091EE +:109450007A00806480937A0085E0CDCF20917800F7 +:10946000309179008091E20A9091E30AA091E40A98 +:10947000B091E50A820F931FA11DB11D8093E20AEE +:109480009093E30AA093E40AB093E50A86E0B3CF91 +:1094900010927B0082E480937C0080917A0080644B +:1094A00080937A0087E0A7CF2091780030917900EF +:1094B0008091E60A9091E70AA091E80AB091E90A42 +:1094C000820F931FA11DB11D8093E60A9093E70AB6 +:1094D000A093E80AB093E90A1092D90A8091EA0AA7 +:1094E0008F5F8093EA0A8091EA0A803108F471C0A4 +:1094F0002FEF3FE38091DA0A9091DB0AA901481B24 +:10950000590BCA015093AB0A4093AA0A4091DE0A54 +:109510005091DF0A241B350B3093A90A2093A80A27 +:1095200021E02093A30A1092EA0A1092DA0A10921C +:10953000DB0A1092DC0A1092DD0A1092E20A109205 +:10954000E30A1092E40A1092E50A1092E60A1092D9 +:10955000E70A1092E80A1092E90A1092DE0A1092C5 +:10956000DF0A1092E00A1092E10A20913201309154 +:1095700033018217930744F01092AF0A1092AE0A9B +:1095800080E033DE0E94DB202091AA0A3091AB0AF2 +:109590008091D20A9091D30A8217930744F01092D7 +:1095A000AF0A1092AE0A80E05FDE0E94DB202091BD +:1095B000A80A3091A90A80913401909135012817A9 +:1095C00039073CF01092AD0A1092AC0A8CDE0E9472 +:1095D000DB20FF91EF91BF91AF919F918F917F9190 +:1095E0006F915F914F913F912F910F900FBE0F9010 +:1095F0001F9018955058BB27AA270ED076C23FD28D +:1096000030F044D220F031F49F3F11F41EF40FC229 +:109610000EF4E095E7FBDCC1E92F89D280F3BA179D +:10962000620773078407950718F071F49EF5B8C2B6 +:109630000EF4E0950B2EBA2FA02D0B01B90190016D +:109640000C01CA01A0011124FF27591B99F0593FB1 +:1096500050F4503E68F11A16F040A22F232F342FF9 +:109660004427585FF3CF469537952795A795F04047 +:109670005395C9F77EF41F16BA0B620B730B840B5C +:10968000BAF09150A1F0FF0FBB1F661F771F881F14 +:10969000C2F70EC0BA0F621F731F841F48F487956C +:1096A00077956795B795F7959E3F08F0B3CF93955B +:1096B000880F08F09927EE0F979587950895DFD1C9 +:1096C00058F080E891E009F49EEFE0D128F040E8FE +:1096D00051E059F45EEF09C0AAC162C2E92FE078F7 +:1096E00026D268F3092E052AC1F326173707480743 +:1096F000590738F00E2E07F8E02569F0E025E06400 +:109700000AC0EF6307F8009407FADB01B9019D0175 +:10971000DC01CA01AD01EF935DD0E7D10AD05F91C2 +:10972000552331F02BED3FE049E450FD49EC63CF88 +:109730000895DF93DD27B92FBF7740E85FE3161662 +:10974000170648075B0710F4D92F96D29F938F9383 +:109750007F936F93A9D3E0E7F0E06CD1C6D12F914E +:109760003F914F915F9101D3DD2349F09058A2EAD8 +:109770002AED3FE049EC5FE3D0785D274DDFDF91D4 +:10978000B4C1F7D180F09F3740F491110EF409C2B3 +:1097900060E070E080E89FE3089526F01B16611DED +:1097A000711D811D1BC135C1EFD008F481E0089502 +:1097B00075D1E395ABC10CD098C168D140F05FD1B1 +:1097C00030F021F45F3F19F003C15111EAC12FC1FC +:1097D000AED198F39923C9F35523B1F3951B550BDB +:1097E000BB27AA2762177307840738F09F5F5F4F74 +:1097F000220F331F441FAA1FA9F333D00E2E3AF0B5 +:10980000E0E830D091505040E695001CCAF729D0CE +:10981000FE2F27D0660F771F881FBB1F261737071D +:109820004807AB07B0E809F0BB0B802DBF01FF274D +:1098300093585F4F2AF09E3F510568F0C9C0B1C1EF +:109840005F3FECF3983EDCF3869577956795B79587 +:10985000F7959F5FC9F7880F911D9695879597F9A2 +:109860000895E1E0660F771F881FBB1F621773071B +:109870008407BA0720F0621B730B840BBA0BEE1F30 +:1098800088F7E095089504D06894B1118AC10895CD +:1098900056D188F09F5790F0B92F9927B751A0F073 +:1098A000D1F0660F771F881F991F1AF0BA95C9F774 +:1098B00012C0B13081F074D1B1E0089571C1672F49 +:1098C000782F8827B85F39F0B93FCCF38695779524 +:1098D0006795B395D9F73EF490958095709561950D +:1098E0007F4F8F4F9F4F0895E89409C097FB3EF438 +:1098F00090958095709561957F4F8F4F9F4F9923DD +:10990000A9F0F92F96E9BB279395F695879577955A +:109910006795B795F111F8CFFAF4BB0F11F460FF1A +:109920001BC06F5F7F4F8F4F9F4F16C0882311F072 +:1099300096E911C0772321F09EE8872F762F05C086 +:10994000662371F096E8862F70E060E02AF09A9521 +:10995000660F771F881FDAF7880F9695879597F916 +:10996000089507D180F09F3740F491110EF019C18E +:1099700060E070E080E89FEB089526F41B16611DFF +:10998000711D811D2BC045C0990F0008550FAA0BF2 +:10999000E0E8FEEF16161706E807F907C0F0121602 +:1099A0001306E407F50798F0621B730B840B950B05 +:1099B00039F40A2661F0232B242B252B21F408955A +:1099C0000A2609F4A140A6958FEF811D811D0895F7 +:1099D00097F99F6780E870E060E00895882371F44C +:1099E000772321F09850872B762F07C0662311F438 +:1099F00099270DC09051862B70E060E02AF09A956F +:109A0000660F771F881FDAF7880F9695879597F965 +:109A100008959F3F31F0915020F487957795679591 +:109A2000B795880F911D9695879597F908959FEFA3 +:109A300080EC0895DF93CF931F930F93FF92EF92E3 +:109A4000DF927B018C01689405C0DA2EEF018DD185 +:109A5000FE01E894A5912591359145915591AEF37C +:109A6000EF01DADDFE019701A801DA9479F7DF90C2 +:109A7000EF90FF900F911F91CF91DF9108950024F7 +:109A80000A941616170618060906089500240A9463 +:109A900012161306140605060895C9CF50D0E8F330 +:109AA000E894E0E0BB279F57F0F02AED3FE049EC57 +:109AB00006C0EE0FBB0F661F771F881F28F0B23A53 +:109AC00062077307840728F0B25A620B730B840B8A +:109AD000E3959A9572F7803830F49A95BB0F661F1C +:109AE000771F881FD2F7904896CF092E0394000C59 +:109AF00011F4882352F0BB0F40F4BF2B11F460FF28 +:109B000004C06F5F7F4F8F4F9F4F0895EF93E0FF2B +:109B100006C0A2EA2AED3FE049EC5FEB7DDDE5DF20 +:109B20000F90039401FC9058EDE9F0E0C7C157FD98 +:109B30009058440F551F59F05F3F71F04795880FBB +:109B400097FB991F61F09F3F79F087950895121652 +:109B500013061406551FF2CF4695F1DF08C01616FE +:109B600017061806991FF1CF8695710561050894AF +:109B70000895E5DFA0F0BEE7B91788F4BB279F384A +:109B800060F41616B11D672F782F8827985FF7CFDE +:109B9000869577956795B11D93959639C8F3089585 +:109BA000E894BB2766277727CB0197F90895ECDE69 +:109BB00008F48FEF089563DF19F068DF09F037CFFD +:109BC00007CFB901CA0125CF9F775F77B0DF98F340 +:109BD0009923B9F35523B9F3FF27951758F4E52FC7 +:109BE000E91BED3070F75E3B10F0F1E41CC09034DF +:109BF000E0F40AC0E92FE51BED3028F79E3B10F09A +:109C0000F1E411C0503488F4F9EA88232AF09A95D7 +:109C1000660F771F881FDAF744232AF05A95220F20 +:109C2000331F441FDAF79F1B5F1BFF931F930F9394 +:109C3000FF92EF9279018A01BB27AB2F9B01AC0108 +:109C400096D09701A801BF937B018C01AA27BA2F58 +:109C5000B901CA018CD0AF919701A801EF90FF9094 +:109C60000F911F91D9DC41DFE1D04F9140FF089562 +:109C7000552747FD509509C09B01AC0160E070E09D +:109C800080E89FE398CDA4CEC4CE59DFE8F39923B2 +:109C9000D9F3940F511DBBF39150504094F059F0FB +:109CA000882332F0660F771F881F91505040C1F70C +:109CB0009E3F510544F7880F911D9695879597F91A +:109CC00008955F3FACF0983E9CF0BB278695779552 +:109CD0006795B79508F4B1609395C1F7BB0F58F736 +:109CE00011F460FFE8CF6F5F7F4F8F4F9F4FE3CF3F +:109CF00058CF25DF58F19E5758F19851A0F0E9F060 +:109D0000983020F5092E9927660F771F881F991F15 +:109D10000A94D1F712C0062E672F782F8827985FF4 +:109D200011F4000C07C0993FB4F3869577956795B9 +:109D30009395D9F7611D711D811D3EF49095809515 +:109D4000709561957F4F8F4F9F4F0895689429CFED +:109D500027CF0BD0CACE93DE28F098DE18F09523DB +:109D600009F036CE64CE11241CCFE1DEA0F3959F1E +:109D7000D1F3950F50E0551F629FF001729FBB27F2 +:109D8000F00DB11D639FAA27F00DB11DAA1F649F9E +:109D90006627B00DA11D661F829F2227B00DA11D51 +:109DA000621F739FB00DA11D621F839FA00D611DD7 +:109DB000221F749F3327A00D611D231F849F600DF8 +:109DC000211D822F762F6A2F11249F5750408AF031 +:109DD000E1F088234AF0EE0FFF1FBB1F661F771FBD +:109DE000881F91505040A9F79E3F510570F0F0CD6B +:109DF000D8CE5F3FECF3983EDCF386957795679578 +:109E0000B795F795E7959F5FC1F7FE2B880F911DDA +:109E10009695879597F908959F9340DE0F9007FCDC +:109E2000EE5F74CE11F40EF402CEF3CD88DED0F3E3 +:109E30009923D9F3CEF39F57550B87FF38D00024D1 +:109E4000A0E640EA900180585695979528F4805CEA +:109E5000660F771F881F20F026173707480730F452 +:109E6000621B730B840B202931294A2BA69517946A +:109E70000794202531254A2758F7660F771F881F3A +:109E800020F026173707480730F4620B730B840B5A +:109E9000200D311D411DA09581F7B901842F9158E6 +:109EA000880F9695879508959B01AC0152CF9150EC +:109EB0005040660F771F881FD2F708959F938F93A6 +:109EC0007F936F93FF93EF939B01AC0142DFEF9180 +:109ED000FF91B0DD2F913F914F915F913ACF6ED0BE +:109EE000A59F900DB49F900DA49F800D911D1124EE +:109EF0000895B7FFF4CFF3DF821B930B0895DB01C6 +:109F00008F939F93ECDFBF91AF91A29F800D911D26 +:109F1000A39F900DB29F900D1124089597FB072EDB +:109F200016F4009406D077FD08D054D007FC05D075 +:109F30003EF4909581959F4F0895709561957F4F60 +:109F40000895A1E21A2EAA1BBB1BFD010DC0AA1F7A +:109F5000BB1FEE1FFF1FA217B307E407F50720F092 +:109F6000A21BB30BE40BF50B661F771F881F991F0D +:109F70001A9469F760957095809590959B01AC0156 +:109F8000BD01CF010895052E97FB16F4009406D06D +:109F900057FD0CD0D6DF07FC09D07EF49095809554 +:109FA000709561957F4F8F4F9F4F089550954095C5 +:109FB000309521953F4F4F4F5F4F0895A29FB001BD +:109FC000B39FC001A39F01D0B29F700D811D1124CA +:109FD000911D0895AA1BBB1B51E107C0AA1FBB1FFF +:109FE000A617B70710F0A61BB70B881F991F5A9525 +:109FF000A9F780959095BC01CD010895A0E0B0E04F +:10A00000E3E0F0E536C58B016115710519F0FB0140 +:10A01000808391837C01F701C1907F01EF018C2D3A +:10A0200090E04AD2892BB9F7FDE2CF1204C0C99063 +:10A03000DD24D39405C02BE2C21201C0C990D12CFB +:10A040007E0141E0E41AF10843E050E06FEB7FE06D +:10A05000C7013AD2892BE1F47E0182E0E80EF11CBF +:10A0600045E050E062EC7FE0C7012ED2892B21F45D +:10A070007E01E7E0EE0EF11C0115110519F0F80163 +:10A08000F182E08210E0D0E0C0E8D110F5C0F9C064 +:10A0900043E050E067EC7FE0C70116D2892B49F41A +:10A0A0000115110509F4EAC02296F801D183C08395 +:10A0B000E5C060E070E0CB01E12CF12CEC2DE05329 +:10A0C000EA3040F5FD2DF2602D2D2870D2FE06C03D +:10A0D000211126C02FEFE21AF20A22C0222319F022 +:10A0E00041E0E41AF108A5E0B0E09B01AC01F7DE25 +:10A0F000660F771F881F991F6E0F711D811D911D9F +:10A100006839E9E97E078E07E9E19E0748F0FD2DF1 +:10A11000F66006C0EE3F39F4D3FC3DC0FD2DF8607B +:10A12000C990DF2ECBCFE53311F0E531A1F5A88141 +:10A13000AD3219F4F0E1DF2A06C0AB3221F02196EE +:10A1400021E030E004C0A981229622E030E0A05353 +:10A15000AA3018F0C21BD30B1EC0FE0120E030E075 +:10A1600020384CE034075CF4A901440F551F440F1C +:10A17000551F240F351F220F331F2A0F311DA191A8 +:10A18000A053EF01AA3060F3D4FE03C031952195AE +:10A190003109E20EF31ED1FE07C00115110521F0B1 +:10A1A0002197F801D183C0839FDB2D2D23702330AD +:10A1B00029F0162FD72FC82F092F07C0DC01CB019C +:10A1C000B058182FD92FCA2F0B2F20E030E0A9014B +:10A1D000612F7D2F8C2F902FE7DA882309F452C04E +:10A1E000F7FE08C0F194E194F10836EFC32E3FE08A +:10A1F000D32E04C02EEDC22E2FE0D22E4601F8E160 +:10A200008F1A910890E2A92EB12C14C0F601459145 +:10A21000559165917491242F352F462F572F612F1B +:10A220007D2F8C2F902F95DD162FD72FC82F092F1C +:10A23000EA18FB08EA14FB044CF724E0C21AD10820 +:10A24000B594A794C814D904A9F7612F7D2F8C2F3A +:10A25000902F282F220F292F221F2F3F31F020E08F +:10A2600030E0A901A1DA81110DC082E290E0909363 +:10A27000F00A8093EF0A06C00FEF04C010E0D0E0B0 +:10A28000C0EC0FE7612F7D2F8C2F902FCDB7DEB75D +:10A29000ECE00BC4A0E0B0E0EFE4F1E5E6C32B0195 +:10A2A0008A016115710519F0FB0180839183011505 +:10A2B000110539F09801225031092332310508F097 +:10A2C000E3C07C01F701C1917F013F018C2F90E039 +:10A2D000F3D0892BB9F7CD3229F4F701C1913F01B1 +:10A2E000D1E006C0CB3219F4F701C1913F01D0E0B3 +:10A2F0000115110509F4D6C00031110581F4CEC055 +:10A30000F3018081883719F0883509F0C1C0F30165 +:10A31000C181F2E06F0E711CD26000E110E00830E4 +:10A320001105D9F024F402301105F9F407C00A3000 +:10A33000110551F000311105C1F424C0C12CD12CFC +:10A34000E12C30E4F32E23C00AE010E02CECC22E06 +:10A35000DC2CEC2C2CE0F22E1AC008E010E0C12C12 +:10A36000D12CE12C90E1F92E12C09801442737FD41 +:10A370004095542F60E070E080E090E8E2DD6901F4 +:10A380007A0105C0C12CD12CE12C88E0F82E40E0E8 +:10A3900060E070E0CB014801AA2497FCA094BA2C9D +:10A3A000EC2FE053EA3060F02C2F21542A3110F4C6 +:10A3B000E75006C02C2F21562A3120F5EC2FE75507 +:10A3C0002E2F30E020173107ECF447FD17C0C616DA +:10A3D000D706E806F90678F09B01AC01C501B40187 +:10A3E0008EDD6E0F711D811D911D6130710581051E +:10A3F00020E8920710F04FEF01C041E0F301C19156 +:10A400003F01CECF4114510491F0442339F0F1E0E3 +:10A410006F1A7108F2017182608209C0D1FF1BC0FE +:10A42000F2E06F1A7108F2017182608214C047FF76 +:10A4300012C0D0FF05C060E070E080E090E804C08A +:10A440006FEF7FEF8FEF9FE722E230E03093F00A6B +:10A450002093EF0A16C0D0FF08C0909580957095A4 +:10A4600061957F4F8F4F9F4F0CC097FF0AC082E2CC +:10A4700090E09093F00A8093EF0A6FEF7FEF8FEFF9 +:10A480009FE76B017C0112C0C12CD12C76010EC05C +:10A49000C0E30115110509F460CF41CFC03309F0C5 +:10A4A0003ECF2ECFC03309F04FCF2ACFB601C70120 +:10A4B000CDB7DEB7E0E1F5C2911132C2803219F0BA +:10A4C00089508550D0F70895FB01DC014150504080 +:10A4D00088F08D9181341CF08B350CF4805E659191 +:10A4E00061341CF06B350CF4605E861B611171F3F6 +:10A4F000990B0895881BFCCFFC018191861721F0F0 +:10A500008823D9F7992708953197CF010895FB0142 +:10A5100051915523A9F0BF01DC014D91451741111F +:10A52000E1F759F4CD010190002049F04D9140151B +:10A530004111C9F3FB014111EFCF81E090E0019798 +:10A540000895A0E1B0E0E6EAF2E59BC20F89188D1C +:10A5500086E08C831A8309838FEF9FE79E838D8328 +:10A56000AE01455E5F4F588B4F87698D7A8DCE0166 +:10A57000019608D0EF81F885E00FF11F10826096F8 +:10A58000E4E09BC2ACE0B0E0E7ECF2E56CC27C0139 +:10A590006B018A01FC0117821682838181FFBAC197 +:10A5A00088248394912C8C0E9D1EF7019381F601D3 +:10A5B00093FD859193FF81916F01882309F4A6C1D2 +:10A5C000853239F493FD859193FF81916F01853236 +:10A5D00021F4B70190E0BDD1E8CF712C312C20E0FF +:10A5E0002032A8F48B3261F028F4803251F08332AB +:10A5F00071F40BC08D3239F0803349F4216028C0EA +:10A600002260246025C0286023C0206121C027FD6E +:10A6100027C0382F30533A3078F426FF06C0FAE0CE +:10A620007F9E300D1124732E13C08AE0389E300DAA +:10A630001124332E20620CC08E3221F426FD66C117 +:10A64000206406C08C3611F4206802C0883641F4BC +:10A65000F60193FD859193FF81916F018111C0CF28 +:10A66000982F9554933018F09052933028F40C5F43 +:10A670001F4FFFE3F9830DC0833631F0833771F04C +:10A68000833509F05AC022C0F801808189830E5FAA +:10A690001F4F66246394712C540114C02801F2E00A +:10A6A0004F0E511CF801A080B18026FF03C0672D1A +:10A6B00070E002C06FEF7FEFC5012C873FD13C01F6 +:10A6C00082012C856FE7262E222217C02801F2E096 +:10A6D0004F0E511CF801A080B18026FF03C0672DEA +:10A6E00070E002C06FEF7FEFC5012C871CD13C01E9 +:10A6F0002C8550E8252E222A820123FC1AC005C091 +:10A70000B70180E290E025D13A94832D90E068165D +:10A710007906B0F30EC0F50127FC859127FE8191E3 +:10A720005F01B70190E015D131103A94F1E06F1A52 +:10A7300071086114710479F7E6C0843611F0893626 +:10A7400039F5F80127FF07C060817181828193810B +:10A750000C5F1F4F08C060817181882777FD80954D +:10A76000982F0E5F1F4F4FE6642E622297FF09C09D +:10A7700090958095709561957F4F8F4F9F4FF0E832 +:10A780006F2A2AE030E0A40110D1A82EA81843C0F7 +:10A79000853731F43FEEB32EB2222AE030E024C0F8 +:10A7A00099EFB92EB2228F36B9F020F4883509F02E +:10A7B000ADC00DC0803721F0883709F0A7C002C0B6 +:10A7C00020E1B22AB4FE0BC084E0B82A08C024FFFE +:10A7D00009C0E6E0BE2A06C028E030E005C020E15E +:10A7E00030E002C020E132E0F801B7FE07C060812E +:10A7F0007181828193810C5F1F4F06C060817181DE +:10A8000080E090E00E5F1F4FA401CFD0A82EA818C3 +:10A810008FE7682E6B2066FE0BC0362D3E7FA71497 +:10A8200050F464FE0AC062FC08C0362D3E7E05C0AE +:10A83000BA2C362D03C0BA2C01C0B72C34FF0DC082 +:10A84000FE01EA0DF11D8081803311F4397E09C0CB +:10A8500032FF06C0B394B39404C0832F867809F006 +:10A86000B39433FD13C030FF0EC07A2CB31458F4E8 +:10A87000730C7B18B32C07C0B70180E290E03C87D3 +:10A8800068D0B3943C85B314B8F304C0B31410F487 +:10A890003B1801C0312C34FF11C0B70180E390E0B8 +:10A8A0003C8757D03C8532FF1CC031FF03C088E590 +:10A8B00090E002C088E790E0B7010CC0832F867853 +:10A8C00081F031FD02C080E201C08BE237FD8DE2F4 +:10A8D000B70190E03ED005C0B70180E390E039D0E9 +:10A8E0007A94A714C8F3AA94F401EA0DF11DB701F4 +:10A8F000808190E02ED0A110F6CF05C0B70180E294 +:10A9000090E027D03A943110F9CF4FCEF70126814D +:10A91000378102C02FEF3FEFC9012C96E2E1BFC0A3 +:10A92000992788270895FC01059061507040011017 +:10A93000D8F7809590958E0F9F1F0895FC01615068 +:10A94000704001900110D8F7809590958E0F9F1F51 +:10A9500008950F931F93CF93DF938C01EB018B81AD +:10A9600081FD03C00FEF1FEF1AC082FF0DC02E81C3 +:10A970003F818C819D812817390764F4E881F98132 +:10A980000193F983E88306C0E885F985802F09954E +:10A99000892B41F78E819F8101969F838E83C80109 +:10A9A000DF91CF911F910F910895FA01AA272830C6 +:10A9B00051F1203181F1E8946F936E7F6E5F7F4F8C +:10A9C0008F4F9F4FAF4FB1E03ED0B4E03CD0670F08 +:10A9D000781F891F9A1FA11D680F791F8A1F911D5B +:10A9E000A11D6A0F711D811D911DA11D20D009F4AB +:10A9F00068943F912AE0269F11243019305D3193ED +:10AA0000DEF6CF010895462F4770405D4193B3E0D5 +:10AA10000FD0C9F7F6CF462F4F70405D4A3318F07C +:10AA2000495D31FD4052419302D0A9F7EACFB4E02D +:10AA3000A6959795879577956795BA95C9F70097E5 +:10AA40006105710508959B01AC010A2E0694579586 +:10AA5000479537952795BA95C9F7620F731F841FDD +:10AA6000951FA01D08952F923F924F925F926F9273 +:10AA70007F928F929F92AF92BF92CF92DF92EF928E +:10AA8000FF920F931F93CF93DF93CDB7DEB7CA1B0F +:10AA9000DB0B0FB6F894DEBF0FBECDBF09942A883A +:10AAA000398848885F846E847D848C849B84AA84E2 +:10AAB000B984C884DF80EE80FD800C811B81AA816F +:10AAC000B981CE0FD11D0FB6F894DEBF0FBECDBF3A +:08AAD000ED010895F894FFCF99 +:10AAD8006400640000803B4500803B4500007043F3 +:10AAE800000000000080BB440160EA000001010191 +:10AAF80001010000803F75608944A97E443E713D94 +:10AB0800E841FF3FFF3F010000A04214AE9F420012 +:10AB1800002045F6C815440000FA430000FA430037 +:10AB280000A04000003442282300002823000064CD +:10AB3800000000102700005573696E6720446566A1 +:10AB480061756C742073657474696E67733A004D2F +:10AB5800313130004820004C20002569206D696E95 +:10AB68002C20256920736563004D31303420496EEF +:10AB780076616C696420657874727564657220000A +:10AB88004D31303520496E76616C69642065787482 +:10AB9800727564657220004D31303920496E7661D6 +:10ABA8006C696420657874727564657220003F0072 +:10ABB8006F6B0020703A0020693A0020643A002048 +:10ABC800633A005400496E76616C69642065787454 +:10ABD800727564657200416374697665204578749E +:10ABE80072756465723A200058595A450000010090 +:10ABF8001A0019000A000000FFFF1C001B000A00D1 +:10AC08000100FFFF170016000A000200FFFFFFFF08 +:10AC1800FFFF04000E00180015000A0003000000E2 +:10AC28000100020002002E005374657072617465A1 +:10AC380020746F2068696768203A200050494420D2 +:10AC48004175746F74756E65207374617274000059 :00000001FF diff --git a/examples/board_reprap/reprap_flash.bin b/examples/board_reprap/reprap_flash.bin new file mode 100644 index 0000000000000000000000000000000000000000..c97c12f9b0a24bfc19c74a2b265a97c924137775 GIT binary patch literal 65536 zcmeIufdBvi0Dz$VsTV1P3IhfV7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ u0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFi-;k4*&rG literal 0 HcmV?d00001 diff --git a/examples/board_reprap/src/reprap_gl.c b/examples/board_reprap/src/reprap_gl.c index 8bfe8a9..1d66cbd 100644 --- a/examples/board_reprap/src/reprap_gl.c +++ b/examples/board_reprap/src/reprap_gl.c @@ -20,9 +20,15 @@ */ #if __APPLE__ +#define GL_GLEXT_PROTOTYPES #include +#include +#include #else +#define GL_GLEXT_PROTOTYPES +#include #include +#include #endif #include @@ -31,21 +37,24 @@ #include "reprap.h" #include "reprap_gl.h" -#include "c3/c3.h" -#include "c3/c3camera.h" -#include "c3/c3arcball.h" -#include "c3/c3driver_context.h" -#include "c3/c3stl.h" +#include "c3.h" +#include "c3camera.h" +#include "c3driver_context.h" +#include "c3stl.h" +#include "c3lines.h" #include +struct cairo_surface_t; + int _w = 800, _h = 600; -c3cam cam; -c3arcball arcball; +//c3cam cam; c3context_p c3; c3context_p hud; c3object_p head; +c3texture_p fbo_c3; + extern reprap_t reprap; static int dumpError(const char * what) @@ -59,6 +68,200 @@ static int dumpError(const char * what) return count; } +#define GLCHECK(_w) {_w; dumpError(#_w);} + +void print_log(GLuint obj) +{ + int infologLength = 0; + int maxLength; + + if(glIsShader(obj)) + glGetShaderiv(obj,GL_INFO_LOG_LENGTH,&maxLength); + else + glGetProgramiv(obj,GL_INFO_LOG_LENGTH,&maxLength); + + char infoLog[maxLength]; + + if (glIsShader(obj)) + glGetShaderInfoLog(obj, maxLength, &infologLength, infoLog); + else + glGetProgramInfoLog(obj, maxLength, &infologLength, infoLog); + + if (infologLength > 0) + printf("%s\n",infoLog); +} +/* Global */ +GLuint fbo, fbo_texture, rbo_depth; +//GLuint vbo_fbo_vertices; + +static void +gl_offscreenInit( + int screen_width, + int screen_height) +{ + /* init_resources */ + /* Create back-buffer, used for post-processing */ + + /* Texture */ + GLCHECK(glActiveTexture(GL_TEXTURE0)); + glGenTextures(1, &fbo_texture); + glBindTexture(GL_TEXTURE_2D, fbo_texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, screen_width, screen_height, 0, + GL_RGBA, GL_UNSIGNED_BYTE, NULL); + glBindTexture(GL_TEXTURE_2D, 0); + + /* Depth buffer */ + GLCHECK(glGenRenderbuffers(1, &rbo_depth)); + glBindRenderbuffer(GL_RENDERBUFFER, rbo_depth); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, screen_width, + screen_height); + glBindRenderbuffer(GL_RENDERBUFFER, 0); + + /* Framebuffer to link everything together */ + GLCHECK(glGenFramebuffers(1, &fbo)); + glBindFramebuffer(GL_FRAMEBUFFER, fbo); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, + fbo_texture, 0); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, + GL_RENDERBUFFER, rbo_depth); + + GLenum status; + if ((status = glCheckFramebufferStatus(GL_FRAMEBUFFER)) + != GL_FRAMEBUFFER_COMPLETE) { + fprintf(stderr, "glCheckFramebufferStatus: error %d", (int)status); + return ; + } +#if 0 + // Set the list of draw buffers. + GLenum DrawBuffers[2] = {GL_COLOR_ATTACHMENT0}; + glDrawBuffers(1, DrawBuffers); // "1" is the size of DrawBuffers + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif +} + +void +gl_offscreenReshape( + int screen_width, + int screen_height) +{ +// Rescale FBO and RBO as well + glBindTexture(GL_TEXTURE_2D, fbo_texture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, screen_width, screen_height, 0, + GL_RGBA, GL_UNSIGNED_BYTE, NULL); + glBindTexture(GL_TEXTURE_2D, 0); + + glBindRenderbuffer(GL_RENDERBUFFER, rbo_depth); + glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, screen_width, + screen_height); + glBindRenderbuffer(GL_RENDERBUFFER, 0); + +// glBindFramebuffer(GL_FRAMEBUFFER, fbo); +// glViewport(0, 0, screen_width, screen_height); +// glBindFramebuffer(GL_FRAMEBUFFER, 0); +} + +void gl_offscreenFree() +{ + /* free_resources */ + glDeleteRenderbuffers(1, &rbo_depth); + glDeleteTextures(1, &fbo_texture); + glDeleteFramebuffers(1, &fbo); +// glDeleteBuffers(1, &vbo_fbo_vertices); +} + +GLuint program_postproc = 0, uniform_fbo_texture; + +static GLuint create_shader(const char * fname, GLuint pid) +{ + const GLchar * buf; + + FILE *f = fopen(fname, "r"); + if (!f) { + perror(fname); + return 0; + } + fseek(f, 0, SEEK_END); + long fs = ftell(f); + fseek(f, 0, SEEK_SET); + buf = malloc(fs + 1); + fread((void*)buf, 1, fs, f); + ((char*)buf)[fs] = 0; + fclose(f); + + GLuint vs = glCreateShader(pid); + glShaderSource(vs, 1, &buf, NULL); + glCompileShader(vs); + dumpError("glCompileShader"); + print_log(vs); + free((void*)buf); + return vs; +} + + +int gl_ppProgram() +{ + int vs, fs; + int link_ok, validate_ok; + /* init_resources */ + /* Post-processing */ + if ((vs = create_shader("gfx/postproc.vs", GL_VERTEX_SHADER)) == 0) + return 0; + if ((fs = create_shader("gfx/postproc.fs", GL_FRAGMENT_SHADER)) == 0) + return 0; + + program_postproc = glCreateProgram(); + glAttachShader(program_postproc, vs); + glAttachShader(program_postproc, fs); + glLinkProgram(program_postproc); + glGetProgramiv(program_postproc, GL_LINK_STATUS, &link_ok); + if (!link_ok) { + fprintf(stderr, "glLinkProgram:"); + goto error; + } + glValidateProgram(program_postproc); + glGetProgramiv(program_postproc, GL_VALIDATE_STATUS, &validate_ok); + if (!validate_ok) { + fprintf(stderr, "glValidateProgram:"); + goto error; + } + + char * uniform_name = "m_Texture"; + uniform_fbo_texture = glGetUniformLocation(program_postproc, uniform_name); + if (uniform_fbo_texture == -1) { + fprintf(stderr, "Could not bind uniform %s\n", uniform_name); + goto error; + } + return 0; +error: + print_log(program_postproc); + glDeleteProgram(program_postproc); + program_postproc = 0; + return -1; +} + +void +gl_ppFree() +{ + if (program_postproc) + glDeleteProgram(program_postproc); + program_postproc = 0; +} + +static void +_gl_reshape_cb(int w, int h) +{ + _w = w; + _h = h; + + glViewport(0, 0, _w, _h); + gl_offscreenReshape(_w, _h); + glutPostRedisplay(); +} + static void _gl_key_cb( unsigned char key, @@ -79,9 +282,71 @@ _gl_key_cb( printf("Stopping VCD trace\n"); // avr_vcd_stop(&vcd_file); break; + case '1': + if (fbo_c3->geometry.mat.program.pid) + fbo_c3->geometry.mat.program.pid = 0; + else + fbo_c3->geometry.mat.program.pid = program_postproc; + glutPostRedisplay(); + break; } } +static void +_c3_load_pixels( + c3pixels_p pix) +{ + GLuint mode = pix->normalize ? GL_TEXTURE_2D : GL_TEXTURE_RECTANGLE_ARB; + if (!pix->texture) { + printf("Creating texture %s %dx%d\n", pix->name ? pix->name->str : "", pix->w, pix->h); + pix->dirty = 1; + GLuint texID = 0; + dumpError("cp_gl_texture_load_argb flush"); + GLCHECK(glEnable(mode)); + + glGenTextures(1, &texID); +// glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, +// GL_MODULATE); //set texture environment parameters +// dumpError("glTexEnvf"); + + glPixelStorei(GL_UNPACK_ROW_LENGTH, pix->row / pix->psize); + glTexParameteri(mode, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + dumpError("GL_TEXTURE_MAG_FILTER");// + glTexParameteri(mode, GL_TEXTURE_MIN_FILTER, + pix->normalize ? GL_LINEAR_MIPMAP_LINEAR : GL_LINEAR); + dumpError("GL_TEXTURE_MIN_FILTER"); + glTexParameteri(mode, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); + dumpError("GL_TEXTURE_WRAP_S"); + glTexParameteri(mode, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); + dumpError("GL_TEXTURE_WRAP_T"); + if (pix->normalize) + GLCHECK(glTexParameteri(mode, GL_GENERATE_MIPMAP, GL_TRUE)); + #if 1 + GLfloat fLargest; + glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &fLargest); + //printf("fLargest = %f\n", fLargest); + GLCHECK(glTexParameterf(mode, GL_TEXTURE_MAX_ANISOTROPY_EXT, fLargest)); + #endif + if (pix->normalize) + GLCHECK(glGenerateMipmap(mode)); + + pix->texture = texID; + pix->dirty = 1; + } + if (pix->dirty) { + pix->dirty = 0; + GLCHECK(glBindTexture(mode, pix->texture)); + glTexImage2D(mode, 0, + pix->format == C3PIXEL_A ? GL_ALPHA16 : GL_RGBA8, + pix->w, pix->h, 0, + pix->format == C3PIXEL_A ? GL_ALPHA : GL_BGRA, + GL_UNSIGNED_BYTE, + pix->base); + dumpError("glTexImage2D"); + if (pix->normalize) + GLCHECK(glGenerateMipmap(mode)); + } +} static void _c3_geometry_project( @@ -90,142 +355,24 @@ _c3_geometry_project( c3geometry_p g, c3mat4p m) { + if (g->mat.texture) { +// printf("_c3_geometry_project xrure %d!\n", g->textures.count); + _c3_load_pixels(g->mat.texture); + } + switch(g->type.type) { - case C3_TRIANGLE_TYPE: { + case C3_TRIANGLE_TYPE: g->type.subtype = GL_TRIANGLES; - //g->mat.color = c3vec4f(0.0, 0.0, 1.0, 1.0); - } break; + break; case C3_TEXTURE_TYPE: { - c3texture_p t = (c3texture_p)g; - g->type.subtype = GL_TRIANGLE_FAN; - g->mat.color = c3vec4f(0.0, 1.0, 0.0, 0.5); - printf("_c3_geometry_project xrure %d!\n", g->textures.count); - if (!g->texture) { - GLuint texID = 0; - dumpError("cp_gl_texture_load_argb flush"); - - if (g->mat.mode == 0) - g->mat.mode = GL_TEXTURE_RECTANGLE_ARB; - - printf("C3_TEXTURE_TYPE %d\n",g->mat.mode); - glEnable(g->mat.mode); - dumpError("cp_gl_texture_load_argb GL_TEXTURE_RECTANGLE_ARB"); - - glGenTextures(1, &texID); - dumpError("cp_gl_texture_load_argb glBindTexture GL_TEXTURE_RECTANGLE_ARB"); - -// glTexEnvf( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, -// GL_MODULATE ); //set texture environment parameters - dumpError("glTexEnvf"); - - glPixelStorei(GL_UNPACK_ROW_LENGTH, t->pixels.row / t->pixels.psize); - glTexParameteri(g->mat.mode, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - dumpError("GL_TEXTURE_MAG_FILTER"); - glTexParameteri(g->mat.mode, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - dumpError("GL_TEXTURE_MIN_FILTER"); - glTexParameteri(g->mat.mode, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); - dumpError("GL_TEXTURE_WRAP_S"); - glTexParameteri(g->mat.mode, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); - dumpError("GL_TEXTURE_WRAP_T"); - glTexParameteri(g->mat.mode, GL_GENERATE_MIPMAP, GL_TRUE); - dumpError("GL_GENERATE_MIPMAP"); - glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST); - dumpError("GL_GENERATE_MIPMAP_HINT"); - - g->mat.texture = texID; - g->texture = 1; + // c3texture_p t = (c3texture_p)g; + if (g->mat.texture) { + g->type.subtype = GL_TRIANGLE_FAN; } - glBindTexture(g->mat.mode, g->mat.texture); - dumpError("glBindTexture"); - glTexImage2D(g->mat.mode, 0, - t->pixels.format == C3PIXEL_A ? GL_ALPHA8 : GL_RGBA8, - t->pixels.w, t->pixels.h, 0, - t->pixels.format == C3PIXEL_A ? GL_ALPHA : GL_BGRA, - GL_UNSIGNED_BYTE, - t->pixels.base); - dumpError("glTexImage2D"); - glGenerateMipmap(GL_TEXTURE_2D); - dumpError("glGenerateMipmap"); - } break; - case C3_LINES_TYPE: { - // glLineWidth(1); - float lineWidth = 0.2; - - c3vertex_array_p v = &g->projected; - c3tex_array_p tex = &g->textures; - c3tex_array_clear(tex); - c3vertex_array_clear(v); - for (int l = 0; l < g->vertice.count; l += 2) { - c3vec3 a = c3mat4_mulv3(m, g->vertice.e[l]); - c3vec3 b = c3mat4_mulv3(m, g->vertice.e[l+1]); - - c3vec3 e = c3vec3_mulf(c3vec3_normalize(c3vec3_sub(b, a)), lineWidth); - - c3vec3 N = c3vec3f(-e.y, e.x, 0); - c3vec3 S = c3vec3_minus(N); - c3vec3 NE = c3vec3_add(N, e); - c3vec3 NW = c3vec3_sub(N, e); - c3vec3 SW = c3vec3_minus(NE); - c3vec3 SE = c3vec3_minus(NW); -#if 0 - c3vertex_array_add(v, c3vec3_add(a, SW)); - c3vertex_array_add(v, c3vec3_add(a, NW)); - c3vertex_array_add(v, c3vec3_add(a, S)); - c3vertex_array_add(v, c3vec3_add(a, N)); - c3vertex_array_add(v, c3vec3_add(b, S)); - c3vertex_array_add(v, c3vec3_add(b, N)); - c3vertex_array_add(v, c3vec3_add(b, SE)); - c3vertex_array_add(v, c3vec3_add(b, NE)); -#endif - - const float ts = 1; - - c3vertex_array_add(v, c3vec3_add(a, SW)); - c3vertex_array_add(v, c3vec3_add(a, S)); - c3vertex_array_add(v, c3vec3_add(a, NW)); - c3tex_array_add(tex, c3vec2f(ts * 0 , ts * 0 )); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); - c3tex_array_add(tex, c3vec2f(ts * 0 , ts * 1 )); - - c3vertex_array_add(v, c3vec3_add(a, S)); - c3vertex_array_add(v, c3vec3_add(a, N)); - c3vertex_array_add(v, c3vec3_add(a, NW)); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); - c3tex_array_add(tex, c3vec2f(ts * 0 , ts * 1 )); - - c3vertex_array_add(v, c3vec3_add(a, N)); - c3vertex_array_add(v, c3vec3_add(b, S)); - c3vertex_array_add(v, c3vec3_add(b, N)); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); - - c3vertex_array_add(v, c3vec3_add(a, N)); - c3vertex_array_add(v, c3vec3_add(a, S)); - c3vertex_array_add(v, c3vec3_add(b, S)); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); - - c3vertex_array_add(v, c3vec3_add(b, N)); - c3vertex_array_add(v, c3vec3_add(b, S)); - c3vertex_array_add(v, c3vec3_add(b, SE)); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); - c3tex_array_add(tex, c3vec2f(ts * 1 , ts * 0 )); - - c3vertex_array_add(v, c3vec3_add(b, N)); - c3vertex_array_add(v, c3vec3_add(b, SE)); - c3vertex_array_add(v, c3vec3_add(b, NE)); - c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); - c3tex_array_add(tex, c3vec2f(ts * 1 , ts * 0 )); - c3tex_array_add(tex, c3vec2f(ts * 1 , ts * 1 )); - - } + case C3_LINES_TYPE: g->type.subtype = GL_TRIANGLES; - } break; + break; default: break; } @@ -245,26 +392,37 @@ _c3_geometry_draw( glEnableClientState(GL_VERTEX_ARRAY); dumpError("GL_VERTEX_ARRAY"); glDisable(GL_TEXTURE_2D); - if (g->textures.count && g->texture) { - glEnable(g->mat.mode); + if (g->mat.texture) { + GLuint mode = g->mat.texture->normalize ? GL_TEXTURE_2D : GL_TEXTURE_RECTANGLE_ARB; + glEnable(mode); + if (g->mat.texture->trace) + printf("%s uses texture %s (%d tex)\n", + __func__, g->mat.texture->name->str, g->textures.count); // printf("tex mode %d texture %d\n", g->mat.mode, g->mat.texture); dumpError("glEnable texture"); - glBindTexture(g->mat.mode, g->mat.texture); + glBindTexture(mode, g->mat.texture->texture); dumpError("glBindTexture"); glTexCoordPointer(2, GL_FLOAT, 0, g->textures.e); glEnableClientState(GL_TEXTURE_COORD_ARRAY); dumpError("GL_TEXTURE_COORD_ARRAY"); } + if (g->mat.program.pid) { + glUseProgram(g->mat.program.pid); + dumpError("glUseProgram program_postproc"); + } if (g->normals.count) { glNormalPointer(GL_FLOAT, 0, g->normals.e); glEnableClientState(GL_NORMAL_ARRAY); } - glDrawArrays(g->type.subtype, 0, g->projected.count ? g->projected.count : g->vertice.count); + glDrawArrays(g->type.subtype, 0, + g->projected.count ? g->projected.count : g->vertice.count); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); - if (g->textures.count && g->texture) - glDisable(g->mat.mode); + if (g->mat.texture) + glDisable(g->mat.texture->normalize ? GL_TEXTURE_2D : GL_TEXTURE_RECTANGLE_ARB); + if (g->mat.program.pid) + glUseProgram(0); } const c3driver_context_t c3context_driver = { @@ -272,6 +430,7 @@ const c3driver_context_t c3context_driver = { .geometry_draw = _c3_geometry_draw, }; +float z_min, z_max; /* * Computes the distance from the eye, sort by this value */ @@ -286,9 +445,13 @@ _c3_z_sorter( c3vec3 c1 = c3vec3_add(g1->bbox.min, c3vec3_divf(c3vec3_sub(g1->bbox.max, g1->bbox.min), 2)); c3vec3 c2 = c3vec3_add(g2->bbox.min, c3vec3_divf(c3vec3_sub(g2->bbox.max, g2->bbox.min), 2)); - c3f d1 = c3vec3_length2(c3vec3_sub(c1, cam.eye)); - c3f d2 = c3vec3_length2(c3vec3_sub(c2, cam.eye)); + c3f d1 = c3vec3_length2(c3vec3_sub(c1, c3->cam.eye)); + c3f d2 = c3vec3_length2(c3vec3_sub(c2, c3->cam.eye)); + if (d1 > z_max) z_max = d1; + if (d1 < z_min) z_min = d1; + if (d2 > z_max) z_max = d2; + if (d2 < z_min) z_min = d2; /* * make sure transparent items are drawn after everyone else */ @@ -300,9 +463,52 @@ _c3_z_sorter( return d1 < d2 ? 1 : d1 > d2 ? -1 : 0; } +#define FBO 0 + static void _gl_display_cb(void) /* function called whenever redisplay needed */ { +#if FBO + if (program_postproc) { + /* + * Draw in FBO object + */ + glBindFramebuffer(GL_FRAMEBUFFER, fbo); + // draw (without glutSwapBuffers) + dumpError("glBindFramebuffer fbo"); + glViewport(0, 0, _w, _h); + } +#else + glBindFramebuffer(GL_FRAMEBUFFER, 0); +#endif + + c3vec3 headp = c3vec3f( + stepper_get_position_mm(&reprap.step_x), + stepper_get_position_mm(&reprap.step_y), + stepper_get_position_mm(&reprap.step_z)); + c3mat4 headmove = translation3D(headp); + c3transform_set(head->transform.e[0], &headmove); + + if (c3->root->dirty) { + printf("reproject head %.2f,%.2f,%.2f\n", headp.x, headp.y,headp.z); + c3context_project(c3); + + z_min = 1000000000; + z_max = -1000000000; + qsort(c3->projected.e, c3->projected.count, sizeof(c3->projected.e[0]), + _c3_z_sorter); + z_min = sqrt(z_min); + z_max = sqrt(z_max); + // printf("z_min %f, z_max %f\n", z_min, z_max); + //z_min -= 50; + if (z_min < 0) + z_min = 10; + z_min = 10; + if (z_max < z_min || z_max > 1000) + z_max = 1000; + } + + glClearColor(1.0f, 1.0f, 1.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -310,50 +516,71 @@ _gl_display_cb(void) /* function called whenever redisplay needed */ glMatrixMode(GL_PROJECTION); // Select projection matrix glLoadIdentity(); // Start with an identity matrix - gluPerspective(60, _w / _h, 60, 400); + gluPerspective(50, (float)_w / (float)_h, z_min, z_max); #if 0 glCullFace(GL_BACK); glEnable(GL_CULL_FACE); #endif glDepthMask(GL_TRUE); + glDepthFunc(GL_LEQUAL); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); // glPolygonMode( GL_FRONT_AND_BACK, GL_LINE ); - glEnable(GL_BLEND); // Enable Blending - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Type Of Blending To Use - - glMatrixMode( GL_MODELVIEW ); - glLoadIdentity(); - // glMultMatrixf(arcball.rot.n); - glMultMatrixf(cam.mtx.n); - glTranslatef( -cam.eye.n[VX], -cam.eye.n[VY], -cam.eye.n[VZ] ); - // glMultMatrixf(arcball.rot.n); + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GREATER, 1.0f / 255.0f); + glEnable(GL_BLEND); // Enable Blending + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Type Of Blending To Use - c3vec3 headp = c3vec3f( - stepper_get_position_mm(&reprap.step_x), - stepper_get_position_mm(&reprap.step_y), - stepper_get_position_mm(&reprap.step_z)); - c3mat4 headmove = translation3D(headp); - c3transform_set(head->transform.e[0], &headmove); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glMultMatrixf(c3->cam.mtx.n); + glTranslatef(-c3->cam.eye.n[VX], -c3->cam.eye.n[VY], -c3->cam.eye.n[VZ]); - if (c3->root->dirty) { - // printf("reproject\n"); - c3context_project(c3); + dumpError("flush"); - qsort(c3->projected.e, c3->projected.count, - sizeof(c3->projected.e[0]), _c3_z_sorter); - } c3context_draw(c3); - glMatrixMode(GL_PROJECTION); // Select projection matrix +#if FBO + /* + * Draw back FBO over the screen + */ + glBindFramebuffer(GL_FRAMEBUFFER, 0); + dumpError("glBindFramebuffer 0"); + glDisable(GL_DEPTH_TEST); glDisable(GL_LIGHTING); + glDisable(GL_ALPHA_TEST); + + glMatrixMode(GL_PROJECTION); // Select projection matrix + glLoadIdentity(); // Start with an identity matrix + + glClearColor(1.0f, 1.0f, 1.0f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glMatrixMode(GL_MODELVIEW); // Select modelview matrix + glLoadIdentity(); // Start with an identity matrix + +#if 0 + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, fbo_texture); + dumpError("glBindTexture fbo"); +#if 0 + glUseProgram(program_postproc); + dumpError("glUseProgram program_postproc"); + glUniform1i(uniform_fbo_texture, /*GL_TEXTURE*/0); +#endif + glUseProgram(0); +#endif +#endif + + glMatrixMode(GL_PROJECTION); // Select projection matrix glLoadIdentity(); // Start with an identity matrix glOrtho(0, _w, 0, _h, 0, 10); - glScalef(1,-1,1); + glScalef(1, -1, 1); glTranslatef(0, -1 * _h, 0); glMatrixMode(GL_MODELVIEW); // Select modelview matrix + glLoadIdentity(); // Start with an identity matrix if (hud) c3context_draw(hud); @@ -361,9 +588,14 @@ _gl_display_cb(void) /* function called whenever redisplay needed */ glutSwapBuffers(); } +#if !defined(GLUT_WHEEL_UP) +# define GLUT_WHEEL_UP 3 +# define GLUT_WHEEL_DOWN 4 +#endif + + int button; c3vec2 move; -c3cam startcam; static void _gl_button_cb( @@ -373,12 +605,22 @@ void _gl_button_cb( int y) { button = s == GLUT_DOWN ? b : 0; - startcam = cam; move = c3vec2f(x, y); - if (s == GLUT_DOWN) - c3arcball_mouse_down(&arcball, x, y); - else - c3arcball_mouse_up(&arcball); +// printf("button %d: %.1f,%.1f\n", b, move.x, move.y); + switch (b) { + case GLUT_LEFT_BUTTON: + case GLUT_RIGHT_BUTTON: // call motion + break; + case GLUT_WHEEL_UP: + case GLUT_WHEEL_DOWN: + if (c3->cam.distance > 10) { + const float d = 0.004; + c3cam_set_distance(&c3->cam, c3->cam.distance * ((b == GLUT_WHEEL_DOWN) ? (1.0+d) : (1.0-d))); + c3cam_update_matrix(&c3->cam); + c3->root->dirty = 1; // resort the array + } + break; + } } void @@ -389,26 +631,32 @@ _gl_motion_cb( c3vec2 m = c3vec2f(x, y); c3vec2 delta = c3vec2_sub(move, m); -// printf("%s b%d click %.1f,%.1f now %d,%d\n", -// __func__, button, move.n[0], move.n[1], x, y); +// printf("%s b%d click %.1f,%.1f now %d,%d delta %.1f,%.1f\n", +// __func__, button, move.n[0], move.n[1], x, y, delta.x, delta.y); switch (button) { case GLUT_LEFT_BUTTON: { - // c3cam_eye_yaw(&cam, delta.n[0] / 4); - // c3cam_eye_pitch(&cam, delta.n[1] / 4); +// c3mat4 rotx = rotation3D(c3vec3f(1.0, 0, 0), delta.n[1] / 4); +// c3mat4 roty = rotation3D(c3vec3f(0.0, 0.0, 1.0), delta.n[0] / 4); - c3mat4 rotx = rotation3D(c3vec3f(1.0, 0, 0), delta.n[1] / 4); + c3mat4 rotx = rotation3D(c3->cam.side, delta.n[1] / 4); c3mat4 roty = rotation3D(c3vec3f(0.0, 0.0, 1.0), delta.n[0] / 4); rotx = c3mat4_mul(&rotx, &roty); - c3cam_rot_about_lookat(&cam, &rotx); + c3cam_rot_about_lookat(&c3->cam, &rotx); - c3cam_update_matrix(&cam); + c3cam_update_matrix(&c3->cam); c3->root->dirty = 1; // resort the array -// c3arcball_mouse_motion(&arcball, x, y, 0,0,0); } break; case GLUT_RIGHT_BUTTON: { + // offset both points, but following the plane + c3vec3 f = c3vec3_mulf(c3vec3f(-c3->cam.side.y, c3->cam.side.x, 0), -delta.n[1] / 4); + c3->cam.eye = c3vec3_add(c3->cam.eye, f); + c3->cam.lookat = c3vec3_add(c3->cam.lookat, f); + c3cam_movef(&c3->cam, delta.n[0] / 8, 0, 0); + c3cam_update_matrix(&c3->cam); + c3->root->dirty = 1; // resort the array } break; } move = m; @@ -419,9 +667,6 @@ static void _gl_timer_cb( int i) { - //static int oldstate = -1; - // restart timer - c3arcball_idle(&arcball); glutTimerFunc(1000 / 24, _gl_timer_cb, 0); glutPostRedisplay(); } @@ -433,7 +678,7 @@ gl_init( { glutInit(&argc, argv); /* initialize GLUT system */ - glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); + glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH | GLUT_ALPHA); glutInitWindowSize(_w, _h); /* width=400pixels height=500pixels */ /*window =*/ glutCreateWindow("Press 'q' to quit"); /* create window */ @@ -443,8 +688,10 @@ gl_init( glutMouseFunc(_gl_button_cb); glutMotionFunc(_gl_motion_cb); + glutReshapeFunc(_gl_reshape_cb); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); + glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST); /* glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); @@ -479,28 +726,41 @@ gl_init( glEnable(GL_LIGHT0); } #endif -// glEnable(GL_BLEND); - // Works for the UI !! -// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - cam = c3cam_new(); - cam.lookat = c3vec3f(100.0, 100.0, 0.0); - cam.eye = c3vec3f(100.0, -100.0, 100.0); - c3cam_update_matrix(&cam); - - c3arcball_init_center(&arcball, c3vec2f(_w/2, _h/2), 100); -// hd44780_gl_init(); + gl_offscreenInit(_w, _h); + gl_ppProgram(); c3 = c3context_new(_w, _h); static const c3driver_context_t * list[] = { &c3context_driver, NULL }; c3->driver = list; - c3texture_p line_aa_tex = NULL; + c3->cam.lookat = c3vec3f(100.0, 100.0, 0.0); + c3->cam.eye = c3vec3f(100.0, -100.0, 100.0); + c3cam_update_matrix(&c3->cam); + { - cairo_surface_t * image = cairo_image_surface_create_from_png ("gfx/BlurryCircle.png"); + const char *path = "gfx/hb.png"; + cairo_surface_t * image = cairo_image_surface_create_from_png (path); printf("image = %p %p\n", image, cairo_image_surface_get_data (image)); c3texture_p b = c3texture_new(c3->root); + c3pixels_p dst = c3pixels_new( + cairo_image_surface_get_width (image), + cairo_image_surface_get_height (image), + 4, cairo_image_surface_get_stride(image), + cairo_image_surface_get_data (image)); + dst->name = str_new(path); + b->geometry.mat.texture = dst; + b->size = c3vec2f(200, 200); + b->geometry.mat.color = c3vec4f(1.0, 1.0, 1.0, 1.0); +// c3transform_new(head); + } + c3pixels_p line_aa_tex = NULL; + { + const char *path = "gfx/BlurryCircle.png"; + cairo_surface_t * image = cairo_image_surface_create_from_png (path); + printf("image = %p %p\n", image, cairo_image_surface_get_data (image)); + +#if 0 c3pixels_p dst = &b->pixels; c3pixels_init(dst, cairo_image_surface_get_width (image), @@ -508,6 +768,8 @@ gl_init( 1, cairo_image_surface_get_width (image), NULL); c3pixels_alloc(dst); + b->size = c3vec2f(32, 32); + b->normalized = 1; c3pixels_p src = c3pixels_new( cairo_image_surface_get_width (image), @@ -523,56 +785,62 @@ gl_init( max = _s[i] & 0xff; for (int i = 0; i < dst->h * dst->w; i++) *_d++ = ((_s[i] & 0xff) * 255) / max;// + (0xff - max); - - b->geometry.dirty = 1; - c3mat4 i = identity3D(); - b->geometry.mat.mode = GL_TEXTURE_2D; b->pixels.format = C3PIXEL_A; - c3geometry_project(&b->geometry, &i); - //_c3_geometry_project(NULL, NULL, &b->geometry, &i); - line_aa_tex = b; +#else + c3pixels_p dst = c3pixels_new( + cairo_image_surface_get_width (image), + cairo_image_surface_get_height (image), + 4, cairo_image_surface_get_stride(image), + cairo_image_surface_get_data (image)); + dst->format = C3PIXEL_ARGB; + dst->normalize = 1; + dst->name = str_new(path); + uint8_t * line = dst->base; + for (int y = 0; y < dst->h; y++, line += dst->row) { + uint32_t *p = (uint32_t *)line; + for (int x = 0; x < dst->w; x++, p++) { + uint8_t b = *p; + *p = ((0xff - b) << 24);//|(b << 16)|(b << 8)|(b); + } + } +#endif + line_aa_tex = dst; - c3pixels_p p = &b->pixels; + c3pixels_p p = dst; printf("struct { int w, h, stride, size, format; uint8_t pix[] } img = {\n" "%d, %d, %d, %d, %d\n", p->w, p->h, (int)p->row, p->psize, cairo_image_surface_get_format(image)); for (int i = 0; i < 32; i++) - printf("0x%08x", ((uint32_t*)src->base)[i]); + printf("0x%08x ", ((uint32_t*)p->base)[i]); printf("\n"); } c3object_p grid = c3object_new(c3->root); { - for (int x = 0; x < 20; x++) { - for (int y = 0; y < 20; y++) { + for (int x = 0; x <= 20; x++) { + for (int y = 0; y <= 20; y++) { c3vec3 p[4] = { - c3vec3f(-1+x*10,y*10,0), c3vec3f(1+x*10,y*10,0), - c3vec3f(x*10,-1+y*10,0), c3vec3f(x*10,1+y*10,0), + c3vec3f(-1+x*10,y*10,0.01), c3vec3f(1+x*10,y*10,0.01), + c3vec3f(x*10,-1+y*10,0.02), c3vec3f(x*10,1+y*10,0.02), }; c3geometry_p g = c3geometry_new( c3geometry_type(C3_LINES_TYPE, 0), grid); - g->mat.color = c3vec4f(0.0, 0.0, 0.0, 1.0); - g->mat.texture = line_aa_tex->geometry.mat.texture; - g->mat.mode = GL_TEXTURE_2D;//GL_TEXTURE_RECTANGLE_ARB; - g->texture = 1; - c3vertex_array_insert(&g->vertice, - g->vertice.count, p, 4); + g->mat.color = c3vec4f(0.0, 0.0, 0.0, 0.8); + g->mat.texture = line_aa_tex; + c3lines_init(g, p, 4, 0.2); } } } - { + if (0) { c3vec3 p[4] = { - c3vec3f(-5,-5,0), c3vec3f(205,-5,0), + c3vec3f(-5,-5,1), c3vec3f(205,-5,1), }; c3geometry_p g = c3geometry_new( c3geometry_type(C3_LINES_TYPE, 0), grid); - g->mat.color = c3vec4f(0.0, 0.0, 0.0, 0.8); - g->mat.texture = line_aa_tex->geometry.mat.texture; - g->mat.mode = GL_TEXTURE_2D;//GL_TEXTURE_RECTANGLE_ARB; -// g->mat.mode = GL_TEXTURE_RECTANGLE_ARB; - g->texture = 1; + g->mat.color = c3vec4f(0.0, 0.0, 0.0, 1.0); + g->mat.texture = line_aa_tex; + g->line.width = 2; - printf("AA texture is %d\n", line_aa_tex->geometry.mat.texture); c3vertex_array_insert(&g->vertice, g->vertice.count, p, 2); @@ -594,20 +862,34 @@ gl_init( hud = c3context_new(_w, _h); hud->driver = list; + /* + * This is the offscreen framebuffer where the 3D scene is drawn + */ + if (program_postproc) { + c3texture_p b = c3texture_new(hud->root); + + c3pixels_p dst = c3pixels_new(_w, _h, 4, _w * 4, NULL); + dst->name = str_new("fbo"); + dst->texture = fbo_texture; + dst->normalize = 1; + dst->dirty = 0; + // dst->trace = 1; + b->geometry.mat.texture = dst; + b->geometry.mat.program.pid = program_postproc; + b->size = c3vec2f(_w, _h); + b->geometry.mat.color = c3vec4f(1.0, 1.0, 1.0, 1.0); + fbo_c3 = b; + } { c3vec3 p[4] = { - c3vec3f(10,10,0), c3vec3f(700,40,0), + c3vec3f(10,10,0), c3vec3f(800-10,10,0), }; c3geometry_p g = c3geometry_new( c3geometry_type(C3_LINES_TYPE, 0), hud->root); - g->mat.color = c3vec4f(0.0, 0.0, 0.0, 0.8); - g->mat.texture = line_aa_tex->geometry.mat.texture; - g->mat.mode = GL_TEXTURE_2D;//GL_TEXTURE_RECTANGLE_ARB; -// g->mat.mode = GL_TEXTURE_RECTANGLE_ARB; - g->texture = 1; - c3vertex_array_insert(&g->vertice, - g->vertice.count, p, 2); + g->mat.color = c3vec4f(0.5, 0.5, 1.0, .3f); + g->mat.texture = line_aa_tex; + c3lines_init(g, p, 2, 10); } return 1; } diff --git a/examples/shared/libc3/Makefile b/examples/shared/libc3/Makefile new file mode 100644 index 0000000..25ab1db --- /dev/null +++ b/examples/shared/libc3/Makefile @@ -0,0 +1,80 @@ + +VERSION = 0.1.0 +REVISION = 1 + +SHELL := ${shell which bash} + +IPATH += src +VPATH += src + +OBJ = obj-${shell $(CC) -dumpmachine} + +C3SRC = ${wildcard src/*.c} +C3OBJ = ${patsubst src/%,${OBJ}/%,${C3SRC:.c=.lo}} + +CC = clang +PKGCONFIG = pkg-config +LIBTOOL = libtool +INSTALL = install + +CFLAGS = -g -O2 +CPPFLAGS += --std=gnu99 -fPIC +CPPFLAGS += ${patsubst %,-I%,${subst :, ,${IPATH}}} +CPPFLAGS += ${shell $(PKGCONFIG) --cflags pango cairo} + +LDFLAGS += + +DESTDIR = /usr/local + +-include ${wildcard .make.options*} + +all: ${OBJ} src/c3config.h ${OBJ}/libc3.la + +${OBJ}: + mkdir -p ${OBJ} + +ifneq (${V}, 1) +E=@ +LIBTOOL += --quiet +endif + +src/c3config.h: + $(E)rm -f $@ + $(E)echo CONFIG $@ + $(E)( \ + printf "#ifndef __C3_CONFIG__\n#define __C3_CONFIG__\n"; \ + printf "#define CONFIG_C3_VERSION \"$(VERSION)\"\n"; \ + $(PKGCONFIG) --exists pango cairo || printf "// " ; \ + printf "#define CONFIG_C3_CAIRO 1\n"; \ + printf "#endif\n"; \ + ) >$@ + +${OBJ}/libc3.la: ${C3OBJ} + @echo LINK $@ + $(E)$(LIBTOOL) --mode=link --tag=CC \ + $(CC) $(CPPFLAGS) $(CFLAGS) \ + $^ -o $@ \ + -version-info 0:1:0 \ + -rpath $(DESTDIR)/lib $(LDFLAGS) + +${OBJ}/%.lo: src/c3config.h +${OBJ}/%.lo: %.c + @echo CC $< + $(E)$(LIBTOOL) --mode=compile --tag=CC \ + $(CC) $(CPPFLAGS) $(CFLAGS) -MT $@ -MMD \ + $< -c -o $@ + +install: + mkdir -p $(DESTDIR)/lib/pkgconfig $(DESTDIR)/include/c3 + rm -f $(DESTDIR)/lib/libc3* $(DESTDIR)/include/c3/* + $(INSTALL) src/*.h $(DESTDIR)/include/c3/ + cp -a ${OBJ}/.libs/*.a ${OBJ}/.libs/*.so* $(DESTDIR)/lib/ + sed -e 's|PREFIX|${DESTDIR}|g' -e 's|VERSION|${VERSION}|g' \ + libc3.pc >$(DESTDIR)/lib/pkgconfig/libc3.pc + +clean: + rm -rf ${OBJ} + +# include the dependency files generated by gcc, if any +-include ${wildcard ${OBJ}/*.d} + \ No newline at end of file diff --git a/examples/board_reprap/src/c3/README.md b/examples/shared/libc3/README.md similarity index 100% rename from examples/board_reprap/src/c3/README.md rename to examples/shared/libc3/README.md diff --git a/examples/shared/libc3/libc3.pc b/examples/shared/libc3/libc3.pc new file mode 100644 index 0000000..3413e95 --- /dev/null +++ b/examples/shared/libc3/libc3.pc @@ -0,0 +1,12 @@ +libc3.pc: +prefix=PREFIX +exec_prefix=${prefix} +includedir=${prefix}/include +libdir=${exec_prefix}/lib + +Name: libc3 +Description: Lightweight scene graph library in C +Version: VERSION +Cflags: -I${includedir} +Requires.private: pangocairo +Libs: -L${libdir} -llibc3 diff --git a/examples/board_reprap/src/c3/c3.c b/examples/shared/libc3/src/c3.c similarity index 100% rename from examples/board_reprap/src/c3/c3.c rename to examples/shared/libc3/src/c3.c diff --git a/examples/board_reprap/src/c3/c3.h b/examples/shared/libc3/src/c3.h similarity index 85% rename from examples/board_reprap/src/c3/c3.h rename to examples/shared/libc3/src/c3.h index 410fa3e..190ba23 100644 --- a/examples/board_reprap/src/c3/c3.h +++ b/examples/shared/libc3/src/c3.h @@ -23,10 +23,10 @@ #ifndef __C3_H___ #define __C3_H___ -#include "c3/c3context.h" -#include "c3/c3object.h" -#include "c3/c3geometry.h" -#include "c3/c3transform.h" -#include "c3/c3texture.h" +#include "c3context.h" +#include "c3object.h" +#include "c3geometry.h" +#include "c3transform.h" +#include "c3texture.h" #endif /* __C3_H___ */ diff --git a/examples/board_reprap/src/c3/c3algebra.c b/examples/shared/libc3/src/c3algebra.c similarity index 96% rename from examples/board_reprap/src/c3/c3algebra.c rename to examples/shared/libc3/src/c3algebra.c index af816b1..b47525d 100644 --- a/examples/board_reprap/src/c3/c3algebra.c +++ b/examples/shared/libc3/src/c3algebra.c @@ -24,7 +24,7 @@ #include #include -#include "c3/c3algebra.h" +#include "c3algebra.h" #ifndef MAX #define MAX(a,b) ((a)>(b) ? (a) : (b)) @@ -33,7 +33,7 @@ /**************************************************************** * * - * c3vec2 Member functions * + * c3vec2 Member functions * * * ****************************************************************/ @@ -41,13 +41,15 @@ c3vec2 c3vec2_zero() { - c3vec2 n = { .x = 0, .y = 0 }; + c3vec2 n;// = { .x = 0, .y = 0 };// older gcc <4.6 doesn't like this + n.x = n.y = 0; return n; } c3vec2 c3vec2f(c3f x, c3f y) { - c3vec2 v = { .x = x, .y = y }; + c3vec2 v;// = { .x = x, .y = y };// older gcc <4.6 doesn't like this + v.x = x; v.y = y; return v; } @@ -190,19 +192,22 @@ c3vec2 c3vec2_prod(const c3vec2 a, const c3vec2 b) c3vec3 c3vec3_zero() { - c3vec3 n = { .x = 0, .y = 0, .z = 0 }; + c3vec3 n;// = { .x = 0, .y = 0, .z = 0 };// older gcc <4.6 doesn't like this + n.x = n.y = n.z = 0; return n; } c3vec3 c3vec3f(c3f x, c3f y, c3f z) { - c3vec3 v = { .x = x, .y = y, .z = z }; + c3vec3 v;// = { .x = x, .y = y, .z = z };// older gcc <4.6 doesn't like this + v.x = x; v.y = y; v.z = z; return v; } c3vec3 c3vec3_vec2f(const c3vec2 v, c3f d) { - c3vec3 n = { .x = v.x, .y = v.y, .z = d }; + c3vec3 n;// = { .x = v.x, .y = v.y, .z = d }; // older gcc <4.6 doesn't like this + n.x = v.x; n.y = v.y; n.z = d; return n; } @@ -356,13 +361,15 @@ c3vec3 c3vec3_prod(const c3vec3 a, const c3vec3 b) c3vec4 c3vec4_zero() { - c3vec4 n = { .x = 0, .y = 0, .z = 0, .w = 1.0 }; + c3vec4 n ;//= { .x = 0, .y = 0, .z = 0, .w = 1.0 }; // older gcc <4.6 doesn't like this + n.x = n.y = n.z = 0; n.w = 1.0; return n; } c3vec4 c3vec4f(c3f x, c3f y, c3f z, c3f w) { - c3vec4 n = { .x = x, .y = y, .z = z, .w = w }; + c3vec4 n;// = { .x = x, .y = y, .z = z, .w = w }; // older gcc <4.6 doesn't like this + n.x =x; n.y = y; n.z = z; n.w = w; return n; } diff --git a/examples/board_reprap/src/c3/c3algebra.h b/examples/shared/libc3/src/c3algebra.h similarity index 100% rename from examples/board_reprap/src/c3/c3algebra.h rename to examples/shared/libc3/src/c3algebra.h diff --git a/examples/board_reprap/src/c3/c3arcball.c b/examples/shared/libc3/src/c3arcball.c similarity index 99% rename from examples/board_reprap/src/c3/c3arcball.c rename to examples/shared/libc3/src/c3arcball.c index ff412d8..f801651 100644 --- a/examples/board_reprap/src/c3/c3arcball.c +++ b/examples/shared/libc3/src/c3arcball.c @@ -20,7 +20,7 @@ */ #include -#include "c3/c3arcball.h" +#include "c3arcball.h" /**************************************** c3arcball_init_mat4() ****/ diff --git a/examples/board_reprap/src/c3/c3arcball.h b/examples/shared/libc3/src/c3arcball.h similarity index 99% rename from examples/board_reprap/src/c3/c3arcball.h rename to examples/shared/libc3/src/c3arcball.h index 2adba8b..d61c815 100644 --- a/examples/board_reprap/src/c3/c3arcball.h +++ b/examples/shared/libc3/src/c3arcball.h @@ -50,7 +50,7 @@ #ifndef __C3ARCBALL_H___ #define __C3ARCBALL_H___ -#include "c3/c3quaternion.h" +#include "c3quaternion.h" typedef struct c3arcball { int is_mouse_down : 1, /* true for down, false for up */ diff --git a/examples/board_reprap/src/c3/c3cairo.c b/examples/shared/libc3/src/c3cairo.c similarity index 92% rename from examples/board_reprap/src/c3/c3cairo.c rename to examples/shared/libc3/src/c3cairo.c index 840822c..390a5c3 100644 --- a/examples/board_reprap/src/c3/c3cairo.c +++ b/examples/shared/libc3/src/c3cairo.c @@ -20,8 +20,10 @@ */ -#include "c3/c3cairo.h" -#include "c3/c3driver_geometry.h" +#include "c3cairo.h" +#include "c3driver_geometry.h" + +#if CONFIG_C3_CAIRO void _c3cairo_dispose( @@ -87,9 +89,10 @@ c3cairo_new_offscreen( o->surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h); o->cr = cairo_create(o->surface); - c3pixels_init(&o->tex.pixels, w, h, 4, + c3pixels_p dst = c3pixels_new(w, h, 4, cairo_image_surface_get_stride(o->surface), cairo_image_surface_get_data(o->surface)); + o->tex.geometry.mat.texture = dst; return o; } @@ -99,3 +102,4 @@ cairo_surface_destroy(_surface); else cairo_surface_finish(_surface); #endif +#endif // CONFIG_C3_CAIRO diff --git a/examples/board_reprap/src/c3/c3cairo.h b/examples/shared/libc3/src/c3cairo.h similarity index 91% rename from examples/board_reprap/src/c3/c3cairo.h rename to examples/shared/libc3/src/c3cairo.h index 75082b3..75d64b6 100644 --- a/examples/board_reprap/src/c3/c3cairo.h +++ b/examples/shared/libc3/src/c3cairo.h @@ -23,8 +23,11 @@ #ifndef __C3CAIRO_H___ #define __C3CAIRO_H___ -#include "c3/c3texture.h" -#include "c3/c3pixels.h" +#include "c3config.h" +#include "c3texture.h" +#include "c3pixels.h" + +#if CONFIG_C3_CAIRO #include typedef struct c3cairo_t { @@ -47,4 +50,6 @@ c3cairo_new_offscreen( struct c3object_t * parent /* = NULL */, int w, int h); +#endif // CONFIG_C3_CAIRO + #endif /* __C3CAIRO_H___ */ diff --git a/examples/board_reprap/src/c3/c3camera.c b/examples/shared/libc3/src/c3camera.c similarity index 99% rename from examples/board_reprap/src/c3/c3camera.c rename to examples/shared/libc3/src/c3camera.c index 009672b..8e5fef1 100644 --- a/examples/board_reprap/src/c3/c3camera.c +++ b/examples/shared/libc3/src/c3camera.c @@ -21,7 +21,7 @@ */ -#include "c3/c3camera.h" +#include "c3camera.h" void diff --git a/examples/board_reprap/src/c3/c3camera.h b/examples/shared/libc3/src/c3camera.h similarity index 99% rename from examples/board_reprap/src/c3/c3camera.h rename to examples/shared/libc3/src/c3camera.h index cc27c14..1bfc66c 100644 --- a/examples/board_reprap/src/c3/c3camera.h +++ b/examples/shared/libc3/src/c3camera.h @@ -23,7 +23,7 @@ #ifndef __C3VIEW_H___ #define __C3VIEW_H___ -#include "c3/c3algebra.h" +#include "c3algebra.h" typedef struct c3cam { c3vec3 eye, lookat; diff --git a/examples/shared/libc3/src/c3config.h b/examples/shared/libc3/src/c3config.h new file mode 100644 index 0000000..4457994 --- /dev/null +++ b/examples/shared/libc3/src/c3config.h @@ -0,0 +1,5 @@ +#ifndef __C3_CONFIG__ +#define __C3_CONFIG__ +#define CONFIG_C3_VERSION "0.1.0" +#define CONFIG_C3_CAIRO 1 +#endif diff --git a/examples/board_reprap/src/c3/c3context.c b/examples/shared/libc3/src/c3context.c similarity index 94% rename from examples/board_reprap/src/c3/c3context.c rename to examples/shared/libc3/src/c3context.c index 0c0f26a..0ba8367 100644 --- a/examples/board_reprap/src/c3/c3context.c +++ b/examples/shared/libc3/src/c3context.c @@ -20,9 +20,9 @@ */ -#include "c3/c3context.h" -#include "c3/c3object.h" -#include "c3/c3driver_context.h" +#include "c3context.h" +#include "c3object.h" +#include "c3driver_context.h" c3context_p c3context_new( @@ -44,6 +44,9 @@ c3context_init( c->size.y = h; c->root = c3object_new(NULL); c->root->context = c; + + c->cam = c3cam_new(); + return c; } diff --git a/examples/board_reprap/src/c3/c3context.h b/examples/shared/libc3/src/c3context.h similarity index 89% rename from examples/board_reprap/src/c3/c3context.h rename to examples/shared/libc3/src/c3context.h index 00af7e6..f659cf8 100644 --- a/examples/board_reprap/src/c3/c3context.h +++ b/examples/shared/libc3/src/c3context.h @@ -23,8 +23,10 @@ #ifndef __C3CONTEXT_H___ #define __C3CONTEXT_H___ -#include "c3/c3algebra.h" -#include "c3/c3geometry.h" +#include "c3algebra.h" +#include "c3geometry.h" +#include "c3pixels.h" +#include "c3camera.h" //! c3context_t is a container for a 'scene' to be drawn /*! @@ -37,8 +39,12 @@ * TODO: Add the camera/eye/arcball control there */ typedef struct c3context_t { - c3vec2 size; - struct c3object_t * root; + c3vec2 size; + c3cam cam; + + struct c3object_t * root; // root object + c3pixels_array_t pixels; // pixels, textures... + c3geometry_array_t projected; const struct c3driver_context_t ** driver; diff --git a/examples/board_reprap/src/c3/c3driver.h b/examples/shared/libc3/src/c3driver.h similarity index 100% rename from examples/board_reprap/src/c3/c3driver.h rename to examples/shared/libc3/src/c3driver.h diff --git a/examples/board_reprap/src/c3/c3driver_context.h b/examples/shared/libc3/src/c3driver_context.h similarity index 98% rename from examples/board_reprap/src/c3/c3driver_context.h rename to examples/shared/libc3/src/c3driver_context.h index 0f780d4..98f34ab 100644 --- a/examples/board_reprap/src/c3/c3driver_context.h +++ b/examples/shared/libc3/src/c3driver_context.h @@ -23,7 +23,7 @@ #ifndef __C3DRIVER_CONTEXT_H___ #define __C3DRIVER_CONTEXT_H___ -#include "c3/c3driver.h" +#include "c3driver.h" struct c3context_t; struct c3driver_context_t; diff --git a/examples/board_reprap/src/c3/c3driver_geometry.h b/examples/shared/libc3/src/c3driver_geometry.h similarity index 98% rename from examples/board_reprap/src/c3/c3driver_geometry.h rename to examples/shared/libc3/src/c3driver_geometry.h index 46bd101..fa23eb5 100644 --- a/examples/board_reprap/src/c3/c3driver_geometry.h +++ b/examples/shared/libc3/src/c3driver_geometry.h @@ -23,7 +23,7 @@ #ifndef __C3DRIVER_GEOMETRY_H___ #define __C3DRIVER_GEOMETRY_H___ -#include "c3/c3driver.h" +#include "c3driver.h" struct c3geometry_t; diff --git a/examples/board_reprap/src/c3/c3driver_object.h b/examples/shared/libc3/src/c3driver_object.h similarity index 98% rename from examples/board_reprap/src/c3/c3driver_object.h rename to examples/shared/libc3/src/c3driver_object.h index 05a11f2..a809439 100644 --- a/examples/board_reprap/src/c3/c3driver_object.h +++ b/examples/shared/libc3/src/c3driver_object.h @@ -23,7 +23,7 @@ #ifndef __C3DRIVER_OBJECT_H___ #define __C3DRIVER_OBJECT_H___ -#include "c3/c3driver.h" +#include "c3driver.h" struct c3object_t; struct c3geometry_array_t; diff --git a/examples/board_reprap/src/c3/c3geometry.c b/examples/shared/libc3/src/c3geometry.c similarity index 96% rename from examples/board_reprap/src/c3/c3geometry.c rename to examples/shared/libc3/src/c3geometry.c index e041ff2..3abaacc 100644 --- a/examples/board_reprap/src/c3/c3geometry.c +++ b/examples/shared/libc3/src/c3geometry.c @@ -20,10 +20,10 @@ */ -#include "c3/c3object.h" -#include "c3/c3context.h" -#include "c3/c3driver_geometry.h" -#include "c3/c3driver_context.h" +#include "c3object.h" +#include "c3context.h" +#include "c3driver_geometry.h" +#include "c3driver_context.h" static void _c3geometry_dispose( @@ -161,3 +161,5 @@ c3geometry_draw( { C3_DRIVER(g, draw); } + + diff --git a/examples/board_reprap/src/c3/c3geometry.h b/examples/shared/libc3/src/c3geometry.h similarity index 89% rename from examples/board_reprap/src/c3/c3geometry.h rename to examples/shared/libc3/src/c3geometry.h index 2364fb3..82b6156 100644 --- a/examples/board_reprap/src/c3/c3geometry.h +++ b/examples/shared/libc3/src/c3geometry.h @@ -29,14 +29,15 @@ #ifndef __C3GEOMETRY_H___ #define __C3GEOMETRY_H___ -#include "c3/c3algebra.h" +#include "c3algebra.h" #include "c_utils.h" -typedef c3vec3 c3vertex; -typedef c3vec4 c3colorf; -typedef c3vec2 c3tex; +typedef c3vec3 c3vertex, *c3vertex_p; +typedef c3vec4 c3colorf, *c3colorf_p; +typedef c3vec2 c3tex, *c3tex_p; struct c3object_t; +struct c3pixels_t; DECLARE_C_ARRAY(c3vertex, c3vertex_array, 16); DECLARE_C_ARRAY(c3tex, c3tex_array, 16); @@ -45,8 +46,14 @@ DECLARE_C_ARRAY(c3colorf, c3colorf_array, 16); //! Geometry material. TODO: Beef up. Add vertex/fragment programs.. typedef struct c3material_t { c3colorf color; - uint32_t texture; - uint32_t mode; + struct c3pixels_t * texture; +// uint32_t texmode; + struct { + uint32_t src, dst; + } blend; + struct { + uint32_t pid; + } program; } c3material_t; //! Bounding box. TODO: Move to a separate file? @@ -68,7 +75,7 @@ enum { * contains, like "texture", and the subtype can be used to store the * real format of the vertices. like GL_LINES etc */ -typedef union { +typedef union c3geometry_type_t { struct { uint32_t type : 16, subtype : 16; }; uint32_t value; } c3geometry_type_t; @@ -82,7 +89,6 @@ typedef union { typedef struct c3geometry_t { c3geometry_type_t type; // C3_TRIANGLE_TYPE, GL_LINES etc int dirty : 1, - texture : 1, // has a valid material.texture custom : 1; // has a custom driver str_p name; // optional c3material_t mat; @@ -97,6 +103,15 @@ typedef struct c3geometry_t { // projected version of the vertice c3vertex_array_t projected; c3bbox_t bbox; + + /* + * Some shared attributes + */ + union { + struct { + float width; + } line; + }; } c3geometry_t, *c3geometry_p; DECLARE_C_ARRAY(c3geometry_p, c3geometry_array, 4); @@ -161,7 +176,8 @@ IMPLEMENT_C_ARRAY(c3colorf_array); static inline c3geometry_type_t c3geometry_type(int type, int subtype) { - c3geometry_type_t r = { .type = type, .subtype = subtype }; + c3geometry_type_t r;// = { .type = type, .subtype = subtype }; // older gcc <4.6 doesn't like this + r.type = type; r.subtype = subtype; return r; } diff --git a/examples/shared/libc3/src/c3lines.c b/examples/shared/libc3/src/c3lines.c new file mode 100644 index 0000000..9db9047 --- /dev/null +++ b/examples/shared/libc3/src/c3lines.c @@ -0,0 +1,142 @@ +/* + c3lines.c + + Copyright 2008-2012 Michel Pollet + + This file is part of simavr. + + simavr is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + simavr is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with simavr. If not, see . + */ + + +#include "c3object.h" +#include "c3context.h" +#include "c3driver_geometry.h" +#include "c3lines.h" + + +void +c3lines_prepare( + c3vertex_p vertices, // points A,B pairs + size_t count, + c3vertex_array_p v, // triangles + c3tex_array_p tex, + c3f lineWidth, + c3mat4p m) +{ + c3tex_array_clear(tex); + c3vertex_array_clear(v); + for (int l = 0; l < count; l += 2) { + c3vec3 a = c3mat4_mulv3(m, vertices[l]); + c3vec3 b = c3mat4_mulv3(m, vertices[l+1]); + + c3vec3 e = c3vec3_mulf(c3vec3_normalize(c3vec3_sub(b, a)), lineWidth); + + c3vec3 N = c3vec3f(-e.y, e.x, 0); + c3vec3 S = c3vec3_minus(N); + c3vec3 NE = c3vec3_add(N, e); + c3vec3 NW = c3vec3_sub(N, e); + c3vec3 SW = c3vec3_minus(NE); + c3vec3 SE = c3vec3_minus(NW); +#if 0 + c3vertex_array_add(v, c3vec3_add(a, SW)); + c3vertex_array_add(v, c3vec3_add(a, NW)); + c3vertex_array_add(v, c3vec3_add(a, S)); + c3vertex_array_add(v, c3vec3_add(a, N)); + c3vertex_array_add(v, c3vec3_add(b, S)); + c3vertex_array_add(v, c3vec3_add(b, N)); + c3vertex_array_add(v, c3vec3_add(b, SE)); + c3vertex_array_add(v, c3vec3_add(b, NE)); +#endif + + const float ts = 1; + + c3vertex_array_add(v, c3vec3_add(a, SW)); + c3vertex_array_add(v, c3vec3_add(a, S)); + c3vertex_array_add(v, c3vec3_add(a, NW)); + c3tex_array_add(tex, c3vec2f(ts * 0 , ts * 0 )); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); + c3tex_array_add(tex, c3vec2f(ts * 0 , ts * 1 )); + + c3vertex_array_add(v, c3vec3_add(a, S)); + c3vertex_array_add(v, c3vec3_add(a, N)); + c3vertex_array_add(v, c3vec3_add(a, NW)); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); + c3tex_array_add(tex, c3vec2f(ts * 0 , ts * 1 )); + + c3vertex_array_add(v, c3vec3_add(a, N)); + c3vertex_array_add(v, c3vec3_add(b, S)); + c3vertex_array_add(v, c3vec3_add(b, N)); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); + + c3vertex_array_add(v, c3vec3_add(a, N)); + c3vertex_array_add(v, c3vec3_add(a, S)); + c3vertex_array_add(v, c3vec3_add(b, S)); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); + + c3vertex_array_add(v, c3vec3_add(b, N)); + c3vertex_array_add(v, c3vec3_add(b, S)); + c3vertex_array_add(v, c3vec3_add(b, SE)); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 0 )); + c3tex_array_add(tex, c3vec2f(ts * 1 , ts * 0 )); + + c3vertex_array_add(v, c3vec3_add(b, N)); + c3vertex_array_add(v, c3vec3_add(b, SE)); + c3vertex_array_add(v, c3vec3_add(b, NE)); + c3tex_array_add(tex, c3vec2f(ts * 0.5, ts * 1 )); + c3tex_array_add(tex, c3vec2f(ts * 1 , ts * 0 )); + c3tex_array_add(tex, c3vec2f(ts * 1 , ts * 1 )); + + } +} + +void +c3lines_init( + c3geometry_p g, + c3vertex_p vertices, // points A,B pairs + size_t count, + c3f lineWidth) +{ + c3mat4 i = identity3D(); + c3lines_prepare(vertices, count, &g->vertice, &g->textures, lineWidth, &i); + g->type.type = C3_LINES_TYPE; +} + +#if 0 +static void +_c3lines_project( + c3geometry_p g, + const struct c3driver_geometry_t *d, + c3mat4p m) + +const c3driver_geometry_t c3lines_driver = { + .project = _c3lines_project, +}; + +const c3driver_geometry_t c3geometry_driver; + +c3geometry_set_lines( + c3f lineWidth) +{ + static const c3driver_geometry_t * list[] = { + &c3lines_driver, &c3geometry_driver, NULL, + }; +} +#endif diff --git a/examples/shared/libc3/src/c3lines.h b/examples/shared/libc3/src/c3lines.h new file mode 100644 index 0000000..7befe47 --- /dev/null +++ b/examples/shared/libc3/src/c3lines.h @@ -0,0 +1,50 @@ +/* + c3lines.h + + Copyright 2008-2012 Michel Pollet + + This file is part of simavr. + + simavr is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + simavr is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with simavr. If not, see . + */ + + +#ifndef __C3LINES_H___ +#define __C3LINES_H___ + +#include "c3geometry.h" + +/* + * Takes an array of points A,B and split it into 'fat' lines around + * lineWidth, generates an array of triangles and an array of corresponding + * texture cordinates. Can also do a projection at the same time + * TODO: Add array indexes + */ +void +c3lines_prepare( + c3vertex_p vertices, // points A,B pairs + size_t count, + c3vertex_array_p v, // triangles + c3tex_array_p tex, + c3f lineWidth, + c3mat4p m); + +void +c3lines_init( + c3geometry_p g, + c3vertex_p vertices, // points A,B pairs + size_t count, + c3f lineWidth); + +#endif /* __C3LINES_H___ */ diff --git a/examples/board_reprap/src/c3/c3object.c b/examples/shared/libc3/src/c3object.c similarity index 95% rename from examples/board_reprap/src/c3/c3object.c rename to examples/shared/libc3/src/c3object.c index 50d46e4..52cbab3 100644 --- a/examples/board_reprap/src/c3/c3object.c +++ b/examples/shared/libc3/src/c3object.c @@ -20,8 +20,8 @@ */ -#include "c3/c3object.h" -#include "c3/c3driver_object.h" +#include "c3object.h" +#include "c3driver_object.h" void _c3object_clear( @@ -89,6 +89,7 @@ _c3object_project( for (int pi = 0; pi < o->transform.count; pi++) p = c3mat4_mul(&p, &o->transform.e[pi]->matrix); // bool is_identity = c3mat4_equal(m, &identity); + o->world = p; for (int gi = 0; gi < o->geometry.count; gi++) { c3geometry_p g = o->geometry.e[gi]; @@ -156,6 +157,10 @@ c3object_set_dirty( bool dirty) { if (dirty) { + // also mark all our geometry dirty + for (int oi = 0; oi < o->geometry.count; oi++) + if (o->geometry.e[oi]) + o->geometry.e[oi]->dirty = 1; while (o) { o->dirty = true; o = o->parent; diff --git a/examples/board_reprap/src/c3/c3object.h b/examples/shared/libc3/src/c3object.h similarity index 97% rename from examples/board_reprap/src/c3/c3object.h rename to examples/shared/libc3/src/c3object.h index 1ee1d9c..78122fa 100644 --- a/examples/board_reprap/src/c3/c3object.h +++ b/examples/shared/libc3/src/c3object.h @@ -24,8 +24,8 @@ #define __C3OBJECT_H___ #include -#include "c3/c3transform.h" -#include "c3/c3geometry.h" +#include "c3transform.h" +#include "c3geometry.h" struct c3object_t; @@ -50,6 +50,8 @@ typedef struct c3object_t { struct c3context_t * context; //! context this object is attached to struct c3object_t * parent; //! Parent object const struct c3driver_object_t ** driver; //! Driver stack + + c3mat4 world; // calculated world coordinates c3transform_array_t transform; c3object_array_t objects; //! child object list c3geometry_array_t geometry; //! Object geometri(es) diff --git a/examples/board_reprap/src/c3/c3pixels.c b/examples/shared/libc3/src/c3pixels.c similarity index 100% rename from examples/board_reprap/src/c3/c3pixels.c rename to examples/shared/libc3/src/c3pixels.c diff --git a/examples/board_reprap/src/c3/c3pixels.h b/examples/shared/libc3/src/c3pixels.h similarity index 88% rename from examples/board_reprap/src/c3/c3pixels.h rename to examples/shared/libc3/src/c3pixels.h index 8e7d1d2..1952123 100644 --- a/examples/board_reprap/src/c3/c3pixels.h +++ b/examples/shared/libc3/src/c3pixels.h @@ -24,6 +24,7 @@ #define __C3PIXELS_H___ #include +#include "c_utils.h" //! for format hint enum { @@ -33,6 +34,7 @@ enum { }; typedef struct c3pixels_t { + str_p name; // optional uint32_t w, h; // width & height in pixels size_t row; // size of one row in bytes void * base; // base address @@ -43,13 +45,18 @@ typedef struct c3pixels_t { alloc : 1, // is the c3pixels_p our own to delete dirty : 1, // pixels have been changed psize : 4, // pixel size in byte + normalize : 1, // texture coordinates are 0...1 + trace : 1, // debug format : 8; // not used internally }; uint32_t flags; }; - int refCount; // TODO: Implement reference counting ? + uint32_t texture; + int refCount; // TODO: Implement reference counting ? } c3pixels_t, *c3pixels_p; +DECLARE_C_ARRAY(c3pixels_p, c3pixels_array, 4); + //! Allocates a new c3pixels, also allocates the pixels if row == NULL c3pixels_p c3pixels_new( @@ -98,4 +105,6 @@ void c3pixels_zero( c3pixels_p p); +IMPLEMENT_C_ARRAY(c3pixels_array); + #endif /* __C3PIXELS_H___ */ diff --git a/examples/board_reprap/src/c3/c3quaternion.c b/examples/shared/libc3/src/c3quaternion.c similarity index 99% rename from examples/board_reprap/src/c3/c3quaternion.c rename to examples/shared/libc3/src/c3quaternion.c index a0816bf..10dd468 100644 --- a/examples/board_reprap/src/c3/c3quaternion.c +++ b/examples/shared/libc3/src/c3quaternion.c @@ -20,7 +20,7 @@ */ #include -#include "c3/c3quaternion.h" +#include "c3quaternion.h" #ifndef DEG2RAD #define DEG2RAD(x) ((x)/180.0*M_PI) diff --git a/examples/board_reprap/src/c3/c3quaternion.h b/examples/shared/libc3/src/c3quaternion.h similarity index 98% rename from examples/board_reprap/src/c3/c3quaternion.h rename to examples/shared/libc3/src/c3quaternion.h index 6e3f042..92bf35d 100644 --- a/examples/board_reprap/src/c3/c3quaternion.h +++ b/examples/shared/libc3/src/c3quaternion.h @@ -24,7 +24,7 @@ #define __C3QUATERNION_H___ #include -#include "c3/c3algebra.h" +#include "c3algebra.h" typedef struct c3quat { c3vec3 v; /* vector component */ diff --git a/examples/board_reprap/src/c3/c3stl.c b/examples/shared/libc3/src/c3stl.c similarity index 96% rename from examples/board_reprap/src/c3/c3stl.c rename to examples/shared/libc3/src/c3stl.c index 248094e..c42709b 100644 --- a/examples/board_reprap/src/c3/c3stl.c +++ b/examples/shared/libc3/src/c3stl.c @@ -20,10 +20,10 @@ */ #include -#include "c3/c3algebra.h" -#include "c3/c3geometry.h" -#include "c3/c3object.h" -#include "c3/c3stl.h" +#include "c3algebra.h" +#include "c3geometry.h" +#include "c3object.h" +#include "c3stl.h" enum { vertex_None = -1, @@ -64,6 +64,7 @@ c3stl_load( c3object_p o = c3object_new(parent); c3geometry_p current_g = NULL; + o->name = str_new(filename); int state = 0; while (!feof(f)) { diff --git a/examples/board_reprap/src/c3/c3stl.h b/examples/shared/libc3/src/c3stl.h similarity index 100% rename from examples/board_reprap/src/c3/c3stl.h rename to examples/shared/libc3/src/c3stl.h diff --git a/examples/board_reprap/src/c3/c3texture.c b/examples/shared/libc3/src/c3texture.c similarity index 78% rename from examples/board_reprap/src/c3/c3texture.c rename to examples/shared/libc3/src/c3texture.c index 2230378..9d9d427 100644 --- a/examples/board_reprap/src/c3/c3texture.c +++ b/examples/shared/libc3/src/c3texture.c @@ -20,16 +20,16 @@ */ +#include #include "c3texture.h" -#include "c3/c3driver_geometry.h" +#include "c3driver_geometry.h" void _c3texture_dispose( c3geometry_p g, const c3driver_geometry_t * d) { - c3texture_p t = (c3texture_p)g; - c3pixels_dispose(&t->pixels); +// c3texture_p t = (c3texture_p)g; C3_DRIVER_INHERITED(g, d, dispose); } @@ -40,24 +40,30 @@ _c3texture_project( c3mat4p m) { c3texture_p t = (c3texture_p)g; - if (!t->pixels.base) { + c3pixels_p p = t->geometry.mat.texture; + if (!p) { C3_DRIVER_INHERITED(g, d, project, m); return; } + c3vec2 qs = c3vec2f( + t->size.x > 0 ? t->size.x : p->w, + t->size.y > 0 ? t->size.y : p->h); c3vec3 v[4] = { - c3vec3f(0, 0, 0), c3vec3f(t->pixels.w, 0, 0), - c3vec3f(t->pixels.w, t->pixels.h, 0), c3vec3f(0, t->pixels.h, 0) + c3vec3f(0, 0, 0), c3vec3f(qs.x, 0, 0), + c3vec3f(qs.x, qs.y, 0), c3vec3f(0, qs.y, 0) }; c3vertex_array_clear(&g->vertice); c3vertex_array_realloc(&g->vertice, 4); c3vertex_array_insert(&g->vertice, 0, v, 4); + c3f tw = p->normalize ? 1.0 : p->w, + th = p->normalize ? 1.0 : p->h; c3vec2 ti[4] = { - c3vec2f(0, 0), c3vec2f(1, 0), - c3vec2f(1, 1), c3vec2f(0, 1) -// c3vec2f(0, 0), c3vec2f(t->pixels.w, 0), -// c3vec2f(t->pixels.w, t->pixels.h), c3vec2f(0, t->pixels.h) + c3vec2f(0, th), c3vec2f(tw, th), + c3vec2f(tw, 0), c3vec2f(0, 0) }; + if (p->trace) + printf("%s size %.0fx%.0f tex %.0fx%.0f\n", __func__, qs.x, qs.y, tw, th); c3tex_array_clear(&t->geometry.textures); c3tex_array_realloc(&t->geometry.textures, 4); c3tex_array_insert(&t->geometry.textures, 0, ti, 4); diff --git a/examples/board_reprap/src/c3/c3texture.h b/examples/shared/libc3/src/c3texture.h similarity index 87% rename from examples/board_reprap/src/c3/c3texture.h rename to examples/shared/libc3/src/c3texture.h index 97328c5..1a3af62 100644 --- a/examples/board_reprap/src/c3/c3texture.h +++ b/examples/shared/libc3/src/c3texture.h @@ -23,12 +23,14 @@ #ifndef __C3TEXTURE_H___ #define __C3TEXTURE_H___ -#include "c3/c3geometry.h" -#include "c3/c3pixels.h" +#include "c3geometry.h" +#include "c3pixels.h" typedef struct c3texture_t { c3geometry_t geometry; - c3pixels_t pixels; +// c3pixels_t pixels; +// int normalized : 1; // use 0.. 1 texture coordinates + c3vec2 size; // quad size } c3texture_t, *c3texture_p; c3texture_p diff --git a/examples/board_reprap/src/c3/c3transform.c b/examples/shared/libc3/src/c3transform.c similarity index 98% rename from examples/board_reprap/src/c3/c3transform.c rename to examples/shared/libc3/src/c3transform.c index 4c68b6b..a453ad7 100644 --- a/examples/board_reprap/src/c3/c3transform.c +++ b/examples/shared/libc3/src/c3transform.c @@ -20,7 +20,7 @@ */ -#include "c3/c3object.h" +#include "c3object.h" c3transform_p c3transform_new( diff --git a/examples/board_reprap/src/c3/c3transform.h b/examples/shared/libc3/src/c3transform.h similarity index 97% rename from examples/board_reprap/src/c3/c3transform.h rename to examples/shared/libc3/src/c3transform.h index 9a50e3b..63e8f38 100644 --- a/examples/board_reprap/src/c3/c3transform.h +++ b/examples/shared/libc3/src/c3transform.h @@ -23,7 +23,7 @@ #ifndef __C3TRANSFORM_H___ #define __C3TRANSFORM_H___ -#include "c3/c3algebra.h" +#include "c3algebra.h" #include "c_utils.h" typedef struct c3transform_t { diff --git a/examples/board_reprap/src/c3/c_array.h b/examples/shared/libc3/src/c_array.h similarity index 100% rename from examples/board_reprap/src/c3/c_array.h rename to examples/shared/libc3/src/c_array.h diff --git a/examples/board_reprap/src/c3/c_utils.c b/examples/shared/libc3/src/c_utils.c similarity index 100% rename from examples/board_reprap/src/c3/c_utils.c rename to examples/shared/libc3/src/c_utils.c diff --git a/examples/board_reprap/src/c3/c_utils.h b/examples/shared/libc3/src/c_utils.h similarity index 100% rename from examples/board_reprap/src/c3/c_utils.h rename to examples/shared/libc3/src/c_utils.h -- 2.39.5