From 18af5226ba8ddbcd9bb9f8eebbbc7d5f515d71b6 Mon Sep 17 00:00:00 2001 From: Matt Pharr Date: Tue, 21 Jun 2011 06:23:29 -0700 Subject: [PATCH] Initial commit. --- .gitignore | 2 + LICENSE.txt | 116 + Makefile | 118 + READMErst.txt | 22 + bitcode2cpp.py | 34 + builtins.cpp | 617 +++ builtins.h | 58 + ctx.cpp | 1903 +++++++ ctx.h | 507 ++ decl.cpp | 348 ++ decl.h | 203 + docs/build.sh | 7 + docs/ispc.txt | 2640 ++++++++++ doxygen.cfg | 1685 ++++++ examples/README.txt | 88 + examples/aobench/Makefile | 26 + examples/aobench/ao.cpp | 182 + examples/aobench/ao.ispc | 317 ++ examples/aobench/ao_serial.cpp | 314 ++ examples/aobench/aobench.vcxproj | 161 + examples/aobench_instrumented/Makefile | 26 + examples/aobench_instrumented/ao.cpp | 148 + examples/aobench_instrumented/ao.ispc | 317 ++ .../aobench_instrumented.vcxproj | 161 + examples/aobench_instrumented/instrument.cpp | 94 + examples/aobench_instrumented/instrument.h | 45 + examples/examples.sln | 86 + examples/mandelbrot/Makefile | 26 + examples/mandelbrot/mandelbrot.cpp | 117 + examples/mandelbrot/mandelbrot.ispc | 76 + examples/mandelbrot/mandelbrot.vcxproj | 161 + examples/mandelbrot/mandelbrot_serial.cpp | 68 + examples/mandelbrot_tasks/Makefile | 38 + examples/mandelbrot_tasks/mandelbrot.cpp | 120 + examples/mandelbrot_tasks/mandelbrot.ispc | 86 + .../mandelbrot_tasks/mandelbrot_serial.cpp | 68 + .../mandelbrot_tasks/mandelbrot_tasks.vcxproj | 162 + examples/mandelbrot_tasks/tasks_concrt.cpp | 115 + examples/mandelbrot_tasks/tasks_gcd.cpp | 90 + examples/mandelbrot_tasks/tasks_pthreads.cpp | 285 ++ examples/options/Makefile | 26 + examples/options/options.cpp | 151 + examples/options/options.ispc | 103 + examples/options/options.vcxproj | 168 + examples/options/options_defs.h | 42 + examples/options/options_serial.cpp | 114 + examples/rt/Makefile | 24 + examples/rt/cornell.bvh | Bin 0 -> 2208 bytes examples/rt/cornell.camera | Bin 0 -> 136 bytes examples/rt/rt.cpp | 244 + examples/rt/rt.ispc | 273 + examples/rt/rt.vcxproj | 165 + examples/rt/rt_serial.cpp | 288 ++ examples/rt/sponza.bvh | Bin 0 -> 6269120 bytes examples/rt/sponza.camera | Bin 0 -> 136 bytes examples/rt/teapot.bvh | Bin 0 -> 225008 bytes examples/rt/teapot.camera | Bin 0 -> 136 bytes examples/simple/Makefile | 25 + examples/simple/simple.cpp | 63 + examples/simple/simple.ispc | 53 + examples/simple/simple.vcxproj | 164 + examples/timing.h | 67 + expr.cpp | 4519 +++++++++++++++++ expr.h | 543 ++ failing_tests/max-uint-1.ispc | 19 + failing_tests/max-uint.ispc | 8 + failing_tests/min-uint-1.ispc | 19 + failing_tests/min-uint-2.ispc | 19 + failing_tests/struct-array-assign.ispc | 11 + ispc.cpp | 137 + ispc.h | 313 ++ ispc.sln | 25 + ispc.vcxproj | 216 + ispc_test.cpp | 313 ++ ispc_test.vcxproj | 88 + lex.ll | 426 ++ llvmutil.cpp | 329 ++ llvmutil.h | 157 + main.cpp | 330 ++ module.cpp | 1431 ++++++ module.h | 113 + opt.cpp | 2251 ++++++++ opt.h | 50 + parse.yy | 1138 +++++ run_tests.sh | 43 + stdlib-avx.ll | 589 +++ stdlib-c.c | 141 + stdlib-sse.ll | 441 ++ stdlib-sse2.ll | 328 ++ stdlib-sse4.ll | 248 + stdlib-sse4x2.ll | 703 +++ stdlib.ispc | 1605 ++++++ stdlib.m4 | 835 +++ stdlib2cpp.py | 11 + stmt.cpp | 1561 ++++++ stmt.h | 302 ++ sym.cpp | 326 ++ sym.h | 264 + tests/array-1.ispc | 14 + tests/array-assignment-varying-control.ispc | 24 + tests/array-gather-ifs.ispc | 24 + tests/array-gather-multi-unif.ispc | 22 + tests/array-gather-simple.ispc | 19 + tests/array-gather-unif-runflags.ispc | 24 + tests/array-gather-unif.ispc | 17 + tests/array-gather-vary.ispc | 17 + tests/array-mixed-unif-vary-indexing-2.ispc | 17 + tests/array-mixed-unif-vary-indexing-3.ispc | 20 + tests/array-mixed-unif-vary-indexing.ispc | 17 + tests/array-multidim-gather-scatter.ispc | 18 + tests/array-multidim-gather.ispc | 21 + tests/array-scatter-unif-2.ispc | 17 + tests/array-scatter-unif-3.ispc | 17 + tests/array-scatter-unif.ispc | 20 + tests/array-scatter-vary.ispc | 20 + tests/array-struct-gather.ispc | 26 + tests/array.ispc | 24 + tests/bitnot.ispc | 12 + tests/bool-float-typeconv.ispc | 10 + tests/c-cif-nested-continue.ispc | 21 + tests/c-do-2.ispc | 17 + tests/c-do-3.ispc | 17 + tests/c-for-loop-nested-continues.ispc | 22 + tests/c-for-unif-test-vary-break.ispc | 18 + tests/c-test-108.ispc | 19 + tests/c-test-131.ispc | 19 + tests/c-test-133.ispc | 18 + tests/c-test-134.ispc | 23 + tests/c-test-135.ispc | 23 + tests/c-test-136.ispc | 23 + tests/c-test-62.ispc | 18 + tests/c-test-63.ispc | 18 + tests/c-test-64.ispc | 26 + tests/c-test-65.ispc | 23 + tests/c-test-66.ispc | 24 + tests/c-test-67.ispc | 18 + tests/c-test-68.ispc | 21 + tests/c-test-69.ispc | 22 + tests/c-test-70.ispc | 26 + tests/c-test-71.ispc | 26 + tests/c-test-76.ispc | 18 + tests/c-test-77.ispc | 18 + tests/c-test-78.ispc | 14 + tests/c-test-79.ispc | 14 + tests/c-test-80.ispc | 15 + tests/c-test-81.ispc | 15 + tests/cfor-array-gather-ifs.ispc | 24 + tests/cfor-array-gather-unif-runflags.ispc | 24 + tests/cfor-array-gather-unif.ispc | 17 + tests/cfor-array-gather-vary.ispc | 17 + tests/cfor-array-multidim-gather.ispc | 21 + tests/cfor-array-struct-gather.ispc | 26 + tests/cfor-array.ispc | 24 + tests/cfor-c-cif-nested-continue.ispc | 35 + tests/cfor-c-for-loop-nested-continues.ispc | 36 + tests/cfor-c-for-unif-test-vary-break.ispc | 31 + tests/cfor-c-test-108.ispc | 19 + tests/cfor-c-test-131.ispc | 19 + tests/cfor-c-test-133.ispc | 19 + tests/cfor-c-test-134.ispc | 22 + tests/cfor-c-test-135.ispc | 22 + tests/cfor-c-test-136.ispc | 22 + tests/cfor-c-test-62.ispc | 19 + tests/cfor-c-test-63.ispc | 19 + tests/cfor-c-test-64.ispc | 24 + tests/cfor-c-test-65.ispc | 22 + tests/cfor-c-test-66.ispc | 23 + tests/cfor-c-test-67.ispc | 18 + tests/cfor-c-test-68.ispc | 20 + tests/cfor-c-test-69.ispc | 21 + tests/cfor-c-test-70.ispc | 24 + tests/cfor-c-test-71.ispc | 24 + tests/cfor-c-test-76.ispc | 19 + tests/cfor-c-test-77.ispc | 19 + tests/cfor-c-test-78.ispc | 14 + tests/cfor-c-test-79.ispc | 15 + tests/cfor-cif-nested-continue.ispc | 35 + tests/cfor-const-fold-4.ispc | 19 + tests/cfor-for-loop-nested-continues.ispc | 21 + tests/cfor-for-unif-test-vary-break.ispc | 16 + tests/cfor-gs-double-improve-multidim-1.ispc | 16 + tests/cfor-gs-double-improve-multidim-2.ispc | 16 + tests/cfor-gs-double-improve-multidim-3.ispc | 16 + ...r-gs-double-improve-multidim-struct-1.ispc | 22 + ...for-gs-double-improve-multidim-struct.ispc | 22 + tests/cfor-gs-double-improve-multidim.ispc | 16 + tests/cfor-gs-double-improve-varying-1.ispc | 15 + tests/cfor-gs-double-improve-varying.ispc | 15 + tests/cfor-gs-improve-multidim-1.ispc | 19 + tests/cfor-gs-improve-multidim-2.ispc | 16 + tests/cfor-gs-improve-multidim-3.ispc | 17 + tests/cfor-gs-improve-multidim-struct-1.ispc | 22 + tests/cfor-gs-improve-multidim-struct.ispc | 22 + tests/cfor-gs-improve-multidim.ispc | 17 + tests/cfor-gs-improve-varying-1.ispc | 15 + tests/cfor-gs-improve-varying.ispc | 14 + tests/cfor-ref-5.ispc | 20 + tests/cfor-ref-6.ispc | 26 + tests/cfor-ref-7.ispc | 25 + tests/cfor-struct-gather-2.ispc | 23 + tests/cfor-struct-gather-3.ispc | 23 + tests/cfor-struct-gather.ispc | 19 + tests/cfor-struct-test-114.ispc | 25 + tests/cfor-test-101.ispc | 26 + tests/cfor-test-108.ispc | 19 + tests/cfor-test-131.ispc | 20 + tests/cfor-test-133.ispc | 18 + tests/cfor-test-134.ispc | 24 + tests/cfor-test-135.ispc | 24 + tests/cfor-test-136.ispc | 24 + tests/cfor-test-61.ispc | 16 + tests/cfor-test-62.ispc | 18 + tests/cfor-test-63.ispc | 18 + tests/cfor-test-64.ispc | 26 + tests/cfor-test-65.ispc | 24 + tests/cfor-test-66.ispc | 25 + tests/cfor-test-67.ispc | 19 + tests/cfor-test-68.ispc | 21 + tests/cfor-test-69.ispc | 25 + tests/cfor-test-70.ispc | 26 + tests/cfor-test-71.ispc | 28 + tests/cfor-test-72.ispc | 13 + tests/cfor-test-73.ispc | 16 + tests/cfor-test-74.ispc | 16 + tests/cfor-test-75.ispc | 17 + tests/cfor-test-76.ispc | 18 + tests/cfor-test-77.ispc | 18 + tests/cfor-test-78.ispc | 15 + tests/cfor-test-79.ispc | 15 + tests/cfor-test-89.ispc | 18 + tests/cfor-test-90.ispc | 19 + tests/cfor-test-91.ispc | 21 + tests/cfor-test-95.ispc | 17 + tests/cfor-test-96.ispc | 18 + tests/cfor-unif-struct-test-114.ispc | 23 + tests/cif-nested-continue.ispc | 21 + tests/const-fold-1.ispc | 13 + tests/const-fold-2.ispc | 13 + tests/const-fold-3.ispc | 13 + tests/const-fold-4.ispc | 19 + tests/const-fold-const-sym-1.ispc | 12 + tests/const-fold-const-sym-2.ispc | 13 + tests/const-fold-const-sym-3.ispc | 13 + tests/const-fold-const-sym.ispc | 12 + tests/cwhile-test-59.ispc | 18 + tests/cwhile-test-60.ispc | 15 + tests/cwhile-test-80.ispc | 15 + tests/cwhile-test-81.ispc | 15 + tests/default-args-1.ispc | 12 + tests/default-args-2.ispc | 13 + tests/default-args-3.ispc | 16 + tests/default-args-4.ispc | 16 + tests/do-1.ispc | 15 + tests/do-2.ispc | 17 + tests/do-3.ispc | 16 + tests/double-1.ispc | 10 + tests/double-2.ispc | 10 + tests/double-3.ispc | 16 + tests/double-4.ispc | 16 + tests/double-5.ispc | 15 + tests/double-mask-test.ispc | 17 + tests/double.ispc | 10 + tests/for-loop-nested-continues.ispc | 21 + tests/for-unif-test-vary-break.ispc | 16 + tests/global-const-initializer.ispc | 12 + tests/global-initializer.ispc | 12 + tests/gs-double-improve-multidim-1.ispc | 16 + tests/gs-double-improve-multidim-2.ispc | 16 + tests/gs-double-improve-multidim-3.ispc | 16 + .../gs-double-improve-multidim-struct-1.ispc | 22 + tests/gs-double-improve-multidim-struct.ispc | 22 + tests/gs-double-improve-multidim.ispc | 16 + ...s-double-improve-progindex-plus-const.ispc | 13 + ...gs-double-improve-progindex-plus-unif.ispc | 12 + tests/gs-double-improve-progindex.ispc | 12 + tests/gs-double-improve-unif.ispc | 12 + tests/gs-double-improve-vary-one.ispc | 13 + tests/gs-double-improve-vary-zero.ispc | 13 + tests/gs-double-improve-varying-1.ispc | 15 + tests/gs-double-improve-varying.ispc | 15 + tests/gs-improve-multidim-1.ispc | 19 + tests/gs-improve-multidim-2.ispc | 16 + tests/gs-improve-multidim-3.ispc | 17 + tests/gs-improve-multidim-struct-1.ispc | 22 + tests/gs-improve-multidim-struct.ispc | 22 + tests/gs-improve-multidim.ispc | 17 + tests/gs-improve-progindex-plus-const.ispc | 13 + tests/gs-improve-progindex-plus-unif.ispc | 13 + tests/gs-improve-progindex.ispc | 15 + tests/gs-improve-unif.ispc | 13 + tests/gs-improve-vary-one.ispc | 13 + tests/gs-improve-vary-zero.ispc | 13 + tests/gs-improve-varying-1.ispc | 15 + tests/gs-improve-varying.ispc | 14 + tests/load-int16-1.ispc | 13 + tests/load-int16.ispc | 12 + tests/load-int8-1.ispc | 12 + tests/load-int8.ispc | 11 + tests/masked-scatter-struct.ispc | 25 + tests/masked-scatter-vector.ispc | 23 + tests/masked-struct-scatter-varying.ispc | 24 + tests/max-float-1.ispc | 11 + tests/max-float-2.ispc | 12 + tests/max-int-1.ispc | 13 + tests/max-int.ispc | 13 + tests/min-float-1.ispc | 11 + tests/min-float.ispc | 11 + tests/min-int-1.ispc | 13 + tests/min-int.ispc | 13 + tests/movmsk-opt.ispc | 35 + tests/nested-structs-2.ispc | 22 + tests/nested-structs.ispc | 20 + tests/op-plus-equals-ensure-one-lhs-eval.ispc | 13 + tests/packed-load-1.ispc | 14 + tests/packed-load-2.ispc | 18 + tests/packed-load-3.ispc | 16 + tests/packed-load-4.ispc | 19 + tests/packed-load-5.ispc | 22 + tests/packed-store-1.ispc | 14 + tests/packed-store-2.ispc | 17 + tests/packed-store-3.ispc | 15 + tests/packed-store.ispc | 13 + tests/pass-varying-lvalue-to-ref.ispc | 16 + tests/popcnt-1.ispc | 15 + tests/popcnt-2.ispc | 26 + tests/popcnt-3.ispc | 11 + tests/pow-0.ispc | 24 + tests/pow-1.ispc | 24 + tests/pow-2.ispc | 24 + tests/pow-3.ispc | 24 + tests/pow-4.ispc | 24 + tests/pow-5.ispc | 24 + tests/pow-6.ispc | 24 + tests/pow-7.ispc | 24 + tests/pow-8.ispc | 24 + tests/pow-9.ispc | 24 + tests/recursion-forward-func-decl.ispc | 22 + tests/recursion.ispc | 22 + tests/reduce-add-float-1.ispc | 22 + tests/reduce-add-float-2.ispc | 21 + tests/reduce-add-float.ispc | 14 + tests/reduce-add-int-1.ispc | 22 + tests/reduce-add-int.ispc | 22 + tests/reduce-add-uint-1.ispc | 21 + tests/reduce-add-uint.ispc | 15 + tests/reduce-max-float.ispc | 14 + tests/reduce-max-int.ispc | 14 + tests/reduce-max-uint.ispc | 14 + tests/reduce-min-float.ispc | 14 + tests/reduce-min-int.ispc | 14 + tests/reduce-min-uint.ispc | 14 + tests/ref-0.ispc | 16 + tests/ref-1.ispc | 16 + tests/ref-2.ispc | 17 + tests/ref-3.ispc | 21 + tests/ref-4.ispc | 21 + tests/ref-5.ispc | 20 + tests/ref-6.ispc | 26 + tests/ref-7.ispc | 25 + ...ssignment-struct-unsized-array-as-ptr.ispc | 18 + tests/reference-assignment-typeconv.ispc | 19 + tests/reference-assignment.ispc | 18 + tests/reference-prepost-increment.ispc | 21 + tests/scatter-struct.ispc | 36 + tests/scatter-vector.ispc | 39 + tests/short-circuit.ispc | 14 + tests/short-vec-1.ispc | 16 + tests/short-vec-10.ispc | 29 + tests/short-vec-11.ispc | 29 + tests/short-vec-12.ispc | 26 + tests/short-vec-13.ispc | 28 + tests/short-vec-14.ispc | 27 + tests/short-vec-15.ispc | 20 + tests/short-vec-16.ispc | 21 + tests/short-vec-17.ispc | 21 + tests/short-vec-18.ispc | 21 + tests/short-vec-19.ispc | 21 + tests/short-vec-2.ispc | 15 + tests/short-vec-3.ispc | 15 + tests/short-vec-4.ispc | 19 + tests/short-vec-5.ispc | 19 + tests/short-vec-6.ispc | 22 + tests/short-vec-7.ispc | 22 + tests/short-vec-8.ispc | 33 + tests/short-vec-9.ispc | 29 + tests/static-global-assign.ispc | 15 + tests/static-global-initializer.ispc | 13 + tests/static-init-with-typeconv.ispc | 13 + tests/static-init.ispc | 10 + tests/store-int16.ispc | 14 + tests/store-int8.ispc | 14 + tests/struct-gather-2.ispc | 23 + tests/struct-gather-3.ispc | 23 + tests/struct-gather.ispc | 19 + tests/struct-ref-lvalue.ispc | 21 + tests/struct-test-111.ispc | 15 + tests/struct-test-112.ispc | 15 + tests/struct-test-113.ispc | 20 + tests/struct-test-114.ispc | 25 + tests/struct-test-115.ispc | 19 + tests/struct-test-116.ispc | 20 + tests/struct-test-117.ispc | 19 + tests/struct-test-118.ispc | 20 + tests/struct-test-119.ispc | 22 + tests/struct-test-120.ispc | 21 + tests/struct-test-121.ispc | 21 + tests/struct-test-122.ispc | 20 + tests/struct-test-123.ispc | 23 + tests/struct-vary-index-expr.ispc | 16 + tests/test-0.ispc | 12 + tests/test-1.ispc | 13 + tests/test-10.ispc | 16 + tests/test-100.ispc | 18 + tests/test-101.ispc | 26 + tests/test-102.ispc | 18 + tests/test-103.ispc | 13 + tests/test-104.ispc | 16 + tests/test-105.ispc | 16 + tests/test-106.ispc | 16 + tests/test-107.ispc | 14 + tests/test-108.ispc | 19 + tests/test-11.ispc | 16 + tests/test-12.ispc | 25 + tests/test-124.ispc | 14 + tests/test-125.ispc | 17 + tests/test-126.ispc | 13 + tests/test-127.ispc | 13 + tests/test-128.ispc | 12 + tests/test-129.ispc | 13 + tests/test-13.ispc | 25 + tests/test-130.ispc | 14 + tests/test-131.ispc | 20 + tests/test-132.ispc | 12 + tests/test-133.ispc | 18 + tests/test-134.ispc | 24 + tests/test-135.ispc | 24 + tests/test-136.ispc | 24 + tests/test-137.ispc | 12 + tests/test-138.ispc | 25 + tests/test-139.ispc | 15 + tests/test-14.ispc | 14 + tests/test-140.ispc | 15 + tests/test-141.ispc | 12 + tests/test-142.ispc | 12 + tests/test-143.ispc | 12 + tests/test-144.ispc | 12 + tests/test-145.ispc | 12 + tests/test-146.ispc | 12 + tests/test-15.ispc | 13 + tests/test-16.ispc | 16 + tests/test-17.ispc | 9 + tests/test-18.ispc | 9 + tests/test-19.ispc | 9 + tests/test-2.ispc | 17 + tests/test-20.ispc | 9 + tests/test-21.ispc | 9 + tests/test-22.ispc | 9 + tests/test-23.ispc | 11 + tests/test-24.ispc | 9 + tests/test-25.ispc | 9 + tests/test-26.ispc | 9 + tests/test-27.ispc | 9 + tests/test-28.ispc | 9 + tests/test-29.ispc | 9 + tests/test-3.ispc | 20 + tests/test-30.ispc | 9 + tests/test-31.ispc | 9 + tests/test-32.ispc | 9 + tests/test-33.ispc | 9 + tests/test-34.ispc | 9 + tests/test-35.ispc | 9 + tests/test-36.ispc | 9 + tests/test-37.ispc | 9 + tests/test-38.ispc | 9 + tests/test-39.ispc | 9 + tests/test-4.ispc | 14 + tests/test-40.ispc | 9 + tests/test-41.ispc | 11 + tests/test-42.ispc | 9 + tests/test-43.ispc | 9 + tests/test-44.ispc | 9 + tests/test-45.ispc | 9 + tests/test-46.ispc | 9 + tests/test-47.ispc | 9 + tests/test-48.ispc | 9 + tests/test-49.ispc | 9 + tests/test-5.ispc | 15 + tests/test-55.ispc | 10 + tests/test-56.ispc | 9 + tests/test-57.ispc | 13 + tests/test-58.ispc | 11 + tests/test-59.ispc | 18 + tests/test-6.ispc | 14 + tests/test-60.ispc | 15 + tests/test-61.ispc | 16 + tests/test-62.ispc | 18 + tests/test-63.ispc | 18 + tests/test-64.ispc | 26 + tests/test-65.ispc | 24 + tests/test-66.ispc | 25 + tests/test-67.ispc | 19 + tests/test-68.ispc | 21 + tests/test-69.ispc | 25 + tests/test-7.ispc | 13 + tests/test-70.ispc | 26 + tests/test-71.ispc | 28 + tests/test-72.ispc | 13 + tests/test-73.ispc | 16 + tests/test-74.ispc | 16 + tests/test-75.ispc | 17 + tests/test-76.ispc | 18 + tests/test-77.ispc | 18 + tests/test-78.ispc | 15 + tests/test-79.ispc | 15 + tests/test-8.ispc | 15 + tests/test-80.ispc | 16 + tests/test-81.ispc | 16 + tests/test-82.ispc | 10 + tests/test-83.ispc | 14 + tests/test-84.ispc | 14 + tests/test-85.ispc | 16 + tests/test-86.ispc | 13 + tests/test-87.ispc | 9 + tests/test-88.ispc | 13 + tests/test-89.ispc | 18 + tests/test-9.ispc | 17 + tests/test-90.ispc | 19 + tests/test-91.ispc | 21 + tests/test-92.ispc | 15 + tests/test-93.ispc | 15 + tests/test-94.ispc | 15 + tests/test-95.ispc | 17 + tests/test-96.ispc | 18 + tests/test-97.ispc | 15 + tests/test-98.ispc | 14 + tests/test-99.ispc | 15 + tests/transcendentals-0-0.ispc | 23 + tests/transcendentals-0-1.ispc | 23 + tests/transcendentals-0-2.ispc | 23 + tests/transcendentals-0-3.ispc | 23 + tests/transcendentals-1-0.ispc | 23 + tests/transcendentals-1-1.ispc | 23 + tests/transcendentals-1-2.ispc | 23 + tests/transcendentals-1-3.ispc | 23 + tests/transcendentals-2-0.ispc | 23 + tests/transcendentals-2-1.ispc | 23 + tests/transcendentals-2-2.ispc | 23 + tests/transcendentals-2-3.ispc | 23 + tests/transcendentals-3-0.ispc | 23 + tests/transcendentals-3-1.ispc | 23 + tests/transcendentals-3-2.ispc | 23 + tests/transcendentals-3-3.ispc | 23 + tests/transcendentals-4-0.ispc | 23 + tests/transcendentals-4-1.ispc | 23 + tests/transcendentals-4-2.ispc | 23 + tests/transcendentals-4-3.ispc | 23 + tests/typedef-1.ispc | 13 + tests/typedef-2.ispc | 22 + tests/typedef.ispc | 17 + tests/unif-struct-test-111.ispc | 15 + tests/unif-struct-test-112.ispc | 15 + tests/unif-struct-test-113.ispc | 19 + tests/unif-struct-test-114.ispc | 23 + tests/unif-struct-test-115.ispc | 17 + tests/unif-struct-test-116.ispc | 18 + tests/unif-struct-test-117.ispc | 18 + tests/unif-struct-test-118.ispc | 20 + tests/unif-struct-test-119.ispc | 22 + tests/unif-struct-test-120.ispc | 20 + tests/unif-struct-test-121.ispc | 20 + tests/unif-struct-test-122.ispc | 20 + tests/unif-struct-test-123.ispc | 22 + tests/varying-struct-1.ispc | 18 + tests/varying-struct-2.ispc | 21 + tests/varying-struct-3.ispc | 21 + tests/varying-struct-4.ispc | 21 + tests/varying-struct-5.ispc | 24 + tests/varying-struct-6.ispc | 21 + tests/varying-struct-8.ispc | 17 + tests/varying-struct-9.ispc | 22 + tests/varying-struct.ispc | 17 + tests/write-same-loc.ispc | 13 + type.cpp | 1802 +++++++ type.h | 630 +++ util.cpp | 393 ++ util.h | 141 + winstuff/unistd.h | 6 + 587 files changed, 45117 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 Makefile create mode 100644 READMErst.txt create mode 100755 bitcode2cpp.py create mode 100644 builtins.cpp create mode 100644 builtins.h create mode 100644 ctx.cpp create mode 100644 ctx.h create mode 100644 decl.cpp create mode 100644 decl.h create mode 100755 docs/build.sh create mode 100644 docs/ispc.txt create mode 100644 doxygen.cfg create mode 100644 examples/README.txt create mode 100644 examples/aobench/Makefile create mode 100644 examples/aobench/ao.cpp create mode 100644 examples/aobench/ao.ispc create mode 100644 examples/aobench/ao_serial.cpp create mode 100755 examples/aobench/aobench.vcxproj create mode 100644 examples/aobench_instrumented/Makefile create mode 100644 examples/aobench_instrumented/ao.cpp create mode 100644 examples/aobench_instrumented/ao.ispc create mode 100755 examples/aobench_instrumented/aobench_instrumented.vcxproj create mode 100644 examples/aobench_instrumented/instrument.cpp create mode 100644 examples/aobench_instrumented/instrument.h create mode 100755 examples/examples.sln create mode 100644 examples/mandelbrot/Makefile create mode 100644 examples/mandelbrot/mandelbrot.cpp create mode 100644 examples/mandelbrot/mandelbrot.ispc create mode 100755 examples/mandelbrot/mandelbrot.vcxproj create mode 100644 examples/mandelbrot/mandelbrot_serial.cpp create mode 100644 examples/mandelbrot_tasks/Makefile create mode 100644 examples/mandelbrot_tasks/mandelbrot.cpp create mode 100644 examples/mandelbrot_tasks/mandelbrot.ispc create mode 100644 examples/mandelbrot_tasks/mandelbrot_serial.cpp create mode 100755 examples/mandelbrot_tasks/mandelbrot_tasks.vcxproj create mode 100644 examples/mandelbrot_tasks/tasks_concrt.cpp create mode 100644 examples/mandelbrot_tasks/tasks_gcd.cpp create mode 100644 examples/mandelbrot_tasks/tasks_pthreads.cpp create mode 100644 examples/options/Makefile create mode 100644 examples/options/options.cpp create mode 100644 examples/options/options.ispc create mode 100755 examples/options/options.vcxproj create mode 100644 examples/options/options_defs.h create mode 100644 examples/options/options_serial.cpp create mode 100644 examples/rt/Makefile create mode 100644 examples/rt/cornell.bvh create mode 100644 examples/rt/cornell.camera create mode 100644 examples/rt/rt.cpp create mode 100644 examples/rt/rt.ispc create mode 100755 examples/rt/rt.vcxproj create mode 100644 examples/rt/rt_serial.cpp create mode 100644 examples/rt/sponza.bvh create mode 100644 examples/rt/sponza.camera create mode 100644 examples/rt/teapot.bvh create mode 100644 examples/rt/teapot.camera create mode 100644 examples/simple/Makefile create mode 100644 examples/simple/simple.cpp create mode 100644 examples/simple/simple.ispc create mode 100755 examples/simple/simple.vcxproj create mode 100644 examples/timing.h create mode 100644 expr.cpp create mode 100644 expr.h create mode 100644 failing_tests/max-uint-1.ispc create mode 100644 failing_tests/max-uint.ispc create mode 100644 failing_tests/min-uint-1.ispc create mode 100644 failing_tests/min-uint-2.ispc create mode 100644 failing_tests/struct-array-assign.ispc create mode 100644 ispc.cpp create mode 100644 ispc.h create mode 100755 ispc.sln create mode 100755 ispc.vcxproj create mode 100644 ispc_test.cpp create mode 100755 ispc_test.vcxproj create mode 100644 lex.ll create mode 100644 llvmutil.cpp create mode 100644 llvmutil.h create mode 100644 main.cpp create mode 100644 module.cpp create mode 100644 module.h create mode 100644 opt.cpp create mode 100644 opt.h create mode 100644 parse.yy create mode 100755 run_tests.sh create mode 100644 stdlib-avx.ll create mode 100644 stdlib-c.c create mode 100644 stdlib-sse.ll create mode 100644 stdlib-sse2.ll create mode 100644 stdlib-sse4.ll create mode 100644 stdlib-sse4x2.ll create mode 100644 stdlib.ispc create mode 100644 stdlib.m4 create mode 100755 stdlib2cpp.py create mode 100644 stmt.cpp create mode 100644 stmt.h create mode 100644 sym.cpp create mode 100644 sym.h create mode 100644 tests/array-1.ispc create mode 100644 tests/array-assignment-varying-control.ispc create mode 100644 tests/array-gather-ifs.ispc create mode 100644 tests/array-gather-multi-unif.ispc create mode 100644 tests/array-gather-simple.ispc create mode 100644 tests/array-gather-unif-runflags.ispc create mode 100644 tests/array-gather-unif.ispc create mode 100644 tests/array-gather-vary.ispc create mode 100644 tests/array-mixed-unif-vary-indexing-2.ispc create mode 100644 tests/array-mixed-unif-vary-indexing-3.ispc create mode 100644 tests/array-mixed-unif-vary-indexing.ispc create mode 100644 tests/array-multidim-gather-scatter.ispc create mode 100644 tests/array-multidim-gather.ispc create mode 100644 tests/array-scatter-unif-2.ispc create mode 100644 tests/array-scatter-unif-3.ispc create mode 100644 tests/array-scatter-unif.ispc create mode 100644 tests/array-scatter-vary.ispc create mode 100644 tests/array-struct-gather.ispc create mode 100644 tests/array.ispc create mode 100644 tests/bitnot.ispc create mode 100644 tests/bool-float-typeconv.ispc create mode 100644 tests/c-cif-nested-continue.ispc create mode 100644 tests/c-do-2.ispc create mode 100644 tests/c-do-3.ispc create mode 100644 tests/c-for-loop-nested-continues.ispc create mode 100644 tests/c-for-unif-test-vary-break.ispc create mode 100644 tests/c-test-108.ispc create mode 100644 tests/c-test-131.ispc create mode 100644 tests/c-test-133.ispc create mode 100644 tests/c-test-134.ispc create mode 100644 tests/c-test-135.ispc create mode 100644 tests/c-test-136.ispc create mode 100644 tests/c-test-62.ispc create mode 100644 tests/c-test-63.ispc create mode 100644 tests/c-test-64.ispc create mode 100644 tests/c-test-65.ispc create mode 100644 tests/c-test-66.ispc create mode 100644 tests/c-test-67.ispc create mode 100644 tests/c-test-68.ispc create mode 100644 tests/c-test-69.ispc create mode 100644 tests/c-test-70.ispc create mode 100644 tests/c-test-71.ispc create mode 100644 tests/c-test-76.ispc create mode 100644 tests/c-test-77.ispc create mode 100644 tests/c-test-78.ispc create mode 100644 tests/c-test-79.ispc create mode 100644 tests/c-test-80.ispc create mode 100644 tests/c-test-81.ispc create mode 100644 tests/cfor-array-gather-ifs.ispc create mode 100644 tests/cfor-array-gather-unif-runflags.ispc create mode 100644 tests/cfor-array-gather-unif.ispc create mode 100644 tests/cfor-array-gather-vary.ispc create mode 100644 tests/cfor-array-multidim-gather.ispc create mode 100644 tests/cfor-array-struct-gather.ispc create mode 100644 tests/cfor-array.ispc create mode 100644 tests/cfor-c-cif-nested-continue.ispc create mode 100644 tests/cfor-c-for-loop-nested-continues.ispc create mode 100644 tests/cfor-c-for-unif-test-vary-break.ispc create mode 100644 tests/cfor-c-test-108.ispc create mode 100644 tests/cfor-c-test-131.ispc create mode 100644 tests/cfor-c-test-133.ispc create mode 100644 tests/cfor-c-test-134.ispc create mode 100644 tests/cfor-c-test-135.ispc create mode 100644 tests/cfor-c-test-136.ispc create mode 100644 tests/cfor-c-test-62.ispc create mode 100644 tests/cfor-c-test-63.ispc create mode 100644 tests/cfor-c-test-64.ispc create mode 100644 tests/cfor-c-test-65.ispc create mode 100644 tests/cfor-c-test-66.ispc create mode 100644 tests/cfor-c-test-67.ispc create mode 100644 tests/cfor-c-test-68.ispc create mode 100644 tests/cfor-c-test-69.ispc create mode 100644 tests/cfor-c-test-70.ispc create mode 100644 tests/cfor-c-test-71.ispc create mode 100644 tests/cfor-c-test-76.ispc create mode 100644 tests/cfor-c-test-77.ispc create mode 100644 tests/cfor-c-test-78.ispc create mode 100644 tests/cfor-c-test-79.ispc create mode 100644 tests/cfor-cif-nested-continue.ispc create mode 100644 tests/cfor-const-fold-4.ispc create mode 100644 tests/cfor-for-loop-nested-continues.ispc create mode 100644 tests/cfor-for-unif-test-vary-break.ispc create mode 100644 tests/cfor-gs-double-improve-multidim-1.ispc create mode 100644 tests/cfor-gs-double-improve-multidim-2.ispc create mode 100644 tests/cfor-gs-double-improve-multidim-3.ispc create mode 100644 tests/cfor-gs-double-improve-multidim-struct-1.ispc create mode 100644 tests/cfor-gs-double-improve-multidim-struct.ispc create mode 100644 tests/cfor-gs-double-improve-multidim.ispc create mode 100644 tests/cfor-gs-double-improve-varying-1.ispc create mode 100644 tests/cfor-gs-double-improve-varying.ispc create mode 100644 tests/cfor-gs-improve-multidim-1.ispc create mode 100644 tests/cfor-gs-improve-multidim-2.ispc create mode 100644 tests/cfor-gs-improve-multidim-3.ispc create mode 100644 tests/cfor-gs-improve-multidim-struct-1.ispc create mode 100644 tests/cfor-gs-improve-multidim-struct.ispc create mode 100644 tests/cfor-gs-improve-multidim.ispc create mode 100644 tests/cfor-gs-improve-varying-1.ispc create mode 100644 tests/cfor-gs-improve-varying.ispc create mode 100644 tests/cfor-ref-5.ispc create mode 100644 tests/cfor-ref-6.ispc create mode 100644 tests/cfor-ref-7.ispc create mode 100644 tests/cfor-struct-gather-2.ispc create mode 100644 tests/cfor-struct-gather-3.ispc create mode 100644 tests/cfor-struct-gather.ispc create mode 100644 tests/cfor-struct-test-114.ispc create mode 100644 tests/cfor-test-101.ispc create mode 100644 tests/cfor-test-108.ispc create mode 100644 tests/cfor-test-131.ispc create mode 100644 tests/cfor-test-133.ispc create mode 100644 tests/cfor-test-134.ispc create mode 100644 tests/cfor-test-135.ispc create mode 100644 tests/cfor-test-136.ispc create mode 100644 tests/cfor-test-61.ispc create mode 100644 tests/cfor-test-62.ispc create mode 100644 tests/cfor-test-63.ispc create mode 100644 tests/cfor-test-64.ispc create mode 100644 tests/cfor-test-65.ispc create mode 100644 tests/cfor-test-66.ispc create mode 100644 tests/cfor-test-67.ispc create mode 100644 tests/cfor-test-68.ispc create mode 100644 tests/cfor-test-69.ispc create mode 100644 tests/cfor-test-70.ispc create mode 100644 tests/cfor-test-71.ispc create mode 100644 tests/cfor-test-72.ispc create mode 100644 tests/cfor-test-73.ispc create mode 100644 tests/cfor-test-74.ispc create mode 100644 tests/cfor-test-75.ispc create mode 100644 tests/cfor-test-76.ispc create mode 100644 tests/cfor-test-77.ispc create mode 100644 tests/cfor-test-78.ispc create mode 100644 tests/cfor-test-79.ispc create mode 100644 tests/cfor-test-89.ispc create mode 100644 tests/cfor-test-90.ispc create mode 100644 tests/cfor-test-91.ispc create mode 100644 tests/cfor-test-95.ispc create mode 100644 tests/cfor-test-96.ispc create mode 100644 tests/cfor-unif-struct-test-114.ispc create mode 100644 tests/cif-nested-continue.ispc create mode 100644 tests/const-fold-1.ispc create mode 100644 tests/const-fold-2.ispc create mode 100644 tests/const-fold-3.ispc create mode 100644 tests/const-fold-4.ispc create mode 100644 tests/const-fold-const-sym-1.ispc create mode 100644 tests/const-fold-const-sym-2.ispc create mode 100644 tests/const-fold-const-sym-3.ispc create mode 100644 tests/const-fold-const-sym.ispc create mode 100644 tests/cwhile-test-59.ispc create mode 100644 tests/cwhile-test-60.ispc create mode 100644 tests/cwhile-test-80.ispc create mode 100644 tests/cwhile-test-81.ispc create mode 100644 tests/default-args-1.ispc create mode 100644 tests/default-args-2.ispc create mode 100644 tests/default-args-3.ispc create mode 100644 tests/default-args-4.ispc create mode 100644 tests/do-1.ispc create mode 100644 tests/do-2.ispc create mode 100644 tests/do-3.ispc create mode 100644 tests/double-1.ispc create mode 100644 tests/double-2.ispc create mode 100644 tests/double-3.ispc create mode 100644 tests/double-4.ispc create mode 100644 tests/double-5.ispc create mode 100644 tests/double-mask-test.ispc create mode 100644 tests/double.ispc create mode 100644 tests/for-loop-nested-continues.ispc create mode 100644 tests/for-unif-test-vary-break.ispc create mode 100644 tests/global-const-initializer.ispc create mode 100644 tests/global-initializer.ispc create mode 100644 tests/gs-double-improve-multidim-1.ispc create mode 100644 tests/gs-double-improve-multidim-2.ispc create mode 100644 tests/gs-double-improve-multidim-3.ispc create mode 100644 tests/gs-double-improve-multidim-struct-1.ispc create mode 100644 tests/gs-double-improve-multidim-struct.ispc create mode 100644 tests/gs-double-improve-multidim.ispc create mode 100644 tests/gs-double-improve-progindex-plus-const.ispc create mode 100644 tests/gs-double-improve-progindex-plus-unif.ispc create mode 100644 tests/gs-double-improve-progindex.ispc create mode 100644 tests/gs-double-improve-unif.ispc create mode 100644 tests/gs-double-improve-vary-one.ispc create mode 100644 tests/gs-double-improve-vary-zero.ispc create mode 100644 tests/gs-double-improve-varying-1.ispc create mode 100644 tests/gs-double-improve-varying.ispc create mode 100644 tests/gs-improve-multidim-1.ispc create mode 100644 tests/gs-improve-multidim-2.ispc create mode 100644 tests/gs-improve-multidim-3.ispc create mode 100644 tests/gs-improve-multidim-struct-1.ispc create mode 100644 tests/gs-improve-multidim-struct.ispc create mode 100644 tests/gs-improve-multidim.ispc create mode 100644 tests/gs-improve-progindex-plus-const.ispc create mode 100644 tests/gs-improve-progindex-plus-unif.ispc create mode 100644 tests/gs-improve-progindex.ispc create mode 100644 tests/gs-improve-unif.ispc create mode 100644 tests/gs-improve-vary-one.ispc create mode 100644 tests/gs-improve-vary-zero.ispc create mode 100644 tests/gs-improve-varying-1.ispc create mode 100644 tests/gs-improve-varying.ispc create mode 100644 tests/load-int16-1.ispc create mode 100644 tests/load-int16.ispc create mode 100644 tests/load-int8-1.ispc create mode 100644 tests/load-int8.ispc create mode 100644 tests/masked-scatter-struct.ispc create mode 100644 tests/masked-scatter-vector.ispc create mode 100644 tests/masked-struct-scatter-varying.ispc create mode 100644 tests/max-float-1.ispc create mode 100644 tests/max-float-2.ispc create mode 100644 tests/max-int-1.ispc create mode 100644 tests/max-int.ispc create mode 100644 tests/min-float-1.ispc create mode 100644 tests/min-float.ispc create mode 100644 tests/min-int-1.ispc create mode 100644 tests/min-int.ispc create mode 100644 tests/movmsk-opt.ispc create mode 100644 tests/nested-structs-2.ispc create mode 100644 tests/nested-structs.ispc create mode 100644 tests/op-plus-equals-ensure-one-lhs-eval.ispc create mode 100644 tests/packed-load-1.ispc create mode 100644 tests/packed-load-2.ispc create mode 100644 tests/packed-load-3.ispc create mode 100644 tests/packed-load-4.ispc create mode 100644 tests/packed-load-5.ispc create mode 100644 tests/packed-store-1.ispc create mode 100644 tests/packed-store-2.ispc create mode 100644 tests/packed-store-3.ispc create mode 100644 tests/packed-store.ispc create mode 100644 tests/pass-varying-lvalue-to-ref.ispc create mode 100644 tests/popcnt-1.ispc create mode 100644 tests/popcnt-2.ispc create mode 100644 tests/popcnt-3.ispc create mode 100644 tests/pow-0.ispc create mode 100644 tests/pow-1.ispc create mode 100644 tests/pow-2.ispc create mode 100644 tests/pow-3.ispc create mode 100644 tests/pow-4.ispc create mode 100644 tests/pow-5.ispc create mode 100644 tests/pow-6.ispc create mode 100644 tests/pow-7.ispc create mode 100644 tests/pow-8.ispc create mode 100644 tests/pow-9.ispc create mode 100644 tests/recursion-forward-func-decl.ispc create mode 100644 tests/recursion.ispc create mode 100644 tests/reduce-add-float-1.ispc create mode 100644 tests/reduce-add-float-2.ispc create mode 100644 tests/reduce-add-float.ispc create mode 100644 tests/reduce-add-int-1.ispc create mode 100644 tests/reduce-add-int.ispc create mode 100644 tests/reduce-add-uint-1.ispc create mode 100644 tests/reduce-add-uint.ispc create mode 100644 tests/reduce-max-float.ispc create mode 100644 tests/reduce-max-int.ispc create mode 100644 tests/reduce-max-uint.ispc create mode 100644 tests/reduce-min-float.ispc create mode 100644 tests/reduce-min-int.ispc create mode 100644 tests/reduce-min-uint.ispc create mode 100644 tests/ref-0.ispc create mode 100644 tests/ref-1.ispc create mode 100644 tests/ref-2.ispc create mode 100644 tests/ref-3.ispc create mode 100644 tests/ref-4.ispc create mode 100644 tests/ref-5.ispc create mode 100644 tests/ref-6.ispc create mode 100644 tests/ref-7.ispc create mode 100644 tests/reference-assignment-struct-unsized-array-as-ptr.ispc create mode 100644 tests/reference-assignment-typeconv.ispc create mode 100644 tests/reference-assignment.ispc create mode 100644 tests/reference-prepost-increment.ispc create mode 100644 tests/scatter-struct.ispc create mode 100644 tests/scatter-vector.ispc create mode 100644 tests/short-circuit.ispc create mode 100644 tests/short-vec-1.ispc create mode 100644 tests/short-vec-10.ispc create mode 100644 tests/short-vec-11.ispc create mode 100644 tests/short-vec-12.ispc create mode 100644 tests/short-vec-13.ispc create mode 100644 tests/short-vec-14.ispc create mode 100644 tests/short-vec-15.ispc create mode 100644 tests/short-vec-16.ispc create mode 100644 tests/short-vec-17.ispc create mode 100644 tests/short-vec-18.ispc create mode 100644 tests/short-vec-19.ispc create mode 100644 tests/short-vec-2.ispc create mode 100644 tests/short-vec-3.ispc create mode 100644 tests/short-vec-4.ispc create mode 100644 tests/short-vec-5.ispc create mode 100644 tests/short-vec-6.ispc create mode 100644 tests/short-vec-7.ispc create mode 100644 tests/short-vec-8.ispc create mode 100644 tests/short-vec-9.ispc create mode 100644 tests/static-global-assign.ispc create mode 100644 tests/static-global-initializer.ispc create mode 100644 tests/static-init-with-typeconv.ispc create mode 100644 tests/static-init.ispc create mode 100644 tests/store-int16.ispc create mode 100644 tests/store-int8.ispc create mode 100644 tests/struct-gather-2.ispc create mode 100644 tests/struct-gather-3.ispc create mode 100644 tests/struct-gather.ispc create mode 100644 tests/struct-ref-lvalue.ispc create mode 100644 tests/struct-test-111.ispc create mode 100644 tests/struct-test-112.ispc create mode 100644 tests/struct-test-113.ispc create mode 100644 tests/struct-test-114.ispc create mode 100644 tests/struct-test-115.ispc create mode 100644 tests/struct-test-116.ispc create mode 100644 tests/struct-test-117.ispc create mode 100644 tests/struct-test-118.ispc create mode 100644 tests/struct-test-119.ispc create mode 100644 tests/struct-test-120.ispc create mode 100644 tests/struct-test-121.ispc create mode 100644 tests/struct-test-122.ispc create mode 100644 tests/struct-test-123.ispc create mode 100644 tests/struct-vary-index-expr.ispc create mode 100644 tests/test-0.ispc create mode 100644 tests/test-1.ispc create mode 100644 tests/test-10.ispc create mode 100644 tests/test-100.ispc create mode 100644 tests/test-101.ispc create mode 100644 tests/test-102.ispc create mode 100644 tests/test-103.ispc create mode 100644 tests/test-104.ispc create mode 100644 tests/test-105.ispc create mode 100644 tests/test-106.ispc create mode 100644 tests/test-107.ispc create mode 100644 tests/test-108.ispc create mode 100644 tests/test-11.ispc create mode 100644 tests/test-12.ispc create mode 100644 tests/test-124.ispc create mode 100644 tests/test-125.ispc create mode 100644 tests/test-126.ispc create mode 100644 tests/test-127.ispc create mode 100644 tests/test-128.ispc create mode 100644 tests/test-129.ispc create mode 100644 tests/test-13.ispc create mode 100644 tests/test-130.ispc create mode 100644 tests/test-131.ispc create mode 100644 tests/test-132.ispc create mode 100644 tests/test-133.ispc create mode 100644 tests/test-134.ispc create mode 100644 tests/test-135.ispc create mode 100644 tests/test-136.ispc create mode 100644 tests/test-137.ispc create mode 100644 tests/test-138.ispc create mode 100644 tests/test-139.ispc create mode 100644 tests/test-14.ispc create mode 100644 tests/test-140.ispc create mode 100644 tests/test-141.ispc create mode 100644 tests/test-142.ispc create mode 100644 tests/test-143.ispc create mode 100644 tests/test-144.ispc create mode 100644 tests/test-145.ispc create mode 100644 tests/test-146.ispc create mode 100644 tests/test-15.ispc create mode 100644 tests/test-16.ispc create mode 100644 tests/test-17.ispc create mode 100644 tests/test-18.ispc create mode 100644 tests/test-19.ispc create mode 100644 tests/test-2.ispc create mode 100644 tests/test-20.ispc create mode 100644 tests/test-21.ispc create mode 100644 tests/test-22.ispc create mode 100644 tests/test-23.ispc create mode 100644 tests/test-24.ispc create mode 100644 tests/test-25.ispc create mode 100644 tests/test-26.ispc create mode 100644 tests/test-27.ispc create mode 100644 tests/test-28.ispc create mode 100644 tests/test-29.ispc create mode 100644 tests/test-3.ispc create mode 100644 tests/test-30.ispc create mode 100644 tests/test-31.ispc create mode 100644 tests/test-32.ispc create mode 100644 tests/test-33.ispc create mode 100644 tests/test-34.ispc create mode 100644 tests/test-35.ispc create mode 100644 tests/test-36.ispc create mode 100644 tests/test-37.ispc create mode 100644 tests/test-38.ispc create mode 100644 tests/test-39.ispc create mode 100644 tests/test-4.ispc create mode 100644 tests/test-40.ispc create mode 100644 tests/test-41.ispc create mode 100644 tests/test-42.ispc create mode 100644 tests/test-43.ispc create mode 100644 tests/test-44.ispc create mode 100644 tests/test-45.ispc create mode 100644 tests/test-46.ispc create mode 100644 tests/test-47.ispc create mode 100644 tests/test-48.ispc create mode 100644 tests/test-49.ispc create mode 100644 tests/test-5.ispc create mode 100644 tests/test-55.ispc create mode 100644 tests/test-56.ispc create mode 100644 tests/test-57.ispc create mode 100644 tests/test-58.ispc create mode 100644 tests/test-59.ispc create mode 100644 tests/test-6.ispc create mode 100644 tests/test-60.ispc create mode 100644 tests/test-61.ispc create mode 100644 tests/test-62.ispc create mode 100644 tests/test-63.ispc create mode 100644 tests/test-64.ispc create mode 100644 tests/test-65.ispc create mode 100644 tests/test-66.ispc create mode 100644 tests/test-67.ispc create mode 100644 tests/test-68.ispc create mode 100644 tests/test-69.ispc create mode 100644 tests/test-7.ispc create mode 100644 tests/test-70.ispc create mode 100644 tests/test-71.ispc create mode 100644 tests/test-72.ispc create mode 100644 tests/test-73.ispc create mode 100644 tests/test-74.ispc create mode 100644 tests/test-75.ispc create mode 100644 tests/test-76.ispc create mode 100644 tests/test-77.ispc create mode 100644 tests/test-78.ispc create mode 100644 tests/test-79.ispc create mode 100644 tests/test-8.ispc create mode 100644 tests/test-80.ispc create mode 100644 tests/test-81.ispc create mode 100644 tests/test-82.ispc create mode 100644 tests/test-83.ispc create mode 100644 tests/test-84.ispc create mode 100644 tests/test-85.ispc create mode 100644 tests/test-86.ispc create mode 100644 tests/test-87.ispc create mode 100644 tests/test-88.ispc create mode 100644 tests/test-89.ispc create mode 100644 tests/test-9.ispc create mode 100644 tests/test-90.ispc create mode 100644 tests/test-91.ispc create mode 100644 tests/test-92.ispc create mode 100644 tests/test-93.ispc create mode 100644 tests/test-94.ispc create mode 100644 tests/test-95.ispc create mode 100644 tests/test-96.ispc create mode 100644 tests/test-97.ispc create mode 100644 tests/test-98.ispc create mode 100644 tests/test-99.ispc create mode 100644 tests/transcendentals-0-0.ispc create mode 100644 tests/transcendentals-0-1.ispc create mode 100644 tests/transcendentals-0-2.ispc create mode 100644 tests/transcendentals-0-3.ispc create mode 100644 tests/transcendentals-1-0.ispc create mode 100644 tests/transcendentals-1-1.ispc create mode 100644 tests/transcendentals-1-2.ispc create mode 100644 tests/transcendentals-1-3.ispc create mode 100644 tests/transcendentals-2-0.ispc create mode 100644 tests/transcendentals-2-1.ispc create mode 100644 tests/transcendentals-2-2.ispc create mode 100644 tests/transcendentals-2-3.ispc create mode 100644 tests/transcendentals-3-0.ispc create mode 100644 tests/transcendentals-3-1.ispc create mode 100644 tests/transcendentals-3-2.ispc create mode 100644 tests/transcendentals-3-3.ispc create mode 100644 tests/transcendentals-4-0.ispc create mode 100644 tests/transcendentals-4-1.ispc create mode 100644 tests/transcendentals-4-2.ispc create mode 100644 tests/transcendentals-4-3.ispc create mode 100644 tests/typedef-1.ispc create mode 100644 tests/typedef-2.ispc create mode 100644 tests/typedef.ispc create mode 100644 tests/unif-struct-test-111.ispc create mode 100644 tests/unif-struct-test-112.ispc create mode 100644 tests/unif-struct-test-113.ispc create mode 100644 tests/unif-struct-test-114.ispc create mode 100644 tests/unif-struct-test-115.ispc create mode 100644 tests/unif-struct-test-116.ispc create mode 100644 tests/unif-struct-test-117.ispc create mode 100644 tests/unif-struct-test-118.ispc create mode 100644 tests/unif-struct-test-119.ispc create mode 100644 tests/unif-struct-test-120.ispc create mode 100644 tests/unif-struct-test-121.ispc create mode 100644 tests/unif-struct-test-122.ispc create mode 100644 tests/unif-struct-test-123.ispc create mode 100644 tests/varying-struct-1.ispc create mode 100644 tests/varying-struct-2.ispc create mode 100644 tests/varying-struct-3.ispc create mode 100644 tests/varying-struct-4.ispc create mode 100644 tests/varying-struct-5.ispc create mode 100644 tests/varying-struct-6.ispc create mode 100644 tests/varying-struct-8.ispc create mode 100644 tests/varying-struct-9.ispc create mode 100644 tests/varying-struct.ispc create mode 100644 tests/write-same-loc.ispc create mode 100644 type.cpp create mode 100644 type.h create mode 100644 util.cpp create mode 100644 util.h create mode 100644 winstuff/unistd.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..f3d74a9a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pyc +*~ diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000..918a5b57 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,116 @@ +Copyright (c) 2010-2011, Intel Corporation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +=========================================================================== +Copyrights and Licenses for Third Party Software Distrubted with +The Intel(r) SPMD Program Compiler +=========================================================================== + +ISPC incorporates code from the Syrah library, which is covered by the +following license: + +Copyright (c) 2009, Stanford University, and authors listed below. +All rights reserved. + +Original authors: + Solomon Boulos + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +Neither the name of Stanford University nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--------------------------------------------------------------------------- + +Binary distributions of ISPC are linked with the LLVM libraries, which are +covered by the following license: + +University of Illinois/NCSA +Open Source License + +Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign. +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..cc9ee60c --- /dev/null +++ b/Makefile @@ -0,0 +1,118 @@ +# +# ispc Makefile +# + +ARCH = $(shell uname) + +CLANG=clang +LLVM_LIBS=$(shell llvm-config --ldflags --libs) -lpthread -ldl +LLVM_CXXFLAGS=$(shell llvm-config --cppflags) +LLVM_VERSION_DEF=-DLLVM_$(shell llvm-config --version | sed s/\\./_/) + +BUILD_DATE=$(shell date +%Y%m%d) +BUILD_VERSION=$(shell git log | head -1) + +CXX=g++ +CPP=cpp +CXXFLAGS=-g3 $(LLVM_CXXFLAGS) -I. -Iobjs/ -Wall $(LLVM_VERSION_DEF) \ + -DBUILD_DATE="\"$(BUILD_DATE)\"" -DBUILD_VERSION="\"$(BUILD_VERSION)\"" + +LDFLAGS= +ifeq ($(ARCH),Linux) + # try to link everything statically under Linux (including libstdc++) so + # that the binaries we generate will be portable across distributions... + LDFLAGS=-static -L/usr/lib/gcc/x86_64-linux-gnu/4.4 +endif + +LEX=flex +YACC=bison -d -v -t + +########################################################################### + +CXX_SRC=builtins.cpp ctx.cpp decl.cpp expr.cpp ispc.cpp \ + llvmutil.cpp main.cpp module.cpp opt.cpp stmt.cpp sym.cpp type.cpp \ + util.cpp +HEADERS=builtins.h ctx.h decl.h expr.h ispc.h llvmutil.h module.h \ + opt.h stmt.h sym.h type.h util.h +STDLIB_SRC=stdlib-avx.ll stdlib-sse2.ll stdlib-sse4.ll stdlib-sse4x2.ll +BISON_SRC=parse.yy +FLEX_SRC=lex.ll + +OBJS=$(addprefix objs/, $(CXX_SRC:.cpp=.o) $(STDLIB_SRC:.ll=.o) stdlib-c.o stdlib_ispc.o \ + $(BISON_SRC:.yy=.o) $(FLEX_SRC:.ll=.o)) + +default: ispc ispc_test + +.PHONY: dirs clean depend doxygen +.PRECIOUS: objs/stdlib-%.cpp + +depend: $(CXX_SRC) $(HEADERS) + @echo Updating dependencies + @gcc -MM $(CXXFLAGS) $(CXX_SRC) | sed 's_^\([a-z]\)_objs/\1_g' > depend + +-include depend + +dirs: + @echo Creating objs/ directory + @/bin/mkdir -p objs + +clean: + /bin/rm -rf objs ispc ispc_test + +doxygen: + /bin/rm -rf docs/doxygen + doxygen doxygen.cfg + +ispc: dirs $(OBJS) + @echo Creating ispc executable + @$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LLVM_LIBS) + +ispc_test: dirs ispc_test.cpp + @echo Creating ispc_test executable + @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $@ ispc_test.cpp $(LLVM_LIBS) + +objs/%.o: %.cpp + @echo Compiling $< + @$(CXX) $(CXXFLAGS) -o $@ -c $< + +objs/parse.cc: parse.yy + @echo Running bison on $< + @$(YACC) -o $@ $< + +objs/parse.o: objs/parse.cc $(HEADERS) + @echo Compiling $< + @$(CXX) $(CXXFLAGS) -o $@ -c $< + +objs/lex.cpp: lex.ll + @echo Running flex on $< + @$(LEX) -o $@ $< + +objs/lex.o: objs/lex.cpp $(HEADERS) + @echo Compiling $< + @$(CXX) $(CXXFLAGS) -o $@ -c $< + +$(STDLIB_SRC): stdlib.m4 + +objs/stdlib-%.cpp: stdlib-%.ll + @echo Creating C++ source from stdlib file $< + @m4 stdlib.m4 $< | ./bitcode2cpp.py $< > $@ + +objs/stdlib-%.o: objs/stdlib-%.cpp + @echo Compiling $< + @$(CXX) $(CXXFLAGS) -o $@ -c $< + +objs/stdlib-c.cpp: stdlib-c.c + @echo Creating C++ source from stdlib file $< + @$(CLANG) -I /opt/l1om/usr/include/ -emit-llvm -c $< -o - | llvm-dis - | ./bitcode2cpp.py $< > $@ + +objs/stdlib-c.o: objs/stdlib-c.cpp + @echo Compiling $< + @$(CXX) $(CXXFLAGS) -o $@ -c $< + +objs/stdlib_ispc.cpp: stdlib.ispc + @echo Creating C++ source from $< + @$(CPP) -DISPC=1 -DPI=3.1415936535 $< | ./stdlib2cpp.py > $@ + +objs/stdlib_ispc.o: objs/stdlib_ispc.cpp + @echo Compiling $< + @$(CXX) $(CXXFLAGS) -o $@ -c $< diff --git a/READMErst.txt b/READMErst.txt new file mode 100644 index 00000000..def29dc8 --- /dev/null +++ b/READMErst.txt @@ -0,0 +1,22 @@ +============================== +Intel(r) SPMD Program Compiler +============================== + +Welcome to the Intel(r) SPMD Program Compiler (ispc)! + +ispc is a new compiler for "single program, multiple data" (SPMD) +programs. Under the SPMD model, the programmer writes a program that mostly +appears to be a regular serial program, though the execution model is +actually that a number of program instances execute in parallel on the +hardware. ispc compiles a C-based SPMD programming language to run on the +SIMD units of CPUs; it frequently provides a a 3x or more speedup on CPUs +with 4-wide SSE units, without any of the difficulty of writing intrinsics +code. + +ispc is an open source compiler under the BSD license; see the file +LICENSE.txt. ispc supports Windows, Mac, and Linux, with both x86 and +x86-64 targets. It currently supports the SSE2 and SSE4 instruction sets, +though support for AVX should be available soon. + +For more information and examples, as well as a wiki and the bug database, +see the ispc distribution site, http://ispc.github.com. diff --git a/bitcode2cpp.py b/bitcode2cpp.py new file mode 100755 index 00000000..b61f6f8e --- /dev/null +++ b/bitcode2cpp.py @@ -0,0 +1,34 @@ +#!/usr/bin/python + +import sys +import string +import re +import subprocess + +length=0 + +src=str(sys.argv[1]) + +target = re.sub(".*stdlib-", "", src) +target = re.sub("\.ll$", "", target) +target = re.sub("\.c$", "", target) +target = re.sub("-", "_", target) + +try: + as_out=subprocess.Popen([ "llvm-as", "-", "-o", "-"], stdout=subprocess.PIPE) +except IOError: + print >> sys.stderr, "Couldn't open " + src + sys.exit(1) + +print "unsigned char stdlib_bitcode_" + target + "[] = {" +for line in as_out.stdout.readlines(): + length = length + len(line) + for c in line: + print ord(c) + print ", " +print " 0 };\n\n" +print "int stdlib_bitcode_" + target + "_length = " + str(length) + ";\n" + +as_out.wait() + +sys.exit(as_out.returncode) diff --git a/builtins.cpp b/builtins.cpp new file mode 100644 index 00000000..d2a49c7e --- /dev/null +++ b/builtins.cpp @@ -0,0 +1,617 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file builtins.cpp + @brief Definitions of functions related to setting up the standard library + and other builtins. +*/ + +#include "builtins.h" +#include "type.h" +#include "util.h" +#include "sym.h" +#include "expr.h" +#include "llvmutil.h" +#include "module.h" +#include "ctx.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern int yyparse(); +struct yy_buffer_state; +extern yy_buffer_state *yy_scan_string(const char *); + + +/** Given an LLVM type, try to find the equivalent ispc type. Note that + this is an under-constrained problem due to LLVM's type representations + carrying less information than ispc's. (For example, LLVM doesn't + distinguish between signed and unsigned integers in its types.) + + However, because this function is only used for generating ispc + declarations of functions defined in LLVM bitcode in the stdlib-*.ll + files, in practice we can get enough of what we need for the relevant + cases to make things work. + */ +static const Type * +lLLVMTypeToISPCType(const llvm::Type *t) { + if (t == LLVMTypes::VoidType) + return AtomicType::Void; + else if (t == LLVMTypes::BoolType) + return AtomicType::UniformBool; + else if (t == LLVMTypes::Int32Type) + return AtomicType::UniformInt32; + else if (t == LLVMTypes::FloatType) + return AtomicType::UniformFloat; + else if (t == LLVMTypes::DoubleType) + return AtomicType::UniformDouble; + else if (t == LLVMTypes::Int64Type) + return AtomicType::UniformInt64; + else if (t == LLVMTypes::Int32VectorType) + return AtomicType::VaryingInt32; + else if (t == LLVMTypes::FloatVectorType) + return AtomicType::VaryingFloat; + else if (t == LLVMTypes::DoubleVectorType) + return AtomicType::VaryingDouble; + else if (t == LLVMTypes::Int64VectorType) + return AtomicType::VaryingInt64; + else if (t == LLVMTypes::Int32PointerType) + return new ReferenceType(AtomicType::UniformInt32, false); + else if (t == LLVMTypes::FloatPointerType) + return new ReferenceType(AtomicType::UniformFloat, false); + else if (t == LLVMTypes::Int32VectorPointerType) + return new ReferenceType(AtomicType::VaryingInt32, false); + else if (t == LLVMTypes::FloatVectorPointerType) + return new ReferenceType(AtomicType::VaryingFloat, false); + else if (llvm::isa(t)) { + const llvm::PointerType *pt = llvm::dyn_cast(t); + + // Is it a pointer to an unsized array of objects? If so, then + // create the equivalent ispc type. Note that it has to be a + // reference to an array, since ispc passes arrays to functions by + // reference. + // + // FIXME: generalize this to do more than uniform int32s (that's + // all that's necessary for the stdlib currently.) + const llvm::ArrayType *at = + llvm::dyn_cast(pt->getElementType()); + if (at && at->getNumElements() == 0 && + at->getElementType() == LLVMTypes::Int32Type) + return new ReferenceType(new ArrayType(AtomicType::UniformInt32, 0), + false); + } + + return NULL; +} + + +/** Given an LLVM function declaration, synthesize the equivalent ispc + symbol for the function (if possible). Returns true on success, false + on failure. + */ +static bool +lCreateISPCSymbol(llvm::Function *func, SymbolTable *symbolTable) { + SourcePos noPos; + noPos.name = "__stdlib"; + + const llvm::FunctionType *ftype = func->getFunctionType(); + std::string name = func->getName(); + + const Type *returnType = lLLVMTypeToISPCType(ftype->getReturnType()); + if (!returnType) + // return type not representable in ispc -> not callable from ispc + return false; + + // Iterate over the arguments and try to find their equivalent ispc + // types. + std::vector argTypes; + for (unsigned int i = 0; i < ftype->getNumParams(); ++i) { + const llvm::Type *llvmArgType = ftype->getParamType(i); + const Type *type = lLLVMTypeToISPCType(llvmArgType); + if (type == NULL) + return false; + argTypes.push_back(type); + } + + FunctionType *funcType = new FunctionType(returnType, argTypes, noPos); + Symbol *sym = new Symbol(name, noPos, funcType); + sym->function = func; + symbolTable->AddFunction(sym); + return true; +} + + +/** Given an LLVM module, create ispc symbols for the functions in the + module. + */ +static void +lAddModuleSymbols(llvm::Module *module, SymbolTable *symbolTable) { +#if 0 + // FIXME: handle globals? + assert(module->global_empty()); +#endif + + llvm::Module::iterator iter; + for (iter = module->begin(); iter != module->end(); ++iter) { + llvm::Function *func = iter; + lCreateISPCSymbol(func, symbolTable); + } +} + +/** Declare the function symbol 'bool __is_compile_time_constant_mask(mask type)'. + This function will never be defined; it's just a placeholder + that will be handled during the optimization process. See the + discussion of the implementation of CompileTimeConstantResolvePass for + more details. + */ +static void +lDeclareCompileTimeConstant(llvm::Module *module) { + SourcePos noPos; + noPos.name = "__stdlib"; + + std::vector argTypes; + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::BoolType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__is_compile_time_constant_mask", module); + func->setOnlyReadsMemory(true); + func->setDoesNotThrow(true); +} + + +/** Declare the 'pseudo-gather' functions. When the ispc front-end needs + to perform a gather, it generates a call to one of these functions, + which have signatures: + + varying int32 __pseudo_gather(varying int32 *, mask) + varying int64 __pseudo_gather(varying int64 *, mask) + + These functions are never actually implemented; the + GatherScatterFlattenOpt optimization pass finds them and then converts + them to make calls to the following functions, which represent gathers + from a common base pointer with offsets. This approach allows the + front-end to be relatively simple in how it emits address calculation + for gathers. + + varying int32 __pseudo_gather_base_offsets_32(uniform int32 *base, + int32 offsets, mask) + varying int64 __pseudo_gather_base_offsets_64(uniform int64 *base, + int64 offsets, mask) + + Then, the GSImprovementsPass optimizations finds these and either + converts them to native gather functions or converts them to vector + loads, if equivalent. + */ +static void +lDeclarePseudoGathers(llvm::Module *module) { + SourcePos noPos; + noPos.name = "__stdlib"; + + { + std::vector argTypes; + argTypes.push_back(LLVMTypes::VoidPointerVectorType); + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::Int32VectorType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_gather_32", module); + func->setOnlyReadsMemory(true); + func->setDoesNotThrow(true); + + fType = llvm::FunctionType::get(LLVMTypes::Int64VectorType, argTypes, false); + func = llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_gather_64", module); + func->setOnlyReadsMemory(true); + func->setDoesNotThrow(true); + } + + { + std::vector argTypes; + argTypes.push_back(LLVMTypes::VoidPointerType); + argTypes.push_back(LLVMTypes::Int32VectorType); + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::Int32VectorType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_gather_base_offsets_32", module); + func->setOnlyReadsMemory(true); + func->setDoesNotThrow(true); + + fType = llvm::FunctionType::get(LLVMTypes::Int64VectorType, argTypes, false); + func = llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_gather_base_offsets_64", module); + func->setOnlyReadsMemory(true); + func->setDoesNotThrow(true); + } +} + + +/** Similarly to the 'pseudo-gathers' defined by lDeclarePseudoGathers(), + we also declare (but never define) pseudo-scatter instructions with + signatures: + + void __pseudo_scatter_32(varying int32 *, varying int32 values, mask) + void __pseudo_scatter_64(varying int64 *, varying int64 values, mask) + + The GatherScatterFlattenOpt optimization pass also finds these and + transforms them to scatters like: + + void __pseudo_scatter_base_offsets_32(uniform int32 *base, + varying int32 offsets, varying int32 values, mask) + void __pseudo_scatter_base_offsets_64(uniform int64 *base, + varying int62 offsets, varying int64 values, mask) + + And the GSImprovementsPass in turn converts these to actual native + scatters or masked stores. +*/ +static void +lDeclarePseudoScatters(llvm::Module *module) { + SourcePos noPos; + noPos.name = "__stdlib"; + + { + std::vector argTypes; + argTypes.push_back(LLVMTypes::VoidPointerVectorType); + argTypes.push_back(LLVMTypes::Int32VectorType); + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::VoidType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_scatter_32", module); + func->setDoesNotThrow(true); + } + { + std::vector argTypes; + argTypes.push_back(LLVMTypes::VoidPointerVectorType); + argTypes.push_back(LLVMTypes::Int64VectorType); + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::VoidType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_scatter_64", module); + func->setDoesNotThrow(true); + } + + { + std::vector argTypes; + argTypes.push_back(LLVMTypes::VoidPointerType); + argTypes.push_back(LLVMTypes::Int32VectorType); + argTypes.push_back(LLVMTypes::Int32VectorType); + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::VoidType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_scatter_base_offsets_32", module); + func->setDoesNotThrow(true); + } + { + std::vector argTypes; + argTypes.push_back(LLVMTypes::VoidPointerType); + argTypes.push_back(LLVMTypes::Int32VectorType); + argTypes.push_back(LLVMTypes::Int64VectorType); + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::VoidType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_scatter_base_offsets_64", module); + func->setDoesNotThrow(true); + } +} + + +/** This function declares placeholder masked store functions for the + front-end to use. + + void __pseudo_masked_store_32(uniform int32 *ptr, varying int32 values, mask) + void __pseudo_masked_store_64(uniform int64 *ptr, varying int64 values, mask) + + These in turn are converted to native masked stores or to regular + stores (if the mask is all on) by the MaskedStoreOptPass optimization + pass. + */ +static void +lDeclarePseudoMaskedStore(llvm::Module *module) { + SourcePos noPos; + noPos.name = "__stdlib"; + + { + std::vector argTypes; + argTypes.push_back(LLVMTypes::Int32VectorPointerType); + argTypes.push_back(LLVMTypes::Int32VectorType); + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::VoidType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_masked_store_32", module); + func->setDoesNotThrow(true); + func->addFnAttr(llvm::Attribute::AlwaysInline); + func->setDoesNotCapture(1, true); + } + + { + std::vector argTypes; + argTypes.push_back(LLVMTypes::Int64VectorPointerType); + argTypes.push_back(LLVMTypes::Int64VectorType); + argTypes.push_back(LLVMTypes::MaskType); + + llvm::FunctionType *fType = + llvm::FunctionType::get(LLVMTypes::VoidType, argTypes, false); + llvm::Function *func = + llvm::Function::Create(fType, llvm::GlobalValue::ExternalLinkage, + "__pseudo_masked_store_64", module); + func->setDoesNotThrow(true); + func->addFnAttr(llvm::Attribute::AlwaysInline); + func->setDoesNotCapture(1, true); + } +} + + +/** This utility function takes serialized binary LLVM bitcode and adds its + definitions to the given module. Functions in the bitcode that can be + mapped to ispc functions are also added to the symbol table. + + @param bitcode Binary LLVM bitcode (e.g. the contents of a *.bc file) + @param length Length of the bitcode buffer + @param module Module to link the bitcode into + @param symbolTable Symbol table to add definitions to + */ +static void +lAddBitcode(const unsigned char *bitcode, int length, + llvm::Module *module, SymbolTable *symbolTable) { + std::string bcErr; + llvm::StringRef sb = llvm::StringRef((char *)bitcode, length); + llvm::MemoryBuffer *bcBuf = llvm::MemoryBuffer::getMemBuffer(sb); + llvm::Module *bcModule = llvm::ParseBitcodeFile(bcBuf, *g->ctx, &bcErr); + if (!bcModule) + Error(SourcePos(), "Error parsing stdlib bitcode: %s", bcErr.c_str()); + else { + std::string(linkError); + if (llvm::Linker::LinkModules(module, bcModule, &linkError)) + Error(SourcePos(), "Error linking stdlib bitcode: %s", linkError.c_str()); + lAddModuleSymbols(module, symbolTable); + } +} + + +/** Utility routine that defines a constant int32 with given value, adding + the symbol to both the ispc symbol table and the given LLVM module. + */ +static void +lDefineConstantInt(const char *name, int val, llvm::Module *module, + SymbolTable *symbolTable) { + Symbol *pw = new Symbol(name, SourcePos(), AtomicType::UniformConstInt32); + pw->isStatic = true; + pw->constValue = new ConstExpr(pw->type, val, SourcePos()); + const llvm::Type *ltype = LLVMTypes::Int32Type; + llvm::Constant *linit = LLVMInt32(val); + pw->storagePtr = new llvm::GlobalVariable(*module, ltype, true, + llvm::GlobalValue::InternalLinkage, + linit, pw->name.c_str()); + symbolTable->AddVariable(pw); +} + + +static void +lDefineProgramIndex(llvm::Module *module, SymbolTable *symbolTable) { + Symbol *pidx = new Symbol("programIndex", SourcePos(), + AtomicType::VaryingConstInt32); + pidx->isStatic = true; + + int pi[ISPC_MAX_NVEC]; + for (int i = 0; i < g->target.vectorWidth; ++i) + pi[i] = i; + pidx->constValue = new ConstExpr(pidx->type, pi, SourcePos()); + + const llvm::Type *ltype = LLVMTypes::Int32VectorType; + llvm::Constant *linit = LLVMInt32Vector(pi); + pidx->storagePtr = new llvm::GlobalVariable(*module, ltype, true, + llvm::GlobalValue::InternalLinkage, linit, + pidx->name.c_str()); + symbolTable->AddVariable(pidx); +} + + +void +DefineStdlib(SymbolTable *symbolTable, llvm::LLVMContext *ctx, llvm::Module *module, + bool includeStdlibISPC) { + // Add the definitions from the compiled stdlib-c.c file + extern unsigned char stdlib_bitcode_c[]; + extern int stdlib_bitcode_c_length; + lAddBitcode(stdlib_bitcode_c, stdlib_bitcode_c_length, module, symbolTable); + + // Next, add the target's custom implementations of the various needed + // builtin functions (e.g. __masked_store_32(), etc). + switch (g->target.isa) { + case Target::SSE2: + extern unsigned char stdlib_bitcode_sse2[]; + extern int stdlib_bitcode_sse2_length; + lAddBitcode(stdlib_bitcode_sse2, stdlib_bitcode_sse2_length, module, + symbolTable); + break; + case Target::SSE4: + extern unsigned char stdlib_bitcode_sse4[]; + extern int stdlib_bitcode_sse4_length; + extern unsigned char stdlib_bitcode_sse4x2[]; + extern int stdlib_bitcode_sse4x2_length; + switch (g->target.vectorWidth) { + case 4: + lAddBitcode(stdlib_bitcode_sse4, stdlib_bitcode_sse4_length, + module, symbolTable); + break; + case 8: + lAddBitcode(stdlib_bitcode_sse4x2, stdlib_bitcode_sse4x2_length, + module, symbolTable); + break; + default: + FATAL("logic error in DefineStdlib"); + } + break; + case Target::AVX: + extern unsigned char stdlib_bitcode_avx[]; + extern int stdlib_bitcode_avx_length; + lAddBitcode(stdlib_bitcode_avx, stdlib_bitcode_avx_length, module, + symbolTable); + break; + default: + FATAL("logic error"); + } + + // Add a declaration of void *ISPCMalloc(int64_t). The user is + // responsible for linking in a definition of this if it's needed by + // the compiled program. + { std::vector argTypes; + argTypes.push_back(llvm::Type::getInt64Ty(*ctx)); + llvm::FunctionType *ftype = llvm::FunctionType::get(LLVMTypes::VoidPointerType, + argTypes, false); + llvm::Function *func = + llvm::Function::Create(ftype, llvm::GlobalValue::ExternalLinkage, + "ISPCMalloc", module); + func->setDoesNotThrow(true); + } + + // Add a declaration of void ISPCFree(void *). The user is + // responsible for linking in a definition of this if it's needed by + // the compiled program. + { std::vector argTypes; + argTypes.push_back(LLVMTypes::VoidPointerType); + llvm::FunctionType *ftype = llvm::FunctionType::get(LLVMTypes::VoidPointerType, + argTypes, false); + llvm::Function *func = + llvm::Function::Create(ftype, llvm::GlobalValue::ExternalLinkage, + "ISPCFree", module); + func->setDoesNotThrow(true); + } + + // Add a declaration of void ISPCLaunch(void *funcPtr, void *data). + // The user is responsible for linking in a definition of this if it's + // needed by the compiled program. + { std::vector argTypes; + argTypes.push_back(LLVMTypes::VoidPointerType); + argTypes.push_back(LLVMTypes::VoidPointerType); + llvm::FunctionType *ftype = llvm::FunctionType::get(LLVMTypes::VoidType, + argTypes, false); + llvm::Function *func = + llvm::Function::Create(ftype, llvm::GlobalValue::ExternalLinkage, + "ISPCLaunch", module); + func->setDoesNotThrow(true); + } + + // Add a declaration of void ISPCSync(). The user is responsible for + // linking in a definition of this if it's needed by the compiled + // program. + { + std::vector argTypes; + llvm::FunctionType *ftype = llvm::FunctionType::get(LLVMTypes::VoidType, + argTypes, false); + llvm::Function *func = + llvm::Function::Create(ftype, llvm::GlobalValue::ExternalLinkage, + "ISPCSync", module); + func->setDoesNotThrow(true); + } + + // Add a declaration of void ISPCInstrument(void *, void *, int, int). + // The user is responsible for linking in a definition of this if it's + // needed by the compiled program. + { + std::vector argTypes; + argTypes.push_back(llvm::PointerType::get(llvm::Type::getInt8Ty(*g->ctx), 0)); + argTypes.push_back(llvm::PointerType::get(llvm::Type::getInt8Ty(*g->ctx), 0)); + argTypes.push_back(LLVMTypes::Int32Type); + argTypes.push_back(LLVMTypes::Int32Type); + llvm::FunctionType *ftype = llvm::FunctionType::get(LLVMTypes::VoidType, + argTypes, false); + llvm::Function *func = + llvm::Function::Create(ftype, llvm::GlobalValue::ExternalLinkage, + "ISPCInstrument", module); + func->setDoesNotThrow(true); + } + + // Declare various placeholder functions that the optimizer will later + // find and replace with something more useful. + lDeclareCompileTimeConstant(module); + lDeclarePseudoGathers(module); + lDeclarePseudoScatters(module); + lDeclarePseudoMaskedStore(module); + + // define the 'programCount' builtin variable + lDefineConstantInt("programCount", g->target.vectorWidth, module, symbolTable); + + // define the 'programIndex' builtin + lDefineProgramIndex(module, symbolTable); + + // Define __math_lib stuff. This is used by stdlib.ispc, for example, to + // figure out which math routines to end up calling... + lDefineConstantInt("__math_lib", (int)g->mathLib, module, symbolTable); + lDefineConstantInt("__math_lib_ispc", (int)Globals::Math_ISPC, module, + symbolTable); + lDefineConstantInt("__math_lib_ispc_fast", (int)Globals::Math_ISPCFast, + module, symbolTable); + lDefineConstantInt("__math_lib_svml", (int)Globals::Math_SVML, module, + symbolTable); + lDefineConstantInt("__math_lib_system", (int)Globals::Math_System, module, + symbolTable); + + if (includeStdlibISPC) { + // If the user wants the standard library to be included, parse the + // serialized version of the stdlib.ispc file to get its definitions + // added. + extern const char *stdlib_code; + yy_scan_string(stdlib_code); + yyparse(); + } +} diff --git a/builtins.h b/builtins.h new file mode 100644 index 00000000..485cc369 --- /dev/null +++ b/builtins.h @@ -0,0 +1,58 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file builtins.h + @brief Declarations of functions related to builtins and the + standard library +*/ + +#ifndef ISPC_STDLIB_H +#define ISPC_STDLIB_H 1 + +#include "ispc.h" + +/** Adds declarations and definitions of ispc standard library functions + and types to the given module. + + @param symbolTable SymbolTable in which to add symbol definitions for + stdlib stuff + @param ctx llvm::LLVMContext to use for getting types and the + like for standard library definitions + @param module Module in which to add the declarations/definitions + @param includeStdlib Indicates whether the definitions from the stdlib.ispc + file should be added to the module. + */ +void DefineStdlib(SymbolTable *symbolTable, llvm::LLVMContext *ctx, llvm::Module *module, + bool includeStdlib); + +#endif // ISPC_STDLIB_H diff --git a/ctx.cpp b/ctx.cpp new file mode 100644 index 00000000..eb2d4d81 --- /dev/null +++ b/ctx.cpp @@ -0,0 +1,1903 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file ctx.cpp + @brief Implementation of the FunctionEmitContext class +*/ + +#include "ctx.h" +#include "util.h" +#include "llvmutil.h" +#include "type.h" +#include "stmt.h" +#include "expr.h" +#include "module.h" +#include "sym.h" +#include +#include +#include +#include +#include +#include + +/** This is a small utility structure that records information related to one + level of nested control flow. It's mostly used in correctly restoring + the mask and other state as we exit control flow nesting levels. +*/ +struct CFInfo { + /** Returns a new instance of the structure that represents entering an + 'if' statement */ + static CFInfo *GetIf(bool isUniform, llvm::Value *savedMask); + + /** Returns a new instance of the structure that represents entering a + loop. */ + static CFInfo *GetLoop(bool isUniform, llvm::BasicBlock *breakTarget, + llvm::BasicBlock *continueTarget, + llvm::Value *savedBreakLanesPtr, + llvm::Value *savedContinueLanesPtr, + llvm::Value *savedMask, llvm::Value *savedLoopMask); + + bool IsIf() { return type == If; } + bool IsLoop() { return type == Loop; } + bool IsVaryingType() { return !isUniform; } + bool IsUniform() { return isUniform; } + + enum CFType { If, Loop }; + CFType type; + bool isUniform; + llvm::BasicBlock *savedBreakTarget, *savedContinueTarget; + llvm::Value *savedBreakLanesPtr, *savedContinueLanesPtr; + llvm::Value *savedMask, *savedLoopMask; + +private: + CFInfo(CFType t, bool uniformIf, llvm::Value *sm) { + assert(t == If); + type = t; + isUniform = uniformIf; + savedBreakTarget = savedContinueTarget = NULL; + savedBreakLanesPtr = savedContinueLanesPtr = NULL; + savedMask = savedLoopMask = sm; + } + CFInfo(CFType t, bool iu, llvm::BasicBlock *bt, llvm::BasicBlock *ct, + llvm::Value *sb, llvm::Value *sc, llvm::Value *sm, + llvm::Value *lm) { + assert(t == Loop); + type = t; + isUniform = iu; + savedBreakTarget = bt; + savedContinueTarget = ct; + savedBreakLanesPtr = sb; + savedContinueLanesPtr = sc; + savedMask = sm; + savedLoopMask = lm; + } +}; + + +CFInfo * +CFInfo::GetIf(bool isUniform, llvm::Value *savedMask) { + return new CFInfo(If, isUniform, savedMask); +} + + +CFInfo * +CFInfo::GetLoop(bool isUniform, llvm::BasicBlock *breakTarget, + llvm::BasicBlock *continueTarget, + llvm::Value *savedBreakLanesPtr, + llvm::Value *savedContinueLanesPtr, + llvm::Value *savedMask, llvm::Value *savedLoopMask) { + return new CFInfo(Loop, isUniform, breakTarget, continueTarget, + savedBreakLanesPtr, savedContinueLanesPtr, + savedMask, savedLoopMask); +} + +/////////////////////////////////////////////////////////////////////////// + +FunctionEmitContext::FunctionEmitContext(const Type *rt, llvm::Function *function, + Symbol *funSym, SourcePos firstStmtPos) { + /* Create a new basic block to store all of the allocas */ + allocaBlock = llvm::BasicBlock::Create(*g->ctx, "allocas", function, 0); + bblock = llvm::BasicBlock::Create(*g->ctx, "entry", function, 0); + /* But jump from it immediately into the real entry block */ + llvm::BranchInst::Create(bblock, allocaBlock); + + maskPtr = AllocaInst(LLVMTypes::MaskType, "mask_memory"); + StoreInst(LLVMMaskAllOn, maskPtr); + + funcStartPos = funSym->pos; + returnType = rt; + entryMask = NULL; + loopMask = NULL; + breakLanesPtr = continueLanesPtr = NULL; + breakTarget = continueTarget = NULL; + + returnedLanesPtr = AllocaInst(LLVMTypes::MaskType, "returned_lanes_memory"); + StoreInst(LLVMMaskAllOff, returnedLanesPtr); + + if (!returnType || returnType == AtomicType::Void) + returnValuePtr = NULL; + else { + const llvm::Type *ftype = returnType->LLVMType(g->ctx); + returnValuePtr = AllocaInst(ftype, "return_value_memory"); + // FIXME: don't do this store??? + StoreInst(llvm::Constant::getNullValue(ftype), returnValuePtr); + } + +#ifndef LLVM_2_8 + if (m->diBuilder) { + /* If debugging is enabled, tell the debug information emission + code about this new function */ + diFile = funcStartPos.GetDIFile(); + llvm::DIType retType = rt->GetDIType(diFile); + int flags = llvm::DIDescriptor::FlagPrototyped; // ?? + diFunction = m->diBuilder->createFunction(diFile, /* scope */ + function->getName(), // mangled + funSym->name, + diFile, + funcStartPos.first_line, + retType, + funSym->isStatic, + true, /* is definition */ + flags, + g->opt.level > 0, + function); + /* And start a scope representing the initial function scope */ + StartScope(); + } +#endif // LLVM_2_8 + + launchedTasks = false; + + // connect the funciton's mask memory to the __mask symbol + Symbol *maskSymbol = m->symbolTable->LookupVariable("__mask"); + assert(maskSymbol != NULL); + maskSymbol->storagePtr = maskPtr; + +#ifndef LLVM_2_8 + // add debugging info for __mask, programIndex, ... + if (m->diBuilder) { + maskSymbol->pos = funcStartPos; + EmitVariableDebugInfo(maskSymbol); + + llvm::DIFile file = funcStartPos.GetDIFile(); + Symbol *programIndexSymbol = m->symbolTable->LookupVariable("programIndex"); + assert(programIndexSymbol && programIndexSymbol->storagePtr); + m->diBuilder->createGlobalVariable(programIndexSymbol->name, + file, + funcStartPos.first_line, + programIndexSymbol->type->GetDIType(file), + true /* static */, + programIndexSymbol->storagePtr); + + Symbol *programCountSymbol = m->symbolTable->LookupVariable("programCount"); + assert(programCountSymbol); + m->diBuilder->createGlobalVariable(programCountSymbol->name, + file, + funcStartPos.first_line, + programCountSymbol->type->GetDIType(file), + true /* static */, + programCountSymbol->storagePtr); + } +#endif +} + + +FunctionEmitContext::~FunctionEmitContext() { + assert(controlFlowInfo.size() == 0); +#ifndef LLVM_2_8 + assert(debugScopes.size() == (m->diBuilder ? 1 : 0)); +#endif +} + + +llvm::BasicBlock * +FunctionEmitContext::GetCurrentBasicBlock() { + return bblock; +} + + +void +FunctionEmitContext::SetCurrentBasicBlock(llvm::BasicBlock *bb) { + bblock = bb; +} + + +llvm::Value * +FunctionEmitContext::GetMask() { + return LoadInst(maskPtr, NULL, "load_mask"); +} + + +void +FunctionEmitContext::SetEntryMask(llvm::Value *value) { + entryMask = value; + SetMask(value); +} + + +void +FunctionEmitContext::SetLoopMask(llvm::Value *value) { + loopMask = value; +} + + +void +FunctionEmitContext::SetMask(llvm::Value *value) { + StoreInst(value, maskPtr); +} + + +void +FunctionEmitContext::MaskAnd(llvm::Value *oldMask, llvm::Value *test) { + llvm::Value *mask = BinaryOperator(llvm::Instruction::And, oldMask, + test, "oldMask&test"); + SetMask(mask); +} + + +void +FunctionEmitContext::MaskAndNot(llvm::Value *oldMask, llvm::Value *test) { + llvm::Value *notTest = BinaryOperator(llvm::Instruction::Xor, test, LLVMMaskAllOn, + "~test"); + llvm::Value *mask = BinaryOperator(llvm::Instruction::And, oldMask, notTest, + "oldMask&~test"); + SetMask(mask); +} + + +void +FunctionEmitContext::BranchIfMaskAny(llvm::BasicBlock *btrue, llvm::BasicBlock *bfalse) { + assert(bblock != NULL); + llvm::Value *any = Any(GetMask()); + BranchInst(btrue, bfalse, any); + // It's illegal to add any additional instructions to the basic block + // now that it's terminated, so set bblock to NULL to be safe + bblock = NULL; +} + + +void +FunctionEmitContext::BranchIfMaskAll(llvm::BasicBlock *btrue, llvm::BasicBlock *bfalse) { + assert(bblock != NULL); + llvm::Value *all = All(GetMask()); + BranchInst(btrue, bfalse, all); + // It's illegal to add any additional instructions to the basic block + // now that it's terminated, so set bblock to NULL to be safe + bblock = NULL; +} + + +void +FunctionEmitContext::BranchIfMaskNone(llvm::BasicBlock *btrue, llvm::BasicBlock *bfalse) { + assert(bblock != NULL); + // switch sense of true/false bblocks + BranchIfMaskAny(bfalse, btrue); + // It's illegal to add any additional instructions to the basic block + // now that it's terminated, so set bblock to NULL to be safe + bblock = NULL; +} + + +void +FunctionEmitContext::StartUniformIf(llvm::Value *oldMask) { + controlFlowInfo.push_back(CFInfo::GetIf(true, oldMask)); +} + + +void +FunctionEmitContext::StartVaryingIf(llvm::Value *oldMask) { + controlFlowInfo.push_back(CFInfo::GetIf(false, oldMask)); +} + + +void +FunctionEmitContext::EndIf() { + // Make sure we match up with a Start{Uniform,Varying}If(). + assert(controlFlowInfo.size() > 0 && controlFlowInfo.back()->IsIf()); + CFInfo *ci = controlFlowInfo.back(); + controlFlowInfo.pop_back(); + + // 'uniform' ifs don't change the mask so we only need to restore the + // mask going into the if for 'varying' if statements + if (!ci->IsUniform() && bblock != NULL) { + // We can't just restore the mask as it was going into the 'if' + // statement. First we have to take into account any program + // instances that have executed 'return' statements; the restored + // mask must be off for those lanes. + restoreMaskGivenReturns(ci->savedMask); + + // If the 'if' statement is inside a loop with a 'varying' + // consdition, we also need to account for any break or continue + // statements that executed inside the 'if' statmeent; we also must + // leave the lane masks for the program instances that ran those + // off after we restore the mask after the 'if'. The code below + // ends up being optimized out in the case that there were no break + // or continue statements (and breakLanesPtr and continueLanesPtr + // have their initial 'all off' values), so we don't need to check + // for that here. + if (breakLanesPtr != NULL) { + assert(continueLanesPtr != NULL); + + // newMask = (oldMask & ~(breakLanes | continueLanes)) + llvm::Value *oldMask = GetMask(); + llvm::Value *breakLanes = LoadInst(breakLanesPtr, NULL, + "break_lanes"); + llvm::Value *continueLanes = LoadInst(continueLanesPtr, NULL, + "continue_lanes"); + llvm::Value *breakOrContinueLanes = + BinaryOperator(llvm::Instruction::Or, breakLanes, continueLanes, + "break|continue_lanes"); + llvm::Value *notBreakOrContinue = NotOperator(breakOrContinueLanes, + "!(break|continue)_lanes"); + llvm::Value *newMask = + BinaryOperator(llvm::Instruction::And, oldMask, notBreakOrContinue, + "new_mask"); + SetMask(newMask); + } + } +} + + +void +FunctionEmitContext::StartLoop(llvm::BasicBlock *bt, llvm::BasicBlock *ct, + bool uniformCF, llvm::Value *oldMask) { + // Store the current values of various loop-related state so that we + // can restore it when we exit this loop. + controlFlowInfo.push_back(CFInfo::GetLoop(uniformCF, breakTarget, + continueTarget, breakLanesPtr, + continueLanesPtr, oldMask, loopMask)); + if (uniformCF) + // If the loop has a uniform condition, we don't need to track + // which lanes 'break' or 'continue'; all of the running ones go + // together, so we just jump + breakLanesPtr = continueLanesPtr = NULL; + else { + // For loops with varying conditions, allocate space to store masks + // that record which lanes have done these + continueLanesPtr = AllocaInst(LLVMTypes::MaskType, "continue_lanes_memory"); + StoreInst(LLVMMaskAllOff, continueLanesPtr); + breakLanesPtr = AllocaInst(LLVMTypes::MaskType, "break_lanes_memory"); + StoreInst(LLVMMaskAllOff, breakLanesPtr); + } + + breakTarget = bt; + continueTarget = ct; + loopMask = NULL; // this better be set by the loop! +} + + +void +FunctionEmitContext::EndLoop() { + assert(controlFlowInfo.size() && !controlFlowInfo.back()->IsIf()); + CFInfo *ci = controlFlowInfo.back(); + controlFlowInfo.pop_back(); + + // Restore the break/continue state information to what it was before + // we went into this loop. + breakTarget = ci->savedBreakTarget; + continueTarget = ci->savedContinueTarget; + breakLanesPtr = ci->savedBreakLanesPtr; + continueLanesPtr = ci->savedContinueLanesPtr; + loopMask = ci->savedLoopMask; + + if (!ci->IsUniform()) + // If the loop had a 'uniform' test, then it didn't make any + // changes to the mask so there's nothing to restore. If it had a + // varying test, we need to restore the mask to what it was going + // into the loop, but still leaving off any lanes that executed a + // 'return' statement. + restoreMaskGivenReturns(ci->savedMask); +} + + +void +FunctionEmitContext::restoreMaskGivenReturns(llvm::Value *oldMask) { + if (!bblock) + return; + + // Restore the mask to the given old mask, but leave off any lanes that + // executed a return statement. + // newMask = (oldMask & ~returnedLanes) + llvm::Value *returnedLanes = LoadInst(returnedLanesPtr, NULL, "returned_lanes"); + llvm::Value *notReturned = NotOperator(returnedLanes, "~returned_lanes"); + llvm::Value *newMask = BinaryOperator(llvm::Instruction::And, + oldMask, notReturned, "new_mask"); + SetMask(newMask); +} + + +void +FunctionEmitContext::Break(bool doCoherenceCheck) { + if (breakTarget == NULL) { + Error(currentPos, "\"break\" statement is illegal outside of for/while/do loops."); + return; + } + + // If all of the enclosing 'if' tests in the loop have uniform control + // flow or if we can tell that the mask is all on, then we can just + // jump to the break location. + if (ifsInLoopAllUniform() || GetMask() == LLVMMaskAllOn) { + BranchInst(breakTarget); + if (ifsInLoopAllUniform() && doCoherenceCheck) + Warning(currentPos, "Coherent break statement not necessary in fully uniform " + "control flow."); + // Set bblock to NULL since the jump has terminated the basic block + bblock = NULL; + } + else { + // Otherwise we need to update the mask of the lanes that have + // executed a 'break' statement: + // breakLanes = breakLanes | mask + assert(breakLanesPtr != NULL); + llvm::Value *mask = GetMask(); + llvm::Value *breakMask = LoadInst(breakLanesPtr, NULL, "break_mask"); + llvm::Value *newMask = BinaryOperator(llvm::Instruction::Or, + mask, breakMask, "mask|break_mask"); + StoreInst(newMask, breakLanesPtr); + + // Set the current mask to be all off, just in case there are any + // statements in the same scope after the 'break'. Most of time + // this will be optimized away since we'll likely end the scope of + // an 'if' statement and restore the mask then. + SetMask(LLVMMaskAllOff); + + if (doCoherenceCheck) + // If the user has indicated that this is a 'coherent' break + // statement, then check to see if the mask is all off. If so, + // we have to conservatively jump to the continueTarget, not + // the breakTarget, since part of the reason the mask is all + // off may be due to 'continue' statements that executed in the + // current loop iteration. + // FIXME: if the loop only has break statements and no + // continues, we can jump to breakTarget in that case. + jumpIfAllLoopLanesAreDone(continueTarget); + } +} + + +void +FunctionEmitContext::Continue(bool doCoherenceCheck) { + if (!continueTarget) { + Error(currentPos, "\"continue\" statement illegal outside of for/while/do loops."); + return; + } + + if (ifsInLoopAllUniform() || GetMask() == LLVMMaskAllOn) { + // Similarly to 'break' statements, we can immediately jump to the + // continue target if we're only in 'uniform' control flow within + // loop or if we can tell that the mask is all on. + AddInstrumentationPoint("continue: uniform CF, jumped"); + if (ifsInLoopAllUniform() && doCoherenceCheck) + Warning(currentPos, "Coherent continue statement not necessary in fully uniform " + "control flow."); + BranchInst(continueTarget); + bblock = NULL; + } + else { + // Otherwise update the stored value of which lanes have 'continue'd. + // continueLanes = continueLanes | mask + assert(continueLanesPtr); + llvm::Value *mask = GetMask(); + llvm::Value *continueMask = + LoadInst(continueLanesPtr, NULL, "continue_mask"); + llvm::Value *newMask = BinaryOperator(llvm::Instruction::Or, + mask, continueMask, "mask|continueMask"); + StoreInst(newMask, continueLanesPtr); + + // And set the current mask to be all off in case there are any + // statements in the same scope after the 'continue' + SetMask(LLVMMaskAllOff); + + if (doCoherenceCheck) + // If this is a 'coherent continue' statement, then emit the + // code to see if all of the lanes are now off due to + // breaks/continues and jump to the continue target if so. + jumpIfAllLoopLanesAreDone(continueTarget); + } +} + + +/** This function checks to see if all of the 'if' statements (if any) + between the current scope and the first enclosing loop have 'uniform' + tests. + */ +bool +FunctionEmitContext::ifsInLoopAllUniform() const { + assert(controlFlowInfo.size() > 0); + // Go backwards through controlFlowInfo, since we add new nested scopes + // to the back. Stop once we come to the first enclosing loop. + int i = controlFlowInfo.size() - 1; + while (i >= 0 && controlFlowInfo[i]->type != CFInfo::Loop) { + if (controlFlowInfo[i]->isUniform == false) + // Found a scope due to an 'if' statement with a varying test + return false; + --i; + } + assert(i >= 0); // else we didn't find a loop! + return true; +} + + +void +FunctionEmitContext::jumpIfAllLoopLanesAreDone(llvm::BasicBlock *target) { + // Check to see if (returned lanes | continued lanes | break lanes) is + // equal to the value of mask at the start of the loop iteration. If + // so, everyone is done and we can jump to the given target + llvm::Value *returned = LoadInst(returnedLanesPtr, NULL, "returned_lanes"); + llvm::Value *continued = LoadInst(continueLanesPtr, NULL, "continue_lanes"); + llvm::Value *breaked = LoadInst(breakLanesPtr, NULL, "break_lanes"); + llvm::Value *returnedOrContinued = BinaryOperator(llvm::Instruction::Or, + returned, continued, + "returned|continued"); + llvm::Value *returnedOrContinuedOrBreaked = + BinaryOperator(llvm::Instruction::Or, returnedOrContinued, + breaked, "returned|continued"); + + // Do we match the mask at loop entry? + llvm::Value *allRCB = MasksAllEqual(returnedOrContinuedOrBreaked, loopMask); + llvm::BasicBlock *bAll = CreateBasicBlock("all_continued_or_breaked"); + llvm::BasicBlock *bNotAll = CreateBasicBlock("not_all_continued_or_breaked"); + BranchInst(bAll, bNotAll, allRCB); + + // If so, have an extra basic block along the way to add + // instrumentation, if the user asked for it. + bblock = bAll; + AddInstrumentationPoint("break/continue: all dynamically went"); + BranchInst(target); + + // And set the current basic block to a new one for future instructions + // for the path where we weren't able to jump + bblock = bNotAll; + AddInstrumentationPoint("break/continue: not all went"); +} + + +void +FunctionEmitContext::RestoreContinuedLanes() { + if (continueLanesPtr == NULL) + return; + + // mask = mask & continueFlags + llvm::Value *mask = GetMask(); + llvm::Value *continueMask = LoadInst(continueLanesPtr, NULL, "continue_mask"); + llvm::Value *orMask = BinaryOperator(llvm::Instruction::Or, + mask, continueMask, "mask|continue_mask"); + SetMask(orMask); + + // continueLanes = 0 + StoreInst(LLVMMaskAllOff, continueLanesPtr); +} + + +int +FunctionEmitContext::VaryingCFDepth() const { + int sum = 0; + for (unsigned int i = 0; i < controlFlowInfo.size(); ++i) + if (controlFlowInfo[i]->IsVaryingType()) + ++sum; + return sum; +} + + +void +FunctionEmitContext::CurrentLanesReturned(Expr *expr, bool doCoherenceCheck) { + if (returnType == AtomicType::Void) { + if (expr != NULL) + Error(expr->pos, "Can't return non-void type \"%s\" from void function.", + expr->GetType()->GetString().c_str()); + } + else { + if (expr == NULL) { + Error(funcStartPos, + "Must provide return value for return statement for non-void function."); + return; + } + + // Use a masked store to store the value of the expression in the + // return value memory; this preserves the return values from other + // lanes that may have executed return statements previously. + Expr *r = expr->TypeConv(returnType, "return statement"); + if (r != NULL) { + llvm::Value *retVal = r->GetValue(this); + StoreInst(retVal, returnValuePtr, GetMask(), returnType); + } + } + + if (VaryingCFDepth() == 0) { + // If there is only uniform control flow between us and the + // function entry, then it's guaranteed that all lanes are running, + // so we can just emit a true return instruction + AddInstrumentationPoint("return: uniform control flow"); + ReturnInst(); + } + else { + // Otherwise we update the returnedLanes value by ANDing it with + // the current lane mask. + llvm::Value *oldReturnedLanes = LoadInst(returnedLanesPtr, NULL, + "old_returned_lanes"); + llvm::Value *newReturnedLanes = BinaryOperator(llvm::Instruction::Or, + oldReturnedLanes, + GetMask(), "old_mask|returned_lanes"); + + // For 'coherent' return statements, emit code to check if all + // lanes have returned + if (doCoherenceCheck) { + // if newReturnedLanes == entryMask, get out of here! + llvm::Value *cmp = MasksAllEqual(entryMask, newReturnedLanes); + llvm::BasicBlock *bDoReturn = CreateBasicBlock("do_return"); + llvm::BasicBlock *bNoReturn = CreateBasicBlock("no_return"); + BranchInst(bDoReturn, bNoReturn, cmp); + + bblock = bDoReturn; + AddInstrumentationPoint("return: all lanes have returned"); + ReturnInst(); + + bblock = bNoReturn; + } + // Otherwise update returnedLanesPtr and turn off all of the lanes + // in the current mask so that any subsequent statements in the + // same scope after the return have no effect + StoreInst(newReturnedLanes, returnedLanesPtr); + AddInstrumentationPoint("return: some but not all lanes have returned"); + SetMask(LLVMMaskAllOff); + } +} + + +llvm::Value * +FunctionEmitContext::Any(llvm::Value *mask) { + llvm::Value *mmval = LaneMask(mask); + return CmpInst(llvm::Instruction::ICmp, llvm::CmpInst::ICMP_NE, mmval, + LLVMInt32(0), "any_mm_cmp"); +} + + +llvm::Value * +FunctionEmitContext::All(llvm::Value *mask) { + llvm::Value *mmval = LaneMask(mask); + return CmpInst(llvm::Instruction::ICmp, llvm::CmpInst::ICMP_EQ, mmval, + LLVMInt32((1<target.vectorWidth)-1), "all_mm_cmp"); +} + + +llvm::Value * +FunctionEmitContext::LaneMask(llvm::Value *v) { + // Call the target-dependent movmsk function to turn the vector mask + // into an i32 value + std::vector *mm = m->symbolTable->LookupFunction("__movmsk"); + assert(mm && mm->size() == 1); + llvm::Function *fmm = (*mm)[0]->function; + return CallInst(fmm, v, "val_movmsk"); +} + + +llvm::Value * +FunctionEmitContext::MasksAllEqual(llvm::Value *v1, llvm::Value *v2) { + // Compare the two masks to get a vector of i1s + llvm::Value *cmp = CmpInst(llvm::Instruction::ICmp, llvm::CmpInst::ICMP_EQ, + v1, v2, "v1==v2"); + // Turn that into a bool vector type (often i32s) + cmp = I1VecToBoolVec(cmp); + // And see if it's all on + return All(cmp); +} + + +llvm::Value * +FunctionEmitContext::GetStringPtr(const std::string &str) { + llvm::Constant *lstr = llvm::ConstantArray::get(*g->ctx, str); + llvm::GlobalValue::LinkageTypes linkage = llvm::GlobalValue::InternalLinkage; + llvm::Value *lstrPtr = new llvm::GlobalVariable(*m->module, lstr->getType(), + true /*isConst*/, + linkage, lstr, "__str"); + return new llvm::BitCastInst(lstrPtr, LLVMTypes::VoidPointerType, + "str_void_ptr", bblock); +} + + +llvm::BasicBlock * +FunctionEmitContext::CreateBasicBlock(const char *name) { + llvm::Function *function = bblock->getParent(); + return llvm::BasicBlock::Create(*g->ctx, name, function); +} + + +llvm::Value * +FunctionEmitContext::I1VecToBoolVec(llvm::Value *b) { + const llvm::ArrayType *at = llvm::dyn_cast(b->getType()); + if (at) { + // If we're given an array of vectors of i1s, then do the + // conversion for each of the elements + const llvm::Type *boolArrayType = + llvm::ArrayType::get(LLVMTypes::BoolVectorType, at->getNumElements()); + llvm::Value *ret = llvm::UndefValue::get(boolArrayType); + + for (unsigned int i = 0; i < at->getNumElements(); ++i) { + llvm::Value *elt = ExtractInst(b, i); + llvm::Value *sext = SExtInst(elt, LLVMTypes::BoolVectorType, + "val_to_boolvec32"); + ret = InsertInst(ret, sext, i); + } + return ret; + } + else + return SExtInst(b, LLVMTypes::BoolVectorType, "val_to_boolvec32"); +} + + +llvm::Value * +FunctionEmitContext::EmitMalloc(const llvm::Type *ty) { + // Emit code to compute the size of the given type using a GEP with a + // NULL base pointer, indexing one element of the given type, and + // casting the resulting 'pointer' to an int giving its size. + const llvm::Type *ptrType = llvm::PointerType::get(ty, 0); + llvm::Value *nullPtr = llvm::Constant::getNullValue(ptrType); + llvm::Value *index[1] = { LLVMInt32(1) }; + llvm::Value *poffset = llvm::GetElementPtrInst::Create(nullPtr, &index[0], &index[1], + "offset_ptr", bblock); + AddDebugPos(poffset); + llvm::Value *sizeOf = PtrToIntInst(poffset, LLVMTypes::Int64Type, "offset_int"); + + // And given the size, call the malloc function + llvm::Function *fmalloc = m->module->getFunction("ISPCMalloc"); + assert(fmalloc != NULL); + llvm::Value *mem = CallInst(fmalloc, sizeOf, "raw_argmem"); + // Cast the void * back to the result pointer type + return BitCastInst(mem, ptrType, "mem_bitcast"); +} + + +void +FunctionEmitContext::EmitFree(llvm::Value *ptr) { + llvm::Value *freeArg = BitCastInst(ptr, LLVMTypes::VoidPointerType, + "argmemfree"); + llvm::Function *ffree = m->module->getFunction("ISPCFree"); + assert(ffree != NULL); + CallInst(ffree, freeArg); +} + + +static llvm::Value * +lGetStringAsValue(llvm::BasicBlock *bblock, const char *s) { + llvm::Constant *sConstant = llvm::ConstantArray::get(*g->ctx, s); + llvm::Value *sPtr = new llvm::GlobalVariable(*m->module, sConstant->getType(), + true /* const */, + llvm::GlobalValue::InternalLinkage, + sConstant, s); + llvm::Value *indices[2] = { LLVMInt32(0), LLVMInt32(0) }; + return llvm::GetElementPtrInst::Create(sPtr, &indices[0], &indices[2], + "sptr", bblock); +} + + +void +FunctionEmitContext::AddInstrumentationPoint(const char *note) { + assert(note != NULL); + if (!g->emitInstrumentation) + return; + + std::vector args; + // arg 1: filename as string + args.push_back(lGetStringAsValue(bblock, currentPos.name)); + // arg 2: provided note + args.push_back(lGetStringAsValue(bblock, note)); + // arg 3: line number + args.push_back(LLVMInt32(currentPos.first_line)); + // arg 4: current mask, movmsk'ed down to an int32 + args.push_back(LaneMask(GetMask())); + + llvm::Function *finst = m->module->getFunction("ISPCInstrument"); + CallInst(finst, args, ""); +} + + +void +FunctionEmitContext::SetDebugPos(SourcePos pos) { + currentPos = pos; +} + + +SourcePos +FunctionEmitContext::GetDebugPos() const { + return currentPos; +} + + +void +FunctionEmitContext::AddDebugPos(llvm::Value *value, const SourcePos *pos, + llvm::DIScope *scope) { +#ifndef LLVM_2_8 + llvm::Instruction *inst = llvm::dyn_cast(value); + if (inst != NULL && m->diBuilder) { + SourcePos p = pos ? *pos : currentPos; + if (p.first_line != 0) + // If first_line == 0, then we're in the middle of setting up + // the standard library or the like; don't add debug positions + // for those functions + inst->setDebugLoc(llvm::DebugLoc::get(p.first_line, p.first_column, + scope ? *scope : GetDIScope())); + } +#endif +} + + +void +FunctionEmitContext::StartScope() { +#ifndef LLVM_2_8 + if (m->diBuilder != NULL) { + llvm::DIScope parentScope; + if (debugScopes.size() > 0) + parentScope = debugScopes.back(); + else + parentScope = diFunction; + + llvm::DILexicalBlock lexicalBlock = + m->diBuilder->createLexicalBlock(parentScope, diFile, + currentPos.first_line, + currentPos.first_column); + debugScopes.push_back(lexicalBlock); + } +#endif +} + + +void +FunctionEmitContext::EndScope() { +#ifndef LLVM_2_8 + if (m->diBuilder != NULL) { + assert(debugScopes.size() > 0); + debugScopes.pop_back(); + } +#endif +} + + +llvm::DIScope +FunctionEmitContext::GetDIScope() const { + assert(debugScopes.size() > 0); + return debugScopes.back(); +} + + +void +FunctionEmitContext::EmitVariableDebugInfo(Symbol *sym) { +#ifndef LLVM_2_8 + if (m->diBuilder == NULL) + return; + + llvm::DIScope scope = GetDIScope(); + llvm::DIVariable var = + m->diBuilder->createLocalVariable(llvm::dwarf::DW_TAG_auto_variable, + scope, + sym->name, + sym->pos.GetDIFile(), + sym->pos.first_line, + sym->type->GetDIType(scope), + true /* preserve through opts */); + llvm::Instruction *declareInst = + m->diBuilder->insertDeclare(sym->storagePtr, var, bblock); + AddDebugPos(declareInst, &sym->pos, &scope); +#endif +} + + +void +FunctionEmitContext::EmitFunctionParameterDebugInfo(Symbol *sym) { +#ifndef LLVM_2_8 + if (m->diBuilder == NULL) + return; + + llvm::DIScope scope = diFunction; + llvm::DIVariable var = + m->diBuilder->createLocalVariable(llvm::dwarf::DW_TAG_arg_variable, + scope, + sym->name, + sym->pos.GetDIFile(), + sym->pos.first_line, + sym->type->GetDIType(scope), + true /* preserve through opts */); + llvm::Instruction *declareInst = + m->diBuilder->insertDeclare(sym->storagePtr, var, bblock); + AddDebugPos(declareInst, &sym->pos, &scope); +#endif +} + + +/** If the given type is an array of vector types, then it's the + representation of an ispc VectorType with varying elements. If it is + one of these, return the array size (i.e. the VectorType's size). + Otherwise return zero. + */ +static int +lArrayVectorWidth(const llvm::Type *t) { + const llvm::ArrayType *arrayType = llvm::dyn_cast(t); + if (arrayType == NULL) + return 0; + + // We shouldn't be seeing arrays of anything but vectors being passed + // to things like FunctionEmitContext::BinaryOperator() as operands + const llvm::VectorType *vectorElementType = + llvm::dyn_cast(arrayType->getElementType()); + assert(vectorElementType != NULL && + (int)vectorElementType->getNumElements() == g->target.vectorWidth); + return (int)arrayType->getNumElements(); +} + + +llvm::Value * +FunctionEmitContext::BinaryOperator(llvm::Instruction::BinaryOps inst, + llvm::Value *v0, llvm::Value *v1, + const char *name) { + if (v0 == NULL || v1 == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + assert(v0->getType() == v1->getType()); + const llvm::Type *type = v0->getType(); + int arraySize = lArrayVectorWidth(type); + if (arraySize == 0) { + llvm::Instruction *bop = + llvm::BinaryOperator::Create(inst, v0, v1, name ? name : "", bblock); + AddDebugPos(bop); + return bop; + } + else { + // If this is an ispc VectorType, apply the binary operator to each + // of the elements of the array (which in turn should be either + // scalar types or llvm::VectorTypes.) + llvm::Value *ret = llvm::UndefValue::get(type); + for (int i = 0; i < arraySize; ++i) { + llvm::Value *a = ExtractInst(v0, i); + llvm::Value *b = ExtractInst(v1, i); + llvm::Value *op = BinaryOperator(inst, a, b); + ret = InsertInst(ret, op, i); + } + return ret; + } +} + + +llvm::Value * +FunctionEmitContext::NotOperator(llvm::Value *v, const char *name) { + if (v == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // Similarly to BinaryOperator, do the operation on all the elements of + // the array if we're given an array type; otherwise just do the + // regular llvm operation. + const llvm::Type *type = v->getType(); + int arraySize = lArrayVectorWidth(type); + if (arraySize == 0) { + llvm::Instruction *binst = + llvm::BinaryOperator::CreateNot(v, name ? name : "not", bblock); + AddDebugPos(binst); + return binst; + } + else { + llvm::Value *ret = llvm::UndefValue::get(type); + for (int i = 0; i < arraySize; ++i) { + llvm::Value *a = ExtractInst(v, i); + llvm::Value *op = + llvm::BinaryOperator::CreateNot(a, name ? name : "not", bblock); + AddDebugPos(op); + ret = InsertInst(ret, op, i); + } + return ret; + } +} + + +// Given the llvm Type that represents an ispc VectorType, return an +// equally-shaped type with boolean elements. (This is the type that will +// be returned from CmpInst with ispc VectorTypes). +static const llvm::Type * +lGetMatchingBoolVectorType(const llvm::Type *type) { + const llvm::ArrayType *arrayType = + llvm::dyn_cast(type); + // should only be called for vector typed stuff... + assert(arrayType != NULL); + + const llvm::VectorType *vectorElementType = + llvm::dyn_cast(arrayType->getElementType()); + assert(vectorElementType != NULL && + (int)vectorElementType->getNumElements() == g->target.vectorWidth); + + const llvm::Type *base = llvm::VectorType::get(LLVMTypes::BoolType, + g->target.vectorWidth); + return llvm::ArrayType::get(base, arrayType->getNumElements()); +} + + +llvm::Value * +FunctionEmitContext::CmpInst(llvm::Instruction::OtherOps inst, + llvm::CmpInst::Predicate pred, + llvm::Value *v0, llvm::Value *v1, + const char *name) { + if (v0 == NULL || v1 == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + assert(v0->getType() == v1->getType()); + const llvm::Type *type = v0->getType(); + int arraySize = lArrayVectorWidth(type); + if (arraySize == 0) { + llvm::Instruction *ci = + llvm::CmpInst::Create(inst, pred, v0, v1, name ? name : "cmp", + bblock); + AddDebugPos(ci); + return ci; + } + else { + const llvm::Type *boolType = lGetMatchingBoolVectorType(type); + llvm::Value *ret = llvm::UndefValue::get(boolType); + for (int i = 0; i < arraySize; ++i) { + llvm::Value *a = ExtractInst(v0, i); + llvm::Value *b = ExtractInst(v1, i); + llvm::Value *op = CmpInst(inst, pred, a, b, name); + ret = InsertInst(ret, op, i); + } + return ret; + } +} + + +llvm::Value * +FunctionEmitContext::BitCastInst(llvm::Value *value, const llvm::Type *type, + const char *name) { + if (value == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + const llvm::Type *valType = value->getType(); + const llvm::ArrayType *at = llvm::dyn_cast(valType); + if (at && llvm::isa(at->getElementType())) { + // If we're bitcasting an array of pointers, we have a varying + // lvalue; apply the corresponding bitcast to each of the + // individual pointers and return the result array. + assert((int)at->getNumElements() == g->target.vectorWidth); + + llvm::Value *ret = + llvm::UndefValue::get(llvm::ArrayType::get(type, g->target.vectorWidth)); + for (int i = 0; i < g->target.vectorWidth; ++i) { + llvm::Value *elt = ExtractInst(value, i); + llvm::Value *bc = BitCastInst(elt, type, name); + ret = InsertInst(ret, bc, i); + } + return ret; + } + else { + llvm::Instruction *inst = + new llvm::BitCastInst(value, type, name ? name : "bitcast", bblock); + AddDebugPos(inst); + return inst; + } +} + + +llvm::Instruction * +FunctionEmitContext::PtrToIntInst(llvm::Value *value, const llvm::Type *type, + const char *name) { + if (value == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // TODO: we should probably handle the array case as in + // e.g. BitCastInst(), but we don't currently need that functionality + llvm::Instruction *inst = + new llvm::PtrToIntInst(value, type, name ? name : "ptr2int", bblock); + AddDebugPos(inst); + return inst; +} + + +llvm::Instruction * +FunctionEmitContext::IntToPtrInst(llvm::Value *value, const llvm::Type *type, + const char *name) { + if (value == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // TODO: we should probably handle the array case as in + // e.g. BitCastInst(), but we don't currently need that functionality + llvm::Instruction *inst = + new llvm::IntToPtrInst(value, type, name ? name : "int2ptr", bblock); + AddDebugPos(inst); + return inst; +} + + +llvm::Instruction * +FunctionEmitContext::TruncInst(llvm::Value *value, const llvm::Type *type, + const char *name) { + if (value == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // TODO: we should probably handle the array case as in + // e.g. BitCastInst(), but we don't currently need that functionality + llvm::Instruction *inst = + new llvm::TruncInst(value, type, name ? name : "trunc", bblock); + AddDebugPos(inst); + return inst; +} + + +llvm::Instruction * +FunctionEmitContext::CastInst(llvm::Instruction::CastOps op, llvm::Value *value, + const llvm::Type *type, const char *name) { + if (value == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // TODO: we should probably handle the array case as in + // e.g. BitCastInst(), but we don't currently need that functionality + llvm::Instruction *inst = + llvm::CastInst::Create(op, value, type, name ? name : "cast", bblock); + AddDebugPos(inst); + return inst; +} + + +llvm::Instruction * +FunctionEmitContext::FPCastInst(llvm::Value *value, const llvm::Type *type, + const char *name) { + if (value == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // TODO: we should probably handle the array case as in + // e.g. BitCastInst(), but we don't currently need that functionality + llvm::Instruction *inst = + llvm::CastInst::CreateFPCast(value, type, name ? name : "fpcast", bblock); + AddDebugPos(inst); + return inst; +} + + +llvm::Instruction * +FunctionEmitContext::SExtInst(llvm::Value *value, const llvm::Type *type, + const char *name) { + if (value == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // TODO: we should probably handle the array case as in + // e.g. BitCastInst(), but we don't currently need that functionality + llvm::Instruction *inst = + new llvm::SExtInst(value, type, name ? name : "sext", bblock); + AddDebugPos(inst); + return inst; +} + + +llvm::Instruction * +FunctionEmitContext::ZExtInst(llvm::Value *value, const llvm::Type *type, + const char *name) { + if (value == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // TODO: we should probably handle the array case as in + // e.g. BitCastInst(), but we don't currently need that functionality + llvm::Instruction *inst = + new llvm::ZExtInst(value, type, name ? name : "zext", bblock); + AddDebugPos(inst); + return inst; +} + + +llvm::Value * +FunctionEmitContext::GetElementPtrInst(llvm::Value *basePtr, llvm::Value *index0, + llvm::Value *index1, const char *name) { + if (basePtr == NULL || index0 == NULL || index1 == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + // FIXME: do we need need to handle the case of the first index being + // varying? It's currently needed... + assert(!llvm::isa(index0->getType())); + + const llvm::Type *basePtrType = basePtr->getType(); + const llvm::ArrayType *baseArrayType = + llvm::dyn_cast(basePtrType); + bool baseIsVaryingTypePointer = (baseArrayType != NULL) && + llvm::isa(baseArrayType->getElementType()); + bool indexIsVaryingType = llvm::isa(index1->getType()); + + if (!indexIsVaryingType && !baseIsVaryingTypePointer) { + // The easy case: both the base pointer and the indices are + // uniform, so just emit the regular LLVM GEP instruction + llvm::Value *indices[2] = { index0, index1 }; + llvm::Instruction *inst = + llvm::GetElementPtrInst::Create(basePtr, &indices[0], &indices[2], + name ? name : "gep", bblock); + AddDebugPos(inst); + return inst; + } + else { + // We have a varying pointer and/or indices; emit the appropriate + // GEP for each of the program instances + llvm::Value *lret = NULL; + for (int i = 0; i < g->target.vectorWidth; ++i) { + // Get the index, either using the same one if it's uniform or + // the one for this lane if it's varying + llvm::Value *indexElt; + if (indexIsVaryingType) + indexElt = ExtractInst(index1, i, "get_array_index"); + else + indexElt = index1; + + // Similarly figure out the appropriate base pointer + llvm::Value *aptr; + if (baseIsVaryingTypePointer) + aptr = ExtractInst(basePtr, i, "get_array_index"); + else + aptr = basePtr; + + // Do the GEP for this lane + llvm::Value *eltPtr = GetElementPtrInst(aptr, index0, indexElt, name); + + if (lret == NULL) { + // This is kind of a hack: use the type from the GEP to + // figure out the return type and the first time through, + // create an undef value of that type here + const llvm::PointerType *elementPtrType = + llvm::dyn_cast(eltPtr->getType()); + const llvm::Type *elementType = elementPtrType->getElementType(); + lret = llvm::UndefValue::get(LLVMPointerVectorType(elementType)); + } + + // And insert the result of the GEP into the return value + lret = InsertInst(lret, eltPtr, i, "elt_ptr_store"); + } + return lret; + } +} + + +llvm::Value * +FunctionEmitContext::GetElementPtrInst(llvm::Value *basePtr, int v0, int v1, + const char *name) { + return GetElementPtrInst(basePtr, LLVMInt32(v0), LLVMInt32(v1), name); +} + + +llvm::Value * +FunctionEmitContext::LoadInst(llvm::Value *lvalue, const Type *type, + const char *name) { + if (lvalue == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + if (llvm::isa(lvalue->getType())) { + // If the lvalue is a straight up regular pointer, then just issue + // a regular load + llvm::Instruction *inst = new llvm::LoadInst(lvalue, name ? name : "load", bblock); + AddDebugPos(inst); + return inst; + } + else { + // Otherwise we should have a varying lvalue and it's time for a + // gather. The "type" parameter only has to be non-NULL for the + // gather path here (we can't reliably figure out all of the type + // information we need from the LLVM::Type, so have to carry the + // ispc type in through this path.. + assert(type != NULL); + assert(llvm::isa(lvalue->getType())); + return gather(lvalue, type, name); + } +} + + +llvm::Value * +FunctionEmitContext::gather(llvm::Value *lvalue, const Type *type, + const char *name) { + // We should have a varying lvalue if we get here... + assert(llvm::dyn_cast(lvalue->getType())); + + const llvm::Type *retType = type->LLVMType(g->ctx); + + const StructType *st = dynamic_cast(type); + if (st) { + // If we're gathering structures, do an element-wise gather + // recursively. + llvm::Value *retValue = llvm::UndefValue::get(retType); + for (int i = 0; i < st->NumElements(); ++i) { + llvm::Value *eltPtrs = GetElementPtrInst(lvalue, 0, i); + // This in turn will be another gather + llvm::Value *eltValues = LoadInst(eltPtrs, st->GetMemberType(i), + name); + retValue = InsertInst(retValue, eltValues, i, "set_value"); + } + return retValue; + } + + const VectorType *vt = dynamic_cast(type); + if (vt) { + // Similarly, if it's a vector type, do a gather for each of the + // vector elements + llvm::Value *retValue = llvm::UndefValue::get(retType); + // FIXME: yuck. Change lvalues to be pointers to arrays so that + // the GEP stuff in the loop below ends up computing pointers based + // on elements in the vectors rather than incorrectly advancing to + // the next vector... + const llvm::Type *eltType = + vt->GetBaseType()->GetAsUniformType()->LLVMType(g->ctx); + lvalue = BitCastInst(lvalue, llvm::PointerType::get(llvm::ArrayType::get(eltType, 0), 0)); + + for (int i = 0; i < vt->GetElementCount(); ++i) { + llvm::Value *eltPtrs = GetElementPtrInst(lvalue, 0, i); + llvm::Value *eltValues = LoadInst(eltPtrs, vt->GetBaseType(), name); + retValue = InsertInst(retValue, eltValues, i, "set_value"); + } + return retValue; + } + + const ArrayType *at = dynamic_cast(type); + if (at) { + // Arrays are also handled recursively and element-wise + llvm::Value *retValue = llvm::UndefValue::get(retType); + for (int i = 0; i < at->GetElementCount(); ++i) { + llvm::Value *eltPtrs = GetElementPtrInst(lvalue, 0, i); + llvm::Value *eltValues = LoadInst(eltPtrs, at->GetElementType(), name); + retValue = InsertInst(retValue, eltValues, i, "set_value"); + } + return retValue; + } + + // Otherwise we should just have a basic scalar type and we can go and + // do the actual gather + AddInstrumentationPoint("gather"); + + llvm::Value *mask = GetMask(); + llvm::Function *gather = NULL; + // Figure out which gather function to call based on the size of + // the elements; will need to generalize this for 8 and 16-bit + // types. + if (retType == LLVMTypes::DoubleVectorType || + retType == LLVMTypes::Int64VectorType) + gather = m->module->getFunction("__pseudo_gather_64"); + else { + assert(retType == LLVMTypes::FloatVectorType || + retType == LLVMTypes::Int32VectorType); + gather = m->module->getFunction("__pseudo_gather_32"); + } + assert(gather); + + llvm::Value *voidlvalue = BitCastInst(lvalue, LLVMTypes::VoidPointerType); + llvm::Instruction *call = CallInst(gather, voidlvalue, mask, name); + // Add metadata about the source file location so that the + // optimization passes can print useful performance warnings if we + // can't optimize out this gather + addGSMetadata(call, currentPos); + + llvm::Value *val = BitCastInst(call, retType, "gather_bitcast"); + + return val; +} + + +/** Add metadata to the given instruction to encode the current source file + position. This data is used in the lGetSourcePosFromMetadata() + function in opt.cpp. +*/ +void +FunctionEmitContext::addGSMetadata(llvm::Instruction *inst, SourcePos pos) { + llvm::Value *str = llvm::MDString::get(*g->ctx, pos.name); +#ifdef LLVM_2_8 + llvm::MDNode *md = llvm::MDNode::get(*g->ctx, &str, 1); +#else + llvm::MDNode *md = llvm::MDNode::get(*g->ctx, str); +#endif + inst->setMetadata("filename", md); + + llvm::Value *line = LLVMInt32(pos.first_line); +#ifdef LLVM_2_8 + md = llvm::MDNode::get(*g->ctx, &first_line, 1); +#else + md = llvm::MDNode::get(*g->ctx, line); +#endif + inst->setMetadata("line", md); + + llvm::Value *column = LLVMInt32(pos.first_column); +#ifdef LLVM_2_8 + md = llvm::MDNode::get(*g->ctx, &first_column, 1); +#else + md = llvm::MDNode::get(*g->ctx, column); +#endif + inst->setMetadata("column", md); +} + + +llvm::Value * +FunctionEmitContext::AllocaInst(const llvm::Type *llvmType, const char *name, + int align, bool atEntryBlock) { + llvm::AllocaInst *inst = NULL; + if (atEntryBlock) { + // We usually insert it right before the jump instruction at the + // end of allocaBlock + llvm::Instruction *retInst = allocaBlock->getTerminator(); + assert(retInst); + inst = new llvm::AllocaInst(llvmType, name ? name : "", retInst); + } + else + // Unless the caller overrode the default and wants it in the + // current basic block + inst = new llvm::AllocaInst(llvmType, name ? name : "", bblock); + + if (align != 0) + inst->setAlignment(align); + // Don't add debugging info to alloca instructions + return inst; +} + + +/** Code to store the given varying value to the given location, only + storing the elements that correspond to active program instances as + given by the provided storeMask value. Note that the lvalue is only a + single pointer, not a varying lvalue of one pointer per program + instance (that case is handled by scatters). + */ +void +FunctionEmitContext::maskedStore(llvm::Value *rvalue, llvm::Value *lvalue, + const Type *rvalueType, + llvm::Value *storeMask) { + if (rvalue == NULL || lvalue == NULL) { + assert(m->errorCount > 0); + return; + } + + assert(llvm::isa(lvalue->getType())); + + const StructType *structType = dynamic_cast(rvalueType); + if (structType != NULL) { + // Assigning a structure + for (int i = 0; i < structType->NumElements(); ++i) { + llvm::Value *eltValue = ExtractInst(rvalue, i, "rvalue_member"); + llvm::Value *eltLValue = GetElementPtrInst(lvalue, 0, i, + "struct_lvalue_ptr"); + StoreInst(eltValue, eltLValue, storeMask, + structType->GetMemberType(i)); + } + return; + } + + const SequentialType *sequentialType = + dynamic_cast(rvalueType); + if (sequentialType != NULL) { + // Assigning arrays and vectors. Handle each element individually + // with what turns into a recursive call to makedStore() + for (int i = 0; i < sequentialType->GetElementCount(); ++i) { + llvm::Value *eltLValue = GetElementPtrInst(lvalue, 0, i, "lval_i_ptr"); + llvm::Value *eltValue = ExtractInst(rvalue, i, "array_i_val"); + StoreInst(eltValue, eltLValue, storeMask, + sequentialType->GetElementType()); + } + return; + } + + // We must have a regular atomic type at this point + assert(dynamic_cast(rvalueType) != NULL); + rvalueType = rvalueType->GetAsNonConstType(); + + llvm::Function *maskedStoreFunc = NULL; + // Figure out if we need a 32-bit or 64-bit masked store. This + // will need to be generalized when/if 8 and 16-bit data types are + // added. + if (rvalueType == AtomicType::VaryingDouble || + rvalueType == AtomicType::VaryingInt64 || + rvalueType == AtomicType::VaryingUInt64) { + maskedStoreFunc = m->module->getFunction("__pseudo_masked_store_64"); + lvalue = BitCastInst(lvalue, LLVMTypes::Int64VectorPointerType, + "lvalue_to_int64vecptr"); + rvalue = BitCastInst(rvalue, LLVMTypes::Int64VectorType, + "rvalue_to_int64"); + } + else { + assert(rvalueType == AtomicType::VaryingFloat || + rvalueType == AtomicType::VaryingBool || + rvalueType == AtomicType::VaryingInt32 || + rvalueType == AtomicType::VaryingUInt32); + + maskedStoreFunc = m->module->getFunction("__pseudo_masked_store_32"); + lvalue = BitCastInst(lvalue, LLVMTypes::Int32VectorPointerType, + "lvalue_to_int32vecptr"); + if (rvalueType == AtomicType::VaryingFloat) + rvalue = BitCastInst(rvalue, LLVMTypes::Int32VectorType, + "rvalue_to_int32"); + } + + std::vector args; + args.push_back(lvalue); + args.push_back(rvalue); + args.push_back(storeMask); + CallInst(maskedStoreFunc, args); +} + + + +/** Scatter the given varying value to the locations given by the varying + lvalue (which should be an array of pointers with size equal to the + target's vector width. We want to store each rvalue element at the + corresponding pointer's location, *if* the mask for the corresponding + program instance are on. If they're off, don't do anything. +*/ +void +FunctionEmitContext::scatter(llvm::Value *rvalue, llvm::Value *lvalue, + llvm::Value *storeMask, const Type *rvalueType) { + assert(rvalueType->IsVaryingType()); + assert(llvm::isa(lvalue->getType())); + + const StructType *structType = dynamic_cast(rvalueType); + if (structType) { + // Scatter the struct elements individually + for (int i = 0; i < structType->NumElements(); ++i) { + llvm::Value *lv = GetElementPtrInst(lvalue, 0, i); + llvm::Value *rv = ExtractInst(rvalue, i); + scatter(rv, lv, storeMask, structType->GetMemberType(i)); + } + return; + } + + const VectorType *vt = dynamic_cast(rvalueType); + if (vt) { + // FIXME: yuck. Change lvalues to be pointers to arrays so that + // the GEP stuff in the loop below ends up computing pointers based + // on elements in the vectors rather than incorrectly advancing to + // the next vector... + const llvm::Type *eltType = vt->GetBaseType()->GetAsUniformType()->LLVMType(g->ctx); + lvalue = BitCastInst(lvalue, llvm::PointerType::get(llvm::ArrayType::get(eltType, 0), 0)); + + for (int i = 0; i < vt->GetElementCount(); ++i) { + llvm::Value *lv = GetElementPtrInst(lvalue, 0, i); + llvm::Value *rv = ExtractInst(rvalue, i); + scatter(rv, lv, storeMask, vt->GetElementType()); + } + return; + } + + // I think this should be impossible + assert(dynamic_cast(rvalueType) == NULL); + + // And everything should be atomic from here on out... + assert(dynamic_cast(rvalueType) != NULL); + + llvm::Function *func = NULL; + const llvm::Type *type = rvalue->getType(); + if (type == LLVMTypes::DoubleVectorType || + type == LLVMTypes::Int64VectorType) { + func = m->module->getFunction("__pseudo_scatter_64"); + rvalue = BitCastInst(rvalue, LLVMTypes::Int64VectorType, "rvalue2int"); + } + else { + // FIXME: if this hits, presumably it's due to needing int8 and/or + // int16 versions of scatter... + assert(type == LLVMTypes::FloatVectorType || + type == LLVMTypes::Int32VectorType); + func = m->module->getFunction("__pseudo_scatter_32"); + rvalue = BitCastInst(rvalue, LLVMTypes::Int32VectorType, "rvalue2int"); + } + assert(func != NULL); + + AddInstrumentationPoint("scatter"); + + llvm::Value *voidlvalue = BitCastInst(lvalue, LLVMTypes::VoidPointerType); + std::vector args; + args.push_back(voidlvalue); + args.push_back(rvalue); + args.push_back(storeMask); + llvm::Instruction *inst = CallInst(func, args); + addGSMetadata(inst, currentPos); +} + + +void +FunctionEmitContext::StoreInst(llvm::Value *rvalue, llvm::Value *lvalue, + const char *name) { + if (rvalue == NULL || lvalue == NULL) { + // may happen due to error elsewhere + assert(m->errorCount > 0); + return; + } + + llvm::Instruction *inst = new llvm::StoreInst(rvalue, lvalue, name, bblock); + AddDebugPos(inst); +} + + +void +FunctionEmitContext::StoreInst(llvm::Value *rvalue, llvm::Value *lvalue, + llvm::Value *storeMask, const Type *rvalueType, + const char *name) { + if (rvalue == NULL || lvalue == NULL) { + // may happen due to error elsewhere + assert(m->errorCount > 0); + return; + } + + // Figure out what kind of store we're doing here + if (rvalueType->IsUniformType()) { + // The easy case; a regular store + llvm::Instruction *si = new llvm::StoreInst(rvalue, lvalue, name, bblock); + AddDebugPos(si); + } + else if (llvm::isa(lvalue->getType())) + // We have a varying lvalue (an array of pointers), so it's time to + // scatter + scatter(rvalue, lvalue, storeMask, rvalueType); + else if (storeMask == LLVMMaskAllOn) { + // Otherwise it is a masked store unless we can determine that the + // mask is all on... + llvm::Instruction *si = + new llvm::StoreInst(rvalue, lvalue, name, bblock); + AddDebugPos(si); + } + else + maskedStore(rvalue, lvalue, rvalueType, storeMask); +} + + +void +FunctionEmitContext::BranchInst(llvm::BasicBlock *dest) { + llvm::Instruction *b = llvm::BranchInst::Create(dest, bblock); + AddDebugPos(b); +} + + +void +FunctionEmitContext::BranchInst(llvm::BasicBlock *trueBlock, + llvm::BasicBlock *falseBlock, + llvm::Value *test) { + if (test == NULL) { + assert(m->errorCount > 0); + return; + } + + llvm::Instruction *b = + llvm::BranchInst::Create(trueBlock, falseBlock, test, bblock); + AddDebugPos(b); +} + + +llvm::Value * +FunctionEmitContext::ExtractInst(llvm::Value *v, int elt, const char *name) { + if (v == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + llvm::Instruction *ei = NULL; + if (llvm::isa(v->getType())) + ei = llvm::ExtractElementInst::Create(v, LLVMInt32(elt), + name ? name : "extract", bblock); + else + ei = llvm::ExtractValueInst::Create(v, elt, name ? name : "extract", + bblock); + AddDebugPos(ei); + return ei; +} + + +llvm::Value * +FunctionEmitContext::InsertInst(llvm::Value *v, llvm::Value *eltVal, int elt, + const char *name) { + if (v == NULL || eltVal == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + llvm::Instruction *ii = NULL; + if (llvm::isa(v->getType())) + ii = llvm::InsertElementInst::Create(v, eltVal, LLVMInt32(elt), + name ? name : "insert", bblock); + else + ii = llvm::InsertValueInst::Create(v, eltVal, elt, + name ? name : "insert", bblock); + AddDebugPos(ii); + return ii; +} + + +llvm::PHINode * +FunctionEmitContext::PhiNode(const llvm::Type *type, int count, + const char *name) { + llvm::PHINode *pn = llvm::PHINode::Create(type, +#if !defined(LLVM_2_8) && !defined(LLVM_2_9) + count, +#endif // !LLVM_2_8 && !LLVM_2_9 + name ? name : "phi", bblock); + AddDebugPos(pn); + return pn; +} + + +llvm::Instruction * +FunctionEmitContext::SelectInst(llvm::Value *test, llvm::Value *val0, + llvm::Value *val1, const char *name) { + if (test == NULL || val0 == NULL || val1 == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + llvm::Instruction *inst = + llvm::SelectInst::Create(test, val0, val1, name ? name : "select", + bblock); + AddDebugPos(inst); + return inst; +} + + +llvm::Instruction * +FunctionEmitContext::CallInst(llvm::Function *func, + const std::vector &args, + const char *name) { + if (func == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + llvm::Instruction *ci = + llvm::CallInst::Create(func, args.begin(), args.end(), + name ? name : "", bblock); + AddDebugPos(ci); + return ci; +} + + +llvm::Instruction * +FunctionEmitContext::CallInst(llvm::Function *func, llvm::Value *arg, + const char *name) { + if (func == NULL || arg == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + llvm::Value *args[] = { arg }; + llvm::Instruction *ci = + llvm::CallInst::Create(func, &args[0], &args[1], name ? name : "", + bblock); + AddDebugPos(ci); + return ci; +} + + +llvm::Instruction * +FunctionEmitContext::CallInst(llvm::Function *func, llvm::Value *arg0, + llvm::Value *arg1, const char *name) { + if (func == NULL || arg0 == NULL || arg1 == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + llvm::Value *args[] = { arg0, arg1 }; + llvm::Instruction *ci = + llvm::CallInst::Create(func, &args[0], &args[2], name ? name : "", + bblock); + AddDebugPos(ci); + return ci; +} + + +llvm::Instruction * +FunctionEmitContext::ReturnInst() { + if (launchedTasks) { + // Automatically add a sync call at the end of any function that + // launched tasks + SourcePos noPos; + noPos.name = "__auto_sync"; + ExprStmt *es = new ExprStmt(new SyncExpr(noPos), noPos); + es->EmitCode(this); + delete es; + } + + llvm::Instruction *rinst = NULL; + if (returnValuePtr != NULL) { + // We have value(s) to return; load them from their storage + // location + llvm::Value *retVal = LoadInst(returnValuePtr, returnType, + "return_value"); + rinst = llvm::ReturnInst::Create(*g->ctx, retVal, bblock); + } + else { + assert(returnType == AtomicType::Void); + rinst = llvm::ReturnInst::Create(*g->ctx, bblock); + } + + AddDebugPos(rinst); + bblock = NULL; + return rinst; +} + + +llvm::Instruction * +FunctionEmitContext::LaunchInst(llvm::Function *callee, + std::vector &argVals) { + if (callee == NULL) { + assert(m->errorCount > 0); + return NULL; + } + + launchedTasks = true; + + const llvm::Type *argType = callee->arg_begin()->getType(); + assert(llvm::PointerType::classof(argType)); + const llvm::PointerType *pt = static_cast(argType); + assert(llvm::StructType::classof(pt->getElementType())); + const llvm::StructType *argStructType = + static_cast(pt->getElementType()); + assert(argStructType->getNumElements() == argVals.size() + 1); + + // Use alloca for space for the task args. KEY DETAIL: pass false + // to the call of FunctionEmitContext::AllocaInst so that the alloca + // doesn't happen just once at the top of the function, but happens + // each time the enclosing basic block executes. + int align = 4 * RoundUpPow2(g->target.nativeVectorWidth); + llvm::Value *argmem = AllocaInst(argStructType, "argmem", align, false); + llvm::Value *voidmem = BitCastInst(argmem, LLVMTypes::VoidPointerType); + + // Copy the values of the parameters into the appropriate place in + // the argument block + for (unsigned int i = 0; i < argVals.size(); ++i) { + llvm::Value *ptr = GetElementPtrInst(argmem, 0, i, "funarg"); + // don't need to do masked store here, I think + StoreInst(argVals[i], ptr); + } + + // copy in the mask + llvm::Value *mask = GetMask(); + llvm::Value *ptr = GetElementPtrInst(argmem, 0, argVals.size(), + "funarg_mask"); + StoreInst(mask, ptr); + + // And emit the call to the user-supplied task launch function, passing + // a pointer to the task function being called and a pointer to the + // argument block we just filled in + llvm::Value *fptr = BitCastInst(callee, LLVMTypes::VoidPointerType); + llvm::Function *flaunch = m->module->getFunction("ISPCLaunch"); + assert(flaunch != NULL); + return CallInst(flaunch, fptr, voidmem, ""); +} diff --git a/ctx.h b/ctx.h new file mode 100644 index 00000000..437c5e3f --- /dev/null +++ b/ctx.h @@ -0,0 +1,507 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file ctx.h + @brief Declaration of the FunctionEmitContext class +*/ + +#ifndef ISPC_CTX_H +#define ISPC_CTX_H 1 + +#include "ispc.h" +#include +#include +#ifndef LLVM_2_8 +#include +#endif +#include + +struct CFInfo; + +/** FunctionEmitContext is one of the key classes in ispc; it is used to + help with emitting the intermediate representation of a function during + compilation. It carries information the current program context during + IR emission (e.g. the basic block into which instructions should be + added; or, the current source file and line number, so debugging + symbols can be correctly generated). This class also provides a number + of helper routines that are useful for code that emits IR. + */ +class FunctionEmitContext { +public: + /** Create a new FunctionEmitContext. + @param returnType The return type of the function + @param function LLVM function in the current module that corresponds + to the function + @param funSym Symbol that corresponds to the function + @param firstStmtPos Source file position of the first statement in the + function + */ + FunctionEmitContext(const Type *returnType, llvm::Function *function, Symbol *funSym, + SourcePos firstStmtPos); + ~FunctionEmitContext(); + + /** @name Current basic block management + @{ + */ + /** Returns the current basic block pointer */ + llvm::BasicBlock *GetCurrentBasicBlock(); + + /** Set the given llvm::BasicBlock to be the basic block to emit + forthcoming instructions into. */ + void SetCurrentBasicBlock(llvm::BasicBlock *bblock); + + /** @name Mask management + @{ + */ + /** Returns the current mask value */ + llvm::Value *GetMask(); + + /** Provides the value of the mask at function entry */ + void SetEntryMask(llvm::Value *val); + + /** Sets the mask to a new value */ + void SetMask(llvm::Value *val); + + /** Sets the mask to (oldMask & val) */ + void MaskAnd(llvm::Value *oldMask, llvm::Value *val); + + /** Sets the mask to (oldMask & ~val) */ + void MaskAndNot(llvm::Value *oldMask, llvm::Value *test); + + /** Emits a branch instruction to the basic block btrue if any of the + lanes of current mask are on and bfalse if none are on. */ + void BranchIfMaskAny(llvm::BasicBlock *btrue, llvm::BasicBlock *bfalse); + + /** Emits a branch instruction to the basic block btrue if all of the + lanes of current mask are on and bfalse if none are on. */ + void BranchIfMaskAll(llvm::BasicBlock *btrue, llvm::BasicBlock *bfalse); + + /** Emits a branch instruction to the basic block btrue if none of the + lanes of current mask are on and bfalse if none are on. */ + void BranchIfMaskNone(llvm::BasicBlock *btrue, llvm::BasicBlock *bfalse); + /** @} */ + + /** @name Control flow management + @{ + */ + /** Notifies the FunctionEmitContext that we're starting emission of an + 'if' statement with a uniform test. The value of the mask going + into the 'if' statement is provided in the oldMask parameter. */ + void StartUniformIf(llvm::Value *oldMask); + + /** Notifies the FunctionEmitContext that we're starting emission of an + 'if' statement with a varying test. The value of the mask going + into the 'if' statement is provided in the oldMask parameter. */ + void StartVaryingIf(llvm::Value *oldMask); + + /** Notifies the FunctionEmitConitext that we're done emitting the IR + for an 'if' statement. */ + void EndIf(); + + /** Notifies the FunctionEmitContext that we're starting to emit IR + for a loop. Basic blocks are provides for where 'break' and + 'continue' statements should jump to (if all running lanes want to + break or continue), uniformControlFlow indicates whether the loop + condition is 'uniform', and oldMask provides the current mask going + into the loop. */ + void StartLoop(llvm::BasicBlock *breakTarget, llvm::BasicBlock *continueTarget, + bool uniformControlFlow, llvm::Value *oldMask); + + /** Informs FunctionEmitContext of the value of the mask at the start + of a loop body. */ + void SetLoopMask(llvm::Value *mask); + + /** Informs FunctionEmitContext that code generation for a loop is + finished. */ + void EndLoop(); + + /** Emit code for a 'break' statement in a loop. If doCoherenceCheck + is true, then if we're in a 'varying' loop, code will be emitted to + see if all of the lanes want to break, in which case a jump to the + break target will be taken. (For 'uniform' loops, the jump is + always done). */ + void Break(bool doCoherenceCheck); + + /** Emit code for a 'continue' statement in a loop. If + doCoherenceCheck is true, then if we're in a 'varying' loop, code + will be emitted to see if all of the lanes want to continue, in + which case a jump to the continue target will be taken. (For + 'uniform' loops, the jump is always done). */ + void Continue(bool doCoherenceCheck); + + /** This method is called by code emitting IR for a loop at the end of + the loop body; it restores the lanes of the mask that executed a + 'continue' statement when going through the loop body in the + previous iteration. */ + void RestoreContinuedLanes(); + + /** Returns the current number of nested levels of 'varying' control + flow */ + int VaryingCFDepth() const; + + /** Called to generate code for 'return' statement; value is the + expression in the return statement (if non-NULL), and + doCoherenceCheck indicates whether instructions should be generated + to see if all of the currently-running lanes have returned (if + we're under varying control flow). */ + void CurrentLanesReturned(Expr *value, bool doCoherenceCheck); + /** @} */ + + /** @name Small helper/utility routines + @{ + */ + /** Given a boolean mask value of type LLVMTypes::MaskType, return an + i1 value that indicates if any of the mask lanes are on. */ + llvm::Value *Any(llvm::Value *mask); + + /** Given a boolean mask value of type LLVMTypes::MaskType, return an + i1 value that indicates if all of the mask lanes are on. */ + llvm::Value *All(llvm::Value *mask); + + /** Given a boolean mask value of type LLVMTypes::MaskType, return an + i32 value wherein the i'th bit is on if and only if the i'th lane + of the mask is on. */ + llvm::Value *LaneMask(llvm::Value *mask); + + /** Given two masks of type LLVMTypes::MaskType, return an i1 value + that indicates whether the two masks are equal. */ + llvm::Value *MasksAllEqual(llvm::Value *mask1, llvm::Value *mask2); + + /** Given a string, create an anonymous global variable to hold its + value and return the pointer to the string. */ + llvm::Value *GetStringPtr(const std::string &str); + + /** Create a new basic block with given name */ + llvm::BasicBlock *CreateBasicBlock(const char *name); + + /** Given a vector with element type i1, return a vector of type + LLVMTypes::BoolVectorType. This method handles the conversion for + the targets where the bool vector element type is, for example, + i32. */ + llvm::Value *I1VecToBoolVec(llvm::Value *b); + + /** Emit code to call the user-supplied ISPCMalloc function to + allocate space for an object of thee given type. Returns the + pointer value returned by the ISPCMalloc call. */ + llvm::Value *EmitMalloc(const llvm::Type *ty); + + /** Emit code to call the user-supplied ISPCFree function, passing it + the given pointer to storage previously allocated by an + EmitMalloc() call. */ + void EmitFree(llvm::Value *ptr); + + /** If the user has asked to compile the program with instrumentation, + this inserts a callback to the user-supplied instrumentation + function at the current point in the code. */ + void AddInstrumentationPoint(const char *note); + /** @} */ + + /** @name Debugging support + @{ + */ + /** Set the current source file position; subsequent emitted + instructions will have this position associated with them if + debugging information is being generated. */ + void SetDebugPos(SourcePos pos); + + SourcePos GetDebugPos() const; + + /** Adds debugging metadata to the given instruction. If pos == NULL, + use FunctionEmitContext::currentPos as the source file position for + the instruction. Similarly, if a DIScope is provided, it's used + and otherwise the scope is found from a GetDIScope() call. This + takes a llvm::Value for the instruction rather than an + llvm::Instruction for convenience; in calling code we often have + Instructions stored using Value pointers; the code here returns + silently if it's not actually given an instruction. */ + void AddDebugPos(llvm::Value *instruction, const SourcePos *pos = NULL, + llvm::DIScope *scope = NULL); + + /** Inform the debugging information generation code that a new scope + is starting in the source program. */ + void StartScope(); + + /** Inform the debugging information generation code that the current + scope is ending in the source program. */ + void EndScope(); + + /** Returns the llvm::DIScope corresponding to the current program + scope. */ + llvm::DIScope GetDIScope() const; + + /** Emits debugging information for the variable represented by + sym. */ + void EmitVariableDebugInfo(Symbol *sym); + + /** Emits debugging information for the function parameter represented + by sym. */ + void EmitFunctionParameterDebugInfo(Symbol *sym); + /** @} */ + + /** @name IR instruction emission + @brief These methods generally closely correspond to LLVM IR + instructions. See the LLVM assembly language reference manual + (http://llvm.org/docs/LangRef.html) and the LLVM doxygen documentaion + (http://llvm.org/doxygen) for more information. Here we will only + document significant generalizations to the functionality of the + corresponding basic LLVM instructions. + + Beyond actually emitting the instruction, the implementations of + these methods in FunctionEmitContext also handle adding debugging + metadata if debugging symbols are enabled, adding the instructions + to the current basic block, and handling generalizations like + 'varying' lvalues, arithmetic operations with VectorType operands, + etc. + @{ + */ + /** Emit the binary operator given by the inst parameter. If + llvm::Values corresponding to VectorTypes are given as operands, + this also handles applying the given operation to the vector + elements. */ + llvm::Value *BinaryOperator(llvm::Instruction::BinaryOps inst, + llvm::Value *v0, llvm::Value *v1, + const char *name = NULL); + + /** Emit the "not" operator. Like BinaryOperator(), this also handles + a VectorType-based operand. */ + llvm::Value *NotOperator(llvm::Value *v, const char *name = NULL); + + /** Emit a comparison instruction. If the operands are VectorTypes, + then a value for the corresponding boolean VectorType is + returned. */ + llvm::Value *CmpInst(llvm::Instruction::OtherOps inst, + llvm::CmpInst::Predicate pred, + llvm::Value *v0, llvm::Value *v1, const char *name = NULL); + + llvm::Value *BitCastInst(llvm::Value *value, const llvm::Type *type, + const char *name = NULL); + llvm::Instruction *PtrToIntInst(llvm::Value *value, const llvm::Type *type, + const char *name = NULL); + llvm::Instruction *IntToPtrInst(llvm::Value *value, const llvm::Type *type, + const char *name = NULL); + llvm::Instruction *TruncInst(llvm::Value *value, const llvm::Type *type, + const char *name = NULL); + llvm::Instruction *CastInst(llvm::Instruction::CastOps op, llvm::Value *value, + const llvm::Type *type, const char *name = NULL); + llvm::Instruction *FPCastInst(llvm::Value *value, const llvm::Type *type, + const char *name = NULL); + llvm::Instruction *SExtInst(llvm::Value *value, const llvm::Type *type, + const char *name = NULL); + llvm::Instruction *ZExtInst(llvm::Value *value, const llvm::Type *type, + const char *name = NULL); + + /** This GEP method is a generalization of the standard one in LLVM; it + supports both uniform and varying basePtr values (an array of + pointers) as well as uniform and varying index values (arrays of + indices). */ + llvm::Value *GetElementPtrInst(llvm::Value *basePtr, llvm::Value *index0, + llvm::Value *index1, const char *name = NULL); + + /** This is a convenience method to generate a GEP instruction with + indices with values with known constant values as the ispc program + is being compiled. */ + llvm::Value *GetElementPtrInst(llvm::Value *basePtr, int v0, int v1, + const char *name = NULL); + + /** Load from the memory location(s) given by lvalue. The lvalue may + be varying, in which case this corresponds to a gather from the + multiple memory locations given by the array of pointer values + given by the lvalue. If the lvalue is not varying, then the type + parameter may be NULL. */ + llvm::Value *LoadInst(llvm::Value *lvalue, const Type *type, + const char *name = NULL); + + /** Emits an alloca instruction to allocate stack storage for the given + type. If a non-zero alignment is specified, the object is also + allocated at the given alignment. By default, the alloca + instruction is added at the start of the function in the entry + basic block; if it should be added to the current basic block, then + the atEntryBlock parameter should be false. */ + llvm::Value *AllocaInst(const llvm::Type *llvmType, const char *name = NULL, + int align = 0, bool atEntryBlock = true); + + /** Standard store instruction; for this variant, the lvalue must be a + single pointer, not a varying lvalue. */ + void StoreInst(llvm::Value *rvalue, llvm::Value *lvalue, + const char *name = NULL); + + /** In this variant of StoreInst(), the lvalue may be varying. If so, + this corresponds to a scatter. Whether the lvalue is uniform of + varying, the given storeMask is used to mask the stores so that + they only execute for the active program instances. */ + void StoreInst(llvm::Value *rvalue, llvm::Value *lvalue, + llvm::Value *storeMask, const Type *rvalueType, + const char *name = NULL); + + void BranchInst(llvm::BasicBlock *block); + void BranchInst(llvm::BasicBlock *trueBlock, llvm::BasicBlock *falseBlock, + llvm::Value *test); + + /** This convenience method maps to an llvm::ExtractElementInst if the + given value is a llvm::VectorType, and to an llvm::ExtractValueInst + otherwise. */ + llvm::Value *ExtractInst(llvm::Value *v, int elt, const char *name = NULL); + + /** This convenience method maps to an llvm::InsertElementInst if the + given value is a llvm::VectorType, and to an llvm::InsertValueInst + otherwise. */ + llvm::Value *InsertInst(llvm::Value *v, llvm::Value *eltVal, int elt, + const char *name = NULL); + + llvm::PHINode *PhiNode(const llvm::Type *type, int count, const char *name = NULL); + llvm::Instruction *SelectInst(llvm::Value *test, llvm::Value *val0, + llvm::Value *val1, const char *name = NULL); + + llvm::Instruction *CallInst(llvm::Function *func, + const std::vector &args, + const char *name = NULL); + /** This is a convenience method that issues a call instruction to a + function that takes just a single argument. */ + llvm::Instruction *CallInst(llvm::Function *func, llvm::Value *arg, + const char *name = NULL); + + /** This is a convenience method that issues a call instruction to a + function that takes two arguments. */ + llvm::Instruction *CallInst(llvm::Function *func, llvm::Value *arg0, + llvm::Value *arg1, const char *name = NULL); + + /** Launch an asynchronous task to run the given function, passing it + he given argument values. */ + llvm::Instruction *LaunchInst(llvm::Function *callee, + std::vector &argVals); + + llvm::Instruction *ReturnInst(); + /** @} */ + +private: + /** The basic block into which we add any alloca instructions that need + to go at the very start of the function. */ + llvm::BasicBlock *allocaBlock; + + /** The current basic block into which we're emitting new + instructions */ + llvm::BasicBlock *bblock; + + /** Pointer to stack-allocated memory that stores the current value of + the program mask. */ + llvm::Value *maskPtr; + + /** Current source file position; if debugging information is being + generated, this position is used to set file/line information for + instructions. */ + SourcePos currentPos; + + /** Source file position where the function definition started. Used + for error messages and debugging symbols. */ + SourcePos funcStartPos; + + /** Type of result that the current function returns. */ + const Type *returnType; + + /** Value of the program mask when the function starts execution. */ + llvm::Value *entryMask; + + /** If currently in a loop body, the value of the mask at the start of + the loop. */ + llvm::Value *loopMask; + + /** If currently in a loop body, this is a pointer to memory to store a + mask value that represents which of the lanes have executed a + 'break' statement. If we're not in a loop body, this should be + NULL. */ + llvm::Value *breakLanesPtr; + + /** Similar to breakLanesPtr, if we're inside a loop, this is a pointer + to memory to record which of the program instances have executed a + 'continue' statement. */ + llvm::Value *continueLanesPtr; + + /** If we're inside a loop, this gives the basic block immediately + after the current loop, which we will jump to if all of the lanes + have executed a break statement or are otherwise done with the + loop. */ + llvm::BasicBlock *breakTarget; + + /** If we're inside a loop, this gives the block to jump to if all of + the running lanes have executed a 'continue' statement. */ + llvm::BasicBlock *continueTarget; + + /** A pointer to memory that records which of the program instances + have executed a 'return' statement (and are thus really truly done + running any more instructions in this functions. */ + llvm::Value *returnedLanesPtr; + + /** A pointer to memory to store the return value for the function. + Since difference program instances may execute 'return' statements + at different times, we need to accumulate the return values as they + come in until we return for real. */ + llvm::Value *returnValuePtr; + + /** The CFInfo structure records information about a nesting level of + control flow. This vector lets us see what control flow is going + around outside the current position in the function being + emitted. */ + std::vector controlFlowInfo; + + /** DIFile object corresponding to the source file where the current + function was defined (used for debugging info0. */ + llvm::DIFile diFile; + + /** DISubprogram corresponding to this function (used for debugging + info). */ + llvm::DISubprogram diFunction; + + /** These correspond to the current set of nested scopes in the + function. */ + std::vector debugScopes; + + /** True if a 'launch' statement has been encountered in the function. */ + bool launchedTasks; + + llvm::Value *pointerVectorToVoidPointers(llvm::Value *value); + static void addGSMetadata(llvm::Instruction *inst, SourcePos pos); + bool ifsInLoopAllUniform() const; + void jumpIfAllLoopLanesAreDone(llvm::BasicBlock *target); + llvm::Value *emitGatherCallback(llvm::Value *lvalue, llvm::Value *retPtr); + + void restoreMaskGivenReturns(llvm::Value *oldMask); + + void scatter(llvm::Value *rvalue, llvm::Value *lvalue, + llvm::Value *maskPtr, const Type *rvalueType); + llvm::Value *gather(llvm::Value *lvalue, const Type *type, + const char *name); + void maskedStore(llvm::Value *rvalue, llvm::Value *lvalue, + const Type *rvalueType, llvm::Value *maskPtr); +}; + +#endif // ISPC_CTX_H diff --git a/decl.cpp b/decl.cpp new file mode 100644 index 00000000..849347f4 --- /dev/null +++ b/decl.cpp @@ -0,0 +1,348 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file decl.cpp + @brief Implementations of classes related to turning declarations into + symbols and types. +*/ + +#include "decl.h" +#include "util.h" +#include "sym.h" +#include "type.h" +#include "expr.h" +#include + +/////////////////////////////////////////////////////////////////////////// +// DeclSpecs + +DeclSpecs::DeclSpecs(const Type *t, StorageClass sc, int tq) { + baseType = t; + storageClass = sc; + typeQualifier = tq; + soaWidth = 0; + vectorSize = 0; +} + + +void +DeclSpecs::Print() const { + if (storageClass == SC_EXTERN) printf("extern "); + if (storageClass == SC_EXTERN_C) printf("extern \"C\" "); + if (storageClass == SC_EXPORT) printf("export "); + if (storageClass == SC_STATIC) printf("static "); + if (storageClass == SC_TYPEDEF) printf("typedef "); + + if (soaWidth > 0) printf("soa<%d> ", soaWidth); + + if (typeQualifier & TYPEQUAL_INLINE) printf("inline "); + if (typeQualifier & TYPEQUAL_CONST) printf("const "); + if (typeQualifier & TYPEQUAL_UNIFORM) printf("uniform "); + if (typeQualifier & TYPEQUAL_VARYING) printf("varying "); + if (typeQualifier & TYPEQUAL_TASK) printf("task "); + if (typeQualifier & TYPEQUAL_REFERENCE) printf("reference "); + if (typeQualifier & TYPEQUAL_UNSIGNED) printf("unsigned "); + + printf("%s", baseType->GetString().c_str()); + + if (vectorSize > 0) printf("<%d>", vectorSize); +} + + +/////////////////////////////////////////////////////////////////////////// +// Declarator + +Declarator::Declarator(Symbol *s, SourcePos p) + : pos(p) { + sym = s; + functionArgs = NULL; + isFunction = false; + initExpr = NULL; +} + + +void +Declarator::AddArrayDimension(int size) { + assert(size > 0 || size == -1); // -1 -> unsized + arraySize.push_back(size); +} + + +void +Declarator::InitFromDeclSpecs(DeclSpecs *ds) { + sym->type = GetType(ds); + + if (ds->storageClass == SC_STATIC) + sym->isStatic = true; +} + + +void +Declarator::Print() const { + printf("%s", sym->name.c_str()); + if (initExpr != NULL) { + printf(" = ("); + initExpr->Print(); + printf(")"); + } + pos.Print(); +} + + +static const Type * +lGetType(const Declarator *decl, DeclSpecs *ds, + std::vector::const_iterator arrayIter) { + if (arrayIter == decl->arraySize.end()) { + // If we don't have an array (or have processed all of the array + // dimensions in previous recursive calls), we can go ahead and + // figure out the final non-array type we have here. + const Type *type = ds->baseType; + if (type == NULL) { + Error(decl->pos, "Type not provided in variable declaration for variable \"%s\".", + decl->sym->name.c_str()); + return NULL; + } + + // Account for 'unsigned' and 'const' qualifiers in the type + if ((ds->typeQualifier & TYPEQUAL_UNSIGNED) != 0) { + const Type *unsignedType = type->GetAsUnsignedType(); + if (unsignedType != NULL) + type = unsignedType; + else + Error(decl->pos, "\"unsigned\" qualifier is illegal with \"%s\" type.", + type->GetString().c_str()); + } + if ((ds->typeQualifier & TYPEQUAL_CONST) != 0) + type = type->GetAsConstType(); + + if (ds->vectorSize > 0) { + const AtomicType *atomicType = dynamic_cast(type); + if (atomicType == NULL) { + Error(decl->pos, "Only atomic types (int, float, ...) are legal for vector " + "types."); + return NULL; + } + type = new VectorType(atomicType, ds->vectorSize); + } + + // if uniform/varying is specified explicitly, then go with that + if ((ds->typeQualifier & TYPEQUAL_UNIFORM) != 0) + return type->GetAsUniformType(); + else if ((ds->typeQualifier & TYPEQUAL_VARYING) != 0) + return type->GetAsVaryingType(); + else { + // otherwise, structs are uniform by default and everything + // else is varying by default + if (dynamic_cast(type) != NULL) + return type->GetAsUniformType(); + else + return type->GetAsVaryingType(); + } + } + else { + // Peel off one dimension of the array + int arraySize = *arrayIter; + ++arrayIter; + + // Get the type, not including the arraySize dimension peeled off + // above. + const Type *childType = lGetType(decl, ds, arrayIter); + + int soaWidth = ds->soaWidth; + if (soaWidth == 0) + // If there's no "soa" stuff going on, just return a regular + // array with the appropriate size + return new ArrayType(childType, arraySize == -1 ? 0 : arraySize); + else { + // Make sure we actually have an array of structs .. + const StructType *childStructType = + dynamic_cast(childType); + if (childStructType == NULL) { + Error(decl->pos, "Illegal to provide soa<%d> qualifier with non-struct " + "type \"%s\".", soaWidth, childType->GetString().c_str()); + return new ArrayType(childType, arraySize == -1 ? 0 : arraySize); + } + else if ((soaWidth & (soaWidth - 1)) != 0) { + Error(decl->pos, "soa<%d> width illegal. Value must be power of two.", + soaWidth); + return NULL; + } + else if (arraySize != -1 && (arraySize % soaWidth) != 0) { + Error(decl->pos, "soa<%d> width must evenly divide array size %d.", + soaWidth, arraySize); + return NULL; + } + return new SOAArrayType(childStructType, arraySize == -1 ? 0 : arraySize, + soaWidth); + } + } +} + + +const Type * +Declarator::GetType(DeclSpecs *ds) const { + bool hasUniformQual = ((ds->typeQualifier & TYPEQUAL_UNIFORM) != 0); + bool hasVaryingQual = ((ds->typeQualifier & TYPEQUAL_VARYING) != 0); + bool isTask = ((ds->typeQualifier & TYPEQUAL_TASK) != 0); + bool isReference = ((ds->typeQualifier & TYPEQUAL_REFERENCE) != 0); + + if (hasUniformQual && hasVaryingQual) { + Error(pos, "Can't provide both \"uniform\" and \"varying\" qualifiers."); + return NULL; + } + + if (isFunction) { + std::vector args; + std::vector argNames; + if (functionArgs) { + // Loop over the function arguments and get names and types for + // each one in the args and argNames arrays + for (unsigned int i = 0; i < functionArgs->size(); ++i) { + Declaration *d = (*functionArgs)[i]; + Symbol *sym; + if (d->declarators.size() == 0) { + // function declaration like foo(float), w/o a name for + // the parameter + char buf[32]; + sprintf(buf, "__anon_parameter_%d", i); + sym = new Symbol(buf, pos); + Declarator *declarator = new Declarator(sym, sym->pos); + sym->type = declarator->GetType(ds); + d->declarators.push_back(declarator); + } + else { + assert(d->declarators.size() == 1); + sym = d->declarators[0]->sym; + } + + // Arrays are passed by reference, so convert array + // parameters to be references here. + if (dynamic_cast(sym->type) != NULL) + sym->type = new ReferenceType(sym->type, sym->type->IsConstType()); + + args.push_back(sym->type); + argNames.push_back(sym->name); + } + } + + if (ds->baseType == NULL) { + Warning(pos, "No return type provided in declaration of function \"%s\". " + "Treating as \"void\".", sym->name.c_str()); + ds->baseType = AtomicType::Void; + } + + if (isReference) { + Error(pos, "Function return types can't be reference types."); + return NULL; + } + + const Type *returnType = lGetType(this, ds, arraySize.begin()); + if (returnType == NULL) + return NULL; + + bool isExported = (ds->storageClass == SC_EXPORT); + bool isExternC = (ds->storageClass == SC_EXTERN_C); + return new FunctionType(returnType, args, pos, &argNames, isTask, + isExported, isExternC); + } + else { + if (isTask) + Error(pos, "\"task\" qualifier illegal in variable declaration \"%s\".", + sym->name.c_str()); + + const Type *type = lGetType(this, ds, arraySize.begin()); + + if (type != NULL && isReference) { + bool hasConstQual = ((ds->typeQualifier & TYPEQUAL_CONST) != 0); + type = new ReferenceType(type, hasConstQual); + } + + return type; + } +} + +/////////////////////////////////////////////////////////////////////////// +// Declaration + +void +Declaration::AddSymbols(SymbolTable *st) const { + assert(declSpecs->storageClass != SC_TYPEDEF); + + for (unsigned int i = 0; i < declarators.size(); ++i) + if (declarators[i]) + st->AddVariable(declarators[i]->sym); +} + + +void +Declaration::Print() const { + printf("Declaration: specs ["); + declSpecs->Print(); + printf("], declarators ["); + for (unsigned int i = 0 ; i < declarators.size(); ++i) { + declarators[i]->Print(); + printf("%s", (i == declarators.size() - 1) ? "]" : ", "); + } +} + +/////////////////////////////////////////////////////////////////////////// + +void +GetStructTypesAndNames(const std::vector &sd, + std::vector *elementTypes, + std::vector *elementNames) { + for (unsigned int i = 0; i < sd.size(); ++i) { + const Type *type = sd[i]->type; + // FIXME: making this fake little DeclSpecs here is really + // disgusting + DeclSpecs ds(type); + if (type->IsUniformType()) + ds.typeQualifier |= TYPEQUAL_UNIFORM; + else + ds.typeQualifier |= TYPEQUAL_VARYING; + + for (unsigned int j = 0; j < sd[i]->declarators->size(); ++j) { + Declarator *d = (*sd[i]->declarators)[j]; + d->InitFromDeclSpecs(&ds); + + // if it's an unsized array, make it a reference to an unsized + // array, so the caller can pass a pointer... + const ArrayType *at = dynamic_cast(d->sym->type); + if (at && at->GetElementCount() == 0) + d->sym->type = new ReferenceType(d->sym->type, type->IsConstType()); + + elementTypes->push_back(d->sym->type); + elementNames->push_back(d->sym->name); + } + } +} diff --git a/decl.h b/decl.h new file mode 100644 index 00000000..84f6147e --- /dev/null +++ b/decl.h @@ -0,0 +1,203 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file decl.h + @brief Declarations related to type declarations; the parser basically + creates instances of these classes, which are then turned into actual + Types. + + Three classes work together to represent declarations. As an example, + consider a declaration like: + + static uniform int foo, bar[10]; + + An instance of the Declaration class represents this entire declaration + of two variables, 'foo' and 'bar'. It holds a single instance of the + DeclSpecs class represents the common specifiers for all of the + variables--here, that the declaration has the 'static' and 'uniform' + qualifiers, and that it's basic type is 'int'. Then for each variable + declaration, the Declaraiton class holds an instance of a Declarator, + which in turn records the per-variable information like the symbol + name, array size (if any), initializer expression, etc. +*/ + +#ifndef ISPC_DECL_H +#define ISPC_DECL_H + +#include "ispc.h" + +enum StorageClass { + SC_NONE, + SC_EXTERN, + SC_EXPORT, + SC_STATIC, + SC_TYPEDEF, + SC_EXTERN_C +}; + + +/* Multiple qualifiers can be provided with types in declarations; + therefore, they are set up so that they can be ANDed together into an + int. */ +#define TYPEQUAL_NONE 0 +#define TYPEQUAL_CONST (1<<0) +#define TYPEQUAL_UNIFORM (1<<1) +#define TYPEQUAL_VARYING (1<<2) +#define TYPEQUAL_TASK (1<<3) +#define TYPEQUAL_REFERENCE (1<<4) +#define TYPEQUAL_UNSIGNED (1<<5) +#define TYPEQUAL_INLINE (1<<6) + +/** @brief Representation of the declaration specifiers in a declaration. + + In other words, this represents all of the stuff that applies to all of + the (possibly multiple) variables in a declaration. + */ +class DeclSpecs { +public: + DeclSpecs(const Type *t = NULL, StorageClass sc = SC_NONE, int tq = TYPEQUAL_NONE); + + void Print() const; + + StorageClass storageClass; + + /** Zero or more of the TYPEQUAL_* values, ANDed together. */ + int typeQualifier; + + /** The basic type provided in the declaration; this should be an + AtomicType, a StructType, or a VectorType; other types (like + ArrayTypes) will end up being created if a particular declaration + has an array size, etc. + */ + const Type *baseType; + + /** If this is a declaration with a vector type, this gives the vector + width. For non-vector types, this is zero. + */ + int vectorSize; + + /** If this is a declaration with an "soa" qualifier, this gives the + SOA width specified. Otherwise this is zero. + */ + int soaWidth; +}; + + +/** @brief Representation of the declaration of a single variable. + + In conjunction with an instance of the DeclSpecs, this gives us + everything we need for a full variable declaration. + */ +class Declarator { +public: + Declarator(Symbol *s, SourcePos p); + + /** As the parser peels off array dimension declarations after the + symbol name, it calls this method to provide them to the + Declarator. + */ + void AddArrayDimension(int size); + + /** Once a DeclSpecs instance is available, this method completes the + initialization of the Symbol, setting its Type accordingly. + */ + void InitFromDeclSpecs(DeclSpecs *ds); + + /** Get the actual type of the combination of Declarator and the given + DeclSpecs */ + const Type *GetType(DeclSpecs *ds) const; + + void Print() const; + + const SourcePos pos; + Symbol *sym; + /** If this declarator includes an array specification, the sizes of + the array dimensions are represented here. + */ + std::vector arraySize; + /** Initialization expression for the variable. May be NULL. */ + Expr *initExpr; + bool isFunction; + std::vector *functionArgs; +}; + + +/** @brief Representation of a full declaration of one or more variables, + including the shared DeclSpecs as well as the per-variable Declarators. + */ +class Declaration { +public: + Declaration(DeclSpecs *ds, std::vector *dlist = NULL) { + declSpecs = ds; + if (dlist != NULL) + declarators = *dlist; + for (unsigned int i = 0; i < declarators.size(); ++i) + if (declarators[i] != NULL) + declarators[i]->InitFromDeclSpecs(declSpecs); + } + Declaration(DeclSpecs *ds, Declarator *d) { + declSpecs = ds; + if (d) { + d->InitFromDeclSpecs(ds); + declarators.push_back(d); + } + } + + /** Adds the symbols for the variables in the declaration to the symbol + table. */ + void AddSymbols(SymbolTable *st) const; + void Print() const; + + DeclSpecs *declSpecs; + std::vector declarators; +}; + + +/** The parser creates instances of StructDeclaration for the members of + structs as it's parsing their declarations. */ +struct StructDeclaration { + StructDeclaration(const Type *t, std::vector *d) + : type(t), declarators(d) { } + + const Type *type; + std::vector *declarators; +}; + + +/** Given a set of StructDeclaration instances, this returns the types of + the elements of the corresponding struct and their names. */ +extern void GetStructTypesAndNames(const std::vector &sd, + std::vector *elementTypes, + std::vector *elementNames); + +#endif // ISPC_DECL_H diff --git a/docs/build.sh b/docs/build.sh new file mode 100755 index 00000000..6de1e93d --- /dev/null +++ b/docs/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +rst2html ispc.txt > ispc.html + +#rst2latex --section-numbering --documentclass=article --documentoptions=DIV=9,10pt,letterpaper ispc.txt > ispc.tex +#pdflatex ispc.tex +#/bin/rm -f ispc.aux ispc.log ispc.out ispc.tex diff --git a/docs/ispc.txt b/docs/ispc.txt new file mode 100644 index 00000000..76f13595 --- /dev/null +++ b/docs/ispc.txt @@ -0,0 +1,2640 @@ +========================================= +Intel® SPMD Program Compiler User's Guide +========================================= + +``ispc`` is a compiler for writing SPMD (single program multiple data) +programs to run on the CPU. The SPMD programming approach is widely known +to graphics and GPGPU programmers; it is used for GPU shaders and CUDA\* and +OpenCL\* kernels, for example. The main idea behind SPMD is that one writes +programs as if they were operating on a single data element (a pixel for a +pixel shader, for example), but then the underlying hardware and runtime +system executes multiple invocations of the program in parallel with +different inputs (the values for different pixels, for example). + +The main goals behind ``ispc`` are to: + +* Build a small C-like language that can deliver good performance to + performance-oriented programmers who want to run SPMD programs on + CPUs. +* Provide a thin abstraction layer between the programmer and the + hardware--in particular, to follow the lesson from C for serial programs + of having an execution and data model where the programmer can cleanly + reason about the mapping of their source program to compiled assembly + language and the underlying hardware. +* Harness the computational power of the Single Program, Multiple Data (SIMD) vector + units without the extremely low-programmer-productivity activity of directly + writing intrinsics. +* Explore opportunities from close-coupling between C/C++ application code + and SPMD ``ispc`` code running on the same processor--lightweight funcion + calls betwen the two languages, sharing data directly via pointers without + copying or reformating, etc. + +``ispc`` has already successfully delivered significant speedups for a +number of non-trivial workloads that aren't handled well by other +compilation approaches (e.g. loop auto-vectorization.) + +Contents: + +* `Recent Changes to ISPC`_ + +* `Getting Started with ISPC`_ + + + `Installing ISPC`_ + + `Compiling and Running a Simple ISPC Program`_ + +* `Using The ISPC Compiler`_ + + + `Command-line Options`_ + +* `The ISPC Language`_ + + + `Lexical Structure`_ + + `Basic Types and Type Qualifiers`_ + + `Short Vector Types`_ + + `Struct and Array Types`_ + + `Declarations and Initializers`_ + + `Function Declarations`_ + + `Expressions`_ + + `Control Flow`_ + + `Functions`_ + + `C Constructs not in ISPC`_ + +* `Parallel Execution Model in ISPC`_ + + + `The SPMD-on-SIMD Execution Model`_ + + `Uniform and Varying Qualifiers`_ + + `Mapping Data to Program Instances`_ + + `"Coherent" Control Flow Statements`_ + + `Program Instance Convergence`_ + + `Data Races`_ + + `Uniform Variables and Varying Control Flow`_ + + `Task Parallelism in ISPC`_ + +* `The ISPC Standard Library`_ + + + `Math Functions`_ + + `Output Functions`_ + + `Cross-Lane Operations`_ + + `Low-Level Bits`_ + +* `Interoperability with the Application`_ + + + `Interoperability Overview`_ + + `Data Layout`_ + + `Data Alignment and Aliasing`_ + +* `Using ISPC Effectively`_ + + + `Restructuring Existing Programs to Use ISPC`_ + + `Understanding How to Interoperate With the Application's Data`_ + + `Communicating Between SPMD Program Instances`_ + + `Gather and Scatter`_ + + `Low-level Vector Tricks`_ + + `Debugging`_ + + `The "Fast math" Option`_ + + `"Inline" Aggressively`_ + + `Small Performance Tricks`_ + + `Instrumenting Your ISPC Programs`_ + +* `Disclaimer and Legal Information`_ + +* `Optimization Notice`_ + +Recent Changes to ISPC +====================== + +This section summarizes recent changes and bugfixes. + +* 17 May: Fixed a number of bugs related to error handling in Windows*. In + particular, if you use the ``/E`` command line flag to ``cl.exe`` (rather + than ``/EP``) when using it as a preprocessor, then ``ispc`` will + correctly report the source file position with warnings and errors. + +* 15 May: Improved error messages and warnings in many cases. For example, + the column number is reported along with the line number and + the source line with the error is printed as part of the message. + +* 8 May: ``ispc``'s typechecker has been substantially improved in how it + handles ``const``-qualified types. Some programs that previously + compiled may now fail with errors related to ``const``. For example, + ``ispc`` issues an error message if you try to assign a member of a const + structure. + +* 2 May: "uniform" short-vector types are now stored across the lanes of + the SIMD registers. This enables you to also write classic 'explicit + vector' computation in ``ispc`` as well. This change does change how + these types are laid out in memory; see `Data Layout`_ for more details.) + +Getting Started with ISPC +========================= + +Installing ISPC +--------------- + +The `ispc downloads web page`_ has prebuilt executables for Windows\*, +Linux\* and Mac OS\* available for download. Alternatively, you can +download the source code from that page and build it yourself; see see the +`ispc wiki`_ for instructions about building ``ispc`` from source. + +.. _ispc downloads web page:downloads.html +.. _ispc wiki: http://github.com/ispc/ispc/wiki + +Once you have an executable for your system, copy it into a directory +that's in your ``PATH``. Congratulations--you've now installed ``ispc``. + +Compiling and Running a Simple ISPC Program +------------------------------------------- + +The directory ``examples/simple`` in the ``ispc`` distribution includes a +simple example of how to use ``ispc`` with a short C++ program. See the +file ``simple.ispc`` in that directory (also reproduced here.) + +:: + + export void simple(uniform float vin[], uniform float vout[], + uniform int count) { + for (uniform int i = 0; i < count; i += programCount) { + int index = i + programIndex; + float v = vin[index]; + if (v < 3.) + v = v * v; + else + v = sqrt(v); + vout[index] = v; + } + } + +This program loops over an array of values in ``vin`` and computes an +output value for each one. For each value in ``vin``, if its value is less +than three, the output is the value squared, otherwise it's the square root +of the value. + +The first thing to notice in this program is the presence of the ``export`` +keyword in the function definition; this indicates that the function should +be made available to be called from application code. The ``uniform`` +qualifiers on the parameters to ``simple`` as well as for the variable +``i`` indicate that the correpsonding variables are non-vector +quantities--they are discussed in detail in the `Uniform and Varying +Qualifiers`_ section. + +Each iteration of the for loop works on a number of input values in +parallel. The built-in ``programCount`` variable indicates how many +program instances are running in parallel; it is equal to the SIMD width of +the machine. (For example, the value is four on Intel® SSE, eight on +Intel® AVX, etc.) Thus, we can see that each execution of the loop will +work on that many output values in parallel. There is an implicit +assumption that ``programCount`` divides the ``count`` parameter without +remainder; the more general case case can be handled with a small amount of +additional code. + +To load the ``programCount``-worth of values, the program computes an index +using the sum of ``i``, which gives the first value to work on in this +iteration, and ``programIndex``, which gives a unique integer identifier +for each running program instance, counting from zero. Thus, the load from +``vin`` loads the values at offset ``i+0``, ``i+1``, ``i+2``, ..., from the +``vin`` array into the vector variable ``v``. This general idiom should be +familiar to CUDA\* or OpenCL\* programmers, where thread ids serve a +similar role to ``programIndex`` in ``ispc``. See the section `Mapping +Data to Program Instances`_ for more detail. + +The program can then proceed, doing computation and control flow based on +the values loaded. The result from the running program instances is +written to the ``vout`` array before the next loop iteration runs. + +For a simple program like this one, the performance difference versus a +regular scalar C/C++ implementation are minimal. For more +complex programs that do more substantial amounts of computation, doing +that computation in parallel across the machine's SIMD lanes can have a +substantial performance benefit. + +On Linux\* and Mac OS\*, the makefile in that directory compiles this program. +For Windows\*, open the ``examples/examples.sln`` file in Microsoft Visual +C++ 2010\* to build this (and the other) examples. In either case, +build it now! We'll walk through the details of the compilation steps in +the following section, `Using The ISPC Compiler`_.) In addition to +compiling the ``ispc`` program, in this case the ``ispc`` compiler also +generates a small header file, ``simple.h``. This header file includes the +declaration for the C-callable function that the above ``ispc`` program is +compiled to. The relevant parts of this file are: + +:: + + #ifdef __cplusplus + extern "C" { + #endif // __cplusplus + extern void simple(float vin[], float vout[], int32_t count); + #ifdef __cplusplus + } + #endif // __cplusplus + +It's not mandatory to ``#include`` the generated header file in your C/C++ +code (you can alternatively use a manually-written ``extern`` declaration +of the ``ispc`` functions you use), but it's a helpful check to ensure that +the function signatures are as expected on both sides. + +Here is the main program, ``simple.cpp``, which calls the ``ispc`` function +above. + +:: + + #include + #include "simple.h" + + int main() { + float vin[16], vout[16]; + for (int i = 0; i < 16; ++i) + vin[i] = i; + + simple(vin, vout, 16); + + for (int i = 0; i < 16; ++i) + printf("%d: simple(%f) = %f\n", i, vin[i], vout[i]); + } + +Note that the call to the ``ispc`` function in the middle of ``main()`` is +a regular function call. (And it has the same overhead as a C/C++ function +call, for that matter.) + +When the executable ``simple`` runs, it generates the expected output: + +:: + + 0: simple(0.000000) = 0.000000 + 1: simple(1.000000) = 1.000000 + 2: simple(2.000000) = 4.000000 + 3: simple(3.000000) = 1.732051 + ... + +There is also a small example of using ``ispc`` to compute the Mandelbrot +set; see the `Mandelbrot set example`_ page on the ``ispc`` website for a +walkthrough of it. + +.. _Mandelbrot set example: http://ispc.github.com/example.html + +Using The ISPC Compiler +======================= + +To go from a ``ispc`` source file to an object file that can be linked +with application code, enter the following command + +:: + + ispc foo.ispc -o foo.o + +On Linux\* and Mac OS\*, ``ispc`` automatically runs the C preprocessor on +your input program; under Windows\*, this must be done manually. With +Microsoft Visual C++ 2010\*, the following custom build step for +``ispc`` source files takes care of this job: + +:: + + cl /E /TP %(Filename).ispc | ispc - -o %(Filename).obj -h %(Filename).h + +The ``cl`` call runs the C preprocessor on the ``ispc`` file; the result is +piped to ``ispc`` to generate an object file and a header. As an example, +see the file ``simple.vcxproj`` in the ``examples/simple`` directory of the +``ispc`` distribution. + +Command-line Options +-------------------- + +The ``ispc`` executable can be run with ``--help`` to print a list of +accepted command-line arguments. By default, the compiler compiles the +provided program (and issues warnings and errors), but doesn't +generate any output. + +If the ``-o`` flag is given, it will generate an output file (a native +object file by default). To generate a text assembly file, pass +``--emit-asm``: + +:: + + ispc foo.ispc -o foo.s --emit-asm + +To generate LLVM bitcode, use the ``--emit-llvm`` flag. + +By default, an optimized x86-64 object file tuned for Intel® Core +processors CPUs is built. You can use the ``--arch`` command line flag to +specify a 32-bit x86 target: + +:: + + ispc foo.ispc -o foo.obj --arch=x86 + +Optimizations can be turned off with ``-O0``: + +:: + + ispc foo.ispc -o foo.obj -O0 + +On Mac\* and Linux\*, there is early support for generating debugging +symbols; this is enabled with the ``-g`` command-line flag. + +The ``-h`` flag can also be used to direct ``ispc`` to generate a C/C++ +header file that includes C/C++ declarations of the C-callable ``ispc`` +functions and the types passed to it. + +On Linux\* and Mac OS\*, ``-D`` can be used to specify definitions to be +passed along to the C pre-prcessor, which runs over the program input +before it's compiled. On Windows®, pre-processor definitions should be +provided to the ``cl`` call. + +By default, the compiler generates x86-64 Intel® SSE4 code. To generate +32-bit code, you can use the the ``--arch=x86`` command-line flag. To +select Intel® SSE2, use ``--target=sse2``. + +``ispc`` supports an alternative method for generating Intel® SSE4 code, +where the program is "doubled up" and eight instances of it run in +parallel, rather than just four. For workloads that don't require large +numbers of registers, this method can lead to significantly more efficient +execution thanks to greater instruction level parallelism. This option is +selected with ``--target=sse4x2``. + +The compiler issues a number of performance warnings for code constructs +that compile to relatively inefficient code. These warnings can be +silenced with the ``--wno-perf`` flag (or by using ``--woff``, which turns +off all warnings.) + + +The ISPC Language +================= + +``ispc``'s syntax is based on C and is designed to be as similar to C +as much as possible. Between syntactic differences and the fundamentally +parallel execution model (versus C's serial model), C code is not directly +portable to ``ispc``, although starting with working C code and porting it +to ``ispc`` can be an efficient way to write ``ispc`` programs. + +Lexical Structure +----------------- + +Tokens in ``ispc`` are delimted by white-space and comments. The +white-space characters are the usual set of spaces, tabs, and carriage +returns/line feeds. Comments can be delinated with ``//``, which starts a +comment that continues to the end of the line, or the start of a comment +can be delinated with ``/*`` and the end with ``*/``. Like in C/C++, +comments can't be nested. + +Identifiers in ``ispc`` are sequences of characters that start with an +underscore or an upper-case or lower-case letter, and then followed by +zero or more letters, numbers, or underscores. + +Integer numeric constants can be specified in base 10 or in hexidecimal. +Base 10 constants are given by a sequence of one or more digits from 0 to +9. Hexidecimal constants are denoted by a leading ``0x`` and then one or +more digits from 0-9, a-f, or A-F. + +Floating-point constants can be specified in one of three ways. First, +they may be a sequence of zero or more digits from 0 to 9, followed by a +period, followed by zero or more digits from 0 to 9. (There must be at +least one digit before or after the period). + +The second option is scientific notation, where a base value is specified +as the first form of a floating-point constant but is then followed by an +"e" or "E", then a plus sign or a minus sign, and then an exponent. + +Finally, floating-point constants may be specified as hexidecimal +constants; this form can ensure a perfectly bit-accurate representation of +a particular floating-point number. These are specified with an "0x" +prefix, followed by a zero or a one, a period, and then the remainder of +the mantissa in hexidecimal form, with digits from 0-9, a-f, or A-F. The +start of the exponent is denoted by a "p", which is then followed by an +optional plus or minus sign and then digits from 0 to 9. For example: + +:: + + float two = 0x1p+1; // 2.0 + float pi = 0x1.921fb54442d18p+1; // 3.1415926535... + float neg = -0x1.ffep+11; // -4095. + +Floating-point constants can optionally have a "f" or "F" suffix (``ispc`` +currently treats all floating-point constants as having 32-bit precision, +making this suffix unnecessary.) + +String constants in ``ispc`` are denoted by an opening double quote ``"`` +followed by any character other than a newline, up to a closing double +quote. Within the string, a number of special escape sequences can be used +to specify special characters. These sequences all start with an initial +``\`` and are listed below: + +.. list-table:: Escape sequences in strings + + * - ``\\`` + - backslash: ``\`` + * - ``\"`` + - double quotation mark: ``"`` + * - ``\'`` + - single quotation mark: ``'`` + * - ``\a`` + - bell (alert) + * - ``\b`` + - backspace character + * - ``\f`` + - formfeed character + * - ``\n`` + - newline + * - ``\r`` + - carriabe return + * - ``\t`` + - horizontal tab + * - ``\v`` + - vertical tab + * - ``\`` followed by one or more digits from 0-8 + - ASCII character in octal notation + * - ``\x``, followed by one or more digits from 0-9, a-f, A-F + - ASCII character in hexidecimal notation + +``ispc`` doesn't support a string data type; string constants can be passed +as the first argument to the ``print()`` statement, however. ``ispc`` also +doesn't support character constants. + +The following identifiers are reserved as language keywords: ``bool``, +``break``, ``case``, ``cbreak``, ``ccontinue``, ``cdo``, ``cfor``, +``char``, ``cif``, ``cwhile``, ``const``, ``continue``, ``creturn``, +``default``, ``do``, ``double``, ``else``, ``enum``, ``export``, +``extern``, ``false``, ``float``, ``for``, ``goto``, ``if``, ``inline``, ``int``, +``int32``, ``int64``, ``launch``, ``print``, ``reference``, ``return``, +``signed``, ``sizeof``, ``soa``, ``static``, ``struct``, ``switch``, +``sync``, ``task``, ``true``, ``typedef``, ``uniform``, ``union``, +``unsigned``, ``varying``, ``void``, ``volatile``, ``while``. + +``ispc`` defines the following operators and punctuation: + +.. list-table:: Operators + + * - Symbols + - Use + * - ``=`` + - Assignment + * - ``+``, ``-``, \*, ``/``, ``%`` + - Arithmetic operators + * - ``&``, ``|``, ``^``, ``!``, ``~``, ``&&``, ``||``, ``<<``, ``>>`` + - Logical and bitwise operators + * - ``++``, ``--`` + - Pre/post increment/decrement + * - ``<``, ``<=``, ``>``, ``>=``, ``==``, ``!=`` + - Relational operators + * - ``*=``, ``/=``, ``+=``, ``-=``, ``<<=``, ``>>=``, ``&=``, ``|=`` + - Compound assignment operators + * - ``?``, ``:`` + - Selection operators + * - ``;`` + - Statement separator + * - ``,`` + - Expression separator + * - ``.`` + - Member access + +A number of tokens are used for grouping in ``ispc``: + +.. list-table:: Grouping Tokens + + * - ``(``, ``)`` + - Parenthesization of expressions, function calls, delimiting specifiers + for control flow constructs. + * - ``[``, ``]`` + - Array and short-vector indexing + * - ``{``, ``}`` + - Compound statements + + +Basic Types and Type Qualifiers +------------------------------- + +``ispc`` is a statically-typed language. It supports a variety of basic +types. + +* ``void``: "empty" type representing no value. +* ``bool``: boolean value; may be assigned ``true``, ``false``, or the + value of a boolean expression. +* ``int``: 32-bit signed integer; may also be specified as ``int32``. +* ``unsigned int``: 32-bit unsigned integer; may also be specified as + ``unsigned int32``. +* ``float``: 32-bit floating point value +* ``int64``: 64-bit signed integer. +* ``unsigned int64``: 64-bit unsigned integer. +* ``double``: 64-bit double-precision floating point value. + +Implicit type conversion between values of different types is done +automatically by the ``ispc`` compiler. Thus, a value of ``float`` type +can be assigned to a variable of ``int`` type directly. In binary +arithmetic expressions with mixed types, types are promoted to the "more +general" of the two types, with the following precedence: + +:: + + double > uint64 > int64 > float > uint32 > int32 > bool + +In other words, adding an ``int64`` to a ``double`` causes the ``int64`` to +be converted to a ``double``, the addition to be performed, and a +``double`` value to be returned. If a different conversion behavior is +desired, then explicit type-casts can be used, where the destination type +is provided in parenthesis around the expression: + +:: + + double foo = 1. / 3.; + int bar = (float)bar + (float)bar; // 32-bit float addition + +Note: if a ``bool`` is converted to an integer numeric type (``int``, +``int64``, etc.), then the conversion is done with sign extension, not zero +extension. Thus, the resulting value has all bits set if the ``bool`` is +``true``; for example, ``0xffffffff`` for ``int32``. This differs from C +and C++, where a ``true`` bool is converted to the integer value one. + +Variables can be declared with the ``const`` qualifier, which prohibits +their modification. + +:: + + const float PI = 3.1415926535; + +As in C, the ``extern`` qualifier can be used to declare a function or +global variable defined in another source file, and the ``static`` +qualifier can be used to define a variable or function that is only visible +in the current scope. The values of ``static`` variables declared in +functions are preserved across function calls. + +The ``typedef`` keyword can be used to name types: + +:: + + typedef Float3 float[3]; + +``typedef`` doesn't create a new type: it just provides an alternative name +for an existing type. Thus, in the above example, it is legal to pass a +value with ``float[3]`` type to a function that has been declared to take a +``Float3`` parameter. + +``ispc`` provides a ``reference`` qualifier that can be used for passing +values to functions by reference so that functions can return multiple +results or modify existing variables. + +:: + + void increment(reference float f) { + ++f; + } + +``ispc`` doesn't currently support pointer types. + + +Short Vector Types +------------------ + +``ispc`` supports a parameterized type to define short vectors. These +short vectors can only be used with basic types like ``float`` and ``int``; +they can't be applied to arrays or structures. Note: ``ispc`` does *not* +use these short vectors to facilitate program vectorization; they are +purely a syntactic convenience. Using them or writing the corresponding +code without them shouldn't lead to any noticeable performance differences +between the two approaches. + +Syntax similar to C++ templates is used to declare these types: + +:: + + float<3> foo; // vector of three floats + double<6> bar; + +The length of these vectors can be arbitrarily long, though the expected +usage model is relatively short vectors. + +You can use ``typedef`` to create types that don't carry around +the brackets around the vector length: + +:: + + typedef float<3> float3; + +``ispc`` doesn't support templates in general. In particular, +not only must the vector length be a compile-time constant, but it's +also not possible to write functions that are parameterized by vector +length. + +:: + + uniform int i = foo(); + // ERROR: length must be compile-time constant + float vec; + // ERROR: can't write functions parameterized by vector length + float func(float val); + +Arithmetic on these short vector types works as one would expect; the +operation is applied component-wise to the values in the vector. Here is a +short example: + +:: + + float<3> func(float<3> a, float<3> b) { + a += b; // add individual elements of a and b + a *= 2.; // multiply all elements of a by 2 + bool<3> test = a < b; // component-wise comparison + return test ? a : b; // return each minimum component + } + +As shown by the above code, scalar types automatically convert to +corresponding vector types when used in vector expressions. In this +example, the constant ``2.`` above is converted to a three-vector of 2s for +the multiply in the second line of the function implementation. + +Type conversion between other short vector types also works as one would +expect, though the two vector types must have the same length: + +:: + + float<3> foo = ...; + int<3> bar = foo; // ok, cast elements to ints + int<4> bat = foo; // ERROR: different vector lengths + float<4> bing = foo; // ERROR: different vector lengths + +There are two mechanisms to access the individual elements of these short +vector data types. The first is with the array indexing operator: + +:: + + float<4> foo; + for (uniform int i = 0; i < 4; ++i) + foo[i] = i; + +``ispc`` also provides a specialized mechanism for naming and accessing +the first few elements of short vectors based on an overloading of +the structure member access operator. The syntax is similar to that used +in HLSL, for example. + +:: + + float<3> position; + position.x = ...; + position.y = ...; + position.z = ...; + +More specifically, the first element of any short vector type can be +accessed with ``.x`` or ``.r``, the second with ``.y`` or ``.g``, the third +with ``.z`` or ``.b``, and the fourth with ``.w`` or ``.a``. Just like +using the array indexing operator with an index that is greater than the +vector size, accessing an element that is beyond the vector's size is +undefined behavior and may cause your program to crash. + +Note: ``ispc`` doesn't support the "swizzling" operations that languages +like HLSL do. Only a single element of the vector can be accessed at a +time with these member operators. + +:: + + float<3> foo = ...; + float<2> bar = foo.xy; // ERROR + foo.xz = ...; // ERROR + func(foo.xyx); // ERROR + +For convenience, short vectors can be initialized with a list of individual +element values: + +:: + + float x = ..., y = ..., z = ...; + float<3> pos = { x, y, z }; + + +Struct and Array Types +---------------------- + +More complex data structures can be built using ``struct`` and arrays. + +:: + + struct Foo { + float time; + int flags[10]; + }; + +The size of arrays must be a compile-time constant, though functions can be +declared to take "unsized arrays" as parameters so that arrays of any size +may be passed: + +:: + + void foo(float array[], int length); + +As in C++, after a ``struct`` is declared, an instance can be created using +the ``struct``'s name: + +:: + + Foo f; + +Alternatively, ``struct`` can be used before the structure name: + +:: + + struct Foo f; + + +Declarations and Initializers +----------------------------- + +Variables are declared and assigned just as in C: + +:: + + float foo = 0, bar[5]; + float bat = func(foo); + +If a variable is declared without an initializer expression, then its value +is undefined until a value is assigned to it. Reading an undefined +variable may lead to unexpected program behavior. + +Any variable that is declared at file scope (i.e. outside a function) is a +global variable. If a global variable is qualified with the ``static`` +keyword, then its only visible within the compilation unit in which it was +defined. As in C/C++, a variable with a ``static`` qualifier inside a +functions maintains its value across function invocations. + +Like C++, variables don't need to be declared at the start of a basic +block: + +:: + + int foo = ...; + if (foo < 2) { ... } + int bar = ...; + +Variables can also be declared in ``for`` statement initializers: + +:: + + for (int i = 0; ...) + +Arrays can be initialized with either a scalar value or with individual +element values in braces: + +:: + + int foo[10] = x; // all ten elements take the value of x + int bar[2][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }; + +Structures can also be initialized both with scalar values or with element +values in braces: + +:: + + struct Color { float r, g, b; }; + .... + Color c = 1; // all are one + Color d = { 0.5, .75, 1.0 }; // r = 0.5, ... + + +Function Declarations +--------------------- + +Functions can be declared with a number of qualifiers that affect their +visibility and capabilities. As in C/C++, functions have global visibility +by default. If a function is declared with a ``static`` qualifier, then it +is only visible in the file in which it was declared. + +Any function that can be launched with the ``launch`` construct in ``ispc`` +must have a ``task`` qualifier; see `Task Parallelism in ISPC`_ for more +discussion of launching tasks in ``ispc``. + +Functions that are intended to be called from C/C++ application code must +have the ``export`` qualifier. This causes them to have regular C linkage +and to have their declarations included in header files, if the ``ispc`` +compiler is directed to generated a C/C++ header file for the file it +compiled. + +Finally, any function defined with an ``inline`` qualifier will always be +inlined by ``ispc``; ``inline`` is not a hint, but forces inlining. The +compiler will opportunistically inline short functions depending on their +complexity, but any function that should always be inlined should have the +``inline`` qualifier. + + +Expressions +----------- + +All of the operators from C that you'd expect for writing expressions are +present. Rather than enumerating all of them, here is a short summary of +the range of them available in action. + +:: + + unsigned int i = 0x1234feed; + unsigned int j = (i << 3) ^ ~(i - 3); + i += j / 6; + float f = 1.234e+23; + float g = j * f / (2.f * i); + double h = (g < 2) ? f : g/5; + +Structure member access and array indexing also work as in C. + +:: + + struct Foo { float f[5]; int i; }; + Foo foo = { { 1,2,3,4,5 }, 2 }; + return foo.f[4] - foo.i; + + +Control Flow +------------ + +``ispc`` supports most of C's control flow constructs, including ``if``, +``for``, ``while``, ``do``. You can use ``break`` and ``continue`` +statements in ``for``, ``while``, and ``do`` loops. + +There are variants of the ``if``, ``do``, ``while``, ``for``, ``break``, +``continue``, and ``return`` statements (``cif``, ``cdo``, ``cwhile``, +``cfor``, ``cbreak``, ``ccontinue``, and ``creturn``, respectively) that +provide the compiler a hint that the control flow is expected to be +coherent at that particular point, thus allowing the compiler to do +additional optimizations for that case. These are described in the +`"Coherent" Control Flow Statements`_ section. + +``ispc`` does not support ``switch`` statements or ``goto``. + +Functions +--------- + +Like C, functions must be declared before they are called, though a forward +declaration can be used before the actual function definition. Functions +can be overloaded by parameter type. Given multiple definitions of a +function, ``ispc`` uses the following methods to try to find a match. If +a single match of a given type is found, it is used; if multiple matches of +a given type are found, an error is issued. + +* All parameter types match exactly. +* All parameter types match exactly, where any ``reference``-qualified + parameters are considered equivalent to their underlying type. +* Parameters match with only promotions from ``uniform`` to ``varying`` + type. +* Parameters match using standard type conversion (``int`` to ``float``, + ``float`` to ``int``.) + +Also like C, arrays are passed to functions by reference. + + +C Constructs not in ISPC +------------------------- + +The following C features are not available in ``ispc``. + +* ``enum`` s +* Pointers and function pointers +* ``char`` and ``short`` types +* ``switch`` statements +* bitfield members in structures +* ``union`` +* ``goto`` + + +Parallel Execution Model in ISPC +================================ + +Though ``ispc`` has C-based syntax, it is inherently a language for +parallel computation. Understanding the details of ``ispc``'s parallel +execution model is critical for writing efficient and correct programs in +``ispc``. + +``ispc`` supports both task parallelism to parallelize across multiple +cores and SPMD parallelism to parallelize across the SIMD vector lanes on a +single core. This section focuses on SPMD parallelism. See the section +`Task Parallelism in ISPC`_ for discussion of task parallelism in ``ispc``. + +The SPMD-on-SIMD Execution Model +-------------------------------- + +In the SPMD model as implemented in ``ispc``, you programs that compute a +set of outputs based on a set of inputs. You must write these +programs so that it is safe to run multiple instances of them in +parallel--i.e. given a program an a set of inputs, the programs shouldn't +have any assumptions about the order in which they will be run over the +inputs, whether one program instances will have completed before another +runs. [#]_ + +.. [#] This is essentially the same requirement that languages like CUDA\* + and OpenCL\* place on the programmer. + +Given this guarantee, the ``ispc`` compiler can safely execute multiple +program instances in parallel, across the SIMD lanes of a single CPU. In +many cases, this execution approach can achieve higher overall performance +than if the program instances had been run serially. + +Upon entry to a ``ispc`` function, the execution model switches from +the application's serial model to SPMD. Conceptually, a number of +``ispc`` program instances will start running in parallel. This +parallelism doesn't involve launching hardware threads. Rather, one +program instance is mapped to each of the SIMD lanes of the CPU's vector +unit (Intel® SSE or Intel® AVX). + +If a ``ispc`` program is written to do a the following computation: + +:: + + float x = ..., y = ...; + return x+y; + +and if the ``ispc`` program is running four-wide on a CPU that supports the +Intel® SSE instructions, then four program instances are running in +parallel, each adding a pair of scalar values. However, these four program +instances store their individual scalar values for ``x`` and ``y`` in the +lanes of an Intel® SSE vector register, so the addition operation for all +four program instances can be done in parallel with a single ``addps`` +instruction. + +Program execution is more complicated in the presence of control flow. The +details are handled by the ``ispc`` compiler, but you may find it helpful +to understand what is going on in order to be a more effective ``ispc`` +programmer. In particular, the mapping of SPMD to SIMD lanes can lead to +reductions in this SIMD efficiency as different program instances want to +perform different computations. For example, consider a simple ``if`` +statement: + +:: + + float x = ..., y = ...; + if (x < y) { + ... + } else { + ... + } + +In general, the test ``x + +Note the ``launch`` keyword and the brackets around the function call. +This code launches 100 tasks, each of which presumably does some +computation keyed off of given the value ``i``. In general, one should +launch many more tasks than there are processors in the system to +ensure good load-balancing, but not so many that the overhead of scheduling +and running tasks dominates the computation. + +Program execution continues asynchronously after task launch; thus, the +function shouldn't access values being generated by the tasks without +synchronization. A function uses a ``sync`` statement to wait for all +launched tasks to finish: + +:: + + for (uniform int i = 0; i < 100; ++i) + launch < func(a, i); > + sync; + // now safe to use computed values in a[]... + +Alternatively, any function that launches tasks has an implicit ``sync`` +before it returns, so that functions that call a function that launches +tasks don't have to worry about outstanding asynchronous computation. + +Inside functions with the ``task`` qualifier, two additional built-in +variables are provided: ``threadIndex`` and ``threadCount``. +``threadCount`` gives the total number of hardware threads that have been +launched by the task system. ``threadIndex`` provides an index between +zero and ``threadCount-1`` that gives a unique index that corresponds to +the hardware thread that is executing the current task. The +``threadIndex`` can be used for accessing data that is private to the +current thread and thus doesn't require synchronization to access under +parallel execution. + +If you use the task launch feature in ``ispc``, you must provide C/C++ +implementations of two functions and link them into your final executable +file: + +:: + + void ISPCLaunch(void *funcptr, void *data); + void ISPCSync(); + +These are called by the task launch code generated by the ``ispc`` +compiler; the first is called to launch to launch a task and the second is +called to wait for, respectively. (Factoring them out in this way +allows ``ispc`` to inter-operate with the application's task system, if +any, rather than having a separate one of its own.) To run a particular +task, the task system should cast the function pointer to a ``void (*)(void +*, int, int)`` function pointer and then call it with the provided ``void +*`` data and then an index for the current hardware thread and the total +number of hardware threads the task system has launched--in other words: + +:: + + typedef void (*TaskFuncType)(void *, int, int); + TaskFuncType tft = (TaskFuncType)(funcptr); + tft(data, threadIndex, threadCount); + +A number of sample task system implementations are provided with ``ispc``; +see the files ``tasks_concrt.cpp``, ``tasks_gcd.cpp`` and +``tasks_pthreads.cpp`` in the ``examples/mandelbrot_tasks`` directory of +the ``ispc`` distribution. + + +The ISPC Standard Library +========================= + +``ispc`` has a standard library that is automatically available when +compiling ``ispc`` programs. (To disable the standard library, pass the +``--nostdlib`` command-line flag to the compiler.) + +Math Functions +-------------- + +The math functions in the standard library provide a relatively standard +range of mathematical functionality. + +A number of different implementations of the transcendental math functions +are available; the math library to use can be selected with the +``--math-lib=`` command line argument. The following values can be provided +for this argument. + +* ``default``: ``ispc``'s default built-in math functions. These have + reasonably high precision. (e.g. ``sin`` has a maximum absolute error of + approximately 1.45e-6 over the range -10pi to 10pi.) +* ``fast``: more efficient but lower accuracy versions of the default ``ispc`` + implementations. +* ``svml``: use Intel "Short Vector Math Library". Use + ``icc`` to link your final executable so that the appropriate libraries + are linked. +* ``system``: use the system's math library. On many systems, these + functions are more accurate than both of ``ispc``'s implementations. + Using these functions may be quite + inefficient; the system math functions only compute one result at a time + (i.e. they aren't vectorized), so ``ispc`` has to call them once per + active program instance. (This is not the case for the other three + options.) + +In addition to an absolute value call, ``abs()``, ``signbits()`` extracts +the sign bit of the given value, returning ``0x80000000`` if the sign bit +is on (i.e. the value is negative) and zero if it is off. + +:: + + float abs(float a) + uniform float abs(uniform float a) + unsigned int signbits(float x) + +Standard rounding functions are provided. (On machines that support Intel® +SSE or Intel® AVX, these functions all map to variants of the ``roundss`` and +``roundps`` instructions, respectively.) + +:: + + float round(float x) + uniform float round(uniform float x) + float floor(float x) + uniform float floor(uniform float x) + float ceil(float x) + uniform float ceil(uniform float x) + +``rcp()`` computes an approximation to ``1/v``. The amount of error is +different on different architectures. + +:: + + float rcp(float v) + uniform float rcp(uniform float v) + +The square root of a given value can be computed with ``sqrt()``, which +maps to hardware square root intrinsics when available. An approximate +reciprocal square root, ``1/sqrt(v)`` is computed by ``rsqrt()``. Like +``rcp()``, the error from this call is different on different +architectures. + +:: + + float sqrt(float v) + uniform float sqrt(uniform float v) + float rsqrt(float v) + uniform float rsqrt(uniform float v) + +A standard set of minimum and maximum functions is available. These +functions also map to corresponding intrinsic functions. + +:: + + float min(float a, float b) + uniform float min(uniform float a, uniform float b) + float max(float a, float b) + uniform float max(uniform float a, uniform float b) + unsigned int min(unsigned int a, unsigned int b) + uniform unsigned int min(uniform unsigned int a, + uniform unsigned int b) + unsigned int max(unsigned int a, unsigned int b) + uniform unsigned int max(uniform unsigned int a, + uniform unsigned int b) + +The ``clamp()`` functions clamp the provided value to the given range. +(Their implementations are based on ``min()`` and ``max()`` and are thus +quite efficient.) + +:: + + float clamp(float v, float low, float high) + uniform float clamp(uniform float v, uniform float low, + uniform float high) + unsigned int clamp(unsigned int v, unsigned int low, + unsigned int high) + uniform unsigned int clamp(uniform unsigned int v, + uniform unsigned int low, + uniform unsigned int high) + +``ispc`` provides a standard variety of calls for trigonometric functions: + +:: + + float sin(float x) + uniform float sin(uniform float x) + float cos(float x) + uniform float cos(uniform float x) + float tan(float x) + uniform float tan(uniform float x) + +Arctangent functions are also available: + +:: + + float atan(float x) + float atan2(float x, float y) + uniform float atan(uniform float x) + uniform float atan2(uniform float x, uniform float y) + +If both sine and cosine are needed, then the ``sincos()`` call computes +both more efficiently than two calls to the respective individual +functions: + +:: + + void sincos(float x, reference float s, reference float c) + void sincos(uniform float x, uniform reference float s, + uniform reference float c) + + +The usual exponential and logarithmic functions are provided. + +:: + + float exp(float x) + uniform float exp(uniform float x) + float log(float x) + uniform float log(uniform float x) + float pow(float a, float b) + uniform float pow(uniform float a, uniform float b) + +Some functions that end up doing low-level manipulation of the +floating-point representation in memory are available. As in the standard +math library, ``ldexp()`` multiplies the value ``x`` by 2^n, and +``frexp()`` directly returns the normalized mantissa and returns the +normalized exponent as a power of two in the ``pw2`` parameter. + +:: + + float ldexp(float x, int n) + uniform float ldexp(uniform float x, uniform int n) + float frexp(float x, reference int pw2) + niform float frexp(uniform float x, + reference uniform int pw2) + + +A simple random number generator is provided. State for the RNG +is maintained in an instance of the ``RNGState`` structure, which is seeded +with ``seed_rng()``. + +:: + + struct RNGState; + unsigned int random(reference uniform RNGState state) + float frandom(reference uniform RNGState state) + void seed_rng(reference uniform RNGState state, + uniform int seed) + +Output Functions +---------------- + +``ispc`` has a simple ``print`` statement for printing values during +program execution. In the following short ``ispc`` program, there are +three uses of the ``print`` statement: + +:: + + export void foo(uniform float f[4], uniform int i) { + float x = f[programIndex]; + print("i = %, x = %\n", i, x); + if (x < 2) { + ++x; + print("added to x = %\n", x); + } + print("last print of x = %\n", x); + } + +There are a few things to note. First, the function is called ``print``, +not ``printf`` (unlike C). Second, the formatting string passed to this +function only uses a single percent sign to denote where the corresponding +value should be printed. You don't need to match the types of formatting +operators with the types being passed. However, you can't currently use +the rich data formatting options that ``printf`` provides (e.g. constructs +like ``%.10f``.). + +If this function is called with the array of floats (0,1,2,3) passed in for +the ``f`` parameter and the value ``10`` for the ``i`` parameter, it +generates the following output on a four-wide compilation target: + +:: + + i = 10, x = [0.000000,1.000000,2.000000,3.000000] + added to x = [1.000000,2.000000,_________,_________] + last print of x = [1.000000,2.000000,2.000000,3.000000] + +All values of "varying" variables for each executing program instance is +printed when a "varying" variable is printed. The result from the second +print statement, which was called under control flow in the function +``foo()`` above, and given the input array (0,1,2,3), only includes the +first two program instances entered the ``if`` block. Therefore, the +values for the inactive program instances aren't printed. (In other cases, +they may have garbage values or be otherwise undefined.) + + +Cross-Lane Operations +--------------------- + +Usually, ``ispc`` code expresses independent computation on separate data +elements. There are, however, a number of cases where it's useful for the +program instances to be able to cooperate in computing results. The +cross-lane operations described in this section provide primitives for +communication between the running program instances. + +A few routines that evaluate conditions across the running program +instances. For example, ``any()`` returns ``true`` if the given value +``v`` is ``true`` for any of the SPMD program instances currently running, +and ``all()`` returns ``true`` if it true for all of them. + +:: + + uniform bool any(bool v) + uniform bool all(bool v) + +The various variants of ``popcnt()`` return the population count--the +number of bits set in the given value. + +:: + + uniform int popcnt(uniform int v) + int popcnt(int v) + uniform int popcnt(bool v) + +The ``lanemask()`` function returns an integer that encodes which of the +current SPMD program instances are currently executing. The i'th bit is +set if the i'th SIMD lane is currently active. + +:: + + uniform int lanemask() + +You can compute reductions across the program instances. For example, the +values in each of the SIMD lanes ``x`` are added together by +``reduce_add()``. If this function is called under control flow, it only +adds the values for the currently active program instances. + +:: + + uniform float reduce_add(float x) + uniform int reduce_add(int x) + uniform unsigned int reduce_add(unsigned int x) + +You can also use functions to compute the minimum and maximum value of the +given value across all of the currently-executing vector lanes. + +:: + + uniform float reduce_min(float a, float b) + uniform int reduce_min(int a, int b) + uniform unsigned int reduce_min(unsigned int a, unsigned int b) + uniform float reduce_max(float a, float b) + uniform int reduce_max(int a, int b) + uniform unsigned int reduce_max(unsigned int a, unsigned int b) + + +Finally, there are routines for writing out and reading in values from +linear memory locations for the active program instances. +``packed_load_active()`` loads consecutive values from the given array, +starting at ``a[offset]``, loading one value for each currently-executing +program instance and storing it into that program instance's ``val`` +variable. It returns the total number of values loaded. Similarly, +``packed_store_active()`` stores the ``val`` values for each program +instances that executed the ``packed_store_active()`` call, storing the +results into the given array starting at the given offset. It returns the +total number of values stored. + +:: + + uniform unsigned int packed_load_active(uniform int a[], + uniform int offset, + reference int val) + uniform unsigned int packed_store_active(uniform int a[], + uniform int offset, + int val) + + +As an example of how these functions can be used, the following code shows +the use of ``packed_store_active()``. The program instances that are +executing each compute some value ``x``; we'd like to record the program +index values of the program instances for which ``x`` is less than zero, if +any. In following the code, the ``programIndex`` value for each program +instance is written into the ``ids`` array only if ``x < 0`` for that +program instance. The total number of values written into ``ids`` is +returned from ``packed_store_active()``. + +:: + + uniform int ids[100]; + uniform int offset = 0; + float x = ...; + if (x < 0) + offset += packed_store_active(ids, offset, programIndex); + + +Finally, there are primitive operations that extract and set values in the +SIMD lanes. You can implement all of the operations described +above in this section from these routines, though in general, not as +efficiently. These routines are useful for implementing other reductions +and cross-lane communication that isn't included in the above, though. +Given a ``varying`` value, ``extract()`` returns the i'th element of it as +a single ``uniform`` value. Similarly, ``insert`` returns a new value +where the ``i`` th element of ``x`` has been replaced with the value ``v`` +. + +:: + + uniform float extract(float x, uniform int i) + uniform int extract(int x, uniform int i) + float insert(float x, uniform int i, uniform float v) + int insert(int x, uniform int i, uniform int v) + + +Low-Level Bits +-------------- + +``ispc`` provides a number of bit/memory-level utility routines in its +standard library as well. It has routines that load from and store +to 8-bit and 16-bit integer values stored in memory, converting to and from +32-bit integers for use in computation in ``ispc`` code. (These functions +and this conversion step are necessary because ``ispc`` doesn't have native +8-bit or 16-bit types in the language.) + +:: + + unsigned int load_from_int8(uniform int a[], + uniform int offset) + void store_to_int8(uniform int a[], uniform int offset, + unsigned int val) + unsigned int load_from_int16(uniform int a[], + uniform int offset) + void store_to_int16(uniform int a[], uniform int offset, + unsigned int val) + +There are two things to note in these functions. First, note that these +functions take ``unsigned int`` arrays as parameters; you need +to cast `the ``int8_t`` and ``int16_t`` pointers from the C/C++ side to +``unsigned int`` when passing them to ``ispc`` code. Second, although the +arrays are passed as ``unsigned int``, in the array indexing calculation, +with the ``offset`` parameter, they are treated as if they were ``int8`` or +``int16`` types. (i.e. the offset treated as being in terms of number of 8 +or 16-bit elements.) + +The ``intbits()`` and ``floatbits()`` functions can be used to implement +low-level floating-point bit twiddling. For example, ``intbits()`` returns +an ``unsigned int`` that is a bit-for-bit copy of the given ``float`` +value. (Note: it is **not** the same as ``(int)a``, but corresponds to +something like ``*((int *)&a)`` in C. + +:: + + float floatbits(unsigned int a); + uniform float floatbits(uniform unsigned int a); + unsigned int intbits(float a); + uniform unsigned int intbits(uniform float a); + + +The ``intbits()`` and ``floatbits()`` functions have no cost at runtime; +they just let the compiler know how to interpret the bits of the given +value. They make it possible to efficiently write functions that take +advantage of the low-level bit representation of floating-point values. + +For example, the ``abs()`` function in the standard library is implemented +as follows: + +:: + + float abs(float a) { + unsigned int i = intbits(a); + i &= 0x7fffffff; + return floatbits(i); + } + +It, it clears the high order bit, to ensure that the given floating-point +value is positive. This compiles down to a single ``andps`` instruction +when used with an Intel® SSE target, for example. + + +Interoperability with the Application +===================================== + +One of ``ispc``'s key goals is to make it easy to interoperate between the +C/C++ application code and parallel code written in ``ispc``. This +section describes the details of how this works and describes a number of +the pitfalls. + +Interoperability Overview +------------------------- + +As described in `Compiling and Running a Simple ISPC Program`_ it's +relatively straightforward to call ``ispc`` code from C/C++. First, any +``ispc`` functions to be called should be defined with the ``export`` +keyword: + +:: + + export void foo(uniform float a[]) { + ... + } + + +This function corresponds to the following C-callable function: + +:: + + void foo(float a[]); + + +(Recall from the `Uniform and Varying Qualifiers`_ section +that ``uniform`` types correspond to a single instances of the +corresponding type in C/C++.) + +In addition to variables passed from the application to ``ispc`` in the +function call, you can also share global variables between the application +and ``ispc``. To do so, just declare the global variable as usual (in +either ``ispc`` or application code), and add an ``extern`` declaration on +the other side. + +For example, given this ``ispc`` code: + +:: + + // ispc code + uniform float foo; + extern uniform float bar[10]; + +And this C++ code: + +:: + + // C++ code + extern float foo; + float bar[10]; + +Both the ``foo`` and ``bar`` global variables can be accessed on each +side. + +``ispc`` code can also call back to C/C++. On the ``ispc`` side, any +application functions to be called must be declared with the ``export "C"`` +qualifier. + +:: + + extern "C" void foo(uniform float f, uniform float g); + +Unlike in C++, ``export "C"`` doesn't take braces to delineate +multiple functions to be declared; thus, multiple C functions to be called +from ``ispc`` must be declared as follows: + +:: + + extern "C" void foo(uniform float f, uniform float g); + extern "C" uniform int bar(uniform int a); + +It is illegal to overload functions declared with ``extern "C"`` linkage; +``ispc`` issues an error in this case. + +Function calls back to C/C++ are not made if none of the program instances +want to make the call. For example, given code like: + +:: + + uniform float foo = ...; + float x = ...; + if (x != 0) + foo = appFunc(foo); + + +``appFunc()`` will only be called if one or more of the running program +instances evaluates ``true`` for ``x != 0``. If the application code would +like to determine which of the running program instances want to make the +call, a mask representing the active SIMD lanes can be passed to the +function. + +:: + + extern "C" float appFunc(uniform float x, + uniform int activeLanes); + +If the function is then called as: + +:: + + ... + x = appFunc(x, lanemask()); + +The ``activeLanes`` parameter will have the value one in the 0th bit if the +first program instance is running at this point in the code, one in the +first bit for the second instance, and so forth. (The ``lanemask()`` +function is documented in `Low-Level Bits`_.) Application code can thus be +written as: + +:: + + float appFunc(float x, int activeLanes) { + for (int i = 0; i < programCount; ++i) + if ((activeLanes & (1 << i)) != 0) { + // do computation for i'th SIMD lane + } + } + + +Data Layout +----------- + +In general, ``ispc`` tries to ensure that ``struct`` s and other complex +datatypes are laid out in the same way in memory as they are in C/C++. +Matching alignment is important for easy interoperability between C/C++ +code and ``ispc`` code. + +The main complexity in sharing data between ``ispc`` and C/C++ often comes +from reconciling data structures between ``ispc`` code and application +code; it can be useful to declare the shared structures in ``ispc`` code +and then examine the generated header file (which will have the C/C++ +equivalents of them.) For example, given a structure in ``ispc``: + +:: + + // ispc code + struct Node { + uniform int count; + uniform float pos[3]; + }; + +If the ``Node`` structure is used in the parameters to an ``export`` ed +function, then the header file generated by the ``ispc`` compiler will +have a declaration like: + +:: + + // C/C++ code + struct Node { + int count; + float pos[3]; + }; + +Because ``varying`` types have different sizes on different processor +architectures, ``ispc`` prohibits any varying types from being used in +parameters to functions with the ``export`` qualifier. (``ispc`` also +prohibits passing structures that themselves have varying types as members, +etc.) Thus, all datatypes that is shared with the application must have +the ``uniform`` qualifier applied to them. (See `Understanding How to +Interoperate With the Application's Data`_ for more discussion of how to +load vectors of SoA or AoSoA data from the application.) + +While ``ispc`` doesn't support pointers, there are two mechanisms to work +with pointers to arrays from the application. First, ``ispc`` passes +arrays by reference (like C), if the application has allocated an array by: + +:: + + // C++ code + float *array = new float[count]; + +It can pass ``array`` to a ``ispc`` function defined as: + +:: + + export void foo(uniform float array[], uniform int count) + +(Though the pointer must be aligned to the compilation target's natural +vector width; see the discussion of alignment restrictions in `Data +Alignment and Aliasing`_ and the aligned allocation routines in +``examples/options/options.cpp`` for example.) + +Similarly, ``struct`` s from the application can have embedded pointers. +This is handled with similar ``[]`` syntax: + +:: + + // C code + struct Foo { + float *foo, *bar; + }; + +On the ``ispc`` side, the corresponding ``struct`` declaration is: + +:: + + // ispc + struct Foo { + uniform float foo[], bar[]; + }; + +There are two subtleties related to data layout to be aware of. First, the +C++ specification doesn't define the size or memory layout of ``bool`` s. +Therefore, it's dangerous to share ``bool`` values in memory between +``ispc`` code and C/C++ code. + +Second, ``ispc`` stores ``uniform`` short-vector types in memory with their +first element at the machine's natural vector alignment (i.e. 16 bytes for +a target that is using Intel® SSE, and so forth.) This implies that these +types will have different layout on different compilation targets. As +such, applications should in general avoid accessing ``uniform`` short +vector types from C/C++ application code if possible. + +Data Alignment and Aliasing +--------------------------- + +There are two important constraints that must be adhered to when passing +pointers from the application to ``ispc`` programs. + +The first constraint is alignment: any pointers from the host program that +are passed to ``ispc`` must be aligned to natural vector alignment of +system--for example, 16 byte alignment on a target that supports Intel® +SSE, 32-byte on an Intel® AVX target. If this constraint isn't met, the +program may abort at runtime with an unaligned memory access error. + +For example, in a ``ispc`` function with the following declaration: + +:: + + export void foo(uniform float in[], uniform float out[], + int count); + +If the application is passing stack-allocated arrays for ``in`` and +``out``, these C/C++ compiler must be told to align these arrays. + +:: + + // MSVC, SSE target + __declspec(align(16)) float in[16], out[16]; + foo(in, out, 16); + +With the gcc/clang compilers, the syntax for providing alignment is +slightly different: + +:: + + float x[16] __attribute__ ((__align__(16))); + foo(in, out, 16); + +If the data being passed is dynamically allocated, the appropriate system +aligned memory allocation routine should be used to allocate it (for +example, ``_aligned_malloc()`` with Windows\*, ``memalign()`` with +Linux\*; see the ``AllocAligned()`` function in ``examples/rt/rt.cpp`` for +an example.) + +It is also required that it be valid to read memory at the first element of +any array that is passed to ``ispc``. In practice, this should just +happen naturally, but it does mean that it is illegal to pass a ``NULL`` +pointer as a parameter to a ``ispc`` function called from the application. + +The second key constraint is that pointers and references in ``ispc`` +programs must not alias. The ``ispc`` compiler assumes that different +pointers can't end up pointing to the same memory location, either due to +having the same initial value, or through array indexing in the program as +it executed. + +This aliasing constraint also applies to ``reference`` parameters to +functions. Given a function like: + +:: + + void func(reference int a, reference int b) { + a = 0; + if (b == 0) { ... } + } + +Then if the same variable must not be passed to ``func()``. This is +another case of aliasing, and if the caller calls the function as ``func(x, +x)``, it's not guaranteed that the ``if`` test will evaluate to true, due +to the compiler's requirement of no aliasing. + +(In the future, ``ispc`` will have the ability to work with unaligned +memory as well as have a mechanism to indicate that pointers may alias.) + +Using ISPC Effectively +====================== + +Restructuring Existing Programs to Use ISPC +------------------------------------------- + +``ispc`` is designed to enable you to incorporate +SPMD parallelism into existing code with minimal modification; features +like the ability to share memory and data structures betwen C/C++ and +``ispc`` code and the ability to directly call back and forth between +``ispc`` and C/C++ are motivated by this. These features also make it +easy to incrementally transform a program to use ``ispc``; the most +computationally-intensive localized parts of the computation can be +transformed into ``ispc`` code while the remainder of the system is left +as is. + +For a given section of code to be transitioned to run in ``ispc``, the +next question is how to parallelize the computation. Generally, there will +be obvious loops inside which a large amount of computation is done ("for +each ray", "for each pixel", etc.) Mapping these to the SPMD computational +style is often effective. + +Carefully choose how to do the exact mapping of computation to SPMD program +instances. This choice can impact the mix of gather/scatter memory access +versus coherent memory access, for example. (See more on this in the +section `Gather and Scatter`_ below.) This decision can also impact the +coherence of control flow across the running SPMD program instances, which +can also have a significant effect on performance; in general, creating +groups of work that will tend to do similar computation across the SPMD +program instances improves performance. + +Understanding How to Interoperate With the Application's Data +------------------------------------------------------------- + +One of ``ispc``'s key goals is to be able to interoperate with the +application's data, in whatever layout it is stored in. You don't need to +worry about reformatting of data or the overhead of a driver model that +abstracts the data layout. This section illustrates some of the +alternatives with a simple example of computing the length of a large +number of vectors. + +Consider for starters a ``Vector`` data-type, defined in C as: + +:: + + struct Vector { float x, y, z; }; + +We might have (still in C) an array of ``Vector`` s defined like this: + +:: + + Vector vectors[1024]; + +This is called an "array of structures" (AoS) layout. To compute the +lengths of these vectors in parallel, you can write ``ispc`` code like +this: + +:: + + export void length(Vector vectors[1024], uniform float len[]) { + for (uniform int i = 0; i < 1024; i += programCount) { + int index = i+programIndex; + float x = vectors[index].x; + float y = vectors[index].y; + float z = vectors[index].z; + float l = sqrt(x*x + y*y + z*z); + len[index] = l; + } + } + +The ``vectors`` array has been indexed using ``programIndex`` in +order to "peel off" ``programCount`` worth of values to compute the length +of each time through the loop. + +The problem with this implementation is that the indexing into the array of +structures, ``vectors[index].x`` is relatively expensive. On a target +machine that supports four-wide Intel® SSE, this turns into four loads of +single ``float`` values from non-contiguous memory locations, which are +then packed into a four-wide register corresponding to ``float x``. Once the +values are loaded into the local ``x``, ``y``, and ``z`` variables, +SIMD-efficient computation can proceed; getting to that point is +relatively inefficient. + +An alternative would be the "structure of arrays" (SoA) layout. In C, the +data would be declared as: + +:: + + float x[1024], y[1024], z[1024]; + +The ``ispc`` code might be: + +:: + + export void length(uniform float x[1024], uniform float y[1024], + uniform float z[1024], uniform float len[]) { + for (uniform int i = 0; i < 1024; i += programCount) { + int index = i+programIndex; + float xx = x[index]; + float yy = y[index]; + float zz = z[index]; + float l = sqrt(xx*xx + yy*yy + zz*zz); + len[index] = l; + } + } + +In this example, the loads into ``xx``, ``yy``, and ``zz`` are single +vector loads of ``programCount`` values into the corresponding registers. +This processing is more efficient than the multiple scalar loads that are +required with the AoS layout above. + +A final alternative is "array of structures of arrays" (AoSoA), a hybrid +between these two. A structure is declared that stores a small number of +``x``, ``y``, and ``z`` values in contiguous memory locations: + +:: + + struct Vector16 { + float x[16], y[16], z[16]; + }; + + +The ``ispc`` code has an outer loop over ``Vector16`` elements and +then an inner loop that peels off values from the element members: + +:: + + #define N_VEC (1024/16) + export void length(Vector16 v[N_VEC], uniform float len[]) { + for (uniform int i = 0; i < N_VEC; ++i) { + for (uniform int j = 0; j < 16; j += programCount) { + int index = j + programIndex; + float x = v[i].x[index]; + float y = v[i].y[index]; + float z = v[i].z[index]; + float l = sqrt(x*x + y*y + z*z); + len[index] = l; + } + } + } + +(This code assumes that ``programCount`` divides 16 equally. See below for +discussion of the more general case.) One advantage of the AoSoA layout is +that the memory accesses to load values are to nearby memory locations, +where as with SoA, each of the three loads above is to locations separated +by a few thousand bytes. Thus, AoSoA can be more cache friendly. For +structures with many members, this difference can lead to a substantial +improvement. + +``ispc`` can also efficiently process data in AoSoA layout where the inner +array length is less than the machine vector width. For example, consider +doing computation with this AoSoA structure definition on a machine with an +8-wide vector unit (for example, an Intel® AVX target): + +:: + + struct Vector4 { + float x[4], y[4], z[4]; + }; + + +The ``ispc`` code to process this loads elements four at a time from +``Vector4`` instances until it has a full ``programCount`` number of +elements to work with and then proceeds with the computation. + +:: + + #define N_VEC (1024/4) + export void length(Vector4 v[N_VEC], uniform float len[]) { + for (uniform int i = 0; i < N_VEC; i += programCount / 4) { + float x, y, z; + for (uniform int j = 0; j < programCount / 4; ++j) { + if (programIndex >= 4 * j && + programIndex < 4 * (j+1)) { + int index = (programIndex & 0x3); + x = v[i+j].x[index]; + y = v[i+j].y[index]; + z = v[i+j].z[index]; + } + } + float l = sqrt(x*x + y*y + z*z); + len[4*i + programIndex] = l; + } + } + + +Communicating Between SPMD Program Instances +-------------------------------------------- + +The ``programIndex`` built-in variable (see `Mapping Data To Program +Instances`_) can be used to communicate between the set of executing +program instances. Consider the following code, which shows all of the +program instances writing into unique locations in an array. + +:: + + float x = ...; + uniform float allX[programCount]; + allX[programIndex] = x; + +In this code, a program instance that reads ``allX[0]`` finds the value of +``x`` that was computed by the first of the running program instances, and +so forth. Program instances can communicate with their neighbor instances +with indexing like ``allX[(programIndex+1)%programCount]``. + + +Gather and Scatter +------------------ + +The CPU is a poor fit for SPMD execution in some ways, the worst of which +is handling of general memory reads and writes from SPMD program instances. +For example, in a "simple" array index: + +:: + + int i = ....; + uniform float x[10] = { ... }; + float f = x[i]; + +Since the index ``i`` is a varying value, the various SPMD program +instances will in general be reading different locations in the array +``x``. Because the CPU doesn't have a gather instruction, the ``ispc`` +compiler has to serialize these memory reads, performing a separate memory +load for each running program instance, packing the result into ``f``. +(And the analogous case would happen for a write into ``x[i]``.) + +In many cases, gathers like these are unavoidable; the running program +instances just need to access incoherent memory locations. However, if the +array index ``i`` could actually be declared and used as a ``uniform`` +variable, the resulting array index is substantially more +efficient. This is another case where using ``uniform`` whenever applicable +is of benefit. + +In some cases, the ``ispc`` compiler is able to deduce that the memory +locations accessed are either all the same or are uniform. For example, +given: + +:: + + uniform int x = ...; + int y = x; + return array[y]; + +The compiler is able to determine that all of the program instances are +loading from the same location, even though ``y`` is not a ``uniform`` +variable. In this case, the compiler will transform this load to a regular vector +load, rather than a general gather. + +Sometimes the running program instances will access a +linear sequence of memory locations; this happens most frequently when +array indexing is done based on the built-in ``programIndex`` variable. In +many of these cases, the compiler is also able to detect this case and then +do a vector load. For example, given: + +:: + + uniform int x = ...; + return array[2*x + programIndex]; + +A regular vector load is done from array, starting at offset ``2*x``. + +Low-level Vector Tricks +----------------------- + +Many low-level Intel® SSE coding constructs can be implemented in ``ispc`` +code. For example, the following code efficiently reverses the sign of the +given values. + +:: + + float flipsign(float a) { + unsigned int i = intbits(a); + i ^= 0x80000000; + return floatbits(i); + } + +This code compiles down to a single XOR instruction. + +Debugging +--------- + +Support for debugging in ``ispc`` is in progress. On Linux\* and Mac +OS\*, the ``-g`` command-line flag can be supplied to the compiler, +which causes it to generate debugging symbols. Running ``ispc`` programs +in the debugger, setting breakpoints, printing out variables and the like +all generally works, though there is occasional unexpected behavior. + +Another option for debugging (the only current option on Windows\*) is +to use the ``print`` statement for ``printf()`` +style debugging. You can also use the ability to call back to +application code at particular points in the program, passing a set of +variable values to be logged or otherwise analyzed from there. + +The "Fast math" Option +---------------------- + +``ispc`` has a ``--fast-math`` command-line flag that enables a number of +optimizations that may be undesirable in code where numerical preceision is +critically important. For many graphics applications, the +approximations may be acceptable. The following two optimizations are +performed when ``--fast-math`` is used. By default, the ``--fast-math`` +flag is off. + +* Expressions like ``x / y``, where ``y`` is a compile-time constant, are + transformed to ``x * (1./y)``, where the inverse value of ``y`` is + precomputed at compile time. + +* Expressions like ``x / y``, where ``y`` is not a compile-time constant, + are transformed to ``x * rcp(y)``, where ``rcp()`` maps to the + approximate reciprocal instruction from the standard library. + + +"Inline" Aggressively +--------------------- + +Inlining functions aggressively is generally beneficial for performance +with ``ispc``. Definitely use the ``inline`` qualifier for any short +functions (a few lines long), and experiment with it for longer functions. + +Small Performance Tricks +------------------------ + +Performance is slightly improved by declaring variables at the same block +scope where they are first used. For example, in code like the +following, if the lifetime of ``foo`` is only within the scope of the +``if`` clause, write the code like this: + +:: + + float func() { + .... + if (x < y) { + float foo; + ... use foo ... + } + } + +Try not to write code as: + +:: + + float func() { + float foo; + .... + if (x < y) { + ... use foo ... + } + } + +Doing so can reduce the amount of masked store instructions that the +compiler needs to generate. + +Instrumenting Your ISPC Programs +-------------------------------- + +``ispc`` has an optional instrumentation feature that can help you +understand performance issues. If a program is compiled using the +``--instrument`` flag, the compiler emits calls to a function with the +following signature at various points in the program (for +example, at interesting points in the control flow, when scatters or +gathers happen.) + +:: + + extern "C" { + void ISPCInstrument(const char *fn, const char *note, + int line, int mask); + } + +This function is passed the file name of the ``ispc`` file running, a short +note indicating what is happening, the line number in the source file, and +the current mask of active SPMD program lanes. You must provide an +implementation of this function and link it in with your application. + +For example, when the ``ispc`` program runs, this function might be called +as follows: + +:: + + ISPCInstrument("foo.ispc", "function entry", 55, 0xf); + +This call indicates that at the currently executing program has just +entered the function defined at line 55 of the file ``foo.ispc``, with a +mask of all lanes currently executing (assuming a four-wide Intel® SSE +target machine). + +For a fuller example of the utility of this functionality, see +``examples/aobench_instrumented`` in the ``ispc`` distribution. Ths +example includes an implementation of the ``ISPCInstrument`` function that +collects aggregate data about the program's execution behavior. + +When running this example, you will want to direct to the ``ao`` executable +to generate a low resolution image, because the instrumentation adds +substantial execution overhead. For example: + +:: + + % ./ao 1 32 32 + +After the ``ao`` program exits, a summary report along the following lines +will be printed. In the first few lines, you can see how many times a few +functions were called, and the average percentage of SIMD lanes that were +active upon function entry. + +:: + + ao.ispc(0067) - function entry: 342424 calls (0 / 0.00% all off!), 95.86% active lanes + ao.ispc(0067) - return: uniform control flow: 342424 calls (0 / 0.00% all off!), 95.86% active lanes + ao.ispc(0071) - function entry: 1122 calls (0 / 0.00% all off!), 97.33% active lanes + ao.ispc(0075) - return: uniform control flow: 1122 calls (0 / 0.00% all off!), 97.33% active lanes + ao.ispc(0079) - function entry: 10072 calls (0 / 0.00% all off!), 45.09% active lanes + ao.ispc(0088) - function entry: 36928 calls (0 / 0.00% all off!), 97.40% active lanes + ... + +Disclaimer and Legal Information +================================ + +INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS. +NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL +PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS +AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, +AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE +OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A +PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT +OR OTHER INTELLECTUAL PROPERTY RIGHT. + +UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED +NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD +CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR. + +Intel may make changes to specifications and product descriptions at any time, +without notice. Designers must not rely on the absence or characteristics of any +features or instructions marked "reserved" or "undefined." Intel reserves these +for future definition and shall have no responsibility whatsoever for conflicts +or incompatibilities arising from future changes to them. The information here +is subject to change without notice. Do not finalize a design with this +information. + +The products described in this document may contain design defects or errors +known as errata which may cause the product to deviate from published +specifications. Current characterized errata are available on request. + +Contact your local Intel sales office or your distributor to obtain the latest +specifications and before placing your product order. + +Copies of documents which have an order number and are referenced in this +document, or other Intel literature, may be obtained by calling 1-800-548-4725, +or by visiting Intel's Web Site. + +Intel processor numbers are not a measure of performance. Processor numbers +differentiate features within each processor family, not across different +processor families. See http://www.intel.com/products/processor_number for +details. + +BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Atom, +Centrino Atom Inside, Centrino Inside, Centrino logo, Core Inside, FlashFile, +i960, InstantIP, Intel, Intel logo, Intel386, Intel486, IntelDX2, IntelDX4, +IntelSX2, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, +Intel Inside logo, Intel. Leap ahead., Intel. Leap ahead. logo, Intel NetBurst, +Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, +Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, Itanium, +Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside, +skoool, Sound Mark, The Journey Inside, Viiv Inside, vPro Inside, VTune, Xeon, +and Xeon Inside are trademarks of Intel Corporation in the U.S. and other +countries. + +* Other names and brands may be claimed as the property of others. + +Copyright(C) 2011, Intel Corporation. All rights reserved. + + +Optimization Notice +=================== + +Intel compilers, associated libraries and associated development tools may +include or utilize options that optimize for instruction sets that are +available in both Intel and non-Intel microprocessors (for example SIMD +instruction sets), but do not optimize equally for non-Intel +microprocessors. In addition, certain compiler options for Intel +compilers, including some that are not specific to Intel +micro-architecture, are reserved for Intel microprocessors. For a detailed +description of Intel compiler options, including the instruction sets and +specific microprocessors they implicate, please refer to the "Intel +Compiler User and Reference Guides" under "Compiler Options." Many library +routines that are part of Intel compiler products are more highly optimized +for Intel microprocessors than for other microprocessors. While the +compilers and libraries in Intel compiler products offer optimizations for +both Intel and Intel-compatible microprocessors, depending on the options +you select, your code and other factors, you likely will get extra +performance on Intel microprocessors. + +Intel compilers, associated libraries and associated development tools may +or may not optimize to the same degree for non-Intel microprocessors for +optimizations that are not unique to Intel microprocessors. These +optimizations include Intel® Streaming SIMD Extensions 2 (Intel® SSE2), +Intel® Streaming SIMD Extensions 3 (Intel® SSE3), and Supplemental +Streaming SIMD Extensions 3 (Intel SSSE3) instruction sets and other +optimizations. Intel does not guarantee the availability, functionality, +or effectiveness of any optimization on microprocessors not manufactured by +Intel. Microprocessor-dependent optimizations in this product are intended +for use with Intel microprocessors. + +While Intel believes our compilers and libraries are excellent choices to +assist in obtaining the best performance on Intel and non-Intel +microprocessors, Intel recommends that you evaluate other compilers and +libraries to determine which best meet your requirements. We hope to win +your business by striving to offer the best performance of any compiler or +library; please let us know if you find we do not. diff --git a/doxygen.cfg b/doxygen.cfg new file mode 100644 index 00000000..9f79b909 --- /dev/null +++ b/doxygen.cfg @@ -0,0 +1,1685 @@ +# Doxyfile 1.7.2 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" "). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "Intel SPMD Program Compiler" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1.0 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = docs/doxygen + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this +# tag. The format is ext=language, where ext is a file extension, and language +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will roughly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. The create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = NO + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = builtins.h \ + ctx.h \ + decl.h \ + expr.h \ + gatherbuf.h \ + ispc.h \ + llvmutil.h \ + module.h \ + opt.h \ + stmt.h \ + sym.h \ + type.h \ + util.h \ + builtins.cpp \ + ctx.cpp \ + decl.cpp \ + expr.cpp \ + gatherbuf.cpp \ + ispc.cpp \ + llvmutil.cpp \ + main.cpp \ + module.cpp \ + opt.cpp \ + stmt.cpp \ + sym.cpp \ + type.cpp \ + util.cpp \ + parse.yy \ + lex.ll \ + stdlib-c.c + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py +# *.f90 *.f *.vhd *.vhdl + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = ./examples + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = YES + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = NO + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 4 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the stylesheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [0,1..20]) +# that doxygen will group on one line in the generated HTML documentation. +# Note that a value of 0 will completely suppress the enum values from appearing in the overview section. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax +# (see http://www.mathjax.org) which uses client side Javascript for the +# rendering instead of using prerendered bitmaps. Use this if you do not +# have LaTeX installed or if you want to formulas look prettier in the HTML +# output. When enabled you also need to install MathJax separately and +# configure the path to it using the MATHJAX_RELPATH option. + +USE_MATHJAX = NO + +# When MathJax is enabled you need to specify the location relative to the +# HTML output directory using the MATHJAX_RELPATH option. The destination +# directory should contain the MathJax.js script. For instance, if the mathjax +# directory is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing +# MathJax, but it is strongly recommended to install a local copy of MathJax +# before deployment. + +MATHJAX_RELPATH = http://www.mathjax.org/mathjax + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = NO + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a PHP enabled web server instead of at the web client +# using Javascript. Doxygen will generate the search PHP script and index +# file to put on the web server. The advantage of the server +# based approach is that it scales better to large projects and allows +# full text search. The disadvantages are that it is more difficult to setup +# and does not have live searching capabilities. + +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = letter + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = /usr/include + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = YES + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option also works with HAVE_DOT disabled, but it is recommended to +# install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = NO + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = FreeSans + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will generate a graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif. +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = /usr/local/bin/dot + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the +# \mscfile command). + +MSCFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = YES + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/examples/README.txt b/examples/README.txt new file mode 100644 index 00000000..7ef078db --- /dev/null +++ b/examples/README.txt @@ -0,0 +1,88 @@ +==================== +ISPC Examples README +==================== + +This directory has a number of sample ispc programs. Before building them +(on an system), install the appropriate ispc compiler binary into a +directory in your path. Then, if you're running Windows, open the +"examples.sln" file and built from there. For building under Linux/OSX, +there are makefiles in each directory that build the examples individually. + +Almost all of them benchmark ispc implementations of the given computation +against regular serial C++ implementations, printing out a comparison of +the runtimes and the speedup delivered by ispc. It may be instructive to +do a side-by-side diff of the C++ and ispc implementations of these +algorithms to learn more about wirting ispc code. + +AOBench +======= + +This is an ISPC implementation of the "AO bench" benchmark +(http://syoyo.wordpress.com/2009/01/26/ao-bench-is-evolving/). The command +line arguments are: + +ao (num iterations) (x res) (yres) + +It executes the program for the given number of iterations, rendering an +(xres x yres) image each time and measuring the computation time with both +serial and ispc implementations. + +AOBench_Instrumented +==================== + +This version of AO Bench is compiled with the --instrument ispc compiler +flag. This causes the compiler to emit calls to a (user-supplied) +ISPCInstrument() function at interesting places in the compiled code. An +example implementation of this function that counts the number of times the +callback is made and records some statistics about control flow coherence +is provided in the instrument.cpp file. + +*** Note: on Linux, this example currently hits an assertion in LLVM during +*** compilation + +Mandelbrot +========== + +Mandelbrot set generation. This example is extensively documented at the +http://ispc.github.com/example.html page. + +Mandelbrot_tasks +================ + +Implementation of Mandelbrot set generation that also parallelizes across +cores using tasks. Under Windows, a simple task system built on +Microsoft's Concurrency Runtime is used (see tasks_concrt.cpp). On OSX, a +task system based on Grand Central Dispatch is used (tasks_gcd.cpp), and on +Linux, a pthreads-based task system is used (tasks_pthreads.cpp). When +using tasks with ispc, no task system is mandated; the user is free to plug +in any task system they want, for ease of interoperating with existing task +systems. + +Options +======= + +This program implements both the Black-Scholes and Binomial options pricing +models in both ispc and regular serial C++ code. + +RT +== + +This is a simple ray tracer; it reads in camera parameters and a bounding +volume hierarchy and renders the scene from the given viewpoint. The +command line arguments are: + +rt + +Where is one of "cornell", "teapot", or "sponza". + +The implementation originally derives from the bounding volume hierarchy +and triangle intersection code from pbrt; see the pbrt source code and/or +"Physically Based Rendering" book for more about the basic algorithmic +details. + +Simple +====== + +This is a simple "hello world" type program that shows a ~10 line +application program calling out to a ~5 line ispc program to do a simple +computation. diff --git a/examples/aobench/Makefile b/examples/aobench/Makefile new file mode 100644 index 00000000..8674f7bb --- /dev/null +++ b/examples/aobench/Makefile @@ -0,0 +1,26 @@ + +CXX=g++ +CXXFLAGS=-Iobjs/ -O3 -Wall +ISPC=ispc +ISPCFLAGS=-O2 --fast-math + +default: ao + +.PHONY: dirs clean + +dirs: + /bin/mkdir -p objs/ + +clean: + /bin/rm -rf objs *~ ao + +ao: dirs objs/ao.o objs/ao_serial.o objs/ao_ispc.o + $(CXX) $(CXXFLAGS) -o $@ objs/ao.o objs/ao_ispc.o objs/ao_serial.o -lm -lpthread + +objs/%.o: %.cpp + $(CXX) $< $(CXXFLAGS) -c -o $@ + +objs/ao.o: objs/ao_ispc.h + +objs/%_ispc.h objs/%_ispc.o: %.ispc + $(ISPC) $(ISPCFLAGS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h diff --git a/examples/aobench/ao.cpp b/examples/aobench/ao.cpp new file mode 100644 index 00000000..1a2eefe5 --- /dev/null +++ b/examples/aobench/ao.cpp @@ -0,0 +1,182 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#define NOMINMAX +#pragma warning (disable: 4244) +#pragma warning (disable: 4305) +#endif + +#include +#include +#include +#include +#ifdef __linux__ +#include +#endif +#include +#include +#include +#include +#include + +#include "ao_ispc.h" +using namespace ispc; + +#include "../timing.h" + +#define NSUBSAMPLES 2 + +extern void ao_serial(int w, int h, int nsubsamples, float image[]); + +static unsigned int test_iterations; +static unsigned int width, height; +static unsigned char *img; +static float *fimg; + + +static unsigned char +clamp(float f) +{ + int i = (int)(f * 255.5); + + if (i < 0) i = 0; + if (i > 255) i = 255; + + return (unsigned char)i; +} + + +static void +savePPM(const char *fname, int w, int h) +{ + for (int y = 0; y < h; y++) { + for (int x = 0; x < w; x++) { + img[3 * (y * w + x) + 0] = clamp(fimg[3 *(y * w + x) + 0]); + img[3 * (y * w + x) + 1] = clamp(fimg[3 *(y * w + x) + 1]); + img[3 * (y * w + x) + 2] = clamp(fimg[3 *(y * w + x) + 2]); + } + } + + FILE *fp = fopen(fname, "wb"); + if (!fp) { + perror(fname); + exit(1); + } + + fprintf(fp, "P6\n"); + fprintf(fp, "%d %d\n", w, h); + fprintf(fp, "255\n"); + fwrite(img, w * h * 3, 1, fp); + fclose(fp); +} + + +// Allocate memory with 64-byte alignment. +float * +AllocAligned(int size) { +#if defined(_WIN32) || defined(_WIN64) + return (float *)_aligned_malloc(size, 64); +#elif defined (__APPLE__) + // Allocate excess memory to ensure an aligned pointer can be returned + void *mem = malloc(size + (64-1) + sizeof(void*)); + char *amem = ((char*)mem) + sizeof(void*); + amem += 64 - (reinterpret_cast(amem) & (64 - 1)); + ((void**)amem)[-1] = mem; + return (float *)amem; +#else + return (float *)memalign(64, size); +#endif +} + + +int main(int argc, char **argv) +{ + if (argc != 4) { + printf ("%s\n", argv[0]); + printf ("Usage: ao [num test iterations] [width] [height]\n"); + getchar(); + exit(-1); + } + else { + test_iterations = atoi(argv[1]); + width = atoi (argv[2]); + height = atoi (argv[3]); + } + + // Allocate space for output images + img = (unsigned char *)AllocAligned(width * height * 3); + fimg = (float *)AllocAligned(sizeof(float) * width * height * 3); + + // + // Run the ispc path, test_iterations times, and report the minimum + // time for any of them. + // + double minTimeISPC = 1e30; + for (unsigned int i = 0; i < test_iterations; i++) { + memset((void *)fimg, 0, sizeof(float) * width * height * 3); + assert(NSUBSAMPLES == 2); + + reset_and_start_timer(); + ao_ispc(width, height, NSUBSAMPLES, fimg); + double t = get_elapsed_mcycles(); + minTimeISPC = std::min(minTimeISPC, t); + } + + // Report results and save image + printf("[aobench ispc]:\t\t\t[%.3f] M cycles (%d x %d image)\n", minTimeISPC, + width, height); + savePPM("ao-ispc.ppm", width, height); + + // + // Run the serial path, again test_iteration times, and report the + // minimum time. + // + double minTimeSerial = 1e30; + for (unsigned int i = 0; i < test_iterations; i++) { + memset((void *)fimg, 0, sizeof(float) * width * height * 3); + reset_and_start_timer(); + ao_serial(width, height, NSUBSAMPLES, fimg); + double t = get_elapsed_mcycles(); + minTimeSerial = std::min(minTimeSerial, t); + } + + // Report more results, save another image... + printf("[aobench serial]:\t\t[%.3f] M cycles (%d x %d image)\n", minTimeSerial, + width, height); + printf("\t\t\t\t(%.2fx speedup from ISPC)\n", minTimeSerial / minTimeISPC); + savePPM("ao-serial.ppm", width, height); + + return 0; +} diff --git a/examples/aobench/ao.ispc b/examples/aobench/ao.ispc new file mode 100644 index 00000000..192e0666 --- /dev/null +++ b/examples/aobench/ao.ispc @@ -0,0 +1,317 @@ +// -*- mode: c++ -*- +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/* + Based on Syoyo Fujita's aobench: http://code.google.com/p/aobench +*/ + +#define NAO_SAMPLES 8 +#define M_PI 3.1415926535f + +typedef float<3> vec; + +struct Isect { + float t; + vec p; + vec n; + int hit; +}; + +struct Sphere { + vec center; + float radius; + +}; + +struct Plane { + vec p; + vec n; +}; + +struct Ray { + vec org; + vec dir; +}; + +static inline float dot(vec a, vec b) { + return a.x * b.x + a.y * b.y + a.z * b.z; +} + +static inline vec vcross(vec v0, vec v1) { + vec ret; + ret.x = v0.y * v1.z - v0.z * v1.y; + ret.y = v0.z * v1.x - v0.x * v1.z; + ret.z = v0.x * v1.y - v0.y * v1.x; + return ret; +} + +static inline void vnormalize(reference vec v) { + float len2 = dot(v, v); + float invlen = rsqrt(len2); + v *= invlen; +} + + +static inline void +ray_plane_intersect(reference Isect isect, reference Ray ray, + reference Plane plane) { + float d = -dot(plane.p, plane.n); + float v = dot(ray.dir, plane.n); + + cif (abs(v) < 1.0e-17) + return; + else { + float t = -(dot(ray.org, plane.n) + d) / v; + + cif ((t > 0.0) && (t < isect.t)) { + isect.t = t; + isect.hit = 1; + isect.p = ray.org + ray.dir * t; + isect.n = plane.n; + } + } +} + + +static inline void +ray_sphere_intersect(reference Isect isect, reference Ray ray, + reference Sphere sphere) { + vec rs = ray.org - sphere.center; + + float B = dot(rs, ray.dir); + float C = dot(rs, rs) - sphere.radius * sphere.radius; + float D = B * B - C; + + cif (D > 0.) { + float t = -B - sqrt(D); + + cif ((t > 0.0) && (t < isect.t)) { + isect.t = t; + isect.hit = 1; + isect.p = ray.org + t * ray.dir; + isect.n = isect.p - sphere.center; + vnormalize(isect.n); + } + } +} + + +static inline void +orthoBasis(reference vec basis[3], vec n) { + basis[2] = n; + basis[1].x = 0.0; basis[1].y = 0.0; basis[1].z = 0.0; + + if ((n.x < 0.6) && (n.x > -0.6)) { + basis[1].x = 1.0; + } else if ((n.y < 0.6) && (n.y > -0.6)) { + basis[1].y = 1.0; + } else if ((n.z < 0.6) && (n.z > -0.6)) { + basis[1].z = 1.0; + } else { + basis[1].x = 1.0; + } + + basis[0] = vcross(basis[1], basis[2]); + vnormalize(basis[0]); + + basis[1] = vcross(basis[2], basis[0]); + vnormalize(basis[1]); +} + + +static inline float +ambient_occlusion(reference Isect isect, reference Plane plane, + reference Sphere spheres[3], reference RNGState rngstate) { + float eps = 0.0001f; + vec p, n; + vec basis[3]; + float occlusion = 0.0; + + p = isect.p + eps * isect.n; + + orthoBasis(basis, isect.n); + + static const uniform int ntheta = NAO_SAMPLES; + static const uniform int nphi = NAO_SAMPLES; + for (uniform int j = 0; j < ntheta; j++) { + for (uniform int i = 0; i < nphi; i++) { + Ray ray; + Isect occIsect; + + float theta = sqrt(frandom(rngstate)); + float phi = 2.0f * M_PI * frandom(rngstate); + float x = cos(phi) * theta; + float y = sin(phi) * theta; + float z = sqrt(1.0 - theta * theta); + + // local . global + float rx = x * basis[0].x + y * basis[1].x + z * basis[2].x; + float ry = x * basis[0].y + y * basis[1].y + z * basis[2].y; + float rz = x * basis[0].z + y * basis[1].z + z * basis[2].z; + + ray.org = p; + ray.dir.x = rx; + ray.dir.y = ry; + ray.dir.z = rz; + + occIsect.t = 1.0e+17; + occIsect.hit = 0; + + for (uniform int snum = 0; snum < 3; ++snum) + ray_sphere_intersect(occIsect, ray, spheres[snum]); + ray_plane_intersect (occIsect, ray, plane); + + if (occIsect.hit) occlusion += 1.0; + } + } + + occlusion = (ntheta * nphi - occlusion) / (float)(ntheta * nphi); + return occlusion; +} + + +/* Compute the image for the scanlines from [y0,y1), for an overall image + of width w and height h. + */ +void ao_scanlines(uniform int y0, uniform int y1, uniform int w, uniform int h, + uniform int nsubsamples, reference uniform float image[]) { + static Plane plane = { { 0.0f, -0.5f, 0.0f }, { 0.f, 1.f, 0.f } }; + static Sphere spheres[3] = { + { { -2.0f, 0.0f, -3.5f }, 0.5f }, + { { -0.5f, 0.0f, -3.0f }, 0.5f }, + { { 1.0f, 0.0f, -2.2f }, 0.5f } }; + RNGState rngstate; + + seed_rng(rngstate, y0); + + // Compute the mapping between the 'programCount'-wide program + // instances running in parallel and samples in the image. + // + // For now, we'll always take four samples per pixel, so start by + // initializing du and dv with offsets into subpixel samples. We'll + // take care of further updating du and dv for the case where we're + // doing more than 4 program instances in parallel shortly. + uniform float uSteps[4] = { 0, 1, 0, 1 }; + uniform float vSteps[4] = { 0, 0, 1, 1 }; + float du = uSteps[programIndex % 4] / nsubsamples; + float dv = vSteps[programIndex % 4] / nsubsamples; + + // Now handle the case where we are able to do more than one pixel's + // worth of work at once. nx records the number of pixels in the x + // direction we do per iteration and ny the number in y. + uniform int nx = 1, ny = 1; + + if (programCount == 8) { + // Do two pixels at once in the x direction + nx = 2; + if (programIndex >= 4) + // And shift the offsets for the second pixel's worth of work + ++du; + } + else if (programCount == 16) { + // Two at once in both x and y + nx = ny = 2; + if ((programIndex >= 4 && programIndex < 8) || programIndex >= 12) + ++du; + if (programIndex >= 8) + ++dv; + } + + // Now loop over all of the pixels, stepping in x and y as calculated + // above. (Assumes that ny divides y and nx divides x...) + for (uniform int y = y0; y < y1; y += ny) { + for (uniform int x = 0; x < w; x += nx) { + // Figur out x,y pixel in NDC + float px = (x + du - (w / 2.0f)) / (w / 2.0f); + float py = -(y + dv - (h / 2.0f)) / (h / 2.0f); + float ret = 0.f; + Ray ray; + Isect isect; + + ray.org = 0.f; + + // Poor man's perspective projection + ray.dir.x = px; + ray.dir.y = py; + ray.dir.z = -1.0; + vnormalize(ray.dir); + + isect.t = 1.0e+17; + isect.hit = 0; + + for (uniform int snum = 0; snum < 3; ++snum) + ray_sphere_intersect(isect, ray, spheres[snum]); + ray_plane_intersect(isect, ray, plane); + + // Note use of 'coherent' if statement; the set of rays we + // trace will often all hit or all miss the scene + cif (isect.hit) + ret = ambient_occlusion(isect, plane, spheres, rngstate); + + // This is a little grungy; we have results for + // programCount-worth of values. Because we're doing 2x2 + // subsamples, we need to peel them off in groups of four, + // average the four values for each pixel, and update the + // output image. + // + // Store the varying value to a uniform array of the same size. + // See the discussion about communication among program + // instances in the ispc user's manual for more discussion on + // this idiom. + uniform float retArray[programCount]; + retArray[programIndex] = ret; + + // offset to the first pixel in the image + uniform int offset = 3 * (y * w + x); + for (uniform int p = 0; p < programCount; p += 4, ++offset) { + // Get the four sample values for this pixel + uniform float sumret = retArray[p] + retArray[p+1] + retArray[p+2] + + retArray[p+3]; + + // Normalize by number of samples taken + sumret /= nsubsamples * nsubsamples; + + // Store result in the image + image[offset+0] = sumret; + image[offset+1] = sumret; + image[offset+2] = sumret; + } + } + } +} + + +export void ao_ispc(uniform int w, uniform int h, uniform int nsubsamples, + uniform float image[]) { + ao_scanlines(0, h, w, h, nsubsamples, image); +} diff --git a/examples/aobench/ao_serial.cpp b/examples/aobench/ao_serial.cpp new file mode 100644 index 00000000..0b3e2b6d --- /dev/null +++ b/examples/aobench/ao_serial.cpp @@ -0,0 +1,314 @@ +// -*- mode: c++ -*- +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/* + Based on Syoyo Fujita's aobench: http://code.google.com/p/aobench +*/ + +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#define NOMINMAX +#pragma warning (disable: 4244) +#pragma warning (disable: 4305) +#endif + +#include +#include + +#ifdef _MSC_VER +static long long drand48_x = 0x1234ABCD330E; + +static inline void srand48(int x) { + drand48_x = x ^ (x << 16); +} + +static inline double drand48() { + drand48_x = drand48_x * 0x5DEECE66D + 0xB; + return (drand48_x & 0xFFFFFFFFFFFF) * (1.0 / 281474976710656.0); +} +#endif // _MSC_VER + +#ifdef _MSC_VER +__declspec(align(16)) +#endif +struct vec { + vec() { x=y=z=pad=0.; } + vec(float xx, float yy, float zz) { x = xx; y = yy; z = zz; } + + vec operator*(float f) const { return vec(x*f, y*f, z*f); } + vec operator+(const vec &f2) const { + return vec(x+f2.x, y+f2.y, z+f2.z); + } + vec operator-(const vec &f2) const { + return vec(x-f2.x, y-f2.y, z-f2.z); + } + vec operator*(const vec &f2) const { + return vec(x*f2.x, y*f2.y, z*f2.z); + } + float x, y, z; + float pad; +} +#ifndef _MSC_VER +__attribute__ ((aligned(16))) +#endif +; +inline vec operator*(float f, const vec &v) { return vec(f*v.x, f*v.y, f*v.z); } + + +#define NAO_SAMPLES 8 + +#ifdef M_PI +#undef M_PI +#endif +#define M_PI 3.1415926535f + +struct Isect { + float t; + vec p; + vec n; + int hit; +}; + +struct Sphere { + vec center; + float radius; + +}; + +struct Plane { + vec p; + vec n; +}; + +struct Ray { + vec org; + vec dir; +}; + +static inline float dot(const vec &a, const vec &b) { + return a.x * b.x + a.y * b.y + a.z * b.z; +} + +static inline vec vcross(const vec &v0, const vec &v1) { + vec ret; + ret.x = v0.y * v1.z - v0.z * v1.y; + ret.y = v0.z * v1.x - v0.x * v1.z; + ret.z = v0.x * v1.y - v0.y * v1.x; + return ret; +} + +static inline void vnormalize(vec &v) { + float len2 = dot(v, v); + float invlen = 1.f / sqrtf(len2); + v = v * invlen; +} + + +static inline void +ray_plane_intersect(Isect &isect, Ray &ray, + Plane &plane) { + float d = -dot(plane.p, plane.n); + float v = dot(ray.dir, plane.n); + + if (fabsf(v) < 1.0e-17) + return; + else { + float t = -(dot(ray.org, plane.n) + d) / v; + + if ((t > 0.0) && (t < isect.t)) { + isect.t = t; + isect.hit = 1; + isect.p = ray.org + ray.dir * t; + isect.n = plane.n; + } + } +} + + +static inline void +ray_sphere_intersect(Isect &isect, Ray &ray, + Sphere &sphere) { + vec rs = ray.org - sphere.center; + + float B = dot(rs, ray.dir); + float C = dot(rs, rs) - sphere.radius * sphere.radius; + float D = B * B - C; + + if (D > 0.) { + float t = -B - sqrtf(D); + + if ((t > 0.0) && (t < isect.t)) { + isect.t = t; + isect.hit = 1; + isect.p = ray.org + t * ray.dir; + isect.n = isect.p - sphere.center; + vnormalize(isect.n); + } + } +} + + +static inline void +orthoBasis(vec basis[3], const vec &n) { + basis[2] = n; + basis[1].x = 0.0; basis[1].y = 0.0; basis[1].z = 0.0; + + if ((n.x < 0.6) && (n.x > -0.6)) { + basis[1].x = 1.0; + } else if ((n.y < 0.6) && (n.y > -0.6)) { + basis[1].y = 1.0; + } else if ((n.z < 0.6) && (n.z > -0.6)) { + basis[1].z = 1.0; + } else { + basis[1].x = 1.0; + } + + basis[0] = vcross(basis[1], basis[2]); + vnormalize(basis[0]); + + basis[1] = vcross(basis[2], basis[0]); + vnormalize(basis[1]); +} + + +static float +ambient_occlusion(Isect &isect, Plane &plane, + Sphere spheres[3]) { + float eps = 0.0001f; + vec p, n; + vec basis[3]; + float occlusion = 0.0; + + p = isect.p + eps * isect.n; + + orthoBasis(basis, isect.n); + + static const int ntheta = NAO_SAMPLES; + static const int nphi = NAO_SAMPLES; + for (int j = 0; j < ntheta; j++) { + for (int i = 0; i < nphi; i++) { + Ray ray; + Isect occIsect; + + float theta = sqrtf(drand48()); + float phi = 2.0f * M_PI * drand48(); + float x = cosf(phi) * theta; + float y = sinf(phi) * theta; + float z = sqrtf(1.0 - theta * theta); + + // local . global + float rx = x * basis[0].x + y * basis[1].x + z * basis[2].x; + float ry = x * basis[0].y + y * basis[1].y + z * basis[2].y; + float rz = x * basis[0].z + y * basis[1].z + z * basis[2].z; + + ray.org = p; + ray.dir.x = rx; + ray.dir.y = ry; + ray.dir.z = rz; + + occIsect.t = 1.0e+17; + occIsect.hit = 0; + + for (int snum = 0; snum < 3; ++snum) + ray_sphere_intersect(occIsect, ray, spheres[snum]); + ray_plane_intersect (occIsect, ray, plane); + + if (occIsect.hit) occlusion += 1.0; + } + } + + occlusion = (ntheta * nphi - occlusion) / (float)(ntheta * nphi); + return occlusion; +} + + +/* Compute the image for the scanlines from [y0,y1), for an overall image + of width w and height h. + */ +static void ao_scanlines(int y0, int y1, int w, int h, int nsubsamples, + float image[]) { + static Plane plane = { vec(0.0f, -0.5f, 0.0f), vec(0.f, 1.f, 0.f) }; + static Sphere spheres[3] = { + { vec(-2.0f, 0.0f, -3.5f), 0.5f }, + { vec(-0.5f, 0.0f, -3.0f), 0.5f }, + { vec(1.0f, 0.0f, -2.2f), 0.5f } }; + + srand48(y0); + + for (int y = y0; y < y1; ++y) { + for (int x = 0; x < w; ++x) { + int offset = 3 * (y * w + x); + for (int u = 0; u < nsubsamples; ++u) { + for (int v = 0; v < nsubsamples; ++v) { + float px = (x + (u / (float)nsubsamples) - (w / 2.0f)) / (w / 2.0f); + float py = -(y + (v / (float)nsubsamples) - (h / 2.0f)) / (h / 2.0f); + float ret = 0.f; + Ray ray; + Isect isect; + + ray.org = vec(0.f, 0.f, 0.f); + + ray.dir.x = px; + ray.dir.y = py; + ray.dir.z = -1.0; + vnormalize(ray.dir); + + isect.t = 1.0e+17; + isect.hit = 0; + + for (int snum = 0; snum < 3; ++snum) + ray_sphere_intersect(isect, ray, spheres[snum]); + ray_plane_intersect(isect, ray, plane); + + if (isect.hit) + ret = ambient_occlusion(isect, plane, spheres); + + // Update image for AO for this ray + image[offset+0] += ret; + image[offset+1] += ret; + image[offset+2] += ret; + } + } + // Normalize image pixels by number of samples taken per pixel + image[offset+0] /= nsubsamples * nsubsamples; + image[offset+1] /= nsubsamples * nsubsamples; + image[offset+2] /= nsubsamples * nsubsamples; + } + } +} + + +void ao_serial(int w, int h, int nsubsamples, + float image[]) { + ao_scanlines(0, h, w, h, nsubsamples, image); +} diff --git a/examples/aobench/aobench.vcxproj b/examples/aobench/aobench.vcxproj new file mode 100755 index 00000000..3be6bdb3 --- /dev/null +++ b/examples/aobench/aobench.vcxproj @@ -0,0 +1,161 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + Document + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h + + %(Filename).obj + %(Filename).obj + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h + + %(Filename).obj + %(Filename).obj + + + + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB} + Win32Proj + aobench + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + \ No newline at end of file diff --git a/examples/aobench_instrumented/Makefile b/examples/aobench_instrumented/Makefile new file mode 100644 index 00000000..296a5882 --- /dev/null +++ b/examples/aobench_instrumented/Makefile @@ -0,0 +1,26 @@ + +CXX=g++ +CXXFLAGS=-Iobjs/ -g3 -Wall +ISPC=ispc +ISPCFLAGS=-O2 --fast-math --instrument + +default: ao + +.PHONY: dirs clean + +dirs: + /bin/mkdir -p objs/ + +clean: + /bin/rm -rf objs *~ ao + +ao: dirs objs/ao.o objs/instrument.o objs/ao_ispc.o + $(CXX) $(CXXFLAGS) -o $@ objs/ao.o objs/ao_ispc.o objs/instrument.o -lm -lpthread + +objs/%.o: %.cpp + $(CXX) $< $(CXXFLAGS) -c -o $@ + +objs/ao.o: objs/ao_ispc.h + +objs/%_ispc.h objs/%_ispc.o: %.ispc + $(ISPC) $(ISPCFLAGS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h diff --git a/examples/aobench_instrumented/ao.cpp b/examples/aobench_instrumented/ao.cpp new file mode 100644 index 00000000..742a0862 --- /dev/null +++ b/examples/aobench_instrumented/ao.cpp @@ -0,0 +1,148 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#define NOMINMAX +#pragma warning (disable: 4244) +#pragma warning (disable: 4305) +#endif + +#include +#include +#include +#include +#ifdef __linux__ +#include +#endif +#include +#include +#include +#include +#include + +#include "ao_ispc.h" +using namespace ispc; + +#include "instrument.h" +#include "../timing.h" + +#define NSUBSAMPLES 2 + +static unsigned int test_iterations; +static unsigned int width, height; +static unsigned char *img; +static float *fimg; + + +static unsigned char +clamp(float f) +{ + int i = (int)(f * 255.5); + + if (i < 0) i = 0; + if (i > 255) i = 255; + + return (unsigned char)i; +} + + +static void +savePPM(const char *fname, int w, int h) +{ + for (int y = 0; y < h; y++) { + for (int x = 0; x < w; x++) { + img[3 * (y * w + x) + 0] = clamp(fimg[3 *(y * w + x) + 0]); + img[3 * (y * w + x) + 1] = clamp(fimg[3 *(y * w + x) + 1]); + img[3 * (y * w + x) + 2] = clamp(fimg[3 *(y * w + x) + 2]); + } + } + + FILE *fp = fopen(fname, "wb"); + if (!fp) { + perror(fname); + exit(1); + } + + fprintf(fp, "P6\n"); + fprintf(fp, "%d %d\n", w, h); + fprintf(fp, "255\n"); + fwrite(img, w * h * 3, 1, fp); + fclose(fp); +} + + +// Allocate memory with 64-byte alignment. +float * +AllocAligned(int size) { +#if defined(_WIN32) || defined(_WIN64) + return (float *)_aligned_malloc(size, 64); +#elif defined (__APPLE__) + // Allocate excess memory to ensure an aligned pointer can be returned + void *mem = malloc(size + (64-1) + sizeof(void*)); + char *amem = ((char*)mem) + sizeof(void*); + amem += 64 - (reinterpret_cast(amem) & (64 - 1)); + ((void**)amem)[-1] = mem; + return (float *)amem; +#else + return (float *)memalign(64, size); +#endif +} + + +int main(int argc, char **argv) +{ + if (argc != 4) { + printf ("%s\n", argv[0]); + printf ("Usage: ao [num test iterations] [width] [height]\n"); + getchar(); + exit(-1); + } + else { + test_iterations = atoi(argv[1]); + width = atoi (argv[2]); + height = atoi (argv[3]); + } + + // Allocate space for output images + img = (unsigned char *)AllocAligned(width * height * 3); + fimg = (float *)AllocAligned(sizeof(float) * width * height * 3); + + ao_ispc(width, height, NSUBSAMPLES, fimg); + + savePPM("ao-ispc.ppm", width, height); + + ISPCPrintInstrument(); + + return 0; +} diff --git a/examples/aobench_instrumented/ao.ispc b/examples/aobench_instrumented/ao.ispc new file mode 100644 index 00000000..192e0666 --- /dev/null +++ b/examples/aobench_instrumented/ao.ispc @@ -0,0 +1,317 @@ +// -*- mode: c++ -*- +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/* + Based on Syoyo Fujita's aobench: http://code.google.com/p/aobench +*/ + +#define NAO_SAMPLES 8 +#define M_PI 3.1415926535f + +typedef float<3> vec; + +struct Isect { + float t; + vec p; + vec n; + int hit; +}; + +struct Sphere { + vec center; + float radius; + +}; + +struct Plane { + vec p; + vec n; +}; + +struct Ray { + vec org; + vec dir; +}; + +static inline float dot(vec a, vec b) { + return a.x * b.x + a.y * b.y + a.z * b.z; +} + +static inline vec vcross(vec v0, vec v1) { + vec ret; + ret.x = v0.y * v1.z - v0.z * v1.y; + ret.y = v0.z * v1.x - v0.x * v1.z; + ret.z = v0.x * v1.y - v0.y * v1.x; + return ret; +} + +static inline void vnormalize(reference vec v) { + float len2 = dot(v, v); + float invlen = rsqrt(len2); + v *= invlen; +} + + +static inline void +ray_plane_intersect(reference Isect isect, reference Ray ray, + reference Plane plane) { + float d = -dot(plane.p, plane.n); + float v = dot(ray.dir, plane.n); + + cif (abs(v) < 1.0e-17) + return; + else { + float t = -(dot(ray.org, plane.n) + d) / v; + + cif ((t > 0.0) && (t < isect.t)) { + isect.t = t; + isect.hit = 1; + isect.p = ray.org + ray.dir * t; + isect.n = plane.n; + } + } +} + + +static inline void +ray_sphere_intersect(reference Isect isect, reference Ray ray, + reference Sphere sphere) { + vec rs = ray.org - sphere.center; + + float B = dot(rs, ray.dir); + float C = dot(rs, rs) - sphere.radius * sphere.radius; + float D = B * B - C; + + cif (D > 0.) { + float t = -B - sqrt(D); + + cif ((t > 0.0) && (t < isect.t)) { + isect.t = t; + isect.hit = 1; + isect.p = ray.org + t * ray.dir; + isect.n = isect.p - sphere.center; + vnormalize(isect.n); + } + } +} + + +static inline void +orthoBasis(reference vec basis[3], vec n) { + basis[2] = n; + basis[1].x = 0.0; basis[1].y = 0.0; basis[1].z = 0.0; + + if ((n.x < 0.6) && (n.x > -0.6)) { + basis[1].x = 1.0; + } else if ((n.y < 0.6) && (n.y > -0.6)) { + basis[1].y = 1.0; + } else if ((n.z < 0.6) && (n.z > -0.6)) { + basis[1].z = 1.0; + } else { + basis[1].x = 1.0; + } + + basis[0] = vcross(basis[1], basis[2]); + vnormalize(basis[0]); + + basis[1] = vcross(basis[2], basis[0]); + vnormalize(basis[1]); +} + + +static inline float +ambient_occlusion(reference Isect isect, reference Plane plane, + reference Sphere spheres[3], reference RNGState rngstate) { + float eps = 0.0001f; + vec p, n; + vec basis[3]; + float occlusion = 0.0; + + p = isect.p + eps * isect.n; + + orthoBasis(basis, isect.n); + + static const uniform int ntheta = NAO_SAMPLES; + static const uniform int nphi = NAO_SAMPLES; + for (uniform int j = 0; j < ntheta; j++) { + for (uniform int i = 0; i < nphi; i++) { + Ray ray; + Isect occIsect; + + float theta = sqrt(frandom(rngstate)); + float phi = 2.0f * M_PI * frandom(rngstate); + float x = cos(phi) * theta; + float y = sin(phi) * theta; + float z = sqrt(1.0 - theta * theta); + + // local . global + float rx = x * basis[0].x + y * basis[1].x + z * basis[2].x; + float ry = x * basis[0].y + y * basis[1].y + z * basis[2].y; + float rz = x * basis[0].z + y * basis[1].z + z * basis[2].z; + + ray.org = p; + ray.dir.x = rx; + ray.dir.y = ry; + ray.dir.z = rz; + + occIsect.t = 1.0e+17; + occIsect.hit = 0; + + for (uniform int snum = 0; snum < 3; ++snum) + ray_sphere_intersect(occIsect, ray, spheres[snum]); + ray_plane_intersect (occIsect, ray, plane); + + if (occIsect.hit) occlusion += 1.0; + } + } + + occlusion = (ntheta * nphi - occlusion) / (float)(ntheta * nphi); + return occlusion; +} + + +/* Compute the image for the scanlines from [y0,y1), for an overall image + of width w and height h. + */ +void ao_scanlines(uniform int y0, uniform int y1, uniform int w, uniform int h, + uniform int nsubsamples, reference uniform float image[]) { + static Plane plane = { { 0.0f, -0.5f, 0.0f }, { 0.f, 1.f, 0.f } }; + static Sphere spheres[3] = { + { { -2.0f, 0.0f, -3.5f }, 0.5f }, + { { -0.5f, 0.0f, -3.0f }, 0.5f }, + { { 1.0f, 0.0f, -2.2f }, 0.5f } }; + RNGState rngstate; + + seed_rng(rngstate, y0); + + // Compute the mapping between the 'programCount'-wide program + // instances running in parallel and samples in the image. + // + // For now, we'll always take four samples per pixel, so start by + // initializing du and dv with offsets into subpixel samples. We'll + // take care of further updating du and dv for the case where we're + // doing more than 4 program instances in parallel shortly. + uniform float uSteps[4] = { 0, 1, 0, 1 }; + uniform float vSteps[4] = { 0, 0, 1, 1 }; + float du = uSteps[programIndex % 4] / nsubsamples; + float dv = vSteps[programIndex % 4] / nsubsamples; + + // Now handle the case where we are able to do more than one pixel's + // worth of work at once. nx records the number of pixels in the x + // direction we do per iteration and ny the number in y. + uniform int nx = 1, ny = 1; + + if (programCount == 8) { + // Do two pixels at once in the x direction + nx = 2; + if (programIndex >= 4) + // And shift the offsets for the second pixel's worth of work + ++du; + } + else if (programCount == 16) { + // Two at once in both x and y + nx = ny = 2; + if ((programIndex >= 4 && programIndex < 8) || programIndex >= 12) + ++du; + if (programIndex >= 8) + ++dv; + } + + // Now loop over all of the pixels, stepping in x and y as calculated + // above. (Assumes that ny divides y and nx divides x...) + for (uniform int y = y0; y < y1; y += ny) { + for (uniform int x = 0; x < w; x += nx) { + // Figur out x,y pixel in NDC + float px = (x + du - (w / 2.0f)) / (w / 2.0f); + float py = -(y + dv - (h / 2.0f)) / (h / 2.0f); + float ret = 0.f; + Ray ray; + Isect isect; + + ray.org = 0.f; + + // Poor man's perspective projection + ray.dir.x = px; + ray.dir.y = py; + ray.dir.z = -1.0; + vnormalize(ray.dir); + + isect.t = 1.0e+17; + isect.hit = 0; + + for (uniform int snum = 0; snum < 3; ++snum) + ray_sphere_intersect(isect, ray, spheres[snum]); + ray_plane_intersect(isect, ray, plane); + + // Note use of 'coherent' if statement; the set of rays we + // trace will often all hit or all miss the scene + cif (isect.hit) + ret = ambient_occlusion(isect, plane, spheres, rngstate); + + // This is a little grungy; we have results for + // programCount-worth of values. Because we're doing 2x2 + // subsamples, we need to peel them off in groups of four, + // average the four values for each pixel, and update the + // output image. + // + // Store the varying value to a uniform array of the same size. + // See the discussion about communication among program + // instances in the ispc user's manual for more discussion on + // this idiom. + uniform float retArray[programCount]; + retArray[programIndex] = ret; + + // offset to the first pixel in the image + uniform int offset = 3 * (y * w + x); + for (uniform int p = 0; p < programCount; p += 4, ++offset) { + // Get the four sample values for this pixel + uniform float sumret = retArray[p] + retArray[p+1] + retArray[p+2] + + retArray[p+3]; + + // Normalize by number of samples taken + sumret /= nsubsamples * nsubsamples; + + // Store result in the image + image[offset+0] = sumret; + image[offset+1] = sumret; + image[offset+2] = sumret; + } + } + } +} + + +export void ao_ispc(uniform int w, uniform int h, uniform int nsubsamples, + uniform float image[]) { + ao_scanlines(0, h, w, h, nsubsamples, image); +} diff --git a/examples/aobench_instrumented/aobench_instrumented.vcxproj b/examples/aobench_instrumented/aobench_instrumented.vcxproj new file mode 100755 index 00000000..94c8926a --- /dev/null +++ b/examples/aobench_instrumented/aobench_instrumented.vcxproj @@ -0,0 +1,161 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + Document + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 --instrument + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --instrument + + %(Filename).obj + %(Filename).obj + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 --instrument + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --instrument + + %(Filename).obj + %(Filename).obj + + + + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958} + Win32Proj + aobench_instrumented + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + diff --git a/examples/aobench_instrumented/instrument.cpp b/examples/aobench_instrumented/instrument.cpp new file mode 100644 index 00000000..d72210d6 --- /dev/null +++ b/examples/aobench_instrumented/instrument.cpp @@ -0,0 +1,94 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include "instrument.h" +#include +#include +#include +#include + +struct CallInfo { + CallInfo() { count = laneCount = allOff = 0; } + int count; + int laneCount; + int allOff; +}; + +static std::map callInfo; + +int countbits(int i) { + int ret = 0; + while (i) { + if (i & 0x1) + ++ret; + i >>= 1; + } + return ret; +} + + +// Callback function that ispc compiler emits calls to when --instrument +// command-line flag is given while compiling. +void +ISPCInstrument(const char *fn, const char *note, int line, int mask) { + char sline[16]; + sprintf(sline, "%04d", line); + std::string s = std::string(fn) + std::string("(") + std::string(sline) + + std::string(") - ") + std::string(note); + + // Find or create a CallInfo instance for this callsite. + CallInfo &ci = callInfo[s]; + + // And update its statistics... + ++ci.count; + if (mask == 0) + ++ci.allOff; + ci.laneCount += countbits(mask); +} + + +void +ISPCPrintInstrument() { + // When program execution is done, go through the stats and print them + // out. (This function is called by ao.cpp). + std::map::iterator citer = callInfo.begin(); + while (citer != callInfo.end()) { + CallInfo &ci = citer->second; + float activePct = 100.f * ci.laneCount / (4.f * ci.count); + float allOffPct = 100.f * ci.allOff / ci.count; + printf("%s: %d calls (%d / %.2f%% all off!), %.2f%% active lanes\n", + citer->first.c_str(), ci.count, ci.allOff, allOffPct, + activePct); + ++citer; + } +} diff --git a/examples/aobench_instrumented/instrument.h b/examples/aobench_instrumented/instrument.h new file mode 100644 index 00000000..a21730b1 --- /dev/null +++ b/examples/aobench_instrumented/instrument.h @@ -0,0 +1,45 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef INSTRUMENT_H +#define INSTRUMENT_H 1 + +#include + +extern "C" { + void ISPCInstrument(const char *fn, const char *note, int line, int mask); +} + +void ISPCPrintInstrument(); + +#endif // INSTRUMENT_H diff --git a/examples/examples.sln b/examples/examples.sln new file mode 100755 index 00000000..5e8de17a --- /dev/null +++ b/examples/examples.sln @@ -0,0 +1,86 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple", "simple\simple.vcxproj", "{947C5311-8B78-4D05-BEE4-BCF342D4B367}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rt", "rt\rt.vcxproj", "{E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aobench", "aobench\aobench.vcxproj", "{F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mandelbrot", "mandelbrot\mandelbrot.vcxproj", "{6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "options", "options\options.vcxproj", "{8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mandelbrot_tasks", "mandelbrot_tasks\mandelbrot_tasks.vcxproj", "{E80DA7D4-AB22-4648-A068-327307156BE6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aobench_instrumented", "aobench_instrumented\aobench_instrumented.vcxproj", "{B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {947C5311-8B78-4D05-BEE4-BCF342D4B367}.Debug|Win32.ActiveCfg = Debug|Win32 + {947C5311-8B78-4D05-BEE4-BCF342D4B367}.Debug|Win32.Build.0 = Debug|Win32 + {947C5311-8B78-4D05-BEE4-BCF342D4B367}.Debug|x64.ActiveCfg = Debug|x64 + {947C5311-8B78-4D05-BEE4-BCF342D4B367}.Debug|x64.Build.0 = Debug|x64 + {947C5311-8B78-4D05-BEE4-BCF342D4B367}.Release|Win32.ActiveCfg = Release|Win32 + {947C5311-8B78-4D05-BEE4-BCF342D4B367}.Release|Win32.Build.0 = Release|Win32 + {947C5311-8B78-4D05-BEE4-BCF342D4B367}.Release|x64.ActiveCfg = Release|x64 + {947C5311-8B78-4D05-BEE4-BCF342D4B367}.Release|x64.Build.0 = Release|x64 + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}.Debug|Win32.ActiveCfg = Debug|Win32 + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}.Debug|Win32.Build.0 = Debug|Win32 + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}.Debug|x64.ActiveCfg = Debug|x64 + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}.Debug|x64.Build.0 = Debug|x64 + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}.Release|Win32.ActiveCfg = Release|Win32 + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}.Release|Win32.Build.0 = Release|Win32 + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}.Release|x64.ActiveCfg = Release|x64 + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9}.Release|x64.Build.0 = Release|x64 + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}.Debug|Win32.ActiveCfg = Debug|Win32 + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}.Debug|Win32.Build.0 = Debug|Win32 + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}.Debug|x64.ActiveCfg = Debug|x64 + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}.Debug|x64.Build.0 = Debug|x64 + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}.Release|Win32.ActiveCfg = Release|Win32 + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}.Release|Win32.Build.0 = Release|Win32 + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}.Release|x64.ActiveCfg = Release|x64 + {F29204CA-19DF-4F3C-87D5-03F4EEDAAFEB}.Release|x64.Build.0 = Release|x64 + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}.Debug|Win32.ActiveCfg = Debug|Win32 + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}.Debug|Win32.Build.0 = Debug|Win32 + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}.Debug|x64.ActiveCfg = Debug|x64 + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}.Debug|x64.Build.0 = Debug|x64 + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}.Release|Win32.ActiveCfg = Release|Win32 + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}.Release|Win32.Build.0 = Release|Win32 + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}.Release|x64.ActiveCfg = Release|x64 + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1}.Release|x64.Build.0 = Release|x64 + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}.Debug|Win32.ActiveCfg = Debug|Win32 + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}.Debug|Win32.Build.0 = Debug|Win32 + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}.Debug|x64.ActiveCfg = Debug|x64 + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}.Debug|x64.Build.0 = Debug|x64 + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}.Release|Win32.ActiveCfg = Release|Win32 + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}.Release|Win32.Build.0 = Release|Win32 + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}.Release|x64.ActiveCfg = Release|x64 + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE}.Release|x64.Build.0 = Release|x64 + {E80DA7D4-AB22-4648-A068-327307156BE6}.Debug|Win32.ActiveCfg = Debug|Win32 + {E80DA7D4-AB22-4648-A068-327307156BE6}.Debug|Win32.Build.0 = Debug|Win32 + {E80DA7D4-AB22-4648-A068-327307156BE6}.Debug|x64.ActiveCfg = Debug|x64 + {E80DA7D4-AB22-4648-A068-327307156BE6}.Debug|x64.Build.0 = Debug|x64 + {E80DA7D4-AB22-4648-A068-327307156BE6}.Release|Win32.ActiveCfg = Release|Win32 + {E80DA7D4-AB22-4648-A068-327307156BE6}.Release|Win32.Build.0 = Release|Win32 + {E80DA7D4-AB22-4648-A068-327307156BE6}.Release|x64.ActiveCfg = Release|x64 + {E80DA7D4-AB22-4648-A068-327307156BE6}.Release|x64.Build.0 = Release|x64 + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}.Debug|Win32.ActiveCfg = Debug|Win32 + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}.Debug|Win32.Build.0 = Debug|Win32 + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}.Debug|x64.ActiveCfg = Debug|x64 + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}.Debug|x64.Build.0 = Debug|x64 + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}.Release|Win32.ActiveCfg = Release|Win32 + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}.Release|Win32.Build.0 = Release|Win32 + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}.Release|x64.ActiveCfg = Release|x64 + {B3B4AE3D-6D5A-4CF9-AF5B-43CF2131B958}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/examples/mandelbrot/Makefile b/examples/mandelbrot/Makefile new file mode 100644 index 00000000..dd369d0b --- /dev/null +++ b/examples/mandelbrot/Makefile @@ -0,0 +1,26 @@ + +CXX=g++ +CXXFLAGS=-Iobjs/ -O3 -Wall +ISPC=ispc +ISPCFLAGS=-O2 --target=sse4x2 + +default: mandelbrot + +.PHONY: dirs clean + +dirs: + /bin/mkdir -p objs/ + +clean: + /bin/rm -rf objs *~ mandelbrot + +mandelbrot: dirs objs/mandelbrot.o objs/mandelbrot_serial.o objs/mandelbrot_ispc.o + $(CXX) $(CXXFLAGS) -o $@ objs/mandelbrot.o objs/mandelbrot_ispc.o objs/mandelbrot_serial.o -lm + +objs/%.o: %.cpp + $(CXX) $< $(CXXFLAGS) -c -o $@ + +objs/mandelbrot.o: objs/mandelbrot_ispc.h + +objs/%_ispc.h objs/%_ispc.o: %.ispc + $(ISPC) $(ISPCFLAGS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h diff --git a/examples/mandelbrot/mandelbrot.cpp b/examples/mandelbrot/mandelbrot.cpp new file mode 100644 index 00000000..2105a335 --- /dev/null +++ b/examples/mandelbrot/mandelbrot.cpp @@ -0,0 +1,117 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#define NOMINMAX +#pragma warning (disable: 4244) +#pragma warning (disable: 4305) +#endif + +#include +#include +#include "../timing.h" +#include "mandelbrot_ispc.h" +using namespace ispc; + +extern void mandelbrot_serial(float x0, float y0, float x1, float y1, + int width, int height, int maxIterations, + int output[]); + +/* Write a PPM image file with the image of the Mandelbrot set */ +static void +writePPM(int *buf, int width, int height, const char *fn) { + FILE *fp = fopen(fn, "wb"); + fprintf(fp, "P6\n"); + fprintf(fp, "%d %d\n", width, height); + fprintf(fp, "255\n"); + for (int i = 0; i < width*height; ++i) { + // Map the iteration count to colors by just alternating between + // two greys. + char c = (buf[i] & 0x1) ? 240 : 20; + for (int j = 0; j < 3; ++j) + fputc(c, fp); + } + fclose(fp); +} + + +int main() { + unsigned int width = 768; + unsigned int height = 512; + float x0 = -2; + float x1 = 1; + float y0 = -1; + float y1 = 1; + + int maxIterations = 256; + int *buf = new int[width*height]; + + // + // Compute the image using the ispc implementation; report the minimum + // time of three runs. + // + double minISPC = 1e30; + for (int i = 0; i < 3; ++i) { + reset_and_start_timer(); + mandelbrot_ispc(x0, y0, x1, y1, width, height, maxIterations, buf); + double dt = get_elapsed_mcycles(); + minISPC = std::min(minISPC, dt); + } + + printf("[mandelbrot ispc]:\t\t[%.3f] million cycles\n", minISPC); + writePPM(buf, width, height, "mandelbrot-ispc.ppm"); + + // Clear out the buffer + for (unsigned int i = 0; i < width * height; ++i) + buf[i] = 0; + + // + // And run the serial implementation 3 times, again reporting the + // minimum time. + // + double minSerial = 1e30; + for (int i = 0; i < 3; ++i) { + reset_and_start_timer(); + mandelbrot_serial(x0, y0, x1, y1, width, height, maxIterations, buf); + double dt = get_elapsed_mcycles(); + minSerial = std::min(minSerial, dt); + } + + printf("[mandelbrot serial]:\t\t[%.3f] millon cycles\n", minSerial); + writePPM(buf, width, height, "mandelbrot-serial.ppm"); + + printf("\t\t\t\t(%.2fx speedup from ISPC)\n", minSerial/minISPC); + + return 0; +} diff --git a/examples/mandelbrot/mandelbrot.ispc b/examples/mandelbrot/mandelbrot.ispc new file mode 100644 index 00000000..ecbb4fc1 --- /dev/null +++ b/examples/mandelbrot/mandelbrot.ispc @@ -0,0 +1,76 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +static inline int mandel(float c_re, float c_im, int count) { + float z_re = c_re, z_im = c_im; + int i; + for (i = 0; i < count; ++i) { + if (z_re * z_re + z_im * z_im > 4.) + break; + + float new_re = z_re*z_re - z_im*z_im; + float new_im = 2.f * z_re * z_im; + z_re = c_re + new_re; + z_im = c_im + new_im; + } + + return i; +} + +export void mandelbrot_ispc(uniform float x0, uniform float y0, + uniform float x1, uniform float y1, + uniform int width, uniform int height, + uniform int maxIterations, + reference uniform int output[]) +{ + float dx = (x1 - x0) / width; + float dy = (y1 - y0) / height; + + for (uniform int j = 0; j < height; j++) { + // Note that we'll be doing programCount computations in parallel, + // so increment i by that much. This assumes that width evenly + // divides programCount. + for (uniform int i = 0; i < width; i += programCount) { + // Figure out the position on the complex plane to compute the + // number of iterations at. Note that the x values are + // different across different program instances, since its + // initializer incorporates the value of the programIndex + // variable. + float x = x0 + (programIndex + i) * dx; + float y = y0 + j * dy; + + int index = j * width + i + programIndex; + output[index] = mandel(x, y, maxIterations); + } + } +} diff --git a/examples/mandelbrot/mandelbrot.vcxproj b/examples/mandelbrot/mandelbrot.vcxproj new file mode 100755 index 00000000..db33453b --- /dev/null +++ b/examples/mandelbrot/mandelbrot.vcxproj @@ -0,0 +1,161 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {6D3EF8C5-AE26-407B-9ECE-C27CB988D9C1} + Win32Proj + mandelbrot + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + + + + Document + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 --target=sse4x2 + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --target=sse4x2 + + %(Filename).obj;%(Filename)_ispc.h + %(Filename).obj;%(Filename)_ispc.h + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 --target=sse4x2 + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --target=sse4x2 + + %(Filename).obj;%(Filename)_ispc.h + %(Filename).obj;%(Filename)_ispc.h + + + + + + diff --git a/examples/mandelbrot/mandelbrot_serial.cpp b/examples/mandelbrot/mandelbrot_serial.cpp new file mode 100644 index 00000000..4bea7baf --- /dev/null +++ b/examples/mandelbrot/mandelbrot_serial.cpp @@ -0,0 +1,68 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +static int mandel(float c_re, float c_im, int count) { + float z_re = c_re, z_im = c_im; + int i; + for (i = 0; i < count; ++i) { + if (z_re * z_re + z_im * z_im > 4.) + break; + + float new_re = z_re*z_re - z_im*z_im; + float new_im = 2.f * z_re * z_im; + z_re = c_re + new_re; + z_im = c_im + new_im; + } + + return i; +} + +void mandelbrot_serial(float x0, float y0, float x1, float y1, + int width, int height, int maxIterations, + int output[]) +{ + float dx = (x1 - x0) / width; + float dy = (y1 - y0) / height; + + for (int j = 0; j < height; j++) { + for (int i = 0; i < width; ++i) { + float x = x0 + i * dx; + float y = y0 + j * dy; + + int index = (j * width + i); + output[index] = mandel(x, y, maxIterations); + } + } +} + diff --git a/examples/mandelbrot_tasks/Makefile b/examples/mandelbrot_tasks/Makefile new file mode 100644 index 00000000..182c2698 --- /dev/null +++ b/examples/mandelbrot_tasks/Makefile @@ -0,0 +1,38 @@ + +ARCH = $(shell uname) + +TASK_CXX=tasks_pthreads.cpp +TASK_LIB=-lpthread + +ifeq ($(ARCH), Darwin) + TASK_CXX=tasks_gcd.cpp + TASK_LIB= +endif + +TASK_OBJ=$(addprefix objs/, $(TASK_CXX:.cpp=.o)) + +CXX=g++ +CXXFLAGS=-Iobjs/ -O3 -Wall +ISPC=ispc +ISPCFLAGS=-O2 --target=sse4x2 + +default: mandelbrot + +.PHONY: dirs clean + +dirs: + /bin/mkdir -p objs/ + +clean: + /bin/rm -rf objs *~ mandelbrot + +mandelbrot: dirs objs/mandelbrot.o objs/mandelbrot_serial.o objs/mandelbrot_ispc.o $(TASK_OBJ) + $(CXX) $(CXXFLAGS) -o $@ objs/mandelbrot.o objs/mandelbrot_ispc.o objs/mandelbrot_serial.o $(TASK_OBJ) -lm $(TASK_LIB) + +objs/%.o: %.cpp + $(CXX) $< $(CXXFLAGS) -c -o $@ + +objs/mandelbrot.o: objs/mandelbrot_ispc.h + +objs/%_ispc.h objs/%_ispc.o: %.ispc + $(ISPC) $(ISPCFLAGS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h diff --git a/examples/mandelbrot_tasks/mandelbrot.cpp b/examples/mandelbrot_tasks/mandelbrot.cpp new file mode 100644 index 00000000..50ad4cf8 --- /dev/null +++ b/examples/mandelbrot_tasks/mandelbrot.cpp @@ -0,0 +1,120 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#define NOMINMAX +#pragma warning (disable: 4244) +#pragma warning (disable: 4305) +#endif + +#include +#include +#include "../timing.h" +#include "mandelbrot_ispc.h" +using namespace ispc; + +extern void mandelbrot_serial(float x0, float y0, float x1, float y1, + int width, int height, int maxIterations, + int output[]); + +/* Write a PPM image file with the image of the Mandelbrot set */ +static void +writePPM(int *buf, int width, int height, const char *fn) { + FILE *fp = fopen(fn, "wb"); + fprintf(fp, "P6\n"); + fprintf(fp, "%d %d\n", width, height); + fprintf(fp, "255\n"); + for (int i = 0; i < width*height; ++i) { + // Map the iteration count to colors by just alternating between + // two greys. + char c = (buf[i] & 0x1) ? 240 : 20; + for (int j = 0; j < 3; ++j) + fputc(c, fp); + } + fclose(fp); +} + + +int main() { + unsigned int width = 1536; + unsigned int height = 1024; + float x0 = -2; + float x1 = 1; + float y0 = -1; + float y1 = 1; + + extern void TasksInit(); + TasksInit(); + + int maxIterations = 512; + int *buf = new int[width*height]; + + // + // Compute the image using the ispc implementation; report the minimum + // time of three runs. + // + double minISPC = 1e30; + for (int i = 0; i < 3; ++i) { + reset_and_start_timer(); + mandelbrot_ispc(x0, y0, x1, y1, width, height, maxIterations, buf); + double dt = get_elapsed_mcycles(); + minISPC = std::min(minISPC, dt); + } + + printf("[mandelbrot ispc+tasks]:\t[%.3f] million cycles\n", minISPC); + writePPM(buf, width, height, "mandelbrot-ispc.ppm"); + + // Clear out the buffer + for (unsigned int i = 0; i < width * height; ++i) + buf[i] = 0; + + // + // And run the serial implementation 3 times, again reporting the + // minimum time. + // + double minSerial = 1e30; + for (int i = 0; i < 3; ++i) { + reset_and_start_timer(); + mandelbrot_serial(x0, y0, x1, y1, width, height, maxIterations, buf); + double dt = get_elapsed_mcycles(); + minSerial = std::min(minSerial, dt); + } + + printf("[mandelbrot serial]:\t\t[%.3f] millon cycles\n", minSerial); + writePPM(buf, width, height, "mandelbrot-serial.ppm"); + + printf("\t\t\t\t(%.2fx speedup from ISPC)\n", minSerial/minISPC); + + return 0; +} diff --git a/examples/mandelbrot_tasks/mandelbrot.ispc b/examples/mandelbrot_tasks/mandelbrot.ispc new file mode 100644 index 00000000..df763e0a --- /dev/null +++ b/examples/mandelbrot_tasks/mandelbrot.ispc @@ -0,0 +1,86 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +static inline int +mandel(float c_re, float c_im, int count) { + float z_re = c_re, z_im = c_im; + int i; + for (i = 0; i < count; ++i) { + if (z_re * z_re + z_im * z_im > 4.) + break; + + float new_re = z_re*z_re - z_im*z_im; + float new_im = 2.f * z_re * z_im; + z_re = c_re + new_re; + z_im = c_im + new_im; + } + + return i; +} + + +/* Task to compute the Mandelbrot iterations for a span of scanlines from + [ystart,yend). + */ +task void +mandelbrot_scanlines(uniform int ystart, uniform int yend, + uniform float x0, uniform float dx, + uniform float y0, uniform float dy, + uniform int width, uniform int maxIterations, + reference uniform int output[]) { + for (uniform int j = ystart; j < yend; ++j) { + for (uniform int i = 0; i < width; i += programCount) { + float x = x0 + (programIndex + i) * dx; + float y = y0 + j * dy; + + int index = j * width + i + programIndex; + output[index] = mandel(x, y, maxIterations); + } + } +} + + +export void +mandelbrot_ispc(uniform float x0, uniform float y0, + uniform float x1, uniform float y1, + uniform int width, uniform int height, + uniform int maxIterations, reference uniform int output[]) { + uniform float dx = (x1 - x0) / width; + uniform float dy = (y1 - y0) / height; + + /* Launch task to compute results for spans of 'span' scanlines. */ + uniform int span = 2; + for (uniform int j = 0; j < height; j += span) + launch < mandelbrot_scanlines(j, j+span, x0, dx, y0, dy, width, + maxIterations, output) >; +} diff --git a/examples/mandelbrot_tasks/mandelbrot_serial.cpp b/examples/mandelbrot_tasks/mandelbrot_serial.cpp new file mode 100644 index 00000000..4bea7baf --- /dev/null +++ b/examples/mandelbrot_tasks/mandelbrot_serial.cpp @@ -0,0 +1,68 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +static int mandel(float c_re, float c_im, int count) { + float z_re = c_re, z_im = c_im; + int i; + for (i = 0; i < count; ++i) { + if (z_re * z_re + z_im * z_im > 4.) + break; + + float new_re = z_re*z_re - z_im*z_im; + float new_im = 2.f * z_re * z_im; + z_re = c_re + new_re; + z_im = c_im + new_im; + } + + return i; +} + +void mandelbrot_serial(float x0, float y0, float x1, float y1, + int width, int height, int maxIterations, + int output[]) +{ + float dx = (x1 - x0) / width; + float dy = (y1 - y0) / height; + + for (int j = 0; j < height; j++) { + for (int i = 0; i < width; ++i) { + float x = x0 + i * dx; + float y = y0 + j * dy; + + int index = (j * width + i); + output[index] = mandel(x, y, maxIterations); + } + } +} + diff --git a/examples/mandelbrot_tasks/mandelbrot_tasks.vcxproj b/examples/mandelbrot_tasks/mandelbrot_tasks.vcxproj new file mode 100755 index 00000000..ba3687cb --- /dev/null +++ b/examples/mandelbrot_tasks/mandelbrot_tasks.vcxproj @@ -0,0 +1,162 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {E80DA7D4-AB22-4648-A068-327307156BE6} + Win32Proj + mandelbrot + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + + + + + Document + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 --target=sse4x2 + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --target=sse4x2 + + %(Filename).obj;%(Filename)_ispc.h + %(Filename).obj;%(Filename)_ispc.h + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 --target=sse4x2 + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --target=sse4x2 + + %(Filename).obj;%(Filename)_ispc.h + %(Filename).obj;%(Filename)_ispc.h + + + + + + \ No newline at end of file diff --git a/examples/mandelbrot_tasks/tasks_concrt.cpp b/examples/mandelbrot_tasks/tasks_concrt.cpp new file mode 100644 index 00000000..a861ca87 --- /dev/null +++ b/examples/mandelbrot_tasks/tasks_concrt.cpp @@ -0,0 +1,115 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* Simple task system implementation for ispc based on Microsoft's + Concurrency Runtime. */ + +#include +#include +using namespace Concurrency; +#include +#include + +// ispc expects these functions to have C linkage / not be mangled +extern "C" { + void ISPCLaunch(void *f, void *data); + void ISPCSync(); +} + +typedef void (*TaskFuncType)(void *, int, int); + +struct TaskInfo { + TaskFuncType ispcFunc; + void *ispcData; +}; + +// This is a simple implementation that just aborts if more than MAX_TASKS +// are launched. It could easily be extended to be more general... + +#define MAX_TASKS 4096 +static int taskOffset; +static TaskInfo taskInfo[MAX_TASKS]; +static event *events[MAX_TASKS]; +static CRITICAL_SECTION criticalSection; + +void +TasksInit() { + InitializeCriticalSection(&criticalSection); + for (int i = 0; i < MAX_TASKS; ++i) + events[i] = new event; +} + + +void __cdecl +lRunTask(LPVOID param) { + TaskInfo *ti = (TaskInfo *)param; + + // Actually run the task. + // FIXME: like the tasks_gcd.cpp implementation, this is passing bogus + // values for the threadIndex and threadCount builtins, which in turn + // will cause bugs in code that uses those. FWIW this example doesn't + // use them... + int threadIndex = 0; + int threadCount = 1; + ti->ispcFunc(ti->ispcData, threadIndex, threadCount); + + // Signal the event that this task is done + int taskNum = ti - &taskInfo[0]; + events[taskNum]->set(); +} + + +void +ISPCLaunch(void *func, void *data) { + // Get a TaskInfo struct for this task + EnterCriticalSection(&criticalSection); + TaskInfo *ti = &taskInfo[taskOffset++]; + assert(taskOffset < MAX_TASKS); + LeaveCriticalSection(&criticalSection); + + // And pass it on to the Concurrency Runtime... + ti->ispcFunc = (TaskFuncType)func; + ti->ispcData = data; + CurrentScheduler::ScheduleTask(lRunTask, ti); +} + + +void ISPCSync() { + event::wait_for_multiple(&events[0], taskOffset, true, + COOPERATIVE_TIMEOUT_INFINITE); + + for (int i = 0; i < taskOffset; ++i) + events[i]->reset(); + + taskOffset = 0; +} diff --git a/examples/mandelbrot_tasks/tasks_gcd.cpp b/examples/mandelbrot_tasks/tasks_gcd.cpp new file mode 100644 index 00000000..b8b8e80f --- /dev/null +++ b/examples/mandelbrot_tasks/tasks_gcd.cpp @@ -0,0 +1,90 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* A simple task system for ispc programs based on Apple's Grand Central + Dispatch. */ + +#include + +static dispatch_queue_t gcdQueue; +static dispatch_group_t gcdGroup; + +// ispc expects these functions to have C linkage / not be mangled +extern "C" { + void ISPCLaunch(void *f, void *data); + void ISPCSync(); +} + +struct TaskInfo { + void *func; + void *data; +}; + + +void +TasksInit() { + gcdQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + gcdGroup = dispatch_group_create(); +} + + +static void +lRunTask(void *ti) { + typedef void (*TaskFuncType)(void *, int, int); + TaskInfo *taskInfo = (TaskInfo *)ti; + + TaskFuncType func = (TaskFuncType)(taskInfo->func); + + // FIXME: these are bogus values; may cause bugs in code that depends + // on them having unique values in different threads. + int threadIndex = 0; + int threadCount = 1; + // Actually run the task + func(taskInfo->data, threadIndex, threadCount); + + // FIXME: taskInfo leaks... +} + + +void ISPCLaunch(void *func, void *data) { + TaskInfo *ti = new TaskInfo; + ti->func = func; + ti->data = data; + dispatch_group_async_f(gcdGroup, gcdQueue, ti, lRunTask); +} + + +void ISPCSync() { + // Wait for all of the tasks in the group to complete before returning + dispatch_group_wait(gcdGroup, DISPATCH_TIME_FOREVER); +} diff --git a/examples/mandelbrot_tasks/tasks_pthreads.cpp b/examples/mandelbrot_tasks/tasks_pthreads.cpp new file mode 100644 index 00000000..4a23c5dc --- /dev/null +++ b/examples/mandelbrot_tasks/tasks_pthreads.cpp @@ -0,0 +1,285 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ispc expects these functions to have C linkage / not be mangled +extern "C" { + void ISPCLaunch(void *f, void *data); + void ISPCSync(); +} + + +static int nThreads; +static pthread_t *threads; +static pthread_mutex_t taskQueueMutex; +static std::vector > taskQueue; +static sem_t *workerSemaphore; +static uint32_t numUnfinishedTasks; +static pthread_mutex_t tasksRunningConditionMutex; +static pthread_cond_t tasksRunningCondition; + +static void *lTaskEntry(void *arg); + +/** Figure out how many CPU cores there are in the system + */ +static int +lNumCPUCores() { +#if defined(__linux__) + return sysconf(_SC_NPROCESSORS_ONLN); +#else + // Mac + int mib[2]; + mib[0] = CTL_HW; + size_t length = 2; + if (sysctlnametomib("hw.logicalcpu", mib, &length) == -1) { + fprintf(stderr, "sysctlnametomib() filed. Guessing 2 cores."); + return 2; + } + assert(length == 2); + + int nCores = 0; + size_t size = sizeof(nCores); + + if (sysctl(mib, 2, &nCores, &size, NULL, 0) == -1) { + fprintf(stderr, "sysctl() to find number of cores present failed. Guessing 2."); + return 2; + } + return nCores; +#endif +} + +void +TasksInit() { + nThreads = lNumCPUCores(); + + threads = new pthread_t[nThreads]; + + int err; + if ((err = pthread_mutex_init(&taskQueueMutex, NULL)) != 0) { + fprintf(stderr, "Error creating mutex: %s\n", strerror(err)); + exit(1); + } + + char name[32]; + sprintf(name, "mandelbrot.%d", (int)getpid()); + workerSemaphore = sem_open(name, O_CREAT, S_IRUSR|S_IWUSR, 0); + if (!workerSemaphore) { + fprintf(stderr, "Error creating semaphore: %s\n", strerror(err)); + exit(1); + } + + if ((err = pthread_cond_init(&tasksRunningCondition, NULL)) != 0) { + fprintf(stderr, "Error creating condition variable: %s\n", strerror(err)); + exit(1); + } + + if ((err = pthread_mutex_init(&tasksRunningConditionMutex, NULL)) != 0) { + fprintf(stderr, "Error creating mutex: %s\n", strerror(err)); + exit(1); + } + + for (int i = 0; i < nThreads; ++i) { + err = pthread_create(&threads[i], NULL, &lTaskEntry, reinterpret_cast(i)); + if (err != 0) { + fprintf(stderr, "Error creating pthread %d: %s\n", i, strerror(err)); + exit(1); + } + } +} + + +void +ISPCLaunch(void *f, void *d) { + // + // Acquire mutex, add task + // + int err; + if ((err = pthread_mutex_lock(&taskQueueMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_lock: %s\n", strerror(err)); + exit(1); + } + + taskQueue.push_back(std::make_pair(f, d)); + + if ((err = pthread_mutex_unlock(&taskQueueMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_unlock: %s\n", strerror(err)); + exit(1); + } + + // + // Update count of number of tasks left to run + // + if ((err = pthread_mutex_lock(&tasksRunningConditionMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_lock: %s\n", strerror(err)); + exit(1); + } + + ++numUnfinishedTasks; + + if ((err = pthread_mutex_unlock(&tasksRunningConditionMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_lock: %s\n", strerror(err)); + exit(1); + } + + // + // Post to the worker semaphore to wake up worker threads that are + // sleeping waiting for tasks to show up + // + if ((err = sem_post(workerSemaphore)) != 0) { + fprintf(stderr, "Error from sem_post: %s\n", strerror(err)); + exit(1); + } +} + + +static void * +lTaskEntry(void *arg) { + int threadIndex = int(reinterpret_cast(arg)); + int threadCount = nThreads; + + while (true) { + int err; + if ((err = sem_wait(workerSemaphore)) != 0) { + fprintf(stderr, "Error from sem_wait: %s\n", strerror(err)); + exit(1); + } + + std::pair myTask; + // + // Acquire mutex, get task + // + if ((err = pthread_mutex_lock(&taskQueueMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_lock: %s\n", strerror(err)); + exit(1); + } + if (taskQueue.size() == 0) { + // + // Task queue is empty, go back and wait on the semaphore + // + if ((err = pthread_mutex_unlock(&taskQueueMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_unlock: %s\n", strerror(err)); + exit(1); + } + continue; + } + + myTask = taskQueue.back(); + taskQueue.pop_back(); + + if ((err = pthread_mutex_unlock(&taskQueueMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_unlock: %s\n", strerror(err)); + exit(1); + } + + // + // Do work for _myTask_ + // + typedef void (*TaskFunType)(void *, int, int); + TaskFunType func = (TaskFunType)myTask.first; + func(myTask.second, threadIndex, threadCount); + + // + // Decrement the number of unfinished tasks counter + // + if ((err = pthread_mutex_lock(&tasksRunningConditionMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_lock: %s\n", strerror(err)); + exit(1); + } + + int unfinished = --numUnfinishedTasks; + if (unfinished == 0) { + // + // Signal the "no more tasks are running" condition if all of + // them are done. + // + int err; + if ((err = pthread_cond_signal(&tasksRunningCondition)) != 0) { + fprintf(stderr, "Error from pthread_cond_signal: %s\n", strerror(err)); + exit(1); + } + } + + if ((err = pthread_mutex_unlock(&tasksRunningConditionMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_lock: %s\n", strerror(err)); + exit(1); + } + } + + pthread_exit(NULL); + return 0; +} + + +void ISPCSync() { + int err; + if ((err = pthread_mutex_lock(&tasksRunningConditionMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_lock: %s\n", strerror(err)); + exit(1); + } + + // As long as there are tasks running, wait on the condition variable; + // doing so causes this thread to go to sleep until someone signals on + // the tasksRunningCondition condition variable. + while (numUnfinishedTasks > 0) { + if ((err = pthread_cond_wait(&tasksRunningCondition, + &tasksRunningConditionMutex)) != 0) { + fprintf(stderr, "Error from pthread_cond_wait: %s\n", strerror(err)); + exit(1); + } + } + + // We acquire ownership of the condition variable mutex when the above + // pthread_cond_wait returns. + // FIXME: is there a lurking issue here if numUnfinishedTasks gets back + // to zero by the time we get to ISPCSync() and thence we're trying to + // unlock a mutex we don't have a lock on? + if ((err = pthread_mutex_unlock(&tasksRunningConditionMutex)) != 0) { + fprintf(stderr, "Error from pthread_mutex_lock: %s\n", strerror(err)); + exit(1); + } +} diff --git a/examples/options/Makefile b/examples/options/Makefile new file mode 100644 index 00000000..46be29e2 --- /dev/null +++ b/examples/options/Makefile @@ -0,0 +1,26 @@ + +CXX=g++ +CXXFLAGS=-Iobjs/ -g -Wall +ISPC=ispc +ISPCFLAGS=-O2 --target=sse4x2 + +default: options + +.PHONY: dirs clean + +dirs: + /bin/mkdir -p objs/ + +clean: + /bin/rm -rf objs *~ options + +options: dirs objs/options.o objs/options_serial.o objs/options_ispc.o + $(CXX) $(CXXFLAGS) -o $@ objs/options.o objs/options_ispc.o objs/options_serial.o -lm + +objs/%.o: %.cpp + $(CXX) $< $(CXXFLAGS) -c -o $@ + +objs/options.o: objs/options_ispc.h options_defs.h + +objs/%_ispc.h objs/%_ispc.o: %.ispc options_defs.h + $(ISPC) $(ISPCFLAGS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h diff --git a/examples/options/options.cpp b/examples/options/options.cpp new file mode 100644 index 00000000..241b32be --- /dev/null +++ b/examples/options/options.cpp @@ -0,0 +1,151 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include +#include +#include +#include +#ifndef __APPLE__ +#include +#endif // !__APPLE__ +using std::max; + +#include "options_defs.h" +#include "../timing.h" + +#include "options_ispc.h" +using namespace ispc; + +// Allocate memory with 64-byte alignment. +float *AllocFloats(int count) { + int size = count * sizeof(float); +#if defined(_WIN32) || defined(_WIN64) + return (float *)_aligned_malloc(size, 64); +#elif defined (__APPLE__) + // Allocate excess memory to ensure an aligned pointer can be returned + void *mem = malloc(size + (64-1) + sizeof(void*)); + char *amem = ((char*)mem) + sizeof(void*); + amem += 64 - (reinterpret_cast(amem) & (64 - 1)); + ((void**)amem)[-1] = mem; + return (float *)amem; +#else + return (float *)memalign(64, size); +#endif +} + +extern void black_scholes_serial(float Sa[], float Xa[], float Ta[], + float ra[], float va[], + float result[], int count); + +extern void binomial_put_serial(float Sa[], float Xa[], float Ta[], + float ra[], float va[], + float result[], int count); + +int main() { + // Pointers passed to ispc code must have alignment of the target's + // vector width at minimum. + float *S = AllocFloats(N_OPTIONS); + float *X = AllocFloats(N_OPTIONS); + float *T = AllocFloats(N_OPTIONS); + float *r = AllocFloats(N_OPTIONS); + float *v = AllocFloats(N_OPTIONS); + float *result = AllocFloats(N_OPTIONS); + + for (int i = 0; i < N_OPTIONS; ++i) { + S[i] = 100; // stock price + X[i] = 98; // option strike price + T[i] = 2; // time (years) + r[i] = .02; // risk-free interest rate + v[i] = 5; // volatility + } + + // + // Binomial options pricing model, ispc implementation + // + reset_and_start_timer(); + binomial_put_ispc(S, X, T, r, v, result, N_OPTIONS); + double binomial_ispc = get_elapsed_mcycles(); + float sum = 0.f; + for (int i = 0; i < N_OPTIONS; ++i) + sum += result[i]; + printf("[binomial ispc]:\t\t[%.3f] million cycles (avg %f)\n", + binomial_ispc, sum / N_OPTIONS); + + // + // Binomial options, serial implementation + // + reset_and_start_timer(); + binomial_put_serial(S, X, T, r, v, result, N_OPTIONS); + double binomial_serial = get_elapsed_mcycles(); + sum = 0.f; + for (int i = 0; i < N_OPTIONS; ++i) + sum += result[i]; + printf("[binomial serial]:\t\t[%.3f] million cycles (avg %f)\n", + binomial_serial, sum / N_OPTIONS); + + printf("\t\t\t\t(%.2fx speedup from ISPC)\n", binomial_serial / binomial_ispc); + + // + // Black-Scholes options pricing model, ispc implementation + // + sum = 0.f; + reset_and_start_timer(); + for (int a = 0; a < N_BLACK_SCHOLES_ROUNDS; ++a) { + black_scholes_ispc(S, X, T, r, v, result, N_OPTIONS); + for (int i = 0; i < N_OPTIONS; ++i) + sum += result[i]; + } + double bs_ispc = get_elapsed_mcycles(); + printf("[black-scholes ispc]:\t\t[%.3f] million cycles (avg %f)\n", + bs_ispc, sum / (N_BLACK_SCHOLES_ROUNDS * N_OPTIONS)); + + // + // Black-Scholes options pricing model, serial implementation + // + sum = 0.f; + reset_and_start_timer(); + for (int a = 0; a < N_BLACK_SCHOLES_ROUNDS; ++a) { + black_scholes_serial(S, X, T, r, v, result, N_OPTIONS); + for (int i = 0; i < N_OPTIONS; ++i) + sum += result[i]; + } + double bs_serial = get_elapsed_mcycles(); + printf("[black-scholes serial]:\t\t[%.3f] million cycles (avg %f)\n", bs_serial, + sum / (N_BLACK_SCHOLES_ROUNDS * N_OPTIONS)); + + printf("\t\t\t\t(%.2fx speedup from ISPC)\n", bs_serial / bs_ispc); + + return 0; +} diff --git a/examples/options/options.ispc b/examples/options/options.ispc new file mode 100644 index 00000000..89e53634 --- /dev/null +++ b/examples/options/options.ispc @@ -0,0 +1,103 @@ +// -*- mode: c++ -*- +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include "options_defs.h" + +// Cumulative normal distribution function +static inline float +CND(float X) { + float L = abs(X); + + float k = 1.0 / (1.0 + 0.2316419 * L); + float k2 = k*k; + float k3 = k2*k; + float k4 = k2*k2; + float k5 = k3*k2; + + const float invSqrt2Pi = 0.39894228040f; + float w = (0.31938153f * k - 0.356563782f * k2 + 1.781477937f * k3 + + -1.821255978f * k4 + 1.330274429f * k5); + w *= invSqrt2Pi * exp(-L * L * .5f); + + if (X > 0.f) + w = 1.0 - w; + return w; +} + +export void +black_scholes_ispc(uniform float Sa[], uniform float Xa[], uniform float Ta[], + uniform float ra[], uniform float va[], + uniform float result[], uniform int count) { + for (uniform int i = 0; i < count; i += programCount) { + float S = Sa[i + programIndex], X = Xa[i + programIndex]; + float T = Ta[i + programIndex], r = ra[i + programIndex]; + float v = va[i + programIndex]; + + float d1 = (log(S/X) + (r + v * v * .5f) * T) / (v * sqrt(T)); + float d2 = d1 - v * sqrt(T); + + result[i + programIndex] = S * CND(d1) - X * exp(-r * T) * CND(d2); + } +} + + +export void +binomial_put_ispc(uniform float Sa[], uniform float Xa[], uniform float Ta[], + uniform float ra[], uniform float va[], + uniform float result[], uniform int count) { + float V[BINOMIAL_NUM]; + + for (uniform int i = 0; i < count; i += programCount) { + float S = Sa[i + programIndex], X = Xa[i + programIndex]; + float T = Ta[i + programIndex], r = ra[i + programIndex]; + float v = va[i + programIndex]; + + float dt = T / BINOMIAL_NUM; + float u = exp(v * sqrt(dt)); + float d = 1. / u; + float disc = exp(r * dt); + float Pu = (disc - d) / (u - d); + + for (uniform int j = 0; j < BINOMIAL_NUM; ++j) { + float upow = pow(u, (float)(2*j-BINOMIAL_NUM)); + V[j] = max(0., X - S * upow); + } + + for (uniform int j = BINOMIAL_NUM-1; j >= 0; --j) + for (uniform int k = 0; k < j; ++k) + V[k] = ((1 - Pu) * V[k] + Pu * V[k + 1]) / disc; + + result[i + programIndex] = V[0]; + } +} diff --git a/examples/options/options.vcxproj b/examples/options/options.vcxproj new file mode 100755 index 00000000..5b8f709b --- /dev/null +++ b/examples/options/options.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8C7B5D29-1E76-44E6-BBB8-09830E5DEEAE} + Win32Proj + options + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + 4305 + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + 4305 + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + 4305 + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + 4305 + + + Console + true + true + true + + + + + + + + + Document + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 --target=sse4x2 + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --target=sse4x2 + + %(Filename).obj;%(Filename)_ispc.h + %(Filename).obj;%(Filename)_ispc.h + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 --target=sse4x2 + + cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --target=sse4x2 + + %(Filename).obj;%(Filename)_ispc.h + %(Filename).obj;%(Filename)_ispc.h + + + + + + + + + diff --git a/examples/options/options_defs.h b/examples/options/options_defs.h new file mode 100644 index 00000000..54b8ec81 --- /dev/null +++ b/examples/options/options_defs.h @@ -0,0 +1,42 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef OPTIONS_DEFS_H +#define OPTIONS_DEFS_H 1 + +#define BINOMIAL_NUM 64 +#define N_OPTIONS 65536 +#define N_BLACK_SCHOLES_ROUNDS 20 + + +#endif // OPTIONS_DEFS_H diff --git a/examples/options/options_serial.cpp b/examples/options/options_serial.cpp new file mode 100644 index 00000000..a2689b73 --- /dev/null +++ b/examples/options/options_serial.cpp @@ -0,0 +1,114 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#define NOMINMAX +#pragma warning (disable: 4244) +#pragma warning (disable: 4305) +#endif + +#include "options_defs.h" +#include +#include + +// Cumulative normal distribution function +static inline float +CND(float X) { + float L = fabsf(X); + + float k = 1.0 / (1.0 + 0.2316419 * L); + float k2 = k*k; + float k3 = k2*k; + float k4 = k2*k2; + float k5 = k3*k2; + + const float invSqrt2Pi = 0.39894228040f; + float w = (0.31938153f * k - 0.356563782f * k2 + 1.781477937f * k3 + + -1.821255978f * k4 + 1.330274429f * k5); + w *= invSqrt2Pi * expf(-L * L * .5f); + + if (X > 0.f) + w = 1.0 - w; + return w; +} + + +void +black_scholes_serial(float Sa[], float Xa[], float Ta[], + float ra[], float va[], + float result[], int count) { + for (int i = 0; i < count; ++i) { + float S = Sa[i], X = Xa[i]; + float T = Ta[i], r = ra[i]; + float v = va[i]; + + float d1 = (logf(S/X) + (r + v * v * .5f) * T) / (v * sqrtf(T)); + float d2 = d1 - v * sqrtf(T); + + result[i] = S * CND(d1) - X * expf(-r * T) * CND(d2); + } +} + + +void +binomial_put_serial(float Sa[], float Xa[], float Ta[], + float ra[], float va[], + float result[], int count) { + float V[BINOMIAL_NUM]; + + for (int i = 0; i < count; ++i) { + float S = Sa[i], X = Xa[i]; + float T = Ta[i], r = ra[i]; + float v = va[i]; + + float dt = T / BINOMIAL_NUM; + float u = expf(v * sqrtf(dt)); + float d = 1. / u; + float disc = expf(r * dt); + float Pu = (disc - d) / (u - d); + + for (int j = 0; j < BINOMIAL_NUM; ++j) { + float upow = powf(u, (float)(2*j-BINOMIAL_NUM)); + V[j] = std::max(0.f, X - S * upow); + } + + for (int j = BINOMIAL_NUM-1; j >= 0; --j) + for (int k = 0; k < j; ++k) + V[k] = ((1 - Pu) * V[k] + Pu * V[k + 1]) / disc; + + result[i] = V[0]; + } +} + + diff --git a/examples/rt/Makefile b/examples/rt/Makefile new file mode 100644 index 00000000..7df58868 --- /dev/null +++ b/examples/rt/Makefile @@ -0,0 +1,24 @@ + +CXX=g++ +CXXFLAGS=-Iobjs/ -O3 -Wall +ISPC=ispc +ISPCFLAGS=-O2 --target=sse4x2 + +default: rt + +.PHONY: dirs clean + +dirs: + /bin/mkdir -p objs/ + +clean: + /bin/rm -rf objs *~ rt + +rt: dirs objs/rt.o objs/rt_serial.o objs/rt_ispc.o + $(CXX) $(CXXFLAGS) -o $@ objs/rt.o objs/rt_ispc.o objs/rt_serial.o -lm + +objs/%.o: %.cpp objs/rt_ispc.h + $(CXX) $< $(CXXFLAGS) -c -o $@ + +objs/%_ispc.h objs/%_ispc.o: %.ispc + $(ISPC) $(ISPCFLAGS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h diff --git a/examples/rt/cornell.bvh b/examples/rt/cornell.bvh new file mode 100644 index 0000000000000000000000000000000000000000..f7e0f3ddbed80d186b3c1e71fb5cad5319bd9d32 GIT binary patch literal 2208 zcmaKtO>Pu15QRb+N0uD0FZ(rn9`_RrRomUWpS|NS!u{_rSn!K(jg?um1L?+W$G{+m9X+utF- zAn1hS_>&^Cr{X77e~~|ge87ADr|2K>K!a)hZTH?Hy+3+V{E(l!h6nWnzpV8S`JEx2 z-t!0E>%VPy^nYR6u76{Asc%lRK7abF1sYmrdt-T)^_1wGz-M3ZSKy^Vykd^yF6(Q1 z7CAj(+b-?@n2-KCgBQKv^8U#0`u&fp|89Gu>t7zj)8CqZ^Z8LCHT|_=9cO-S1OBV& z*`K9!Z*A3z0j7j-P=u-!@YM9cTY`IWxsN{+XYy zXMW(?-2qlS}%GmZ87^w#^UnBZRt4OX?DYgwsX>Icbi z(Gvytb!h#G6Zgf?BjQ>Ix0vRyp~mU!>OCk&eYmktb!P0JnB^vW8IH!|ec66(>mq;j zpuWcb7mt3xr+&0g_mzXMdp`V#$GNbzX#ai&l*8VF6K5~x0EaoqdWSrcU(cxWhq%oA zUJi9_4!U-~cf6lnxkK>})^op4%eO^2=Z3?HJDK|}&H=nIo4=ZJny(!ExD&}A--q#j zzssQr9OcLN?8??9eGcnVj;?pkL;g9BYUl4De4EKomz)@Vs#a^w9Qf2#J~6D$t +#include +#include +#include +#include +#ifndef __APPLE__ +#include +#endif +#include "../timing.h" +#include "rt_ispc.h" + +using namespace ispc; + +typedef unsigned int uint; + +template +T *AllocAligned(int count) { + int size = count * sizeof(T); +#if defined(_WIN32) || defined(_WIN64) + return (T *)_aligned_malloc(size, 64); +#elif defined (__APPLE__) + // Allocate excess memory to ensure an aligned pointer can be returned + void *mem = malloc(size + (64-1) + sizeof(void*)); + char *amem = ((char*)mem) + sizeof(void*); + amem += 64 - (reinterpret_cast(amem) & (64 - 1)); + ((void**)amem)[-1] = mem; + return (T *)amem; +#else + return (T *)memalign(64, size); +#endif +} + +extern void raytrace_serial(int width, int height, const float raster2camera[4][4], + const float camera2world[4][4], float image[], + int id[], const LinearBVHNode nodes[], + const Triangle triangles[]); + + +static void writeImage(int *idImage, float *depthImage, int width, int height, + const char *filename) { + FILE *f = fopen(filename, "wb"); + if (!f) { + perror(filename); + exit(1); + } + + fprintf(f, "P6\n%d %d\n255\n", width, height); + for (int y = 0; y < height; ++y) { + for (int x = 0; x < width; ++x) { + // use the bits from the object id of the hit object to make a + // random color + int id = idImage[y * width + x]; + unsigned char r = 0, g = 0, b = 0; + + for (int i = 0; i < 8; ++i) { + // extract bit 3*i for red, 3*i+1 for green, 3*i+2 for blue + int rbit = (id & (1 << (3*i))) >> (3*i); + int gbit = (id & (1 << (3*i+1))) >> (3*i+1); + int bbit = (id & (1 << (3*i+2))) >> (3*i+2); + // and then set the bits of the colors starting from the + // high bits... + r |= rbit << (7-i); + g |= gbit << (7-i); + b |= bbit << (7-i); + } + fputc(r, f); + fputc(g, f); + fputc(b, f); + } + } + fclose(f); +} + + +int main(int argc, char *argv[]) { + if (argc != 2) { + fprintf(stderr, "usage: rt \n"); + exit(1); + } + +#define READ(var, n) \ + if (fread(&(var), sizeof(var), n, f) != (unsigned int)n) { \ + fprintf(stderr, "Unexpected EOF reading scene file\n"); \ + return 1; \ + } else /* eat ; */ + + // + // Read the camera specification information from the camera file + // + char fnbuf[1024]; + sprintf(fnbuf, "%s.camera", argv[1]); + FILE *f = fopen(fnbuf, "rb"); + if (!f) { + perror(argv[1]); + return 1; + } + + // + // Nothing fancy, and trouble if we run on a big-endian system, just + // fread in the bits + // + int width, height; + float camera2world[4][4], raster2camera[4][4]; + READ(width, 1); + READ(height, 1); + READ(camera2world[0][0], 16); + READ(raster2camera[0][0], 16); + + // + // Read in the serialized BVH + // + sprintf(fnbuf, "%s.bvh", argv[1]); + f = fopen(fnbuf, "rb"); + if (!f) { + perror(argv[2]); + return 1; + } + + // The BVH file starts with an int that gives the total number of BVH + // nodes + uint nNodes; + READ(nNodes, 1); + + LinearBVHNode *nodes = AllocAligned(nNodes); + for (unsigned int i = 0; i < nNodes; ++i) { + // Each node is 6x floats for a boox, then an integer for an offset + // to the second child node, then an integer that encodes the type + // of node, the total number of int it if a leaf node, etc. + float b[6]; + READ(b[0], 6); + nodes[i].bounds[0].v[0] = b[0]; + nodes[i].bounds[0].v[1] = b[1]; + nodes[i].bounds[0].v[2] = b[2]; + nodes[i].bounds[1].v[0] = b[3]; + nodes[i].bounds[1].v[1] = b[4]; + nodes[i].bounds[1].v[2] = b[5]; + READ(nodes[i].offset, 1); + READ(nodes[i].primsAxis, 1); + } + + // And then read the triangles + uint nTris; + READ(nTris, 1); + Triangle *triangles = AllocAligned(nTris); + for (uint i = 0; i < nTris; ++i) { + // 9x floats for the 3 vertices + float v[9]; + READ(v[0], 9); + float *vp = v; + for (int j = 0; j < 3; ++j) { + triangles[i].p[j].v[0] = *vp++; + triangles[i].p[j].v[1] = *vp++; + triangles[i].p[j].v[2] = *vp++; + } + // And create an object id + triangles[i].id = i+1; + } + fclose(f); + + // round image resolution up to multiple of 4 to makethings easy for + // the code that assigns pixels to ispc program instances + height = (height + 3) & ~3; + width = (width + 3) & ~3; + + // allocate images; one to hold hit object ids, one to hold depth to + // the first interseciton + int *id = new int[width*height]; + float *image = new float[width*height]; + + // + // Run 3 iterations with ispc, record the minimum time + // + double minTimeISPC = 1e30; + for (int i = 0; i < 3; ++i) { + reset_and_start_timer(); + raytrace(width, height, raster2camera, camera2world, + image, id, nodes, triangles); + double dt = get_elapsed_mcycles(); + minTimeISPC = std::min(dt, minTimeISPC); + } + printf("[rt ispc]:\t\t\t[%.3f] million cycles for %d x %d image\n", minTimeISPC, width, height); + + writeImage(id, image, width, height, "rt-ispc.ppm"); + + // + // And 3 iterations with the serial implementation, reporting the + // minimum time. + // + double minTimeSerial = 1e30; + for (int i = 0; i < 3; ++i) { + reset_and_start_timer(); + raytrace_serial(width, height, raster2camera, camera2world, + image, id, nodes, triangles); + double dt = get_elapsed_mcycles(); + minTimeSerial = std::min(dt, minTimeSerial); + } + printf("[rt serial]:\t\t\t[%.3f] million cycles for %d x %d image\n", + minTimeSerial, width, height); + printf("\t\t\t\t(%.2fx speedup from ISPC)\n", minTimeSerial / minTimeISPC); + + writeImage(id, image, width, height, "rt-serial.ppm"); + + return 0; +} diff --git a/examples/rt/rt.ispc b/examples/rt/rt.ispc new file mode 100644 index 00000000..08dabb0e --- /dev/null +++ b/examples/rt/rt.ispc @@ -0,0 +1,273 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#define bool int + +typedef float<3> float3; + +struct Ray { + float3 origin, dir, invDir; + uniform unsigned int dirIsNeg[3]; + float mint, maxt; + int hitId; +}; + +struct Triangle { + uniform float3 p[3]; + uniform int id; +}; + +struct LinearBVHNode { + uniform float3 bounds[2]; + uniform unsigned int offset; // num primitives for leaf, second child for interior + uniform unsigned int primsAxis; // 0:7 nPrimitives, 8:15 split axis, 16:31 padding +}; + +static inline uniform int nPrims(const reference LinearBVHNode node) { + return (node.primsAxis & 0xff); +} + +static inline uniform int axis(const reference LinearBVHNode node) { + return ((node.primsAxis >> 8) & 0xff); +} + +static inline uniform bool isInterior(const reference LinearBVHNode node) { + return nPrims(node) == 0; +} + +static inline float3 Cross(const float3 v1, const float3 v2) { + float v1x = v1.x, v1y = v1.y, v1z = v1.z; + float v2x = v2.x, v2y = v2.y, v2z = v2.z; + float3 ret; + ret.x = (v1y * v2z) - (v1z * v2y); + ret.y = (v1z * v2x) - (v1x * v2z); + ret.z = (v1x * v2y) - (v1y * v2x); + return ret; +} + +static inline float Dot(const float3 a, const float3 b) { + return a.x * b.x + a.y * b.y + a.z * b.z; +} + + +static void generateRay(uniform const float raster2camera[4][4], + uniform const float camera2world[4][4], + float x, float y, reference Ray ray) { + ray.mint = 0.f; + ray.maxt = 1e30f; + + ray.hitId = 0; + + // transform raster coordinate (x, y, 0) to camera space + float camx = raster2camera[0][0] * x + raster2camera[0][1] * y + raster2camera[0][3]; + float camy = raster2camera[1][0] * x + raster2camera[1][1] * y + raster2camera[1][3]; + float camz = raster2camera[2][3]; + float camw = raster2camera[3][3]; + camx /= camw; + camy /= camw; + camz /= camw; + + ray.dir.x = camera2world[0][0] * camx + camera2world[0][1] * camy + camera2world[0][2] * camz; + ray.dir.y = camera2world[1][0] * camx + camera2world[1][1] * camy + camera2world[1][2] * camz; + ray.dir.z = camera2world[2][0] * camx + camera2world[2][1] * camy + camera2world[2][2] * camz; + + ray.origin.x = camera2world[0][3] / camera2world[3][3]; + ray.origin.y = camera2world[1][3] / camera2world[3][3]; + ray.origin.z = camera2world[2][3] / camera2world[3][3]; + + ray.invDir = 1.f / ray.dir; + + ray.dirIsNeg[0] = any(ray.invDir.x < 0) ? 1 : 0; + ray.dirIsNeg[1] = any(ray.invDir.y < 0) ? 1 : 0; + ray.dirIsNeg[2] = any(ray.invDir.z < 0) ? 1 : 0; +} + + +static inline bool BBoxIntersect(const reference uniform float3 bounds[2], + const reference Ray ray) { + float t0 = ray.mint, t1 = ray.maxt; + + // Check all three axis-aligned slabs. Don't try to early out; it's + // not worth the trouble + float3 tNear = (bounds[0] - ray.origin) * ray.invDir; + float3 tFar = (bounds[1] - ray.origin) * ray.invDir; + if (tNear.x > tFar.x) { + float tmp = tNear.x; + tNear.x = tFar.x; + tFar.x = tmp; + } + t0 = max(tNear.x, t0); + t1 = min(tFar.x, t1); + + if (tNear.y > tFar.y) { + float tmp = tNear.y; + tNear.y = tFar.y; + tFar.y = tmp; + } + t0 = max(tNear.y, t0); + t1 = min(tFar.y, t1); + + if (tNear.z > tFar.z) { + float tmp = tNear.z; + tNear.z = tFar.z; + tFar.z = tmp; + } + t0 = max(tNear.z, t0); + t1 = min(tFar.z, t1); + + return (t0 <= t1); +} + + + +static inline bool TriIntersect(const reference Triangle tri, reference Ray ray) { + uniform float3 e1 = tri.p[1] - tri.p[0]; + uniform float3 e2 = tri.p[2] - tri.p[0]; + + float3 s1 = Cross(ray.dir, e2); + float divisor = Dot(s1, e1); + bool hit = true; + + if (divisor == 0.) + hit = false; + float invDivisor = 1.f / divisor; + + // Compute first barycentric coordinate + float3 d = ray.origin - tri.p[0]; + float b1 = Dot(d, s1) * invDivisor; + if (b1 < 0. || b1 > 1.) + hit = false; + + // Compute second barycentric coordinate + float3 s2 = Cross(d, e1); + float b2 = Dot(ray.dir, s2) * invDivisor; + if (b2 < 0. || b1 + b2 > 1.) + hit = false; + + // Compute _t_ to intersection point + float t = Dot(e2, s2) * invDivisor; + if (t < ray.mint || t > ray.maxt) + hit = false; + + if (hit) { + ray.maxt = t; + ray.hitId = tri.id; + } + return hit; +} + + +bool BVHIntersect(const LinearBVHNode nodes[], const Triangle tris[], + reference Ray r) { + Ray ray = r; + bool hit = false; + // Follow ray through BVH nodes to find primitive intersections + uniform int todoOffset = 0, nodeNum = 0; + uniform int todo[64]; + + while (true) { + // Check ray against BVH node + LinearBVHNode node = nodes[nodeNum]; + if (any(BBoxIntersect(node.bounds, ray))) { + uniform unsigned int nPrimitives = nPrims(node); + if (nPrimitives > 0) { + // Intersect ray with primitives in leaf BVH node + uniform unsigned int primitivesOffset = node.offset; + for (uniform unsigned int i = 0; i < nPrimitives; ++i) { + if (TriIntersect(tris[primitivesOffset+i], ray)) + hit = true; + } + if (todoOffset == 0) + break; + nodeNum = todo[--todoOffset]; + } + else { + // Put far BVH node on _todo_ stack, advance to near node + if (r.dirIsNeg[axis(node)]) { + todo[todoOffset++] = nodeNum + 1; + nodeNum = node.offset; + } + else { + todo[todoOffset++] = node.offset; + nodeNum = nodeNum + 1; + } + } + } + else { + if (todoOffset == 0) + break; + nodeNum = todo[--todoOffset]; + } + } + r.maxt = ray.maxt; + r.hitId = ray.hitId; + + return hit; +} + + +export void raytrace(uniform int width, uniform int height, + const uniform float raster2camera[4][4], + const uniform float camera2world[4][4], + uniform float image[], uniform int id[], + const LinearBVHNode nodes[], + const Triangle triangles[]) { + static const uniform float udx[16] = { 0, 1, 0, 1, 2, 3, 2, 3, + 0, 1, 0, 1, 2, 3, 2, 3 }; + static const uniform float udy[16] = { 0, 0, 1, 1, 0, 0, 1, 1, + 2, 2, 3, 3, 2, 2, 3, 3 }; + + // The outer loops are always over blocks of 4x4 pixels + for (uniform int y = 0; y < height; y += 4) { + for (uniform int x = 0; x < width; x += 4) { + // Now we have a block of 4x4=16 pixels to process; it will + // take 16/programCount iterations of this loop to process + // them. + for (uniform int o = 0; o < 16 / programCount; ++o) { + // Map program instances to samples in the udx/udy arrays + // to figure out which pixel each program instance is + // responsible for + const float dx = udx[o * programCount + programIndex]; + const float dy = udy[o * programCount + programIndex]; + + Ray ray; + generateRay(raster2camera, camera2world, x+dx, y+dy, ray); + BVHIntersect(nodes, triangles, ray); + + int offset = (y + (int)dy) * width + (x + (int)dx); + image[offset] = ray.maxt; + id[offset] = ray.hitId; + } + } + } +} diff --git a/examples/rt/rt.vcxproj b/examples/rt/rt.vcxproj new file mode 100755 index 00000000..4a893a8f --- /dev/null +++ b/examples/rt/rt.vcxproj @@ -0,0 +1,165 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {E787BC3F-2D2E-425E-A64D-4721E2FF3DC9} + Win32Proj + rt + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Document + +cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 + + +cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h + + %(Filename).obj + %(Filename).obj + +cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 + + +cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h + + %(Filename).obj + %(Filename).obj + + + + + + + + + + diff --git a/examples/rt/rt_serial.cpp b/examples/rt/rt_serial.cpp new file mode 100644 index 00000000..53f7d4cb --- /dev/null +++ b/examples/rt/rt_serial.cpp @@ -0,0 +1,288 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS +#define NOMINMAX +#pragma warning (disable: 4244) +#pragma warning (disable: 4305) +#endif + +#include + +// Just enough of a float3 class to do what we need in this file. +#ifdef _MSC_VER +__declspec(align(16)) +#endif +struct float3 { + float3() { } + float3(float xx, float yy, float zz) { x = xx; y = yy; z = zz; } + + float3 operator*(float f) const { return float3(x*f, y*f, z*f); } + float3 operator-(const float3 &f2) const { + return float3(x-f2.x, y-f2.y, z-f2.z); + } + float3 operator*(const float3 &f2) const { + return float3(x*f2.x, y*f2.y, z*f2.z); + } + float x, y, z; + float pad; // match padding/alignment of ispc version +} +#ifndef _MSC_VER +__attribute__ ((aligned(16))) +#endif +; + +struct Ray { + float3 origin, dir, invDir; + unsigned int dirIsNeg[3]; + float mint, maxt; + int hitId; +}; + + +// Declare these in a namespace so the mangling matches +namespace ispc { + struct Triangle { + float3 p[3]; + int id; + }; + + struct LinearBVHNode { + float3 bounds[2]; + unsigned int offset; // primitives for leaf, second child for interior + unsigned int primsAxis; // 0:7 nPrimitives, 8:15 split axis, 16:31 padding + }; +} + +using namespace ispc; + +inline int nPrims(const LinearBVHNode &node) { + return (node.primsAxis & 0xff); +} + +inline int axis(const LinearBVHNode &node) { + return ((node.primsAxis >> 8) & 0xff); +} + +inline bool isInterior(const LinearBVHNode &node) { + return nPrims(node) == 0; +} + +inline float3 Cross(const float3 &v1, const float3 &v2) { + float v1x = v1.x, v1y = v1.y, v1z = v1.z; + float v2x = v2.x, v2y = v2.y, v2z = v2.z; + float3 ret; + ret.x = (v1y * v2z) - (v1z * v2y); + ret.y = (v1z * v2x) - (v1x * v2z); + ret.z = (v1x * v2y) - (v1y * v2x); + return ret; +} + +inline float Dot(const float3 &a, const float3 &b) { + return a.x * b.x + a.y * b.y + a.z * b.z; +} + + +static void generateRay(const float raster2camera[4][4], + const float camera2world[4][4], + float x, float y, Ray &ray) { + ray.mint = 0.f; + ray.maxt = 1e30f; + + ray.hitId = 0; + + // transform raster coordinate (x, y, 0) to camera space + float camx = raster2camera[0][0] * x + raster2camera[0][1] * y + raster2camera[0][3]; + float camy = raster2camera[1][0] * x + raster2camera[1][1] * y + raster2camera[1][3]; + float camz = raster2camera[2][3]; + float camw = raster2camera[3][3]; + camx /= camw; + camy /= camw; + camz /= camw; + + ray.dir.x = camera2world[0][0] * camx + camera2world[0][1] * camy + camera2world[0][2] * camz; + ray.dir.y = camera2world[1][0] * camx + camera2world[1][1] * camy + camera2world[1][2] * camz; + ray.dir.z = camera2world[2][0] * camx + camera2world[2][1] * camy + camera2world[2][2] * camz; + + ray.origin.x = camera2world[0][3] / camera2world[3][3]; + ray.origin.y = camera2world[1][3] / camera2world[3][3]; + ray.origin.z = camera2world[2][3] / camera2world[3][3]; + + ray.invDir.x = 1.f / ray.dir.x; + ray.invDir.y = 1.f / ray.dir.y; + ray.invDir.z = 1.f / ray.dir.z; + + ray.dirIsNeg[0] = (ray.invDir.x < 0) ? 1 : 0; + ray.dirIsNeg[1] = (ray.invDir.y < 0) ? 1 : 0; + ray.dirIsNeg[2] = (ray.invDir.z < 0) ? 1 : 0; +} + + +static inline bool BBoxIntersect(const float3 bounds[2], + const Ray &ray) { + float t0 = ray.mint, t1 = ray.maxt; + + float3 tNear = (bounds[0] - ray.origin) * ray.invDir; + float3 tFar = (bounds[1] - ray.origin) * ray.invDir; + if (tNear.x > tFar.x) { + float tmp = tNear.x; + tNear.x = tFar.x; + tFar.x = tmp; + } + t0 = std::max(tNear.x, t0); + t1 = std::min(tFar.x, t1); + + if (tNear.y > tFar.y) { + float tmp = tNear.y; + tNear.y = tFar.y; + tFar.y = tmp; + } + t0 = std::max(tNear.y, t0); + t1 = std::min(tFar.y, t1); + + if (tNear.z > tFar.z) { + float tmp = tNear.z; + tNear.z = tFar.z; + tFar.z = tmp; + } + t0 = std::max(tNear.z, t0); + t1 = std::min(tFar.z, t1); + + return (t0 <= t1); +} + + + +inline bool TriIntersect(const Triangle &tri, Ray &ray) { + float3 e1 = tri.p[1] - tri.p[0]; + float3 e2 = tri.p[2] - tri.p[0]; + + float3 s1 = Cross(ray.dir, e2); + float divisor = Dot(s1, e1); + + if (divisor == 0.) + return false; + float invDivisor = 1.f / divisor; + + // Compute first barycentric coordinate + float3 d = ray.origin - tri.p[0]; + float b1 = Dot(d, s1) * invDivisor; + if (b1 < 0. || b1 > 1.) + return false; + + // Compute second barycentric coordinate + float3 s2 = Cross(d, e1); + float b2 = Dot(ray.dir, s2) * invDivisor; + if (b2 < 0. || b1 + b2 > 1.) + return false; + + // Compute _t_ to intersection point + float t = Dot(e2, s2) * invDivisor; + if (t < ray.mint || t > ray.maxt) + return false; + + ray.maxt = t; + ray.hitId = tri.id; + return true; +} + + +bool BVHIntersect(const LinearBVHNode nodes[], const Triangle tris[], + Ray &r) { + Ray ray = r; + bool hit = false; + // Follow ray through BVH nodes to find primitive intersections + int todoOffset = 0, nodeNum = 0; + int todo[64]; + + while (true) { + // Check ray against BVH node + const LinearBVHNode &node = nodes[nodeNum]; + if (BBoxIntersect(node.bounds, ray)) { + unsigned int nPrimitives = nPrims(node); + if (nPrimitives > 0) { + // Intersect ray with primitives in leaf BVH node + unsigned int primitivesOffset = node.offset; + for (unsigned int i = 0; i < nPrimitives; ++i) { + if (TriIntersect(tris[primitivesOffset+i], ray)) + hit = true; + } + if (todoOffset == 0) + break; + nodeNum = todo[--todoOffset]; + } + else { + // Put far BVH node on _todo_ stack, advance to near node + if (r.dirIsNeg[axis(node)]) { + todo[todoOffset++] = nodeNum + 1; + nodeNum = node.offset; + } + else { + todo[todoOffset++] = node.offset; + nodeNum = nodeNum + 1; + } + } + } + else { + if (todoOffset == 0) + break; + nodeNum = todo[--todoOffset]; + } + } + r.maxt = ray.maxt; + r.hitId = ray.hitId; + + return hit; +} + + +void raytrace_serial(int width, int height, + const float raster2camera[4][4], + const float camera2world[4][4], + float image[], + int id[], + const LinearBVHNode nodes[], + const Triangle triangles[]) { + for (int y = 0; y < height; ++y) { + for (int x = 0; x < width; ++x) { + Ray ray; + generateRay(raster2camera, camera2world, x, y, ray); + BVHIntersect(nodes, triangles, ray); + + int offset = y * width + x; + image[offset] = ray.maxt; + id[offset] = ray.hitId; + } + } +} diff --git a/examples/rt/sponza.bvh b/examples/rt/sponza.bvh new file mode 100644 index 0000000000000000000000000000000000000000..e59bde249fe90d6c1009db7eba49b97aaf02a95d GIT binary patch literal 6269120 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

A>F{ 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�T$(eR;oDOy3tS@1M;-8vfV(udDVO3ON2LAAQg-n^?e2zdQVm z(Q)}h%BPGOw*s&dp_{$M}s!X$K>9>R?gp*_SyK_ zb@jnvZ#)ugsPWeq@Pp2(Q@$JVN&8<+zbjn!w^;qeCjU$Q!T+Y}KbueN^k}e&`fn)E z6CZpR?92ZDEc@`C;j(^je7yX|-{yZu;iWQvHok|%6Ce5C6E5pB{6_xT^CSOgU$)Wok4tdM5}aqTb(DUuhf_Y_JxHINuaM@Z?+%ys z1>?j-`7!@piBI(WMtsCX`$zl2-<{!Zd|>S>{TF-}jX!^WCY-S{oV4~-o}XXB`^j7) z)ISt#uROdT5&v-JQgGU$PMZGw`LM>9m$z5GJ?WG2BQa;{;j%vin{aI6A3beBwHqm2~{6|mz@2KgkO>pLKaN4RJ)c>dgzMxIW+hbqWH@$tYZwHtB=QsRg6aVP( zzjKs-X@278TPxoNy_CN+H~rS|_4DILY|_75`Rj*$`F_ftKb*0)@xD>|iHZ1(-(Nc4>5(bJX=)cC{oMf@9IQMr}!&518MKi+fGZw9ydf#|VGeCY8%ME!^JH}sy< zz7AIZ;r(r%fArjz+CFcJ{kGxxfu3WZws;e`yuZLFoZt8xJ^qJA{B#)--6 zH-bm=XY8YaTmFy0esup9oc7!Dm*=yg=u0I&oj*A}@$!ZsrETbuE_!qtt(rx9K70^F@3e?91~{+c&;8T)uz0^3uMs2EF+otM;pk z^0mg2mx8`R4>#OPvuuzkRST_b=a*!P(2Pr}7%LZ!v8; zr&seKlQ)$5^LQ{x;|mh}mqmHr68|zkAiga98gLoEn15_qeE6Rl`Cq(s-`FSiiJy1* zQ`CP|t{7h(`|^I^uC225tHEV{Z~n3A{ZCW-`S{Yj6uqqfV4wU=^Afn!U(0{eg#Gf~ zVgB!@>C4+UzT(%`0q?r^RsZF2d}-bS`;vbX`h@<|{NLrmrTsVm*!2DnQvX2#$3O3~ z4^;m{61-_%uV&-_U|;&5w0+}$r#Lpf|3lP%S*%a zh)?!+&}P9Ivxa|%{7?8P4YB`x`xg5DU3lr4V>Eti^TPHijQ?1Tzcxpk;rVwn+iCms zD|#6pk$!7)!uBQ9{|uM@m;6h%4`KU1ThmvS$ti0mDj%GqPA2O&?{6LtR$yPw|2O;j z`rRQwKTGv}lv|q;*6$8lmwrSq^KaAV>sP4%0WRlDG5#WcEC1y(ey9JMtM-S>`aqJe z__e*(uT$W%zMJL?7Ki+MvCsV9%DmY({de$d`^NtB^(*v$n)+w`BJ^(@J!SbD;+OHK z#h)+Vq5dnl^bgCgo*j-Kw|IQOx>Gi3Uh|(XHGT8?O8l~a#Pczq^;XVW;eor8zPgxC z-16}O)Ft%rKJXUPl|Ogl>pA$Y?;O><{EOKGZs+yqho;`vu$v^qN0gdOTKTq{F1swgZ zqW=PY-&*C%Zb2m`_ZmZeNc2XZ zx16(CaE1D>E8y6Ne~SIvM-_0=5B~%%`zyL{6#C~k@BeDGKeB*7`C)B9d>^Bi{q@E4 zAHijQ$n*K^&J9$<|Dq@VZ`SmU&aJk6A%E|cErLZ+`m=b;9$N%AXnggVdiaO~DUVppBS6;xoUq}6G8@z*mng5&rwEk_l%s;IDpz-zR9_+UW z`C5mquQm_)ZdUUpTh#|M&Tkjot^Nx+{^4(7U&cS!&(gmMm-m0zr2eAu{vS~PHOg0B z8uIG-vzqVur7<|>+xEfz>c66Z6CeBy?5{htfSdkxxU5fN6aQ$u|A*B6&;pL0_T@G7 zBWen`wLh=IWqx7p7aHHby@-9epA4V0f1cBRKB>G$`I6JtR^GX0R`Zu@j0#@)qf_v> z@@nPV?zE2b!>7(_o;`kKu=|zBgi{XaHIKN`y)(*J^{Z)hg(etMVSS>@%*r%zs6^#jUhHSf}MR4`_F z=inKQZ&(2*|KKm;U&ep<&(gmDm+>n$iLXgC79akfSNjzO9RJGE%lM#}{yF%!>&j&02w_Tfrp7Fzz@bxRS|9*37b)x@Sh`_}(Hj(wT`XW2);1TOFQ;q;m5{&}(RQfa^8Kos|G_?b>;H%a{im9~$^@q`H2yI0%lnsN`iI~$Kd|_H|Ht!RuJKhVH=C9| z`mzUzPxiN)KHb0F2bcHX#?$@VH`tf&=RNoR+t-@DynXc4CF}q0CH|CsufGQ_-$!8I zG`{?Qr~Z@N_iuL*zpT%ow?513?|@7BW&BM2^Zf_)?>EiA(7yFa)_%}FtjOTLeg8>$ z_$AN7U)6rCrZ3HD3x81_)?eearL?cK#W!JJ`X}%7r~|dhBGHhx3Aa3WqsB1k36A$wE4~d@ZVyra+}j!wMm};sXWvhKW&dZzfSD4 zev5sZQ+fThaQXfg4bP7`m-oL)?T<)sufHa;PnpcpUk#V_AN(_aq)hnvHW7<`&C8x73k&rGW5hpOkRIEd`5YW-$*}cB7ZFXYpeabqWm)Svi}x6`IFW!gnu2D zFZyKC=ktF{&A&bM`5DL7%YDYEt&Nn=NO00}?{^KFme%kVqm^5kzUZ1f-#~fj-#F#V z^b3ej?pL7v829>1;d?dY&{%xle;c)5pWt4933{oYJl`z+#c-Lw;or)PPyc3WKU}}C zn46!@=g+3fn^bQc|K#5%@+>dHzTA(FedAt#VdNi8mj5l(es#`sufG7jydMwCXISQa z{O7}EeH#DN8DjF!e;c)5rQBlf`bNHfZmql_!SQeP_dM*M8?N72neqDhQTotWo%R0P zW4~mSmftLXF8cWsb6#J4Q$D_qs&6dH&p|KuFZw+5`m^COe3JJ@p^|UVj!`_K)xz{;}!f z>!$W){$7NiiC)%U;KY~Kp8zBs8{xrCpkAWu3|ITW^M!D%%bjbVPNqI$rd;6ziU%nsl&)nRY+iKf@xf0!ogU=i@_n27&)~C3-=L6FzVYw%v)~6*=lBi( z*!2DftNpT~{3P`9{V00k^ZG|6{uAMHeiSxIKfn3(4~^nCPMSSG0lkc$;l$_l(_f>vVi;1E0u@(6_0ew!DnAGz4_-E7X;j| zUZL^Ts2(u_}n3HDDk3ui)1A5|1>yL!X{L#w)Inn-Vd%rPLc&VIkfld5V zf9hrqip&2b&EJ}slRv+Vs*Cw(U-r@T$@{~IQ$M?O8WFcYQiIrVGerd2VY zqVd%gaM~y8!h!gIucCmP{{!GMf5fJ>FZj3iZJOFIFW|Iqv<3U4m-=5!zaLzlKQ?K9 zEdAC#?x*P+5p&wV1s9gZ?dQIcf72W1{Tz9OLMb711{gkW7EbDlz)4_cYxZj zEZ~e^@HHL1d_Pu9zYjcGAK?Al+wy+W-ak_Q@9)F-A<+71{HWXa)c23@o!}+K`BNHS zIDfP;6>Y)dc2@?}rA3;5q2Bn-efEy|WvUOyFUD!BH+k#SfUcjVg#)ofmXv}A4 z=;_OjJ^OIYpQBYjQqyN+o)r~G$NVVe;rzfj;}g?QBmd<6Kkb)suiqOk>knuwKJWi{ zwJ+!QyD{0#8|M8Vr@S)3z5S`!m-6YyL|(s_@Y01tbo`j*|3vJ|_YI6$viM}||1_W| zpQZYpi}F3uA6=&0^2eut61?R;ntzt3{`t+-^oR2k<8wcn+5EuICu#jTMR_=XHBSD( z|10%tBKBo}JkQ6t*H3_dJXN`Ay#LeGepo(?qqp)m9(|8+{%bLL{W$pisvI#{o%QAS ze6>F+!5QnAt+S)_`)5A>f;^w6yh-(0=^Kmx=FvG{CcJ*MaL%{nnOJ<@|GC(g`CTzS z3j1=tSTTN{>WkYSiC(^c^ku^PZ-UGIcke!u|Ceg|8jJEe?92R~G-c@*s=lTuuSGBGA3jff`fK2F{s86M z%A{{UuT%Ts{Lc7qcg|?8Tl?aGvBuS!KjHe0@umMB&^)2vIRRs-tCWZBuW|AZK2>-% z{^j|2|6X4Om;D8B(|G^as{OEiHIAP6ev{;9&<&V#k?K|bm?|sTERd0Fj%f}%6%l&>n&%8b-yj0%r6SKwV z{XeMbFE7dmV!y1o{$bTu7S#_xFXLCAXWsuFaH;>Ki7~m&&#e3|(ew{cZh3af#Z%+* z{h0E>3GT~xf9%Wn*XN1X_Z80j6JpBp|AeMb?oTYj`(S^6x!{zJq1bXvbNT;_Lh)^|N8{+HE$ z*gvE>YneNtKO=m9!1`TU|ElW4{wK|uEA5D0=KuI-{Fm160GIFQ;EZ29C;#8VzU=SJ z; zRN%iWT)v-$-+1922~Pffs`kV3nZ>)Hm;DLoH@fwKgr5BA3_m_x-(Ta{B?(Ucf2sDv z__FvH&VLr)9{aL>hX0z6|C6v!`RD|X(tqkBOB0;(^|i~tEWRE3sD3W`;q`=``nN4y z#)tSP{|}Nn=jYcYZhj3XCOEP3{C~s0>|Zf`n*Xfvh2S^q%KZ^Vy%;^%+2 zhDYzO`Hl3`SCT*UmA`8IVfziI%)luN@U75G|B8KnL(f3`t( z|DUG6M!D(f%T52M@`?m!EMj~!?92BnjPJ7ao4{rKNlf^+@e}`x|9{l}VCAF_PG1Wr zeSa$-kl^(7#y7&g^q<6(rQZ;~VxW#6@NeS}{ulo(bbY9Af-`IdrFYh0DK534=C0xEQ zhLitj$bbHq=d&U9OTzUVIBh1Jwi3R&=u2gP0D68yuXBCT^S`BVIiHO@M^F6z`ERNA zYjyp@{KL)vW}1H^m79H?i%0f1RUYb%vlf6J|1Iz@-*>QnV%+Qh`CNFkK4Iy@KmSYm zwov;`y8d9Cx^8?GdU?N%Pvc(yKe)VKE|&iGk$t#5AJ$T+ALL~_cu9lmJ?Htux5?0x zR^xx*U(TnX%w_3+gG>HU<~%q5zY6DkJ!10D$LjBP>OXux>GKy({%@=CH>y61|AKwV zf9&I*H1T}Ue=qu<;nDgF{`t+9pY7Ftm9DS&{I~d4qL=+y*u=lrKP=C81zg70*ra{q zH{X8s*7VgVr%i;@K4YJ@w1?xg$#D7)IBj`%jW2vZ38zeX{uBOX{Dgnv_j>xeAK|ip z3=RJI&HL}A_D96r`VWimzv$)rOZ52ndivrY;8K6FN&5NCr+-JazgNty|G+-&`}gSO zei-z`=k-qu{|+9tFO*5fzrK9W#C~bmei>(fCH846hA0o`KgQV$XMCXYMs0siANaZ2 zH~zcKulg$w+c)Nn_&2_z?8WN`FA2xr#%as25AUly9AA6Bdc?maee!-BjpwHS1}@*f z!_lPue1BT{xi7rZ-MOJ{7 zQ~Q<5r#%#M_Ggp7>?N*KJ}Q&5m%1D-_rGJ`>v>l25vm`k{MFAx`|RI_^R3n=5+C1B zn%=(O;(yV91eg3}&$+ixeDLZhKDf6J$5xfbH%Rqa{6q3b-ru4pCice@pXon<%lM1m z@Ne;%|5~*_sVILRy|nM>@$dDe68|!|yx+9+^PA8AaoBHB9dptQZ?(l2`g}%e`pXLV z-7hWIz3NS>5A&b+(X;>C_>Ga{KL5IpEv(+3g`O{Y?8io{!P;ODsw#~<}_z7|3u{#Mfn@} zm-&_HEq{3a=wFXG{(by#>d%zOe-|0{f9>~$@_nQ9r#X4Sw+KtcKl4}P_I-ls_gDK#PXA;4MdFXz7qdzJ7=HmS?K>K{ z#b@y!r11^V=bz@p@*MF+-{*Pzrhf*$IEeF)Jn{K=DE8(25Yk8f8Ye#5=cm#0ep=%5 z9Q*LYRbO9}KSlcFe14xN-v5(u*MDHsj~}kq^oRZP<}EM`p`byzCY~y z79NKg2QzF8Am1%zXTC;(rMH(tnU9pMKLn z0GIhG-@N$rS^m#e|KazOK7DY~avyp*UxqaM^qKx1c(lKm=TDlgeDM6|VPD>_k^i1! z3x1aRug&CqYjS23ANt>J2<`Lz3i>+ve&sIwN6!!Y{Dy!27yTV@ng5u7euMMB_`eM< z`{x*c`S?g5d_Mjq|BdsTPv5!9!}WW!>G`cPwQ`i%lMu$ljZ+HO@B=$CoLB! zAFbTy5Al;1H<3PBA12SRZ}|g9zX&ex?=4R(e=Pmi!{z&W(mz+m|HRK;d^q+0GW8$6 zpJ4n9=UW6gFzFXkY{(RH3mT3GE z?2io7XWZ*=Q+-%|jeGsY=%sv+C&s=0BDlPt^W4XOr^Y|LD8CTB)PMBEoKF7*aM?fX z*C+k+zX$vB{5@waiRa7w@_h9Bh5PF%KjfL$->3Q})ssHB*Pn-8)(`j%JvP05K3v|v zF@9kG8}m=U|8YF$v&jA@-Z{Y0d%jBZr!wZe^Mu>`k5A!pJ{)@6Uvc;!6)}HZ`FQ2_ ze*Ni*jWK^wd6{zd{IX`U;aj6){<+^Z&T=3g!0x=AxhTe2MZfKI6RqG5xvZ zkBqPUo&c{uTR8m-Yd#jA_uq_tIsc>>pND;!pBCd!slKczKMTE#f6!a}-v60!d4I!i z7N5_*XVm_<1o!*H&paH1JZ1I@Bc*jJM#UG*!1ZxBc;~MV>%>GX8_x{voe_&)GNr>|J^L?<$w~FHVnri|=^szcW0+z5ZCzC(oZe zG5g;C(Qql>*!1bQ|NTJI7w(TYZu{$5%RLJJVjsQjFQff2{U;j#umt~YZe`3rRz5tz zv2Xe#u`m6)J_hrwHp%#}@^5breXH>` zDYyNVyY(I(^Dk5%?(a8l-v_Xkekk$F_e-S7_J?}?H)?-Kg0HwKZ~yBIj(tn(A=sDm zL%e;jKZx|p{(JH)%l`pz*&l{YpMLw_m63nA?caU=$sw_=AENYo?!QmipZIcRYTxz` zd;JQvAAa9p{Mv41vHhQv2MIm)Ex!G*zwhn|?)5WBAN$uOPtCsfzYko-&)D?oxBvY` z(^r$=weI_fY514%8G74)PWdtY9~ysof{)#DP|SZ?dv4;(*C38H{O|e{RFs_AKR0W9>46O=g-Og zrO}=Z-XGCEF#ckH#}+#N$;F&Dh4zVeLGX1{-!JAiKH*&ud^P3a_<}wUPG4udRCzdl zG0ynH_&DO1^Pd=h829=ya2en7n{o2W^lPg9Q3+08W4xvEiUg;xGCo@Dv%i@B*X(=! zD7bvT@45HCw%QN-?=1aD^s@fX^E2-CO>ik+7L(6^^0JNEpB!`gH2TkY|Aq3=2~J;Q ze0}Bh2~J;Tyb=Ghzt_@?eXnnTPfl|0e?zrjQB+@#Ugigu=5+jZa9Mw`n0)&A-%ZuN z%nzcN;q*0>PxvOv$0j&^mGN5a%le6>DXp)8%lUPlTlvTS=4!t-!M*=#^s+z0@+2L9 z6wD#8O98>k2N2M`@_1y<@`Gw8va()u#EeBa@@_unJ(@45Fs1iiG6R%X-j4~9$m^XVr(o>k=UE1DSwFD+Bmd1mwsuzg;rQ0_-}9W) zlc!#fuYqt`f3)^B-T(Dd`&BU~&Ges?75cB;m5+%zWeRTn!vO3{|3Ldi{Y>los=h4d zlsWV_NB!d-=({x~+CTG;ul{iPzQD>1@iTrQ|9O@bYCrtGmGra!h4B-6Vc+S)Qf+m#h79 z9p7f@cR?@n1Iv@NerLFx|7XuH{rnr$eh_o?#Bb%JHcG$g*}p_y8LxrM`54B@6VG?T zzpU@TiQns~YdgYaf056B^N+21wLiQl-vPax4~X9OZq1SzdKyYw@*Lu@%%_%H@K7^)-UnN`sHiCh37-le;$bcQu+Q?xa}V@&RXdt<-;;L z?;5&@eby(?X(zCB#dFN0HlNYh`h z4OIJ-pR?3{MXXQrW25w&eb1@ChbteLsi&+T7R8^Xhqog>8Nb+?zPAtG1}^Kf#`(?a z2mX&z|588PI|bv^pCi?Oc>WUQ%j@A=V_){?*gJzXZwr_8apP!w`*n=kuPDm5LNCwX z_N=D$Tf$|1z_@RJc|LPAeZw+2GOK{iK-9xzot3u`xf|@_Q&?jrpH&C z!_VG5=4t!0)qYtf$JS=(<@*5J)0(!wDO{evaX)?}{ikdC!u_qppXPJbe>P|Qxe4~A z|FS)?etv=d)1v&z;*8}sMlbyn^C$fK`49SyqWDek|8}zb1VD^1{ z=r@F)H%a>k>TkMywua04Eb~v!52JtZ_Ya)92mQma+@mY|H~-jvb?rYk9^F~f^5Yi` z!BhQ(%l=l{JUHj`!y6|w2Jq`O{(8ON*7(Bv>+lKh z*Jd}355Au0S-vJov=oRy~|Lxg4d5;dd7wbXg z;r;WbUsM)8U-shNr98at5V{ zKNBqDBP*Xg6R-aVF6%q|hJS1lAA0=XsrE+~@Lk?%r~Gg9Q=63IKdoN{KVnesubH8J zY-0b6OWW&S#CtS-O}VPtB!8)-z3xB#pXf{F{XO~*R?6O9*^|oun*Ki3*Jg6=Z}PZ#Z(jd^rmv9WpXc*C@vo>;ef5r;2WkCpaGC$}{D}{ZfBuhZd_xi(|CA5Tihe|S znWo?LaQw6X@)zQl`M=rcH?Lm_m+=F<>k*r)P49mN@k#lo{Eqo@GvPh-{vs>CtJFX3 zZy{g$KrZ+SF5j2Jxl<4QgL2mp?N6KibFxMP=YH%w|L^KM#QY6-iL?*xlAQaM9+{R4 zURHfYg8y5&gWj(P|Bv!OId|USf9~CR{xn>^@5g?c-!(E9{6zZq*(H->|3^6c2TJns z;U8P*pI85b6a1Ug^ZYsWFYBjHZ@gBv#r_xjGXBou*#7}8?`O7pcZWEC%|H4V)qf%9 zS-`(XFV8-cxcuDn@1spy6JM=QYzhz;efB3g>S>L(u&^+h)^8DbhVqfmx@_g#H zVgA6sK`-?KZqLW`@2!&yUf1|)5*$7D;a{Vd@ztt^Z2ebo`96vAhlcXu%imjSKS=QZ zy^=4VU!s@q1G4m#k9SmGk>I9>e}Vql3XRYE=YG(a|2HsL4wv)$_t_v!lhq&YhlPKn z_J<|-L6dsx{ipEv;j(|)>%VXA-E8(h$G((bIKN@v^ryTtF!)gIC;7U!hW6o~p_las zvzgX^3YYhbrt$G_bDgA5?I-!1kHY(D;h#qSy}o6)-p!}U{ju;*uwP!AvzW2(^`EQ0 zs(_pRWAt)9x7qair}vcng-iZC`%5qN>EnlgiG4ZWG|jnR7ycpo*8P<8o7ev~WMJ?C zT-FB%+}o?5eWm^US?xFJ{l3=za#!s?KW!82Fk)cvlk)NeZz*^24*8;OaOcti!4Jx7 z5}dnyw`wK#&n*}bd=D=jk;(rWHz0VQ_@w>eeqrP0{=sj{meYUqkn?Br{(n^a z!!tSl-$O6^dy47bh0FRBHgCOm3$^dlzf$dUKVTsz{qLZc_kUTO{CgWN?I-zf&&S4R zqi}yh3z*nkw0CJ z?x5q>&2{`cJm$0suPqDXpSx{Cu%V8BgB)!heFkmP7HxZLTl@Xy4Z%99?-z60{84-5 z`D)4sE4My1_jI0@!lnFTKh3xKvp#s0_~rQ6whCg3-p|LE7pzP!IRPM`UozG3>{t`gHFf{kCd9n~z*p8!SOD->;e;|CWE~AA`&Leda7DX5@btwJ-Z~ zgwub}KF&R}r?%DD@2tErlb>*LZLrwcM^F4-|0q0a|M5?o?Vo=)wI82dV$2T&pwsH6L>Fu{~%oU7g>C0_+RtiC-R@gS*zGx{g)T$ zi4Xn&_GSI6nErmatPdJTv-c5s|NYed(4zc4^e+d>SszI2?}f|w3Y)e*LjF%XGtB=X zn!XVUet&JqS*r+?S7dV5I&vCcWl??){-yuLKkFkrQ?rl$Zn*Ss79Zc|8pr?ODE(>v zt9-H#zYD#*e@t`I2fs6ApWl4?hidwEj`eVCp=T}ScG0u{((Ln_*ALhD1{dYG;a}!Q z=vjYB>u-(Xv-(Ayz`oV53bj8Z*Z#PE&7GFE)HTCpPxozZ`EIp-|9A^}dH-Kb-=O-& zqP!L^-xrylZz}O+{%cfUQNY{Y9oGMw@h|HG#q>A9<^7GtZ|OsiuX^=g8*{!-eP7aN z{6_S$zRhoY+_1K`8RQS?=YJQ$<@-0dt#5gL16=MOgm1o9E^fa}KOO(2by|ODGiYB} z%YWwSDlI<~l!x^%&8cf+l~-u{;`vVpR%!b)23|6}fV2KhTXQ|}tvy6JZHD?GE|$PuBE>?IU#p ze%Ov7r!McQ=?mlYyvM>St?O4~|BwM{pEfnEzX~qxAN2$O*u+12t&8eEY`@Z+wqmOK zuPV?Vx>}WT9>6>#Z)%|E|+|NCIS#jpe?{TAQl=-2O)qs=0|wEi-< zte;r#{Us5%_=(BKe=%IzcN<^u&Gt3(`^Mvk)7Agr1b*lPT~7Q^t2^#=DJ5m=|Aw_esX`s>XJVpuY0mVzqLL>c}4EcH~Te@nzlyFzu&Au z@0y*d{)ZQE+Bfc^y@>c_eV~~BLb#m2Xa3RfzvllawO>=f@&C#noq`L{%lBo)^ykB6 z|G%Xl4gYKDpQY&=mdW{6`GklMTDyPqRTr$TKG9$IO@rP~d%VUc_iLs&@pFIec~Sb) z-1PI|GJdf5xHFOeB|iM0r1l3DaP;tV(LWj#aMPay-+XY)(csI{KTkO48&bZwUyu6@ zDL;0X+FVV4b#52g(_{D3!nq5My8uto_?ikhcOAmd!oNJ9V)`@TGCwo_oXN}on*Y<( z{=@=~f6Dh6=w*IcOn*8&djDwmFH(Q(F1h)dzCh#i-0spl8!qiXF&WqWS8`S`vCh-@ zY6>`aNy1OVzudouo|wsBuRj$&Vq%UxPj>$#@tOZ~)qiDz@A_1ppCbBFnZK88n5~}! zm;1@dAG^Qr;}7!bKVRby5}a5p|7R1Qe4mHjV)FWnHNJ5EW1Ltle=kyAlh9+|_$=&4 z&nHWNBJm5~;7{387UjA3e?0uDv2ppPf4BF`l#iG2UpiVjZL;Uog?p4Y=IGOncOKqD z$0xMKHz*&aoG}G@XDo1y`X5`AAA^0F{}W%9{%H6yV^mL{hfVMQ`Y3(Gm&K1lFYSxEOChFdB1LYe)Iaf zHNGQ@@`Ld&^LNG^(`Uem$?6yNXNkra&QFa0`g7-aesh16Kg>^TOxES0 zF7f>1K^>nV%TPzr}I@{^k9PkI(D( zhfDv-n91f$K7ETdzM2F_Z}YqT(98I{n0{Zlj9)GP$zLDe47iM+$$zuy^ZyzAmsaZd z$M{7jbdJYQPbm*{{AIl7O`V%<{Pv{AKP16PpYiGVm-@k&EK9!+T*fbqiA>}D|3~c) zNO1hy_--0{Szjoo-y1IDZ_;lXpZ*s#eS>xUW&DZ5JL~w2vDEYGKOCPKCqBkc@Tu6B z^OYEL8Ta}r@NY(_f75vXOVxfuf}^+b*Iwu)|A;?JKN&9N1J3?F>Xg~1|9TDk@_y7f zV|L^G{i^!Uj}Q6n$t!!rH|E0ke_lTcF7Nl@hb-iN`lSE2)P7B_{E2XU zfqlM@vHtr_xRgKoWV>G*ZhiFxv0p0t1JK)VUOx^lJcl)>j_xPx|GlZIo00(X;;Yv&O%N>OHspZ7VhZ1Lf=q z!$1AA?Qi-@`5;}t_MG>l^rfFE57)ohbB3Pr2VB=`c|LMJD*MyW^Bea0U-ZjWU!Te8 z>l@L_`Z#;0Y|k2c+h6u2dO4rPbNVmi4dnj@eRJ$t%hK1wWqwEgng+e4{|AjP(EVec z+y1rhm6v65)=$6F_;Lx}V|)+Y{|2wa{~m)h{Ff=gsF|IXv25NBOh< z3Hy}K;rN&OgH2yPt^BU3<$Jj954H05$Eq&6SCzD^()5MZz9Rdk z9|V{CAMkJG^U5{5#{O4V|23JMvbq{v&eu!pu@4Wh|JgpuDbutGW*?q|%l>WC^P6#= ze@pDQ$R&7n&wP9X(aZfbq~Gd~*AIZp_p?_1u<6^+R+_$g<>=w)DW8<(bs}!|jgvm= zQh%{uD&sHgqvtoTUr+O=seq%$em~-q{>|!KTHhDG-caSfep&tL17Cl5jy;(ufHAM*82*-|x(@8GQE?Sx*=5BlK89vZ){35uToMZZI2pZBZu zpY*@CUDUO?WZ8Dwf9|UGM{57od{empblb7rl=CikCr#hT9DACKw=U@!^LFr(rUd8x z?Hvm{1V4X0Flej1F2NsqwrBI$)7uBRn+673W$5ATAA|Rn_<8@0|5JK}`~SSY7hL9l z{AS$y-v;}oO_?0~J<;DkF_RO254g;qvAJp&+UFjDPk&d9e`Eo_;jxavlo`2TJGguw z;`MKJ=-E7RvyQ>|mbqYCjc;5g$A5SH%l9qC^xfbx|Ho$KZTa}j|MnVRZ2`ys{GPd> zD|%_a(NC!i_y3VT(|6JMt1>zIF6d=^k0wjs8GgVdjlV^|aDSQ4zn*HpPI;U6LQX7{ zPs(2p&7TpO{E~BX!S>j19G%J0cY@3QC2V^CwG+1s(D#n=hnPHH_rYz$=Z9X-Zz!hU zQRBgsjRyw1sQvK!h%_JZPye6;`u)T2E7BZ& zd-&hwIri*P|ItwY*^9^cxgPs+KDlu;KR`d|;W zpVV7f{`S85pg+8{CZRXpYGi%Tj`*d2pnl_@I$<3BHgK8W@!P3mH&^cc4^;bAnH>Gr z=%xIdo;vCEZQ(M0fzMdFxz<^q{^6Sbq56D1rz|~oXhTp|gi}{8*|H%R62*s4uZNR= zTj5{c-y5gS;otOI!sY!czg;m+#=a3Z|HIV2oUf9>@xMi6-#BHKzfHe6T*jxQf1k=N zwNAjTd{kn;MUC=HmT#$bidcP-IQn95*7^wNHrp7^N0rf&_G{Q=CMS%2{B@2qd!qV`AR zShGlT+L|*W|BRm)^P*?`%>Dt!SBJpm{P`iHx+b{of10ZL@cTEfxBW*Gl+!Taw%UrwvG7HT^@9n|^)x*TZwz#J|li%>QKdA7pao3VW*m{skQS@K)HD z?n>%e7xPyWMg{Li~|p3nZ8 zJ~^LJ#`I~x9Y9?sv> zoU%Gg;~P|)5+ME_m`ei7mWXjKANA~{v03w zA8?sJTKTi`Z|OfZO26g5=al8&M9=wyrnmBK`qMT2;r!b6-{9Zg_52#84?XEm>wkgE z`QFz5@J#&r@{MZ0rYOH!;~%Z{Z}dH^ueS~C{Q>(wE>b>RIdfvTe}8liT=v&ffBpR5 z-cS8Zd;|8*v8I8Z`M=knulic$etvK7s?LL#3@zZ;XRf~z`$x<9qhdcxzXC4%Ggvdg zzpW40yPylzeoX<#KWha)p_lW8i|K!aOZg*BlgN}=yLTxp@0(~>l@!=U*7LyKTH1| zT=uW9rh#E%e}#Q{{>AiP!sYufV#dFJKgIZPxp2-ur+(X-9%b3; z&&}#T?4Psv=h#0rT)(6JpniJ&XK;Bwj9+d3%J|maf8C+>`92_=6B84h{*UqT?V3Lm z6P)=ooU!&N#4qK~=F~R+HvLC%xjzH{{ATve|3hlOI>E7J@7nH$w-}_{-f#W!YxkIc zNcwK5&hgI6?4y6|wpzVQ;(pbSP4NCdc8~de${P|K`=k;%!cW$5Mkd;4Dh9$e;EmVcJNmVb+*^uaCW1G{#QpYNl}N2=a9=`;Pi z*q8pjnEoBO?9WDH&z$n{^+yeQm&Fs`{KM-zbdUW%sp%V$;H2N;dlS99zw-9I{*A~#=htxm3+LNR>?7q*&f>xU z^BVuq9DCmE{4;F9w~|<%QU5~{yiCdpoU_he$G(goi|L9w4!RP%Pp8rPtUnw7+yYak!dM6b2jnkKZro1}$ zZdJed{=qjSuSh>*mG_jFXL81JuPYyt>$rQr_l}MssFm7{3Yy5{e4H$Z}%6PeeT*@3YYfJ{PWw6 zgY*91RsVVWY5pSmKl6HG^7O`XPW2SKlZKiA-Nxh_mA&CGd*M7CB!f9$4$>~ z{4e&=e;?_WjqD%ak7k^)>|*q?K45x&<9|*62>geBas1fie=YtMYJX^MgSY$ZonxMJ z*Va$UN96h~mHp{*XPM`WB_G1R?4L3{zwy7=NB;m^=C782{Ko&9|DV-{anWBtNzBnyx(WfFr4uZ-0t`KAH2ob z1ZRJ=@jsO(_4Fmi@0R$ef9zQ{`(A$+T*|-a-v27KKRCg?{!aALf3ZKx?0fwka5*2x z(&x|jB>n$t`t$ii`gQ-fJU{sD=w<&udeW5E-v%EM?!PAg(GUyIhyHmj@?Xw>v*%-+ zSmA4E|2HhbEid4!D-ZXFn|(_Q{8s$S`$_h18~6HK;GgWB;FeeD*Np5J)8C9<-Y>Ji z%k-deENvb(!Y+TKRlnz^q${{Ue=G$lPBbl=ZoO7|J=%ddi-!O_DdTwInQdC zrf)(~-d*+k#_cEe4_VM%+d|s1j>^Z!{Ubd1sJoU0+Vahm56$HCg&QlcOpFhH{W;Xr z*KY)u_iuiD!B~p22ET#y%l-?`z5aT*ydSpy8x8T%*W-UvwO^Cq=#5{8Uiyz>`fK6x z{>L~rv2XYHZl&qV+c$1~{g&!KIX?LE>+bPb;2P}9{5@^o^jE{>`+Dm?89$&m|LxR& zHm9%NM*TNt>fu*mU-Fke-F%vT_?2)ef99XxjPv|EsQqCHe$o0p;`pvWFXO*r`pYA3 z{Wms!`Rk(TYl!u5{99k$N%^<}PFff%EEM~tQa;Q-zj=LUjXycQIBWMFvHbfcf!sUE$oW6KWQTU+$Br;`)K+{CdNlco)L1!GP|q) z5eZKE?S9x zT*jx=Ni@EH<$tGW{KJ$}Car&@f7iOGyjITNqKc9r!B8mUa6cu2|fK2 zdit^|cu84NK9}^%`j7RQY5gg1X}_>ZeAYi=AOH30pY`iPPG451{#pOd<|kuc*T2I) z)!S#TJO?iQ3vI65Ur+yO{u|YQeNjFey?no9dh1_JKMTHr+}|pFj_<$V9eCS3U{od(hebLeAWqfUV>z_=& zm&QN3C_jq$WPgeEd1?KTa5=w>n5chRr=s;e>fa2FuUt88BAoUS|FpH!9Jl+$>0jXV zWiyFi+An@X&u?BoJxV{^?jNW9M^9gJ7AIxbd$^6LcS>N3UF6-mwpWo2)zxY2=?GKGPKH)b1oQD3ik?NoMnb-d;`n@BL z2JX`jKS|RUe&1v9`Ss`H)qka~-y3JGyz}%g)YozFlJWvh{t?Sm{LB0h|7&~{rr+zQ zz~%Y#e#N-=f1=u#{;de#3%#r#z=?_UdHrPgyxr8l<&Qmo(ton1uQtJ1-zOIM9QEH= zz{v~vp4fjS!`S10U;L^X4X5-%fT(w_alutze(G=yxM4o#61h~B4wDa@txjG2^ z`T6q)@_feR>f}xq&ew911%a(=$!`yQ3&S1OnD_Z`Q+=^L>x`OBR!X5Z`Uh4X#goVj`K{nx@} zenk2$=JWaujMIOurf+D1`VS} zCya5guOxmMA8==raqqtzF6{$%K4m@sJMmvSP0NqxmX~*Ee3c1KUuFDu<<$w!TBPyY zl-DLW_1E|a(sy!Qj%RBAy?z++%lEfDQ{&!$8C=fi;+Yz!e4G8j@M)to{rtxLLcaXp zt?94Nk!PM;UIysPC#l|k^ZJ2sX+K{1E<6)8-F_ZM`zrHG-T`m`Xy)P5}*0!f6+go{wre6nYBl5)=O={A6NhNnS8s4rw0A8FY_0(&zZYk z-w!VJpEGm4fBr`Qq}s2_oSm8L^B?`Q*q8e;jC1Df z`w#Wh^ueD|{}q{hTHC3??%0?057U!>UcVb$=9hM6uJ@1rd9^| z_^kY(-vwUVpyiYEant4RW$erS3zSbd&;QP`;kPoB&zIDHHm7{GpdCJ<-ehr0I#z;z!>DF6GP4#P#V%|EZ==&X0)B+~u2#J=^xs^J(E9DX)n+ zXV!i{M%LHmEL!-78sG3tUh~%EpgaEM`I>#w=k?v-^8JRLsq6it|3vNAWb##qOb)uD zm;TlC#AorN?-Fr4GuNjd{pV`GI+w*KRZb2%qnG`;#);3$5BlxllDZDZI4+0t)_2iCSPy0BZ5xEFYm9hkDfZ~_1nQ^eUdhx_{=~5i~dLTKQ!jFxnKX= zU2VbttN!Kw>`3og6eIy~4qr6)csKj_=SW&aQ5PuuTQ`THCDvVYPz&wtf`aC}1fT&4ai zGdbmRE9}enai*tF@cJ#`(*9VVW96UrnfU)z`-3z2L+uU^wm>iU|Cyfrq5hbDbGY2^ zVQs#zf9TiJ`d1Tk+N{IQ>Za{Gd=2HJVyVyK$L(_0fj~o8e#HpP7Hs z*W2kgg&&s7S)1?uqhC|)*JkoRnhp&%K`-A&o1XYAe)Jo|<^FDK^L_f!x7PHHjyY}C zh1+%0_8s0z`GlC$W{#ZLP1|?)dK%y4On%I_hXfnp|AIUxeO})NK72yX+I;UH{RV1( zTqfUV`XRxF=wh|ey=PZ#pW&@YpM1Yh zo9p%b4R5RVM`iNy-^~uzLx10dm}8&#OusJt0r~zsil06K|FlJdIDO z{=qw`|B;#e_=jf)Yhqv4Z%ohg@%ol5mGav|{nux5p5JQNm-l0)r_b>EQn>8@w?4`I z(|!|wZ?#{U$(IhA9h9J#^FK{b{!o8R-va*3K{@LasGnB<(D%{wjgL8P+FxsT(e@v{ ztNL%s6TPfI zn0>Fu{~vG}e_Nm6(~tkbn!c(`{^#!}2EU`1@vrHL-^vgA-{AZA&Go!GY}3&A_J2=} zU%s!3IM3{}dpgDILu24_emix7Hjy%a+h?7$E>=8rMo_Eq)#PXs(|pZUrw3J$edE;W zX@7Lmwh&&fygb&^CQaC6d$k4smH1`;Z*6i~U#b3^GWnKIo*w*yUgl?}$G-RfGhEK+ zvNp}94}Fc=ugK&#UwnG761}vKrYAnjAM`6C`<8$7Nu-aqjQnfV^jB*BTA%Us#5`|M z|FxO?-FasOKVe_?2VfsPZJO8r2$%MaKEwJn{PVx)N2>pt1b;aQ`F9Ox1ph@Z<+GT6 zwCZL3DY8$WWqR!YfS&pvl@Cilv0(puxXfQDf8v_JEZ_|GZe{E#!pZq)V@a^OBKS}Km&*VJ6Z_vyBA&Z|r$Lqg_%l;B; z^L_mzzJ1lcoIe+}>7Gx$@zh`+c#DddQ>X7;yq&gx@TtlhVosZ~&Uf2|?VIqg@GtGF zwMl9HH1%JR$sedVHTV*}^uMOZzW4tHT;@;KCi?i%&rthvK1|eRd;Ux3Q-kH`W&P4P z@mc$X{&TprZpz7L ztIAoQ=KZ5TSnXHF`S1BXD^CqRK`-aKdHvn3J8A!o{!rDIWpeZ%qnG?KJ?ZoMkKobw zbA12k*Z=>!)9JzG*q8CCohf3R@7Kux)6~D5zZacZ0zdxJ?e$wX`l91iUmtV6nS|pD zevInn{@O?nzp^o$A263WTDhD*kioy`J}&r>_~rb045owntlrJr}Dv#>8O`1xip&2ziW2u@P}WeHCFr>gy3Gdc0UfnLV%rpKnwzt`b%f11rn(eQrX%HMg|FBxCJ$!p5zIqE;D zANWoOeHKekniZTCrQh3Mwtx73>%@LX1h3)$+zHP9A%WMQjlRX?1UEfx)vM@b{%>O{ zYZ9R2ff+5d=teoOmbp!RDL-0XiO`v)#n zUZ2VF^&IIF|7M>u=k?FR<@?W9?&_reeSD<F$d`}1lvio~ z8^^zupT*dh_xn5_<6i$LeEP5)8t?z1sQlfF{gMfZ`a^tgP6^BBBj|r_D5}3-^%Vu& z^bb3|#fN?K{}5c>-|-vqQ73%;c?A1%KA-0w|Ix9ze)Q75nVvSq>+gfh_~E`o`!&yRyLO`xKYe$|HpTFFj%Sn13jOSIS+bk-{H;h7DJRjcfwZ6?JP(5z4({!iyt{Q zoD-McJU7%*k~A7jfSI?$qnt;3c@6UvHc_)zrN@ z>Rb%|g4(Z)Idj@gXLi*2BmCJEXU^X8?2hUSeh=}>`ijlz)B5K%zUoZA^AG0)ccb69 zHs;v({_ldz`EE9+_wl1&s`i6Se#GK)f;-Vm|6_XMv-G3C11|Gdo6}qVl7Hx5Q~NcU zyl?$E!K-lTpH0u4WMH3;I{$><9{IO9ski^{-Dd~4!DWA!*YkYM{~KyQA0O#A`^0xE zdTGDRKK@OQ|6AbFe^~iqPR{eA{8D~CQu`G-=Cn3vhcj2-zhr*!zVdq6|C!{hFWmm> zxxu?|*?(c2HGu=~3Cj=sX8gjUtw)qi=;=8T>{JAYpAg>t#yFj_P4 zd})_?!L|68{@3)ZIhcL)U#b7<1m9_12VH-FUxQxumz({x{%W{!9=JpnRX-$-&)Y|TC3@MvZF=gT*~kAC@V3Kpw&vmUpZxhz z(_a>I@^940XnrF6a`c-Gin-UnR5CAEk~Wz4TA!f8iwy68iJt(tg?aWuvmia{h7GW*fhBRr|FGe%DrgW8MZX z-^Y9X!oeZ$c<7Q~UDekl_>vL*RDb)2j|FR~epG^E3;z$^_gHYQ#8)ci*X;9~*RO+K z&c{jfi@&N3uzwEebK|qL{%rVplXBRce&2ekA%674zk$X-I>E2JH00N{ToSCW{tNj= zovQ=*JnYN-(cAa>v*3F*i0QATp?>k!eVg$=zSHBurW)UX z0)9^ake`l!8Q&Gtp9YulmHEe}#fSf`)PGYBpNCA|P<_I&zti)N2V1ItS)Wevi93h< zRP4+6CCyDg7cTqH%|AB1|E<-2eF4Wl@tuNRo^LVz$#5B;S^lHpes;_Mj#2td51-H{ zVI5O zJ`4M|hvjF*udUUm*PjHJ`M;$fo8EsHwO?7lnX6GgPed>8e~Rf(fJ^&J{bziYZol@8 z;%{+txIZk-%ao7GrTH~8I;j6$;ia{?P3I)_e=TjVb!jKn%lp0K!aeC`fBJoGwJq6E z_2K;uKEC-9D{avZs+aFq8j^bB$CEyp-^2OM>>EE0etnhtx8G>L&HpjNOXYq@;c2kMrbm*0H?y6#MMt5R_y6eaw>CYx#rh-Qt43)4Em$1d{O5#j&6a=t zHT@NtoU+=QpoE7%ty`(m!G!oA7e!Ybk#N)c){X)4U{K@oRf6>j$Eb`hWD)FRve@`pQ^u z96fa*fXn@~W*^=(uUoV61H^vGLH%?8oDlj?>-UGt_lXuiHogBLYJXsYbJnG$Z$I?% ze$MQt_4~qQe{74JyCuq>jSm_$edSU<3OW5(wfe78?#rL`uN81P9}0aIFIRoNa$o+e z|C>R4GJm5?ruFo{)8Q9X$9l#Dlz;PIrS{8Wjs{!Sf9````X_$Fzt{7>)8O*{6q~+& zl0W=!E%r-?>iP0%PW_)Mde+ZP&u=#VLSL`>Gqfn5f`9pb0zK(Z>-U1o`AR%LUq7w? znWXX6Wpe7m=!jFNtj*wAS^qyup&^T|=ub^X-e} z{}fFh?Mor2uJ5J(i}P{V|Fuc=v>DcZVITcixUBD(e``O?|32!U_9^u5Ic>o-^r_#E!*H~e7bfsU`?>Gt6uxU}Dlzl~GAt^H^szDwo)0LOj%(g>IL z|M*Aa{p0KZ2s`iiDyr>oCs8^Gh@f;(5di^3kAgdqMQ7sHjL03n+*p z_TKec(b#+Mir5RvwW5gax1P1nnzLulocGON`OI^^Ypq>ox7oAj7_~3^C-U%G^wNG~ zKS@6pF6(FH4{e^GeteyX{i2b|$upnRmYkrxJTD)EeL24Y`{-MH^GEbG@XY)R|MB)| zj;60Nj4#fs(XSYx=}*#+hD-VxKU4mc8U3HtulX9k8^6an_sVI?Yju7?n-FiG{-g1w z^71PD%lZcMizIy|y#L@ZzIgj~rurYHdg6oo?b|%{U!9j%U|;4p%vqB3<#2g^Z}}5% z-_BP1ReAX+^wNHq{kXmie$gz|GiLYOAI47$G<{Q*(`NXbw&pzbKPAFxORW7W#eQaf zmZUF%%lM1*;oon+@V{97j|}bmoVH|oOy z=4Zqg=OfUcIxWSVD2b=xGQQ{h1fIEZrh}cI@YEfb1g~MgaAL@Lz6L+=?B22|Ae0?dCK!k-~ZKW-}yI=e~W)_ z^h+x8>ifgx`ya#)+jKe~Olm@nLUw2ZfKb-g$CW&Mx(Vcgg62AA&x z!dqqT58wa2YTxZoFpi%4pZlX1dO80upT1{?(>_fV4Qckv+uK9ZWKdSKuA*anmUr+4AcR?@f2ipF`^!Vxqm+=oAjh}vOJ)!np`vdn%*fL%S zm*;n!&vMp`_f&73vBGb}C*M~z&i*vcFF_Cg4ld7kIP+!9&mZajH{qy z#BchK)P9uv`qt>B|Kj`>v+wJ-gG>G4d>G@zNB$B2`h@iRycK$RK8K!|$bX-23zzYc z|0vkEi>ukOdrZ0?(18?Wqjgu z%PaI>tNoG)_w~)u%lmMx zjD4T``bOxbec4^kS4z@1giHVBr=R#N{hKuXWqEl6^s>JWJ$XX>zP>(ucK^^n?HBD2 zb)ESC!G6({u>5_lwv?BK_n*%x%PpGz>X38)n0mSHd^!%3op`O~$_8(1T{s6yz;~UDiR$dzF8Grly-}Pc&#<$Gx=#zXs zedRy!+a@Z+$s$T-HyC3ICLz^?&%^5&KeqEX{D{8diVX zDtG(0$#XdScj4saw(tTsem2ftTFyd*H&?xzA6orkFEO05-Ucr3C*a@b)NlBo>jlgB z75>%LuKxM@EpR!%8*cRn|NIvJE!BQ5#~1t$^rtxcCv3G&efs*%a2Y?a{~8`oe;e!< zjZtp#vDcaWA^z6te_~$#JNBC%p`1LyzOVlcF3)dCv&HA<{|;(@bY8v*y__G2p7@B# z*Z&Ha`eWr!p7`b85&QCe5uY>HB^K&x2lemjhuvRryFY)yzI;C*pZ;gKtgn&hruY4K zR{N83xcUDHz4ZU+H=XJ3Z(rY4^;LQKkLWLOdThqi{{#F0_kA<&AJXjKKf7SR!0qoh z&is@z+kf2@5#&u`Ix2j}^VhVbxas#$y<1=L^~S$MFY|lqOcMVBF6W29 zlj7eS`$cm8pK$Vw^btSzKk@g6%lSb0_~+RFNzVThJu$`gpTTASKQ{4?O~3pHs(n{J zN&Hjv@_i2U#OLcbNd5XG!#^0fu&(fv8`nPF;o!&i{JDGGA&dVAemQP#`nr+CU!3~l zs(H$nPF@+nzgayo*z>fm>8%6d@_iKe;+{`F1pjLA86lUIFVP1P&ToJCyoKuJ$))69 zX(C^{rCqvAd08UA=HZs*B^R)^8o!ixU7%FdHRzvhE_s{b$# zU;MuWEV$j@TUD|HQvo?Yr{#`PN;w)%)X2 zxYYmj>ZtzY4J|bO6O@ls-t5?I)c(=molys`TljZywDMBr<@1{>f3MlRx*6+Q1Y@iJ z3=UB)=L?GcIKQU;mf!$Sztcxff6oq1|KR$~!TxYr-$8HugMnH8>Uv4P)PJ9&pCbOz zzXF%_4fD@6;=>mH4_5!leCb(#1hdtDiRwp7`p{z^J^W?t%l?Zb`|y|G^8DO5*YN+< z9nSv?!ix@{sobvhYBjI!>Qa|~N8!JyIFZl2c}sA(@`^;hWb&5aIqb{xbNpkUYi1w) zk?7_8L!WQ8i}MeER`j&5K1Y9r#0P%{F8lwDa}AC!%Ks_+%lscs{o$Hle~!g}QC1H} zPyO2U=Rbod(98a5({s(&ACJDkl|T03rww*`>SvwkX}{z8<1_X5ak%WifOCJKq5s4d z_wOm#FY2JYd%woYkK5nzo6h|=n4`R0`EQpsQ9gR9<1Y;OCs-@?i{$(6*hkMb^!yh6 zT-D3@pTg7oHc>ulf#Y*;{zuN*5&ij-Lp|5f^IP-}!87%b__;>>_#*z()xL}GuzeaS zA6D-8^bZQsrzv;&|HQeDcdvGQ?yQ3J1K5}TnfTCi4L!d_e?NSS%YXcH4gdTW|MS#- zmFnYs>{f;8d(qE#>4$R-{p0dK`n%zo_MbkRHu2z9XVh8yb)MRH?f-$&=fhv#cAj#^ z2lL_5e$YM|AGnl< zw(y(bGXF{HKj0g&FZ+k>{_y)3%I7)tpS^$L{5I9srno2l{^RoYWA$FSHe;VQ-R~c! zH5{Yu%L?UHsU%KYx?H(@e@yh&KhQoexT{9n>Sgf4eRFutoz=>3S}$1gH=q7SxRf6@ ziO>2E;=})CYCo6bAASRRS^vqWzdqxiHW&NWKUn&&z<$xx6m4Rh(|@f}{}XfgGwW)! zf4dI*_e{&-*hhaYT+YwHzu*6$r!8Nj{wF4K`jV^Ef3hBa4fZAd*r(6HCuzYx{A#$I zFK_;>e=`5qsQs!O-lQxOpJ(6i-%NiMT-Nuk{*fm7537GSV_*7LIC|^9(9@UPpuAS| zFV5+!t`z(14>7&!=+H~lKOtWU$OfAizNRqc<<;n=4y zyBxigZ$AA>xa5!B-`4*zzvTX|!@fK}!zXPze3-QV1A9+&?Z5KL%ITBf^k0YVHeT}b zpWq&N!C2*f|9Jne^L|5WpMev7JaVYf13aM)c%+p zj-L1~MgO;)f1F3Z94_lKnkM=`(fH|q2>V5Hev+h_KG*u^`O_w7U;Ci?&*j8NU%d?b zGJemezXUGNuj%vs{@e0@t@P^(X`cd^?k;93PzWieB%lba{lk^wCW&XjK z!0-Rf|Kn=EDu?5rvA~7srGDkpFNMqgORIm=GUErUe@|jx-Y}|=$Svze$&>x_5a|swXZ67{!Q=qkFUTB0`+g4zR>#5 z1?we!nfa4(UwGz-bKU;W_yuSvg&+z*n^6vxu%l^M4PG9h@ayP$=>*=e`#J-IGOds#R-bXL{8+=Y* zN37VNCwl6S&#ixip8=Qmf8eGuPW-3gU-l2fsb5_4>(4s;%le+rO;7)JDtb9T(zwm9 ztbbgOUiOFkoW8{PDWYe8w$FY4bKx?6f}6(fU%i*HFZ&ODPFrN{=jY1Z{K@pR)z<#c z5&Mka(c3j&|E20({u=lDrxVf3_gT?fpW*9|hiB@y#pK7oLG8QpH%?nY`$1dut@0Ua z-#Bfdwa>?5U-l2+->&)kqv4tQVK#mL->ZFBesNCwbR>E?zXAK!X8HQV;U#YUiTMG2 zKJ$zJepeeX{@;XsIX{Im_c`DHg8!`kE0r^+LC^fD-Qm?b*Z4{GWg)luk@3UCKkv6= zpE;ecXMOEZ_)$Ys*u+2Ah|m20s`iURZu2YShoG1C7d`RC^#^DCGyi#S|Is<={~P;7 z+v@ztIJRv4ZVO!QZ}hh2x4Lzf|DoKi-x)tw=8C4DjemLmo=<-eT>4)$N&f#*`{fbt z`#%u9tZ$INN%{le(thBdGO_%z@-GZXpIbk)n3t`|){g?^ZvD|X{!PC>_8%Ls_Ko}c z{oqwKDKts`w^IA#Biz^Ti+)6zmT!`NAGkb!VNVjzSJ+d}^AqA@egC<%B(HFS?q4^4 zO7}i>qd&Z1c$eForaQumDpDuS9-z-x&<~oid)<_}S;KEz_jhm*@yYk~<_*vCzUS;- z_sv-ohWC5^_n=Jqm_&X}{m+73mDeWnquzWaXbYF;Z@&G>pY5sk;oB;o9^sdF+q-VS zd2NQno5SV%N4~!AyTTW&83x}*^{EJN@OPHaBLDUqms-@?OP{Bo39p!yLi5z!D~6Fj zzWoj$fAgMUe4WnRBP{<;%6b03XK26oihd#QsGR);S^oZwSw0E>^`qR^PlU_< zL^PH^__zG+qV{Vdy!GlVpP=a*k-}z@emq>>??%J(OUjq@Tm9{ZeR)6RjE%cTd8YpE ztp3MDc(*%5pW)-MFXO|To=w)*!e#u1f2)7|*8F$Rq|fKXVtg!m>A%U7B>k9-eY^iC zQ!8KY|AA`1I=uhjlojmWUK8PVf5Uq#pP9pn6<(8x-?#7UtKoA0 z+5Js?zW?3Ter*n4A@?fwN28bbfBZJZ*H^*i`8xL}nt1yAV_((}d~WwA_V-f%r8%5? z4PKc^A9^b@Uta;2@txh@asLA{_Tzj`X{FjP&)E0d6uw7b8t@0Wj|_KU;% zZ=6_(f0*(htluG*`VAkdyd;NP`Ih1T>(U&~{eiv|F5^q9-`KbM4^OH6(K+18w*OAM{p#to=hDzz?em`$w+P{tzGi|0L|o^C{~;;lyfujQSrP z;ny~F_X7IS%1a`A@?Ea4gjXpq&f#M}x^NggMSNe5%;D4z_;9$K&%r&9hWLE{HEQ4W z&pzMMw4tVNn5VZo=j(^Urw`Ho6-_+-L>jd_WkmorS_{+O&)Rm zn{i?#ebbf8{< z%pZy0%GcNL1^=A)NA|3<@}(`X`n^B)GxxXUKlhUH{osYORPS@k|2?rki2bAP{wM!@ zeLuLY&z|!@zleXziu^rL?N{Y+t3P|7m-Yd@)gR(F{qAsCpS1BmHvRGc6WEvMcRnXp zn;%>Zm+#a1ocn|Ro%zEexIABr^LL)^IQ)|qe*~wfzC6OY|8JRf(=hn4svnlfJGI{& z90ix>`@VhpV)XDMl?M^Ne#ZeJ?@Rh+ecHwcq~F)~flK@6bK;{f;J3$MU!I@Fxz*p^ z=;i&RI5+)naH)S5KQa61KOXx<+4RFL{!ME)2R%j4`kd*x=IiI6FW4o*Eq&zgN$|ps zIh^?5J%~^GKi|Hu-xV(HhoujVa~Aex zeJzQTS7*TG`+{)GbH+;O;ioH?Zp7o~&C2p__#ZPe9N$sqzJ6!;wKJ6a@zIy^+cU8* z-%lpbd~WT}PUvNSINahReWu?LF8OQeBW6GS^RZuafO4zz7C&{Ni|C7F{%U%z`T7MK zpBvv=nV5gd=RD<;!uYucCw~6#OnmZvDU07Y@$-Kt_&#I9{KdcJAAF(OugKx1?}%RB zpCx|M7uR=y&zTgdKg4J4&r-GDGs3NY(mq`Pm-om0`nT+RR~GR0*q84IkUsi9V)pgz z;Ie*z-p@btf06nxNz6a&w?!}WbM$u4`SI@nm-Sz`)fvD2eHi;v|0(l0C)OL`GQaRS z?Dp%K(%zGy8DHm(=eS%H90N=hpvhPyDhzfZpn~uWtjF?`IO9 zapoGthyPXBm;LWP-+f4yw?;4TANclt{dO7umVRtn`pBPaH2#V(f2dy;AN(riW5V=v z4Nm&_zZLcyj|}6B>#s&H->0zn;Wn2-zb$%MAF%k%KKaZ4E#b1i6TP)rmOl7(*q8I! zeQx=KuNLTKeaGj%{sz^TN4T$Vj$Zahncm{J`m+sO)=$t_nOprNzB|>vyx*3{nqde zbs^|JnunLnA{ z#@8>aUf%Cd;MC<8;GD1Gab3U6jDMep%lIbFZLIU}$AabklQ_4r&Oh)iCE@y|A0Pf- z!oGZ8!PYn7__wjn-{@t2_WByP{u$T*1z#fb*G&A_B!4aauVP=Gf0*9q)Wt2LFPbCo zXJzzU^Yw3{m;D9CsUMa<{Qm}A_Fu%gjTQbNzHO^>xQzui!{z-^OMl$|+iJfihnxO) z^s`6ha7+JhaH)UPA1gER!s^e**e@ED$jPe@;RRzN+}6h^ix1#3e(>$XZLF{f|1$rC zTb=OrzryADHEUAFEk69O!+t@Oqqn~D7xc0|wCjP%`k&!4zqa_WY4$05C8u_e6oIP`D5J1$N$T4%b&Ra zuhjm?F#n93ej|E$K8>FA8MpHP9xm@+bH9V4kzW%huc`> zYvR}M2kaS+e|-H{@Cyd2-ZT~;{(r}Q!5$Hgp7g=LL@(oO{3q$ZfDe)OFB2acvrk$6 zqw({8u8W`g1-J3XpUQcE+i^6OKK}n4`?5X&xABj!mmXB|*R7usU)=s@=w*L|>CL|R z{}e9of52`0;>Ta0~LUYz5rNcAO&_R+6LFVBz6zr}C$>tpy)W5V@4 z>IC%H>Tl<<%kQ8vaQi z|G)3q$A4VkLgODBrr-2t|2_2b{Vz*jT>mco zoLE|`enMXT+vw%_rs*v{t3PkS<@w2e)`E=h0hj03#%JGEkS^Y9V90x_{rys3|2nX4 zo7UH?HU7bpHN)9I++FRDi}0Tp46HN0v+@ZM{>}$k{wnE{_YbiD?HjArzUkSYw~Oj0 zM!4zWuVnOG^Y!;vT{)asUxv&49-Fi7UlzvSYxhf(_rSi4@AC1N&>te--xmGcf`vKy z7va4og!xBIq{Z@gckIji@0PzlFWap!-CMa!ANgyX{DZ%MeK{Y>^yInOhxb+e=rDhc zoBnz9vVX_)Xng&1aB07N&i@wwGr~EapY$_+qW)2TEdK^*{#B)@Gd@4?g4c$T|9fkE z6B7CSy$jO);qrdGuV*fd9{x1($^3u2Pu%_{^KbkqxRj6S(ePXI{{->N{@i@=5Axz; zd~Wtj=PnqIt;f;J{t?rgeM|o^O~0#Oq@Oh7-}q2XUwNpv`^WfW#4q+Oe$(Th|JTB0 z{~z4ajD6#e5T88%vGOB+|NcK*{g>wD{iqyn<^KTwdyY?Cu%N%zPmACD{}(Rf6Y`JpBYr>q z_rtfDrrg?WpHET$u6&I9=^O8*FNxQ{i=ukgVu+8rR;_xMe(RG+i}Cx2PwsE-8MBZ6 z_iz5A`g`FAyZp6letcs+`^L>ad36tZnctKD#(n*`|BwD|^s@eI`gs1|1()|n@oDk< z_9tuplqYiXXOjA_&dcw_zMM}(p2Y2=zXN_~rRtN?cbo7cncq`Ctj_r5f1t)!tnIJy z=U(lj{U2@lOn9MuUqRYW|B3vkPa{wL{67r)@_u>}r>{F$xf_3&-r|E_C-(Wiis`v#_WA!%^aXBwWqm4o z+CTWU#3%EweEMtP@_jbAY0N%t%^Lj6{w3uR`R8-yAJ&$wKwn#$!lv~fzWy?} z%>P+)ikC0(ovry-n!{}@a+dnfu75NBxcrO0;aKHT?92F!n0))DUk;b|ll(O`KfX(Z z7oFtlho#A{zvrrdxBg<>@{hW75qj3|rTmQh`h}`@`@7+2e15*BKgumWetRMDFW*n? zC$-N@;n$7U{5Su;ehKl(_xZ>(?r-wkzyDXM|HD&g;P~|UGPt}S2e0eCza{d?BlJtw<@_scoll)(z@#p6Y(aZc7z1g?;Y3t92%lMyb zq(9#NU#{t&n8<0LFH>Ht+~!wiAHD$lTaOF%uAtLFkoHn{!ET=z7_U)?SaF)U)?BuBV5+c(6j!D-uS~eH%#B4 z`dq%eTgC9f=haVNue>}*|6KQx!}prLb^0{oljrAVpKI7R{i$#{e+AC9fnwA5KNl|T zFV`%6#)Zfl}J}ZY?d~>ib>sMyqj}QHAs;^Gur2iz*vwo3Jf1=0# zZTRFvX#Du^RQr4%sZU*;lm926m-R{G#N_Lbhs*jX`G+2jU;g)DKU2PxIUK#cpLMVL zcjf2v-76>K7C-HI{5XKP16r*{Mq!Quie-2;Uk)+k0Sk2e@uTvUE{Q`e^~Y7BHZ-Y zKN7u+U%5v9nf|)Ue}}@4fXnkE<82o=(fHxSzgE*%D&L23dgIuFA4dMj{6C-man+B^ z(J$Qd9JPNa{-yu*_4va7LkBcX9|D*C6_);Z`96((IiD=ft$d$S|L*(5R)6>{b%DG- z82d8*&8MFYm;EEg(eS_3uV>YM*1vK5Q+@}bm-CI$Q0CM*Uw7zWmuUSh@7q#2-x7OJzQwbXj?cip?C*Enee=@3wT6BgT)rP@*W&R_f%l#i=06%g z|F@@n3TpE5BDl=It^Az6Pgs5%HU82ZPF_&H8{qPOeq0a#Sl04CRbHIP+sm__kJbLD z9DdHA76E)6ykJCx51P@Z&iG_Wf8l>;Mfl<%%O}C_oi6*E2dReip||?+iQ1o>mrq3h zSz7A{KI8fc@EV!EX6ipNA{aCp4@0LGYv;5)zZ`FQrUOooB^uOFc=F`{Lz@`1-`&@kg z8k>CU)auXonfUYZYV@-Hi~S`1=!|{KKgx&STKn@a_NDzz;>7Zs^5Kb`viwEktBi2+ z3j6S%;c`BbZy$c@evVfWpFH1-bJJJCrT@14xA@WX|0cCRK8IWTRe@f{Px8ETAApJbIsTPrTJ48;g&zx|5M}7-XG{Kf8eFWC;h)~ z-`AJGWqse$hX()T5C8w8_N#I@`2!z`Ud9jk^u=)5|L@m7>>n!M@1%Vz)b?@T9FBeX z2=w1)zn^aLnLZ7d{qdyF%FJ({x6}U9wGVNQttQG{{>C|F*-+zi_qXvuGkR+NP=6Z0 z3tan`!~^1!{q>|diKpQ5eLUi~I%)Cazp>hP^(ToBM=$-Sl{qo_`eCvB!KQK2-%Qi* z>Yv>+#;Hp~L|-&&Mwq``GmgHc=8wC7NFUcMfB3(J#vkSMwN}3d6Q7J9h(Ad`2rlyj z%b&RaR%+kHk4-rKNeli5qL=gg^63Y_W&N7^Y5w^>qSdc98T^@eO<@xO^WXYTt2U>7+baPhIG!_TBh4 z+W)%o)1DGP{U?2n@Bf@ZU9^4P1D=^5!Cn2z`tPFtN2TZ!eg4ifowcm`qL=l1i{F)R zR==ahSD`%G|8>>!?T!Av8DV^;CqB~O3!WL@NBcLIzdhiY`8P3H`B?t<(fIj(FY!k? z_IoIwkjTl4T{V6;eNM z-3h()?-sw^Kc?@k@wxer<(b8Y{jTU`|ClR(S7zM*_S??z%>0P&Kck`kTmE%~OZ&_{ z@8=))C-pb2@w5Js%ds_3`Q$`SUi8=anP0h>EPt)7+zT$xC*s`N;tmpD;kV2$llASD zmrMF{|wLdzC;~(A*z2;xCzAaqmw~kx+TKhFv(?43uHt6TnA`I>&X z<`3nYEi=+$?e8#+e`H?XhWMm^M{jk;*SC(PFYZ53`y;~qF>e01Loe?~TK*ch_*=mr zO{;&uep&lmtoCy`vPkKU3}R0 z_08e({NLxk|FPJY_m|@QiubqG^TD=3FZ<82+2wn8ezLD`2AAjeTw~6|`mWE%tNq#> zZuXmc`f2H0eG|BR{}`KRU(q69{gnUFQ$CI1@_asCzQh7Q9RKouQJm8k5$g=)HK{ix zPuu*}OzX$GmwW46>>ybypRRmVB0o#k>ZieFeaF``|HD4K5%J0V#OG!o-ViS5`x)mN zoLKN*UpU_vw)nY5{e=_%Y>lr}AGpL9 z_s?%BzrTbNpVe=!F;=kpd!)u!s(i-ZuFe|gUf6a(!@?%F8pae9Ysm_RI3)l~*a>RM}qjE96-*?JN4@G`>-Z{L=&LrGF>= zvcCfRN&4U5vcIuqVKzSe^IPed*hogu8j9&JK+`KZ^KlXou%lEDB zJtoVo{NSf!U)pb`{rJ^EdTML6*>Rv^Cb;IjUJ z=8g^9MAFCkoQu`I>%WiRrFjnDfL`X`*i6!2fWFW@--OfW@mu;z?0<`1-tXsHlKpSs zvi<=l|9QS+za{@KQv0rd_c^}cU!#}v%k$~Kg3J70ZOZc%;-mbDud|%rcq#Vf{Bn4z zQ_~3NS>STz?)iwN&-BFlh1h5OZF+k?#c$Dn2G5Kic)l|;^ZW;2`2Peh&wsZ0%H3bo z-{J@RYW=`yXgi ztxdr{zR+Kl@o$_qW7V%&zFPfPgnFO1daz-79rg!|4moYAum1=x`(tPmegFKA{%W;9 zDv|GYQ^WL!=wGP~IsS>?^dG>b{pbG8j=$abo%;DE_N9Z5b2}gQ8BM=yUrf(hknzVf zzN)Z)W&QwfHfF5$RkvoijjxPz)+=MFTa?cT$6r2YEOs+o?ytC>`49Yk()XXr9FBeX zdvF;an4W9=Z~osA&iamx4~PkF@jsyP)kyoC9bdtZT{uR^8h0tLjEv9VXAT;p>AO?o zADhF?|J%eT`+NNHp|5`n{yY6o)<3^B|M#i?$%&k?*uCn1SPmyX_?y_5_otKW!{30* z`j&CEDY2OU|EhobKNp|ROJ#iaI(m6Nl*AdUy_VsY|7iHF<^LmUzdS4-pQC?R)0fLF zzE`m??0ewze&RPs@`LpKZn^Nzu;HTBX@ z!~YtU>i=VQ%>BNM&+t$DuWI~NiJboFDfEYA_4xGlPr_w?fYl#A|Fo>JFXw|rdGD}( z)``AI&Tnok3XRrS#oBs70e@gSmII-CM^#Jk7 z`>*7$#pLTh&&20*VzK=HOnF5_kA36+#lC!>C7=F2;+Ons{>R`%|M$RUeWd(xm;QM9 ze}#WJKaQBmU*ndRyU@%1kKV5N_2&+_?BAk(`t^_Y0b3i@zFU7WzV2oD{V$=733-L?)O8gd+-CxB2yT<3%UyT1% z+e7#vH!?-_*bBzvG;~ zdXxGes{L~kzY+T~z9;@9egj9v4ZsTLp2WKwSLAkUavL@+s*79kqn!^jG#yIPrj&H5{YUR=O(Jp#_Y^7Yr=VCw3 zsmrTLpX`6OHAPpyS%2)P`YYfvKZ6q=^~V6$m-$?ai6FGHh1$r4D+nS=QU+(z<{x6013X~H+*X;QM`MZtU zpPtD1Z8Ny^KiK#6%>Ura#XjHHHvhhT{$B={?|b7juE+ny#5Y&gU$p$&XP$rb2+OyX z#^*SBO8uk#q5R3KZIu^i$~Vd>%L}oeDL?eqep&fm0GIvku6)~P%D0D>Kk>Cy`_-B9 z?Vz0d*UGnz^4d)KI!^mz_7`Jc)*oE?X7yISJE(qABBv}DqL=dnT>f?l+YiQK=7-2bdukS8lPX7Aq$?92JIK7YKc zdp^(o-CO-vr&!aAt`B$B@naX&yZx_m&RX$V_?P|twkC-G7a!|W*Yf(#s^0~@y#MC& zGmr0Ecg41j@1*u+{E}HyMqlt=-#Qz=o+P`rs>IF_ETDBm-SO? ze|-P&Bj7L2()*V(=l-?!oBDB%rhjyV?|l^S2lNW4Ycte;E}u7JN99xDvcH}7!R+&X zhVgOAOC$V^)7<@w{V~cbBYgNh@~&NZ7qx#l@yqiGYx9ZU*Vk%%#W~#choP76_nA#! z|HTgV(ucz3`8D+$4cy{~Pr|;mUvSzSpVL-N)cAu4=UtUcFYKy&0S>{w%+I;@`lMX_ z!Eo81;QP1V;(v!qiwefNHf zrO$Z%rCX;DM4#Ee7w6~?fXn_1?2~5lr$u3Jtv|$f81@T`HT}jPc(!-l;G*uDKL;px z?;jbj-;?)Cc2d5t^3f4J<@4~RJ1XBF|4S?M{UPcc{(b%asxQysJN0w+_d_r9f3q3a z?+cgx-Pl9}_v1e}6Ti<-Z`G&njibA1e6#cLDg7Pa2mAVb-K81(zJ3;5_8)Q$P2B&X zYQHRpw|-_9^*hTt5RY^E=894csrk)75@)iZuKDv*&uM{o|Df5zbih*oC_) zKL#$}xAXOGEbI8usxQysTi$f_V>gs z{56|#{S^4Yd+YoKjpdJ}e~#LpnZwKb_R#d7q`WML5Bu5qpNxH3|F@XUzUe2yW&RFF zW8D0os`e{Vl$p<)baUl%O2&VjFaO%bHxc_%{&0MnebY~XOa9;=jdAmTn%WP)2_Xp5pGp-*8|Bq|`(7^dE{SWQOS=cXd`&-|y*GoBNW&BL_@AN)@s@UmkvH!q6 zTEEx!$<>dAOZ$vX-@obStNkfC9ACsY2K^=bC?`)We$&^$Wq+&nUwewi?|)aS{Rtt* zCY<(-{`pc(|Kte2|ApQmUkWdpsp(@(hTht;Yuh$RFIK&KKh(JOPio%ilO> z{9R4_ay~!pL!6@@4VUw|vHAUnx&ALu`}-tv^i}BP{e*n_O1SLbu>7OXA^r44#cn`{9^S#F_CZGt6{nV`_jIfea0ldzC6Pjb1**e{i9!=v7f|m+__GI?YX1kP{#aW$wX8w<8s)VSZhgs7do)O2rF=?+TmO4mmj>z88h=e9 zr+$tkK3PAa&YFK;UksP$|6Kd`ZrA7g{;yX1y#JQV@jn9nd%Rzo%ZWb?m-Dx=(?4aO;cC8{Qy&z51V$$gv+_U)mSnzOPTgWq$(KZU|hT?dShZYJXfJ$NzBj za{hTf{V;gu{o>oIy62St?V3LKe#yEyJ(XMgO8vMEo_T*AZuNuq4L%h6+qw4#PFa(y z9|CXX+E@Ier~aXDvtNVs{c68V+fSd<7u`3eLHZtzZ)$|oKQO+SQQ07UH(b8YK+L8$ zPW>H>|M|lcIr>5HYb&&WI_;TkeCGc?wLdnIqaTP~*7xw4q#pp^Rra4qd_NuR`g}kA zYc>6@fAl$hNvoL+(hn;y*8bV&^ra6?ZjgRRMkE(q)eu;DZ?}c9Gzob9TiGNRcW_;D`UuU1+TKPY&_Nz31;v9WH^z!_X{EKty z&mQn^%TtdQyXO=1S?tfJF7o{056!=l2wzz3`VaP3y`bE^|IhOc^w!tGpVj!>{Ej_Y zK4<^dGs?5;BR+rPo<`~2i7zw0MsNGSI?U>%`@j0arG3CB{?YJ19RJU2d|7ViPn_^o zJLP@Q%lsb=_I>>@IbWbR{P`K0e%5DL^Re`|J-KQ6GwjR$0rC&dn#9-pxcTGkR!!6E z)xUhdP@d`goVAQonm0|qr~2BEvu4xf8n?d^{<`uC<+f++p+dL*1Ah%J``@u2=MQbw zG`$<~pEx4q>>2R&z2M7-r`WSbeC8ip=-*cV#UW?U*ykVetjY1W)PHp%Z}w}GbWiNR zQxt1S--Ua(|zPahiKVRPsF7q#2Q}g|!|5)u0P2?TwnxuC| zzie2@iI4h4{OEUr%kxv}AJ-_~j-C4I_=o!UsoEcz$f-X&qJObE>{`?5bZvnFYr^>^a`8ZO`GGtQdYi97buX9e)DR4@BOGkTw=ZfKJ3 zf`3^bHBSEd`p$6KA7E>GzJK)JssHkjv!?v`)4g?l8oojOXZ1dR_lzd#PS}_APqR;a zzP=+|=AX7^>-$H)QSFaPb$GuBUqUeynlQ!dRcYD1yuPMJPYx=&-BUx(oW<9-gv-ukQn-a_M( z?*nI^nfZMCAyU8aFYiAXr+xDEP2k4|DSM{n`$ykO?T zxQy>@O~6k-`Zj8ROd`L0hbHNU=;eG|(-WWNANmFv`_$k0r|cMz|BSyGzwSGuak@M9 z3&-mG(dUfiO9wVicYzm7h;W+=J$ieS|IM|1w(b_dZ7xIlch>aD z`vD%ex!A3}8>e?t|I-pV`BQ{_dB4K+%;|i6VTN<9`6=CW&guK#MeV!!VVvW?0KM$* zGd*)MU;pn%!tZzMcjMdcqH|uq{CjEoT>E}w`(1U;OsrNvdcx)VHq;-VGgqhn{DXa2 zAAk=k&ei`7m+!k_)Ax`5p{b42d#e2^jo;_Y#h$HgoZelzTYvUBbHU!D8mIfhi}us` zXPi@hf8k%smo&qfQ}Vy*|AcQdP5nPmzkA5de?PVF)~Dkf|69;*USuj5xq4_sK+h60@ zqOPyq&@`P=UKZhYuYCGi)AUf~oZptUZ};lSH#bcW(fFf!V!y!6|IgfeXRY(-t$a%0g`5u{V}6fwuTg$KV*l8b z@=4Qk^*>}dHhur-I}U1=u2%bQ{ln+n3%k{Cmaf$J%C&wOx3=W;-}o<=)Xt*ZC1}c?d!jTe^sLKEv?v5 z`z*Mnf1;+pR{i^&dvSX2X6bRt-TIf$x!3RL*eqSE@eSAZBhJac4fvPy|+^`JbTnixWBizdUzaLKgZhx?QzlZpb()dOyXMMx%?{)j%*?)Pc@=?m!6AJhDuOFiEvp=R`)%*yU&dc?&R%!)@4)r> zdQ=a`|69Z-@3&Kbxucl)m@1D*xGfq%I_ZBI_U%=1ChzXq56Blzc<**E|5urKF#`h3U_y~1}JoQZ=HUg_~iL!6372@@CWxv)zou(zkG>*f!g0EMV^s=KBxXXi@q|yexd3QPPC8y z8T9gfK=V(`e*QfTm-h=OU+O0@`}Kb*_T~G;XyDfW5G(!91?pek@Af$T2b{j*NwLrO z1*}i8{=@WjaM>SV^*8SSGVB-d{SR0F;bXh@3g7=)rkw9j_6_UQ5k0c}66Nmxu{uZn zv-igyC;hU%mrwr~e7i9zG{kKFzyG*a-w(Z1?N5qu{2O13{+97!`Ns8+!exK6mA|DQ zU$j40VZW#{!YzMKm9gFx%Eu*g-fvu`JZj(cl*J?Xm;L{~f8*#MhF_XW4L{kXpYk`3 z|J7=LR3gXzL+E9HjOnTKzWzbDoF7G*TAiW(S^BS5`?aZ)E^=pD$Lr4n=pUb$SAVVQ z%Mv;D_rK`n`K{R}O}_v8;c~v+2Ll(@wXb^ep{F|>{Md|vJ?jox{73N1adXo*VZUH} zg!5bDH^K|2=J0(p`uniIp*kMPq5&kOnU8sF#$$JY@De5v*yQC^YAcP{CezEABRk;t!k zxMlio<>L}L_3JL>GZH!PzurUoW&M|!=<`Uw#fScG_{Tk!b5Hvm|M#l>>O{`@A$Otw zW2Evo22Re=-wBuXLwt5Wdsc*#{s+~*%bz%ZWyB8Y2b7OU)Tes1PTzrj8Q)>Q?zV#? z_R-%Cm-EZvr!77%!twtw_6uG4#`)SU?b5fQm;L|fANu9=9R02E@uQTte*2sVr+z)9 z_Fa5QyiR#KQ6C)ECH=T^7k^y;$M&7mx8Ps)9~0lq!Am0k(ccW0@ezDnqva7!d{3(V zl0@EfP}lTL=;i%Y^lLj`nWMiEF5?&YUQ@5n;m@f3R9=1qdO6<-{Y{tL9?|3fIWN8> zem!~_pQ3Ml%l#33O45HFT=qx78_Zp+-0t7al7DYwU&cT1+Mhp)@T;Z%zoy*Xe=|S$ zBEq@9URCb$k9(f`$LupcensPV_1`$YXn)|>NPK*sQ{$6sas3*&>>q@ifBrv8eBu8p z(kJ5su37y2k1yhX!;A0y;h(F0&@Zr+FtVDmDtDi~wbsC>be-dATUe;Ief8)kCBKBXF_USVC#V-9<9{y?2 z;E2tE^*@x)&h$@3BU8cZd3A9lj(VV{`EU*a?UMR4gqxJLRc zKJ)**+8>#hUx;4z2cRduxPB>I&WE$~lO{j^f5(17X%27R_RE0s`B~GS%Hj9C{6(;) z{+8e;)sK$wUajWU8NUGk(muxh8(#vK`9IvQp*R1(seflb&KFJI5^PfcVDz=`la$B)lbUdgX`%3$bPix<4zuRj1-Tn2}HlHa!et*|~ z-*E1~!FKAuM&tK6vBF!beuDBLPdI(`(lfL!JvZQ=;6&0V`A_=Ma}E3a7JVz#yYiiN zz2lP>I6miQ`7L^xf16&fiJsr0KNc?Q>!jI_kMe=HQTw&Z{rKR-ax{8*Kbn~R_)Ncp z>Z_Fd@xh7ZNc5kNOA#}Ai_i3j!)5)3_{o1_^7Fql_T_xIIL8*{(?R{a_HE6BPT#%S z`8s)4LHbba%liwa=Nk6;E&5KXcm3by>pl(O!^$0Jt@mK`GCnmu*Uw#Z_Ma0odW#Q^{hcy;xE~*!SoT9N>$}8^-r_U;K5$vzWPAh1 zrsXf=m)+F98~?>Q|=|y+?n{7_wUU=*UUfqo@(EX-%aE5 z8KN(I%-uh6j;-l%8NZ>4#}A*1fBF8RjxS|=jn9Kux%-#&_tW%ODQEl+e|cNielvdW ztLby|1LLb(XUF%GvEOWJ>fE7j{2$lvq54UA`6S|({m%13jRnc_3+PfeqciWm1+8hrAV{oA8VQT zXDxN4`VS&}q^#w`ssEMOm+@sjeW~h4M7Zh6iwg8Izv5bw|8ltO@3#0Ezx(AsU+tGg zIOn%n{vE05n-JlPesP@m_f=k#y5YjX+Gk?lIDPeWOZ^;7e6l|Sy^YCz{UG>~ zQDOZ@!*A{WovrbWNUd2jBpkmPXRLI9@`}{PvLQNV^!1G21`xmOe=6O-&*{Ksr?zL=I;#A@r%zHs~no~Klr5~ z;rPh(jD_~VzMNlgdam(X?4$1sm;LkRpKJWq{2!tAv+a}58LRY0FZvOb;e)~07?T^&+CvALSoVNZXcwst++xp<~aM`~_pJIB>uQYy~@(~eETW-9k z#8+4>=c}|#*7tzR`;$H=KGUD5_Vep^MK9|woDXU7`TFi~=^y?0t$!x{Cu{msdHF8r zW&VwxnBx6!w+y%Z$0o5*K8zpERQp52@-a@V@Y6MY{UhA+0)Cou_kA167rmtgzBB%- z13h2UxUb&{F6aMq{-$xuEA;c!{-g-^^*f@M?=y40W|F=uT;~6N`ialdf3~Jy&X3E~ zPmAAp7xZ&n{UuN0yfa+ppH~0l{r8vHm-Y7~PXGM4rmrF|zfSeh{`=?^y|gW)ty-nL zJnWzFAAHES3ze59a{96*%Ew3g=S{yjJ$>n7xIAC?`)|fF^wscAq+hOz^zGqNKE_EC_HBJ{nWitD!>zBrME%!9_*dWb z3j6YQ*q8PHxP8;Nh0FWf)_*c4L2v$7sQ=N4oWA_BO!|}b@Ex%KS#63w-F%vT`1Wvl z|HSlMGfw$muJ*J3;mfw!EsU=XdYK>O)3=7p`2yB|W7DsHS8MvR{^9tyzIwIt388)C zq=m6UE3scB&-cwg*L?jNjlVj=7Y^7hw7)I!yZ#1E&j>YLqZ&yAp96!K^z3n(-g`FWOaLwv7Axvy^qm-lD=@eg{|-x$l>ruK(KIOT7=Df(?k zN4T$V0{^-+Og}M`e%883|J~S^@0a`IqZ1c6&RFLz^tFc4U;WQY`QxW`GaYBFbf5a48R5i-9^Mf9vj0Dyz5!h3|Ni(3|Ey)<{{gjM z9^v>mULXC)DEIaC;L^WY{llhT{~p7>3=ra+wJ_@ET1|g;{%m?%pLHXO)-f{GC1t`}9xf>C2vh%lF&SC-HwIexCnZpBdNx z4gaDzg-v@tXYt|xMfG2r$m#1|Q2!J1^1rYz=l@%uYW*+qqyG~w>-V&o_I%0r|A%m% z&(ml4{g36}8yer(L{3}(s`BbYPG9sp_T~A4*|+`+`{-ZS^o`8ReJN3ouRm{R;)h$Gg)Q{-B|o8;_t#8s{R^D>_pZi2Ixqi` z_~iKxdh0WN|3ARx`4iWu|Jd~JkB>FJQOaqP;IvQpr>*-?d9iYPK0*5o*SRY3%lRN& zL(er|zfSdz+w%$9U-Y!)-=UZF1+Jmzny>#BF8dd_M*PI&$N!nyAEul(#oA}=)0TXy ze7JI3|EGO~)Bb*q{gvqy*U)o~_Q~{L!s`bquHoO>CphiL7ixcWBB!nT9KGy+vNp@w zFVlYtm;Ki^|G*}D72(WZHe$b^EW+7K%3KY;LH$>R^F#E;nQMHj`f(v=e&_Q~#6RN` z=9K%${KVI@zPTPQ^G}P9Yv}nc{=ZlIBSVf)xXu4QMla_FFehVv71ytW%lidr;PLct z()6X2TYUcd>(A=n?N2w(UfLeBzf@m8!3(2$IQd5`AK}08UTVMI$1eT8{zJHYKbQUI z#(n?4s(rWrJc)mRUf$nBPfVoG*S`;!^&3k+G5O{Hho;Z%pSJvC|1ZAC|IO+@s)t+o zyoY_6e_;Q|kuLvz{kw2^K1G_1`~Lq_`@{0`chJlE6zGX59{=0$!v@LzlI;H0bB1jk zV*6L8S4sI4mE>^tuO9X0D?!Incv&KUXV9{s2ws>@>2)&I}#Ih^!2Q~TA4{Nv6i2QQ(Q`TeVRc1zSZM=$MP5^wV4 znZb+b<^6*7n|DmqzW|s1biIrMF5mZvrNMLPW&eMR$9726KMR-rxy#?(E{79;JGDPLFK?@SOd@~kj!S}P zurJR?_IasAqW!1gGQQ|`N7F>!LG6#q%b!9o`~Npw*f2+r|0m%xzU2Av$8zS;OQ)X^ z*!{=-e?p}czdYaO{aNGxxp2|r_sRPU@L$WRAMSig<1L48RcCxbncyOKzFeG7>-OK^ zqfGwz_Dv6e8!qc_)GyOta>RCOf8&j-g0*mYf2HyZ$BS;7AHYlGT^9HxwLdw+zqz)( z@~vhq3-(s~6H>eU*|l!Pww(j?#`pf_!k~xpv8jm@x~j(KU;eN(*j4$YME-K&qTmVg zckK9(mld5K+DBiP$$#^Y=9_CfsxSQaRr_O7{T6ktYj%C-z~^(?T^Q^Jm;GJFU)pt1 zu*Y2;>%Ne)F5!=3|G}ZDssp;}wYa`d#(okfzQ@o{s|xklxA?HX7B1g+u=t-{n)Ofo zdtzUnfBXEm*E?!j;Qf>z9`cee7X{0|?^t)PoIeDAG?PE8Ztbequy6V;3oi^Ffy?@V z&n^Av`)m5-`&pU%^W#JRFnXE)n;!pWAN@n{*`vbx^Y2}YH9qPW^`}(r%lDHPyZUFG z_@C^2Nsxxi`Ci5cja?Fy&gxWmntZDQK3uuH|DVyH@W_&&#k@{+i{xEP_>dUibK{cW zh^3wCev)@p;SUm@jPKeUzoTA@>xXH4qZ0X&4HpLwpqJ-IrpLbT|G#h{qM(kzxI__=ykucc7Q`dDCOx{G-1eesW2e{@Y%2 z{w@7uv0oU3@fpW{%N>>lx1qmGo-axMaSh)7Jy-w9zi}F$tUo4j^tYmy@-u!|;nIly z7PzdhQGUb(Kk4gEVf#NZlfOwE|2LzT@s07DT1NFZ!R36T<=?w9p?&xJpJUX1Wy)VsxJ}yu1)lL&$E^V`zS9?S)1ka=8cyHGvI}T zLr$B0={;?=FM!`j{PKQBvqCBY5ox0C$`UY}#}WB+>iQA5M{X>-j# z@$aYcl}Gq3FSXVF0e&6&CM99~as9RM4y9rK(Po>T{F|-uSETHo_W7bOmjwsG<@-ZE zZ~AFl?Q7uIU|-fhE&t>CtKrf&O!sQqmD!VllJowi@_HRxskzxj{ruY$|| zEbDXQ_2)>nUmoFOcichi59M=&razU)DeKkPm-gT6FPgJB@by>1Wq-MqDctHe_4jDC zKQfWy{|fXE%lTrNI(_3`7ew@{;LQd|{<`~zHuv%qTWkD`-!90c&*$VH?eEG3?9&I9e%invKTo(KXF7MA7r_Z^www<;G@VTlVA?bH|pEoGJEI3K^r6H%!J!WP* zZL8py6Ti&Atxb*VPgeV*6Zwe7mjx@)%leM#v2XEVe+69j7g+qX$>yK49&5&q`DcG_3(yZF*zIeK~ipHDwe^>V&( zW=uo=m>&Df(98RmcK`VPv406%-Ve0$r_UjMR{o3Beocxto$@zMTYuZxD}r<3GJl{? z@i~3Xu!0rAIdJ(tq0iUMcjXJe82|GAy5+Cg#}@n|_%HH)amGJ=5_ z4V5c`3(=37p?d2RtCwZ<3pIZEzMR;PbM#Bm%l>iW^jW_Cf($4BtWR#SCYygt)IR-7 zE+_w%pqJ+h#u@Ya`o(a0zW?X7uFi4K`}gk}wLdOpW$yFVPp=48Di2cDX8L^70ha}r zD&Hq%ZMx5=ekJt-F5@rb^f|wu+FJWJ_#)zy{eRZy#P!S7er+PBeOrkBjfo-0zNHWQ z=fkh93gf5GGXKQCLgO17;s0CQTKhNnf=vEd{Biwx@KdLS`A45*dh+i|jem5?+B~1X z`Ql~46>!{|s{9NqI{(Z~;xc(ft%MkUxaW*BSO4?k%Y$3h|D=%9rd;$*Ypv_>n^ZqB zWo@F*KOA{^aJ}lMg`75b{*SHoUW1=Se6s(*+T6JQMzudakoVm6hHrn?{-c9*pQRH z?cQyz?K}K5^oNv%+}Hnn&dT6U)t5%N>EZuDFYg~%{fX;Oh4(o)EPvWm(r4xWu-c!L zqRp{37fxH&ec7tuez>eJ(dPM_w(_>dtAhJfp9=HO?DJdrDfpN9ov*Loq>Y=42%if- zSo*(=f7)EQ`F}v|j|%n1@&EFaRl&*VPnGi(Mb9<(Rjsr7hctfaKNC3mIp}5orE%J1 zUw;x@#;4pr*5_Q(u}zqNkE;EuL{9#lh+f7ore{p$>ra5o^9k19D3h0DebCn5ev$Rn z7qDNDj&Rn`SpR!i)@Ps8{E_+jyKemqy>Z5}PpE!Og#Z3!C)KmocAWSxlJC254ga?O zhJEzMz-9hVd|dPGU&X4bdiOXpu1`1<|fa=xB%`aIwNhic!Q zzmEPQ(f9toL1=$J^s>J`pMGDsydN;AOB-z;Nk4khKdsy9U=Hi^g@baqOW*3CCA?s- z2;Z>0MVOW!HUCp7>+`X1eBzRo!RHxnV!J&UN7jJ`CP@WPUiGp2j4b4#~YE_^2TrTw!pU0nZ- z+OJIH#5V)Iw6CVezQu?C>2PVkE&mu3nt$TosP@OEY|Q2J$9G;Ce4mNm=M#2qspCud zH0;azu%$n)p9+`xrTJ$}XnOqrfc=7@5nkT6rH&urQ_%la5yltSPlk_}9M&Jkgy`*F z*jk?t4NTFe(kB~d{k-OoD}p~YeS<^Jn55~%mfF|BH*5Zsrff{)^ENwN5o}WZsE{+} z+Gc7??Tg`)h)>pUY|Itc|E~7S5_zu=R|ON%OZk}|`xYPeC%|QW($dG6&HNMp7L8BN z@6DtiK6_S6%?tQ=^iqD7zPNrIT)sbSV@f~&i0@yGe_YDOWIo?*$>qU6>Oac61}$~` z4zI<&><_g15!a7}Z=DYPGv+fr{tLBzsR%jwJ7{!E9bdx7pqKZzEq-6$bHb`%E7gyS zaMQzU(9a(mrZ29qhQBa6tbdI8$X}~}+o=7CDaJfDCWJGVDn91Qppn+kaVf@JK4&bq z<@xA4*Um-DTB{b93R{exG*W&fP{XUqpT|4r2X_)u>g|I_xmGN?o^ z=M$p0G3Qf+AHHOYmTI)~o)A>CI6+bge3S)1$g z>*}uz+9)5B$Z5YziErGbkY88-qR>A268P-W&_5dAe^<3XE@f?|&p&=>Wzb3a*p#)o zK7VPz%Ah@5-v2jFpMm`^rW5YJEmr-%;(?CUW90MlauYGrig8{=ohS_}f#$ z_~}#3Kk;|b_-b=F&#K{R^s+u?@yGQ6T=s`p`O&9fA3f!_Qzm~b|9n29+vPzDy`0|^ z*VBKX@0Lk_5~qC|j$ZcP8OJ96O+O4S^M9+KXy7(J8mRWGQrxrDU*oJ#Tvz|fU=Pio z=^>}hL(jbc@1y$4l(qRjfAHQbf?gTDarzYW-0Se6#3%E6>r>+T-fF)jk(ZxzMKA>Y z)XI>Xed5FZV0iV|Fn;U~|A-WAvd=01bLL$c3{`z` znE(Gr*jdM0QLX>~oUIZfAa)}tihyE(NbY@zLm#?9N)fxgc6WR2!n$@}yTR@j6T9PL zcl@6Bv-W4sn%T3zzyHo_zt88XS!>OjHEU*MpZ|q#h5t4qs_M6d+x-Xm=bRAxFS`A~ ziC!H4d%a@q8@;X1qvtnq#b4*~56I={H%GrsL&7;{#QwX&%l!|V;;P?3w_o!5W;ylS z485%nP=9#(`suP-Z?SB@2(4+@pY*4 z{<)m7x(oi7ADD2?FR{L}$2U0fk0$m%-tC9|UyNDs+OEMr-^H5_-uWG`1lQdpJki5ee|=U__Cbw zvmN>ef`2&nWBvN@(?k0te$EfX&;JttT#v7k^S|)6=x^I5i66bI}5f82id_45e?^u*#BN`f2%|fm!9*(>gd1i>zp=`)$il+hxU=> z=vPDEFT@Au{1N+K6>jerRDI!b{r=_lL;M_{m{Y%1(A)kA>C@|Tmy}k9+xuhKKg{{T z*S~BpF6(b^*#6-|v2X7`NO4yyV>|6GyyB0V-)zmxygaBE-ePuBU3y~J?hKhopdrl>VP^s}A_oO9U`o?kXF7!ufe% z1+Q(`+Ic;^rgyRHu`4cm^}CHqH!gX==TG82;060WUxxoRa_iEwa~74}C4SpKoaN8n zzNz!8J-@*fe93{E+WPTBr3G-i|C7~=pX+>VvH!f*i#A%fqsMpA4=oqHv9wF+yZH~6 z&T{|TRq&Jc?CktZ_g|mllQwR(2!3AI2TM(;-w9hLoZql7{c>>Ie_GA|IqrXGipTbs zMQ`s1K!4qeo!n;}|1xm9{;!t*g>HXz1t&g^)dg^Sz9Op^FJRxE|G;HMnxLyBKlh{B1i~c`ue^dph zR>X3d^I;X7w!pFa%j_5I{+I0Y8+}FkD_lRif*;;$6Sw~-@!9nodfANif57eeP>z{2 zaK(R>+aFND@lSrgqqp}HpkL>e;4{|$2H$yTaog6d7fo5x(KT@OpGUA?Q*=JyqfMOu z@sRDAGX%3S{aw{raaeM{MXmVaLg_J2nIV#(vjepdez+}(~0zS#O7dRre+efUlJq5lSM*T=HYZ{p;?(Cv>*an)~e&qbxLOkarN ze)tz~TYtf4-2Z56@RvNk-npDwJnMW&k(f3= zBJ@xCuiENU&IcD66Y2kq2{C`t;~!MP8DD72pA(9{7dok zoBX4H56<(8<@O~#@xkA4`?mkXIPE9q*m}2YU;3>5C2;Fs;@Fgb@_*ay53k_rD{q^g z=hvmDf5iGFUY|Y{96k2m!oR(LLGfqxZ^CVUke#1s{tPnpVo6O zg4372_4r1m^fCX;`QYNT-Yfc?jyV%^l^(lp?&trH;WeccXRZWiF7XEO+xSpT|EcR6 zQaskbj{czm3CCvae=*$VA8~!+_`h=dwm&|ae`BBg$>mGWFI}IQzlME#KRj&o{f9c5uPOdMQ{erDuQy(4k zSpSp9AFhw``18bP_wUh@6EXrP^sR>^_2D;h^bf&p|FH7sH*xY`$?Z=`an+A=(F3M0 z*z+OM^INQ61-TUp!r0QJ*1md8J>D!-TbCiieoo6qX+f!p`% zfZO|tbbQcAkN?|@vp-mz-xMFmud~NDIhWHGJ9>Qidich!AM1LJDY8#n|1a@4=ePqqpn(rMSj#_*M9~=PNj7v3-sO{7U%I{gUH{ zeg0Se`?>wb{spIfi2tW-U+qtN>W}>^;CB5)OmY5R9^#km4 zEh2t7_TStlS)YK%`pe+<{s1(wf3DB)KgjLd{`)HYQuI58>%TnxCGgeyRjj`&|9!Au zs9c|iGgj{mxBin|-`8AgtjAZ$)mKKjzEq)q`ock=J)>ipTm3;r9IajYqdhY@%2EW8D70s{8`<_I^$Jmtuf zKgC>Y-Dlz7_W$5tHNn30XTo2a;9Qy;cWU%M)9r`-A2HYZ_`lJQ2=&wYc&tAIzE)lF zkV8Vv89(Fv=ehmaMKr28oUxi~rMYmsf2Ct4J)Bydj{VDeRMl_q`eIf6Y3S|!ZIg6|P&3F6tu8+CyZ=HgE#Sw{~oGzNQd~*DE^8ANXaNVCd8U3Gu(_ZQ*(eIk1M{z}|FX}{9%>G6g8|7zdVM|=;rAKHgF$4dMJ z?A!Z?)c$n*#E*x+)62Qe&$0i#-G8|MFTS*WqyOX3+xsD~ul0dge=OYgAHuah-1E8S zKG)^^a0~VeA-*izO4AMbrAY%8spLSHaq^?B?QHsj*_WQ*V*OQKpT_vabuG0M{%w6h^%3X#g#34e+x0)~ zM{_o{U)suzZoe+Y$zN-k*LnOsoipas{%0K6$me6<_D99`WBm=TADZImnV;Z)2lTdo z1ij8Fv3?%h#_ud*Q2cI?-L z{dwXVU*NYn595cpjs<)!_HF*d_$eOi=fE#)?7tkd*#DhwznHWSxY{T7XQO|hvHxcE zv*2G2t(aeF|JG6de#|r{R`F%wh4Cr9IBnr6uYY=e7xPCw{=q3d*HYMLuC>VdpcLm? zP5eQ)z27&!KILyX*NWR(eubW+63%b2exb)VyegkTeeC&XY;ygS)lY|i)3f;HNr7+q z)B`2rUu{u{{}H!etjedMZ(8S^`Da!?6>jfekMoP`_qgYue|(r9PeK1e(eK|dXVv|i zB{O?_UwsmNP5%_<{*m}(^h>w(_1irCB>0L$J$^Xx6Ce3={6BH~W2*A^y*}go`dM>o z?!Rqx-5}S$nEh_!}sn~ z=X@;w2ZsB%dHON%YsUEf&C6El?KQ)HyBmsL-#6U4flV`_T%`6!xs$9ZNK>X5c{>gQ#|hf!_eFNFBl)FN!&lsf9(1petdOI zeJ^17_zy*I-^W2uo5<>iz-|Ap+BY`of9gNqxc#s{LG44F|NYYW^a{OV`NH{>3a(lX z#=p(~)Ia23`g*uMKglu6^ZzyWZT_0&uO2$k+rl99_Wc!VlBXXCf1`)Tw{E+lYm^`3 z&rfbY^l#d{;-fyapYJ`tus>DY*W%4T{5$7ie=VH$7xMx5Z#CHCSI*+zR^jF2Bd+-1 zKSut=V|^X^jr(|hs)_XEQYzc0&F1C*hv(nd_s7EV$zCpOQJ-Jke=pxZ2`6Xx=#%<8 zFJj-W|70IMdr77L-SvYKjvg+3KlHXg7QN~xJ^$MmZqGN6^G&aXF-`dq-#_L0pn;=- zA9%_DkMD2K&)$Drh4;a}-G3yfJbiDtt*_vpn6vF;8Rj>(K}DSW6(6w_;I@Cf8t;XD zyFOM;vihEI`+gew?D6G)dl)ZR{keZd`==)OzwE&Qet%#e{M+}d@;Gz7z8>F{6led! zr_UFC{@>p7v-dy6_U-=h4SV%=zN*`wkjuH&TG4s9f1AW-`d_!|ZDZ9#rIyaeB=ZN4 z-#F(I_zLivh7@NnhWOUh=fKIuIroI|BdhNYZ$82AFXA7Y-2avT)^2}BigW)+yjxi> z`&s=~@VVoX{Nd=S5Baa+`HjrwT@x3svNT12mcYxdXv*jO~#4rDyuwUE1 zf^Yd*Kli^OdYeC^SD%aZ8^G=QjQWUk|CsTK{JVO7eRDZ|VKetXw1N{Kygl~q`&&9@ z#4r2scJRgZ3FkNN^~!%++2EUg<*db_W2F}S|JCu~w>bY^ zZa>tAF$u2t=__lRzF_w^r02I--^c6IE5)U!zH8wBo=!>pS^es8oByGq&Bf!+uM6!`cat_3&|S zf7KLMe%M+8{Zk=6@|S(`N8bXzpnam}w>bZaZa+Lmo6GjU9X!6(ayhk{-s&-?koqyQ;hi@y+O5q|N8)mxJ#*Jn>KaWPUCGv$0>hWd;9XzuG@tJ&Yp?T6!&Xa7(1w*II5WuN+B{|~tB|CW7zi}T;p?T6!|J}FLL_|5c%W{vgX zH*xB>H+uU%hU{ngulTq10kxkj{{?Q}=g|BVo3hXP{=wLBG z!Q=c7$G(04BIX+3uzy%NzbvP%z`w`7txv!iKd~R{zk^>I_UEC=`aja`hv)NRPXEOI zx9IKtuxfu<{ZhCc-*|mLet!NE?A!bQ^Em4R$GZP;e>?m9J?sDf!~Rn{u%C% zpg+AFKlZbnwU86w)_(Iiw!XoB`TZy8(fIzc^7`c|Za?f_i22^-_3M+Jhxcd1Tb{=@n)_F4ap^`F6~_x9t1 zCic(&p6mAeq&RwxKm1el_I@Gq%hP`Xx9?k0f7M*am-cgk+uy{wYNqt7J?9bx*m*2SmORed@ z-{8Lx?%!rPefd$3FYNzfet};3!*6wc*q@c)X{ut|7U%b-o2feuO^|Sck z?~>mgp+4gB4_^YmVRNq^{`n0(>!-zwB! zJl4MrxAQm0AOG0o{`!BULVWU%{x!JmZ&3XFCXWBR-G69*=wr@Y@DxWN!eqB?%!~2c=DfG5K0Q>mQ>Ys#n?CtThzQOpX@tOEu@c4?pKUw#W z#L4A(_uo6k*`G{(;7?%R?w>Ix=II}Y-x}(Ne>CVBOY#4T`|s-en{|IooLpXZ{~c1C zT+zcH!~XP69$%jRQTSm$_T%_!{Rh3)e_nI@@1!_;ox~qOf6b=uKTrQK{K-O6Uvgsq z5N(PxG;eX86&YAPezVz>Ses8BZ zdN}{P5dFtr_M^|_=^uhm-`Y9zciAUD;(yQcdpMU9|AXjgZ_Twg*%oc z{`pOu`hD*97v*xsl25!oZGC?h@yB}j$FASX{bxC2)qTWg&kreoe#1ZYL4PmY-oGuL zwf~vh5BoD^pZaPnya)Z#POc|^+1FTiH{70Ilzn{0`G4v5dnNUYIb+?OrZ3q3dFlBr z)_;w@reBIHKI(f1{x9#D)F-RI9sXK3AAiXY4fZ+zFn{~b?T7O}HG^w>_3JZuZR7b> zobw0#Htd(5e^H-__5X#hJ28o0{`p_@Ke+vl6`WY$x1zWApHm-Qf2uz4Ti_?{lzhK> zS^K6-{Qc?&hgtmge2Kn49do|_ajWxEk$2MZ{zCX4KP>g{U-PcNo!~XS5`Ltn<75RA5ENp3%5VQ`Ek3pb$;0Ip+0=eqM7rF&Ut4m`hFXP z`tYrd<>0lO7sq|DjK9;hjeWlj{;|DZ7JfbcCvD(*enY?GghqW+x8FaP6aRJS59*$9 z?8o|R;U^7p|HRMt-H0Dw#J{}9*S|R9#bx}Ru;SzbzXrYSpI7{F#Sgz4e)D>+r+$3D zjryUd{j~P@2Ri5dx9|tg4V-Uvw1U^vC;s8YhaP?v_U-wuvmai@-fUd z{(rXb!{Hx}|2CfAkmBZ-h2twuEb#w$e*F{saN?8x3V6fXMc#=_|C?*yhogU~|Md6x zrzMzdCsSvz-$kyvK2&fAFr?^_WEtl+%Mcn!Ec z-^n|T;j}3@#}|G%@!R)riJ#xlb1bD_%k39)IsNxC^!wH&9Q(2UQuyT?xqsrPO%Ol6 zh<{y=Z?z)tM2zYzW6?umW$ z#3%g)@Q2&Ep7zD}L*n++-Sb;B#RrWGeSvokZ|?qk6nQ5v`lIaoCUD*r3*XfB{ZqX2 z+`xGkawpgKEb>ld^n5=C&bw;i=M$fekJ#ro>_4_^qrQvV?~u!RSMYi0ZU2b$*pKz+ z!tMG={`tNP@#Bm5yLx;Z6?vyJ@rm;{{2cW5{lQqT_~B>6-|XS_qbAh%?tMf3h;K`` zKdi_*li}nC=UBqeLVrfbTs`kn?&kVIiC*^6!_P!NpquOY4Nm)^eZc<>-)U%)AK!0@ zkAKnacT4fROQHU}3%D1&uvLm*KP1$TcQN;L{iZ2SeW@S(4E*1|a#8P8#(%6o9sbS6 z3FrGSvHw19e@co=&%2UOLvQ<=^iJihzMscGDwm@_6}_$BNYD3SV*jVWr)*QyJC)&a z{p#HQpj=M5@v2MRtijTYXuZ0|6+UiKJ&n`vU z6#9Y7pI3s@*5Jcj-#5jlydOAyWw7gK7U?tS`FwrnC-LKp_(x#BW^9TpKKOCyPZ?aKPZGcM{0%=A-gThY zkD5^5tycfr>qmT}JpZXh`b^B#mySVi^KXt%%&9;6F|Hq*=&29((Zi2MzhtEA`3?Wf zAJEfRkAfdMJ&B+1ck2Al@t^MYho$&_2Zs977AL_A-BSFQGeZ67YZG1nPe0WM`_z~E zz>mcLG|LN;mW6+G_54uRl2!S7E=lMFnSm3ICV-@9ms9q4aRBb@qVU`vI`eZ+zeLvAurr z`89lZ*Ke82KUsQuX>a1Q^Q-jKKi2OBAGS&HvAzEAYo6Hu{%f64+Q;p8b&h}d=WV`q z|8C!Thg|+#?a8G*v46mzgcEhf728H zcK>kvAMf@XoTG>1Uwj^Vd%qmlw6UK5MZZ0Ke!X+r&tdzXnQA}hdwyv?zWYxeE9dgF z;I$))oKw-C{^gk^IOk&c8Lls;_+xto&RpYE*Y8kd&Vl~1wr5%Y{mJJS@a>4t?(but zIS2M1xUf-wy4xR{%Q@H2MSuRdgkwL}&w<@R{gs{}abAt7ooqp6ho> z^swmH2N`@h@m7ZW{v_6oNq_J^al z=aXcA8Eap$ei+>5cjC+$xIdx%?{oX3QvAxjFG=`N^lhgkoNJ<3|A6afruc5FpOff^ zp#P+?etaJ<)(;29O@Ao4AC7%D>T+Y4T zcbs?0<=o4D6K>B}vuA*JzF>dky}>?zzv1!kUcq_)CcH24-8g{Y%l^>g+rBFQ!1eQ;Q@_|g_sV+^-wuub`Azv@e`~ny4^w?&J^W+0zjXyCKWueJ zZ|67Fhu@SR`fhOB|0(J@&W2 z{~jSf>LafDZw|Np)$9q%zTXc0uO6T6Ps`!7zaQZCeJQy5RQ=5G{yg}%uCFipo+W$# zJ$+J~@nNaQZ{PQ3&r=TXN_=*G4cGhaWBq3E<81$z`G;e3m(v^lfA97?SLK_cFKyvm z@4t@qUEuwq9QTc>ax?@kQeY{Ac$+EzxIrXYB77IQeIJC-_#o7j;gE$2b1B zqw#{Rzmh-4oSOeRHssIoEBN`*_D|$++WJ2pzr7zc;@=+>^z`LFozHbno58*~e{W2D zTiE`*D*C@&zms#l|2x)ignr13B7IWvi{rlo+`ex|n-^Dp#9!rsw^?%Aen2 zeJk{}+g9ak(_w4)!06>{#SMTjrqZKe6hbedRxC#`_1ZCgWLKS=l{Id9b}BOFW&JZ&t?%}? zch38{vd>4f_4wyi&+KG5?+R;!-o6iC zO~0Y*?fF=HCL^mSmle_5_#{0x@ulZOTEp%AfXx4?Uz|V3uZQP9C*d03dAC$who~c)`A(XnMV0N}T+cCqCO>FZ=uk zZ+Am@e^zsNn~^@hM<4s=f46e`_0GvT=ETwry?tMt>#sb0ch^s=s&9(k-XADEHkCjA zo4{>-DO+FaM=Z<1$4+#8w*A0+di|!S{B!)JUl#rK6d~3d!~;+aE=M%D|;Oo zzjpKd8ge;f*(7+ay?@-!|FK^0ry1t@8M&Nu)gb5g{>Dhp_{sB)%rE*opO@l{PkR4M z9lU0CihuT>MqVJl_A`?4jr?MLEqr_Xes0;n<~Q;`(Cyp%Ya@<*@f!3Sh4W{qZ2r6&(BUzuJ}W@;P&XQC^?1xq5hm^NA_W@x?xKk>82W)*s|w^AkAw-{4;l zOL!a~e2m98F3B(E*!mUy{*C@+pZcNy1%CO^#6G|2_|U$`yZtc#q&_icuJV)V3u6W( zdd*){zlomztQ1%N*#8m#SMQy~pVj{WKWC2jKc3H^eR3?d7kReFcR((u7PFj(^@FUQ zwlD);8`gKkITq~I#@BS`Y5#DZW$?a2eCLgI|7!EG{yX?HGkyLguK4jk)9r`#hnV9Z z{w@03!}ZKgItI6O#C|`cL3*Z|nBy zUufd<&tBNC9iQ|cabo5Cw5RhODmb-*e~f*5|2Huu&&QX?U-(CGn;+=-U|;#c_i_7u zDmcdv{vrDNOU{WYtN#GrX?*eHOONpTD_`3EiDUbI)4S>4pO#Lad_ifc+n13wgA*gcouWA|s? zr#?fsO*r>&V*PvYAIG`>$38u@ME>%R{wR-cjPpBxIIMyn>3n#K_kAtIkN#ckA28Yd z=joTg?fbLjm*@X&qAW3zrrTQ%ZB~{@!t3pJG-1 z7XB}skZ|s4#riklZH5*34gc7T{h#Re>vH+GcKqK!e_MSnr+vH*Z#u3>%{ZpYkM@K9 z%yNBWPApSc=c-AIIjegAL;o`NZG97; zdG=p|+xOF|@$)^uK~?#S=r@|>T>j(uUx05s%Eu2K(|G*2$n8%}@e_7#v*`Y|3rdgL z{KbFOriu`{(+$ zzS76XYux{&6z5rI@hhD-r1-37S6uYj-xrnGzxN+_VN@1skq$fT& z`E!1G0{ixU;4D}D9*5iagV4nORll3uenSOkd?c60(A)mEYWhdvuMP6!k0yKkA1LQX z`w%BqwXZv!4@~Jf7HVsEI3M6#?LX$XJD-%|ar=LS`0V?zai5Cy50~o$S9~#FXuM$W z55*=mQ~OZ-_qzYtRrx*68=Nbrxc@zbfBXJ7KJ)B92)FN(Rpa+#zc#erJpBXc?fe<% z6xaWL`0wHUH_AWmzmK^6X@2};u3R22`=@<~)4#+x; zZu`q)PJFU|xA8(vct4J8F8aP{(!QQ>|Ka;UdHiwbW4!-}<4gVLF8o{lsF{4m_V0w3 z>zBu$!oGdKGS*{X?dJ~kHa^8XwtqX^?yqZp%KR&ypMLG}&ni+g`ZxTqDc>)omW*}p zIiFC$IacsDa`f!a5r4_!ADifzzpy`9{6*JS@~>_Fg#Fuy|NYTb_5X$2^S|2jto=dg z*{ua2+-?ZmR{?Rj+d)@7itKd)B zTo-;bdOJSV^f$rn`WB8x$7j{@T?^+O(cAiYHT&1W?fG8XpJG~jrQf{$aW43*TtDg`^XcXJ=f}=x`SHo) zA32|s;>5!7r!8KK|Iep5SIqdA{cGU=om!QD>iJJjaqLTfHTu(MqkHI`n9{dZiGMzZSq(o$d2Oe&hNX&h<0%lg=Y(UvpBN zu}-`IubrQ8+6?@#%kOgiPaYrdAMfg8CYP<1{;$r%{2=D?e;)Qv3+MNkOaHs; zE4lRNn!a|yAU}U^eC5>@{?CEi{vzU6ew^#6AF=-9_IIe@%KvY8&5Wx2Z0y_h7xSao zzVv6o?fhKLf2|+iDHUA$Gtt}n8}_LQ^^fEKH~fmQK0yAoueklJ+b`G+S;Z0YUX^XU;o9t>46VAZwj~f>u2@iXAs|0BmDX;Pk%bx zz7Lz#%m4E3zrKRY{%PoM9Ow2qrrG#UgQoY<-{gr9Ax_u5YN|(jQ0s zv%~ruHOcxv7H<6u`+4!N>-pLHGmWDsKR*_hAGKP?{oDId%Ut%!AASt>?fE1)IcN1p z!)^YVt-tEm*6k0e%8x>C*GK4yPsb1aY^(o~aQl8b$Asg@Z*l+a==n`_PXC9~|Izzc z>pb)?+CQBB4X6KZ=O- z{1QL3Y@eLs@f*(hv6I`cuNdFO4?%DHC(u(LoqynqO@A=FeEq=rh2tNefBU-q@O@l3 z@xh4||9#;0{tu3cIM-L=-JOT;>*@T(^@+}3TRIQ#{}Jckov#Ufq8;_aCm`V*B!c0D5~rKl2xH;+OyZ;eXlp*DPk8-;_VK?&&x@_`k4k@2{<<-w$rz|B89+zqk9ZuHP5EU7so^jxT!o-v@5jr*Zxqf91b7 z+`g~H@uz*#ez<;A`x_qBSN)gyrFgyPKho!)I{(4{RX)ECaQ(OxXZ|YQ-}R#^_;Tg* z?_R`b^9yP&`>}pc_|)Mk9{V5U{=@Zeo_-JXwmzzwF@B(z|J~uX{;B#fe&ApE4{`gU zeX4(REX8*z9HuL_>s#L zukTpDeu3-y@SoCietsP9{u}j--(25(P@X@Gao(thbA2Q}I%8kFp*+8sPyKBF1vSIJ zxb!=~t^LJ3_CL=3r+Msu9{QUn7j?`Ozx;0xzb;(A^IM!h|2xs`kMiqVajt)<4}7la z3-*2re2UXQjxEm*Cc8dde~Y6RpM!s!-;k4dte*|H?+cPYeS+hMp5xE)o96bz`UqV0 z6Q4;tKS2X#sba=Ubyq{g1zJ?yYC%kr6N)P8=F?=WI zll=YTv7Wv3@EzR#6z6<@nfQ1=x%fQSkE-B2OM!km$LGe0&M&v`Lud8V;5&x*)5re# zU-Ub=eVZTt+A@_NvB0OIZ!*Dowmx!P%<~pN#zpQ=L;2*_VD2-1et&e9*vo|GoV0;r7Gv$>S5zpA|SZv-$~eoBv`T zoACJfAAtRuK`E~H;}idW?mv8=OM2qtUO#+a*AGbP^{#yQc>MQaeIVqd_@o~P?_Kix zXwO3IfB&+5y}uv5-i43-vFPpkm6-DMW8k)bTJP77^S{jWhq(Q1Q(W)Yhac>GLW=8M z`S8)$x96*gS$iU4{V4dXG2Z@WmEWnT`lCP0?N{dw=ZN`zbYk#QLG|ZyKNf^7d!rr}96=?T`2UE9&3u ze^LKD*?HLC6LaWT@P1NpYAyXh{2$%L?Tg3y z0dU)2s`snv`11Zy?4RrQ!}s46AGH+kkKWctuqjUb;&pKAUufd|+5biU7h%74LbCr! z_0#xsVL5;8kAiD|BKi{c?fQjd8rzq?2)FP5YX1~^?Vm!w!0p$kxb}y^`=Ph*!;_Q7 zuUOv~ZugfNKj}ZzjQE~kE1drya{CP_&aoE1#q%GTaD1w*Fn_q#`4At!urL1N?VI}i z;wra4%(?nJ-zpNnGSbJKzJUEc#BcY{86OKPb$0u)zIQo4#<$o%|BL<_w?Ep)znJ3- z-V43m|3}}VLzokgpY%Q9Hb10(8q@fe8OIX+jc&i*&mS?r=c+B7-{3rapDyN%59qhS zzP-PK^A9zle%P132i%@7#J|QAzGW!?H@p22Rr%KF?fH20*!1HQ>AS3X9IkUMd~@vE z^C846`?0<&{PyYI{%TLGtMLDz+YjgOJiZxv8^5rb$2W!FWX}g!o6hV1FJRxUFT^>1 zj1L?O;(yY4*#Dyb!&t?$((uPTzOa8roUvN{=TX;(`9sXr|GE%gpRhkh{V&#chCevo z-_Ne`A@=`-+i$4g8b3OrxAjHdKd7Z|i67zszI(25@Vi`aS^h z;a~l0vD+V;;ymjo-X6WppRgInFWwGr*EeY5{Fw{Te&5D^t*sAP{WShiKaF2+xqn-~ zjJTd(LBD=EKaOdhzAfC&U-;Mf!~e?v61N}Phd92(*F(QJ>>n48_3Ogz`@FjTC#LxN z|D2H=-`Oe7vC#TJZ@9f5Io7MKuzs+j^YDE%))%l3=UfGE4!7q6Cv<7;>kl!1cg5dI zKYMm>28UgugyCiI14Y$^SdIKQhJ1 zuium|CHVi~<@ypodh&z+@ZhhdHL!nNsK0ou|JL<$Q}$#1>ga9#QuW1VtX~ao*T-<` z1CQhX!Q&s2;yOOWzbg8N>y!HNTde=d^@A!n_2qw8LEnF{bLyMbuM9tAc#)jq_No8< z+w-r_<<#;I_uo*#$rb)P+@62V+8195|LniFV;1`tZv(gISK(aWs(+}h{N?_``clj} z7xKR=qUZjj>9LvBw}#vGyW%5e`ls?=*86W`e&VzhYFX?3cUpxW&arNVeY^jkwJ-fL zt{%Y?T8}UiM0{n?>oRhz};&0;dhvOG>YC-%h&~M$izQ=EI{>{pI)nAF~K zr}$$1GH~lZtp91uCO^&J*7W$p_sL_9eR3(FxAhV99J4q-{;q|$8l1#O%(74Z>v;a7 zQk?j&_;Pb^>;JrN<+b^#>PP#J_3L|l11dQ2VZW`{r#{8WAN%mX%|6%v%Aen`Fa2Ne z9wS{({#pO+-F}E)T=m7)pXlxSSoM*89sfVz_I)qr7sN!(bp6WzcJ}&=%;nUwqx+wj z;`pL{!Z&uFwofg^f5-o`qrHF1f2{uvZujT4ejdli-<_~;>z~#5ujp<6JzQ-{`Jw*> zZtFkFpP0qTe^bvt^e^IrD}Ii}Po^)}^{@0kK9;ZF(Qo1TH`WiX{NS5={GoqiKg)k4 zK6^d_`?QHH{{e3ISCl_C47{Mp9s2Yt+` zHRDqc=L6k-%!vj5E%rZ~oZCL(OW}5Y%F7Sl3;VXeEaqCPfd3Eu#$()mHh=gx@VjPu zeaXq&S2X|L!Q-Ej;^cp&t*@e=1uul-Cp~;&|C0CbQLdkq(o_FgxAt~k@A@#mmtLH< zHUMt>-#Px`v>){F{?5mxIPFvXYx1-2Yg3;*{a5fdjrV`lzgYj|??E2_(3GC|xYmJx ziGE0^zwE=M{{n9NLlwXJm+~Lt`435P#ZO!R%=GLpm7d>JAKK~&&p-4({HuS+{&0^! zj88EqKJ=dw-?ELzFRT9qZugf}KlKmk8{Gbk3eL0U{O`x;7fq_*(tiZE`#MzK>LJ`&*7Z^#6KiHdw&;gE>Hgf-0si7 zWB;trlglLR*G{b9tOdZ|M{nzEv3>HB{yn(WUv0v3D#u6uONGm7zFHU~&x6m&Wjz4Wy zT;s=^@PotnP5YI9jX&GD{l@+cSN~&tnhUq%AGcq|M~)@@4eWmv=4Y}W>tBc4^X=&4 z`pEx0_aDB$9&_r4{l)0*`UJh&JoS_QHTZHNKD7zv&szUD4f}l;#faoW;u9{&)(evS3qf1-Wv>U=~6XRQtXD)ApZ*16g&_N9LXUcUYp z=URaH@V|%0AFlt!xfTtBNJP@m+7P31>@{^juxPB`sL@xk|TUYF#@ zZ*cPC?-#Lu!2s9eKdax*;}7c#;>1V(=wCozUf+SszWDQSd%r_G<|se@_WqGm{m=^1wMSuD9M32o_{|wxoe?p^UuJ%cMN4x#;xtwEh1l;aV zVl&p${%JplJ0DrW)qbAF|KRD)f7vgzN&HLy6x`;2#3zm7!~ap(x99t+@h8!r60WcF z^iRNV-YUrto3c;-Cwly25>EXTAN)AyQY#n1SL zei8hLFn?nFiQ{MdJQMphVSE>-e`@^vxAT&Zui~^d@rBrbv6$T7!oK=H_8)?;)}`Y3 zNPo85?^cyRh`v)XxxbZ-{{gtYABvi5{ViVq{ucZ8{*x@{Tts}2IS=1|m!ADETAz6k zZsS9&|7nZmofFHA9)GxhBK^pT;a(H`a@U9ZA6ZUYzr_6yOW8-S^}_{jKh4?8Abvmj z+xyGo_+tHiaN9o**ZK~6)`u7$E_45tTL0hi zyUO*;a_%*f%PsDIdQmx3AN0C^aI4ubEVq4yef0eA?XI8c`)6YRtOdbugV#(+arUB! z-$MNMeh&Fp{Ngvm?fDeqSNlS*`^$H_|8Rdd=IF6?6Z$7dx?XKM*53&KG~8cQn~Ljq zpWC09wIjIpE&jNg^7x)8ie}da5KXLiL z4!!kX^lFpXm;PF~ys9Dq8R+@v>92%O8s_&;;T&_uca7g)V80OV&ujfx+?`J*!A1rh6ih=1kqetNa(Sbqil z@!`IID~=C6{-1aMQ&Swh_~qyyomy0%#wYoSUk11RJ=7fg*o^ak$@6bW^x|48yu|bc z+g~6(?K9TD=J`)d;uFU|^?kJp$3A=k@!9=T^_i^xVz@oOh=277)ersaZa*Bqn9Kh~ z=xu(jHistGUkJDLKkm5`Q{2Az-}k*fc7Dv^)M^Qw_gfgpCwkgH?UTRX@%V!MJbnTG z?fM_R+ElDRA8yYF5py;^{J-b^$EUdT@bl2GQ(xqm<>}9b+x=7JhbHbnAA0@`i9Y5W ztFujC_}bo&QLYca#rjV@zOa8n$3*c_-%q?gA^$vn7V+8ofa-%L)}IN#c5IS=*8k^j ze^gceZ}d$Y-;bWvp8@}3nzx^LeA4*yjoT07Pt3JG{dL(t?Jwr!%J_OZ_Irl@r7>OY z6Mh=puK&qDTOasR?A!WF%+V{pQ_N#`IEW|uJxs5U2prhE&f=q_0vCyzmU&qYrlGajr()dzqD5Pi`UoAUy*&*D zCO=yr%5v#Xg4_IAHB+ zn9~-IGkt;icR4?`Pw8u^Z+ZN|zxs#P!fL$!;r+ld*IL@K#K-${%J#GRW8k(wQuWFD zU&if^sNnK{H2O^^RdB_B6x{ZA)4qs_`cq4_pH|o}jCZbMDo!jdornEhSxzmNhu2I` z>B&WFUCllIw0*eN>W(BnyS^kowV7Cd1bp|Ie*O|yeE46%{fG0LIC`xW9gg1i_jCRh zkM)Pa?fEgd+MGD~A7Z><&yT2n{3gz^T*>pRF2RNt)swcUT1AF5BOe%Rj+{WoF!#Aa5%FWmMo zF#f8|;a}tLK^!w_|u&EJ@w^( z+dB{Mzmk2p*7Eitew$z7U+agles4JAi*adU{~bL3aQ!cip7@DxFZAX2cZtXPJ>j;0 zT=}CBr`BCO{&4+I{IoAP`N21FZr^_?*N@+nAAj$G{rQ1w{V>*dMqdcmSHzdKzdQQ! z`vuXdmco7yMs4_nyp>Gs3*X_j*=wuaY+>vwVbx{hUc=YvxA;c9C;;oq*0xW3ew9qV_5 zKOLU$5m$Wp-v;~k{dJD1IC|A$KKk)Pe0@SZ*6#qf=RfgJ{MZyH|Dwkqu7Baw4^DpY zKF;SSdVW)W{5=o*_WcLtm(}<4_`~`J@kuZH+oQMpr^+v@-wwXhaOXPb#PQc*zc9k{ z&vI%0A6ZpD2ff{&B0lUZKDD3O@M3s=jQWvZJiZU{{6qhuO~A3G@qe)M z@O}(&YAHSo`?mi!+rPzU!jB5;H+lYtxqbV-YWeu%pK}5AXMEolz1_berab)&xLyD2 z`E4}u^V{8dzT3u+6~1k=XwI;9ZnNKRO&47>W_W3p-)id${`~jYs{9a-Z-VoAWj*(j zrQZWyJGv^L;oRQ;Qrl+HxF#LkKYGrE^KPxFo9ui{RXz@G^Ruj;YmK9}uBn@5`4?>e zzc{~ra6{NDg8d0@e{2PBcWYPoKb88~^?Nn_B-f9w;L=Y)Z{wTv_>BEehTHxXI2w*m zod0ysZ)7g_{NOhKj`g}14xfa5`~C|)v-aT=;r9L*>9h42Z@h5q_~iHzKmV)ayQ9a~ zP`rInn?(zkY40_I_dRb|Y1&&gb@Mzvd%ttUADY<6=fZ9OM9iU<3P=9682&dnRRCf1LJ4;@wHH*xacmIfhkV^Ko1{Ge5==a|H#^h*TW|aP4wy?@;{LHjaQ3* ze~-`JKV@w~b9(ys&1VmG|NYV1^9|C=zVbiV^Pih=jUVC%d4A(lJZ^t=#D7*8Up1yO z7T_OSCHT(MJwDYW=KYAzuJ1TzdFO}cJif~F1HL$a+~D!etk8>J==w(c+^Vgz3R@U$yj*0+qdVNqw)8| zrp*%G9lf3ZVjk(QrjJ`AR zmG@WE=d$`vaC`n#{UhuD@^XEu@lDX%{(fSjO=R^Q;nqHtzxtQ*zuxUP&OhPg59jY| zoHx!tv;1nfJs+t0W%=X=fAEG>kr~w>!|&;Cw|*sMf~EjkG>t;`j0rj!8QK3HD35M?7xtn z{1pG)9^VkZzRGfJ-R1EGuJ+CKqvBf+|F*vypRr#3V_o>bbbR<%eD}Kj#`;pTn6HEW zsfNTpF~xi>^80+}B!7-CT*q&b+Yjqw#3%dW3!OK{m*o#RZ)_iMa+Q8f;aX@6 z`(FcY&sXaBWbLm;{8k^nGyJr~K>qt$_b$8j|sY_QUw0`TIxiKU|+MKg52_-*O)2 zhn$nL{7uil@%jc%Taf*ioj2-Nw(%?GEr@^RQ9gbuX1M0Ji(Mba-#q@B^Kkx(x#suF zW50ZT9&_1m4!8XYjNf_u4eZ)Ki>OCUj4p>7bZJrPDlG>ex~(}FFd{p75!^| z`TGBJw?DRmEB+edv-N{)|CIip#m4RWnm(WB{~NbIt;n1?kALlaas}7=$=}$w`~TJS zf58WjbpKjE;eWM$vefO5uFC(6^csI+{U2~UKGc-@YyPeN|1h{XzW){ZAf$zpDIK;x5Qt^NnRrt$tZdd70`ABk_mWIun!{>6WQKRn6Df4Ihf z`Tvgi?fy9ZC)O+ee>}e6U+WthKd`kFz1=^K&#B_{rCMKKZuHM@G5;U&+5V9@ro4G!W z|622BtQY@^{OtR8tVzZC?+4bq{!6&MpB?-9Esn2++Yjr<;<8UIzd&!-&(-uTT_57l z(|?ZMp5K-po3a1T;P!kUJ{5n=SMvId$mP_hjr$MRFIheOQ|yK=bszsutv65sG}eHU|$?;pVJ z`$nw4=(pJaI_^KLzlg`<=i2UnjIW=F6Q9QC_p$%!#1xP9@4@Z)0{lx8`(MxPhxqdN zyXfuxPORVL@g;D3ew_O2oEg`@1NO`7D_PE1+TQtOk563j!QVFf1zVqz{doN4?+rcv zaQ%y(-_Ub@;qSMI&(;sB>EDD~`-e*t$NxJ1%kTeI`=tIl7G2zb*qwoFv_&4|X#{2cJxW-@X zclG#2ra0G1^7S(Qt$z5__!sM6g4_Ff;`n0!-Q0ekgcEbjw}RL9O>x=he_zDDy&obT z6Jq@f@GnAqiaFLlXS}draB}~Yb4q;wbZ__HKjED7;X}K&^Y>$qfZOx)wSC(7Z}6e* zoB7}OpWeK#=zL6Z@yGUjv1#D@9ANtg?eA`XE?d_JUNa)a$wj=k>xbp?CZ{i3_pH}< z$6Sv6XW;gJR@uz@@8|Zz^?5cv>_3g(=7-hvPr>Wzll;-d`49H|2Bo-cQJ;bCe^7Dn zc`JI(=*5p)t6ALu=Oc6ZrE52>dlLUPf0Le^WBn8G2l^-e(TL-}-t7-f^f7O8R_ZXGJLf2aS5lUKb+9gk0ts= z__ym<^^e&8g=@5^TUh33vi|$*-J))a=RcwdZ*x^TzSVoTsGI0~tn)91uAhp3nf5K} zCU|_4s`7{MZ_oD@_ini;PyZm?-rokt|CskfefVGePj>sGs`3ZW+xo(7Tj%TVhxZ-t zoctfYzPZ;QU*tc{^9%f>UDF)@_o27@ci2bYdd%`E{S1$9gmd&U|JSG%b@!sT>-Qs; zOY8Yx{NDrb7p~v=en7VU?BVu9`xT$~Y70O9dp^>lZby$lod3uPy*TmDa~`hmscFnP zesi6N@tyV;bK1|{#P`2oU&l}O(Qohiuzs24=oZ}no?}Xd_0Q!WEe~YhL zcv~U<`PjGq6Z3O6ULoOkpuZu!-#Sl!dt{&bas1KqztnG6k3Ynx<1fzf+r@d<-=NCBdpAg^Q^#hahZ_F9%Z?O0Zw*O!H$lP1ppFtP_>b8yJaJGz>G_Rw4Y{Dd z9B$vIg!5b0|M6~rhT9jX{qZ-pj`RFyrMT(?zl{8j3Fo&w{iSewf2{nYiSs|v?T<}y z`6vEM(BC#K#bf;fxLu!f%&9NOKjx=-e&bSH@l%UaosUX!9bek-MP{G%A%4R?Z7$Yd z0Pi!d$ZvVa_YAi`BE^*-wKxyG?cY|P&(`N0xZVHe`!#&?Cj0%G1zx{#Rr$s4pZ8aF zaXsHRZ8`p}h0V=Y-%VDnyTCc`pQ_}4HEUIOuJhr!eB^3P>dv{h9Fg(~2#g-=xAm@n7Wj?faTJ{IdJn)cqU%2V;ue|JXQJ ze+InWRIlG``zBDfzNZ;4*!BMlw{)n`Z*ge5x~uSS`xEo{FRQn$yTWuo|7P{rzo~4W^K%|Q4!xZp^i8waKK_q|+wr;dkzR|g zF0NTxyyioF`MwnWi~Qc3WX;2_kNG~G_~EVA_U~Iw>u^bF)&$1?&5CXME#rK~S`YO- zGg%;_qx8Jg710irmnxo`LL?|80u%w&*FbjIX>)5e>B|gPs90*`1xD@@5g>&UM~OD z;y((#?VqToKN7yEzKGAbKC=Ia$3M1$E53zr+kYAB*E{cd&xQIOZuSc{zvQ>rzVr{f z{lQiFVZ>L~t3Dh*=?{fl{q&oTui}5q>oX*mQ=dc7+x?qr`h($i{jZwKKJ5qnlb(N? zQw#9}O<%C*OZbhLvihf8Kg9X1W)n`Wq~9O?iIcrPdHVg}HvX#p6I0y&*Q9^g^D*Ka z6ZnT`ZtDG`25!%<#C*x<=M(;!$2UC1zZ?I0!r$`xruF2?@#%d08l_j9k18%{`tHKz zH(THPg!trMtCe1cTYOpm=?0sY;QLa4d%qBz<4^ptejj-6M*nEOIr;U4=<)x$`yZFY zAM++hu3lOUxAzk%fB07mf*!s%_U-)>_-A~{>i2>#Z5)5ltZ~lk3(sm3{J-h>jY;f_ zFa4*B$G0c?ag&@sS8MAR8T}scu@j4buKVsnI61}j|IqUrpW^TD_xi%+MsHer^My4_ z?>Qfp%bRprv-GaVXZH^y`{;=uzB~Ty{xtlA^MZfbhwld8ZeXJ4H*x%bfPHJ9vJa;| zif>o+_IXZ71UpOWaw zDbD{d&u?M{Cl=cBbki5?`d#tyTde=b<7>2^<~=-^lx)WOsc>8WU3|gwN&kq? zKP&kBZK$8$)PLYQe=O&`!MWP^m!AbrTV2-AZ@v3)&WyRvA5-ve&%eiWl2|_(Ztu6F z&#C?5U+0hJ?%$qo&*8MiX7HN9DUN;g@JZOW_sh`cv-aT=;h#?_QZu!0{OkPD!ti>q*_Rs6|EqX@=X;VbT6 z^tn!3cx{;f#GJV({ckw&+w+Iak76$UFt{Bb<>%)Y`(OFr(EW$`6Y<5I{;`4kpI)KI zK71(l?fLOM`|u%f+y5xeZ=B2Je`MtfEiO#Q3QWyf^kQ8kG1aCfSGgg4^@;=s9Nm##}-EOP*hdFXmk?2=(cS-kx7TPoK-`w}I~* z=HDD2YD)dlGk+fH`GxjPn}jphg45ROoe%QkpXIdWLFM>pA2Hu^nGxRBd*I)muUDIl z?W5lsZu|eG=eOAZ5bWFc8)8m<6km7rw*QqrhySd;8{GCUpeKKFit``t`Gx+kF+=ug z>sy+>VBbHGp5J2qNY6ji5BuU5%pC6Z-2(si{vq`0ld*ntxV@i*HiL%t8TX&59^VM( zTC)(RmgAh;^DEY7#hFW~eUF7({i^Y<__zJ{^tn9!W@S!%vKjlIym_fr#Jp1up*o-ahtF-H^opW^m||2*Cqy*(eTW17`>g4^{mocdE!<~rD- zf6VdxMmeWV$DFn_)A^WOPFvj8;|ufqtRB7z{;mJg=JR+*xP9M%_~2+1AO2^%{h?L) z#u@ur{YG#b-<3Z$WuN@F^Zdf~nfjbKZGA)27wrA5(({`*`gtDTkg9wG{F|OWLH)D( z_GQlePV+0~-;9sgKLY#q{NSp)Kbhi;h46hm{_(#480$4Z+12?_=bB$}eW9^@m$H4< zFJrFxSv%tUYD882`fz(b0h^kC5x@NJ>HbILa@y)1?tf$jCq8&v?A!R4XCJ;E-0m+h zC&oX&#s2qp`*l_My6DgE?_Be!|<1p5KHb*A!V!TRXsc|6I=e zYk!Y#Kvljr{#y@suKAh#qhAYt+Vn(E`xnRmL2iFo1?ODy{|GzlI4$b#f5X~^Vq-T5 zwvVmc11zvzEFmC>@rd2|sEC1Bn4lnHx2RZvf-EXvfQkqrN`oSTVz>Oxb!N`&nYriw zegE6neeL_4^XZ%!cnkFMe51vm)^8u#xAdbi`=tMBO<(so|2(IzZ!7vD`M#0q`OWLE z(fIllFWk5-!Z|dYt~oapz($4 zf197dZT__t{^j`v_6Ml5*!TJ^;WGbc%(6D;{okzqD>FHD`6hT1dH|F>%T!u7xB^o8Wl=ICYpkKX2AUf&Eps4mWbG?b5xFGDqb z)w=$+`IB+#%3aF4W^(G{of==bzu@&YR&0iU*?(buPyF6L`c2`oeumrp$@{+t`%Stf zIBmhkf=$rN`>#lUmVRTnd>_&3pVfa$|Gk>NE^+>QPFvVe^xR)Cy|oY157+dU=W&~V zZGeAyKL~o#pVqGrm-o}#`6q4GpMSnyE6JDp^_ve^tmmWf@#npx=c9ef>Vlb?KUE1H z+&EkLCRbGlk7;~$xnu8KsOKw3_1#a_|FiXP_`{lh`F_vF;rWZ_tF~?%JfvK{kCVYm z{yipGkND;N!&w~tx^QV<<{!)0mJqA-*Mr^=oGf-=%x(ADh^+_+C`|^?4ls#Q!gP8Q(4b zwEiEsln-f|zjDVo{lrIFUe@$i$DBMRuZ{nWUgoE1{rYn&RsX8$JH_1e#{WVu&qw?6 zBmd$2@1O9BwsHB9CemW%_a^q`{c2-7E^g@lQVUHp{Lydff*#9S25%@Y%QZV>al_M} zH}aad>Vl7c-#d66-ZY<+zwkfsFYEt8`rqO5em?V$hW|DH6V-lY9>+iN{f1uVM}_pi z!sY#kR{!fo!~a_P--^-#`nvCkf9KAzp5N#zO}`2*`vdsrx3vEc)xLcHFw%Iw*Qdt@GnC8sMKd_Q zz9oG!|HBIBa{eq<$Uv1p~z*lWKMfc)q%X8rJeskac8H>@={=X(ZS)W_~mDVp%|Bd}0 zeHQlV%e1dh|J8~9`HE*kPG2}r{mb`}T>o7^wUK{?e`$Z7d;M~_ykExR!zTV23-CW* z?N=u_dgIH`%l(o<`lWDbpT2)3KJtgOF4FXOi8*-&XDoy-K`-Cu^ZJE{OpEnPR9_l% z^l;NJMla|8zI;s2|1N?{`?vBZ&CGwov2?%STkIE=#r+$+`7|637p-@m>-G34~6 zU&H18g6HHf_TdYo_&oRe1rhiCEB+Y^@V`>+cZuV}CVJ!Z(aZY1kp4^f>c;sUHc3BY z5$)r9ONbqrpFS_3%Gec#(WR!ML?g z>%afRf79c2{u^q-`Kyf&KPi{{_0lG7ent7){OU9O-y7uk4Lx-N|EB*<(_gHdGJ{io zHb41Qx!f-mJ#7|F{k8eQ9PG>aK5YiQwJ+1phA(ZO!zTW%{+a(j)P99>8~-U^8{a=g zFW*NX&(Sl!`uJzT<$hYB{41h=Y|>ah>HPgi^Uu$3_fz|p|1-sYkvxCy$3ODI#?Q6r z<^A?>TeEonG4Y9>G1JCR&zov|jr(WB=lMtI<^0#yPig)kT<#~Z|KRI~#otWFhtrjZ zZ9eSZZGO5LylJn3d_#?|yK#zBL4=(R7B!6xG z`1_T4_1p4)YxQ5J+~&X3W$M57CCaPv>c7o@r(s{ppEiM>{?F^TLNEP8n%n$!D*Am+ z%;V;N3S7?r)9uUR-&W(R$mH~8@1U3OV_2VN{hR6E63+7x>wflG!-98NzwH;?(r2p9 z)mVSOpz(LeZLoY-uRx6whh{-UcMhJeE62T2CU!z_upBnhwr7lTKQ)3%o%)xS)VHZvqRfpcX(6T z-~V=YgXhcSSvmM_>R;|RW$=dG+Xj=#KUtq=ar6yvxxY_**u;N}ZsGm|`aRXYe7`t@ zv(}%4Ugkep9Q~VcIiG2H`s_sdNek(3rRndh{6=}^4gZ7tf2wJHr*GS!rTXuZ$%%g= z_GNvK{Ve?ixI8~`=h{yb{`p`0w^sYLnH>LbpqKVhNdG!~VqI?h+F6P6xAYyV>8nZb z=4)nZEcic2{a59d{q{+$H@=JT1C`e$c*RYhsD8mtM+D=e^cT{PgG>4P`1oJyBK{A- zzI;Ek5Fd+P?gzl{Ig|aB{Q|Fl4KDLbiwREsC;h~Kn5Mr|f(JLw)UtxVivF9@oTWLf zKSK3w^El;){uT5x|1_IkPx-wJm;3d^Px~g%%opwZShe3d!7Y98V>Ev%aubhi)LUM| zU&6lZe^~xu-}Hk&Ya5J#Z&|73m*u~$+AmJ<&Blgx0sAkam;DFx>Epj%?7sk)^iSR? z%u~{D{TJyk)$|1k{`0Jlw10sYD=$g#M+beZeF40K#@8W_Q@-%$@&90`=QsSD{?`s| zgV9lZFANXs1l;_?JE{GWoadw04gJHPb9(wGucv=0(fG?$ZyY`SJN#Mn^8V<-{X?5+ z{WEY`|HIM1E&ohJr6 zu`oWJt^TW&-@1j&tsMXU-O)SOhEo@@zsbEdL3ia9s;7M5^p)`A=T!&w@TQfy zTb}$(+bnqoCokb$)PGGTA2_T!c#`zV_oGZtpX~Kdz~z2E>BlDi8H@0bzMI;w&E)KV zKaO6`-%U?^UjG^Qa$` zHRXR|6hHj~oIb(&kI9RI;6e1#KNr&X*Zir9IsUEx!v3jn*?<3W{m?&sn)OBSQy&B@=9=w*Mx^w{_M`{8nb!15=Z ze`jd?)iEdkX0P~IVb z%>2{-|EKo5DgU8-#{_@rl-l4Tc$1n0xBUO6xHdRn(^r){>H1F_&`-Ory_OGk1%5C7 zWqxDji+``bQ1$IpkH)y^hoP7Ce)-{sr^Pye5af_Q|mJ6yHwK`mY>Bx z@rg!$5B8gdoo0??Nx{Pb#Fp6F#_`<`3of?moqV z#Yg$wgnjvb3i+SrJKtU#T(9Ztk>KVFK2Y_&3-W6;{<_@CKW4@DEw9nvL40!lZ{<&X zX8$$G-`n9*{u`Gz#^?3dssFlydZ0sKsybng2T?`<}n_ zM%dPf??&{p{`1`O2Y#38yCwMTXEo{vp_lssX}!gN16=N(Tl`<%Umf7z^6y^k%lWwH z*n;mV{)fTk{rG84`ry}NU*6xb?SE!znPcDUuY=3_-*fMOxcV>E__3Le?^^Wo{xYv$ z62(XP->>>0q4#_sdYONi{`0oAf#=u2<@*)3=J4}B#)s#yFYhll&YbbB?ZfBK;EyY> zjyZGUxl=#X`3w9Jm{nOZ&^CjcV|8gZC>Rb~3l=_$V zH%5BTuaf!Y|FAFbUocMmUVjB#&c|)d;r*k3R_%Aom!hwzj`hT6>j(6gz*|=5-njn*ol~=ZvHh>#`nV*;*n?C+?;4=T`{ttZ~ z8t(rPKkq--f%hXc=@fJFl(E$K=5Tqxf$5Et*XX~D;_JT667AnSKYgc@gDLPPB{?|j zCpc>@^nagsV(^yoV&(h>XRXBFeacS^Cae9UGx_p1J%h7JpFE#|eKgc5uRkl|$Bvn& z{^8#LJ5l^u9RFvcm;0f{S@U`Q8Ik>2*Ui)P!^uC=O8RGN`pR-})&y|o`tUBR`UM{< z@1&gm3C>yy{_#Hjf)A9JD5rmcvsQ#x%|0=BU*pf_-)oH|L2X3 z=V|{4$3Opz{~2mu+D8V*|7qyue8o6@qSyZyF3+d+c^6 zy#7SEtUpOVHc3Bg8Pbpb3$zvcMc zzYi=>|8Vbrx%%&}oHhfeEnw@vr=1rpQ~%YOocMZSU*4aBee|>`ukQ(${f~1m4E@9L z&;OGCZ`6OSa@rJ}wgSI=<$1vh^i=)8@RsTV#LCVgHylZv<2$I(kCtqeo@|CIrS4x zU51a_^}^ss<@L&`vvBGneBJIB1V3o}m6@FMbtOKTzv3S~b=vFe;hS~N9WnJwZ69#_ z^S}82S?#ya!V+2{=r;SRe~S3(HxECs^H?FsgCc}34YMpkmnA+DEOE7r>*#Ch;#Q`%L3Q--P(&`;=Ln{Hsjq ziO=gR;Ih6xuw@uO{(bs4()4#p@ITvy>DzRji-Yx*ADiG$-8M(_diOCG1?y>i)tQ|9 zDaXIOf6M&08h>)&^<{7wzotx>r#9i<|AuP6ER*BE6us1M(|_?>QeOgprFU-T#o_z| z?$f`C+V7IdNq=YbgX?3yc%M@e`c4ra8O+l%gZui|OzoeL%i`3(j_Bq60>*DSJgF~+ z%lggwcjkXTUjC)dKQBD}%wQ|*H|?3=c9$@Bc>iEa_1`_7|DiX|SkqqY7s>vR+2=Rr zip+1(2XHyxhx1$7|8{D>QthYtqEWqrZIzd2a(v}TpRCW#CwD$Aedyc5<$j0xM>Alz z@UAB5Z=v=ZW zP#0UNzA-*HdolDiw6(pJ*Cq7qb;0Q?_JS8B^~ULIjv@b!s*d&S2^vR#G+gGl^qJ%@ z-1dU--%{;obM!}{m;E8rv!~|uM@HQG6u3|Se%P1(+jHB?p)Y8o{wp&%@g0GEIsY*| zdsbe5I9&EWtj~gb{|Bi3noO>J5qf$5h3VOo^7{Y4<^2cNXTg2>AB_Dbvd7dzv#we-!hh;Bx;I`)U4}lD=G3p$Ble|z80So8~(7k*#69A_rvsrQe*v)b>J$(akaLNEIZrYAo7N9qsymTSV|wbh*Y6FN^^Khw(Z5^&O?=(4FZY*?vwlCf^K_k`!)sEU z^<(k(Gvf7awZ>N+>pf?#ychmu{b}~eKd;{tF3)$_nWFcPzFz%T$DBRm&kvgsuYbF! z|Ef%0C2N5_u)n%8=EUdqyTfIDZ)cv~Kl*M_`m*?RS6^PJEVs=y!$7{Lc2Q zeg32GtLdwXIeW4{pZS5VAK|^D^qZbN*eA6h565^${WWA#*7sWjeL9T%lSQH zR+j#B^s@g%oAaEu%KW&$rZ1Z_Ki>}f(mqX3nJS1&zR!#kN+jUi=zB7PMTVyZ3!h#}D|8aQVJ~*=Ni->9hCZ{hdJ?f1gaw{?3NPC-=WiPx*NL z25|Ylxs7>@3FaUDO=`beCTD+Yee^H&j5+an{d(|^>vJ}y`Shb7qUo3K14LscV@8Xz zcjNuH+th#0OwRt>y4ZiWJm$pj_3K1D9`juOqrXG#%l>FIr||KyKUsuc*5}5F&&m&d zQ@G3zY|QfIkAAqOuSbHvUmM3GwW^(qQ|3xqL+w}PN`hVc^eo$*4KK~b?p)LL?_KPI{t<75dwEdOe;d1{1|NQ3d z5C4BSzJ4Qpl0T;B%+%|Dh0FPP$w%Qc6+S-vKc@EO{mL1f^#6ih z>Ys69qJJSR=zoUG{vPk2XUt&y`Yry~)qZ#7oEg9$dMZ2%KKaQ(!K)g7m2%Ep z;4MxK)Aw50px_nNS7dV1zXt!ZKaYR(vko1Q(0>n?`vV7e_(uCoIR5!x{Et=t?Ui#T z1K;VNkmLV5O@C#qKW$c0KVJ2ree`hCV}CVzSsz~W)e7}*dj1!_%5m~Lv-EGOzJ2T;J?Y0j`jwG?v;W|<&_DL^{|#LB zFRcDie_Kxt_h+fUAE^D#asBXo^S7@J-hnqQPH@``rGCAw`qJEzWnrB~Z=AaRwfHZR z{R>}z`Cr;E`sHxhzku^w+W)(1zpdI&^Ci1p9!yi-K9l2r8R?h(4f9E#V(CY}G|C_I zkLI_YUu!I+|9!Pz7RTo~@h?f~vFY`T;j+H4{6{nE{Z(q8{GWmSsQ;kN!7Y|`pS~ej zDEcC4pXe>my#6DNuQrpTUx0s^znh*kdHsC2*th-<&92kJvtatazp*dwS7|0|H9|N zWqkxE{*KGT_~FF=h1!?zM?`u!@f-gfz2yIyOMgx1i52}^xUB!-E)k6X}YjyZ+ z;*39^i~Xz(F=`F=vbO~d?8>wnbvD>FIz z8R(a^i}{&N??|M7I$YNO)IZk5>H7DF+V7a)AN{df+Y06TtHxiF+vMM0R8ReY(^lXg zV1H7FO#Oh1?+$)feOau>zv)MFWL|MJ-FOIcw+U>>Yw!a{_ii1U*>li zoc8lBdU?Ns@u!<7_0!-@`)U77nfv~i|81u8Q_)BBPxu?lzSjPizF-~4nG?a8D>0VP zS2j_8yz2Q4Zu83-O>YgR;$OaBx1#wP?Q@xvd3_Q3B6+`j21h>yy}TdaICCzqe+Mr2 zga7*Jd(Bfg@e?cYZ>0A7D5p<@GnawWSFf-9c;)n|aOO&I()Tv@OB?mf$-I6;O@Gf= z4>vvb-$F0%KVwY5zv=M>pA47v2b?;=oQwG3#J`Eg*EQC|@egM#Xh8o^&m3cd*W(NQ zW~%R%$O|s`^G(z5^j1tolyM>9g1q=dP#m$MG-w6WGtvcT#;2>#=Wo;(sj4ANH)!V;}$c!vCXi znSa8Gf1K?36F;2zOR+EaOP)J6m`IF?_l_agbz8x6UMfw*X3hi?y z1!sJP*TRdca#{T9@dJYgiBHzo#yNBI`cZIszMuH9N&MVZ#XtIbwcjO^lfMt3m-(^j ziO=gtM*d&!8^(`+pZ;EIzc%N&-PLS;__aX~xa?mT=giXXdcyC|u3$^^P@Abpsl0U{dv-R${tZQcU2V)c)A#y&;F3SgS?OPB zlSf?{zRQ^L=VG;Anc(CF?UT9KIhsH6eoL9tpr_8jsbBEZ;j+IDr~bjIt8nI${ndUp zXRdTN@k#!go;vIGcfn|;`iM2#D52R zdH$a{EB>)>bp`*o!{z&rUJ_$}=2WKvLzVgyc&Rlc|_ND${ z-}*GKzYQ+m|6@*xfBH21^S}7NNbPsd`J(N|JLiREil)+TzSU?xBO);dNcmdJ1%E)R{VSY|1^E=GCBI2(98L;>1mT* zKNv3WkGDB5+{b^l+L!a!Xin`p@!yDE`cLDuNv|ISm*)d)&I|YXH&E?YW^(fHhA2MM zGbix+>*10<=BLcLXw!cFIY{&O^n&~b<%RXvVPEc-KX}1EI;ZpYN8CF+xE3zouRC*T zc)sR2`_qHfepNv}5WT#A$@X--p7rxJ@Y73j%;{-=oIhIn_}>RL|LSw}d0G4p^-87IW&Lk!Qn;_b53Bu}oVDpRzX-kLpXq7;UVkC{v`#s@)5ZGF&fjT2d(=~Z z%JMjM9sZvBuS)PSi(k|FNBO=3m-lBh+CMLN@#ME+{;KlYm^1%hvei2}zM+2}F8f=i zXMWmam$3Zd&nmBuIrGo$tHb&Ue+FJup2@G2xxfWc{+NB*kJq0M|E*ij?woo5=tryl zlQQ|%G8UePUf!Q!dg8PA(Vq*K`!ROs%%>myOPapAn6v)a>E(BHe1?xv{~a^=bjEV* z%l%xlPyAkgHeA-{cIV3bNB@f2FU#Z)$Xw(s^jDY1ocOH#(4QIEw>wv?@2&jNPsDzc zT+TS_-{*dOOV`iv*VTWgOg>1~kKr?m{_?P?VcIV35KUvn-r^99b zZ2r-E{}a@H$C#5pW}o=_qhBHG_pZ6t`96}@TmIw!ZMEMq=DI%-*@vGJ#c%fUZ+iTn z443@1J6F2D6t(~9auz;S)7L4%zutI)wtx1QPC_sHGmU!LKXLkZ(KjheaMP2%e&}U= zVliRU>raHs{sCh$V+tDjH|xLtisJL!^vn-ds{c;0o-*HTlQ&flpRf9|9AgspjWa*r zK<4*z;PQeC4MY@caP{?($F z`}?M6PVDtH@Kv(^9nCrDAFTaTe}2{YyTqJ6@BZf|X#WfULH$?cY)tT+v&ipM-^l4x zOE#LQ;~Tsh{~L76*_e~ouZiquan4e!(6{Ii>#=X~VZRbCWecu`f~Jg{%(5Ouh*Bs<@vNR(U{}&pY;8%`B#$QpWhUY zADnfUqL=-JLi#^dAHynn^wr%cU1@vo2lrY9%(wfm0M{u92Q@@_GwPkiCgvD$yaJ78b#4_Kdw zebaM3+8!?JE6=_E4Y4oxmn{E$eCXSum+~<^{>?uA1GqeYY~{z8LVPyGE==8V}vob&It=wL{67r6tUpbU{kreR#r1c0)ra*P`<|2k|4I30%=G$0 z;nF@v?HfLmWb=3Ks&dzKFYL?tnmscFXZ{Umu6?lRi=_RcxBI<}pQdkxzNjX_O}{|y z+O||)o5?R1`v-}A&i~Cm_kX?qK)BTZS@*oDKGAsptt0afpc7#j&FiuQx`X~6&YQH|g_gMR)a{Bj! z)qdNYjcMqOGk)#&shF4V@0tA~xj$wc{ZVSaB<5%q&VMzwf4JH&&E(wQIt<>lW6T*- zr~mb;&X3@2@GtX!o0E9^+&^m#FF!7!_x_Jm{}r(w`^K@qFM64uSo#88~VJapYq!$@^3Mv^*QwN z{`oAv{QEnCz0u43*f{pR|Ggq^dE(XY2` zq-78EazEc&xJ>|B=OswG=M-=ef0C z+QP2lzliyv+fy+6=y!%o`hVVQy!y2EWBw~5`&k_QPNJv&8K=)Q`^3K^T<&Lm`ol|_ z=a#?NC;he9Z(5hLHtG4Tm)#cBz-9l`bMhZOdEG+n7qNdHm8s=F9Q}51+5f{ozj^!k z@2d7I65Q;+G40l%9xn4+uQ!gbZN)zA+c;@9j(!`s>@SYo_PID_>;LfIUG2;J>oPd; zZ;f8|CyZm$>$if-{=xfyg>x#}ywyKFU&6keFMCe=q<>vU&X-PC|K&NG)1bHZ%l+Y# zlvm_zPU$)K|NE-_k_6xNv*&ew4ez78I_Au|`)&Gy&hOz{ek$=_DbEi?bAIfbp63^u z!{vU7=N2FOe%P1!iS<7|KJ;6lm;3dm$G_P}zd2m`7fU~LYKxEb{}=l*Klc2z+g{N5 zKm1hXWie;YJ?V!Rbp8)-hW$QK3w*HE&rHPqh~Hk z{#}Osq9Dhd*yh}D=F&VLajE(*PVfs~Z{+J?U!K3W_{~1H(60-Z?+clK=H%$j{}tGm z{?+^&$A5Eq{$U;TvcHL*-{5C1ZPZ_hUi!Z*j=l)}78NmP&h7P0;SwM9kC@W+Z-Ck_ zjoXiL=Kqv$6ZG=^KhtA>_o6Xz{T-LA(r?o-T0Zo- zzW=;S?f1@EoAUhDJe_ZRxky7zx}m`z*uSlFtfx;d|K$lCAJG2}m;Dp3 z_x|rx`=xRI`1r8@8+uv4n;!cp!-9v@fA<96w8xV={=(N_U)IM~|I+&J;j({X z{uvWZkN-!p-?VGY$-mDZds4@5_;={#`x06Dez)BlJg)lc1UEf=HF~+?;j5zf zt^c7yPQ_%a3a^Ja`5!`%9i*+V&}} zU+{17@5GSO**RH#+;caH0oc__{%am z`W5Kk4AYOEKHclThBqtG{@cd9+KU_W@1@8-`J3kC-&g2md^OIT*z1?W+jq*fzACKq z^zVNEqq-~gr*j^s{CK~^3eErO1n=2wq?RwwKTOm3f}GV!>>Ho;!F|E&%4>7hCwsp5 zwR?l{%H{n}Hl{c|{rfWFm-WB#r~bY@wvT=(T+YYLKbkXk8>R8#zd`M{&sm@8dC#xz z4JN{6|HC+A#_s!%((wtt1p6}owmv(ppQQG)Iq@w@R}L`K85ApKtz& z{~fhop0hE<^IuN6FL+zyFG=ub)uVL$f-l6rtUoM$Y5fAYoZp*&#w^q0e=7EybWHGv z&lsiS8+<-`IX|@c()usql7CkJ==0E1zoA|Hdg)({W8dP#{^xM%pDcZhN#>vUXJTL8KkNDV`#z|70iTOr=6{yHwEi==tj}#s z^!Z18b2R?yob~CRZ!=|hFkADdTY{fHdX$b&@HyC*^}E%NJblVPV}j}NKUeLS#PPv< zEgq%g(~pBj1fTvN`gy9ai1p;Z>9Icxz0_|@pZAabPvG+Y603iV3FNQUzvXJbEJvSd zV+NeQw&l=~!6LYPABjHObNcep8;=YYs=hQXKeNyO!e>VDd40Rmu>Qe6hD-Z5|BM-M z^S>lYzv+$Rf5!16gOAWl`$Ere@QeC1>X&K!T{AiQ57Ep1m+2W(ynY5;*7xKeF~NJC z)0lr>tNpNjr#bmI9lflNP0yUv>py_Y`uFh*!#Yp@&iG{G&$^6H^8FsGQ=WGlG9vg3 z|MLD$&o}CKkLuyyX?%4#>vPc?Z+^k>V72n9Oius(KJm%^hw1OV?#_h%y(oV3kLLKZ zhQ|JXj{IAn>iLXEh6g{u<^9yg857>VV5p8i@OQC)T>G4j32FULYQH>_lfG%_W&AWf z_ANf_PlZeQTl_kvME=RY-_?F;&iZ`M8}=Fz{HE~-3BKUEp*sG+r(j>!&z8Ql{vEiS zZeuumMg(g$eN{Qj z6VD%Ce?;)F^6E@Z{!Yfe?9ZD1@%8VD?W1o<`A6gZH`V!9?>Iin1ip;t>m|NP=;iw$ zRwvT>b+mn)n91?~CVE*vn%?ZwzOX+L-oJC){^;{9KIVV>U|;rMt$o7DfAn|UFe+%F z{=4Srv*`1TGk#Z}{y?yWrmrOC^x0(#hiYE}-%Rz@IUDml-*)>4f{j(*JLZh3)n5@YAgBSfc zRPzEp9=+TzxAdj;x4Y@zqO8r+S_(d-d)$toX7WBZF7bOa1cP>$g|Ee7|Gea7?0nOppCn z(98aSrO*4v{>yM#|62WH%p`xU{_Uyu`{Wo?Y|Mo-7Iip(RIm%Ys3gaj<~d{K9!nnx zc8=0#O+|LXoX8nI!|4hWqKVu5c1qm@A(OP-yb}UUiNR&dip=~2c^8U6%%dB2^txwQT;jjueD zW9xDBGCrH0GN zC_d{`y?*>F4+O`k{f;@~^x62QEx{ipJ~`j8K0B>HF7ltnOD}yOcm%zy4~?6B;>Z5O za9RIa{Pg+epZEifPuAB_`izrS_(SMr{%-LbCw};YaG5_@{?X@P-}0}c#xKwJN}pkU zmiZqva8yvN{$+n8@^555VR5Q1efpF9zewhX=;HaB!aYA* zf8mSxkJtFBa<=E^IdkD2n!d6GXZ?kqx%QpJFZOLsX7g`2`rF~szVOd)-ah_MQ2P}L zZuY0Wa8J-%(=YE&b9&?C?-0@_^LOL;H;(=`xO{)`mk%0arhF~^ebs(>CP#lOdU-#f z>1};r`di>FYjcx-++Z@l&1o^|xNDm2*s#IBUupg>=|=fi#k~JryK4P1ez5Y|+}o|1 zsNVQ-n?J7l-!*^A6a4+5FE{i)dWha%nW*u1%-K6R(Q{XC&+Gf@`+rA8>Dzoj_)cE< z`19Ur=+e7O@VC5+cz|*_pAo+P+{(anzEyjH^19p?UoMLIsx7B9tlF+FIO66#gEN&^ z<}TW|k=IY1(y-H*8hMw>ZowIFS^s&y@Q`USznT1dvNplJ{wBD*KM?8OhUZ>?BV6`3@NXLL|9rJync(Oxe+HqK z{<)C;26%@O&41Ha`H=rtX!<(l#&%pB+id>KI}MM1Qz!4oZy8*wymPMEA&va?iSIPj zyj2%`^!whyB^qCGf)l^->+yen+XVOe>)kkf~(YjeS#Ao^&5Uo z@_zZ-I&D9;r+p53_y(_32Ybo4kZ(|Zp9H_M^Sp+M&xQPY zxO|_(>*42(s8aov#4qpHN^{fy4=(H1M?MZUY5zB>{cd^O^jDyl?^B{*@nDsHzuL!t zIb6n1%OBF@(|@a`uWy2@tp#EJ-J<@x=5hSfKV63X532I`ib#JcT%PYAclwuco_YU6 z)P7kWH~l3}Z)M{37sKWJpWo=;)8&6J_T~L*p7X71vvrTAzg9VAhJNo|8~NSJyCito zQ;qy0{LB4t>}TmOgv;~wXe>VblYe|`dst-ObNm~>0KI%4(tlsv>(6)ov5!q(|L<4( z)f%7K++t8;`xxQUXB_|5KF-6w%&$nFaj!oY{%=_hjrULa@h<%bBKw}BH+~L!+28Qr zA18j}XTzm^*!YP}KYl*1_8U2Ml2~ngeNuT{tcOz<=k^Q7-^bu`{xBf=W}@-m_UIAt zuKq{iGCxRj;)9<>e6l`IbJL#*m;DEeAI+pq7RLUcQ2V8M96fjW&p{?92UaxYe0^iyP-xFKha15`4pDQ)6E*slGD7 zsh<|hDfpNC_4d8~WVn1^2X5*2{$F+R8AosR^Ca|gzq*jVAAH01Ib!nZxBPou(^s3| zd~3pdjaUDj6CD4>PsF~QkNNLkczs{EoL{5CKlPXPXZ|Os{q_k?`r+qD{q2MPb9uf( zV#?B=5ZSl+H5xyEUas~##q(?01bJoi>m_h`KIG?repLI$U;Al*-jDx6^<@c8T{Hfn z>PzzYdtY6x`e|@^f1JJZ9{cDgjP4)sF8p^?-!YGqet2)vH@tlwH~m!A7w7T0Cx!NV zp_lyu{9B%zf1btZ377XPSo-;m|F!r((DC-9{Zbi z%HyW*0hjt={_Xwy=6{CTZ_Iz==(!8u9evAw1@+zF(*CheOvHchk6*>*HwXK&zK2^( z_jg(q^I7V@t|0$Jd3A!5R~CO){LB6z_OG~2zPBZL;_cV}AAGjPSC!CX-|Al%^wPf+ zvR@Z*G(P-#Qv2ceOO5aM^!T`}f7JZxp!sK<^jlrXVPBpPAb*W}eOq`{p!^c)A2yTz!TbM3 z{U4Xdtu7she#ZWJ+~WUD^-25qH~q2bW&TBc{I*K^RPX;7_=HeT`O$vaU$gzIo!H-! z=Nqj4!8?q4Jg(o(b^og(N1m9TXN|6DBkzfq`n|sL#^+1Xd%lj^?;byY3g=m1wo)xpcd@boOz{%^QNuPXwxsd)SxZF>$=g-i1|3&Iw`rqjJHqXh+BhkzA zQ^x84z5WQeoL}1WU1)sz*Hil?nVkON@RXi0(d!R`%lF5~e`^!?va;S-^S3I&iPh@j zM#_66IQ7T)f3Ux-Uh~iFd;KB8i-e=0Oe}xQe>1gTTaa(2yt8uiN&Pha!T2B5L-RMw z{z3l--vawh!}872ABbMg4}F?^{v801*6-9w%FoyT?V|Mg_T~B3>ObsXEKM)We=hES z_Q$@IANsALF~RG%Rr}%of^qaVzU+ry&gTp1+rZ^~pFFkrsXu0GN3}1{ceytb`98!i_cM&sr+L0NT=pOA{D(6g?|(0~Uz^F- z$oa=!=w<#|NWUjs=I`VWeJc6G|MrZ|5BAmcRVueK@w}DtP;Z?2W%@m^FXyYi%)EYg zxa<$Yv;6NWyhzI5&TmMQFTVrSe_4Wa7W4JLa(7+MXZF|pX*^#-Z~PtMyWn5uUuK^( zBjf0IhRgnvo$sLW{tr_7H3j)j=>IN>IX1n1N4T6HaXv(yIYZ`8a6A7wRnu3YoHhxk zEgCO|N9RXy$`4+%aEhJ}9ihB5)>D7r6LuXHke0)h%kzK&n&>yL-wrPOXYfOMK9T4DIJMs~=Ga8P&9kp*d`Bw}(}$jz;7{N4yz*_yA9?;C z`~2qh{O_^o<^Fmhz72YL|3B%=(r*oy`Uxi{pMUsjr}2e)xaHplSG=jQ1nNJ`KhM{T z_*Rj9oquQOw~W#UN8|nDt3zZz&8wt*;msra%>Rigt>40NG`{}uzx8TATt5$beR{mU zqJA+K=%VQl*PovMa_wB@RjTi#>qj`_Gi$AW^|O?hD-YM7##zf5FH`&B`qT3#R)3=U z&52+7ch;w#o4y%b-e2Ik_g|S2pZC8RdKn*Bf0=#s=6_T8*5Ue<-iX0;>tExWpqKs~pT@nuPW4Id^&6v?`|lQ0+W$uIXn$aBFhgU)mzCcJ!i!{nPW?!f z|EBY`uJqRYuZa03k|x?8u~I*dS6&`-<|pvMQr7Su8h^O{#6EQfPF}*-Cq7vplfU#y zY5jU|+5fZr_x`cfOYJvu^4#KsuZ#YSa?KxN@_Kx&1CQ3YK@YCqf`F#E)B_M2i~*7x|#(l>!i z{+NGkqUV2!|CA_y3h}j{h<B*~q;nDgvYy5c>`!c?uu{jOn)8(a;w12)V zN*~OY)68}GF7uy}ktSN(_k6UK?p#?Qa7KdXoOH}3U+!sY$|`C}UI{{pq& zKEcsje1D*C=$PPM|2w?@;mXl4CiwinRMQu(|KW^ja2tOwQNC-eXH13L`1`BaFN)Uh zHhvNxdj9ukxQw5q&&EIU$HvDW;in&wqs+4E&k*(BF^^mN2WtLQB{*|6%j>I^cPq%R zQr=y8R{i*a{2LU`uPr`re+^uouVBua#jnx$s|)h)(aZM%{G8X@{|?@|K1ZIh=Ae9N zUzYxxqV#*tT-55)Am#FWp3{4NgYsjPTb}v)xf=iSd;l?-f3IH!m*?*b@xhw@J_Y%= z=wij!PzXJYxKjm5e zzY<;~@BgFzTKn?--zZIgh32odFZh5*#%lj|ukuoj4{qtZ^3@lV-=jQCpXb*8?$-2` z=jn|vCw}=pJ$ag?Uj~==+gYEI_CHMh*XD7vzZAVZKac&Ek3X3g{}Q;&|EYi0Kk&b# zA7A&Y{V;z#xBg>DgC?mKMyYU z>3=C7<{#8QTOWR)`5W%fV-rqV;Mf|cJRE;Kzj&Sb%AeKv!u?%1a|ZOxCD1>mJlwy9 zGv|Xd*MrX`{W5bUW3gqpHY1@K1cIIxXmx;pqKAgqPO`SdqwD(-+c;~`=xMx zBYo_(5kJ0O*7Sw(8D}ri_>0QJ@yq64>~+GKYrUZHm8yNuYkvGv`7H8(a(Ms8bJKqU zm;D1DpZEU~_T~EroKKjZy=2qRM1Ojto|w?{zohRY(l77#B4*MDC;hBH;IBsME5tv< zzU(g-;$u}`oX5@o4D_-;NX%LOr^Ds_1;lLS&t4DpkGe87%HK3+eFvYUyj=GOZT*10 zX}cN9Cn%Tq*Grx7-0IK!Pa^lwIb_7^=j{d>eO=il(9gQsep^ZwtBIPqKk zasEj^+?U_G8h^(;J>{$EM=$#?mVYZH&0hb$#uuJX`24l{@fLb{ehxkHrS+5H za(|pYgZ_^?7U@_nfZtJ6a5=-S)UUV{`t-4|2(xHj(>i9v+{Wzy_{d8C%&|P zJY3fI*rfbz{*0dW@^RRg^*{EB&*lfF9}B-Kd_KU>kIesK zwO^4pe=`0WdU<~va}MIO`5AnU#Q!Q>_NQMRwC-fuw10j;>u-1ZkJ1FEFGdgV0+;g# z^ivL4rh4wz8(*XOQ=@!ce9H3)o7K;Y`M1hLeHLG#yu6_P72;p7K6mtkO(v)Hl;uj* z*A?V1qnG#pxB2{!hP0l#_7Ysy_w4_rIsMOS?92NF*i%b$#>z41W&fj){`)9>h4_o; zH|nALdujXZ&%6-X=l*0m|G6viug2G2?^l{$?*~g+!2eMH^8Oyt8@KX-|El^U_5O33 zb64>f<)wQ6JI%SP`#kZz-@2fFH2lJ#p#R_1ezD#^P22xc?&>{<{;;D9>Ys(n^P8l} z^p^e|CBDBj{dEb>U1aL-!E#sn8T4IyCb-xCqxv2R?)6Wjm;RUEviv^Y;Ojw}h z_j~;|fwdo=h1o&dUu}ZFbj^H?55A4Izb?6wLl-ohI&PV~Z(*AtxH056ZYSS6Q{FX` zw;8;Bu%7bT-24p|G<>`?sqb<0w(>n*so%0cSBO7J{Kbdmz7YM{rz}tSNB;zTXusG$ zzwy81Fa9@D|8<#s{cE=iHdOz;5}a7j!ym`~^lIhA@9h@}e+>Rl&sfiIf9%}oe-rgz zQ;;iY1Ai;`M z|F=zx;9>mB{pl?K=pTa1`MGg479ak%!hX|=n4|IhLG-deL7F#fu{=oYN5Kcx#d>U7 z{!sr$3g`UJ>Nmgn`n#Q`uWPLL{NTPj1tZW){HEtOuWu2>Ux*JUJ~T4Y12vl zeehr8`+Wu4-;vmt`E#0Mi}rV*#@|?fXn$8tn5J!kyx2>5Wn6zer!MWTylbL;t^7LF zQu}@tg{jD^8?en;`m6qyX-ajApU+AaLoEEpGyRk3p6VI`4`n%vVKezf#pMu`} z@2CD7>%ZsJ^)~9iG*b`16Z^9MrA?Smvk$)mF84>xKff6#{Rc$p^Sss0@5b@nj$Za3 zJoow`@JWsJ6Pt_=R{svu^fk7BIC`t=hbV8%ALFEjwsx!7FOu^!^UrTy{~wJ%$+tT9 z-Pryu#3$oxA^pv8xu0w8hxX^=KSJ#nC%DCtGttP8y{&O=xIyG!JBr<(I&I_jl?&+z3Odz^!h*2-n{Q;>n_~$pvAJSi} z{^k1v1^9L7rTrPV_HXfD3zz+k)>7wv`?375RQuVSx>^>cKTA(rD^*^cX`iubApYh3 zn1%G$z-9l;I2zJIeE6@xzPultHcR~0zKst+FXfBg#z(Ke8s0q2KlIlAEd5ssFWRaq zuD{etKmV)I^vU}HrG8tRHT$%sE6~gStkr*OU)ZPp)M@2f4rgbRq6Aqf8M(&etsMO%+F7P%lp-MzIEhTieG0QJRjXhdH8(vgX5F@qu=)q&cnX6 zKb}uU&u=_SjeYdzz~%my^1C%k zpXn)oo=-OY0JuC~Ux;6(`uaG1=y^Vxx=32iR$i^ozf(SNo?nMk7H7a^{o%_GPF;YX zuKv3uIM3I|T++w={6hNv@Neb)Oj2j8exb)db?Gd%AHH9}IPJsuY3TnhE2#f3yi@r6 zIps^tq@T2s{_~^s`})W8@o?(edFsD9Q9nt)@lzxFh4iPuk8Ky{KQ{4CTfzUu>OWaO zd43*FUA##Bx6|kIt^N|9@sqJH^@loZ-0M$*%lB7&{l-84i~md2e)|MRZ@eFR86OMj zPlQYVYxNJCzJ6YfeR+N^%_$4|pQ|+ejrG^`aN5e18eg}Bp7@RT#eektKK)x--v=)1 zd-IP?;^Tku-&?qEpZw+_HXZ<<2UsD=JnUBzKe3|9Gv=xp1Rx({iPjp{Dz+2yuKbT--qKj;wL5_|4nMY zRylcU^%MK#7Pxr+(I9U!K3G&YHv@$WJ0%lC^t=d8~71L{9~zr*0ROI2^2{k36He7s+w z&pgKO==}|1pZ&GF)qXeKe_L-s$ay~l_ThIauT5~<--DM+{7o-zr|(zD(wD*Iegp4J z@cvt#wp{HGRr@^)@>2Bjeh6Yp>)C%Rfy?_1cz*-w=Qp4J5o$lopVh@n)hDr#KJsUH z1}CqKcgDWFUw~)gv-F+dvVMho|KtVsN2>ken3HG3XS^eNX`jTD*8e2>V)$j< zOCR;)VYS~?`B#rDQlG?P_2Z!oPF@-B5XH~)>sk8taM?eBQ$Ni=d4c~&)qZu%Ni*>o zZ--v)M-Wq%K8QG)tor{7_T~MFaI4=ui%tB*GFo|fes1-{@2@_i@rC#2jPtGq>K}FG zX}IiPVc&DsTJRk4$^Hf0>bKXoh0FZELf&6t-1~n{?Uxqh$Dx<`GkRj8eR}<|@aTSm z)eoQkF`B;c{NFgw!V?Sm^P>8X?k7a;15R4u$6#O1FG(L|Mw-3;XtV#2=H9|@QBH~y`D`2KI4rY|gi<2-9`^=qv9ZG} zK5BqV{kJ>Uo^w7lN%b8PoU<6(2mDa{%liil=?{U+{XvTl4gZTC{|5;#I!C_0AU3(P z;p69jXR3eszJqY?oWObi0eWJ6U%9NW9jB~~Pg5@6wI1w+ z|4ZyQsY-C}vcS2kvIly(pHN7@K=sAS$$#v7{qE@7hu@#Xzuk{9|GUBE`+yIB&8iKipENmG=XlbW zZ{PS+J>c^F;t>Z-zC+%RdDji2g4;H^uHl?pYE-{m(-(5yS!q0cf92Rh{tt8>ix&Ffd8m-&V1(|jk=_gCouv{!agn_j;oT-N{m z1}7%sANF;1K>R;w{PhWb_9+XL^S^7AS$T&%zRpMGs^1>_(tgZ-TE87!zOQGTnD`s}{O>lxi{$*^ zzJ~b?!zb*fHYxv87nW=NTA%tM<7XCc_2Z;qE%6m~%8{pkO>fi_-y!c!3jS7Jk>I1x znco2KwfCgpFHK)%LB2Kd%lSR_&pUBlqKg%?} zEzwK=R7l?(KC)Y!e$r(5L;Baz_EVqWod1)5@FKX>U&}xAo^OHuk3)T_wBIz}94_a# zXpG~ZXO;Qi_0;|e1$i^{az2UvkB3A1UcVW9vz~E$#BA}=KW(bz-y@T+9oi6Vq`Wcx z=t(Q--{|ayU=y)lBIsZ2M{ATuve+!K- zoB#4=L$JB}?~jz}Cb;F#oTDZO>xrK8b<^{k z*KeJQFU{A*|K63VC%!aa2QK!l|4jG)9o2sCJWgF9|Mt=Nll?d2hqd*cRo^X7Z+-0! zs_&7<8H?!4o05LLKN*e>{Dytg?}T2)M~gqrn~*-aKS2L(HoboBOyRPA@%{gHZKlTY z@2>IJ<#Fq)cT@je3i5xkFX#L8sTMQ#P5%#E=D)uGJ^mIsACCIUJ=K489!F3A{Fms9 zZj+l z^#hexCHn7vM}&I%r~QqyGcc zezJe}{8#ky{&D(5^Xd67a9N*N`bm@J59vP?`|^F%G^Z`X4^jW63C>x#@t?6T^`nsf zC%Ej7&?lh5KYHuS4^#V{6MWIbjr>RSr^)l}1@u3_FKdjSm`NYLDF0)zFW-N*_&ldC zJW6?09%n8=U;n+>FOvNW)AO6zM}LgQ-`GE<`FF&(tb@jHHobl|T<-syeQX*h{vZ{< z=k(RNl>aneg?%~yAph{6=HJ5Q{KNcX)BA6q${*v{qObl&^hL6NV0wP@`r=f4X}$vg z@_t8)FU`M(pVl$%KhypHrE0&pATNQ-_Z6-G^?LqZPW-Yz17}X$da)yk{1e}r5AXS@n7-#;=voc_o7GV({xXFd1! zm%?TL5{`!WjALst>6iHx|FsE@-qr_;urK#>3h5WZW&Te7qVf5M{jS)T z^(CA&mFJ9=^NCNMpEA9TpZqWS?ooW66Tk5<@h|gZ&u#sP{tI~2zA1kjA8h^5U*ik= zhcu@z>8CuL{~M=#C`7xRCb+7IJ1u6MPf^~pu{E z(K?OgXZ^qFFVXnI@f-Va%OCpZ_wg_16P7<|{d;iPU!cxs?H}C~#YdY=bK2_l>c3|W z?&rtWzYkO{&;JUyIkWYz=&y!1mFIT~@T-)|^Fa}}{-5@b{$1i9-7SaBw0-_}8eH~I zO;4ZZ{a>T;HFC3WWR#lSN-7>nGEv$A`fhU$=t10spc-K~MV9`bltke}TZQXbYnKmWJ!;dbSx=IFE2oW6XB#(#W4{wDFgdV+H1|HMaKu<>Ie zT1f^!P9g`?CKF_w#?+GXFbN{pWM@|2p>n z*R!C0JY3eV^a+$t+W&oOzao$0pYj=pUgj@_^kd=jet+X=eEC0!effTT7N@Tqsl0m* z4e@zBef_IqpXbL-pB^7ZMfsEF#E<<~Qt40YUxv&6mFa!|P5pgTvm*Ygei{#mE-dcMN>1^U-C zeKolOTOFYKJtEHc^Lp+5M)0!g<^Fx${>qyUdtLQ>OAP*^@`~K--9vuCtdRf0x6FjU zpuAHa*KeH(e~$FY{2%=iIsZxPpM}f&|L~8-`{#dOQv1aP`7`L{`zq*(DXo7RF7Lk} z{iMmKpZ|ST?RUu@h&oe#0 z;otNV&^PH&kUv8H$ok*xr}YoR<$S=(hnTQ$@lR6w9Sib@(98Oq_$c4B{z15`|H(hf zhdlB5_m*-Pc!TAk+^JngP zlfQfIJvMkxd9mt^ufFz#Nygt*-YLOL{=FmSBZ*Jef8M^=-w*$+B<6fS-249^6(4-g z;oHRaN1&Je1+&lhOTB(L{Q5fOq@VBiS^ks$53yg=sP~-o--lk#mn{GI&Feo=eaQKy zsOQ5z9~;bs%l+uOeg{m3U*9d%^LRjB7Tujha7fy?^5_mN@wp}{}4h<}dy z@1p!V`R1tS+Z2xrW~=|M1^L~iPv*DS=bNNy{atVwzmIMm`o|{z`Ct6cRr@7*oLJy@ zqL=b7q`w0$?@x8J;evFa;w^|vPZ z>R&1}uLq--^J(<``skx*HZr9X#C~5Li`5ell3>; z@*MxBzaB2<=lHkZ;O2jo+V7mluZ-fm4t;T19yk59k$uu{8lV2})qYpapDaEQz3e}r zH=AC64P4$YVEJ$3x8?uOYCljtcqMY8{m-hMOt=>JlEyG+hl|EH#}b3y(; z;_q6T!++X7`YYh_d>j5rlg%Ia8~>LPpS+*Y(r4qprN4>Zuc?dud(K$CR^toH5C3U? zDgNdCc@|%qUjmo&Rm(q{A7G38FH-+K3i6B5%lQ`di}Fe9FM`Ya-L5}gzP~$h58dCr z_`PczHd|1t=QE43FZ+jS{!iuM%AZ&NwYj@;_cVO^!#=v_%lmVTcU66T9-sco{;J;v zF6Vz~{roHTm$H}?Y@_zO739s7cg>AoduPKwJGWB*XYO!&!`$!p3x4P??;BJ9-4cA! zz}p*cIlqnWb+uzwR>WVNX z)3evIxAN-TCV$-#r^)lZ;7!Z&IQ0Ylsl-2{R{1~8+a%(Hp924;B=*m5-hRu-zQt$! z#~`$SGJ5&`Hyr!M$shhc2`=AXv-I=ZoDIPyT!R@Dt(ke6Q*G4gK~r_EZ0Tg!6o^abmLg*uObU<15MJ?4=x{`BPbtAFTR( z`}k+C=LF)D@0*c-#LsW$AN#%G1>%GMN9~9COa1ZjW2+Z>`97efkKZi+(D#JP_+^~m z%s=TrLhW}K9|MGiw;rz#B|WWuzk{gt*!>jJLl+AY5(*Ip64|Fj(ME^g}T<2_+9%ASNr98oV?(FyF}?nkNvd14lezxrQf*Kh0dBj*&m7W&vV*BCwP;_ z{7ds%?92TM{FDD_UISIvbZkpvaq{;}TyxAvFU6Cb?W z?T>O!`-$;ks~x>vpVH^;x51eoOyk3*{FDDEw_nqX6F=9&Fw=AYl%C(BevFsT$U2T5 z`>pt2V1#qx&+A*@_WgkT^P8UkuExH-KOXr)(@&{BAMWn)cV;;ED)fGT_4pd|&78NE zKe_gFf2QM^iD#XSc3s==|C3Yyk@Kts=UHJW@mu{y9`#dPKRCmqehB(XOO<0Y>IcK8 zwKU9cE4M#9!?92P=8L=nxAlASQ04JzdHMF%=>E3fhQ)BKrA_R-T<@8`U|OiUUx;9q=S_dlSHlMDKdh~K`i zf}Ur(y!{Q~c7Kz9G|~P6Zoj3D_ue6~zXAG%E6(-I81?JJZGJ`NgMFTr(3Afmo?mMr z_j?iCzAqT{JZqqbuZMl>|A?Pwl4u{kF5LD%NY8KRN3D|hU)y-ezP~3C;#K!{)7xy`Ef5=)%2y?H?4Ahi~1AM_o|hTIQe6L75slT zyc)ka^$TAae$ZsU{?O2V4_+(jf8ghNe4`6FWp$==zJGU`x0$G?t(@k3O!>=aPOJ9G zvJXEsjlU6JiTLdObU4>!-u{a4XKMbj8SS6p_W8bF5?`LLfPR53oa>s8`sLyFen0&a z<%6EOrvD}Xb3MP2g`8{Q9Jq~tqn@^a9{v~X+xrj1m$wgJ4sPRj>G@51{4Zm?WamSP z^PA$M{w~YK7ddV5Vvlcpp&ovb>qj|PpCbFT^`(i=<_F}T-xMGErQr7dfOy{jrEb5N zV{1wDcK(IRhu`EM`%A#>`BC=yO`QC%aQht@uK2hX7BhXx<`1Rkx2V4geXrJrd{O+{ z_#Qpwlh-c-xA8ak*EoMf{qrnvJ@)PW47i?eczzYX&i%JlpTE#VzA*M}eOvecJYNWI z-!J5usmT8gseicU7o+_J(cAe6nt#gMUjT0V?;FjZPEX^n#=i7(!EO9Vo$0s5FFn5Me-7g%d;eUV z=R3IO2cGouYc1sTbv@2&_NCYS^>2CkB<+v- z5!d|4&-l0V`&B;TnxFa!eqW{9Kl1(r{j2U@Gd#ZGg`EHW5xt#HkNwzxN&f@vwx_K7gI?ul^aE*b<)$o?G9G{40-dRH2@G-Is8Cev9_$i?I*?tblVb5dYZiXXD2f zoO{vtmS1Vf)~bDei~3K|_o~I0=igC2iw$u-_lG?H7QRGFdG_|?{D+=VDU+CH`%Ghw+2#NBtLYJ3o=$Upp}9OpO1 zhyRlMPsUgHhx7bS{Pfiyn7(A=KiSv#0*-!W^i4HATzdHX_&*~V|6xC`e-Cc+2eOYw z@zMX!=J6%tWAu^JSNDP2_&l$teBke5|HEYbRiu9hZtLIDqly0ey8l{yaOFo|{kG}Z zzbZYyMg5#!KDGLROHY2&@o(#+YM*)iTWNgs55!OZ!1Yi6f_{+aznMS3!Zm(a@w%bT z%kDp!{}pF`OMDs6FWFxq&ipN$zGQK?pX?tH_pwaM7jZs16}YXx;GaH~-zY!yl;4sbe-a-t%Rii4Uow5k&bN@B-=co$wEQ9` ze%XH!|91VTPtNOKfZO{Mw7H@G+r(p{{y%)C?CoQ9?3X6FKJsP%RrbDW1?MB3)2EUX z^Z#)A>g7GYQ5o*@|0#bS|Mq=r_1Ss-f8n-1&ozU8Y!crblN0}|r2f%IzT~nAU)lZJ z{>H$GPy9LT+xVG#Vv+t?xQ*}SpZ+=eUk&@#|K|C+9}V>Kc_!#}&xrb`;r4z!|Sbc{0D7*V9+8?eQh^kC9V;@Tb!F)aQ_&{KKDw+x&y#<2P~qujl@U zI;YQvGk;3_^yN>OzLd^SHjwI z_-gS-PG7yTm(Q>|J>>&`6#I7nR{7-hkHBqzxBR1t{`I!*A4&?mu^DlWh z{W#axIC{ABccQoV4|Gq#zx4d?9dO%!&oxE-#6*6ZE<4Ek=gA)baNmCx`He4CoKJ$= z_?CNyIPr_$j(wZ|pidXazW8l$8(+vjWfuKU@%&or_;1H2{%=KZ=l7x4Jum8Sf!qFm z>Q9`#B=_Dm$m?$h&##!%mu>BQRH2@}d@GMH+5Z&nQ-1K9@o)RL)hCgk{KId8+xSoM z@tZjQw{`zX`{SMgXD#v8~ z{sGxXBm1=fT|B8XLzq`54QOH2K~3@mo&d~fajmg zKjk@n(Z24#-TSwAe^LLmk8?X8-TKeS)t6m?e>;DWJ~MLZFNfRrJDC3{^1na!OU0aA zE<>{#ROgotOZ`W_<9kO{`9${Y{>Rjbd`J8LKWamFo|CB$!iPL_s#DB@&Z!h5V zMQ3?@6Ea-)NBD`ZAL*QX3iidhf1Kd@u7>=aw0v|=%InXD+xZ7@;>RZT4?JnG-(UXe z{u9nUBXaIlC%gZ#t}o(eVc+I2bWh6b&xGGN-uD;cADj69&ti%H)7}3d*GE46@#Ow^ zn)@Hoke`8lo1fsGRHQ#0ZsT|QBsgUr{hx__d;c)czuPzUAN0CsNByaAJAZ)Rupiq8 zzRvUfHg&H0Rr{f=&h`8zWjO0oTx;-Cuy6bOv0tSBC;ZDzs{YZSSN&e({*(0^)t@+Z zaiRN9)+fYQxAiOZUjNv)^>_S>NBv1~JD))LqhWnR^?RB7uayrR`>Nkd-G7$9HlW7; zf&Cwo>r?d`^(W^1Q|8hC71+1_N%4uReosJeMm z`1wut@qdH+Z>{Ph=UL@w)0b?1LVA9S`kT<(_az(gqwsJ0L%6<(Kd(O$K3lT?8cs~I zPyc$m$5-3RD_z~E*@sY|$obrJm4!84F6hFU3|986oWdE_AnZ$Wk zIn?x})tak%eiJADyS#jA_VfG@{M-ATDxW+*7@j^KsQzR7d&uKU)(7*PTp#%VaO(Pg zxShXE%u%oQbrAk-{0S$2+L!#J|2y2iUoJhriQ~T~_(vbPKMR|l^9`lvx2S&*eN(dk zfcW5CpVS}r_s4&_zAhg1`@yFTt=dN;PW?RQ@g?iK=p&~sJPNnL&Z>*o+r86-(3*~Nmmv`+aer*1)$Die#^(DR=`P=*d{8prY0lj@6E6@2~ z?C*-+_J8EL?7!sxlk-7&znJ`Ed^@AJ@wLux$@3lI*1sr!e8&7g_xL*NIPptsC zu5X*)Q2D`$Rs2uhS;lpWAO~$S0w<^Doh>Pa%KlC&F$1Tk#RI%7^@a^8B-$|0O@# z(s&L?F`zX=B%8&p3!|m6u zPvVPw40=2N1U==S=cC~^{)+97_;<3i7-^rqXkYezZX-Sly`BFDSDz5|BjI;$R*j$f zjs5Q;Zhx}(-?9Hu`(4oQUzI{m{&P4_&i~5msq5L`O`E!2?T_nM?W2$TPtG@sT=$<5 z#Bci-xMm}lz8h}yAJ{DN-`DMrt>fs4uM54Muh2-}3Agzd{A1rW>HVAh=kokVlqu6Z zr>@&gU$XJH^!%psM?asJPhy|^_)X=*-}8F>$@i&?cpLG}mz2NiKkA3WL;2+WFW~mO ztNDvlKKLJozID?&PWynj!fkv{ezE^l`(4=WkE`RsbK+apdAX2NmrKEId{(4~FX{0o_b1sWR<*w&#AoN%q1SJU5B*@ct7PQl&Rw5?-k)ze#(#ER6hJYkofHV`N*Sw0NmzpRDOB?tEBcLN3Zz$qn|aozfnGU zeLr}5{ypVSOgtZ`eXgF`r~ecue(_Dv&z_wBE*|w8!|nYNjSpy(@%evqA0O1l5Af;x zK2jYY%nrBx2~iK{TITysI}=~2rTppsGkQ3)PI`F%jc2J0@%UTID@}i^=R!N5Y=NJ9 zRsO!+3$BN65I7om^RX{EziGi)D(k!bVXn{f-lxo5`78NZ|APHIN52u=uK$01^-`h# zviom#e&Vi4e6zmrqTAYbG`saV~-{0-q_vuVO?^Q{BzxPjU?YXR#4|-dlB&H($K=d}gLK8W*u)iMq z?T5Ku_Q@ar*k2cJ>&x5QZ?XRPU+S-t<`0+s<92w_W5xbD=xzL(*Ym&V2dDW(e(DP^ zxGnhF=xzLu&FEkHwcs{>%eO!Jdi0a9Z|gTjoVsjx-co*jnYViu`fW*Xzh6G{sNXBL zyQQhp=De+tAGu*uWw^&bIK#RA@DE>;_#P~_4_^ar`&;Cn-|$Z?_+QO<$@ZTretzTn zgA@N)k1sjjo--X?^IF1NSMOCBk@Bm)c-#8tgfCsH+3)uFyX^j1%vU8on;#~=BK;~U zzrfDlkN){z{Eu<}-F|+4o=<+gsWRIAw`Vx7+<2TBWSSY`V9$&5hik!bEczjuXw7)$5ZU0V@ee{2U+x$bG(^uku*)%@d{1J9O zDZkxx?sInsTRC#R1i<-K@SU)4 z=eI}xpIe`+_K%CAxAk+l`d{hke-}yP*Zr4!-m?2Y>-Q(_zsGz0$^Dx;hkw6Fa(_DK z{l1lb;r4#sLI0THZ3@o4gnQ+Er_5H_&Gp^R`R$U$XRWNf(koTIF#c_Rd&_sG*Xd_o ztxshy*H3hg9{b#D`TLsX`&9OH|CK_HuZ6Jx)W9m|o*nfI!h436iHUm>T=C<7pVWR4 z$NvK8?feUI?#WR&vT_#qx&F`sFzx2!M=Z4$!6Y*ga|2O=Y_(y-Z+n-R#$$u{Nw*Osv z;*0t@;WmDrarmpAKmI9yawY#`Jbyd?-Z%8Lg^Yn@F`hCRh zk1bOs%-_RLd+S**>osrhQ@PH$eZSE-_pHd5Il52fe0b9&=W9N;WHarXzM8s%pW%Fz zb8>?7tOY06Q=NA>r_AAczND;AasML=Id$2G{A~X_@u8>BiuzgMHvdnX#6KMW{4f4b zcl%w19RI!1TlU*#Y9MQ8P?+~oPUR?8PoE|f3)Mz}ry9rNM~UcTa#HTT+C_aTcYFR_8NGbL z?+kjLxv?)!eBa~W&i|MHn_ zy~Zj32eEJK)5;%CF6iOYoM-jot6$rv@+J0d{6AM)Qhw4C3;HkMHou_q$@_oU?bpf= ze)pA0S)%_O{e8`adi;L|x93;gf4S!3{r8j9e&oc$vl`FWGvK8$89khP!96q0QF+$& ziGAuE`?Ll464Uxto`T!+|JC~?_iy?nIM*lqNw?os$jevvt$a%Sw!SYtZ8qvZf!q8N z@naMJT+8@J|BTz8P{?_{`53*uzb-xTMg2!`n;(AkmzTW#;-CDLzwOTtoVEr(;my94 zm)(CcC%*TwZ|~)B4*ZLwG|HmHRm_kncucNp3|7Cyeoc=Yqo$vRzU6b-THt-Br%@_sAO0d0nG_1^YICq5y8g*eYx50^4Z+} z#Hv1WuHPrn+xj-wKQUu}!V$IjABS81%s)|nT0dj|9`i%}v2Wim)cmpdoc4VM<|0>s zH%-ZK)(XYvbNzUqzt{Q({ELgbe63*K{|{#^Vjg&}F@<{gW5jRY=Vg6>H4oyGefXnr zJO3}PZ}7MLKWw~Y`71xxFW`!QsWd*#?~Ctg--=*(A}5Wn>BY1p^%FZQ**5_u2Y z&c~B~H2f|9OS=DIg}lYeXDWJI-)^LT0B+-7l|LH(SLMH)+pn#kMNauI>-p8{FVFAC zzKtKT&-In(_rY!a7ya|M{4ekRhZpkst^MDN-o6hgJuyZ7J#brJ7tdcmD|!4iJvLb% zlK;C*UrOWGn!7mvyGB|*v>9>M@6^6mPvbA*Tpz2!ZGS@KtRJF>|C{)2ejsw$hu;ae z@`FnwPFuU3_|x)LOfmkAJibnEAL6WU(Y~mwb)C2R^&!ssoUX5RJpSbR5y!vyZNz8u zTeNBMsJ|6%-~Xe{NfZ5V7~;!wu7wTUf3kj9#BagAy+4KjB7QU6#{aseuo?Z|Xq@x^ zX+J8HSbqIHzGVF{&ndr6Jif;K2K?LpUHL~N`~3Ycxa}`gn~t3JcOCJi`@gxr@Ei9s z-9NfKzP9T6ig@4KyM3*v0=NBptnWzA{yg@Qus+l5`egq`p0n0-4gT$XGU;cr-`I;G z{Z()qKf(De@4wZ{XK04cIp+1Meu(?G^Se`<=*97MCFNuDE786<@wd3%&Id2hcQ4et zas_%@e~})WOHHr&zZ`z_=(2u`@uP3|_}eo4pw`!Wrv0nC8QuoB{WDPy-}}5S=a*sM z+E<=Se<|GB$7RnYn!Nu`w?DFuOMeM^s~_}Se|i1IX?{F^P`|_++s`PsKf1bpMVYFs zcs>~kx9^*?zKA|@*19e<`|SUheSYJAX$$Djhuiu-oZs^PCt%;s_lR6&g?_C2Z+HLF zi{tA&^2^y5M?c>69fkU%mYuzFE_!Rf@{i4L4|ua0|2gm{y2|=3#*cnekH0&^sf*92 zk7|ZbhTHs5)WfMi_}SRE@qM04e^wgbT|2&6ZF8zW^qaZ;wsM|Je`hNJHYMx&yg?M^qkv=Z|nZMGW?~rll>F$(}~~4S6WlYzVyBp=JvB3J@La&LvQQ< z$L)~V%5Z~b3dzWBWG z@n<|1%6IQHKXGzewkMVxBfrXQ)ajC`)qZ6Zg-ErqmZ*ccQWzW_+NU~N22~D zxXrJr{-S^Md%68`A!mK@ALw@I`^B8T@Hq5iCsp;tr}{&GEZq8cT|a2z^>Z@zo5of-n(ZHZ z%IlZ;jU%0RRXKIu_T1CHJ_kQ6$C)3#^?_%q^TUUF{I%;ha$kQZJ{zAXKIUJd{%E+3 z|Fvco{i8p^?T;wrte+o+-p0q$<6rTkKN4=|`)kcC=8yhF&u?;-Q)f?q|CG0H_;Jqd ze7AJXk~Z_fu1{C@4;<_9+4(mGoc#kw;NQNVCr*A*e>mLsFR0B&|L9L}`x6Q|`zH=V zZ||>4Pkf3W{h@FxU$yy|Kl+p0{-Tc>wtqx=;*0I~G}lkeaOsKf@93@k6qDbx-&w~s7TbsTY{|k1u)uCUTy2xmIs*eU|h51m|A06aKCJ>6wc04fdtq0dD6D5Ffu0 zU-W+`_M4LRSMh7-ebVFOS@AaKNq&rJ(66v`jo<1#u`k|sO^t6)`C0kmUp(r!gWLWZ zG|@lL$DQW?4!7Tx;poM;MZeSV^1bI5>$id1`GAqf^0^E9_Wj_u1Z9tNoyf?Pn_X?fqDM(mvFGV~gkS2i$*qhSUGT>1#JP z`=#cgW%bGGf2E%SxA_OPkG%iKuy6BMk-xOh6F&dI_~T*c$^5+PWS(Pc{Gp&1r~a6~ zK))&Z+xrdJ7mxbMa2ubYA!g#kzs5I@y8Yo9j$V8cdfOkM^3Urh!Y%*EDSwsE6WA{e z&+u5j6VO}xZKQwF^&J^5J^7DM{gadGEczb@xA~tBe>mHp>Gb};;#++);-h_@Zu4I& z`}^_FynVd&^+SBFe&`fJ3k)1&KKbQuBDuh@bicB{PN!KHvj1HC+AD&`ED;f z)BHZXSG~Sh*M`mT*Wh+O9_JhDo0*&?CjPSPYu}$DJ~-cMLI0BLJN^7i={c)Rd@SW- z&nKL3DIWD>;CB8W{`Jiz{#X8Ab^AjzoU=B?N29m*GxU8M;zQ3_V8k~n^-oN(eE1d> z{4KX%`+g~U&Jq!S(|PUttZ>dc5g&WpSk_y z`()S@=PW?%4@YnB_oF8!am7CjZtoB1d_H*0|7*{`cD^B;y5g)7?0@C{hiCL~&QgK5 zV&D2l?Bg@9Z-HC>I)5kc|9khJoKJ*JIBkLRRj~h^`|p?0!#SS?J{0@+Cg<}Ib6!6L zJ~jFNiR{Pxe@OGgX5_Lz7`^QefXjZ=4}#nMh5Dua5tBImUtjviUbcTG$7u`jCU{fw zeKz_Z^t3#FRuPgN_{`p_@ecb<$45zNeXLbJ*>o~EZ?}vRGA7g)g`@RqMqka>( z?GNC$*gj-`cDKKI9hd!$(WmE^$v*8%`oF?&O1>YbdroYB^Lu{D_XWh&zY+gD?mwwN zarJNTxm};Nuf7Jp5&ms`g8N&MenYtJUsL}^`9%Nox&6r*uD%5O8=$xHB_{Q$QNKRi z&L=>lK2iB!YWjuUe(n5OwI8l!_(IOJdg@YqJ?z{1KR#t&{UiEy;r4xKG+U&7V)Vbb z+fVvGaoPg?8~VkZkIv{LUkCg4ekDGO^lQUye1=9m`d`xRXSvRg!v9+6ZT_y2eoeTK zPfzpqjRyTQ*8lSSw=VW=d_n!wKB+S}Z2`WL`%l`3u6fQf7GK`=BfWkjzuUeAiT*Fn zYu{JJK6?5Z_!`9bNy4AIJ?T^6(ytExknw5qeMt12#V`LWruG~0)zI7g100)q{i<;L z{s!$M=1(ldx0>gleBWNzEN5AYuj>Aj^P?lDEYPoleVhNmerdkd+<(-s47c+=Xdlr( z|BHSt_urP`)V27U?!UW^6ASv4uy6Ah*zarKU-$fjenoiSw9Q8|2v=m zK(}xEp980T&=+8Tfb*pNNw2;HzBKmj`2e5dQNI*?z#y;xUME!Q{0~a~V^f^ERR2(M zJ|v@$e91IFd=}}KfS;3`pC=yspCN8P>EFaTUsV1VM{nbEe2Pc?V(>)=SI57UNgV&) zjeYz6p~lDJv<3DGo#6h<&bhyPnUYJ&_i=q~{3}jhg8pxCJOAZ``A+Y7zkQXe9?n@G zQ&RogC!U(&^dIn1u5T$9an4fdcKxsn=U&D0lb^K$ZyJ)}YYndPMJXTK-@yG<@kRY2 z@br9to>`Qi`nQp3{OBXcKmWThdRyOt>za@K+d^==zLXy^iRvu$ z;r4!4)RP~avsM8LsjrzxmMH z{DjJn-=cm~*Vl8(m;ap?y}e(f^3Ch#f!qEB+8<>?o#_6_|8DE~k1yoZ#a8g9?hMBl zV+Ht@&a?I@3-P(}Z}S5@AIg8!&lR}ZjN&8KZ9M zK2`q2EKdI0d;TLbocJ&QbZxK8*-c-v{R7fdzfr%l$5*p2PJGzk$;)T6jGp|l51%cK zkMdESVqf|`a66w6|8Ut?|FNsvZ_jX*FZO2*_SL7v_Sf8Ia;3*X!Q56N(@AMu&c+x!4Aas4TN z@ezq*{Y8mh*HqO11h?}GRlZSA`#Ik8+a|;HED8S+y^ZgQS=Y4e!+(I=`~mkY z=I5y&o=><}!f(aC?f)<0#B#CwxA#+no@XKS@H1RLwvbcTr^0)Uuj5=x@KfCW%9m?lyxSfBT*TZRR-(cU)7b@cD&vkvR{N!KyuhHB5ne={rSbXyT72Mvh zgphA)N-`>B?arJdydVIyz{ABd2`fU!b@3VU;hxMg8aSE0goZ zRljPV{O{GCe{#Ndo>LZAxc@GHK95}O<8rv|@584!^Bdxy;orvpk>g+dQ@E}F!_|J! z>sj+E_n(}v9l6@qC+O!$#t+z}O-233a6A80{>drke}mgk=2wVcT=jb$-1f)j^=cm< zVc+H-ia6!_FW1-mm;OWaw!SSr?T7f}{{y(q@4(4lTErbN)2k&fhBH~3j6RL=j|E$-2cVj zB0n2{bAOcmsDHD7wpc-8bJ`~J4{-v6fMi~c{Je@zcpe()ze{*H_uPJZxLh|k8i(SFpw47c&0@ihpFE#aKH_|9l)qm>Z}Ury^e@6~e@PLieLd^>)z&Yu$@2^G!(Tve=bsXD^e_HA z-0mOPCnoAFw%;GHZ~MO~^T-z)G1%jO&-2T2p5=Q6H9LPZ=+!2~sf#z9C*z+yr>%WmR7YBb9 zefoV<`6oZ=pMhKbs?8F!;v@g3jF;^CQ2Fwk%7?m~;r^5HBjqoSefZm+|AcD(aPkv> z694vnb@Ef2!#?q&{}0^W55Pb1%f9OGUALcb`V83@e*(Sj4^a7HQ~C4v<8T|_le5Z< z_NDgo8TL!XoU;1Z^H08i7xk?FQ2rk|Pv*ZOXD$)`82;1m2dYl+Fa4wNmSp}%oO>1V z;r~<5KZ#GAXF2glQoYI?pHcrX+}7WfKQ?3j-+25rPWdW6%I{0($@d9WXK?a^KZJeT zKY)GW%j>`P_>=iFapEI?^be+b#m{fi|1`MmuTh&Ne&xsieusU#e?_kHA(kHWw!R;E z)c?=*gEBnor=qw0ZPH^i>K}j~ob-=s-^8!`?=N0{$@p2E_9^~z%8RZK`p^5ZpZ338 zALJbM_rZtv^Zql|kL>@3{iZA@e(`(J+xR42lPZ7w-vhVxf67E{IzE4_;QPbc3pugQ z2e^ujpD<9Z;wA2KNazRqrW)uU&QZ(r{id&vB^*tj-;UnizgPLlKIO~bx4~`x0{iN7V*GQv{iOWz z9ACGl_8aNvb^WM9`{-{$Z|6TsulUt|Zid_Vo|shsYM;cvSZcqBQx^-vdnM23(lfqL z`&!6(@_Zk;>iQ=9+xkED)xM(sM!4-yfJ>wJ@V_Yb?fsm{(UTwi2K4Fo?~3&Qg4^?x z@%`Ygwynbo)_I#%J^ZYvWw*D-=?92bP zfvf$*_?L70Nql*ZuWLg7d5*8;U7yrno}<4Sy|r)RgDZZuudCp;zRmTa>reGd|F{bF zn+9b#w#W~@vh(Enl0Nb)v2XK_@tzv_6>wWW<2UJ}|JB@nGX585d@28zqfh5w#H0Q) zxQ+j{|CgBg{+IUu-j|kN=lo~)Y}J;0v+Cx#kLbBzWV^qsI2vyIbMu_BI`1zG^!SFA zZ<}#u&sjJ9#mj_T;Jk~nvGb0Ge0}%dQ696wnLVR>ui$#>0zL1-tmpc!4FCM?WG)PT zDfy-I*K>?tu}*&p+{W*U4-N70zr?qp+n-Ri568avMW*Nbu+pQ6`oE&L_kZ%7T=?G$ z@o(olDZjk_0{FRu%J@|NvHS*j`Lq;rV(sto4{6BH$G(jZDAT-s^yk5C|Dyco%jX>9 zC42sBRR7H$Uo!tD`?NpR-`S~u>B*n=#sAWNI$Uq(E8KZjPtQ!td6`YwCE>iwGaPRF zC-a=P25)h0=R@T5v+S~*^PzBiKcx{rE6x9aBeMRbKND`}55oD4_z%702yg5BJWdmb4ZYQGBmJpx8=tEDDKpBS zvZnk;Vc+&26mi~f>UM7D&!pvxp87!#|EJk6+5R-?`Azoud!)yo_}|X@7k-QSlZnsX zk87kq32y82d5$gOKN0^neG~)Yue67y0iJoV5^?zHtzIOeJGuJ^~ zZ03Aq_4>~9iEw*ANY}qOYdu_R#}mKpzY*uRAO3NM&!u30vfFR3HhFz26Q;qxhBoR-WJBLQXDQ!tMQ^sMlN*{Aldk`GNS% z+lLtAF4fPeJlva{RI_8*ZSn%YNCpNJ;% zL*TYQf#1Z*f0xgP`TzdS?RPii2dD9&SDzI12c`B^{`3#zs`B3l`}Tc-B2Hhhr}J9* zNKg5|4>bFwMFv&%yuT^?@V!0$#{2-{o7Uob`mDTuf4E&giVx1;ihp1H+xz|e#`6*7 z8~d02-T%-kr%!@&eem}_*thY!?4#%YF8hbMzIOeJ>-stvZr^96%vJvA#Se0Qt$)bt z_r|}SpN5|6E6?|W+x%i9`-i&!&W3zX^mcx=o*(k|_ei<&=l#!^|L*YHCVTmi6a7mp z-z(k!NN=Cw=+%Bt$Z_=#;zxV=B>fwD@wYzhpR|ATU;0P#d>6U&$Gd(~)j#>sSBW3z z{wHR5ygqg%zgs7H`C(uBo6clD|I$=HW0mVdfF>3`*){#$%U;YkzdgZK{c8^^nS=C{P?KC{SS&y?ML~Y z>G37^SCt?2FMfvedOiNJwJrY5KJBwezYW~R_l^8-MSM1XgEM9({^wXL03!p6kat*O-o2#kV9rTOXy&Wgq>wLt4E4wt(CDbJ*8!F}@4kescYb%Rc3^ zIeJ_FZKS{0^-2Fwq~8p^o&PU=zW%1b?fVS)RQxf%E4+NV3pwrca`!*7A>S1HcD^5F zlDCh3GThE*#J}Q?{wEqQ+4%|G5_by^{XBh+pIJC*ybdXZ)l3n}C0tpOk(2 zzi59v-0ByuHZ9Ko-jS9M_dIc)pY{B3qsNzwAH*3ysDHWvZtGjzzl->|)IaqX`3~vx z!C1JpFZ}Db=>Jyt-|EjV;*5{<{Bn!?&vN1uAA^0{U%~TBk$yDX=11@^P4s`e+iz*e zN1?a*5j~U9KBIml+}bbYuQHA0e=qh+Lkc<13U@iT^F1v->17|@ZT3rc{=e+=o9y%V zJsy9Sqv!bm-bH*i{%oZ0gxmggxHPg)`)S9&y??CvAAXDTKcC~j*N`gbnPtWsC-_+b zoDcAX=hs%=@cJ|TH#pZ1X9;i?z=O_P%J2MU>znEMR^sdbHgjd#|A%w_L>uwj`e-Bl zaJW66$v+y|$N!^lf2f_GbcXwn{Mg0ptY+tf3pr;Y3`_k>Pt3B9z7=lkr}B?R9RH7} z`AHvn?=$*TTF~40ypet=+}3|oKlqI0|1|dP`wDQ%7n|}={XCW9#I$JZ$^O6aA=tO` z-Q_>(IbUZm+{zaX-vo&M_jsspl@?;-|C1O?}y&zFB|DMf!|m0@}vDcc>Qdy#}@79JqGb7>Uwec zhi`;^8$Zi`UcVvS=0`RhSo8nL`zLy=p`~RQZzFog*{|SG0xubo3fWGV-xSc;4Is1QDKY)Mj z`VrOs8@)Jv@jB+eG|QN(p7U$y>!n`{Zr^XkKELJt|Ih6YcKhN>tayz7FSfpi+x)I< zqMzyD8efzAA8gI=s9yta`_tqfn=$_%-F`X4r6>Q@{}26Y@b&@K{u@oa|Ne%3o8MOb zz!eMq_pfRG>c1nWuV2ONm+bv1>G_TSrL54e1h?@ITxA~pH*IeI?R*+(u>a_ONBaL_ z>rc9o4PVw{)vBi^tS%1`1AU|z-|BL9mmW( z?V?@YX+C+vdCiB-wRq2Le|*?HaOY(z54ru(8GiTf4_En8p8qK4vzi7yXYoiszw5_m zIOhk8&+&io*_=;qs9%owXWF{F$;D06kuJVO1 zlV5k&ug$AD zpH#>%?fpyhiq5;sZ_PTr=lS=t`hUOuQ}YV&ULzaw1&`yY1=sJ*JDEua)0A9$#A_-~YN_n%8tbypaE6!Y|EpVc+H_WS`$;AN|^% z-_VA9PU5%y6~sLEq8~Kp^>e`O{vrF=RDRU|?D)6(QTySy*nZac_}i=c$XERK*XBOx zXN;)o`7P=<^!SH2keHvg&XgEr0o>iQhu@wJrScymV2i*vo( z9QoD9{@J{V^I_$^SDDe%@4+m8e4{^_XD0r0Dpftd@xRzd-{1Ak<*uPKdN#l6-R8*m zzwVFb5_%h7%Rj&IztT6s?frhmk4^qp@mJjb(DJ{BzSHy5mG8Juan@>@)BNUI_nn?g z@6PfAHgBr@@wC~u{SDId8~=-a^uNJv{44+b#{bIyV7EV{kdK(DSLGMX^DStGuU>jzic5Bj&)eazbmbv@a6?fQoweBWc<*U;8S zIIr~|k#ntgIvyMq z|J`nXWQL;`{~vmrA8e%m9&Y`II5x3QUqJq2a`}s^FB|RtTQmBn{`*+9ulo-BHvZ4s zm;PJ$JRQ~kfj%3({7-QI#hkuseCl8QQ`E!1!M?R$`b7DZefZaK8=p(hZ{p-X$?bP$ z_{vK@UXAZ7^fv#{NdG0=u5a~^*o^IOOV4j`RS(C%`m)WO*X|$ULrXBGOQU7dGV`&amZ*FEB#zH}$JoevoMUpRd^d`FMJ zBg4l$TH_xPpS@qyNdF<+-oKCc2lPBk(bw4!M`wQaO zBtD+?@&CH zJ?QoPPcG6w1GoM2{DxllAI1L^{%!v@?Thw9n~3e_43B@LbKSFKpL@lB(A)kO>2-g> zKJD);kH53bJq7!D{si&a_a)Hlo*Df=4j(zT%x|=RY{u*3LXU5Pb3OmlKjELg?mXv{ zo$L9Z{vA&L{wVRYK5xIF=eMZ8!1cC&z__0O>3`AFmp_c&#*h4lp5LPWLAb4d@*D9J zQ;h#ow{Pp`#`XM9|AKw`l1rR-IoI<){Ue;dvgile4nn%wOD&eLG(ua?TPLzrp<{ z-{;!m_4i#b&iv4Iu21HVW|^LFzTbr&ey#I%|9+Ra=6~RKTYS8K!8e`6qy8?q)gL_i zUuF9b-2T7P_#5$mqqqJ4*v#vhU%C@+^AF0O-;^KabBo(g_}4?;bD#K9`P}S$sO!b~ zewO$h*th!S`%>aje>>dnA8_hN{wWLm-&lPn>_d+x<_;aL$sa{E780c(3I94AR4Qv$-VrE%>+dixe|$I_htR+w((*eZN5U zAN}9!_6IfOH=(!ZbM(Z7{iweYZr?9b{=^j9e~;&v<(z-7@|~Lck9s({Qa?AO@x!TK z>_`2-;O7nY^Yz7}{|DXvz=r(#peLq${MW&4{2%8pHUH22>Lb`M6?1G|i{8#}rOY({ z8TF63zL=B$HEDe0RHVNeZsWt(|9axIN3Z<3hy4@B4EUnojwk)x{KH-cR$f1r_G91Y z%<*^27nb2O?Pc7)Zx{Ko8!S3aeCF-Zw^aF5TVH|i@zI0#pg(ClKsz7kZwv`TuvF+xeY=KY#AQ)9#r4t)44wed0Cec0O(3*W7yOw9Rgw(bH?Txhk*1 zd$pI(y!0?HAM8i|iu0j${IhZIx&A8Z*WT}Fq`xw)fBb)88thMdxaR+I<0X4OQhdY| zgk0W2@g&MyE zy`A3|dDOq-di(xCupjjoqrYy9$5-V4BKR-%{gAZ&$SKzUr=Gv<|F@VapFIBvUb6Q~ z0zc%(1E+nw&#OHZTi^PyKo6&U;1}ZGzF*f!e*xUyzej_AG%>zU+Qf5keB`ma-c zc4gUs0@$#v(o%yn~M4~;WoY}Kh|8(NF{VOr2Sbjga|K<$8 zcHUa~or?Z}LFE`z)c+H1`)ly8J}LHJzhd9^k4E0Q;2zU%`SFpS6>WX?mjZtD^u4Ej z^88ahJ+?l36885jyI#LV{fTgUzaRUu8T}s*xA8xm_DP$ge^&py*cP;(TK@yz?}p8* zd_lOK?@gIX|M~*8{&_CvBO3Bq;Z3V%_*E^n{APB2dzmto{m5r>KCX^a)|Ah2mS3+? z3EwHrFY1qlA2i(kt9~Nyjs2!^89w>+T6{-Se#1Aj=Yv|Ci25Vpwm+QT@J~#!eEO#L zBj01}?$x@Q9o{Rehf~+Ik0XfR#{Z4rR7zoEDJiAMTe;kLevP5h&Y<+GCKH#);V-e9w8|F)w0Z>!_f1<$X$VE@Gl zbzJ@D&TxDG6`Mu=S8@Bc{+#2ozY}`fUyG3D5&$Nbjy{5mo`mhW25hi7=K zpEaEi%kULfsI}ki&40<}58^cy_1nVj{oUB+qyKf>{>ThJ>a4A+?Qd)JwtgOcM*Ws> zn}3YgOw517G{4AW{chmgzTXzE*)zYZ)&J($xAqfbiux(=wob1fU7ykarpDQS#r3P_ zd$`6wQ{4Z64CjBvhrw-p8ujAbi!08P@sI3_^Q=42`Jh5QV}${5+uvVgA3mA*ZF~;r z`J3^H?87I))8`v_ll=xiXU7TttljMPljrjyJ`ugW|A2<)*SvlLe5b!w`4yHE|NG_b zoBOlMP|q(Jf1rGKPkT=K0d_H^I={;4sPQke8QW}CVwA0eFyj7>h_cJE8=6( zzn7Fh&lh?982G2j^Ev!kt5fVZKd_hgFC#p^V$Qw1(|J;Uc|Fe>9Ufm}J{tdaf5j)y z6wyEWQE)qdTYReh=JCyUm_JK&yZz+;h(6CpqPO`yG(1z}`3ShZeyZ@wqupjmCZtS0(JRfsU%JVLGnm_y()8K#VsFU6QB)6aBU&P0Ie97~D zo^vnj#J-(RfKBdM75k09Z(sH-w?EPK$^AXgxmR_dzjl=C>0ef}-_S4f*Na@=4o{yC z(8u`EZ|e4w`parzi#?$clUoZ_U-*KViM>1MEq}X zzWX6sYXGnRnUSL_+`7iX*~-i&|SKSuuIQD27J{2Ltq*mVEq3;+AL z{iOcHU7zxS=+o<0Jn9F)_ZaBoL**CqKg8{~Iahp))hHig`MdKzn6aIM>(7&PO`e^~qQX&b4@A(2Mgd zO)l^goG0T~@pyf&P5ib$fHDz}`ZbB)-tVAH#H0U{u-|J;9hd(#uzy5%9asFTVc*8j z#H9X#{KxnChv$DVMqfr+fWhn8pv+{fF@hoO{K21)Q-2vB1xDo{W#A zkN3CbiO=TW$yq$=mm@wKACa?o^nZcpKdg?+|FYP({r!#fOJm>GUx`WgKk~nC;Q5~a zl^%b0hBH1AzpQ{Wz9Lq}&zCwMnbF7l?^48P&xhnJ|53jL@mc)jEFS$|;rX}Mars{y z`*yx!BmJV-x9fxZOYe{%rAM6aV}#{%>*n$@4q$!O@E^fIeOS5|8@%;jawy z^#S?!`F|@PY~AVhTQZ!vdc}W-^Y#pn@y~~StAExPWIyWXh0kH<`ve~S--Ugfzs+;` zp9lTfl{!xS5&u0NpPet%!2aCmZG6s}pyG@E=Yre*VscXX(SEKxayu{oscwIGhBKF~ z@_)d2ONPhtpA-AGznC(S{iyG2oc9ZeNj&k5@&RCD} z+booy?Vrta{YxW#6WrFnC{wK;Q9tM@>o?r~@C-lqj3HJ2s^{P3 zocNd%S$TzFRsM?W2i0+{&;0q6`M3E6{1@r}fZO;2n~D$r=zXoo?c4sz9A~Zv{yTbm zK7wPP_7(NN!R`9P zwfw`;?bV#3{uj87&m)ii-*x+486NdNqqp_-y?$z|+K>95;P!q2F;Qm9U$K7V_D5#; zWvkZ8|3l|V{YW3n_ebp8_@9`>qy7hYpYa(^`;-4q+`g@kHqieM{Vttla+3Y1{~o?` zhhN{SQ_4cu_b+aLSaSWR*VI>Yc31g#f$N%oc*^K1|Jr%C>&2H}xYqxCc52_H7diS|8L!XTZTvdH|RSCmgjwGeARx`e+{?uO}zgJ`772R z-M*dgN&lAe$8PSf+WNtH+P|ed_J3bt-`3xWsYw4N+}`-xAz~( zN%o`ubGWS!5mT&x{qG-cza_)D*2I5zp7fv6dta62`Wg0Z{f3ytqyAI4^}mtR{$#(& z?~hp?^`D@>ebX{I$$r#-oaRUU(m&?!zl&nO*WfbOr1+_u46I%&^EuzNA@A#aN{0XX z-AU zx9=ZB9{tbj_B%5?>fb?c^V@4b*jyO@47k02LjKB$|5f=d7Qb@`?RVv#=r`|F8c zzs2~MP3_12JMvf2+x!duqkfKbE#wurl^=Zu*T0_c70Vd6-!{*N-T#aCiR<*Iva{;Wob-`5)`{tL~*-#rcpr&RQ<(t1pwE zwXa6{m*6)40oVF3@yY+19)Fh4{d0}4;k+xOkMX^T{dqgfJMLGrAN4P!{v(h6*LM4j z_0OZX_sf6Zux3B%{|mSEN0mQi!vCr-+rZ0jScX#;;_EvfTE{6L`oib1Z_g*ue$+n; zxAj@L$~5}l*z+5c;gp5^|JC`#43GAo!T!s(f5Q4)*^m0C;kLdJdGz1U?N>59>YqYy z>wEOMvLE$N!UqrY_D}oa`ibp-2=+^fK62$(ao$p`Kk4PG+2b2t8kE6HoKRM_1%ym5mxAN8fh2LWSEpETY_57j! z;ZgK9KTCYX6!pyCJOcly#rq#L{Dyt?Ki$~3{(*=bjvu1_A-LUNrB{5P+4%DT8((&Ld>vjsF}^v{y$TPaxASYz>o@F6KMii@ zbJ9QSH@Na2>GtjXD9bZuRHC z72H4m=H=U+;m_W@Lba~8bv`u1H~4j>YFpS0Ztss_fAo~(`WiLM%2htu^&J_$)2pjg z+v+5^%}+%=y#3x}ug(3$Z}kh;^%M2?!EOB$E=}}5#qB5gN50GQNn5@by{-SF*Yy+i z_rU))qP*)Wt5xs6{qYaOSo*b8(w_U--iXg})jg4_Oka_0Vw zCi>sT?YGx)a^+h6H+p+Np^^ShxQ*}0ANy!x{qKl<+dt_%EwiQ%YVBhO_dli~zaxzw zz50)+za747SD7*|^1rj&@2umLKiBeY=xu*~BmJ(fA6CaFouBkox1zW2C%Qh(FXn#> z{L3VN^$)xsr0aW6x1Y2x@%D9=sb1@QI3MoiBmV0qf2sB*H<^9*zfwNxU!wj7xSihu zSN{?H?;ZS$4|r*bYF}_YdfUH`Uj0MVUkkVAZ|0AA=DghMAFlc1C$Mkd7Zz9l&-^~? zTbDTR@0>Xi*8J(~SYL)8@9`z`({R=odDhkX;t^^5*oU+J#Iv&2mkxE_QU3R^Db+a_ zIBQ|pKgj*t`2~S97bAX+<;VCv@~A(=^;sVESEIN6mqWJLw9x-mseR(t`dp0vaJN6f z%SRmh%I^xwe}6ka!QvN>`pe+^4)XaaG_m|BtK+@^Wl_};*!~dS^@lC06 z-&14vI_*C=&AEMlCykl$9b+}E&z}nKHLi|pef$*HkI8W6dc^-(z?q8@KcDz*{vrC0 z`g6(unNdDJMwuu+>Cc8=m*^=IIQA9)S=hJrfBB60^S|eKe#!h6HpR8S;cSn8WJb^Y zl=xX`e$hVjW8!Dx-_}1PkNVSz-{udLbKd`{aQptGa)M)D`zubte!6~u&shKb@5P>9 ztIyv@uKg_+dHfSHoVjN43!QgoICJIV|HQvNzbR+@NBv2}Z{vUEtoWoq5pLsuEEt(-c{wzc1?I+ZfyyEjq}bbU)A~qxcZl? zosX+>`V6@G$E)DBJ{SA9$d4y}YrphKnv;n9IJoV9MUTzA|6?d0JO4_3T8y7qj)GhJ z;-0|u5%cHzzux0d=6~Qnr}HT=V=E^;{n}xPFw+-@uo*Hbwku--n^M{CIxm zx2UK69Rj!cBej`Wf7JB@UVh2?33bLZ31cnRZ{hz=%U62#1TdD+{<1qgzM5W~wPf^n zxW1$6AI@By`0dVHGMu?W@q;b?UQ4!Sc+~%${A~SSZ9eb+0QhWUT~C{aV_)&_k9|9T zMLuKx{O|pq-_Sa)_3!)A_@kcrL-Bi^56bA7zZBmO{~K(Q;ZeU2@mE@Wep2i6)Q|Lg z!EJo3oQNO$T7TaY`?fyMGY$2dum6WVzSi=HG$uG>W$k}>D2+dI<~qb5bl#lNGZ!Pi z2mbB(PdQ^h>UT@ySI&9=yTa}KrAF~Tj{kIgP5H$9sK3XY5BBjfWfnPQwKMi@{7;)k zU$)=4zEr+D!tMPz`Nt+)?Q?s$tq=1X*LQsWq_21Z|GkD)`TcfH@O(OuYt8s`&Xe&W zdaiHyzIH9cpLU*%FV%m*@3+1HzMc7JeH#DjAEc+Rc@}-s_zdUy8vF2V(cAeXjr7~V zZGIC@|3dueiJw@Xcl#qVoacY>t!<{GZ zXYfo4XMgP-BQ~4L{dF0*y&sAF$Y;A^cjrG7znu>Vr%z*kl)YR_+%nSplCM3#WdA(x zRKYoa0?u5=7x47`2yxDG;QcZ9=gyP;gW{Y;AwGfp)Atj^qkcTx=10(oNB>{B{gD}t zUh$1XZ|4{8a6z$tEIfVxg#3w_{NH|Poag_&+fUw)5NH1(vC!9k=RA48UmXA9W3X@c zKb0@`qkc5p))&x7AN~J;{a%#}XD^=Yk3w(PZzKIr9^b$WN3Z-wqPP7ElxdOw5%7DG z{cT0(+gHd#IORiGwi2Js&!e9y zwIB5@Dd+l-hFlf@TpnNY{_6H=%(P$eA;f3(OUy<3c|1N_zs+&g@8Hyb%sKiW1h?@& zbw>NAPUv6Ne=h3rjdITOH=K7tUfJc}QyCvDp0gB zyn=sgU-&Q5H^XiJ4L0@sAN?=l_9xbH{1aapy^a4H=?B8?{7r0i>M`%lg$&>pjmY2T2jVpq{cnJM z8(&jC@)_e_4{q!K#3Y+B|25seozK#Mui?DY+jrFK`dF9vZ2c|f9PO_IxBjsaU)#&C zvoS|+`;Rj@hx%I!Zu@)4Uv(Die?5;sdH+_Ncg3dOd9z<%YnZDgn)UO7&{qfjW z&awS%=>2erEYBEACo+4}{QscgphEAD@IL*AUmkI$%A|FS&( z?R>&mXVLy&;5%;AkPpVboj=w{zZ`n|epAdj+FurK^9QsE#T4s*n8)Ah{Z|ohbw0R` z>;AM1_UG+zt~!tQmxkN-Nn@Lgd`aVczn-I-C)`4ixc+p1*ddKSa>`$PPScm{{C&9khp6Al%O~+K9`$qJf5`B1`;6{F zeP6iQhZ8^J6Xq}E|4fgswmt)Ye2sp!T%33K{43)p<{#J}$oQUT=>y=U(dFOLIoZe= zYwhX0t-PY`$YFO9GFcl(t( zuJQYR@TRdD&i*;^eVyC)ErNaa?}_)p|J1?0zfa@$sPApOWcwR6C$0FTpBer}Kew;( zFZLDxOxVA7V72@yQ|7<*eqaf1`(OQi+fUk` z$}jRipESKaKN3G>n%DmUzb{!|(EI@ZtNf2~`y;F6L-|MkJNjW$oZ~;we}mijikLKh zr+&_vzqiM7Joat>edLs{_^;?~etY(ti}k<2?fF*q&o#+fiu$6H-F|14Gd^UkP5dO! zZ)`*UGxqKL0PHiq&Fg=HTm5NGSN`>^cUqdCIAdzolEhDS|22J{|A>9Nf1+pno##Km z?fEFKPm#Z#mCtbdoelZ_(A)b9=&66jFa7s$+kZ~~sWu(^&zszS@_s?&dX~Pz^PlMU z)n?I)U+6rEUu|ys@Jf}R=k_~XFHU~ae{1n^J|giC+${EX7f4Tcl?oZ-T{{?#c{$0#3>OW68Wftr2oJ(Ku`Gf1+zJ345Vvby~ zUJbYXUy*Yyi+_fFJ3o$?iuBjI-kxs*=USKkQ}nj}4_BW+{NkU$ZTwCA&2Kb${{vV2 z|MK|TTp#({mw)c_8y}||B%Pm;`&%Wim%7{5YIny`I_qSwP(tQ`W1f*|F(aCGB47<34f+J z6F++Sf6(m@Y{=h8?Nes*8TGHjZGMORWiz(FN8EmEL;hN7pYkozzY4eg*X(IvO)8ta@7ChmF1?vcUyJA%5xrHi*ueYdH!Xsmgi%hHJ)~E z{kQcwJX6AXmqO3aPdOi&;k>^i{<6hivgc<#v*z_L!fpLudp7d^pT&Nu%iph%f5peM z*7N9X{`db8cGhuT72p3~7D4HTU62%%2E_t_!P0xS)e}a9fA8C#+__OF`{tD-vep>&T#%KHcv+>R7 z<^DQi%Eq68%lmC&qWt*&11~?Dgy+iq-_u0>j?3S6jepcm-1R@eW&cpD&%a=A%|Cp7 ztMLyi#XJ3C9 zt0lRrpQ!fJyyZUCl1Ip28Q>`iJ3izr>@@v@6E{r>~U6hyQYFzjs!C?lIMp zwdiI2*!3H}DXm`vm-XqpuWzsU->7pHP5%Lv8f*IZz`lH6FwGxqZ~P(ja{oKL_tDLZ z()tJCa{jhqqYlOQ%xY2;=Rff^)%g1=?_ax7hOhdwei8XoA1?hHdh+zc7b+#c7ADQ9n%1Zq|r(N;7IStf)HT6FtD}SM0wPZE%%ld))=lRC^ z2jKF4@$oVp)Mo4-eNDCBCo3ObwpwyOdg)(XPkbIf`upIrzvQ#`+N=FI{pjmy`X?wS zPcD7GQgVEAOFz7>`X82+U$?bt@;~g$_Z6^@p7>+^y>K}n(qzTX{?X^F{Q+5dqgP}s zfL`v8cRlg>^Fx0(obM-})4n)<{yZP_jj&&)Z^4&`mFAR%;-acaL-pS)E8o7nYO)IZ z|MbuBhQ(I@U4K{PpWoo)zG$m?jsGTUf2hWn=J>x8y__!~emKu3*53h_`R}BI+iUrM z{D{g4b&>Xo^4~(!H>lveTE@@1+xTud^_4eQ|9!IZ;RjYrR$~9mLo=NA0sF4M9WL{C z{J&bRaS{IUg@5#|)PKK%@~w^6pKZK)lBc|-`tP5Wzw}$xWCix+{z2ChKlWXJ8(h{8 z@t@nOq59{4@sGZZ+Rx70zgIQ66}`M)b3O6J`di?$dl#J1%-SFN58D4Hd+%9v|4-GD z9%_Gpa@tqtlr_r70q~sR%1113Tr_KFrKI)eZL}=H_ftMp`Qe8)E_&zuO39a_+GhB^ zYTx{)`Ew^!O>QPWxj%>a;Ix0SemPv)|DsLpievx$FZ%sM{MmTlwpEjx(98VBIq?y{ z>u-ct>{YOENIUIcJpK4W-%ZmuM*00`H7VMyS*2v)xotESco*f9l)v*<xqx}UB3)2`!iqqxNWKQ;|qO(+V7KR|fl}f8^QCO65QLVc3`P z1N_&|nkpw&+J}|bRZE7d{{dM!-=j5s{gpE&!zTV&e_?z)PPysfw27pp zaA=RkNwX-y=HQl+L!ll;uFp@BfefI z)GLBd*7z*{;gmV@qUR6BC&6WX-t{qmeR|F068ua3c20b;egRzWm*Y3;RO}!9)L=gw z-`c-sG9SI%Kkpp>9zXhdaGBr3Df4mq(I27qO`qoHG_RQ)4wvr>U=vQ6;qO7K>K4K0 zVt+?}wNIIk?JufSGr1Tp>jUoJ^*n$4AEow(W$b(Uu@Aopz3e|gkNsGW{|n*reYvY| zvHru$A7jPQ;{QzS%l#0}8Ph#*Xd4|%!cS2D12UX3{h%cm^bE(g-=*e zBblSTPXTl8m^1$BJ5~I{W&eIQ-ci<9X5(Mp&pKyJhJV-3f^&XK{QH=0|2JD}`NIFX zYG2O(Wa0QfGuU^|m_F8@0hjp^=_gI_*D6~1ApI9<`sDlDGAE5W^Oq(!$XP!1KPD?D zzSFUP-`EUi&VhZ`p9Yuj6XDzq@5WBp9HtPkWrS28|g z{e|bt`u%dX->(#B{fcMF^H~a)^K*=8>7N)go%6p|8Gfbm(aL>HwqsifU!?XYXXPtj zuby0{`fd9hwnb8G|Sz|rp%c*m!CnsWG)*rC% zW6pnyT4`F)p8)@2Y{ougTJqohFH!r$GWMNg3;prvAD)u2&zRfo6aR5=**_4M51v1< z65kD)f6{(N+GV9m)ze(*6 zD#hJD{AlzC4K5&0+-4mAQGuVZ*8H=k8JGW;)c%M9=h$p=^FCTX{#{W!S*LthhSR1z za7W7wzY8wU*Y(b6E6}fm=gRpVsq@~Zp@;uisdjR^@&Q?S^Y?2dM-soh|8_lXN~}Ku zF8dSQKYhl)qg$zc{NEY;XX6`gteqU5($inuxVL$ozB4`iUgblSd!N&~LMzQ*_%!^>`T%`uHvN6-e^6F_XVcorVd(cB zlHs)JvHz)XIp0g08OM(=^sCi=@2s5XHwC@i|KobvWb()Lli@PH_xxi_;OQg(9@g{^ z%5eJRtB1EzJ$$YDADoq!pInFm?4KMI9LF^y>qw0TBhU5Rn{Vo6D z6VMm+&hS`Y{kYo6KDxdE-w@(M?``HgAC~a3_?P)VeMYS3f6*7K|Lpv?&ub=Q z&`baAdfHU{yM8oW<}b9las2o~|CHK4G%LU6jhe|Q^pbzBr%k7Qa{b7_$v=G3XOTY7 zzh^c5y)}QmPhU5+WrlB7|Gl#E4%gO7MqvM|z8OyY7VC$@<^4Qkw%9+u&_5sS!@W;E zZ?~4(zyI2~Rx%8|?2p@({zcW>^NsCe3;j^^GCp?u^yzLN|3gCj-amNzkDl?*8)|=8 zrvGrxv-;)J+R3Z%oPMRa_b)u3!PuAa3C{#gTK~G*ACi@$AB0}UXRcrLa1HIB-2Xth ztdEc;enazZpB9>z#QzTVWqwJSi#g?E#_zS0x7B}kPWlF5U*1o+o-&Dj*Y}6Z^TEHD zxlcxy_}`-T2NqD~V$QR|e?RoHe(8GZRIGm=z4Q-oH1KE6DY4%dy_7Gv?|S~1^!I@u zZTAn5{*K?<`FPeh*uSz5`&(pv;gXZA{!wOL|J}yFyT6r}>;{+T8*}{A7k&Iq-Q>rR zKKcxNqKDJI_vukL`37F5e*t}R%&C8ORjiwQuKK|R)R~x5KkgeP-|E!#_gC&^df(+O zw0^*QlRkOB?fK*W`CoW1xXh37&u^4@^zQ%5;2-XFa@}{vE3T`P9E$#{3A@yPt@5I|#KriPPTu+}H z>wi#v|BT)_dY(@KdbvLUJ-@;K7*XQCJ6!HB^yg2X5BKN)YlzP|ee%ke_f}h!k6$!@ zdS~=8FaES{(hd9a{@?XFCXDo5;ivW}@G)2HAN>xsKcs*@mH1=ce0JUB54e2)1x}gN zG1ZY4KYY9LUdl-m{DyN&_#yb0_y3GZvgy0PWqkmi_P=sm-Q+Lqmy!JkA%8tSY{5ID z|D;F8KK$MgAN*jrtdDy788di%r2jv)KQO}?ll=UIJwN!r@Z3YQ@@dc2O%B4ow9jsz z=M(D>gvZ<)g8BUpA^RvYV zuLI8=ot5wNVqVe)`!arT`?N{1zBOF(*W0YvKl(;$e^dcwlK5l((fGWifyOtkfHIkl z*H=C=lYZBee@7jdm$bsayk9}jZ?s8wUvKHheoMH#U&cQieastbe8V&Pm}7q*^s>Le z>lF4|++SjU@8I9lPn~j3`kMv&-X_Gn_7!r68q>GE4aP^_GNtT_8C9K`U6w;;j{&= zuaABoOCR}9`w;8%;nF_3ecGHj{?2MYDaE&a&?I9&551gE%jhT9FQu;sm-#PeMu>_1 zyS)GUZ;vM*=lPs=6y>LO^Gc+U?T9y&EI8KLp@QQl>2 zHPsUfoc+^-mG>&e*b_>3gXC+UVu|j{9tUANyxI7rVX| zT<(v@zsCgk^bgSV73{=UZ?v;c{gwCKiThcdn%I~1FZa)$dj3W~xk>e;2KS4HgS%Kj$& z`)}BHeI>YzAL2B}{wu)4{!7Yl_nx+YfcPoDh3bEd)}J(AS+-7cUWgBy&Uu%Mf8Gzz zg3I@H()^-f)r;VhRd4${yB%Tv*=sd(SluG_Urm6^{Z8ns%xs|XjhJTq*vG3T<5h3% zSDH7uuWGUf`5*QVz*i2eoW%Ow;j(_gZ}^Aff7wd&KS}M&{q9*f{>!76^5vZUZLz)_ zT;BhC`iY7B@$?^y{W2qU{~Y+=Z}^Af|FunZ)c-MRe?nG{{~Yu!M`Sqr6Jq^;&k29p${%|Y z$$#>K{3m~AU|+ru!83zX=HO?XR73em>fiP+rg^PiHIfrmPyI7JdkWFdtXH!L{xAOJ z{zdGwClUMnFZS=+t48t<1{&&EoeWm=d z=aKaDzoZ}kr)&DGe@ycycT`VKgXfr@I)R?Dj{e2(swaP8U+(|lH}upA?4Q59dJ+0R z;j;hG{X2L6XR3YkkA1k?NB;+Ung6?e^3UxP|91Exra!2jwGa5B{UN?Nntwgjf6Qqs z;b&|53wGkPwWRfT?92Uc*rZLO&*g8|{|1-$|IV9)_TBxTtM>cs#L;7a8+w_aqbEwB^a#$&JcKXE=2d{?*Vb$}fS-{hatm z52r3VpQm~oKf>8F1s^q{y6WdDxBQ9upp%XNLj1CRfqnLTrS(6{)`p{I2mI@Gs*7^z3;`>#tD%L$mUW zliJDm=w<(h>)pQl{|+weQ^e1nE8^#WNgw*F)xNc_X-@upi(bapt|z`&{|#Ku*TKm@ z_H23j$iJnUe$&I*lZJlgj%u2}OVodMzV(jU$=BGAo)6_C)_(<;^Bw%gp1jyU`s>vH z_?`H&`PGWPzod5ZC3=~^?@E7z>TQ1;_KBbLp~wCg=;i%2zwvxy|JeT=F7Ib4-}H&p zKguHYkMenkrr+upeFB{J8QyCDTFDCaFW-le_7hH<2XA$z@mrJ+*Y+Jwn+IRev7+j? z;$P;+=;<@i(>}WXHuZ1qbDFh;{ODJzeQO`m ze8#q#$tURL{FUp8FV=qym;D#`B>(8M$Uo9Y{@tzVAEM(IIDHFZU}D ze>VMns<-ijj|u$wp?@F!XCpKANgw{PkN@}JvOYup(Ld1sqxbfIZLlA6{)V@d`uQL{ z?5}k_oc@L9vjzL1|KgcqKi01a>F2jJNB=H**fiduG$(y;V_)t^#y*@f8SCGI%lL!e@DIoTPeaWAIL$-?`~~WtHXl80HT=WR>LgFAzPFZtIAsbx>F%=1pM=Z( z8 z;>Q>9qu(5*kNky`|M0Et>Lf3tm+wpRTdZ$?O0MdkQ$6$ZojLlK&`bGuPW9_XLxu*~Q5tE6Mhw1o+ z{EPXVe0l!p``h>rz1#o$0JHxbT*g<}bo<0V;LvhK+t<}i-V65O^m(2>_=FL4lXo=! zQQCjP8B?IIbGh+1L;Cm)&X|b5-}u@1v-p?wLHb|DL}~ro>fh|A`Fs1;O*W&K{S&Tt z`|kglz=@wR5%KfC#E*W9+PCv5X-@t<9pZC6@x}U05hwrX^F4j!-$&Tb8I;Li#ti7& zeOq4h_e1qRG%H`WqHgjO_D`_$9sc}c{gd#p|DQ2c>>vFn*q8Y$8aV!mZ|3~+MevR2 z%a6|RSf77U-Q+XXkJyQ$hZm!l^ZovO)A}O#cQ*c^Ow%UwzutcRuIV>Uoq^L9z$>(@ zm;9*Q<_FX{ICT-;;ZoVZ0MD`cJ8d$YwiJHi@Vd#@s<-)9nz!g$H`zdZp?-Or9_tI? za(;>5@K2kM|LTj)|92sNIBgD`whE5__2`f3pV8B%$NC@8%l!;!uwebsJ%L{4 z|85`d_DTObc$?9xC;w=($UpSt->+)l+CMmLCcM*0zbOAjxwZc>A2@TH^2f0+>jT70 zn~$FM&-IVN<^4Y~!SN5r|DZ?fCcmkDJAWB-^zcW~hxG~4j~-vHe+1tD5N-b`KlE9Y zAL3*EF^Bba>7QsHol{qx|AT*7pC=~jJbLG|AFG%A1(*E?aMBMaf6)JYZoTAT{9n^m z+t*mXrtI$<(EqLWhiB#J*P^dFAj4@>@bCIHa9Mx#_-QlX-Fp9}>HAOf&&ogPbKdDB z;}4;i`5$`Pbmy*r5H9=cu?fdN`B$;#_6=_ymzPu||KxlNoH`xz%eL1`c2{og7j1UT zYrRn~*-i7`=9jd&aM~K|lRvBRFW+avK6=_*_m953>aBf44|hHM0ravyz;Chs+sn3Z zfZq?7@vpXT56g{xmbS({BO>u zn|OYFyd>q)W~3;ni|_+n1_Z->kNXzVj*^ZfDnn`r#@{wC%g|81h@{(SWQ z8*PQ_Z-LAEe>nHcktcA^{}$Mn@9#P%X8v~GT>aboGxW|cFLS>>pPPwa)<0Z--Fv0= z%i%IVhI>r-M}NKi?>=hZ;*UA``?|FQo1!1;|iqnA(YQ~vs3KiAeL zoYNP;-+nDGIYj;2`e@7_dG-Ab{eG#Jv{${IKXr~T@|y8QyZ;Agta2Ucm-`VsKFVCI zUj`5F|LK#kNqp{qf3-he_4Ju=`eOK{7uQSnh0Fd>Y%(T+GnRnAbz;3_DfVUk5sscQ zORVptdYhm7n8x+kUxHrtKk!?u|8>s~)c>_`S>J&ZKVuf+hm(H?W4}x<9Y4Ss6Tp{# zZu}tSw!RYc8y9@2`fIQ+?-z*K#}teoT)!AD^MCxq@ejv;-Qs#l7fqkdzlk4?E$3IG zm-)HdcRlveUj>)@?d_TUq-_R&d-*BQ_-*}zF{wXa$};)i9WM9NrS)*0)s@(n`L%Pe zpRT_GF7M~zJX7cH|4{YceJ4&`$r+TF^i=;AU#y1{-{mR$)H!^)ei2;W-}BoilQ(Of z>-3&+;ec#IpOQ`pL1% z&3?=&KSQ6-PsV9{1El?+&i;|H4=>j=KN$*_`30OY8~zy|!uNYRFBznIfheqra9@Gk9`?`Vc*Aev3?$0_6P7A{u%S(|M5DXs{hgI z-_FM~CWAAUfa8BIdRaelJ!869KUVeje!<6luIKq&j9%ss{DyzmZ#vcdUlh2PAI5~( zhx7a=seNnzC?AY@h-K}9t;#3D!}?6jYusi0LhOg~$(TE>zW^@p|FH>={l8nBpB#aG zIbTftjM-v-%X#_9H072)#(XjVpih2sn8s)KPsF_K&!299pO61={-69w>(7fg{uz^! zKj`s)xY{p?&-tPM`%L+{=w*J72LH}oe~zZ#<`1NwF(dzrp7bAueW_obKja^Iad+#j z%IBb$`vIND`dKUUlVemb_XCIgg}WYpHu@9n{t6!xyMOpuaB1HuA3RgqJh-R`4hjz`Yl&Ir}`Ozd-)`?EMsFKIWHqsh?b^{*BWn!YRw>hyRwJoELHY!-*eWaZP@53jSsP0l&ri z+onCQ`U}**^$%%|{$%v>{X5swCgb1rC&A_XIKL4;ob)aE{`n2Wzd-HV`(x^S%>S)f zKbfoX+xmjH$<$Bu@Ds8Brq$nU`uVCKtNzhr-}U6r3FzhhB)_4jPawXI?Oss($HUK_ zpq%(=6P*+PrP!DIZ}~0e|6cHdrtdiPa(>=Mz8{kJ_U*7L~{-pIs!ukF~@K2k{|DwnLwITg6CzhNsFK#&VruxYd zsrb|SrK-2}Ay2>Sv41#vnLm2^VmJ4K&p*yj zRw%dqL9_{Q+822Hw)x2|%58o{n**mUgCFp1UUHMhZ}w?Z;k31I=9klmPxcQGAA0(P zSbwwXZU2$C*{;X_Vd#Ig{Q&0 z|8@ODxX%CEYnw%zj(_y{U#00|{mJaZ@$Y;BdRd>~H{y4F?}2MnKOQdoXTAK;W>S9O ztRFnC>9hR|?^Qn;hkrT$&u_85 z+8Wb8p#Dc^<><$vm-Q*v(`Mq|^<&`j{*B*=A5Qvi{A-7VGEqHvMq8yx;fdPn(Dy&hsx+`!>I&eW6VvE$6&qd_7#= zzq#IdoA-z{^{}azaIY^k$*ToWB#h9uVno;%?~C2%y{{j;{dZJv=QBKiV|@X7Ip661 z`My%jyTj%E3(u4~$@-R;pQEp6kW}G(kDQNp&NG4I3;u)pxB5++4W}=GpIE(q@==Hn zJ$=5fZ^0|(47^k?IY54sWGEL;CV&-3GdUEdWh`{Vfy|7c?WUq|-o^WgM_=;?pA zDi8bjWJ~~OtN_0`FF*M#(laKAIq@HY|L}g_#~iV~3;fREI=;X^W0u(e7i!%R~AmyI(%IRL%9-*=A9Sie8~BzrzuK1CCkzZ^Y( zHeSasw8_|XPW!%H^Jlnn`eZn5G5I_B(fY|Yjjxw-#sqN23h>RR)lYs^F86mxnND-Y z7oCXj+HM(6nUD4R!DW9Pzu_NE?EiPQ-#;s7{ID>1#ZHI$&Ss*KqWVIov+_zg2JC$0V+Yw?{AgtN1OO zz8zfV*Kp!z%;NTWe*dX`+kb;T<`r`qByG{l`UIM6`ZjPmUrqZ!`9b6MX}@-({K)+! z&gs)Vf8k}d{j>Ec^l9EY#E+gaOPaTW%lp8m9cAGqufaQ}=MT#x^XYJXxW?$2-LQ4Ny4(aZdPSNh7TxB0K9 z-}TsU5%l~<{IP%RH;0GwxsgXR}A`VzV;RMmD~DC znv;Kx@xQ6WKmAjzZv;Qk`Y-g}zq$X0YQHq6FZpEceC>-GqL=&sv5DUMH`g~tFZDC# zuBR{B6TQsu`3=4IZ?10;IQhpjOXuI-8lSyCbdIg{qmIzD?4|xKf8eZ75KH4Dj#OSB z`(gioHhl}#TlsSCdY)B2dO82jZ#)xU|8W0#aH+q}S)YiXe`}53&M%<%^^F5(9jubPe{f?Nh@8c7Xzq8u6_ovPo zOKiG)o{morRxbB@MSACqHL7D@-v2xI@rmoJ!DW8tV-_Euxc@`cexIzIu|ie!vOeH? zAD_6s3OwAeK>R-b@aNY9`(ghg-1|@G1@JKci21mg_WUbjKkPql1LsNAz`jww$NDBK~Fn!mjjv zRB!7;Zr}BcPb;98`=`B6_3@Yc-vj=Yjjz!A_{ih$ul7sy&e1bg*d4vRpYkz*bJv%L zhyC%`_wj}2-w@3o+aDM6Bd(sif$_;;^>5=lxQ}0)m&3l45BKl(@sEBtxXk}O|9t%5 z{)ef3TmQ#CoVtNeNNnd zu|9UR=8w&9V!r=Hlk{0lQU9emv7USP6s;@cRd4&3T~A#by>Y6x72{OT{S(&b`}!{J zGi^x@@p1oPX!Cr1*Y*EBD_rWob6=lz{}a`IY3}}MEB-|<<2QbzO-bt~Yy39#P0SOi{iA`*OcN zd7e#wxav#Wr!1hSE&B`o54JymI`8YV?*C8ts*zfL;J!ZV@gJr3t$f8CJ$3O9^s>G| z{h-dK_1odHKY;!d?(3KIpOnAj)xM4Ys1v@v>ijskeE$}G%#WC0`rkEuHvXnfP3wPy z%l!@HU+f<}b?Id6%l*mZSOrKHTOv z=x2xZS@%Cf?c4LC&ieYS^Iy=*`l>$vl%BeNs_O0iEPCvd7WD9+(SK^|>#=|0hyMf* z`(wC2hi`t6*Z+n4bI!+p$p4r#*W`Ykvy~s9&nM>W#evUKZu{3_&RHt>kN7`)-;AC! z@A!B9S*o}FALyO4*B<>3=m%T*fpcan)_)I|`{DQv&Y1-M_V~|H`!;`wIq!P0{~h{p z{vFPqq*#BR>h1h|%z4*<{#*3n{sB1eoMZhr@bG>b?(uv6FHrj>>2v>Q9MDef&sA>k zC(%=--{^zUxqcVC=AN3deU!s@${oH<9 z{{>w7Kj-Q6U#j-4{lLFJzfP;lsQu5;%l`je=`Ty=kK2EB@q>lLw-tTpAF=P;^Zzrr z^dDOeUReC}%0G*)sM1`=_cOlS`1tRqo|RmOeYxKz<`2*4QtbR{c{mz|{T%~+?R^CDQr}&rt&-GV||5*PCT=pNh|9wRh`(L8zAG1q-Z7Tj>B~7vZ zW9-ZPzsJoN6fd6nMNw?Ollb}wF6U?PKS#cQ8uM*pYnj>~n&Gj1_=o7_{Vn#>dh+K3 zc#*yT;G3#({{JTW=R^MS&LHMIzbmTrOrBP5``6Qa(w2_N%^F{6jxF@?`H z;=kd__Q_r9-_}R6@prH<-xtLG8*=|K_GA6q@UXuCzNgrX{ofPpqshkKiuC>E{^GR$ z&A_n&{px@CF8LeSZ(;hW+(|0-WBu!J*?-S(@M&T* ze*O=t{ay3d(0^|8=U#HZXj=a&Je=RBeOo7GDlUJIVLz-dJ7=t6<*Q@zsHT6Qj-RoQ z-udvd9g{~iK0Du>jlY6_c|S;+M#}x4Y5mLa@O}*cjb7=Pu}}SbQFyMjzxYHyOniF$ zjpcufHNNaTXJE&qP}67Ur(MtZi1bx#)-hSH@!R+-8-IcL!uRnWk^4jOAM2loZ?gTr z@Cstn;#eWAc>p zezyKD_G5m^f{w{EVn0{**ODgmC(CahKl)8@xqsXJA1S|i`tkoHJiI@r{hKJyjJ9sk z^&JXne>dY_)=y{?o%1(*?txvCV)UQc{tceL>-&zaumSyZA%1T^V}7~tBGI$Iz&T}x zzg@opF6#&G|03~8`sjb@Ki*UOcK(a_;OL#drQF_+$DH`lzpm*kt@rf7Us1iC|8l+a z+ipKGDI`9*AIIY(Px!m{4V~2fYpS>X0qA4CN3)ZX_2~8f1Iu6M|GwQ>^-sW~@eO%K z`li2qU*WQ?XC`lAKkR=Y|DBV6@O9|J`J>$WT{T9_*`EmPk{ydtB@7}9V&G;w&N8sW4qhBh&#n1l(wa@yf#m|@|j(@G_ zbHn|Aq(80y8NKXJLF1gZj`WQlKRfwGx$Qr9PG4f_pOt*3-1Y}Jr!R!J{pZZ&Q+Swv zW#el|pR5ny|4!+ji7(bar0KW!8}K$_Gxq|8VzN$rtLsv_9q!VqfmZ z!{;l~KVv`UtKqwk(e-!uTCo}X|61)2+a-Shz3l(OW^d`A)B5}2@_q}O@NK8g(*D!) z{|8Oq&{CYf7QSQKtmJ$3KW>-&KJ2#|seGdJ&)ARk|AWicKYxSWsTH~4L0)8oVcziQvs zhqCe8(aZV*`dg%bP3u>{*G$U9zf5epebQg{Xxa~3U&4OO{~K^tlB;~A_TSi#d4*IQl*0H@A=eX81WaJ|chqmES!5_`eC>b)?QO*;7~h&oZk2wBV)!+QPi! ziEm0)&Rk&;@#TzBUg7prHZD;DCKjkAz@vjb;QtZ3~yv)=L|Epf( z1b*njPj^S3r~0v___e=IDXw_i66Lj2Kd}_QVCm7td!Ai)LvnnRq_XM-U&P|hRMNj#H^IL0v zi}Jso>Pxt4gfqV8`7K5-^AGg=meyYdm-Qi@iRW4T{F|u#DW!PzpQp?FD~qq8@?pE= zdn%Xj4@sGD`{>Usd`8oECHW)s+qg``_OF1;`ORJN#@NrX_&tAP{pIN8`+@N@kNG0F ztRIl)#62Im=_sekd7w-AnLizAr^5)716vSyppI7mn^*o=;@GtiZ#LqmozYs3# z1H0n;X!=L)l3yCqAE!CCe+hh#o~rlq0r&dfR^#uz6ZiVxM*a8MC0~Gj*`I*_*uLxM z!)1Q~>5IAhZ?FD$=B}To>67=9V*iz&U+tEDeske+K7jI%hW3&FrTyc75778~m*T{7 z`SVvQ-%tJb&F~)5ron4HT1WXsVn0{r|Jdg@>{C|J^S}G6-u%P=l=cmN@1n`dFF-H% zPoU>F^t46j`QP*4R}Lr`_3$ZK<4@H7q1t|tJ~X87r;kt8__`_|tn~*@Oz_-wt(A9H zK42&A={pDiGX9|cWYZs_`hGic*Uu4snVzQSnWp`p4L_xu#_#!qFXHEayQ}>kJ8{py z*~BO3189G<>3gU?*@?S;7XBOdRZgCef3g2F;j;cf{`>R67v+cl?XC9v@5KH2^@8X0 z-6cN*`?5b`#^}=a=Y{8gI($&~o%HU%Z%AJ{KKFkbdO3fJee#s@6~}*S;MDnS`V~$vV3h9&cV*}nCS4!{w>&b9we@UOW|NO6~Z;Zw_GQ(;A;okm_R6eK_ zCsyYt62FWuuyOm<1{d(mV(!m! zdWbLP13w;`8DCCS{lHTCZDWRI_>uU(sjqS$pT+uVYQIk@9_x=FeX{?YG8gN;EFKP* z`FG4opYtQs{(xQb>FDKtKw@(Hv3^>xPyV^hIRB2-^p7f4zTsZhj#2;PcgYXKzPvvt z{@A|jr^2K1N1qw{KT-XUDOEn+SJX_=IUy4(IoR7i3tS^)1*uL}8aA_YsP2?YX@Bc>;$#n-6d;dBD|MLEyG<*M!eb*0%FCMy+-uvI7#CPSOO#XZMK~Gtm z7vhVb59Q0B-&~DvbVg5}$9xF>Wq$?v=jA8ngW>Z1Y0ux-KejGa|Kl^9JVWpKe~J1Z zyGuR@`*J>l{PE`(>jy^M^AGO%cbVEBQ!0OBJ^;NuU-CSgzCS#ik4vwQu>NuQu`;|W zWB1#|{Id~9c85=Z=i2>eX-@z5&{9eqx{d$o2bB)tJvp&OGsPpSIeP-V|>2tmW zF5f@px0o+#{p91Uk6f$v?fpWUGuG-C@@H52z7ePWCcfDJGWBoYH;Os_8O!uR-*2+U zNBf)B_lB>WqP$Iq{0)5Hi1e>s*lhhwxodo-+PC-jaQ{Bjtg536;kUr$esW@p`T5gU z6>`_y&67X2{4e?hF7to) z&o`@BtLK05UjYBp_SX=f>plM4)W5wyi0#9<%fCDMGt15gp!fUVU4J`z+5e8um{&S? zh2~E;^kIJv_S5>V@NmAKG{yP9O1?F4kH%;F-<{)&=R$r|^|n7L&Cz#3FY|ZTd;Yn;GknfO<>Uz(%1=T5lk189{wO}@yvrDJ z)<^64*1>&||1>9k2V=jp`G+4DzJKHTgWz&MAU2O`KTLV-f3@1T`+d?J{|BO%`LFB! z`#B!}0q}6Xn)YMr;}v!N_V5;Wtf&4yjeU8)Px*6BUbR|$X(9YE^>5`LPML&LRyZs4 zC|vH>a=qV=SG)Ov${$hA{XAyh@3*UV*l6XQB);76{;i4p7VDptyDayGC-#01o3Z~f za@S%9xa@y)`=pP*J^l^qzl5WQ6F=#DLb;tUCw;^RCq8(4@=xxs=QrBFw7yXFC7k&A zUt&ey4!z8uccpI&m-_*nr{jMT`?;2X_)qhV%1i90c^mA@`xUqE-{+&Q5npS#yx(_D z{orrv5`2@|FG*jTw?aRlYerA|g`TzoeM|TZyT6e9rB3kvf%3;*!2Ps;>#Ft7%NP9I znOh6tUxxHk=A84c3C>+lZz#9@na=rNIA^6^g@^BBz$r8E+Rf|gS*n+mTm6Jn=HQ2X z+Ew|BYTw$&H0Q3aeMq0o|2;lGKj-?r;ZIxpO!zl!4eoXo}(}zv+f8TQ}>Rnu0H2>`V zv~${`SySt1{=Kc--hadWezOM$TK+c0e%N13o?+kh3+1k}cQt;?-!#Wo6ZA6w^JjLF z+>2`?c4pK&Ux2b=GH2D7uhGu?R=Ya&MI_TRbxXvxoho1<@WyD zIqi4*k+n7uebI#*kGWValeowgE59r+Q zU-kGu!@ji7G57enYpnr#IseaZGfwNAxxdx*_2DxAckcIR`t$!n?K8eHz2BdSp8A=O zzT7B%e|^l912gw;x;_ss-!Jg;<@aB*f0z1SN81N`{*)i`l=gxB&G0`o|E+#G=lTA$ zy_240`B{01ee@nHX9a(N=aiIRxaSr8d)3?c#O?dD;;dsm;y=#H2WKjIX0g65T<$MK z15f+^N$rm;#a)m6I_PEnir+X>iTybK+HfiV&i#HqPycUf-_AFp_xt&H7Mx|=1}|gx z<2rZy@LJf{{=?2hru8-9GJi+InMuE&&;4)5eh%}G5>EZXKWBMrpqKi|Z=Cr_>#M_0 zIz-C{-0$D>=f4N#L%yHudgry;bkMUV|Ed3Br8xT=T1?na&*J>8d~7N1<%hFC)$lL# zKYruPk>Bs<`hU^O{cPDd`l=y)&Tp6d?_&Q|;4;4EH_i;fDc>G{IZdDKUx;~+6&*Kl zRwox8?%#CI`}?ZP_to@O#=evfx9|7sxqdg*+x?vA;jYJiCG@g>!*84!O6x1a!~F+v zzhBSe-yQp9Z2v>d@y}VH3g~5j8)@duP+GqSJna96`~7wP{3~nxw!e=vEq=eA^GfR9 z`iGdeKh4^Y-Le0~;aa{plaSVzhs*qd{EPjg=PXWj?B@>D{E2z5j_vgnW3dzq0d|>fgriF>kcP^nYMK>`$jor}f+6^8Sqci~XagF0{kGe7}M8 z#r%_>aNjdx1sm@mEHcY=w*EF@wtEE!~QRD*?-ORVa^-Rzc?#(3if4v(K+*5 z+M?#KEh&T#g-ia$oW2&$ShJ_{lJz5-9~v(0`}2&Q~P$l#W`c0ZS!s@C<6=se#Jv`C%Wurw{%m_Cx+L=Yq%jFW{0sG;seumgnCPwQut?=dP!Ie2%`R&99iV zrS)6kvOY}tg(vcTF6tlW52=4su`l0u!e-2`nzO!;wtfs;*Y8R=ec5?+HW$(tj#T|1 z9p5r1!@hIoYM)>mWu&e4xneM$W2J^#^vieBDN@*DR3`&;h+6S&-uh)w!z|NfW9 zKLPtW)_*&vt^DMtjfM1ufAsV<$74U&#;-Bo zyn1aRec>_c-}WcRyy)del^?Bo8~?|g{9`QfF8<~F7(5fk9RB?**S`Y~=cnMFKkolH zwck6Vca9$WZ==7+#y|AwZr}B91^c8Q?%&7q^q+`*IlpUVE?4uP=j;4U^!axFKCP!O zK3VlPexpyuzU$#{pqKi=Z?T^E;IG4FeVpeMIc+WPBIrxcP`#DkG^a0rZL_$S`vu&; ze;?ZQufpYiS!~j0!(;!m)qiPDTU@5Yq3Zt?^r8Pi&pVq~f41sv{mr@S>8oExFZWOL z8)JgB{w27K|DF5yt3CfNRQq;6C3^pUbe}yM7wWfW;c|aOtoQint6vQE`Hen1t-nC^ z);^~>`WMja`xDdq_odzc^KiMJhW2^oaSIFm``RA=#cJQ~M@e(ye-8a~Lo@n^U$*aS zyZ%|Y%rAMq+ZJ9}2&XQyzEAmEg#8@*zM*sKlJiU9@_w8$8S@Kg?pXhVeCzcRcuC%A>-ppQx$>>rt5k3E zhcqXDp2Gim)_%h;uT)dp7uP=tPkL+nGUAa_l@p))zefGr`UU))<~23`fn`6^_%@;+ zVeNM|{SwvN{3zz=iN6@VydTErDYH+=*mwU$@PU?o_}2dB-}CP#wQv1P%jQ+8}-G9vSf0x>~ z^<(^Nn;F_F9jl_3`seoj`{me2{|G#MKZ`LZ+{+s2{~z{ce+OxH?sbu|;JxbK)_>9* z`wwGZ#>cLw&c*t*a9LmBH^!Xs*#G_N-^vG^I>Ga$t`OfE^kM#=O}|?8Ha>Okdg6Zw zy{zx@8)H`N$NnFLhxco6|Gu`DpNG}H&HotF`1i$~uZ4&6r7@>1rTneNzI=a(_LDJb zTK@oC=Evku>>oX2*+T4x@0-M&y24m(o%*-+jhItc8S6c++|H-RobnI9AOEudfjnW% z>FIa35BKk-^^7Gqru5i%J^XI;;r{(tPkiuI@NhnyF_oY1V}Ba^&z@KNw*P=V zS-$_u`DVDRZ}84P=DSx&RR0WIz7Lt^ExsyHei#13{si`U2QMgJO1}~=>kE`$($D@Q%1Xn<2Xuc@?z*aWEb-g; zIp)}cf2ICye9WFA^yEK$<#pAP50snUIc*ty_<_}uH#g1tho!e#xC z_?$CVKKboR>)ESx`(_C*d_NL?$3WZv=K9xFZ{u_4uE+ig^x^xS>`6-NZ-YzwiU$7p z5tViR@A1EbeL0^R^RxG{^syJ|ZMe)&WA5pL-->-XpUrRVS;Bs-zXdMmpPlEOUE2Q^ z^>6RD(ZgN;(r;Cho6*bqDE-eX74KCZ=l}bvXMfDj9Q|_iGCy@b|M)7U(ti_N-j88( z_PAr#!{g`wiQ2dKo6hM=$iH)ssg`^Um-aQ*$NWa@|84xalWVB`nBM^3Xy>otKMt;1 z%Kzu;-_CD4r!B&N|4XYSTh)JW?ccKT>#;BA^YJ|6i(q zTc39x>zAPq_lLme{!?1N6fW(9*H6j}^^^Fif7`Gx`A7Mne!_{Bv@jR>S-F)D=bqQh zg?@m`_&nA-XD;@=>h1eSuJ^LQTye=}aUbsgXUrTBtiK8#+DGPm@Hqef z#(r3Tcka)Z=kurfxA|GjdDhI8{!niBYoe+4|We~h`?Ur;?$ zKJmW;`{Dba+4$w?!}q(Glcx2H;PQSDpUf%o@9Af(UY`Cz#xL18bEz`$99tiBJ?+E# zgJ(R!TrEfSHoi-9^5-)A%l+VPpFSnlFNDkY<+aU`IV0TT!+%+|Z|}dD6UH3>m!iMX z=7;cgt4r(4Y5cZ6m5pD5K73z}IbT}8050E`Cw}kxlc?3c0k zf7$rO=)?Gz@|V_M1efs%?HgqxJ^naIBJ9qoUcRoCPKYd}Rd0j~#zK9?HdtyJw(zkNpf65taz!~2((D-eCNSZT#IuHAm zZGR)2@lUKj7cS+4-|+9_qw}Y|tNt6Qefz#mn&bZ*^x^veaPpV-SQI;0yw_t*Gr{Uyz5D?7mD{UY{bjxTt7jnC${&b@tr zpN@aIUx44>kF_ajU*V_0r`!4=Hsko<`$qQR=&?oo@Ke#t{ye zeb~R{_Q{`tGkd808SwD^8{%)az~YCKe+O#*So;}sY{5@KAKq{9TUviIT-KLq|KQYl z{QLZ?H}++JALSFDaN>v4Klae{+4p}bGjPfZobf|9)w6%SeKBPoPWgs2{^_dR?jKKc z#$P89pNy|u@8d7mp9q)t!`Q^XkH0?J(LntdsC^rsr8)jjKrj0rTu+@Ke%Bulm+$-W z8|jCW{%dOQq3Q3b>9_AMQ6}J&1vu$H4t@B36MCL`tna0I8~=NqaXtBaEP5Fq@LQ~3 zGyb=3@MGYTKmPnElRQ5-uc|VqoGd>!k@nzRDJ{qjt+85G~ee#d=!H>j$*dIiE?*Eb2Un@TX zUOSARgi|NTA2|Mp1^d`UpXP_7m+>c>n3w(b9o0{VhxH}6kAL8#f3&9G>SvlW{uu?A z`)l35>;GO@)D1oj`!YUu|IV=wKMWrB7h>PXPw4SKR?}CKzdruyKj?vOjIXAmm-(|l zpR|6w>TP`t`;;GIMUVX{=%xO7{IMSUli@P{qI|MGdG%sDUw2-eVS4`Zu#o;V#~0@_ zCo8w{1$w_<-1#KzOZh|3nyK4&J~grrkMB>%{zUZQ`+Lkk()tN-ncsW;a_;d@kK)6p zbLtQF$D^0?1Fm=ft{(^2`Kzs;t-E^@xL`g`ex$4jGga{IkAvG zCo3Pyx)o%{V1!_aI0WHz0n=Y03jh@<@-FO3GU~^Tt67Tq!o&A{Yfq@#&F4=%KlV?(sPTvWZ7I%PugjH(^HG7**Hb>||L1FbR=*h& zGiQKT&mE!sV&%5J31`d?@7Zjy@(a|yeZM=+SwA{o^`mtD1ZPfz{`zJ;y2A&MzN!;- z{=u9I`^+D(&t8fCa2a1QKZ*73|01<-_hZ5t|G0h9*AIQzU*~f=w~zn6a9RJP&M;>o z{rDpN_@Afgv-``_oV_T0&@VnLqbL4Y-y1IP&#>>$&+8}pg&M!T|BN~1k613<1*iPO zdtqPJN3hA9(9aLM{!n;p`#w9I@*DeKr1mX+F-K2)J<-ekdT7X#v_64{^K-Pxv|03} zluycEq1w0f!+rnG+uLvLPG56RiZiA|UsUb_<;&o*za0PQ;q;}>uT}lT45!b8Z{Ipx z_17r3`{B_$r+>hI58@Bsr(n$G-1P93K0Mt9zo-KO?!{=}Fg=Dh2>S<`3Z12|(g^xxinN_Y5;%KPg0 z2F{oaKIp__m3PH|SRZ1{lh!X+|Mvbb&3PAl2zr_SGd_X4efQr59=@;6n2`ASU($#E zR<&>A*EA=8I-{5QGkNA?&RBmiT;}(1@{ci_r;q%*Bc$IsV@2R?x3j|91XA&DnpqFM1jOx*q$nzGL9D z5A+Gd&;JrX`Za3b+SfE^|6T|5@_yL$#24$^!=?YhC;3O8LjI9H^6xQCzwIA`Gv|db z-g=4hN7cX0f76`3AnmZ<&F0T=+Lu`07B26%@z0zY|IDTFkA9unxA}d{e;#;kclOG( zK`;9kcBNk*^l+XZ_Wk*xZ;f8|U+^3DNgw{PkN;M1d4KQy1MNTm>+SzjYTxpo{=@Ir zfU{S>7+%K8U(6Yw@O)ZgKfM3onWptms{L;2Kh4qagFc)OfcyCj_rEt>#?Qo0n$Qsc zfbTx-PXDzT`#F|A$~>I%0cS7&GwR>;X-@iDU_X5S5Kftl_08e3{=jeehvWaIDxawT z=hS`=KygMc@yFb@29ir-%!2PKlIplJ^Qa3qnGs!enXFa{13e1Y4zU-F82qJC)8=; zCl=yI|F)*j>PO7)E&EP)_K!70AI?|A-1YCO-rf)Je6Y{+hoj#Uz3gw|H}u4hf9&JG z0X&Sq$ba9TMf~Ld$07eH-_AXK@DJd!KH}W>H{Dcawd(6*Kg|Cb6JbBre-z^P{EIpJ zxAM`4`9FHM-|bDap9kMz{kPkvFMIj8;_mF9`bO>B`$hUZPamB9PhV>M_I*pZ?++VY zdxP?=%B_Ed`~IjYzpqnX5C8IgKKftAL}~pO>fh|AIs4n{qL=gku6O(HzYcu9z29U^ zMEv|O@uUA*?c4fxnv;LE(a*KT6~`=_pLvqt&% z>c1raW6u7mn%I~8;hFpM!@uimz{}eCO2$;NfAl|LU)E31z_HKsy{!Ku-Qm^Ihw}?* zef~vtlV4PC``==Y9$pQ-tPl8@DE1Gp3J?4DDATmb{I9oP<#heW)_18haLO{A^FRM; z{#gG)or6;s;heAf6P{!9E81K*Z7H1dUw^3H`iC^9M{tT-FEp4ga+H z_&@o^+UkFY+PCo;ZHAvOgX6yvdRbp}J#Bid{|CM7|Dt`vzVjAW)>Qiy(TDyC`*8l( z{a1i5u@bLY3$`5@O<%jrKf2oH3 z9GibSr>;1!49~UqC)9cL&N=^8A?S&j^ux(N^ql|N4gcYOhFITnU4;VlmDK)J?Z46- zeOdIU+x`G`6U6W5uj(9JM$=an`{Ddm%=5p6mlAscyt+(_+r~vs&<+v1*?-mo}BQ2K(^;o)Q0Yza;*% z>FcQ8`WN)rcRl(0FZwXQLyvvpf9$UEYX2YjHakB?{C++QPW*Y;m-SOLF|RbOobtcX z|2t9JN9?EdJA!@BKiV{Gp(py0ovr4bAD}4^>6dfn9n=CYytc)?92Sq<4f!R zg#T^xW1io#73Lp3{u^ul+5Fg_Kl%4gyIkdepqKLr9)GOo{8v-e+xrih1Z&eDy~Q3$A~! zcJeKH8DFF4x9jA$SpPLV?EiNE{IADlcxIPoL|#YxZ+^IRBq6|4ZasxOb?1Ti=g4`Cne{ zmzoIAwe#!F>3`tdRn$+p%@3TDzi{rKOVqy2-(ybsXMEE`^)~)VbH++ri9fvGfcyPy zuKz6JjH#Tv|K95V5S_oooM*-TX}#3Hr7z8i?^EoD_wR7Of6n!vz-9e~G&gPBHN)M1 zU$t-NL(&}oAETG=2e{tv&vX4p@G$aq3GrO z5#vkraMxr11N1V#=C@cseS2s1|2{mNPbGfFWW*0A{t?*M`#0O`n8^9q)dwqo4}C2g zzh=gCl0MgOfy??cF_V9cNy$I-l<(1M-^OP#pL)Xq%HKsV;|KJ_ho1Oc{|-E?A2KH9 z`H>eqKkCOgwQuj|Voq71e7ucb_Wx5pe9Ru}CxrB;IeMPYTj<02X`UH2WBr?OS-(Ti zn2j+Z{Uh;F|7WXxE8j6E{oHSJ0zB-mrq6dhocnVQhs*s8tBP*_W}5g_~E2~&!zin z{Ku+&+n>ysD(2h;c9h0%^IyhvaK<9&N#Cp3m-7SIN6(nk?V~?N^>%*F$BeFrzk+_A ztslhta_@C4fWI7Z;%7{WeK`4lJoaUL&Tlb4=;IE`UqUbUbK(>GY5j|E*}w1Q!|(q= z&+|V;t*`HlEv|L~{bq5mLHsq@6=_4g9ZAKO1e znTJ!C;M_lWp>oTA+AKJ28Jznc&(rwq{Vr`LoVMEexvIDI4et}Yec}GbO~fbX!}-nI zboAwKJwok21%Gn9^4P!g3)H^7---RhvHv9caDEEC-w(Oss>9X(M!3BH#wY2g&mjG9 z(mzk_+x`IB9KYWY&i#*b;bm<9cFgx&J6(A(_QU!D{?U_vt}lY?{rKkJ?{`Fx{{`63 z8L#~Z_TjXZ&NrZ6GF{tG;&=V~%MVk1Aw0aF=K0g+@%-Vm-`8pS4pTj4Hs*`u{=qBN z{}|=8S#ZiK`r*IjCyOGEe>nLE=YGfa_?PiDzs34N|4mW-73$yiFQ+;BC(z6DbG_c_ zCjMQ&4legM5EJpkN#7A)PA(w+C2HT+4``EO&i##xHGb36Cc>#p=t*q84oU>`kg zs@q3@t?KRkmbbaChd+j1=0E%v>pLDZxd8qsT)tliCw{-*5l;NeuwQ1Pwm&hyrf`z- zN6^dt_ijI}e;6+7ceI~8f7&$SN6+)WDa7xbHjA_lSUN%Zjq2a_$Dw!r*$KwiVn5t( zPn+)C^=sgMf1mK!e>1rs@>cAJ?|0HB#{3Jp-|-fW&(7z>yiL)>0{BDNm-GLmiTp|H z9}Mx4CgP(_wai!{Q|F3h`!yiB&)*pyJ z_7A@w9`4T|PZ{46AM;D*Uz;_5to@}R4{ZLMpWF+V_jf$s zm@^lA>$SY(9@X3YEX^5z-bZ}l`v!34%-C}M{~~_MgYz@o{okkdr>Orl$N#-4J#%*K zyZ#<{SYIUl#1yB0y{6CB-(!xiKMu=J9#;Q0zogAYPg@V)|J%IeA$Yjom_7qeUj!$< zyYU~!=jiEEV*Ogx+xuznb6k)8Rp@1W&2O=O^D^^)7hK*yz=>b`RC&H|;(uJ@AEBH! zA5Q-PZ`U?Ic})GA9{X_ObABiG<^3+d#rjdBOn(Pl)=%L0r%xk);rM?7`|^GdpD}-I zPva}m%l>M&kDmW^{q6AZ{sawq3itB+q^8g24`|@nf|I@?O`pyGNfVsB^764F_@~UE zC(mR3M%CN zrA>4_{PdUVCvU*R{V4Q_aN1J%5%cROFRR|>$Mnf?`fB*rkMon4RBz|QDL-(^m-Cy5 zU*^aB7VFC{nWy?2;j(@J$3J5N{KN78s@gY>9*%$b^j`Io8_>)9XMT(I2e&i*>l**? ztQ`II=w_HAuE(dG~z?JMc~Mf1n*H=@kLsSEIDPOG2%sNCu|bq-El zg`ZHpe)5BI*1y|pos2o{!)5s2&DO`zGp3343*mBpkKgc*Ciefc+PC}Z)13NyDSGK& zT~AE0{t|e&ACvT>iPQf(_H*p~7j+WOvmkww9<87J7SfN+G^hS9zI zslWV&o;Jhd!~Vr^`F=8-_-QkoQ-1zc`?miVeatK7G)OKA_R(b1UkD#%?ZR8F*Rc_WiJ!^R60x0sdutgH1Slp7`7Kc{NF zX+P1QgI>!B1lME#bol3X zzO2!X3L7SF>6jGuW39A8!M0P+N^(vhf9(BZn%{f%smW)WfA)Sm&0nb3Gr3E-y`Rp; z&w+>UFUGw1^6lNxcZuxRt@CFg@ln3u{M{6uWA9JDZndBC4`1w9ys2Ra`$Klg_tyA^DtG%0%XTc@_SZ=D-$L~RO7YKz zbSyq`YZv7+@h|V^|BtV;j?=2#+AxgAz*aDh-Q9{v%nY0EZUkFt7_cxg!S2KsyFIp2 zVk?RsMMaN+U}1Nle(PFm-!sqbdFT6Ye(yE+TI-4Z?58*WOX;iNwtjxlSG$*tZ#TE! zwQ|)drTNazJ5}yFv^3wz+t4ozoK4#1bX{EP+I@e=kIWMzW*S7etCX)ekZv7%;QTr zvA_pAx9^`@`KO$+hWE%hK2!e8{(m@c?>x>Qr@Va1inGzTfj5Zt3GvfL?l$+%wN`PS z!R`Ko)V_G*-?Qv6(r4e_E5)&YDBRx9(y0B!Kl*lVzck-;L6#kY-u5@vr#~2;umATj zo3c;((RcUsw{d;S@7eor=Utq4s-#U%Io}6C-`V5qP?Fz!ah4r~e_LOuPk$iX=4Xf> zn~D$r=)1Z7E+zS+BeU!P^mac*efr_>{QIQX#6JH^`qA%iyv)Y`)E|C>Q&!ZUzq@2v zA5VX@PbsG@gZK9MO7oE`XW3Bv+xL}e-%9C+z~}dN|7sukU;LvV;QqVSYCqw$h4B9F zzjH~x*3GT6!PvL{GwpL~U;06Cn;%TuPyQGG=m)v|J|%ghty*UT(cAr<_2~z|ZT^Gy z1)JnA|I71>{xDBpS8pFvPFn~+*m);!e^X9d3qQc)Yg?;*rmcs+_*G>#+-~Z+@*n+3?A!k7^!)?pT>&5A{!8;#{mZkS z*thlL`t&{Ew!c4pKk>i#M?cp6cdGS%g7Yqdk8%IqOY(i+Y?XD#zTIz_zTZ-PH@MA@ zr0+NW7yszTyZy)?z5m4DAKxnLir(6<`t)7kW8(YP*ra~*zr4TDALsUCe_ts++0)PY znC2dn^ygi@`z-WF!yCl@Q1#z;8 zcjD)N@qet_&q{Lqcg*eAr|$r__Z$AzXXby&AN1{vms$Iu_=q{>CwTtE{z76B#}@jw z*k3R1FG#uUw}D&#MmEV`jZb+0PWSY+tHo*m86VL8otx(`bwYh^acrI8@kRYC#ZPtK z&7Y4Jt&Xff!}EQ^2haH58Sz>Ds?YxEuJ2ecZ;jsO=cx0tpT<`SKWuMr-{dppXSw}B z_3~-X`_;=Uuy6Z=X&;|oYrdx`wO(P^a{KGQQ&Z zXm0+??it|igT`E`{$ke;uEkZ>v_H+z+xT9;VL#P3g+F>gt@2Id-y8nOaBu%f6Z$m$ zSGxb6wYbWP_tO<{+y5w=Y5nB=u_yNb99*mXQ~mC6JO8iWivF*5|NUxll{N40UD4b9 z#`>+O-x+TGx3v7z=l6QI-=!9({*7Pwo6VnP*>#@2?zK4mr`d;mS3&=2N9^1EN%{@{ zseb$1zkY+K{%>*rG5?QG@vUe6t8!E8AK&CW)(^z#e@?$=c?JE?ZLx3n7x3F;`>m*- z;riZn_)a#zNB?+h^vAaI{x!c9^;^R2{yO3(CUNFxX#Z~W{E7Y5CwE)fIkAXuj^6eM z@LQ_qe;J=_3b*|QJU@(&Xp__Yc?SDs@qE(%fvc=3|A(D-bv=C!cv}A-bRP2;yr1EE zR(O8y^Z0AtUvS=EdOq)kH>?@IitGKniN&w^8Q#z0(r*m6^y&T2GoSi@!0mUa!_gDp zM(C}7U7!BnaNA#mP127hP5(n~zjqzZyN32@L-aO(Sf73axUDZ>ll(`M=Ktf^xBG+O z^bg@`3uqr7bN@B-6XLXw@b$6(U3tCw_2Bk>d2HezP3nK9`|skMK093RN7|pK+<&V& zoVE_$1pBuC5&Na|jo~)F#3ugHr2gl+{}?~eCx@#oqkWv?{@c4g<-AMb>tf&L=dqu1 z-i7dW;P(E-CjR*?^*_(;x30s{^L(t0-qug+)2{`${x>#x{?Me)-vUox=A7{-Tx}Wc z<9z2aeq($HS6fK?_>%Lm&zKROzF%JS_@n(!Iq!1bziSeoov$OllAE8 zSKNLNZ@*KHp7>TrfA*j{TMQ{82>(e)a+x|Ih zlK*JZ{D0r`FZLfZrz5WS!&}Z{e;o4@@bvxgrpFiSJEiz4_|MmGh`*>`8E*Y+Y~r7H z4)MwVyY4?Y^Dp9hzr5rAYvxzPd4KW#Sqb}geh2%d^ee)xeZwdI(WL(0bNg-UaQyTB z{1h9R266kN!(3{a@&9{87{&{Pw-G z&@YGE{bj`8e)`@%epCE6%@~{gg?;}%W)0U^5x(5h7wbpT!$}|fXXkM~Fy-w=T|E>2 zT|K<4!^*SZ-#U-`{Zjq-ceix@C-M9KX#0LjKBmS$`hG3OW`Dq~{o%Kiy+>?+nr?fV17{P)|zlcK>I`)bUl%=k&CCbB8IyfW{3GLh zY$<&c^!|O@=5wi2#D{``CH`ZKY{1vhkrEq zr>({R#%@2_k5YUwdK;fBer%@tkKy_GbJCQipR{h~>5uY-(s0`yM<$pUyL*=R?o;*4VfG-}ry+`pe7peC|H?#d7qE zNT2mT;idF@dj7@ya>~cNe1q$EaURcK%CEiVpmOT!j-I}{`u)yqP)_~d!S&I8rFuBe z&%4Bz=YNr-e+O>!bHqP;`Zulg{LBB&Za>p7sBm)1YEztmHyq_ zew1&@m-oK3oM-J#)2saTTdLo~^-(@WPFcNyezk~S<(KLg!1MWSxax<>zZv%P{VORy zfBt3_)Zcxb$NN9!A2k101@*J3^LRc|e#e}sKd<87zJEvl@SFTg{|bC@+)tq2h+qC+ zg4_K@==B?1@wfE+iTU}IANcv66+EjgoQMA+r!9EV?5qD!$G2e^Yo)X`MnjY_3#Hb z9Fui%eLL5~KRhaL zXYXG)zbXI8KWz2#{OMTDm-UGJ;av^y?(x^?)xL<&!oSTQ%YLdSFM4|V`qj&4qPO`2 z>9J4z*hl{qe2pQ_8-KH2t@!!hK5oB5Nlq+JqPO!s*e|7j0&e3EIQ5e3M(OPx|JxcTV|XQ~5{v zjr8<||5n}it;K2U4tM{Nzi{#lJ!J_$%=MAKMZVX?W3&5+uhAg)U*zcTh1>c#@zZ}J zKK`cs;3M4sz-o?vIDIMjJ?L$J7{3uys^|T6H{9+Igp+<^B7S_4{?SSNrTAUw^YVk^ zGu7V-9~;jHZHC$pweM%U{V1Q5Kl0=T6~sE()7Q)6OS#_l6P@p0hhI3Wk@tV9+f3=_Tf2`Y&`YS#Ei=OuP7WB5h&u{dvh>5?Yp8>c1Z_>aiKjr_)Zht@>e%)&g zDtMMpg4_O-qQ2$RFM9v&M0kVRdj41ZX8c?KtCXJi&yB{*Z2msMfbnNHtGhFSb^jE{Je~*3TNm_nqVc)(Vl5+l5{#=FLzCV+4>1k`P zApTF|`N5~&FM572^!VfXO!-gqcJTi31@1rI|Kj)(KOb)Qi||{@)z`e7`11CJnAQGE ze;GWlKjOp>r!BmM_-*`+eQc_IR{WQH{L#Ni`Os|d3fi(uJpO2(#j!>I8GbSTZT>)M zl6~nfbNho!a@yL9(A)T_KK+I8y#Invwa<$G$|U|$`~vhg{!e2jf22PjZtElbR%-sM z(KyN{*6&hITgv<4gt5l$`6%keeQe?ckz z^cf?wbKo{VAfNn3{42LDpVj*CQQ587FN^av#FTREpN)QpxE~h2-K^UBvr5Fz{3iLo z?`fm5yWD=9Z%We#e}9{i*`1!gSRYII!X;AxJ_9A@k&~8(;Q9KMII(`cuq?_F`*y#o z%Df`0$shEm!t?v}(5D>#kGlP+-{P{5{uK0fzmx2*e?*Oa^i$v!ZRAw??&Fa(-_zLTc$xg<9e*b-{KW4-YuAk-l z*xz5|1DlM^PC{?}qhkGgsQgaXp9r`412{Hm6BK{dE@QHJp1vqQaq_A~<$1H7*nqsY`u%I1r~aRH|CQBzVdsc%*k99T5#Mp> zZT+o2{qwGm^8=}U^u#|Iz2y%+yKZ^qEZL|0uzxJv@`v`9GU?iQl;;oSzv1_zv-gwy zfz#$-Ym*0i&wBZi(b-$hqy0+x$HRut`fc>+YysT9|E)S9eU&|Hw0WeJ zXBmDB@!9-yefrm2AMLaJOHWxJjo$A6<2T9#`@}E*N5OxN=L1fg09X8Pc>FbbarETn zk?8IDMMIv8OaG?pdza+sC!x3gtMs?uTigFcxXrJSe#%T-`TwrlkM=F)ZMPUW>+w@< z{x*rf$SI#H>|6hd{DEKpa`=~i0^Isf_&@7`6P)wE^8cROkM*@8$NzZrHh(1jz>lMR zr5^{k=Y#t9T92da)W6T&e#goqZ2t#&uKL;Z!Hs8O>l3)$FApc?Ax*=+_(#sWJICkJ z9;1AHU3@J5?~M0fs_(Skwr+p1`;Yop%hlHXWx7J2A1TsZ--*v z>L)Rw$0zosKLl>$JNzHnW<;df{#X8ga{sZv6;7J4wMyAO9^b*}ZU26K`d?h%#`7n& zkDmAsLT}#(M8D?Yece8JE&m6?t^KF}O`qq+Cu4n^{@EYzjLtfH|Gb6ki=4993Er^0 zn$xGF{>)vv=S=t-u8;N!z4(GRN6(~xu{=*d8o2r&f35d}^8<+QqUgWVCr|bFKRYs8 z$?eDa{gmIjVDe0Ct>8S`r<5=I^wgR3l^VbsME?`s_oos5e0E%Vrt{(WxA7TeT1sE$ z`e?tzd6v-A7aWG(_V@7{eLC!uR{7r_Zs%vjPu?W@Uy6T4w;%6!^y27A-%#}S{9uzl zv$*s_a!&m4xr4$!`A`0>>h`02$n$Te)aH$xNB*we`b+1;D*a&W=kJG9|M44DZhsK` zjRBs%)Ia>)>qlm*yZvaN&?`Rif#_}gqx6ZBKJ)|N*8iq{Q-9X7-}qnEzm2hP^W!{I za5V7aCcHh9wqjlPAMX#^y#$Z$@9_wB`NrZ}a!!r)?4Ki}d~AHvfXn z)c;$;;j4G>`b+w;Ni0hL_SkPY z(9@UlIjx@Y_H{eB)lb^=BBy?L!T$a&t9kPi!@l&L;dXw2{3m}>|Gl0bmF?*E<9vV0 z$viVt z!~2W2c6aB|KP&RVi$-J}h|l)_OV9fy)whQq(ZTC4Z8{pBAME3QFSlQs_gZ0O)(*Yh z4}?whYX7Bg3(xQWqfJL6`=r06+wbA}BB!n1&v|!mABvo|vYGQ}KZ|@$>ycR-{GT5E zOSs-2#D_kE+x~yzr_Dv9`0(Gt?Z^4`B7bD$$gDN`{QNsy?Kk$(SHkW50Qpawk4E`V z`peyZ+|O6!2c9|f zYTvMrzB%0HPw>w(i-!M||4wedvLrwBfl=9h==1)o+RRkn3~u}X=|9rvq)iZ~|9A-Y z?S981XD4_h{H}-9O&-oDg>~P9b`n}+`K7oIDlZnCQe_-N2<><-(J<;3! z1?We<*x2>>l70`k^=~LYVj@rQul*gvJ^$kTOv)#`ap_EA8R|UlXG!^%``_sKzdQD= z{@@>e{k9Rm^uy3M2u{p!;uGHuz1@GoZ>b*p_}>+7>wCnHe&>TjulNsi`@Nl$W;n6H zFTQv+b~N>)Yb0AJT6N zxA_(PljmsoU-_Tl_J@?@)P-%(+xn~Ytly{lt>O9kH1d=-ll-In_}|G%`ih)bj&|PJ z^RLLstD~I9{S-w$<5TN@;@{psbcw4>~!bRf03U42XpQHHyWFr=Kf>+T;!}zY(o0-^EGhh;x-D+$$)&0l#I@QC8ZzJs6{aCWkoIm!Z|2N#m5B#?2kvIC9 zKJdck)Ws#HCb@6Zg zA93acQ~f&de0@3f&s-+@Yq8%j)*n;OTs~>N+WAl~-;}dfKv}Mh{e1jSnJfL$U*qvd z{uMd;wb0xB6XY+PH3RZj`ZeM9eLd1dp2PWH#ecoqkMU!X6aO0M^YwQ)`J3ujhui)C zl;7H0UF3O!uLmC=eze;@y}pR`Hj@6`1td;9q$ z_HF(QP0H~_`+C3gm>*3!Z2|lqcs{=>PX5vs!SD9?V|}(1Uzzx9{y_e{O-=MG!EOH% zHt&4w4sX-c)?oiWw_iVB5q)02(9>q6`hUUg{s#R2aMg@zuJk|V>5uj|<+Mfkf7p3z ze?C%9TLOQ`0^r0`s|H8hF55#%rr~2h^J0HMrsehhj%4cqFzdrsadb|Hv zoM)2wrT-)6^j~=9==1Zx>c712_A~F_6gh3d%kYLReS8XMOo*Pb9Q+06kv=%>JDjy1 z`15)Eq`$~%3w|d)>%WP!rl0D6gIoWSJ}qq${`p_|f64vF{0baB{FF=gbN|1h&*xu= zDb+u>-zv1bN{y%#0=k{J@*3bcCve#T6 z;~O|*Ui6H0;XmWw`XBUJOX**CeT-jIj-L2`LT~f?=>Ix(SGQ09TK<28FYM^?!+Wnh z#{1uj|4r;$`$+o7ezLi9Y{8#7&dwL3xATGUQu>9ikNtD#+21KW`SU$`>;EV|`6oW? ze+ReuN9>a(@}Kz0e{8+$_JgBgOp7h?Z_!)%meS+vy@DS5(!;+&Z|hh5milKb4*wc% z{a@_&`0hl{bLtmo1$aLHz`lLI8cv%)nTWI3@iVx+zerQcDa&i8jLklBeasJ0f2D`7 z^!k|WEBxp81ES}d!u~Edw08Xxx8KE|kCdPBRkv9!j<)lWZa?Oiik!A+8TM^{f;tJu zC-$ZP5^m>@iGR_g!Or<#`TsPxUy9@Zi`>5W5lijNYNG!fZtKhBA3jMxoctyKesud$ z|B9Tws^59~WBx1U)Wzffw(@g*Z!g~>Czh{VALHMYQ`gCh&xmhi7uS|g@ee|Eg z?S2F54|+K9%m24-KjtS=j(zk?(cj&_+CI;O>=XYIxV<0ApB+xz)1Mi9kw2vW2Txz? zk{taf==1pj^gNTPela|sKRx}hZXOfebGq?!1o{{U|5!}#a>q;jOyFPo_u1e(&4?l&ES8P{*|zA`;*{TF0b@Fr!2%* zbpJ8`QHsBdecN9kJ#{A4zXLySh?h_5pSnQ)t>X3v*UR5Ve`M=wPMsir=@-In{EUC* zY|{G?u)i$Nzxw!v@P^U;px64~J!kGy!Ml2x>!W=va^~W9aeb`+r@YDh)5@6(+tT&1 z|EkDYt6AT9tdAEtYhjH`=;^;=pS8Sooge7^W9h|ND}0Om`S6fxuJuLf-^}w54SKCF zo-uz)IsVsk`?3G9$XP4=FM2z_D81GfrGEo%_lMCZMX&Y6_Sa4>C;gkb{TLq=IcsSf zJ0I@jk0NI+ZzJb1{x5RY3SY;+jsF=_z_q@JfAkCB`Tk0{))%+FacnvMH+B25KcdK4 zD|`*TjsKN?tuIRdD*Tw(pNwAXi^Fa{%+tSx+mHP_Mb28`eDpJG@=xoF(!TEX|yxBIvGE!A&$`9J0Gd2suF0G#;se8GvoncL5*^+oLE&bK$oBPyFPco-a80*UIh3{r4$v`S&vCEel-F&kNfxaXtt8`Thu=DcMKwdzs)i z{v>@Vm;Vavm&N{d;+GzdeinLr|4NU4(yI7o!fkzCzmaGBP5q+&JO$79zf=Es{=}(& zz3|^K*7wEn)&JHFy?%D~_$vJQp-!WRlYZ)Y2hX3%TAaLY-0=hF?VY!-=6e1f8}z#K zCyCGcm$VN&lWHH(v%lyGxb5#ux%{)&r<2={{R`-^FaPkzbNed)G=A(q2Dkm`v_GU@ z`-hbN?%22ci;A51c|Ui9m&N=K`6E4?wa`bgpYK1$zS@V$+stzPBXH}#(Pr?Q^zz@+ z?RPK9*&p>VdOP1HJwC}R=^x5DzY&x6*HJ&v_w)RV_8Cr|kXIubZRNbL`|sfSU*znM z`w#ZV#QZFr_*4CZ@bR%eLYb!i(GPO_u|JeLm2&n64usqHqgCeOzx}my1^fZ*=j$`o z&s<*r;rGLB{Zn;9`}fe}e~70)+Bf2Z_W-`zOxxBmMrakNI8IS?RHV zFZ%rXSDPU{_V0n){fO#cYW;lsU-t0+<1wE8=pXa`5vQ*B`gwtC{g%4M`t1?$vRJ=I zpK{hJ4|N{7nZG%1=m*fBN zLVPJ_E%r|I`S%adYyDRGJK*{FAFlP=!_HdM(?2qgU-_GI)^Be|Z|B>^wSFu8ZSZ{l zhBNcU{GX8I4>6^jwfwQpYu^7UXRpDn*k3v3=g=$v9y;=ta`fX}KhX2H$jOUa(A)T* z{D*7*g7h=s`S_psm48dyP51h9q}z}2Gigpa`v)dDkNq)4PF~%NeS1DAU%2)!U?2TW zaC<+IzxY@F-uuM)?*C}FAM*o6j{ZjU8^ruFT>BTKzX3jCU$@Vhf90>9pVP2!`}^?^ zSN^PU+4p`H{UrC_+~db)%GrN&yz`j9B26i0FVpq-Un$0y=t)2C3hbjl5xw0%LjH(T zR_ndA*!gwn?ffIZVZW%q7M|}PAb#>hdgd~xxc!(Pfzu}7tLfznJbl-oxA|eEKh-mr zd8+I4@0;ZIrH4;PZ}X#yzo@?&ZqEmtI#m zjUHbFj`TlMC9B9(?-{9%*d$Q+UyN@_lg{_|Uo^1-`?tFPs2@en zS=zI(-+8#(hZ8^crJn}3_5akr>L32^aQ~$_u}np8<99UFiM0NqzsvP;KS7Zb-BgU;i82zvUgXiq|9HR5gxmTD?-V%i zAIjpa|Fm&_683F>fw=6W=Pc%I*T?#}>`Mru>Tf6X3SLUhfQ@4^{lndH&RJ zY-0bCeGl{cHP3m>5Ae<-O~hI?q?hyKvEMSr_q;QU`e)JG`FOokQ_fodap4>UQ& z`K#_f>Mze!%Gt{`-+7#mEOPde9gY9|{Q;*=%0Bv|;IG8^nfTz;^*e5v?EV+H{b=8c z9Q~2#_lx!oPX49(NpKtgkUpM?H2uW)b{;>RXDa2~U+^Y8-`~hPnKm8!1ltf(C7OT@sEA-XNSknar+bC_I*S&#IO4a;Kcu~#~&(U1)zN?K`Z&K?zo@AtjA zUp+tn0B1}^TQuptlbo;Q_pitJtjO7`@sH60G&2g7ati}5G- zvuS^m;{OBtWifunX3E(M@vEmV^YIg$HC61td-P5f@PqRB<+G^&-R;NtiZNHp*(-7& z`a|~g@t4MA%3tgs0Jr-;6+dZ`fA&Hw_xy?dJ){p#{+|2xCKc?(7>?f7x9ZdX?fRI1 z(*1SPV}BTW+dr9>nfzmaf4H5`)%%_FseVy^R>QN_f1LC~;MTrLqy2l-Z|tw=^*hct&}T?F`}YQ;xAC3y+P^3LAh@;f;Fa0UXp>tzdYt=;MzYU{Q$VVe^ln$zeIfK*Kzx?KaV<o?C#s%L*vznsfIdZi!#jop6iPg0$heRyB=wtrA{GS%b1 z4?N#r!JUNs#{b?tIP!l(?A!ix$`_7JVp-6!xtGrdp8hD`B0t>ra`eXjTKiY)wLeJu zUU18Qm09W^{YGv-_J2_(DQ7QCPxOz+`5`#*DSq@l;A=+vLYt=gN&Q2=soRhJA1UYg zA^*Fhzb4NAQD!_dJPXoqiQe9?%5yZ7&+kVJaQj=h{nDJhLfx?ce0-lvbt2Vwh3D)4 z)Vb6@`mNo5%)b>md!f3ZxBOL|AwI>AzBAnB2Pj|egw*~iJ-@qn`r`S9lV_xL#lGGB z`Q8!UpoWv@l;xw}wQ|0L#~1tC&=+~9Jbm)7{YBDugxmVR>Ri$P&TfBTy}SeZsd0Xl zI*0!>{`T-|Vt$`GUrhfVp8oj$GMqdkFSoyWh^KFN_aEh3inqhQ&3~v)5`U_1n{$%?tXJb3Ujw@#p*J(er+yuP1#aymjo4V9c!a z5g+;rk3Y@_z;%9S(er0JFL(dZe=l;*?^Iy_hf42X!ikUmWwjnYGv+TC^QHdLw|4(A ze+b7v{p+7ky`Tc#3cc-*z-Cd;`J^_kkM-A-qldRdUmp7t=)b4_;Vs~Hzar&Nn?|0H ze_LF0ftO!L>|6g+oHC)TmiL+Jyo2XY-2a3=<(x%mj(r>dOHcch>i2`&_?6%2Go=2} zcXsoFTTH5&b#^e7_Re~yMA-M^8tDK zRcBMqS*AVlZ|fW4ieLIY;Q9SbJd>$^^n-KzJ>pyVnEcrX2K?mzCgD#f?OzTN+aPdM>Y z*QMVEzG6SG|FkJZ{}bGP-+KAhdHS%4Uhygawu0OEpY-!g74!cn>^ErXoM!?~tg4?! zy8oEJD#f?Netv%~T<0I9-y-*qP5i@&^@+W1_xwA??Z^JXQhamtHh(O=@<;m3;P!st z`#^m2kvTQ&>-%@lc>1<*&i5PO+!fCK;CvtNVfP>3?X(|LSfD)rCzFP>^N zK06I=-`6bK=lf>2-aaln)%7jwaK3*5--P(AeXLKvG2F)ga5UqtkNlJWGu(dUUn#y3 zdfOk0o|uaIf5Yv37hEt8zUEnmF&g1)A zDd+n`@YT&e{tP&p;a^Uum48>b{r&6ZtD^rszK@E{qP|hWDU^CN`HHjKX8@*82i2*_HTsS`5V&5_eWAr`QP9?+9$rR zk#fradgt-|KE+4*V4wI_viQnue+l-{tNh{U{{^2H-+#qFzoF-U@m~hF^Wo@;pWop8 zFY({v>5KXYSN`s2-)e!+a30Tp%HO&6n^y3Ki>q@{441r|I+g3`M%ff$M+%Ow3(!zZ(YFeNzxCeO@Z^R4*1>9qyDDl zbBBGa1isw-m)ZJ1{`sw_{{x58^+sUwl6<<+R@qczp5v zmEymWKi0n{KE9t()c*pv@ev&VYM=RE{6FOOqyDBGU+|yN+xVqE{ZDY){|{ID&)?J~ z-oG^xtAXe?P1JPyK%bxA6(Tsr^p* zJWpSIf3Xz*8ojNLp;7yr>c4_ditjHK`(IZqIVL;2%IdG3Kj4{4Ipq&;3b*y4Qk?I1 z_nCmcz0ZH8dhVKqZwfE#;GFw8sNeMeI3GP=?u6_sPhX7RQqEl}YwSHC`=94;&HWwH zbAQC+yN}P_aDA-rrh4uVfxiZ~?}yXB7N@Vu{UPvI-F~b;7WtDqj?b2nfBE`OLn*T&NB=4O-njpX`#)qK|LEU!`!T*M z@_B2F&z7RM`#UI;B1gX@=cJ$eKd{gLl795>yZxBoDe`Am9-n=JJ|F)SIr_!$e13)d zv-pj)s{SqY{LAZ)ancOut|IE^VtD@j74(!D@o|3_{9}(V=5LC;+xEuspRfPJsZ*)` zBe;$K`Hec8`bWPcw_l21zrlp;L-aQO7biZ&kNyMrN^w4tI-8~+{TH78n)|mX6ZG7r z1pnOq$NUiblyB0&o?q;rHPGu1T=7f)KHTmPBtGg~>L2~G+-04;~V1hE8PD={iLpP ze+%{Rd*?AfUgVemF)n+T`0V}1oKKOXe+QoLzrsHn;*n~aRkl06$&s4tRn|u2Or+icWoA8r& z@bcmQ9rBN~kpINDqL)vUUy+m6zwzI2sL#KpoVzgKe|dayKW>qieKs!pFaE9n!~9*5 zqkjW_d4W}_lp<#s2St4`PjGj7kLIJPgDIXa65m2f65I1{4f5|ujcmqm*lHX8lSz4 z-r8^Ji7(Z^1h?-C!fA8Rq|bj7?A!Pg&NBliKH7)J&z_L2F54G`d=I7>4)=7!+HMU?eCwEZQ$u2>iQzb|FhV)^N-T=%%}Qi z;P!n1e#1W;|J<*K|Bc*#tgrCSrA?uI5TA!W|Gri!{U&+**hi0j>52bo^frFuH}u%Y zKllIPe=gkC--*9e|8;Nd+xb)Mr<`x$(ZAir^C$Xe$JqC|c<0Fe8e3ImTPJ!r?_6Tx zTTt+=Tp#`4B456CRW^tC^85ec^eIyPY!`@!kI zrTWLrX}g&0ba6!}z!JrPzn_%%%E=;NxQb z0{?L0<6BMmufV?Dzf1YUc_!g}>k8h|c?&OpIAsdwTT}4=!U@^L5__F%7 z{b8+tvDXW}Ype0uP`4l7pH4YzQ6D@oE*s)JzCT^$%%9#u`fYul_=_C<47km&!MXDa zP3nJ`#}`~{YW%O_yBWRBZxr?1k4F3lczlum)V}yl=99!mrpsq?s#Nec8K#hA6(@4x&iz7{r^Rd{(89WpCBgg+(JY7$^YSr{~{;-*P*xb zBhq6t)n5y@`|HTLg`{ey7EC#n7___P7;pD`K! zu|@jPSGoPz|61gf|CQ)%{+9UR#Fy%?fLr@U{bEePoIcODp5GI&-yr5^@d?KkyxWW8 zvtyixo-&7H3qHfvua1T{Y~}V-&i#b&%kgjb^P%CHDe5nS+x#^g|I``$qsRYb_ur!0 zKAgHF`CE}f2Y}9q_lsh zyZzYT&zKWV`EvgwS;Rrc{O`}jW(enQ-jO8W7crvGfWANLc&(ZIP& zmHe6NJnkoj;}g#Pz3_9fZ|h6=WXy`5_@qAzy`7IO#n&G_Av>p_$9}3m8=jxPAWw-O zTa+LAbKQQNUn%n0ttMn=p||~My4t*H~TOFX`KKZ^6e@Zmd8$S!vKgKO#G+}{hIN__o?IOmzw`la+| z!tMJH^3R%Q>i;sgzkfC7nSsmx>83C1dZ2TDE9$TC_y^VEil6kIhJU+XK8+ds-0urN z1^d>2;WzRZ|DONG$-isde!L&WDJx>3{H8mP{p&?e{!GEY?f;N{>PMi;_I+xbb4+3FNN(Gx%MorK=T-}UKlaDBWVsgu~3p7fuH{@G~%@sEA{b3ZZmPk`I_ zo&3Y6_8+MJ-Ik}n$XQFo{tV|m>*(2^0zV%6cK>F5`deKe{g>3g^v9vM{F7e$8{~g7 z+~!xrwZB2}-+}#x9qaJz?E6UcPme`!>+k5bKFZ(H9|J$MzjOM(%xR_l-_PBCoF7QJ zfB(z+$IpBE;(P#eTId-oz~6qZDtpZJaX&!H`Bv8-Pucj=^)Y`a&RCcBkMZyQxt=x= z&iEP5x4Pg*6TjUbL7P_8|FLXB_Mq!yel_Lj;YXp*=SOLOiC^t6{7AT!55F-cQJ)HR9XN|1NCZV_Yqx8g_>K}D|*hdeSp8T1JJ|F+%UwXbJ39o`*u%EZT zq=_~gz4Ct!_Ve?H;>5!9(dO?7*-X!$_&!m}`4$%ZshpF)aNbGi`IZ-a0{(4$%QHur z;h+CSzx?$H*?741uXtutF8{MVzMAJ3y`Eq6@2H>;&r`Y69K*thpTzmezsM*d1a8gBg~{8Q${#Q)0wb8f#h$JQwHcD_pb zn|oH((vO7O_#B%&f6RICeBz(+>06$@*x#RWVrBgND%|d8AZF%V&@&c>KeFb;?B#@0 zzu?qQ_|899Wh3x!<3D~&^?Yj={d`YftPdAC`XkWW`l0m9>EK`b!{Ijm;5XujlfIkn zTeZahhTD(%%OZbvkBQmq@P@H}7|xs(dcK7VKMeb}e+>J~sigLa|4_JnUq}9>m;X22 zf6O0fPE7G(|ByU={DyzcU*Mnk4~ERj%-(Sx z?FVH7SN%J0>xtPx*thjveoOUy3l{w%k3Y)4$k88&K0hAZNeV_Q@#Lu^M zsed24{g_`T%_%?dq>0%F9)H}wK%SE4m9I}&{FIqE@h|oGqkb@_oAUi;Ow5+R?R-0$l=FRO_)zT68|?K5 z|3&=}xV8VpO#V?Pu!SD~pSk_mACPjs#SI^f-sT_Vzo;JsxA_m=>9oo8N%&v(7i~3f zVzwdsi}L=nIBgC5?u)CkU)_I?T6#GB2il_V;I{t)`?T5Er!9vs{dhw5wey<(3!J{3 z`X2)`maS!|D`|av-Laa>C>hD`@yY$&Tpg-PW*gJkobRc`!Rkg z@~X|MvLBtt{dK&v(DVL5Px|^|f3tjj*X;97!am+$NNL}iN6=z+JEw&cMAJI;VQpIUcPOd;}cFS@J}|b%F3MY>zp!ylb3Mz zul_@P4J+$#_9}1t^Mq_U-0n}tzx4dA{m(s#&(?>HxcwOa6gmDoq0gT$IAxmZJHkI3 zY0-&f|P^k>jfk_8&XY?ZbKIh(-Dg-f5V}hkwNfr~Tc)?Z^4(A}9T=(cArj z*n|^P8h<6+#{c}rJB2(++yAZHe(aCnoern3fPdcqo5O8?1^SfZ3%*IBr%!^Oz6_lH za|QmB@6!`A_NCv<^>O|hJzV;(4JKyg=xuzm`03N2r!NCJKTlC$hto0RQZu>Zl>+WKAK`S=n&8l{i)@0|L#m|3$`{*9kDDeLS0D#+L-@j!3$v^3_ zzax5^zu-6e_lgfa_IH3ckM(QvoG}IV6@L%xm&N@D#FX-jwx5)BbspnWY^J=&vWZz2 zk1zB*e?`7M{%w4!G>PB3VDe1#+rjO8snW!lg#U%(zq{Ly@e}chFZ=XV=i8#U{*Ua7 zOTP_#RE+OPKY7CcqNn_Nx&7E54ku5ErQ^~woo|gkzyGhOpV`ySPq;pwFLCMNTjhGC zFZB=K5^m*3{h&_s%o88&1NH9!?A!g1aAHpRoYs@FLC&LmDN{JU&<|cTF&pSSo}VJ8 zecS^7`S+*cw27&Hb9i1p_(!Ao@V~#?kNs)ndCGgOFew}AJnB!8Q~sM_-^Ty=gcGyu zqu&&6=POiZXvFb9-0hd<)Spez+xTC4Y^M5+;dcMN@*j;j`G1JpkNQWQNckfpCuIl! zKb-R22>bc`0D5AUef0l^+x&w3qf!3j|1h^7_vcbSQcnHd5Pg3CCLEioegpU}1AKf! zozVUh&TrEeHknBMiurlYEQ)i!-1k!9-^M45Z^U`man}fAy=fj_jPE&rhn~J3cj2(s zc@*5{pU{gl7U6t2YhmLOz0S{xv)5s)`;YNgDZW1Gv;8~R=l&x6r~38aw*D{w+F!!| z;(wyskM%v`gY&=mf>$}ONuSown?19G^Cs9IAM5X&-%ItZl{bdl`wyFFQvdKHJ^iu1 zUy84bK3|`QYkvyyqhAN!xuuWq;Klqu(d}0{SN_n~=YFV(wpZaePhZ?mD9-qf`<>Ve zG1+K%DJnF_|`;k^;*eA{6=vRa1-+$$PGkEI%4EG=V z55!47>0_<`boU?YUq$YF4X}Swjh;M7^^M^6{^K|9CxfT{r@H-E-!F3fuY%sb|02Ei z$LRT88E*R@sJ}e_Y0lygIoUw4QIyF^fT9Y8TK2*`nx#)OZu>NsmCAt2h#J+N`FJ_Tm6%LrC<66 z@O*xYn6*9+$NyFCKiY3`>N=eGuk`ds`v)f`IQawrd!FTgzJHP5wEsZ{Ytg zdCmQrDJPci@o)1VN|W|iVITc>@PqRGi54Fk{BzeN{{Q3lqka)TochgOpsXc7=sfnH z6*>9$E%xnx8l@kfss0k_^U`}z7gyr_TD^>II^IQfg7w0w!)+GpiC z_7$I}CE>)c^HKCaDW6$xKlW$9(V*w9T=?hct^Xzash+(UpTYC*_wr7re?k9T{oh~R zeth3I<=h2D|M(qvS*4esIQ?(#qQcjIT_5}B#F-1?elhr~CF~PF_d~*8cKfmaL3(k{ z%Dv$Fn7J0wV{9oYqWBnVAICrga*6}0scK<3dmD0cA`uKjT?(~#>^dF+P?-NK*d~ocOz7OEG ze_g-fU-gHxwr^p-L3}?}chWIdf7|sje~VA-qvtL+^zWm${nz@f z=>I*ql@IarOpzv@57qxqJ^k_h3Gyf9oaOq^{m1;YxO{Qe@BKVJt!CAEL-G7vy^y0+#8ull|{eN)EL>&FA@Gh;qe7PSMp8EgE{Wq<{x$6`CeDpT{ z$0mB6k5u{n;`-KgIC{$W74$a0hEMLFE$Uy+Iq65k^UweC{^KlTBcC5?=J}&LGsQV8 zSq5)dmvcWNcSZc;@x}ais^@-2>gsa1o!`d4IBDhnNuGt5h%c|-JTr<<`oGw|z-|4XG@%h!{0%+*-Ai)pKabwV|MlsggIoJa`nZ2l_Q_xJZzb$E zi2E6yu=^e1#45gG?jL=Ta~H_7*w4T3R^-@!Cg<2p{d2z~`c>S1+%Hn(l;1q`Ha}3G z{%QCf@%&JK)c$b4EA?j`>^F@4ODQK-&LXerJnk1sIk9k7cnyy)z7JF6)aAMOUmEw{ zz;!=~^mE|$ekFdM8FBev+wI5xsUr8Y%INd?Z@BJXk$x6DUti*WS~$Lx{>E-U@~6m2 z|4j6DzX0V6r_56QQ*f*Qj44aa-`?)|7vpz0V*=_T-IJ z^)>UujLG4AD-piE^O(QEKKo+r*1ETVH>lCW8SC&ZQ}!xs>OA(ZOV3!5Z;`T> zWD~gEuc`ED|Bd*Qq(2|Oqu2f#@h9N<_*Fdhzq#9w^8rQ9UW~`le-Yzvxc0Xw{>R{7 z$M_Ad{T)jGHf}%0m*VuL`IanuDYkYVjUD{1vqu#KY9M}8(jOpq~8s_eV@4$NB3a>L*v?|0!}}xeL9mPpizBb4&Gi z!tMM!zwyk#)Al2C`)z7*>LTq6b-BXRU&FQki*NbD%UvJ)AF-cu_Hx~U|9t;HoIJz6 z^tZ!p{gC*`6XKJ9^sU`~&G&gzj<4I$+x&#|f7<@cRDUbn@}J*$X0b{7`Mx;qXIr-) z<7;u+PrkLwUZ-2o+xm#~q&d~McYSRxJm)@_#ej?gu7*@`U#T_SOFP zaQo5z@Jy$iy`o*=c7FSK~7Dw*D`@_IF8t zDcr^v;XL-g6ghi2F2VoU z8vEKGBK^g1%YSU5*ZvRrAM5txe#w+?edAc`|4quqC?$KOb)Mm&$+b|4{xP>Gos)6MFG8=1;Nv zizj81oX7aT$l1$r9`>8IsLns_50U;{xXo|MzxIE~|Iuzg_Mc%tGO~NGPmE45n{R639L0nuuf?@ri4Ht^7}Q`!RotUi){^6W?j*^Y7!(<`ng(!fk)QV$%6C#+U5nJJ;SyeIqLiTk&O!_Hs8{aF>bpA{JFLwK}e~vVX^DS!j0$8G7uWgg&32BhQQa6XE&yRpC0nrT8z! ze#2-#Q;vV~_XPB|zlnEl%fFY^(H{@D@eT1)emcK}eV*Uj+PAs(bS38gS3)xrwhaX3L)<5Sr-Wjql{bab^FDS14q4IyN+mHDt z^y27g>yJfm>$l_&?*wt_kAd6#0qKKlf2h)blczuKze@Rrm;X~vTYjVakNu6j6QmbE z8v8cCDF5R4M}HLD#^3lyul=9$Kf~=u{ie;={!{TI{~tYV{jIK#`DgUlCoj>%C!x3Y zk>67P#1EgC#7~~4^@p@n!SnO)ygxL5sr`eWd;Z1x9evIse;01|!|{HAvnD`Z@hxVa zh3A~d_fb>MTsr(ow;%mmaq<#QTl9$Yfo`8M3HHS~Yy2O#AM20ev^A_XaMt~P=h43u zr>$nKgTC?v(r@*L-xxDtKh;0z{^R^~k)t1v-p>C^uloh$e;ho&zmjj-!_)X5cKgvk zEOO!>i{8ek!~|zeBGr$9f8E^ud;VEWaK2?u{ym2M1`$78_XA)HJ{rCCKZw7S{t4ID zwy#)tmySYj^P~L6J5%=y$p1*Vtv`$F{P~6Ut#QhKuG^3MmC@^bIp2Dxt)1n(wqEJu zT`&UsZ%6yhJEf?fgT5@*CyE^X5$N;%`EZ>tm;b}zdHr>9R%sFfSy7M@{kaE72PW}wX zzOC=$AFlfirT;H_JO4(SQjQ+`!_eFK1wCa})b9_^_jki}KcnJbh<*D$Bz1oGF=L%$ z3(j4HL($v)$?#J8cU&LuAN0CEQuc?S&(D{ndeVpe!En2u0{fI%vHkzV^Dp9q>;6~1 zACIq(^86v@l(QB>TL0%f_V=fpwHWeh5dLj^jGjD|ed#}R|4~1R9Q{D_c0NFQ-H$8% z0C>k3ACqP{|Eu^HyZu<-DRScPkKXqGlRt3Q#8Q1fcz*tXJSYG7U%g+Ky8Rfxv!+z! zebMLlU!Z6GDAj-F`skk#bCLH!pO5d+>;78#?+v%}1K8yKPnl7d#s9#*-Jd3|`zgeK zP4b66kvMgYzRnMc9zAU z3i>xa;Wqv!ez?w0$^Z9mf2ecp>-?2?5A^na#Am9nBftP5Uj* zvqoNYLvQbQ?9-wKc(YmeUU_d`RO6Mw2NOZ0G^f0Vu*dV9a4 zAx%YnTe!`iE!yv#xzFA5`<(TDZj`f#q!#~S^80hfTFuSnh~Fkzll$EBDKFSeDHqt^6jzTpijNLDSF#~p4Pe4{ysVHy5|4U?oUb6lh%80Y(j zYQJfpX@7YZsNb#eU)HG(r>&wbY3{sDN#3B*n%RDEyMHIOfASU|&Or~~nfR>#l5%hV zbG{SY)~{E4bw_U>(MXT~@;ts${FW!z$y&Mpb|v*QjPHnj>z_3JbNf2>(eD7a^?h+P zJ3Y790&e3^o*%XU z(o_F?t^^_#)%{fCD1Pc8I+#(VmDRFWqtU)A2vH6eH{(SZG_`B5NJYV9Q5}%F#XRj8|WKq8f-1bk% zKhGciH~Amv_Pf>M9?Lcn-^S=|{^h#|;+ZMx2fMywE$*@8`i;BXP1{uTLuFubf=rJf0K^>q$#eO<1;&W6Ni85hKMem3de`Fk zQvNi?exARj^hdb9XTAD$(cAv~=^aY@Uk7gEfA|(976ef9A*(OdtT_)@+4Qft7i|F7qt_7VFU|D5CY z`&4u49KOU)fZP18^x}*1@y$`LZ|j`)i#C<^Q~XHhSv9B4qkR)!&EhMw=UZ)_^y+Ig zg4_HmHr0L;AAKGE_ZW|_buCU^JJ|Z)@RiZq_Y2XhPNw?F9^ZboIC|M%5xu?t(W_3T z`r}>Sy%taP|1v%EpMMQ5tzQ9d^_%=v%>1wN|8%$C&AIYq<8|%*l8;YMao({O_q@#c z6u6!Lz`pb;FT=mx9|2eYEaeT8_@qz$pXUDC)N8*%uAjF5Z|4WFuQE;bf5GkhbM^T@+x>T|#Z&!q^fo_Bnq;5yQ+$8I zt^Y;(^-QME-z6S@2iK=u`U{=+^!k%>`MSX4>tCyWVPE_Y{9FH#I$PA!Kl&YR`+pQa zzoD1^i`{A%eF_pX=!g5K^ICO*Z4Uh^+M!|nX< zyR9^41D-#XrgYi%)5=wvWHzzgz$6A-KJt=^vx7 zwEijMmnqkFb$*ZY7@xvlwe~aRcRTM@$@n(quY5Pr^|$5z;YWXcrt9hJ!MCxt@+Rlq zU0<>86zB9+;WMqQZgk$U4sShclJgs!_p8MjYl{Cw{{1`p*QtH+AK}Ne_5O9r<^Ox* zWw!p0P2wje;y-7DlRf@h-G7@p99yLC7Ux}RamI?`-{IfJhom{RFa9mu?oTXo`Tv^u zY<(M>G^+``|n$au<`hzhs2- zrP#Opp?*`QMg1pmTVKN_{;`?*|Bw6cV(VGBeSas_iyw4$lWdNsze634E%=jezilmk?%R=nr~bKa_JrHd zO7im_Stt9z;^+L7{BO0@I$5g!AKdycOBZbI=|e+&@;}r4x31>+-1fdLs`>lq?f&BW z^s`;xtrnO5_U#*I@1eK;#}CJE={ET-^}h&i^B=3fyp416U->tsdz0+xJie5ZKH5jp z@{Z}tZ2y|ltn|UrKjZpNwK(y?iDe;r%bzsn)c>3C@|d4U%b&j~{}XH|BL<&xXlkpqx8xDeC*r)`TF=Px&M@>&&TW7xADKqhdfjH zEPH;vYysT9&!{vN{lDh+JJ;f={nyZ2|D>3|ivLx(eIHjE%7pe&@4tnfzAlxD3I5rP ze>>me;U?Kz?!QMh_d4_2#?|~y=iO`Zm3G>+n!jTH%WVA5Z(cssxkUdG+{%aF;HiIn zy#TlSNsICGzqHREdHgXyo7(4Z+Ryi#cdcynTRfB4R4j82T|Zmo@pr42KTrNy`6+*j z`sd)be^T)&f8_svZof89+t+7H*jHW<|A%>essB{}40;=XD@{fJ^We5VFOAAy`L{UF zANefur_tN|fb`f;`#*DY|I`_5vi_I$zy9?2yH<+dwDHQ>q{G+t`ms~p^Lfe%8&vZr(cAhwzmfh_&;LFSx93y#m45!0^#4?_ulV4t zM{kjR@4R=l9-EiH-Nb#tzjI!be~J%1&&OltpZ#env!eb{_;byw<1hOE(e1ac=A&@jnc=^IOss)BhXx%PJ}4O^{Kl0SrfJ0BqZ>i`hxtgeBr-p@fBU)uaak;n2P)^^j1Hlr~Fg< zcfxId|G|&f_)p_s)#L9`FK^_$doBLij7HVzy94_+|0|!QFSUO=-11+VlvBS}&-14~ zej9pQKRa@A_$2+ZkN#Hp&iyOj{x!;k^i#g%6?`p^zf&#Vd8_ze_$}yd{X;gX|Ea#Q z$Jh7&=sN2-Ez0f>vnwb_Ba$lE-AT?qEX(#TY>=XY?W-boVZU}OCSr^F+TzcK#TL7< z5p1xqG5DS9%$#}7%+AAKe4cB+=bZbVd(NFRli&}X**3P{LwQ4BHqjd=zuba-xxc)9 z{{LR{W|1!}zX6fAzktxaqHf%lG%} z`q}zD<>&hCru9>v;KX8lYxQ3dbLPLSrQa;`WAt07z9zxhpD=zk{^k0Z|FnK9wZB~} ze%2?U{j1O~5BEoGe(wEW39kw5Ge4(%KK||1ezWe+VAD9)l32D=Ue}7#mf%-lU)FD| zOlkd0xIF()`OH7p+Ujp-?92NJyxutWcT)f1{uFhFea|n)zO*0o#GK}r!6pBie{Ax% z=6_eUAMUT&`i1A0qHhlO*YKa#Ujmo@iS<$HAOGB6)DPExu$FI>?yp$=8pqZ}qA!;7 zhoUv^thHVwYc23H)#o{L0@g~u zh}O48C?6H;jUOAWZ{^f}xW7PraMr?&pHKbB`hfXQ>(7JB`TI0C|0C6ZzWizZx#*>T zLSG-Pf8pQs=fH=T>iRn|`SN3{T&;w91g;#s0Emid>J2|erg)F1jv)mOCQrau$^ zGXA%i()$0xrG2u#?XRz0zq-i2ar9h&>~sBUmFM-u1h@J>o%p5xxu#Zr)AP5d!Vjp_ z{U>Z%`@%oI#$sRE4`nt^TQ%OO{>QZ9+zaR%RNt83mh0fBP=5J-K-#|PPln6-Q<|Iq zX7%6Dikto<^zwcYyJnQnasmElz$HI%Pgwc1exmqK5YG76+L!6cAJqROEnnFFefu*$ zQR55mpDcbn{^fiD_GzOnvg8XRobHet)HS_VKKMMYRy^g=I$@q)&7tD_tf1Ro2 zYl=B@8m^!5Bb1LxaLQu*Ah?`=urVY0E-$TA&RWC%s!#HTpB3r+h`H<$5?`_GZ}J=Q z@tfBlsQQKkfBNuMYM=Fm>FBw?S1n*P=NA{!I@*1id^T=F9K(2g9X(nuhXO{OAwIzMRiCjpww_ z|DccZztxY|9|V{A8+B&&Z`U9F32MJ2!H@6!oz_3=i^ppD2F09fzN+1CF+WE6kOV*T zfInh>fcP(#^L6}&|FnKT_=`gVY+8KgpT9j`?U%%y@>lKgliG*xgI?zM{Fc`9w^QM= zzn?BYe@ppKjqDr8roaDBQeGA7;Z_#(Q^Y>`$Lc(-KLx$a&rRbw_wQclqyCMUsB`as zPq>_a@b$y><8RTQuJM({-0H{p9_VHL)@*YBdHsJizHy2AGfu9Vj9%vVrpLZ<{O=Bz z_ZM)@@agjp`b*V*MJ8vgcL7}9|2*}vFA{oe!Ozw5)x@0j85_UCC*fb7&)aHII3_m# zraxcx6$yUg`HR&T`ibb}{DIj_>nFfv{%_^OKfcJ1)a4~wzN+B(O}Y{uzs3W%eDnx`2;HfA4sme_%hYuZPR|i0x-@ ztbNL?J{@!Ok65J7pA5aIf9~01r2VuB68vn*H9Wrpzvd`-S-M& zuiTBwt26nEB|UR>lwZ!To1Xj6>ucfieFCc=G#lT$LG1r_wO<)LKO^*Se9^lDT3R0L zmAe&QG$Qz{Imz!meqamn)nH$~|7iN@zlHWqKS%XrV!d(n*sn$}`}64e4LJ)cV;6SD=^g`=RHz zdz$k0xqjtvng5@D;D+&@g1`Rru`ka*7^luQTRI?aACIX2hTyH=!aZB#l<(DsKDmdY z@=+%4Y2(B)qF0~X1Ms5J0d)qaPO(o};G>97`u9TmxvDRZ^=2Ra1*>}J%FxUD1A2bL z{w2!?XkB1`BwU`qBYrq_2DkVhR{ObFZ=CokUnzPSAEUQAzolJxf51n;_4(fol~d<% zyT6{$`WX?7-8ISgE*;R)=8QhM$Kh>Cm0O!>*Kgng<2mfh{)+iG`}{5X61a@dxPJUL z>D=Bq^yYt_+UNP*4b>)m-|9RM(98IZ_`DwfSNkIpocbfbt}(e^?maDES@7{IVf~^vK66pu+^g`SkwM*gNj@&O zPRpb#`sQAWxLqI9bN#*@*Ecta_@sTI=QsGv(+4gv{VVE!R3=Bi8+zG4GyO~b`y}+c z!Vj#{_^}DUw>d}*jRjvl@w5BvkT%s;dE#f|-P+hd>g z$wAmI6Mx6m-{K=6fX#F3xWjzv(weFY5#7`Hen} z_|5-jaG5_4Kb$@ZZt;Jw@z=+Cck3P-H z|JoV-bL}a=e4mS)YkijSz5eN!Yp3;75s=e8CzsECt6#3I&Tq;J@^$bp>m$@(mcBn+ z@&o>@Px1cOQ2Uhyc|Y{>d;#%g>HETE|J}+@pJVnZe>W}vxWICn=NInVKi64#SztNQ z^QA-j=Q?S86$N=8{LA<6e4l3i(f5W+|8D-t`Nr|zRqc;1$a|re{deM{{AvB#aCv{9 zm7ko9eg2m6_fY#|3-X@mADN>5xqfN=T5x&(37eWIP*8J-zcSrn;!d} z(QiIHIC1}eYBR0x1V4I2%$eW$_%~Ji)d_C?DPKqQ^8EP$b^WwVY5kgTd4H;L=4ZbC zw$S>i57rpmPwUKc`oa$A<^2nV^joQZT!LHt=-Z=T+8Ense&_wK0bji#nA1LNldRwP z_P=cuALj?{{(|#=)>>9aFXt0XPy6!v?N#5P=LfBQnx3}Q4!z_@^z@&^ch0xH;`^^H zT;9KJZ4#fXZ*l)J)-O@}oSzKuIr!-Pd#Ww!a**<*zU9JpoUiu$vlWBbsT;{LFS^x3z55vBUuRQC~|ZLtmZWqfFDmh~U6U$sEEJYQfu?LSceWeIM2?Ei~i_K&U2Vc*C94_w9<#@Bp& z?ZovPrS&%^!FSuDr(S>NvZY$S>I66Yw3WZHFZ&19rm^q!WvZ{t$>lW^busx^Sl>& zsZF@|U!(TRGCBT#M=$TsH2tmPlltEx|JMHz)1b+{;_>MW?92DZjgymmAKf?RQ`P^d z1TR_ASFa!Qr%B4|65Mhf^QW=O8xq`d9rL3`xV&G=`?p*U|CRXf8JFN*->iDq|4aPz zB{qNh1^olNsNUvJUjH*(?qB@d{K>~ZUgIB~;HGE(v;w`XAE3ASkJnE`-zKadp2$%CMaGT%w`rlLI%O$wwTINrCIRB<6K5{Yq2kguI-rM*3@8Ro~E4TTN z_diALhxKP1J#!J-$9L%Ed_VS$d;N0wvKr;|AIzV8`#T8xMNO?ZV@2jK`)m2b>u>X) zy%WCd{{<&L=0C(|{twjn3iEHYeEIf;zU}dO z{nv2$ei-(#$@~e<{E_kV;aa}1{*3>6SIC(^O;i72`!jyi6MeP+Wd3xhmOu1wobu7X z!oPCy8Ta}x;m?QH2Mud(-v4y9A6_5h=!u{BzCeHOj#@tBUjI2G&-~>Wh`D6Uc`j_4F*!TL= z)qh1MNBAy`+pXc=-!exKQ?pe5x|6H}-l;B_85|)p)e3r&v7jwp(Qy=Z6^$Y(1 z`)@SI9Q$5>j_UVHaMM#i@1vLTncY*^_xeRq`HZvv?BhQl`*J?pbJKHu-izY1Hl5bL z3zzr%z`6dc?^^%Q^}j^pZwhF0aMoYpv^Ds}@ZzzVoLu$}_T~Kmrf2=y>)(dU^ZWS6 zCjQ4y4eKBMOtrtea@sU}?(~pzuU)R?uT;+c3Ag%zzlD9tPuz1^`ZwY7{68H3tRH*- zS8Dki1MVr$vBkag271|FD5Sqy_2Xha^@n}*l<#%)2kjomhkq*{_Fsd~4D%oL&-nnq z|9{2NT>t#|EX|wY#o_Z|rho3(_L|EWD=*agtI+4G;GEy+u&j&rb?}?v#Z7@dlV+U1 z-Sfn5xf_%>=<`cn&;L2=@G9}k{4lTYtoBWRllsqdG#B0$KA(sESJ2D+-=3Mf`tzjz zWw?C5z@CZY{Khe_c8%kIT3K z7rS4}SD)ZJ9o0j}qRd6_ffqH#{MRpf$=9uH(>+e&2(!c4cpXbrb z`jX9wvG4WI!DW7Lyr$<`IUoOn8h>42b6U@tt3HcfzW-QA|4^j&-29_|2EFu;X8-3w zN&ip7Wqr-&yl`LtkEs2M1RwKDcOA=8|4*Tp^KYi#c4kul82UCP32u7Y=K}Qd{cfA{ zru8jwSwFBg#XUp&XDrR%KCAK7B>0;%M0cg8P%62xasl# z1bW&3vTKfg@BeYQj312O`c|_3p4al{65RB(g~!m#{L9*GTK}TzD>FIzN72jp$MoCD z`yKrCdju}`hdq-_ez*Mn@6A1Pn`nNQ^_l3IW%$^$I%$4C`u*;?pVa^81m{^p`pT<6 z?~;30>u+R&Ke$V0t^YaQyX0O|UY_7TpVL{#0_5U{iBI-_=rhQf`1ks^(98VY^Wcci z+P;?l*g5y6##fcevHySAm-GLoZ@WQ9c_(FF{}5c}#|z%+qBh~)|2vWWERO%V=2hOAhU#za3j2#)p0M_rvA=7Z$(g`2R%x*Cx2xM}HsszNNAK z!=KLEM}IF|&i`+`s&9)f^*^eqJ^H)0^-wsZ2YYXLjcF+B* z^;41Hb}x{Ne^*|T;Fb&MOMcV%gG^3edJFN%`5KFloZc4h32yf)@!f=dS>LukjeFkgqrVX@>&NEbbISjZ+8>eNW*_|x=w~qhXee~DE zrF~kT2lw?~to_fZ1h-s3Usj~NI+J66Huk0eF#F^bufGm1=Rd7agnR#O)qXCM<9`-< zxqhZ6Cwu+1aCv@m(MjQ);m(7)B-&qZZGR0hNB{G?`Tn(w@+k>!_u9Z~yXQK>i<%SM z?&X8e?w(syLDp>Hei?~U~2 zEU&*3zFI@@;dWg$f53hDduaJ<6Ws3gu5-KRx~umUYWl>m!sdTp`gB(>g!`Y_DxUxm!W@iY%u%NE?R!{(!3V1UsstxK;{%j87vvX3{%@a~x9{~A!sUFY=j3;@zXA4($H@80 zyx#cBy}RZvKrj2}rmy%lET8E&((=_O_*z$owkY5E=;iy4X5Z^OY|u4#9$e1XTm4dh z{4H$>|L4Maf4t1;7~k@nAAgV1`l*aLIp>DiT~yEbe2|u}S~+7fIBg00vxoQ0ZKv@k zx!sFDbnKbiTJ?1az2$<9K3Xfcm2&yMNi^rgzH#P%=McY~|2IxfF^>Lh_>?h$&1vD@ z|F&v>d?rVK7J6B~Fg-cN>(7MC`pu;?x@-G``||IEeHkBnZn>vp z!oJM^4;v8He_B66<1f$T=x3mp{@?Wbu1NYn5iZY19$y^B4<~+NCH^wCpUsK?1oX0g zVS4J<>yL;3DBp+rBCP-P{okPWtF?cy{BY;|HT7Ck*R^mt-;Yf=ISEc(!>i!3e((84 zQ7$Bwr-4aVxoNHTG~JU>oxw$ zfNSnK^-EnJjb6r|h4f=oUlZ#oKlagM|0wkTR>l1*{;hw-{*mxO@_bTM|HMrGC4Sm} zQ&fJ>sbAwqpqKNRo_qb_a5;a={umm~iSGHjv($dGyuYbe%&|rNu$OU=^3gHpe8rY0 zh0ou?Cu#ZX0@nPozhFtosZ01oc=59Kz(`jr)Oek$D4N$U@R|5d4+_?O&~jDH`s&-?8{J>24_d54f32~g{y^0?#d@wk*9Se<=Rou_zO?x8Z`TL= z2f&9l>H4p=Piud)g(KB|eJf6^@abAV^8KFZOdRdo`by3c9U8^wx%K6ob=n{Qvc6_# zs?z$y(98F8vN-zv(983!#_6-Y|9#;%4GO3e%16$od=~!^YCo6Bsmp!P%lyvt4JOzC#ZjUzg=|Z5pH7%^n0O~{d?n#DZPG%>gD}*ksfY(%C{$ang7{6nbz+C zuNtkKYeJvw>+dw|7gYzeSvY+voc2xqo~ree&1vhCu`l}QKlkr>TE6-OxBd%09{+d9_XP^*$3@)y zqw)SPRQnBad~owmd}Gne{J)UC87|NFTlvxW@?WO*Cnfll*TeUpP(PPy`Q`ZwIWtB1 z(Z})0`GO|wN9Ws=%Wq!a2$%Oy7VD3gM}*@?#zOZh z4|M+Oxvj6?qV_{Q=l59OKj4Qob*-GWsvA|`pnA`3|6#WC@A;H5;r_vB$}i{7nG?f@ z9TD0${SB(G$mFaQ)}xp83DdJbKzydJgUkLcoZsLZ?b$Jo|7I;;l6U^UJg-GB?*}NP zuYt?@!HeTNY5U^(QNNUh`0i5srOG+q$^OwfXXp7H$}5y}K9l{Qss(v|yOzH^ld~3E z9hDFN=(#>#Uj>)>@fDkPiubSZ&)=f|pW3g>xdKMaN|w6XmC@ z=(L`|x?H59`nL<{uuQm-TVtqfXer@%D$qW&UjOvp#8@>%Tzl=l#P!-aE9#`sXn8 zGXE^3e_HjtUm(mI6r@XL3wS!oSXd2{Mz%u_?Pt`=DcvPXa2iT_2K#^ocXco;e*i2_{Y{i)B4@u zvcG3*o<4r`?`ip}W6m}GzBVi${7tx=53@B_&snQ^P4)8r=V;BAI=}0rP!Hb~|FXVh zb)MG0q4w)DIcs6Npx?DN=GeFRu)i~0`VT7~*VOzI|J&G?``_~|uU}K|CDspiLNDh> zJoox{RUgEh`ZYcFcSJAqA1lB2kNq7Y`?Pt>N!ETS--l|yCg7g(oO_M6$PcuBsxmoi zrQ2g)#`mTt=V0IT+rj1i9{A@s__VFV>x2J~)qZIv$N#qICI6Y8>*w{`z~%fuIm`Ma z?jOoRd|zU}O}TRG)8D?RL(G?I`RfC6w&(N}tTivu`06q_YuQ`lU(WxVo<0Hlrr!!K z?1lZ`JfgpJ$86p~>k|LV)xP8(i7(CZzbSfY|Hj!r z_4-ZVa=vBk+xhWz9ma$X|>Z9)Gxf%zuvJV@%>X;|KP) zS12D5WO4T2HzqzA{~Kq_f_>9(1efpc;ort2gI~(~|5fde%H;Up5dD7!#hm`Z>ojQb7e}6yr|5p3e z32u7M(hfi`;|uBx`~2qPUk@(xdvYS2^QZp$_ty81RVlY?zV8zciDxR?`o?tiPKc``&+FxUAoj zbA9~yLf=vCS7dVPuMc{8zntmG>6G8}z2Q$!2*_#v`f)9&-yUjzR6tJkoczZ5#I9OD zb;>O#J<(+i%|Gy7*q8T*l2g2%zlC>K`;#&`=R4O%FYgC1Jvoc^W%{0Q8GjN#zmfCs zZ}Iok_~iZm!ikxj{>OoNz7~4<{%V$<{n1`g`Am;})5Ck9m-QX$$NR?@ygU3Lc|KKg zw!eR<3(7Y@?bpPddv@|2t7~1s*U|dP=A2*c5104Xk(01*dU74-Z@b}tmr!pxao%I0 zee_-7a{k`pBj#2QtKXGK=IJVGtK`--j^!!H7H~Ylj8NMVJ=NHQ##7cbYYx&C( z-0}~+6MA|7A2Ip*Gkr(6%#UqPhx7M-{bet;FYkwn_IwyKZZ@W^<{#FwwpTtZ!R`KL zt!*jOxeyv!>(q9pG|)z{d2%Xa3P|rSXl4Ib+J# zC$-o67rv$Xug~PHMYhNOmt$j2{9eBX{I3atjcL7q^xLTa#sq(Vc$oiKOI;oP3vzxx z8dInB+ePskCw|joza4t{{)COWy&n5*;qrb}ThpXX`0H1y<*y0I`PL@j-2a@9-%b5D zE4Q3+=tDO8vbSci+wovwAb&d_A8XzJ-_m|y!~SI^8SCbZ+iZg z_=?~%ekW)7`0<7R;Tm6aK+f}={K4}VL*Pa7e7D@wo^vnqd_^1Vj~)^0xo4>#(+^X< zJU<@kjibl@sut19`qnGsy)6=JT{az8GGv@r}yl>~E~Zzw9rVo}A(Jf5K(|i9VS&Ve#Rg{h=z2Z$#X_jMKi^Kl=l{ z>|dj|KCk;uVSMOoG``wQj{bM_GJY~WV+ODP4KDLr%USSUCb!f2qkQAkzMOB7oIuQ; zvwzeCZ&R<_#vI>F3-$0Z%A1sPO&C)xIy=vQ#lP(DlM}P_jp{#}v;XxAdU^iN^w{_Q ze}>EahcTCrA7ALls{Ij}ocdjXUfP%G8Iw^zrvC{p?^m$;Bd1yUsJ}_rm*-=RlM}an zKGee}s{b*We9FRJxgR6{rl);+{SR@SB`*2n#Oy8k{>%io;fybGRth4;7Yue`1mCl~U5mVKi5 zZ2W+I<}Yya<1+lq`B-uyzrnF@`u)`YgiMb9Tl6yjH$CsS@%nGzb9WEOIp%ZfqeXhJ z6aOJm{Nyap$%VWh<{-H2pOSMuC)ZNGud#nhZD4wGHug<_uax|{|ddVFQDf) z_+8KD^8XEjA6w`bqnG;^J-?Cj%|8A=h0FRn@mrs=;E1q%#D9v$KRO_%c}}k6S@x6F|ENrk z{ZFtj=Lbzs&cwdyKZeWo$3MTp&!3t1f13I)3&`1Uax$F!N_-!om-UN6`ZHAD6zk1C zdgA{uiVwZz?5}Uh`~LvG`;_?l(`Omy`k$lrOJYvWUh!90KHclq`f1MOobP!b`?5Z7 z?T;~q*Dr$0^M^KO@cz+XqV`7ymh(O5eA9*SHhaaKoICZ=uzc_fl*{?2sLz4-UzF$X z;lJO=z;b$8|1MnCf8o@h_s{vQi`9O0tcRO__&exjeZ%TMt$!QN^J~$Vi$2BTqx_d) zzo;(3uUH?e*&xnAW<~g~J_uJh9m-S~jF`+-B;$Iy< zz+b|?oDVnuW}m->FNDkb0{;1poQmH3&x!2AE$5d0FV9~@FXs!)zv=l~uKx@0W5{G}~dY59o%A+^u>&(@sxr#ztX z*9PQV^yGZ>eUjJDgUkHH`W){ceT&+!3M?mj&ihm5Yx#2te%~cw`QcAuU&b$1KWY6F zaGC#`e{!nn@&A;Tzbe7kxIeu9y#M5J^zwf7Li%S^pD!QvXL{^EhW;PZr}eRKfk1U+JD}^adP=1#4q3XG0yv2jiY}UF82?820r25|Euc1sv!SA z^zwcnvzgXE1ef`@ovFj8FaJ`FzbPPR;NLj8i1)vJqg52w$A zTm0`wPN{>VOhelu?R57Eo{`9l0Y^fJD}ewO}TxQs8Ue{9m{5uernVvVmh zpilCgzJ&MxeX9QJ3-WugFX#V>FH3(nT=wVjk4^eS?|+HfuPey!iuA;nrT-s%i>A2! z(Pv@b?!RT&m-8XkK8@4YaDRTS+@-+*4uuMr>RPwTIT%lRw2{`6_s=Wi+hKWe|KAfJt1?qBMM>zCGF z2k$dNzwbwWP4|C&=pTzK6a4&dmc`@eHMIXMP4KEc!tXEA|Fu;Kebi|0Me6Bjqzr|9TC2c|O57@fk;d zHT;5!f%!z^%imq?k4o_GUtO-bl3d?K`Gf@Dvh8>A{Hr6ps4C{n&mJ!OF7Au2!oTeQ zd;ebFS@pFEZhGRs61|L1k65}wZDQZ+uYk+`m2u{GKK^cMzbwH`Px)q|m;1B&{uNrL zwElAVe;Z@Y{LI(i+FC#36a35Cm2U&m%?R! zZ=Cs?_upIXk4|vY)0bU>UY;LcxbX^&DXqU4F6XPbCux7ozx?>ILha`{*W|7?KgIpm z)>{7j{R97N(NA&zy@~Rg*go9K!uV-@<&6n$b;bB-J-D3DvG~y2wT53r{BpkDbFUw$ z`cVl^TeR`hh3I8|kKV>lUVi~x=I6#~Gd}(eHU1#eI(f=KC8~=Fy#^~ky)YvzU z-o{twp_lo;=U#s`HfRP z`e*p5_?P_&;xq2`r#NooAMbyt+7HWT96j+9-^p73u>OsE{Yh}i&*q=;i!Xl}_KU;( zgC4&6z|cP9ml4Xt?;qn6J~;?E9H|Hi%kM0iv`_-Fj%{f|`p zVf`C7J@K7@KDxh+d;RfnSzoa7Gyb9c{4LkNTFzIAp`i+lMP{LAyncF(8vb?Uz= zlcPTxz0|+ySzq)1kAlnjM!RR>KK^F4Uz6ZfdxYg1zDf0?6WsLJKLWkXPwbvb>ko&^_{TWwcRv1c*l#mB!OcHyeR^cy+H_if7+lsL z;9P&!$E^S7`tPps%li$a&B0l}f|Cp2likoy?^GEo{CjK{n zKU}{;zn9vV_gf36O~aS`9&+xrJ+=H*%DF$`RzL7VuwPakaL;Aw4~EPB5gh-l|9SsY zwfyq_a=E8G#}@bEf6&YMszUmGR4>neMtbTG`{*g(LFnati^Ye3DOZ&I@()xYi(}o77p-#O2 zpAOol=6|8ocQ*}zdS!+{yG2Z^;6+;KJL;< zOVuXa`#(0apT+S%MfF2sJ?Ce=elNJJpMUZ15-k(lm;VGU|FD>IK6>CupXm6N_O&N^ z`Tk%b{S4KYCb;RTzdg`Pe!SwrC2AA<-v4B{tRLDp;eGq(Ec+Q+{>lXZW91^PE1uOj zRsEMG_}-hnukC}jxI6Zxf3!A@eXl=V?bl~=^pnub{cC!jPxbnVa9KaHHjBpA_lf^< zjjtxbpYQR3wtvooU!Z(Uf}c?LVSKI5)%cS9pZOogZRH&0r3t-p+WG|IYqxLAsWaoW zwefKIzKFF+xc7g)+AquG=*OX#=fh0T^DSOK7B1^Y)+XV;{Fg-K%i^?^i{Y|A;(4&* z18qyR5`#-JC@qClnN8bdO?+2RRbL#&xwcnKBW*>bcdbvN%KF>Fqee?}*dA`8f zG~8eRS=g8NpL_nr4~w)f;#rfcl}}3WpZ9rR=PEpFa1~tEzr5Z!{>R{7_8*Pw`y-ux zG+g#iw(Rk-+Jt-m*Q)(oCdYq0dU^i9^gO@j^>uK`@893{k(LSW%YTEGPtHF(e&1t@ zwEyH;lIzufSth4`YSn*U&+~^~Ujvu(@7o>yk=lfN|2IYUvpD{%(XWw<^*o>G^;K}$ z-?RRkI)8M`hdO?y|9&6)ZE9oA`9E?!V;T6J>c6}dr!QkIZ;t9~68wp6zSjK3`M^s2 z%lyLpn|;&Yq5A5Wv%YA0>{p{hLa#4_%lQCX zbA)^U52*c$1aG(CE6uO?ABkS}w@uIaKChpPUiQa4H$CMmMK9OK)+E#V5pa2a#yIC2 zef>SE_J=2U-=$w_|G-+}Bg)4lxWxz0VPD3-wkC;vuP=ei^L@rSU+DcmuJ+~ri`I4*T+cI`p3F{6p@Kr{OZbGW+On>h-1O66Sg> zsxL`!i=VmXF#OB@q|Hgw`lllMSseXP^fEp&&iOv?e+ayDdBB*T_&MK2`7Hit)qYtf zXRa_9z4U*k=X{>m4}$+NG_W}@{wvoF??3dfNA^9x_{fkm7kou|MM6J$e#n`NE`-bX zl}*q2$6-Hxp}7*i8~)||rg8jx{mZJaOmNe4eRf4J`-e6s#=h6@0+;m{w9JzR&xASL?4nU``09{lKxs_1zx*`&F5G=8}t4FXs~@ zz1c?(-wyo?wQ+oKD<6DYxXe$jPw@R0ZLz~~ZRDRk9~1RC%vnzV^i$3M@a0;6oc(L^;@Mla~2=}=NkXmz;eFlmo|k9qwv^s>L@x#_vSo1&NV zKh`It^_#$D{tqWV@_dnRKfhsLzR!{7+zYg?pVfa|Y#;q~T|d)%gT?Nh@ssN} z#=qr?<6^x($%TJu{q2z8TYbJ*^9#9nrN)=k z8>fB;;$PP9%sy%1>X?7rm^X)8}OA+iQIFnH+r|^fEp(J>~QM zd&A}Va&ijo*XMuQVsDLaOuRk=x49D6x*NP`c!JwpkbAAO>Z=pn=Az_^Uig>iD=epA z-|M?-`Nm{&^lPJ+`@{75PL*gbi~pYRgZBt5C%}FDJvIKZ32t*y?zOcd|6Xq#`)gre z`d8!neu!u;i@pb3#-Elm;NE{PwO^mf(RW9`TV2eVlX`tOxV&GCdy?x1xA`a6ufLXW zLO`2@^L#d(whr&7{+lv6ZMiG$M+KXPfv zY3l>wGQRVC$DKdY{KdUIK=q-0+CO^Zw7<^ym;GbYv!-SoeJ8l=zmhZ1!@d6v)PALM z#&__C-wNYH-x2+q@_b69=lOB3-$>)n>*1!Sd~2eY^BLUJ_)qIQz-9gor~Y_;-Phly z*q7%|xM$&9KRC9i-}dOGd|7(#_03gZ66?)AdiWaXdH+EaAKc0ZUmY&zCwM32!M(m} zS^LkTT=m2OdVO|0Y5m*|$G4F`7!%Cz_-TUE*5FsF|H_!3x&E4}KlsvlEh~Eu$epJ3 zH#Wf=@4uzR_!#BQ3BGXVgDuP6e7R-b%6_?#aQQx@`N#h3&7W?0Xw8pXZh2hZ-=+FS z<&BeTfjDP7L z@c-S|uztM0$Z^wn|3jU9&kx=xtp7IXW&V$Si^=O(%@;2F|J}}fF;RZg=d^tC{EXuj zuRRynWr_Mv>fzKC*Y98K%kzJQ^#8zRd_$S3e>Aio^Ixj=hqvOCmG<>F`VOV7xat3b zAC=ScV;_xgzjbQAJi*_(d|u1fM=fe8*?jF>C0xGGsO=-F)1Cjx^9t2B6yz)MFa0C> z_?~e3KjE@J!8Nh?y#H#oKdKd{e8l$$dYL~I($}hfOe;R|+OT}TqnG_T)ko#?{(pnZ z^&@_(6JLL$)qZ_~Z*|9`EuB_>tL3#3eR98uzF5`=(A#fbzXC4r@74O1>qD7*{+Xus zn*-{c`Z50Tl=+&!4uH%4yytKK^gx`Srl@{oE56T!S2Ta^uDm9o%w`|G@d;|bHo6gM~e$V}Db?)!qBeZ-Il-ro0boQpwy-=dXO5^7cQ3-??o-omou2{!iBU>k9Idl*|6FE0b>@ zA7EeJ&)~0#xBos|*2fC*Q?-0m1^FWMa{u`%l9YJ z+;aI@%6H4;j5W^G_$m{8-#Hs;E{4C0f0_Sh*@wRqm7g&WKKae`^i}7m|MDPc^aeS|!|5eT(6wtp6m-!|0i}?)~ z>ilfA8E5KTpZV8X%+K0PjQRYFJ81r8e)gyMU!wlQ`4f6L`OWy>leah z{}+C&*u+12{PVXrs{L^MXPjJY{KcsL3h7^f%lDz+C1R8Eqo@3|&pTcGo}d0n$mh87 z!(Wy075b8SN2vZb)raLX&RD?s^DaK)UjH0i&gW}5Q-6Z=m}tmN`1;4cqXo>hM@sQuDdPyJrg`)RFT^iOL2jEXt-$@Q^) zxV)dh`#u(nOkHKaApE8|z>YjRi%|CpB#uv`-@k#yBmvQ~E z)uR5ZRBs$##vjGLb`TK~C43{V(>@ z`u~H=_|; zAHW$utJ`u@bh|~to&QJoF9WT=7BTTgEM~lMtNN;ZsV7) zl{Y20AOGAy{mT4-@u|0O`s?9xzCX>)|8Q}U@06D% z^nUy|3;)sl-rG0*wFS8Oznb{&9;?@<`t%E0)&KA6e~NO-%=MwHTp#NCH@Ljtn(OO1 z_X7M^)yw(w6lW|0|3&$*1h?@S{3_y?{b%k8Z{PG+!VlW56*vDgDWB{gqvx8WAx&z;UD{^Z=?Pz65Q)AKrj8*j7#RKhV!pp ze?DB^pOm(*`9YqwUrp^-COEd>*gBW`k@FjA`=&n|F6%=U6B@3M<&QP7UpyqRnBc3; zxJ~)MhkE8ZsQ+;>=lTDKH~L@9+bf@(;3a3>9rH8sFZ&z(MxCYgXTW8Ai%q!q&)=Q~ z?^4w&e*TvH)=m9a#N6z|X-l1zhx23e@7v$0VxRZ-Tlv%auBxv}aIZfFy|j;X`ON>x z5jTz1zs27J`^7bh^85SeB=qur2h$Uu=QH3k|L2-vll@UY{~nM?(~8soogncQ%l^3O`HjET_9^<~;PU=Liyxc( zt+ns|8ed7wx&LZX_lT{HE8}>G|8E;PU>b&;GtNQ9t}G>l5p#{n`Ydamo4m zx9}rH&;06-TeI~?z-9hw@vm`l+nm>LsrJXlocjCqrOVa+7K7H$ZKAv?=9GWRl3B`2 z{xdMQq4J8DTlua19FG4^qXKIaY5m6NW&Gmn$J?KdUf$1VdhC0C7+lVG*!4@tznR9@ z6mz@2#7F$o(C<4oFq>)p78>7}z_%Y?KZl~1_am4d`<@>Hm-#(y7N6<*-!_WR_)Y!S z$n|ZLum5e-e{-TXI6}Nn!QjtXKnUXUJ>w2mhtgNzN)-ptFF1Rk$rn+3;VCNeMdRpGAmbJu6o`- z0H1TryYaI=CCbYZ{Dc9E^!W^)g&L-ORDv%)b&)k|LvJDxc48Z{ahwTzaM&;KbfBITYCMzaCyGZp4o!?@{f$l=XuZV-_!H4 zJgZfz{^k5n^h_Cgd*1G;cl7)a&qCEGFHi92R=%TWjd)h8Ix4@{8|PWEz3?yN zcjN0W=$JE(eoy$9;{tmo4DS8csr{-c2LVQ$M?7U-r*Uf9^*eb6!6QF6Fmp!rc2XZ^R2_N z*q8aY>4_ivrf-JJ{2u@OhW~XR4gI5^5|uBDlOLPV%lD;?6Q9>NM*a^wA*?^jPyLgN zslR=&FVCMQ_-Sv%yaBzO4^42V9}{uQ|Fj98|Bq7pO>zGK#}@qu{lh_US-<8?ATd#= zaIOXXKrMe=Cg&{SX#C6lV|vQu_4ROhev|mHiGSJx{?Q+%_Qxov{^49JIA$ZGU5e=MXwQuV`QJ@t=$^wdw4)AO6Q$*6v?UkR7_A!ll>O>zDCKiBUVEq^Y- zt^L6((98a7A$>Xg#Ub(d1C7lO8K0bi{o=v$d|&wd8vKKSkE?&4Pd!z6L%=g>7SnH^ zgzIZOpK+4%@d3{)7%%Vkoc^El#WOVip$Tr~gO4IUxjzc&%iywpZ~oDE|EH+^(gZjE z#5WSXoNp_nFNOE#`NpvPXngrkSNo$9-278NBhX9xD5TH9WqrWLe`tLDpRM*sB=|Z% zgzF1jpR?e_jREhRqJGiG@yYvHO0X~IA7cCRo7V?$Ss#jd%Ky1)e@w!@>3RRlaP%{W z<@NZC))$CxSmb|vl=B!L+xVCFb2UffW6xP@<^HFxe^LJpK^CVieysIVo#1;7e?j%| zd8)5X@WJiE@iV#Xf2yyGIpd=@&wW|-@T=hRelhcJoLm5(nbOn$Ts`$w%@y#=)qmc; z=j4K+)X&*tWBc?UUOxoB`o2M%UtiNPx%bcb=SsCdE|W9<8jOCQ=9n|SqI|@Ueh^%q zfB(<4H}p67(p6#kiSHII--MVme(7-HD_TGB>y($qoc?jYtzXsr2A`$z5FzkFVAnAp7^Z((C-MB`aklx*IU&;`rEND?|*o9>m;YI zVEj2p{a0pkuI~=mm-FSOXZ*|cHU0K*ncw1{-{5_A4(kv9cdGrWOpgEU&`bT8p8E0n zZQ;wSg7uGmP4g4?KldN+(xZJoh<*7!7o7JCGJiVfpFF=$d9!lfKgRs1=;N1S{kKP2riI4bAzbRbS|6cj!m&iHtJ^fEp%J@&1Bus;wk>jxG;Io13V|4Z1H=SMv6GI^oq62`9s z(98ay=U)Gc>YHLt{hJ>9>!FwD|E+$!f9$Udm-#=swciks^E{{j<5|16 zl-CCIiJp_6coy(YxV%3ni}NhvI{26Im2qA3knxA<`@`k@GyW~-&HDHSZD06*N9|{G z{P#mI`xmAsr+a;0xa`kTe(Td0RfO%E@_(S^s|(19wpjQ1m@n1%59`=fdipR7Nao}7+- z)2{`W@0Syw<^0>H=ly@7_QUwo9REGg%l@$G$!}iY9sa+jfSm5jPg#iXTeUCW50ISf zIr)?KZ+)X&-jAQbdH+{8?92GfI60g8HGNmOJU@Vc%gNh5^qkfu{+CDfm&Nhl1-;xK z#_4mszH?+hef=p5@%@DTHp%wk&v*Q&d}N~ia8|_Xq7(LIeSkhC{HpQ{^8SHpx zJwIdqe^&eQ{p(oYIo1>3n&{>ESn3Q7`y+Nf1>ONJ>)STxWq-)ee>P!$RGiJ3>#nWy zr?ObjJ#puXr?r2Bw^w~GAm`dWW1Qz#R}p{Ft^xP7=i~}~mjJwYXh6>KoLt89&3`GE z^T!#S=dasSK54(k$!YjE{TgtYzvJI>=FC%`(OiZ9f7O0{CddEk=%xQMJvqzk+rcG2 zQGUz$n=O7u>xc5U)A|d!<+N)$J{$95cnr zyc&9We#G?HPxyz+`Ug4D$B!@cYpDH-Oiuk3p_lW6rYGl8e$%&s%l8|s{n6)J`Dj0# zuwPUja~-o3J*Tn2JF5TMOwRMitLBMZo^LYyjHzC9`hVe4J{vQ6|LD76U-G+g`uy?l zKCAJ=yQ=@{OwRMk|6pI*m+6V$>;HyJ|7v3n?;m}S$iL_RnH64tp5Oipy|i!7t^UyW zRDEsCiQn|_mFVUB4>l(9{;~fjylAh0F%9{{@&orG_t*Mrf1Gm5$-7+sl-{fGb+mq( z0{RTk>1%k`OkdSEE4M!5iyxoTz6$;a{^k1(^l4tt-@^N={ahyJT{*v_m-c6R`UK)L z{cmtNUqbo#jXn?mR=)MreoY*oapLD)Hou~m`73&UgYPi(=~zEd^>vvX{V(Wc{%v~l zr`P`sm-FrPNxuH63(B{l)?c2J(~p?`l-3pRLRx`d-p^1-zp?78VoslEdhGv%Ud}gI z|6$jkSg`*iT;}(-rpa#|7Cfo>i}kbJwEQCja-wPA2qg>0O=X$M(NRzj$i#F#u*N^u*Eyuo`Uobs&PW_mE2h}&kdgJJ^zYM+X@1eIg z@!KbP{kL#gUm$)s_YByt0|H`K#N zDVO!tsLx@{a?o}ydVS!Z;s5fX0ew!EzC!(v%;daZX)$`KU(;jX`~MU!?_Xd{;^W5` z`f9Z==d&|7_4^5WnLik3%tHN`{$sd||E>P$^Q?T--)QX1_eG7tic=EQG$ z?7xp*&R^U0_5QKH2rlCz`ULV9`QPuK%+T_WZpFD)e1GaN^FK(#+IAm@0_z0Uhdrz)=w z$XT9~3wi(Qo^WX&lJ9sIX#jP>Mf{F{D?>g!^?arD@K8@+r#0RQ|3U+d1i z{w=u7|A`+?&V^h2`(aJ{jpg85?r2tq0guN(0;kU_&@j0vDj~uOK{F2>)*<^sE*R|l_a>G|EB#N zseDK#=U!Ndf0_TAf6nxJ{fiN&&Ega8{U4+DOXYldYmWaH(98R2jdMQP>z{`&9~7Ma z=L2fr&R1LckJs`C32ytl)X#J1rGGS=Y5j?+FHdlIA1OaQ3IKQeL0nTz}=V*Zp63QCTZa`(iKsG`O7qw)TU6Yd^fd_G#ji z{9y6XC(Y{hxVA6!XQ+PXOwRjTpF%I!-}H=`ynX>(`d=Fp;s3SDFn;tGsr``weF`yq z&iilAS6&^^r=~gY?>z@D=UeFW;q>X)r+N`f z?xW~sd{jt(rRr;APWv-G_8&nn^II#Q_mBOD;m1!1?92!`!{0x5YW++IX!G2k#>u68 zU+`w-BSimbf|Kj{R^AQDD+2lyuc!avTgBID{EY#9CY(MO|MX?>|BK=;q`zMEV`9C< zhn{Z*K7?M*$D`*r>^F6KQ2SEs&xOnUnfT%KiExYmCbd5*)*B~&%J(38dH+9p>r+n{ zp4UGBm;FEL4^E#9xB8o-^)o7?sr z3%?I8>j(JfH~K{M=Kl`0A98%c|9LUb??o@?FU-H``CG34J#aZ+V(o`M8@=V<$D;Dl z=Fxc0_o?oO%llQyIi8b?_`cRX%ExH@o)bUc|GFFhKZkmL!~V;?=4viOf1mnqRQqYJ z-x5SG>qq#9le4`3e-S5sVuGJpHCM|={12=BX6avBbH492H;SK}hMt^j|8Vd0p7@;~)jc>UowqL=j@<6h7Azn)WlNrIamegpcec>iA*e_DS%T+UC}nLTo% zA3uGl^-~(q=E=Xtxfkx6)-U(A@~VKG;W@d4@3+3DygDGKc}_0l`>Zc({B`m8(d?6J z;j@WP`nN**S0g<++1oe$b?D{%2YP-Zr&B)jKMO9;=MX=foDH}5-_ZDLW4&?oe82Tt z^fJCh&u_*}{}y^Vzf_1{gI@OMi7!ikHC)P1{bQ4yO?+1Wi!{EvfSl?%xsdO-zNh}> z`JV#(D(uVp2k~X;uY^l}z&|$0>E8bbYJXHgeg%4|AN*(OXTs(FvGzyK#lDT-mttSe zkEA)dlJWgwEx&v}S8^tGVtP2=XZ=*;lkdwG;FsfH&hJycEd6D0SsyU}+>^v-{+DQc zH3j*l=;izrIf?d_)?Wf&S)m-8s^1b8_+AxBBJ2 z((=psmje7^{LA_h^^>K)2rlb$_{S!FhQ){fZ`FQNL4F~6X+QYS(q90V=Tj_a)909d z%Kx*Lzag-k<~iR-{ZV;+U^&%uzR&uD##dgDpO1ezzhZq-T7Mo~=KtoOoNw{re}&qw zEXdDAFY`Czqx@<8Iq=FMarw#F*ynF4|F3Glv>-nly_~-yKCWL{e->Q!kFiO9Oh13v zV+Q#te7@Uw-|`FN`>*;$!Sa0ro{vp))+bhnw<(P|=NHCIxLn&he3ix@KL3lJ^~uiH zU8T0*e=854kA<_oa!l=YF+Ve^KYM04t^XH&@ko6>Hf^8v$N!?2{a4dt-}^rUF6(3V z%(9Q4y`0sw{N)Kg`jpExKI|7Om-n+q&pe|y&R*Z?*za2!bK*CS{_Ue=0J*OYZlc$<+i z=lS4K9WK%OfuD?j>0j)bbn}m%vsfp=<^Hqy`0bw4FVtL&|L$r(e7@K;4}Eg6wl6&& zq`V=aH~-Y-4D8GPz12DPy}p~4uPT$HKM}pm-%Zc?Ca*sMF6Z;D&fz}(z8YVW|K9Cl z?Q7YK?xp@~5_;q8g|Dspss!Khkc)M!K>3fyf6w}0>`#~JZ=8?v`s3igG{$<*@!uyE zAKdKY|5)@VPKxbwe$DKoKL#%6Hx|vhOv?oKPwT|9rbkwf(Z!xTTgqm*D1$z1B@sAKEv)T}$?IH&%UF zLT{Y>a5(YF{NDU?&5Wa;4wv)y*RFe&why@XznS`Pj5&2~bwzxKp_lo6A^jGruTF5& z<9`}@nLpRPd1c(@z5heu$CSpLYvSu~Yqg)(!%fdwfJ4yB{{OrEuhjOD)^Drz*ObZ8 z9~{MJdak+m{~x%Nf7u0BXikIs>%SZJWql&e>5FL}JFEX%<(5-#fA$jXtJ&+_NqJ=^ zr~Mp+e>q=*ee|4P^ZEnfvVQY$rgq*$NVemHP3I6Tnm+1J0z22d!ACbwapZ)MJ&nKFH z&Zl|(zHnLp{<8QAwF&qB1NC2(;L92>(fb$w`=FQgWz%!M&g*lkPjb^!zP-`Q`^$fS zVW!$l>!-q{|Ali+IKSoVuR`tDC}+$EKm7i%{@4pHQy#?j;T9iz!Bem=-(Ot&@R?fv zw7wj@eBUXHqu&d?tdAS#{F(Q^CtSv_o9!0H4<~+N<@#5teL4S-!HItl^m2WS(>}d^ zGF;Br+W3?)&5(aDkH?=6YWbUE&i)qTLz^G&r~bqD_b@&%&b`81wNdru3H@p_!uQXx zKQ&r;UeEs0KRs{PdkMZf@yYzh_WZDKde$l$)W3WmG};sNoVDgj=w*MyIQG4MB3$+_ z&1X9PX0;!_U&fb@|6_jwdKtf(p5I2bzfp4q<=->Xdw$z@H)<|stzviOdH?9Y+~6kd zD_AR;0GIu9uRmm;o3yW^{NwR2?b|r(=UzWa_0n&Y5iEZyx-3_ z>+3%LJ=DIuKQGe5%|GR9*7~Ur+PywU%aqnP!DWBWIP2rS{`S`TsY~!14!%+Q8rEW_ z!e#%->n%QbBlhL{fFtJ2(K^Sz*EeYSM#P-;bMJp&wLdb!P0#fmgI?x$r;VJWF{SmR z;qv^6-CwMK-}c@0@%?j!+Rxu#T+@99+!pf_wEUxEJ$&x(w`u!g{qIQSO$lygW&LlO z^8EdU-s+0=y@TQM{G!DNw`&QnCw^HU^W5tXRegPe(-s*^p|3+P=XcQa8*R?(YvIy< zjnig){L?l5Fh2Bf)3g3pgI?}G^tOKI^+%wW{?Bvtwmw*mKAN9r>8s$9f6?3eoUi|5 zHNGUbw!r$|G3r0biO<#tE3q%%C-U~az5?E3h;m!M^Zt)l`=Q=Adh##rqa1zo{y5`a zKMF4E&-f>&v3}><-|5(w{r5DdFJ=Aj6fJ+La(tp+`Sfkt*RuY1vc?y-KjZjE4==;N zJpYJ&<6b`!F3*pdf7b7a&-|aJ@eM1;OVP{wMbOiJ&=1-)uOH#;W0UniIQ<*zKj&%r z!uXA^cR|Qme>+?KhwD4WkGbnM?VnlyJ4?%7q5h3iKKgHX4*&9gTH-VA^(AoWzu;(C z|MULORr_K2jH4%h;tSBr`Rzjb;qa*c$3N?DzWkSI`NR7c`|x?gL;I}1U93FJZ}^1w z*(2nv|6QcTpY=P+k1ekMOtrszg5%%#AoTM7;6nP{;J=U6{(<|;=YRIsZqxc3ANL>dOM@HY zy0{KrG%msKf98g`tz4sgLV{cW#l5&I{%eK@cF$wq>u0I|@=T6?7xXedGCljNUcWP3 z_V4YUh5Pt#j_iBB+KjM#wB;K#{)$-7{^%dK-VnF-ov<(S=R*3MR9~CmrsrPX5xwl+ z**%4Q?|%oly#LEM`>Q_wTd^$ic+{x$xwiT}@k562(q?@{|BmD8r-vwDTs zhkNC2Eq`-dKDgBnd~58VFfrhs%hGQJm-qj{@z4IJ_kW+3zbW9Jf>VAtwuo;_^s>H^ zrRQFKK=lo=-t41?Z-HL&pT!5a^1(Nc?Ax5c&wr@PrCNU0*TXprYv$)}dyU?o@aN$2 z{&UZ7J?mQS%NPsJS3W$!m(8A~V+qE>k7@kX34ZRj*TrM;M^#^*$(bu`M*OnBZ~i&| z>h+t#Wqxd9ez^DlgxW7n@Fzc=rDG}P0-KoJwM$9_?$_gwFPX}IcA@Gk6Wsih>j&Up_9v`QNb6r#`*oQd{d(wSd}eyi4|@OW!liz>XNjNlZIsXA ze@*RYbMEzZ(98P=OwajBukRmm>vQm5JT$!j(0`!zYXi?KFAF)j_&wz{3Eu0Ikkc2u z4KErUbIw=(-1S<`Kk$C)zp(yY)mO)Q;xj$hr!RVGU)CpK-}~DeXNum|+Q}8mR9~6kww6yW z{#xU2NO0Rrps(phd~$!7efAu@{#(`8C%Eac-xa-_udzNMt?vSt{XygG8Tk0W)A*YM z%juqz%R8f&_3J|VA5@>@7C-t<=%xLdefB)O|Bi6UKbF(szW!IJeOcd+`c$~>B~brs zqL=kg z>)We7$xToBRy`?txj!uDr}h8BWqb?gny{zf>#sBRW&MVn2WL+JPA;T=JHh4sgjt+i z`H$MKj5*ie>;L|L!p=I*jw)%x$soZA8r*e*vsmm-M`x1EOk8k>7%_ZtcU@SV;0r9U zxCRI;4!Z;kgain>IEya+)l=PX-|Cyb-~Knh`^;Nar;c==)2C0vd#CYX6aPGGpnlLV zjs12ldHisdpKHa>=&k*6O)1kagT7&KDM$YkdcL2O=_z0I|0CS4Pt4D0zqR{sj&b|L zDm-%(KlzSRJbs?V4RyX(MSB|1AMu}4opTn`CeH2tDcf@)&RQ1Fve$>(`6rQcJ~@4z zXW?r&A6(#5+RvwVKQUWZlO|IVeHy%ztSZgQLd%RlFHMg0$O z+yAaT74YbPb+_MA%JKg_dYgYr&-r3e{~g?(k7`c?JeGeQx8JvvvzK9Qxb2UM`fYoh z>GLP@^DXx6`Rotbo(|4WlYR8xz-@jnedOeSJ@?TMd<)kPDd@%N zKcC^>>R0+M8!qYfEB#jJ?fjE^{8RLH|8x0LXSvT>{U>mH{|2ArROOTXZLn|aFOl!G z{ONi8AEUSRiO9*X^xL_{}Ft@rabwRMdG&DKdpi5Ix7N5;8<^S5_Q~%O`kn#QBIMc^>apJ>&Blhk3 zP>;W#=?^)tT>l>2=AYtAzEdoJFYMd?L^wVp$N#(NS^vxI-!yiqLjL-oZ)f-SnZB0K zLvQONOKz0LSIggl+xK~?6Y96N{`zCTp~rk&`D=Fn0}A~7=F>fw)X&@4xBU~f_N9Ld zZud8Eek1?r)jkHff8HONpOc>!=c)f%J$x?qZG9=~PdF#F4{s~6ANd^gwm%uY>L>Cy z;WodJeex^L_%j6iHb0L1i=V3Hn~mO{Z^(YF{tdTp>krxWpD`z1|MzqI_I=lEPZ@lb zd1M?VX0`}?&g z2_F6Liey*PV0Z!6`*_Y(Gd_s=gf-3eU}1%JE`X98T9skn_`anC%&gM`>H>FWBi~j%pVSM`@Jgc>7#yk+&Ja@4Sx!~ zUH_wA@x%Y*`W_YbY@wk};N${+IJ{wODQB74bKlbrXguqGk>qwAgEf3sF` zBHa2{3=`)_Z z?niG^Cw2e4>ogmGzMpz{vgXm$zr8;f{qO=`e9skT9Qyb@k0$p0xO=R84Yq!Xef<{om$}~d2M2!YxMgN6am%fb zcDC>9-G$!1?+({*QGW;A_Wz%}&B~?m-|zMZRysbiQqH?v*>1*Z({J$d-37P%w|e|W z*Ei3{$u;@8*7Z#Ve)mZWx-a6t25#r;MEm08=l1EA{_lrZE}XTzYxwPxa~H|=e}~)p zM${9({9o_(dzEr*-G<)QKcap4C;q>>zF#RP{#()8{D1f7JLWMdKJ>T1YvNn~wk7iX z-j02H|24*st#@9y&FlA8=l1>fP(Q@_?gRIF`?&?)zL-Dw+&vy~{qI{1p2dzoPvs;Wob4<1?^t z`wQyvE705fYqZ}o`s7uPUw6p)tImfMIDJ+9=X~?e_sj9GHWT%;f`9R-KhN~cZ$ABL@lyS{a4R30 z7{6@IcKbH}4xF(<{A|-VSo?#kPg8#JIj-+r;8A}T{%w4rOlA5r;nx1p#Qf`j-*)@< z{2*|~Pw~@D-(d55_}J|JhVe^$p6iDcc+{VUe>)$5GL`91g`0idpVi)ft;YSC&2PBB zp-$o0;{J^5!jb#%FJSyGfx;ivQrew{!A?p0NZ@e!h3!Z9cB@edoNfz+?W7n{M&j^MA(QXkYqc;eTnIkIVnj z#v4BD!e@6 z_5J4K(jQ8EHoqmlX&YYW`H%WT;3p3C@lo}w_=$B9w?BA3uKMo)xBbJ|l%BCp{9x=` z`;Q#^;s?Pkf3;lgXEFDmULRyX>JLP3`-fB}+CToKp9;6{$J75PKm8Z3@ozbgKb^mk zQ#f@Er~Dn=f7*YE8BSjqaQvCx*OqqP;`SqFd?A)8__zHf_>WxrNyZ!O{t#Z~e_4-j zuye{J|HOy=1JIv7+WQ}R^?$`b9&YP5l!@{yKPvyqZhuJ5DKohgU(xwa1x{NMAB%mP zU)HuS@s&J3_4ydn^Zq}2;*b8fw(HOSa9dxhtzYc(zpJ|aN?pDm`d^xylfPJg^!vgO z8&&uExrW=f=O5Yn$Jw@~5!W~NHhqK5f7RxxAFl7jhp!DXeJyXx+RwVq+vd|hlC__8 z;P(Ds)N_9zz8CS^`E!xuUwlvak~_}F<$rzmZ~G&%KCAep-^25h-v6lm;a~dQ;kJJO zedH?tMs7d7KPuz9q0jP%P5fhD`d#6B4y`QwhaF}dVL4^ZjkPkZKfUewX(@2NB`W?$ z=e_Fk&EdAb744&6oVDm}yCs`BA6&WVlFeqYeusbY-}`Tt>_U9@eMRYap1nnK$bL(E ztmt<#PWwQQO?b!lE6h-QTY7v03;dTMEBODizBU@Yoe%MFQ~F!2erxnLzlnU|Kddlg z;-zc(`rJtL2R2%K>2FcL{Eta89B%tN(34;I87nN9$9Julzi)+@#V`0QV@AkKzvuvKr z?#`Q>FFbuc=f4bDF6Z5xSDbg+Gvy7hRQWI~Kl4}OE7K2!+xb55GXE8~Z|@fwKjXX9 z{zI!*?GHh3_aF82gW)zmhR6J=t@I4`Ke~PcFW=@Tb*;$3eVP3>^na*S z$Z52%vbMr){ehfDJ-MR(24wc(j~|uBH|_CdJ(uwQ&ilAtHt{8WbKo(5;secpgU#>B zY1H$-&wf@(`orz|iOuMr|4nYLBu#L8|C^X%{QU2&=T(vx_uu9`mS4Otdb>X%=TXo9 zb|2n7=?%B@b!q>x{m{Q@|HCr-aMkJ8e_B58A43DD&(h{^x}?g71ddJkw8yKwC;sjI zV1BFB-+Eq>G{To{vGHa3f`9(^zA;JC18)2Ci7CcUtiSh9k`eBIsPkX9TG##WynSj5 z-VMF&|L3=;=YPj`NRm;mPkHQr;$5=%>61~<|8~5lG1(q&_m8yiIQ|eH{1EInr2Vg! zldE0f?faTO9h3R(!p|0+@%koz@UraU@zMXv`F7@?`)7^mwfb%0pA7K$WRvkxb-l0K zZ!7RsUSA~VdpU0@@IOsoH0OIdPs=a+#4r2X;NRXKAV1Cu46aB~XkHx;df5J6E@e#jljdB0=`IgvkzenX?)0Qsi zRhBK__Iwck>c7$dB)8vM;Ab{2oab*s=0EChx}?fC$G)x4!8N`_{Y2NN`4?aDxT=0L z^frE=*Z39no5F2;g=_qa@gL~+i@fQyh4T2PI!~`3(zh;N^}h-B?fE|T)xV;?Gu)n^ z!PP&b|AVn_=VM0x`TAA=e?V{F7ldnki29A;Hvgyo)j#pC{(Yv$-?hMLf3MlS#CETA zOOA8izrblf;zz?91{64bRs0B#zo*4l?cZ?P;^U3ok_|1s2D?7T_R0TBf0XO{6xtvB zE9*;hCw5ELM{nx`=+!1^tJ1FvxAzz2pL;@$Klne^%U6xBmajwp2HXC;a8DWaYr}^( zS6=>p(LBE~e&aHQ}uPgfTVxKh6F3DsaXp}&c_*lsK3?F+xRY$xAj@s#C|OQ(JznQ_J5ag?k|^v+x}_UtS$dlZojp_8GjjT zx&NJ(`Hy;W>@SObn;({O^vl5Qd^l-p{a@qun@TzQj_B?CfA#cB!?XFN#>6=Pd(`bW z`~ADPY+?WQ%s=M=TT5Xy3eKWj$Yd*fh)fefXH^JKttIL-nep?@4 ze3k#GUlP9iVE3;vC;Gp|?T@a@mq2g(Lm1P`^ozr7{fqKz%#Y>&yW6+#FV^9Up||}F zTtCY6i^6Svh541njF|tsv2XkLncs-3uhD<*a{rBW`68Kr;w#g4fLr_1{0^JZ|NWVN z&A+_QhW>q@`yZOm&uaO?*gw{9Zoh9`-hkfTuVemNrf(0o>nH0k8Z%=5d)~{} zH=m!;=SIDo&M%mMJ>$G*KL3Jqf2R4>lg^tenqR@=`2B>(-&mKoBR*SSp!|w2>VJR8 zxXsU*|LLAC`hVK(_o>T&LvQ&ZzB2u@pK^!TdtZ}h~k`S(xwxBHiR z`XAx8zZ(D2ME|e4f7UP3`9D5yx+IN{`Tr~Kzh7PcU+ib=1F|3WKfrDNf`8T@uo?Z& za{IRbst*4ieYQSPrvDB;se7LPHEhi!=6??M+YiV&YnE_gWqtHb_upKXe~W#aU$Oql zoViy24cx{Tt&ifr*B{gT@xO1m{Q-6P*XZqhebrB`{y%V=pR@i;`>tKTo`-$=zE@md zW__DjSzrDN{p$TH>T_KGV}3sN`1%)k>>nS(ZGU{!$Nu?&`yX1$Szq}Q|91abPyYqn z_BYEW@kRgtcKd@%IqO58qqqC}diu}czCWP4rV`8ljhCP2_f;O-=V#6b7kKQSpP2my zd%myVh(GGT^7sdqa{9uTZlCqVv`wN{|Di8_O#IgV^jox#{@-w$A4Yxj|FzriQ{b|N z{v-5uzQ2Bp_GybB!fk$!O|2Ql{QZFa_LT~4K63T1@4fturJVlp0ru_sRZssu+`bQs ze{2$8>|Z~+{Yoh({`b(^`GNKH@4{{UQu~+LbIkL(4%UCz-`tM<&9;6~%UO$n|LXpG z=Fj(}-{1B^Zgte;Tf&cs=Kf!tMQls9)g7w{pI)>-!WqYYDQy zkmslWeEbm05B}#8-;velS7$HTGvWCZ`itH_B$)%Z@uAkg^ozKE#^3b$9pz)KLHteh zc72PS_{C?#ZT(Gr(RB_;D8Km9ZogW7_|$*T$@vm+yFZTlwFgw~zkz*wKSX@ul|}th zu5T{zrKZo#?Z1wG!@)U!c+rUk|FhtBeL31Dr#Ex^%esHAKWYBp z*MDB+uVLTzABx{Qrl?=u_0{K_@E4k^`d4e>yXL{7{uQ|0AISb9J4`CX-^t@2Uf^?2 zot?-3GWtVD=6vKeMg7XIA64Mp?|viKzl7f2-;n>^KPl>G!tMQkJzwRXK>dgIxtf>1 z&F){T&s5=zb^F}DfAS*wJy@SepU#K>Qu z{I-6=o`f>}^Kj0;xANpPuoUKi)r7|Lc$a_DzNO;o4u`4{qoC#PZ=w zd$oHz?^EEEMSG=tx&6NL@wwUiD-RLhe+JFRrGF4^^&j&S{r7eI>{e+!+ZxAz0;@w?F5{DJmSX8%sO^$*4j)oCpMj#>F5 zr!F*Bjdb2z&__PPdD?$uKemrM@c;E-*DI${e>>dvm&P$I^3h)Yt?Kf>qqp~`V@{*~ zwygY&d1`a9{JVPmY5ObVyEyOV?Jsim&s(u?^&5Rg`?tVt{vXHO$Zs~@VDo>jFN_IX zzu~%mPxkWL`~QJ6K5PH|zRm|0IAb~c^XMP@c>Du$&YnX!drjecJFnVj&m&y>gKs20 zo4<4Y(*9cM`QIDh_I)btxg~!2$Jcdmdq0HVRK6Jh0q#G&KEctz72i1LO}QSQaK$$k zZuc*;4=2~+*P8$KFID~5>aT&@`Elq~KJ@tKean?Ghb zCqL-5|96txPp|LTgwxl>r=hp?$$I)L;kG`7M){5H=Ty&M*ZDa6i>d#^-M`K6O)vlS zCG9^xPOpz;_AiCo`ys@n z_C z7oThP8!Uc))BgFWKN~)w)#KCq69xZpyZ>N*icQvcS>Mt8?I-tNpFa+7NcSh#>RBth zFe_iJeXZ49;JlyDKea#kg^!PW1kU>LpPd)?FLOSC_!;Ea)^FnabJU*>eZH$&sXtFhl;C4R1 zkUch=Ar0}#|JCllc|QJ%eam_E>o!ZSa{vA3<9w?Hej@hm`8M`*pJreB6X3T0eCO>q zn;}i~f34fE%*R`@{2Y(o&UZsEn^Aup+}1C;{9&^h(!~7V=;a$WAK%T+^4oK#&6B@o z<*U_;AB%mPf54S9?28`*xB2hU%WXD8zeWE?8E@EUL|#9%2{`?a_IHQ--+ewl)Xral z-{$eRRqlIg(-~@0=;4DG*dn>r^~2}moZkXJlK8Ct>*P=%aBcdeZE$IINY9(z!j6q&;LH)<>UGJ{JhU;0Dgwm$#r+MCYMZ;B89_q+Yx^Ks5cf**q3t`GI}2g7ZC zp!m?pKIMPZ%iomiBj5M-Et2WZ``PomO=rlb^pj56B013PH`w~B{PUYQ`bW^)`)~F5 zRN}Ms1ME}&TKyEbU0)SHHnGqD68~dvzgmB_d@_35e~W+Wzm`ve+xe%ge`?I0zEXpa z|Ew>*>Gqon`}@{zIL|q2=}&upiu(t}Su1@CZs!Zc{ey6PvDSZp`Dg!r>*CetOP$}i z-0hL1SfKlb6TI&UfHSw9zl(RuFz=lOv63vk;%8vTn8?=m47 zNB(Sn9Xad&(*Mi#)$$Xc__fzgNXDYK^NXXN=MU14fm{EGT=5V5W_|nhwqKPCjat(=jd_CUL{=ZXGY_=WKX!AU#a#_{lxY^ z*Zs4acj(*quP7$??6pqz_<5G}mD_JCaK%Ua_`vzl zQcnKfbv~q&Q~up3pRF(4_{c2xiGSHg|33PLL8YAh?uy=?zb*RdYo+>K;8y;hcb=aU z|K}dx;8ITe{N(@PcYHBE`Pk#@U8<*j?u>t%e?KvFe*frqg4_OqGLHYx-2bprj($h< zwm#5!@~iWeAN^>!J%2p#j92F4l>bYQzh5b5{1}Da^84DoFPG{^!ma;4v2m5h_VcyJ zKcK)>zqGFr=#L6+F#c3_dm(c3CGa>``h698mS&ir&W8dioZ)t&hOV%D<@FPxHh6Q{q3b^5;DMf#`>%zmL|sW{jB4N>0@Zu?VWeq;Mv(c>%T@09(I$?dP;JT0H{JLbI;a^4sF zS^X)0QQrstx75Dge~SKB3jW3S*skioH~Lpcd;F@CsP6^O>WAwu?IZTTwXxs6XN5i` zPX1MvHJtY~`{_L?dbsL(b&rqsQ_g$h-_A$Vm|3e&GLC=QjQ-bh`+YsWGTw;3e@kWN zf#((Us_P2e=D*ah`d=*n`ffk%-{L2oeMDY=>p3s>-z(2QD(5}0Z_nScukj)3yThMO z#|Mos(f@|nxAPs*i?8upb$slG-sZ<}y&o3!UE%h8I*!lekG-Od^*ud)zE5>|UZ><* zd^_i@&gGx+PyCP0+nj66?$r6RoNpfV;={JNJm;Ii?fb#_7jHcI@<+8lZU>9M!S;{n zH`<5v?2p?He#NK?zez9u>~GsT^AFelxKs8| z1Gk1-ez6(-^S|s*+!AiiK1_Y!qMUbg-qX3-H`gEOyE^aVT!e>5?)M+nH3N;$`0tN>d;X{RnBPRc zis_jjYJ9HcE5q&jNdHxt;{D$~*th*Dv=4E{N41Yp&UhIcY<5{CBL#6{SR~d1M2b>(cAkM#8;+Y0dDI{ zv_F+8mVcz%=lgf%e0lVC{U*LL{c>G8{c)Gr0M^8xWMo6-N?nf-cvN%YqL7{AK&OTcaa1N}#RBKDujUcMnd z{)<2Thi^j&z}EMKG~1@#o)HS zrt25ioaldo+fU<@&&U@=Z|$G!R~cUfZta)rr^*z|KgsP6t;;*0x9bP-mFX9TXZhDP zHRk_F&tI?n{(@_E%bSPz{R{UG2RrYPU;p7B9(b7FD{%ck$m44)aN^hf!9w`A_xpAK zP^(`MKCzqomnQl@-2L~=?@#c#^vpv&KJHHrbN@+Qz5w=Z{}ldZKk6IcmVe!IVKe$a z!tK}R?a|x!({xW&t8bUt*Zm(kjrl(o`}Y2-IQM*TV&(qz823M-F8}>OliT_Q_m9+X zt^PN-UEg(o>2)*P+tkwSlxATXze!}&W^%Le&te^Z0xA#-D zf0;EIo=Os`T;w3G}DJ8&dma???QE|FKp3@%;+) zKf>+#m-dI(`d^s%?EMVhDWFVn_S&qu)W-JwZgMgU|LsN=IBTKecfcD)lycV3&W2n4 zYfYXt%eB`|*UwpB{4ep@{`BZy_R(L3-u8crvu4ZsJpSRAIB&~2Ymz*l5I-Mo?|Euv+=Q>{#&@ce=h%M zc>W>(7rXsx{%iR+=*R7n>xn7qzlPiSqexNwo*=Aer5I> z?D@a+s$b$q{{`I6Pm_P1nNa_5{7=KaoxdA7ZAJVu^a~Bn+fUSE{}Z_FPuDXW+OOIV zWx2ua+x0Db<~3;8xP<2?*oR*ax9?NvnM~xY|6k|4tuFuA{I@@GaL#$=Ap7Y54S%*J z_s?(mlK&5h-{$|fK9xSxiShHlw|V^beZ9c9y=9i`@%1<7tp(1r7VN`s_V~*=W&MEo zuIXP_|33VbVfphF;*0)ob^F!lFOg&aJ@hvJ*YlsqiSJ$b#Y6MwFKASMl>c_OUwwX4 z%jcoD`MI9&U^D99f!q9E{fjX}obl~0?A!Ua8lUzUJ~7ew#JfIkqqp^?dip2PTlq;&fopu?U8RTN_Ix$!HU99f)Pv58@vDE|@Ye&92i$&RLC;u2{lniP{@3~y zc+}5@+xz_*pSY$)|I^)mpSpYwdYeCDQ`f|(e-m!kM}C9r{V(F9{BIa%eL?+S?{~q; z-{V>NBiH!ByIPNVe0G17J+s#PU+Cepuy5t7tzYq1;dcGk_(lE4`g_9tSI0NC5A?K; zmoxj)>-{jrKND`{*Z4!3V*7hOi$8LWACG-GDS5{IHy898KX_N{U)Z<&Yy9H3sDIAw zHy1c#3Gre7pQdMhpq~B(xUElV{K0;V{}s32Bj>z-rtyLPHPg9$zcU-Z^nM!t;V(M3 z?|;_e&*R_jUnmppr&j-57Qe=qTK_M*{p#~)IAewUKa1Y>U)0k-1Gn~}@giIRlMg2!^e`G1=UhVB$-GzgB-Y z+@7zg{9K=uU+V8`x8GRc_@aK`ccJgmtH7iFPPonQ)c?@n3qAesXYAYaNA2$rCsxMt z|7QNhxjv{Z!he8U|5f{qoNL7$__yZ+(sRv<`rF|P^vHRw|DW7{Th6)usjcGw@93?6 z%6_f>Hn^=n)+>K|pC69QIq|E1lAm_)hHCtgvaTOd;L_v&a?>~1`S{W^zC``Shu5{gu9v^LV1M3=E4zK}1^zTi6JlI>jI zTHr^|nd9rf@IN{qJRipve9Pcp_7B|U9bXHEpOe)e!%$#x+j`I8!>-Y0n z@8rDA%U|q&1Mi;a?F0S5|A#NQ%=qNEtbDQkJbTx>xxUr)l|uUxAGQ31-tG5xt}*YGu4!L+{`_&tKF)g<_*Pe?{HJl_ zlHK7AeF|KCja=*kxBE}E8OAjAW$Nm1;CNuq=P7lUn_uaJ&B$ zXH1Ck@9FXPuPCRHlgmTU+y4K0`n_F0u)q~R`h(Hi{7Ck1ytU~6AowXGDzq8$50CjD z~0rziRzWh1>po`InySKlMM( z?GMcDkD6Dt51)eG&exQE^s*W z6>P$H+9u_c1wP4nQ-z$tKWt4oxpaWSRaDkFRejM?W6@yvCeUzUY4( z{DSUz{yUwV_J49g|3Av@5A^)8|0430MvY7U1h@UajdR}e{TbrqdfjElC1bH~;~)7i z(;w-2d%m9OPnn(iN00q6=%+U3^@n}xpZKu9KiuZWYCqK3+`pup_>aTBeV-bRO*p>1 z{_h``9P8yP=d|Dbuy5z1N{`Q|-xqH4?-5_U?d=zie|+Kp1ouDCIpwEJ!&~3V`9A2a ze(UK^a(&-ikA3M!S^RsWxAA*wbLt=a_{SIi_k!F01@3vczrXsy>izZ4uiN`yUjF{h z8UG`vE*^0IgLBS3-BQcW_G=0Ja@RLGC#UewPE0xX7iYM>mvhDp?msR)IKBUa@0rD~ zd+MmaHXfCGz*LO6_CoeCNFj{H^;_&b`t(@b+y5{`xbsy)SVuw+H_1{!8|U zeY<}W_2;?1>K`sW_IF2b^{;!bTK#TtyMBuwv)Y&>#(#m^uj=9QPx*F5Z|hUKXRg)n z0zYRL=j8vfQDgG_lfO&c{?H0JFXI_WyMI8>Z`l9j+%&(l zue7-a-0m-lua={~4EuJzuHr|p@}u7oz0HqhAOEtCel+}`ByWEmO%vPS&Dgj7skCqU z95xqPB5hxc6<2%tdQ}*c;mf_7a&iH`%H!)_${EW?;oqMBN`JyyW8J>=BQuVFe#8I6 zmDE4_>)n2{$47qP=9PhGc7r+w&hd z@x!-$j(UwZr`4-WNQZT`a-TA&&pTE8S5T(-g`bh`DLtq z#CeZWzSHdelV;+x`#ag^`oj8$^i6QPK59%yqxBK|Kj!wEO8MXgZ2p~l}^owqn=%!r(^^eN~4O8JaNTc5zc?a$IRg)+%M`rdH6 zKV?kDKN@lTKbyr@#_t_teI32+ZxhF6)c1tj^Hs)l%8v$)FUtRd+voel^Yclk*k)Dq zHoq4qrl@a(+xZIgIocl@xaZp1-%D7owt_qg`OXiRIqRT2m2ZyWFLJG zxLyAl6Y!4)&i~T>UvvA-&gnCe)0bX#-nW$Rw#C?_JNE7Ri+zo6vX8zS+}bNPw?Cki?{mAY|Dm__Iq9((^@7(%L_YZ&H z{r7Xu{`SaMm@+Pz=lY(`i64H*&Z(Yz*|(gx<(x6|`!mw99=-$d^|Af6wq{kU|5u-J z$vf`9oFDM**kpV3cK)99*q49w+re#qk5A%9L;3JU{O`H_)>4jsTl7|c(ob7|TtUB0 z#>p@FL-W%jY5BAzmWL(U-)L|?fI{G z)Z^=WkFQ55r!1SIx99KD%Rc2tzX|-p9-cpbBY$houIBG&&rg!`P4-Olqx}Bl{s)xu z^Zz<7>5Tp9RlV{n{U6|VKEfI8-}IbE|NQT-ZogkCCzg%T+x1y`@}v0CZv?mZ4`@I5 zWc;}Iy|n!h--7=9$=2WO{zcbz>9HC0>%$M|n#YfZ`0+*ji+KO&nR9%S3-J!_zjrC8FRq7uTR&BP z$Z6EC3%B)0#x(L5{qw(zx&2RBPDw0W*MTtCPkZFM>9 z+xih2_@*1#nxJuFfp>J?T%pe4?C*usmf=f#d`T&%t*nKA+kaC}zb4$iAB=x&M*rxS zb^FbwoLJUCZ}&ISlM}^{es#Fb-zh(3isk2jJGuR#&Z*PLsf!hzk1FNYeKyr1*_&bepenaZwR(&r!WEj&K^{$ut`C-Q;aCL|lXzOBG# zKAh?YZ8jlU$9bOu*RzxntJu2?ZhuHA=lRk~l+Whh^3OAwsP6=~^8x3s@Sfk(!lVBU z+sidObtWY1yZ^qWocLD6zJ1?7_Iaig^((;b`Tq$|q|bNY(f>wnzpa$xe|hw_ zz9Id0y^8wfGXK91OrOcYRX^l^Q|#OOMSuMzedc%d(3Eq358ov7U&dRvoscYx{gZ~| z`n`55>X(6Ae({e@{I5MVtzYz;yZsTRociyG-rk>(p7^4EY4~L$^7coa&+J-le~s90 z$N5C*GetOMQTyJ(d7lDTE@{8p!rQ0znUkPbUBb8V_}O1twIBIX#OLp)rJObq`I7K2 z|6u#e)Ak3C{FM4^FO?pKk7- z^Oei_V%WF!dvWS4>KBFE{mlYLrvBm4f5q+denL541ij7A#A!28-vMst=XC1)uFu)v z)IV*F`ss~*`+oWLpU-nnn}$=D@Lrk!dVFE*+xmm}pPGyMh2XY+f`4q{fA2@D{`2)Z zEpU6ko-qN=GZQ#vfe&>1t)-m4-avd-|I+hJBkJ43?R-`IV-x>8i@`top&nnebLtGv zvragDeUS5^&iM__vq=7CENPedXUr_q5Apcz`DO`6|N8?LpIzU@d8Qft{|2}F55^qg zhZ8@(h<~`-xAPN9IPw3A-oF1NPJW~Q7kH(2<;dyj^HcK2^_9Ay{&sZxeM|WbSK9e% zo}d2CnRB7%SrU5c?`Q1W`ccOPQ~Nwq!ao0t{wKJdk1hY=^1rj&@0Z($%Rc%a(OdtM z{in7cpW7$?|HAG5iZ)IAC1<_wOxL>Ue`DPKKJU@9X6+=S%N0A=wLV*Dv}s zddiHR_~CnI`Z7*m{(<;xeL$QtMg8}1TmK_|Y!V;2B0lu{g!pPXefhf@J@G~Tw{Yt} zhwYojkIkPCPUENi`@8*?y8IjT_Wr)~lsW3ZhTHnU6PLf^`KNs3pIl*oauz=t>L>Cm zj+u}g0JrsRIO7Za#ud_M!CeoYkW6sB?O!b6#PT2f+x{|f+Cm~s z3;&bcey>uF|1Z(o{7(A)KPc+IfLs4n`H5-rGHLvj{~#}4FX#A#V@vrt(EZ!{5thF) z{yFyT{eE#`iu%vs_Wb+7OVjef@sBP1AL91epHwA~-Ck`K<9P9cv=d>U6tR>-p z=Mm$Rqn!71PMP6)zRg(iG4b2@%a|1P{4e@r+<#LkNB?j1*1n`?%?kh0e+0Mng`HMO z*XQ7r4`0N8yxTA5`2P^S&F`fj(qVi-{{h_APiWKRkC=A7CG}7KPV(|MJI5zBu|<6F z_tD$;KkDgEaeZ5^$G-IRmG{uw_hINW_{To}@rC_&;r9L*zs2?er~a>W`@?e1ng#Dd zieCtC-=lK$38|hnH#l=`^ykCv{rNJ^yH;np{k}QBbEWagnlH?8{RDd#>>Z1*!TK-1 z5nr^A{v5a8wZK`+!#}p(rhGQPt*1ZF^+g`_Z=tvAQ>~s@@IM!B&ks~Sd{TZm<-fqo z*IMAR1)qc7zQ3n;dTaG>X8x%k%0&K&kNlIL%RGL2K4ERTmSgK;c>6&W+BBT}p{Fgt zXJg;iN6PfH4`b&UxVBHnKH%p%ip~Jca7U0Rmyo6@oIRxVFj+WR`{#fxAg(N)2s0l`|wxb zw*OxK$*=ww|JS+yzNMUZ9bZOo@3%+2-cLq9(|ChDf9|$rI)0NA+6wj0_2G`JeDrT( zikx=|Z-KYpx$^iDDJSRX$u<0M&WFy&u?4>w-fpJ?S6hd_Nc>lh_V=^V$iDRdg5SUU ze0u!9-(f=XLRLQF=QrZVKIMbo=J5@wY|^F3X+KB&Ha>YC`?f!!p8j^%56kt$hkf+e ze-6FXpT2Y3%OAzQ&Htq*CsF?h+^+BV$0q*C zh5SG3_M7YShtb>mk@UnD_0!>Y{bPSW?Sq(EKW6^T`$cyj&-l?)m+uI-_g}QWjGk)= z`juawlq~0Z`~In|pXr`e>l5%#JpTR#&Rhch1Dj7w-h;R6o3FoNpSha&>&{cX=9F3= zL;ot=&Y#!%9eSu)Nb%8&jXFMoIE6E98I#I$|}pXMg^*gxyqkr4|4=ixj!l*y^J?QQJPV2w5`n%yaf6)3FobprF ze=KR|AGrOd0%t8x{4Vsi|A3fc{>1Nu+x`qRYM-<}{`bia6O)hJKId1Z>jU`L`Xc;8 z=bSH6<;>NkzXSWW{-^bYTK(;Cd;eeadpQ1CYxv7g2P7Z6{eA_`TvYt;=xu+#);DVP zx4~_HKhH-f-vS@mnfTfIApP$*x8IUKKcP%|ez4Tm_Wru_>hl}wOwTXiUpeoe>uK|P z{sR9J-q2jiTQ;1O+)8|Q{n7Iq`efAK0=My3eKz_>|E>G)mUG&)p1;7qasNF_`Ls@x zlD}c!*3V?0_@n-2_<-*D^Oxu!{r7IaYbjs7-K69u^me|##suP1{?OkDe>d^=uQsFn zqyHKEw!W?QtNNk+PWozM@{{}TRmyLBe`4}i>|6hpo<4(p>2HAB^I`QrxSqe@|5vx) zr`2p&maIN3re<8Qur<9|=8ofQ=m7e;E`m5l# zj`Z>?=Ggxh^YV?#*VnPB_4RhNK|BzDtz-g0`Y1p^(O|?Ex%u#!Ixw(IY)Be_V{qO?kUR!-(4cCuwu6sJ}Ma5Tjp897^ ziSb?QkF@nwoZI;?=3kt(MCmW4e0F`)`fRQKBDl@Jwf+dlKelGQa6q!U+vok!bbS)e zy`=bG(A)lYVv6yLUkJDFyX*cLJ>}(_y7ofN2%esGs z>;4t}I$3;?V@vk`jNabw*8P30{(QL2AIXn=#`@dP?c4W#jH^sq-==;yfZP3V8DD(r z#N<5e+xmbwbr$vK!Yx1KFZ#z9`p)h@o&OkaNv{&~NJYcPr%=_L-QRh2Fm3r~KkS>d(wLbr$;%Wu^c0aQj1jekacS z8;<=Q;O&Rx^Hb_i^YhKRO-%mi`s(}^uKDZRw;zyf4Y%(HYJLl6ennq}pFw=~eZ_GG={C=N_yE>{=2)roD=^^HU4Qo(f^5=ecFU_qV*f|3|@XeuXBMAI|k}xR)<|z9CNi5DW1Qa{o>F^9#ld zJ->jrxxSp=^SRwC;or`$W=v#!Bfn991l-o27_*{({ulia?A!MhRln4q+E>dn6O%uo zxAu)*ZCdMt=!bcH)%8R4;^+@YZ}%V4Q$BI@hrw-qh5RWd?jMxDk)EIG`=8`Q&&SB` zq3Est^?VDP=*cg9w8v-bi`nzD$UBXjlpKQIzCR|8{ir_}{%kj2zriNsUtHh0#O>Su z=Ine4xXu?~{b!uVZ?9Qo=c~YV{|DdK^~3Y?6`0eAFSX9(WDnO5%sF#1y^9au-Sw@d z{MU|?lY@xg)~9rS19Qr#KM-!`S82`|{iEN@{kIgj-sSK5(*@EY(G$P) z*q?&l&NtDVG5W{;WVp5Om_MDBK>qgk@>kElA-|dn!zZD)`MvbakE4F9>(ldjxW9)h zSLi3AxAzOACx20Y0NlM_uy6aHBiH#AGv`iD#-hJt+X9dJLtJ0UIc;8g?2kcj*C&-P z`p5qM8K+NCzcK&h=LpYV_xyYZapp%;4xOC*$$8IG{=lA-ll`!7>u=1tu+N-``jviP zxXmB%&u?&@4}t%q+HaH+;-a73O4R?eA>2KV&{mtUo_AIXTUF zV}UcidS9^eod~z{nX%8Dj%%XM2cY~XxW0cW|8grEKZwtsA4^Yuqkd2LSv%$D1JHl) zk1zBmyZ_<&`2cX85Af5claf8q+x(O{yUHK+r)KfPxuy`m^w{4WeJ4Br*secO&;Me7 zH~0&c{Co#~qkk)ZXJEg*t#4=NJ75z|{N#66^j3bI4^gW>%k=|ty*T>Q#!OCj33}y( zcV*>&XSl6D(P!Y)37qv|#-9t^e!q&&4-uy=-m}z{$-%U<-!v1Ze zT(35v^FPr48NJQlbiN4o#nJDG-rm0ur%j8a9}TzqBYyQ6o!>$Hf5Cpc(fRoy^ckHW z0w0C`hY|VtAJ~uji#@)fr5yhw(cANX#zg#MKk7%oZGAHz|JRvZxc*=3@l~%cj8B}k zfGw^cS2?dDG$pCJ9g zSK2kn;*nn<%I*Vm~_h2WEsw9wDTABey%voKk#@&^ z*dK>|?SDew4Q}_}I~oe|(Xj z?clb)LjNW|*wp*=^zXS@`MIYPCx6_l{W5b>G8=Bs_n5OsPX6F;xV}fee-HcU@qhHC zHW$v~L(gxNS^M|UZv$VoPyYTmdbs@0ar<`uL8ceSKlcBK-ugH3t4?`WRr;;r_WY0X z!&$S4<$n+R_WpR}=rz8*e|fV5IoT9$-{&JI^lADm*BAJNT_z{ryZxpDXMZ?lA-*r+cD^ZXMtV4H zZOi8-C12Fx{4e}-c*F4d^l;8+-h}vU{E&V61ooxx47c_XIr}r^e`Di(pOy0Q8+y3n z|Hl3I&EIbqr>%cDZ&LEL^RA_w_&36T_ntYYO=DmB4dFKb$G`fN-oGY)-?{yAj{gnN zpVuYV(>|hpeYnl4_=o7e#OHKQX2#X6a9EvGe!Q z4@&j2sq+gMKURge_Vo9|)n>>a|I7HXR91d$MvkxdSDlAW$2e_r*YSXRNl?T?e5 zHj91fSBBgB4|+eH@r zR}w$J!8vP8`qe!Cex)4!a_H^(xb&=vME$aGo8OZ^Y{FyyHuUlrxz4}a{@N+YdhWkD zKOYah_#Q`1N!IrA4a?8B6Q5}76XbuH%s+Et{Iez!_3OI6HP?%y$9_ljw!VO#-{3kQ z556?qo^Mk=IBPcI#J_=;FFl`AYgU&ZoSq*DUkd$pRr|I2CEb3X{CqmfME>wa`&%O8 zlqt4v%1Zm)*7IlU#-^zIFZz`psOQp5LPOD^B}e486_I@ejwQIQm85Pp9W!#qufst+V)aeum12 zty|BVoNVR1dOk3l6TaQWZH?N`t5ik$ctMsN3T(i2nE zF9f&i1NDbZaspTV^}xP;zaesL!KweQ?!S8eA9^@_`TjkpBwd{M%FhRkoc_BY{_Xul zoxe!TQNIA(o?qc#V}{O8#D90U-@laOzag_PJ?%H@+r#boI&E5QE|$Ni+wYT~pGJIe zVp;OgDM{kIM=8gDJM7!_Q|GVI=A-`i`;A}Jn4b@aCi?H~_RBft{|$W>zha8|U*UHD zuknxdFSxEhqp@$_uZ>*eBWp=b&eQXM(V*A(!TQ-R*thw=);t-LqJB`8AJ)`pGm*D_ zYU^)sTOYw@EnoNXDakw7jXZ+j#bM*WM*ZHsTpWvOV=gTtYiQ~V`?f1&{ zwfsl)ANI-5pM`T)A-O>RU${O0SNX|_IQbjq<+uC$f28q6e%^*tlcDb4<`04EtVQ?_ z*th&@O|n-1J>1UEk$=`4rN{pWw{Pn=*_t$5XH7obHZ}PUy{!*K9`&PK-<)&SAEn3s zx9IKuUGYc%*#8D@@4slxk~SOL-#(t7RzF`-V~Y5U#;M7!&a3A;N>5$yGopI;d{?c*!# z+w&Rei8<=Ogxm8?U!;^;qz+x%DgMxVc#Wgq>g8JB-FaB_|Rac;kV9$)0NuTRk1`hxV> zjQWq^c75YF=9GNjr*ruJ&|)Xq_|lMmU$d68mtmI^;Vq?lcmv$_SIIu-&n~&x%ijNa zmwQH5KX9(uk#iR0Iq-J&{#W1~uYAq*oCSBH>w7z={i7G>eAC07S4uf&u^!?){k~Py zlV8q~J=l5bzm{`W?Z3&NoxezYaL%{Izw{r$?fMMoH#AG$oW_s;!`yzCQqEbkAJ*uJ zDe6Cf+x@@%qgmv^)IQ}u&h1zIN6uNUM>|jJhyD>cXUQJre5l*6<(yUfKK||bIR4?3 zN&eBl2j~60to&%&y`08}|6|>Lw^GhoweO<0>#y|KjQV+S+yABVqxt3CH2;+U1h-#p zACYqw?K|jg{abosiu$+VcKw3WKGFR5i`TraX@94>{giY65IN`5p5lC<>uWh@(Y}TK z(`*p|7b=pI?MkT|7W`WG{4+`Mb25WXE;yWXD#Qf+Bw+I+9w>J zvXA~vxScPo@}oI=i&=iJhySzPel@N2yQM>R*C?H!SDTKWFh@?e?pBxctLsqPOq&seHBi7vc7NR~pK!_C@>o7u?oA z)c)vy;jzDqrYNQUVpXv=iv5! zy~>YI%FkFu`ESR*ozD=t;%9vLJ3QnEy*OvRK8t-je^7eLeEZ$6=HtsVa64Z?zt#G` z)9nu~<($v|bQZt#_>A#C1-JJ{6ccSq^^g8O&tJcsld~T#f7$B~ey{saN;%(WcoO@z ze@FI-KkA==+x}wJN%W8Yq0GM8ROEc0;z77QKZty2YkGeL{|EMMey8?dtA8AB=U2%; zeO7w>KkVi2m2=8J>rZL>hd+ki=Feq%zCZD(>x=fKhtJ6Lia+{yJ>1rZx&CnfN&TI> z!OPx0xPSbQmp{FK5MO28wEb|_$4k!B`=9jw)y{;^t~H!r`<%y@UZ3Hdxw^%zl`>vNHF*6cr>r}xjboU?2n#J=snp?q-qyzHZY z0B-xE;rK^$cai^tS#ZJvO8MKDgZ1uIcv?chx#AnyZ^6F3A0|Eh zW70~m`MoaskF)s8IBorJ=sy~j>#-U2H^XN&iQ<^+x@%r#2ocE!tME->I@$Jf93Z3lyc5T|0{Z{f9Z)S>TiJC^LukbIKe!_P_V?S2_9n@}pNg|M2fz-<0bk=UWTcaT;_^MBPz^w0M( z{_Fm$oO`D8M!n+KFYI57-uA!M)Boi9-UTi_v0j6I%yt#UgneBf@qabk&c9Tf$EP^g z&)?ntumbNe_hruy{5Q|fu!`ygy*Ot9UWI*|zsWv19kJ0X-oDUJgWLT@)JOmAeSK&^ z&e6+0`YX}f`mo9uEX;3`Tp<{{}1Q;$Cu*Y>Q8#+oKb%X+}00?PjlW==T!YK?e<5M za{OP6-mV|gGyjVEi{SSD7x$csIhKD}FMpGB)|V*ri$_%R^B44Xf5Sa{nSObX&*twX zJlS__av^%#zaWnN=>Gz^jZe(kWBuWa_Or6bH@HHX;N)~tr*nA^7hMF#9f^aDDck9r}Ycp#N%tJXwHUS_0P9NH-y^@lH$x6 zrY)JafB1UNn{&>bWw{;FT)@vJe!G9woUB&Af%|VQ<6<=e)&y&sxg^YA&b^GkkxhM$Ce zJAYZ%tXlnc=xzR2#yQLTMD+H4ojCTR{}bT0e^F(Q@uTnJ_U-(tET@rk7Wwh$?fNH9 zd@4WsVN2adHI`jPMi7fWiNXFgg3hX-W9d!$T>^B;=ETW=dAZ*@o)Es z($l78AN?_K8^0AFe1&;0`uK_eo^HRfl%qcy{kuud$xqZD1)tYgp-<4JWBG}%+3okQ zFs9UUzF*!K-rml)wret+F`fJ|{=<*NzTF?!(>K-V04aiocoXV(I1B1p8v-&MfUN3 zDBSuVbxMBX{T26L!`yyLg`7ps-|)fC`;~IOHFF5|t$nQW=s!#KLtWog%K6sE!RT%N z_vAX|`h(!M|5fpGO~n_v??Izsgzjcx}>5A3xz2y8r6>L*$(Gd64T{bNlf9zIxf`51hZe ze;v;H1?TVX=k^B{^iSUKim$(Le(&DSi}A5Of}Zn%CsMw>x2pWSb6P&uM52CQ*AFY@ zoOOHvdb>ZC9-C1=0dDX2KQT15&-u2LPw|g4-e9~_=ae&NkL4eae>)#o9G}vYpK%@^ z=Od>2$SMC={M+@bF)MTQkA4i?*5{Oy=%4?cwVB8{i+5-AcD|@MF-84O@JZb(seJH~gRK z_FGFi{zsv=_q(L0exrUQ+`j*!IzdDESqr25XSn^IrJS>rN1(U;P0|xn)DMR*o8Dhz zGv*)txo&?@e*YXf-x@gwZu{?be+}3DHTfHceanw>#yz+C7y6-ad;eZ#Mk9{@^WA<^ zfp^_4t^W@8eT5bzkQ3RmTVP?bb}MAMi_^4=m^zUl>0) z|Gka)Z2te+z3Fd^DN)}FxB0y^@aX>vk8eOJ=Pc_M^frI4rymHn^(Fa46U%><+wWDE z4?u7Cm(o+_sP7NA`K89x+Wg<@_S;H1vE1PKYsoo%X2JJg^6?vfz3a>Q{&v=OGyd)S z*YZ#PqP_`k&+j#+#rV+Q?Ec$wPMbS;ueATdZ*u>mOF3tS_rw19opVn7QQsGC=MSn+ zNB`(=ar+}nIp4bJgZ}W*IVV1~Z}h$4wmzXY!*4hBO5>+}-+_HwpAn}_)1OT93%}j{ z_pi%))!3&_qP{2G+P89E>;Epd-%^(+=b{o~lT@7swpr+=b- zI#+@}=Kd?CobR)B#s2%fa!&kF-vw^-f2|2b|LC7^|3$vsJ?Z?7@5}9g-saEs^iO5+ zixa=}*xw$#-Cr_)WPTX^V}Coi&HvSY(DXPoU0G^4@=$Zvz zZikf9fB)(FzB#AOeERE)K0kxM;QBtLoNsAuOMC|4K$<4e?U3Ag)mjfu7XU(d>4k8hEcUmX82{>?N0%6V=1-*o$%R_gK1(A)DB zapH^l+Z1lkH#H{Iw!in?zCHiQ#+=BBWggtVzaUPZJ@&42Edu_I>j#u_zOT0l{%!n` zp7s;)Ncsq`+YX1`TEQN0Xa@~OV?0g$>@*DN*!>#>jOpE@}f0@N! z#`zZQdg!hHisN7LqhA+p*9WeN%8$yA{#)#~?_OceD{{)pw|2jA|Mq==63+VHI@q`U z9pbEsVPE>S;Wqx@Uu#|+c1!b%|L@&?k5Z2Rwa{Dtm!AAY{hAq9nQ{%`_@+Kl>%X1H*FWdf z+510K@ zerogI0sD4;N}WYcTOj`nyZ@1O`AXQg`$Oqz6V$Kto!~aU;a_d8Q|D^_7Ipi5>hcxQ zuhcW=t2zw6t;4`ov)Uy zU%_>M&sjVhI=B7P+59qc&eB~8-rlb7fouN8SyRiozAc~Mp%>?@>SdkpSjstzd-*KC znjhBcmxEjV$Uhp*Mex6Z$2YRTWedJ6dK>>Vzpd4G^7wYH%a=iK@ApejnWF!W@UI8w z^T*o!t>yNc^Z8Na2ijTet9$$d3S9Fe&gx#x^*u{Du`G>$+h47iupjkH!NdHj*8iGr zzi&Q&iX8t-qPOu;^Q*{-e+jsa51Ky{lkT->KkIqi(Go*Yd~-9PwSJ|kN(@k?fnlupW=MFIDQTC{4^Ihwphz# zeCzJKPtG}?PR~N%UEsDqSI>7M_w&J=cg>&g)be)3H@>B=eh1gv{bBZes8;{`eWthh ztNe5Ro8rU&Z*ZI6tNffFB~JX^ynMY1T(;o9qPP1m?fB4=jPw0lX=t-5KmYq3+~)u2i3uL_H^BY(&7ZIQ zA7N)5XI1t6Zx|G%yH!dADHEmdJuu7+GtAJ9UDzF)dtD-246gH?RB5d&S=S?6c#XeT?(0D`&M;Di8Z-UJu9qTH=%Og~h}*XV(h) zU*NL;X8zIGUIq16jeU7O-Z&cDYk>cZUee{MMkC^|!@l?b6I`B; zHw}HhUB8?KH%;>&6JP&uTkGH~{K;_HU$C6v)<1C8-;dar_v>x_Kdqmt_R9)#^gra{ zH$C4k@czGt%l?AJPx<@!XK8#R6WnZZmfuYEUs{k;R;#fu`+H`en7sZw_$%3X{|WB> z&r$y)VosUaUIyj+E&9cSVxHFTsQPgUZhGSX2EEju?eAdU`~Mm)^D8v;x!nK#`12gK zFYh-xZtJ6rPmj^^sf^d3(c4^zZ$%xf`tb>F>nD5*W1pPf?#bwl^R1q}R6ihI-+|lu z4&Tz*Q}t5{a_;qCk>7&+`fpnQC0y1AY<(x~e{Z#4nB)Ho^zwc9V*1bFvj1ppo|tT{ zhx`xF{Hhb&Y|)nYSO59)LvNgGWfk`2`4zKIOvcfF2ABPNyC&e?|3NwXg*f_8(aZj$ zaq7hDKYSNlWb^)0xqZ}F|S!<3IK$no_t_GNv*e5Umu!R7o_Tc1SZ z{m;XG{d|0ITMOb_Ek~*UQ3<_q>gPl3%l*~t6SHyjALR14^)a~jf3(^k9j~8xj{bf0 za{ZZ}@7H<#dvLiw*)>g_`0MW^?9211o|`Sssy{*fk4bRLg|qOFSDr1%=_}sFzpSsD zeagh^-^p?7Q{dkJLbX3L-rw*X|8Jw0@ssH(6R&>@F6#rfe*yRTpN4%opU-n!OXOPt zr>g(_{t0^Hl+T;km*>Y#PoHI6zvTe0$;SH^aPNOH_TByn+}7&&R>LCopWpxR9Q&_h ze}ieUeZG(9^()~rKePP{xc9$A{ZB}6Tg$`$Yv`L-#GLQ@dHva{ADiH&r+&+xi&aD!od1b%NXa9N+r9Qsb*A$SJ=U@h|)Dw!VjbuYUn9*SD?TrTt%{_G=1q z{6CLg=6A*P&%tGUYU_LH{BOj*oZn#UbH-VVqkY_<{>K;Od@J@@?9220#q`g>8)oD6 zIqci|9QvEpetvz=bISi|^s@e9>w})7e@gS45$|8nCTxA2_J23_<@*!Xr@*bOxR&nF z{PX)GaH}h>_1kmtdA)J^k|*&m?++NK&W)q5h0FI9tWSY^|97cWcjnzUB0Qa(TWzx2FrItl@mi>3)rGTtQCx zJ&u2wf0~{;^ZLi&GXAH}!#~{ne@N|5Dai5vDEhrBVosfV{ZhD`&t&@-+9q@R7u5e! zwJ+y?=k`B5C;vy#%lywcZQk}j&_4{9`9JTk6dcVa8}`JxU4UmeddI`3&^`3@Dxc7gun)I)Q8_F28RdEZ zaC?`SvudA)m*oAY`9tJ?VSfF5GdUC3>mP*6`RK&Y{2T85Kd1IXd}+>ExDTM0=gUn` zOkRIKT>5V~b9yvB|K(~w|NcDO-WBGo%a@b~`=&R}S(*1?U+(W_pE5I!{$99@KjF;J z(0Ko^sQqw0LYi|{<~``;d|13jsDKE%rOLwA|^P!6A?||<=G+tjL ze~TYq{}Wy^EE~W74)^(gp!wxF8hclo@_Aq5n;GjpC;!{x9>UUyWfO=sbBL?nR)$oDXmBI-|cH z?%x0BH#EWj5`n(qXtNHVJu<7;Jz~%V_ z%7p%d{@wTAYt?>fyng37-!fPOm-(U9Io#HQ;6JIpJi%@KkFvTN|FV8yWyYG6*IxzS zXK>8Z{(n*bNp5=VUx{AU&+Pqi>|1`scLls=i}?M1G{&i)-_`#132wG1%ilD=p#?d0 zc{%oFec0L@KE3`jxLki$XMDfH`~NeSpK*NJyOhLtDSA0S$hg<@{fWO-pFe*9|E7mu zf?loIhZf9k27H|XQ;rvO{8|SRyi-`ZVsj+{?6vokC2$%PF$d54z8t=cM+7I`) zH0P}03(y}Q{KK*7_2;|tWB!W9=if-}hx>1ua~A7)=yT%(IA!AX=fdTDTjFPYjK-IL zd$k|V=QD2SGji5w3+4Iq57FCMZJf2*TzUR{Mb9~_^&I>^>d)6q>d%JD{h#<4AEWX9 z+o=6e{>JSrH_l>h{eN)IdOZvKpX?snCuXl-0{?oZa>o2THm-i2d zA3ZU7{bIQEUsnETeED})`{DdV@`Ky?ot(wmNqMlJ=A7la2>ZG7A>q`S*Pj8;wGZkS z4gUFGuD^}cerR85&iSyXqnG)!#ZOFLe;Qoo-!`W6*FXAUIs1h;ZDk-_<`16pE;sSP zd#hf~*Ug=ugME9~oAb>#RlTf_<~aR_ouvlvsd_p8)^WSPaV?)p{4&3^Yo0#S>ra8p z`G}@T``=9MR}|#fIvIV_yq@nb`1ntP%k%%{pP1~dGxG0;eHs6HZfB{{SM*h$j~~6o z4_}CVcm5w`;`JxO<$OcylQ_TK`yZh8s}kJw#CHOES)Z^zC#^p|m!HK%{&s)htnaPW zenou#9o)`Jz}8l9d4JyPjg!l9*q8b<&i5gVqhA1*_GvN0z5l^E`<~lb2%L33NaGtH z>-j!}owWcz7W*>)FQ(sK^^+3Z^u%`z`hHX6^ZBsv{T~e1R*r7w*%|IrC< zvC!9Nm6s>DwLkb##3#>J**ypQUVkK9)>n*^v-dw*?dQ)2g`1xEj?nU{h|dR2>ko%t zlu=Iq$ocR-{|e1NQcj-*xARx&%gfb&CO&^P%@4!A%>V741h@Fn9}1WLn|liWIse`J zugv9V=g%4^7W(=_(7#n&KTh=%qCr5(X(e`=Tp#@_fwupaNZT6eZqH1*+*~h zlF--8Q7-GZx$`|d=Uc!t)qei{M7ZtM@U7%&%Jci%aNA2_tb73Z%le#++0*(N>c6TW zN54P%K9ge3o{{&zA6(8au=73OmLKuYR{N6*a^l|?y*z(ydiI38ejm6zpJ8(XVzRS1 zD8C)CUq65T3pULbd~fv9{}j{jtoq6XH$C^-x#(s5WcN($d;fdEWqrXoIotU^)c;;N z`<~lbBlNYqD=$yz%|7>vJ+Z&6HfZa2&@BQxrm-7RyOlTi= z{qe2j!_@wm1h>69Y#prSljOFSNUR4b&!5kNedCn%&iI$-m&`wVipJ6J1ef{0l_}i& zKUD1xEy&UDh+fVQG(CHcUcUqU=Zv0jLjMc*`OjDT+sEgp!0r4MzO{U$@}Q?rg1?eG ze}(dygMH~=?fjKte(ouWlbP=zLtJ# z8~gHpp`BmD_q*Zr_3)YKW&V$S^7neaHN8OfHL>0}diV_Va{XF-a4R49bolwhDQ~P5Ia^jziUix=Ce}z36ub%{$ z{*OANe60NVo9|aIQv34!VD5aIG@pom>eyJ%{tx$O)1RsOC_Xv@C#HwqabH2 zb3R<2Z?y9b`M$WFZwRj;etEvr&L_maolnU4rW!8ue>i1kdh>sg+L!O^=aZ@Bf}#9E17_U{y#1S54-x0&dYv1bbj=% z##a?{V)pzY^0-#~m_{P~el7XR{ofcfV)?3?~>)tA-bH_h+1 ztp7hpMt8ww0Y0t2Eypw1m-Pv_`NY2IN5ZB4Chan?)->M#{px>u9scTDU6(yD@~G%O z^ib``~81U8lcy2nr{u4{du^>Z2tM*SFtb8FBIaJd_FIFS>u~rhu?clmu1&2 zofj=vUR8%bnB!aFU+NG0)~4`p`YqwIKKf?&0kx*F`0&3%?N`^~H%R{k-y)YEdb8>E z1K~10xBSo;C;zuJ|Ga$Gre*yBwdT|Gje5+F`ip(uzp(iE%{clu(aZXD zG2V~(Wd4PH@=xpg!exKe;>RZT$(8uuQTvmM^3BozJzM=#|7m?6xV*n^_XPU?53U#x zkKcO3W&HTw;6=6nZTQq9TYTS0{qKF|AKA6iJ|9>@eq$5-)IptUjc*Jui87yGeL}2< zH~RO>?7x)*qh*VPOaJY8!@e8W4sUp!@_SFiewp%D*St33r0$KQhJA-9-)2Ggs6zRe z1mB_kxR`IQe4O%AUOGF2{@|$x)wccMr0k|+HjY}u<@r7Qdw%7P&6NMD^*>qp>i54; z{es`-*TOTKw~KyI9^yaqhd-6CyyRHr*DY-oeWScw_1C<&eir{X-*cSu|2AwMeW~?V z74uVsKfUz0+US=iS$Hog{}Sn68eDaJZ6W>F=<834IeP4yepBi%r=NEG26g=Rgv;~E z<1>T+b zSGYVsM0}J#8p@ylrTl-=_$rkDn&WG_AFZ*#Hzq!r{}Xc|{m&ZTkUE@P&~JqQgEMuw z`CqI0(RH}#yP*GJyz;xw`L<5{o#Ar6ptV1I(mwfL+Ghi8zk`)8k@gFp@<5*dss6+D z1%G8!N9A|CyIl2uc zKj`fvH9r3LZ|uwSQE)WyTUs4eOI^U*qL==KIw_>Dr`KP$4mbUOYQMB7Z$tS>`=d>G z`_wi5Tf^n~lVbi$)PGGKZvI=Lm;M?1uP#_wC;ygk`MxGO(|_QT`s078zb0ybYKAg} zQ>O4qO&(Ofq4Lr?-0EioxRh^NZ@fh=z8lMu_Ki1(%lBi`dh_2{{g17~P2UW?Tz}X< zqw?{p_x*Fn^QLM4-$COq&Nm=FIUk?+xF^~D#q1N1WgK~H?vzni`UF3+b?rnEonAMO6V z8TRWAN2Bm0eZ^E`XAH(4VU<} z&yw*KeU=|T4bk$G=acBua{TK-JI3Ryt(D93J;F?~v}%AoX8X zl>df(S>M4v@u&6c;AaiaU=#n?^!^8{eVLyW;lHBaN9Gs8iO=h|mhtmixa=Qb)9TmP zf28?kV@`b4Z%m2nf28uf9{Z2apBeKJ8sC^$Z=CXB{Qe96S7hpN#{cl2;j({@O)Fpg zTlr?yenlNl`@`27^s;|iO#c&H`X6js`z3#CzhiRw8>fA&oi-unrRrbChdI4*+BaqO zBlhL_f;2b#KfwEDGT5~11OIk?l&k%bbvV~AzP?8<{YNqVYPhVgVAJL|%%AM~zg+EC z)!~P2)u?)? zj92?feV<+xIu@WW_>TN!ePjOpRq^;1`=Di@!{WcE$}C0yoT-amR9KYdPoGQPC@(&ax#-C?Zm-P>ypZO>MPvP?Y04o#X|7dI! z&mVSH`;~S0!+(eI`%Z9KU-0?~hebM|dnyv|sce3NOiy zQ9b3u_=)(f{U5IJO^NxGXId+tJ!-XMAQ{hRPLa{h++N8`(n_zqM1b@`wbA8Y<^ zpl`9G>d7yye;qF8YtW|A`1VIxoQeICA(_8l8(I6~zhQleSZJS&l}~}!8&#Aar~1;& zW)BaqUHMs9e=tBY;`!}9@|0k>c>N=ddAim}3S66EO^KY%E^DD1^ z2`=Yr^V_Do{FT}9kx)LFO`59y4D8GK?r`*Je!B9k^216uOmK2}5&QCdpXoQbqp6l3 z|4V!?z~%mE{*7DtF2=q*Uu=B;V?+7(JD`E;pGPm>r%u~9{c~_xU$XW;r&~+)PcF3o zi?sa4DYx}Ivjsn2`NRaLE^K}79F1>U9nQ6c{#pFX{NL^=1WVChU)`9 zVpP+Jy}q$qbXQ&pFR4)dXPGN9#y{!XCA;TYU7`a|M?Wm)T)*g_Xt_26f0p>={RXZ- z^lyR}V@>$o zl7Gp>kiU&TO@E2}@15{PA%ARo|DTJm+u<_*Cw_Q3{#yLk3-*cGIQf0Z^ORq4`83)yq>YxEpQosTFm?w^r8Ho%H?m|;_rLV2U@;2i=O@up7bB|&!8_U z%r_n0KDr6L%>PYq_O1SIgy){mq5LT`U;hKOeT3%+JRdvuWo;i{ssA#yZ=7c#s<(VG z^ZU-7qF0qqNpNDB^7nI6zn!9&HUCgP=&4h9)ywxNU#|MX{H>K8qZ^2SWqAGpJ#EJ8 zuZPR?uxWz~O=&yy#`?1)>KN_F^dz#o)y}w-@Tau{X0chq5md4e}tZxy#8JEGQTrD-1NO?b&9S;FZ)CMh8~+< ze+69jcZi=lPnX{(8efuQ>zfCj*IYhS|05E5Vi~-}^IDddV_%*xF#C_~)=}d#{l}^g z&!6ERZhFe_1tVru7%6_)%{q{eOx5`W3MrZvMGGFG8>D1EEc(^%ufr{$=f}^W;w9{*t@?n`!@$ z=hQj<$4&F@*ZyIh=AW;BIM14NyyU*joQFC`KPnIL(LUf@KM#F#Z)U%iouk#ttK#+p zxAwE=S)HN_h_96UOK4x@=)vnf6^&BAH7^Z#;FZ`qN{(n{b^8F?8ndZBn z+BrHK{rJ%_Cnm2y3*I4$>lcl$zdx~GFI->PKWI`H)m#1k0k5Bp^~QfXAk_a7>^C1= zhnxOP_}-QJd=d7|Kl(l=cZt@ceaZVP#O!&;P4Ca_)TB#PUwKU({^P3qGHu`P9Q~{D z4^D8NmFoX+Xn%|GFV~mZf9Hmfzv=5?zuv?IH$CK6|`ZF~D%9tPiO0aM7 zH&FY#*5UYXT(3)XI(k{(r%te+)}IEK{RN934gYK9x1pBLq}aak_iOIY96h2-w1N7c z5p&8Ez424AFa4YOH$CyAKLx&KWbFU1ZIb>QtNl?ir+rXX7T?L}W&hXW_xgkP>=HFq zeZKzTriY(|{<(2+{H7;<_(Hh6zexYZJ=gbN7tZMtb=UG?e3#^RT(w-wx}*A^n&8CR zXz@$hR@hS$o@?TvvXEzU6Bs!exF;`FQ{6xfVCazC52x{+=JbcDeSi zeKfxCd@0ww#c%uw?92Su@;6TT(U%+!KXP=aKhYm?MabX$_fz|!|K^&76APSc`7rcy zKBLxe0sR2ghv!$(lfUW7?@;v8KKYIK%|G#D{}8zB?^C|a5B>b7;WM41GA*Alel*Ut z%KZ4~y*ozR!)1Ks^^DaTpY)-Q6}MG=7{8mIvE-ghKhUx6Hp;{J-8iy8eg98H?h6uw{WYUl<$v!xxZSO z;NR;}> ziE+xu$L$Nf#ll>s3NG)@d;3;a@I8p{-Ac`$Ia^x4JAC1Yn3J>jUxR%)e-WGL;pU(C zc0;fG4`EK0*6#|}_2i&efm4Kft!9d`uf4Y=Uep-?QafxIp3W4xF^=p z!(SY(_XoyA7C(CK1$%0I;r{3O<5jElUcH<0FuwHs=CeN2vBJ)9dB2^U;Olkor1zI> z>%eE>U)KMOn}5^qs`{x3&b{$=Ov^3^S)qm_s26PsOg`Q6pEz4G}Q zf6x>Em7se;X>FcXocFeXemHqz$oO{`8hqcc>`B%&6M2#=xXL{q5Um5;o zeq#RTKGIyrKc*i8KW~`cA0OVoWft!JpQ`r9BsllFx2AW<-qcf`-%viKASb?3?92Wd zF=2ne`^|NHWBSo>xxTP@--uSqz5mnIez?D;IsQkXm-iD*|MIWN_#=4k{`$W!TV>(C z{FkVGp3fOro90)X+bTK}F7L;C&b@NvicVTTS?pgN-tX*se4Ffq?OMe4(P!Wgeh6IF=K}vRgNFPs zoYz3}zeep_`2uKwKH>t1j4aUB-Z{s(vXshkt^jE7s^pEVB z!A+0-?a|Bpk>8ker1jgubMq_s^$pr3;=cj=^{Zk%oVGSMQ=<7@uleQe!!1AN8iTMe z&#&_vbE;JXlKO4o(*BI6{okbivk7kgvA+#^d48SWm=j^&m;csq*}tazXup~B+iCmm zyU7OHexFzSVg3qd{z3b{vFV=~+W%6`FT6kP`R`Bvu49#Z;PQSeK8RL80nS+W4%H_){Y&p_f7P+}R>UvQPw*RK_MaAn`3?5bZwcr8!<>E38SCAx_QU=F z@xjeL`Yq7Q{L1Vf^>E%k`hjq%KXPJD1*d#0|A#ccu>R%wpcTLASn+=KAKtGv&RAy0 ze!pq?48VSF{RiIqjbPvO530T__768bW6}QTYr^^oW7f33A6%YqMFU^-TQdGfuwQ>< z9gcs-qJ7cJ{lUh(Y5nH#-1W(rwzhxAMEiL{;}6$AW5PG~3G*XsUyrN*Fh217u2p|% z`|E@K-1-7@lC-`zT<*`*kN1zBvE)CxjNZ}m3HMjeTi33ir7f*c|2%(@*K@6`-G99- z*V1y;hxxVXt^c7f>5hM?KYn9P4*y>Nit5AsIL*;_L!X;}!#`Y=)OUr;_{6ShIBnJ9 ze_i7*PjJfmwASlqxt3R||1dwM&p~gT{5HY9tUs9jqdT>aIr@!r91VRE-1~o1{fGL4 zzqeI;t-r}Tg!0`8eQtlKkp6Aehw}@JQ`hM6-v#~G$ouFZ~FFdIUj{GgPC^UKlGXPAA{w}s36i2UIfT^IaY{$FB0w|>Dj3&$3mYq<^jxncfY zNdI+8PyLym@@we{OXYg8ZlKhqn>e+&G}{;1h!&Se~ZbGY0e`E9SVMmlHo{@1GiAu(r8 z#aNEH7V$Mhzj(WtW8dr7<>L4DO^^Sk=;ixu{8sy4Bb_sPeG_=I?PJcI*O%WPn*Z;K&*s;_)_ zLT{Y*xdHJ>|7iA^6B`Cb?Q zdhp!&F5^B5obs{!8)0Aeuh1ChT0U)EyX?ZKZM32K595n8r+gY&9iXtze&!2nxA}Bd-Y!*z3kr`KW5XUzM1O7`Xly@qo;oBp_lUq@!9B> zJh%M+dqB9n|IhUaUo|$^xAxN-`}IQqu%vs->?w!0*77ypO8tla%k$qh3GMG+?B6#> z?VmiduKpjmoNr3`dH?7ym$`07wIBL_&yRkrLw41TZKHO|r^NYL{N%U#bm>2_FXxj` zek-T7i1Raj2lOSQ3v%>-p_lhVOuus1P(G&r6E5?A;{V@^EwXU_*W&N2_QU#kniKyY z=r0cA4>;xP^}oaA{zv_=CZK(~)Foxf{bPXI5A#psb}cX#?4#uq)<=w6U&LItr|QG~ z!?^W@%;mem>*YCpruC)p--s`_zEeowL-nD388Opg{x@!YA?3dY{aNAp7&v{V*Y`&+>mz0#ZhGqXC-n0DK7M0OD6RhyF6*1LA2@v` zeSx)~?XfTCJ9ti8HomR;5BCq#TVKamd@I$5`M+_CpRxWA_?Pt`eq&C9f3M#LeMuPq zr#brX(dX6=;Pkm(zdC21_!-mDXZZNH)A+;soagjaTtDBTzch^B8Iz~=-@@C5=X03T z;GgnC&sZ?h_~rdJDKpRMYZ%K8SO4MuV4UllzM8qjFx7|qPnuJ{-{8Mx=wIO6lf3?G zxa@E88*>&o@tOaT>Ob^vaPA3qFCf0J(98NmF?}|rH~aL(#Q!CF>A$hboWSgx|1aP& z{-k{1^r^o5#$aFGKY%l4rcWdmE8kKrpP)~3#@e4_U*@l-r~bTt6c!+Cxx?SG214`)v6?N3x5 z?k{kjnehBW?92It`kU-ur}dLnAMP*gZ?h)q^&g;@_RVjsPo?$m!*lybta+v5pXTC& zbIp7E@1d9XU-^yeKdpZkF3&!|8RMe=;wNJmgSq9=w8s?%0v00 zXaA6U&G6qh(!Ho%m52GAaqgvMQ5W5d+XY?{?jLE+UgA5HpUkf*U-|=^MiZ;d#eAie`lO~@e$i>q&N2VBs!R5z z4lSZX;Bx-9@iRVX679R`fLh}RDzA!pv$aj4t7qo<0cyXZAfM2nMYNLmo8CYAYsv3|3;gl{%IdR z|HYbr*grGQSooXrZn{^#Nd1TRXVRR#_$RTSd;bRh>8s)S8q?Rp7l!o@p1Fa0|4Y<< zjgG(5oW1&G=;iya!~}o*+ob*pxV-;#M2~^B_1kS!=l*k@+OJYho3Q&6;}_b`#hU+| zm>)U5N!0g?ezlAC@2dO)qMPAz z)P>hG7T@aL?%C@vX%XF|@fGHbpYFrIy#H_d=aHvsV2-;`?%X?4LGa9Q|$Z1H<#TteL~T|3}n*XrF10{#Nwzd^|ScvLdBg)US7VgBklbcA8UuH{(CIKM$wP;NSE&!Dal& zZ>%{RH~&wn{m?$s9RD}w@-sbchQCdJ16=xV@@GxgxYhqN*q7&H;H=5gCs2OIuSb7G z$lvQ59TeKna~fY*|44Jn?>h7k57+XAW1sj;e=S`4hjXtEV_M&Sr%3sIuJOtIF2}hi zZu@3mZQt+@;q}L77?Ut2W=yrRaX%fabX>o6^j0oEB|)?mxGRu0${6JM{bp|Ni{E{!NXqvLHu)1$r63nVvD7 z*Iy2o`=`xGeEE~#dm7)Em@{VIs%I!a_`B+VR6*YLvR2V$*grHIbLz+IFU@hAvv~jL zKT!KorV!uvv{un2=w*ImocOH$puZR{?}yU`JurK>>re{p=^%uhTtIpV*#QZZ>BmPxte{4Zswo|L<0`wb~$DH!v`Z4|aaGAf` zoWx&$=vQlglVZ-8YiQTLI#z>!lgrQao^R2kRrIy$C&YTjd>5YFSI3g@^YDMmq>PO@ zz5e>wTSn)?W&PIdqxb&5Q~Q-Mr+myl@tuQS%Gd0BJ^s&z%lem%NqzqKU#s@3V$PWA zpJkitSPi~L^DoSY+}kqxN%dv1o-yBFYd6=iB>XJ=%lyj5oZkMFMJ=Nx@R6evdhh=i zwV#POxtjSAL!43 zA23YUueiV5@ly+3zhivD`rQE5_v$5ix2t+<|NhT)ZKHoRzo7{|_owgv*(6(gbnECZ z<>C1X_EfRYz0COO_|NU{n}55%q5ntq;rVIy98J&t4}KbYSs$?bBi!`tHJ%EW^IP`2 zKlIs@iI2at=2sST+T>j~_KEXrqwAa54A(q;KG*d8xB6&b^Z4a$qsDMKe~CUn&94~Q zHrhb#*TkGYYn#=5w6BM+r#!Ex&+Xf2bF~FOh4^KE-R?PQeM9v>z97G`d)w$_^fJCP zJ@&o-li+gwTA%InL*FQuUm^ZuleW=9^fJCPPJC8A=ud>p_{PeQdoKCWS5tn?HUDwS z?Vfn<#5`}N{wEdW>z~>-IsyB#|Brq2^x0m2JY4P%+!O7djeq_ZeM|LUk>Hna8+eO- z!}6p2`e^>6V$MBt=}vw0{tfS~{tNSg7qp2E#lD;$X!dDe zUVjK&_W$jk?fs+gn=3!7AJ2at(k40>{qt1`{c-E{(eVlT{;D5YkfT2c{h4|H@nUpE}Pj>&xsQs#pwRz7QEo~QV3$GW&9G_cV*-PVtZ>9Qd#>&L=+o!aP z4#24WMVz`t^BdSH(c(& z7C+ad`6vG2Ir|pB=Lhs{7tKX4-{0a=S7qq))4bNC`eVO_%%&(u(KH5E(pXssh{qLssGZ`Bb z`25h1Rr?bP@-f-=(XQyF|2IAHS^1#f1uo~qTKRF$BR}qSl-~sG%kzocv+bS;=l;C& zi|wOoEuS$l=bl<}eV*@(eVKn2(tmnO`)IuCYZBb_@SV`h^A%P<79X*|cZAFH&%|$I zhBc4o=WLpV?+cgpGxq0=cRFD+ z<=m_HR34rmgR_3i`~m&)Ut2`GDG&CUb8I}Mna*E~@2dWT-t!Z;3;JoqpL;%lIZs+Y z75;KY=P%wrdgd~FV80}+pQbr$byLunhUbUi*e8C|PllIQXF9#uU)v1jL;mz{l)7L;VpS z^>?7!uPn&9R~?Xx-|L&cv}v5*cO8;4;6T*gdQ{`SyG5QaL{W`*MBd%e;x&=loxM9j^HeOK|EB zPFYoo{gSc6GFGSjMtr8PfDam~{`oEKe}USM65Q<1XxJh;T6u`y^v3ZuA1>byAV1^e z!r%YOS=Z&{FXvNyKV@_M&DswfeHmQlS5022%kh7#`k!8qqaTA_&QCG>d)zJiWkq>}{@j|_J~^AdyNs2y@NIX<4EihhxAsl>lV1id`y1)!zqtPRzUpn7|Cr3D zZ-y}mW2V>Fh3m7SoUe1C@`{X&DU7rK{bHAn(OJr)jP?1R&pM++v^b}?dxqy%be8j_ zh)?$aP0yGa|JX;r1bw}#1fRBjPaR*wN1#7xQpW73^~2%ve!s=fJ;(IKe;)Sb1vTT` zvli~%Q}2K9bCu6d@R~(E^c_dWPiesdA)u+xLm)+eSCXt*D<GbPfYOp*5upIt!lq8r~M2>FZ=(d|K!`GegJ%YrfC23pq6j4e`2l4 z`ltKUzwEEb^Q(-ncz)IMyOobnjt0(Nj_L1G9_$d=#ALqrAQ!T~`-?+Em7ro5??Kk$9eEgfkWq%jWI}40S?SJW?AJF&%XMH`*`=B2; zJl3;j?)AOlvOa9Tv3|$%zg9kvY5d{*5PpNdzAn^1{vRp8nQNGSGwj>*(V}Pm;q{NI zKKJ}|j?-35-wS>2e0_eS{doPR@J3;O0ZyOh<9|Z!=bpdL@wFdzi|zMJ*>AW*=Y+lo zT*i-lpP1**89&+g$IoiEY4pxw`nT~3&RI}=pB%ml|MfFP`DYqm;CxdA`+O_3_V&5@ zeU3NbCE@$b#`)H1?~``Y?}IE?9^y03w^mmUo}u3-c|q-G)&GOvO;Y={Pv`mb%Eu=7 z1=k!O>${WxuTv7->$|~a{U1#s|1YWi@d@trUC}o#&3(T%SZ0_vR`3eV%`E^+WvTzr5YSF<+Tf_^_JXF7b^S$ar`?NY=Q+ZU(S1S+S ze>YD3o4y6*C+!RW#=X8dT>2k07N7UOM(tNAH$C6_Hv2y*m;D2GO?dmwurKc~`8MbE zO{hP4|D8H7#rdzQA68V~2>rf8lv{p2{|(_X|EK&cXJ3DRYX0H= zV*KQf4vXve5A`4V2ji5_BflJ{-%r{A`?9`;ef!Pp8^Yy$jAH)(R{Np-n0@qSYkl-G zKl1i{{OiHx{S9KWZ!-DzyMea`Fa2U!e#%Loa~!dzWkbK z{$_-7iP!%nyhPT2iK&qPW}4sBqWn+nSJV{cEmS|g zDE|Y!?7#am@%jG_m;C|SpY@5p|LmytrzQBhJLlF;Zgio3zqy^3&!hxj{@;GJI}Tl< z-(PO4JdCf*KILcpH~h={SKhzZuY=3@0&W`bzk}MJp5W*$zF*PH_vwo1*TUCKP;MHZ ze`mEH%EvhV?f&x%dU?JU`^LTgXSl2{le2v@&fmX!sr_*Y&bQbt*KW#3E4T7HaZ#Rk zRX!%cefh1yzs&!AoAml0g_p?unl@qadH+4IFY80a_z&2Z`C&1>sp_*u`S@d{I<~iCnPxEinqGxtGrCPmFZ@^^6htX<)aeZx3BN;FXiLQ%|@%mN5XAfcXWgiLWXgZvA>AX&-}uMGFYjLve zg7X{Y$F)rP@xNm=zfgXKc$xYS@xyz{H#N~u`1l#szlHsa!ukTgVV}Mh`}}W(>cjj4 z{+N6d6Motw%ay-@UivTM<2Uq-70~m)E8(*L&-lyi(^r}OYK^~Ix#_vrntq(}(Fx92 z!T77#m-n+6Ulr270+;twh{@u|zr{aZ?T7J=ar%1W%hAjEv-mXb^)JF@{!f|E{wXux z{`b-Ho2b`6oH~V5*UaChs{hH#t$lEPS^JoxyduHrAB;bbe|dh5{-cooS-6Z(Xp{J- zP2!*b#s6+-@i_bS4NH@r^U z$5Qf>?htER#JK;9IbNN~RhpYWzI{x$V!O8Cq(KEj%W^dp0 zN20I4eNlcp`U^%V$38ZF`Tq|t_YZ!f{>a(a-!U3r7+?7Q3IFs(N2~wIsxQQE!@i9F zu}}Qi=UPU;x#(|&%ky3QhJSwZ{*PDx;rcaBTSQO)cbxi{^E-2TV)FbJ?92QdPJGxm zzLn^2hOe9!x9_z76La>{?ce<0l(P>v`xZa;Z-mSIp8G3p(y#x)@74U0oVvz7b#<%q zus+B=6FqAMaPHL?z)OOD($60#XZ;+`{{Ld-VSVn;i#}1#S~i?-k)IBi=SPXpIBU^o zj9jJsdWpY8)~8wjH}3U|R6n37zmEK+|3`nC*d%__^Q^|T@E2;-Kk@UMkN;e?AL54- zGi$lTLVjn#<@o^OH_lqM@oTUz{g>xne~#+I{J4<*YV`f4>iWEKufGbudDuUIr{h0g zp?4*ALcDV#E;eNg_!&xXtT0l)e9;N*Xc z+Rql{XE{AN6O)gB30(I7`HlV!o4)_LL(8vRxgX!-pZUe@>OZW17UE}OU*`ANCw}ZR zzcBq`_>0xLzK4HodjEH+{|e>Uhco_1&sby;dO05hn}ziEsD4Uyv$a=ud^q z{MI~* z86Vg+flaSJ7B2f=#<96W`*CspD>T0`1v%rNSJeNIqWl=_%l*@?Id32R(Qw)SH_mTs zr%j0czp3`Ci}IBkUt!Kzc0Tsy`87YLu6|=mZ2t|_*A(Q8HRqw1_UFgMe*Ab;%D#^u z{o884G`8eD++j`=5Wd47ZVjFZ33#SbTcSs#Ggnz`41uJ$VueA5n7V*9IO<2`u&Js&KDqO(|iB>z-9c0O<(`^zdvYxH3?4tVP&y5 z{^fi(^tL}l`!W5`8h@~FeBH@aF<+xR*f)-S)6d0z^T7%GUcV>t%k%%_Y| zvFY2t{qJAuKcn3CN4MLeJhrt?^BuM1i!X#Y0T>>uSjt0n|==VWq$7Md;Kipm;C{9F64g({GM5vR&P!(*#EW0 zzkL4!pVmK~GjwEZtBJ-pUAaA9vgMQ6m^V~?l;Dg{tSqM!zwGZ|-<}Wg`o?O1RD#d! z9L4qy#s-EAN zpJCthTf>)+SO4~#_rJCJpOoRA=DFQJwnTsOMAh>f^B=Dt2$$y<`K{3PH(BkMCiq`N zd&a&>HNWuwg6VnJ%W@q7m+#+TfAvS<`R}_o>=W~$s-KbI`@FMxTo*%BAI=9i{r;Qx zi}?VFpXUR-eXs8im+=q$uO6X(z5n5Ae^`Q}xA^;^m+?h0eP6iDFNw+L|KTn>=~`E$ z`Bf)4@7h@`S@mC@;P^MbIre4!(7)g4^?h>w(cquVI6$KHO~j_AyrTAESEX^}gt(_cz*lh3dy8IPuxF&Isabod3Wr~`oFy&N%?x-EysPGk)QdWg#D6n>fg#2z2({!y{ylZv&H1~ zo8&n8n@#4=cK@BN`GxnJjE{J8qx@Jvd6kx*@v5!5>G+ktX1eAd>d!d-tuNXb|1$sg z{=I%9xO_hxj^HW`A`=S1gqqnh27xeOeZZUml_>|DUn8xS7gXT9>^`6^UrxSWP z-wFGkTlwvz`XncQ(|1I_Z{V|X<0tRG1AO^NUH@Rt&iW^uwG!4pp3apo>mzX553v|O zS^djrsB_%LXY942pRf9Cf-}}LzHds;{v~5M_7c(WsXVVY&R!_Ioy1=JS0vHpQi%E$62)pL)8BE z3GV&3Kri37w4BrW=5V=xvOZ$__m)5Zd!*VA>o>+(OQ3zgk5E1`p=Yhbcr)zF`2ZFZ zIYvZseW3_N9Ob$L=RsNy*z*7%h&YyY5?DLRNVgQe;BLN{}A5| zntz^iPhhNSd`XIvAMMBZBIQ$J`}m}-8b3qh59^n9{ditNe6l{n^+)^ldh)9em-q91 z`#1mm@0n^pTa?#BKX$xw%GAe?{=fT#%lWBxP5Auz-z(Mr#5$b4K=?(P|MZwMe`l`D zULO2><>L~ZwJzi5DbM@2{RiX!5}&M(*);|C`hN;=@Bc!zUs+WDH+p&g&aUZn{C~ma z{Z7{Jh{?)_{Q2L@)c&LdXRXWlrOIm(oV7CJe_~(OUo9u>d;K49IUme(+NbHSQ2S#N z-0OcwFY8-YCh7QpgUkHN*FW*meyP7}bLD5;>c{vsaC!cv7+;5dIX@mw`K9&0!exHz z%h&w#zt^k%y5)y|_*(S4gz~3M$j|G4$=SCu_t!uFd%xNb>zn8q^D`G_uO5Df=08@~ zH{pz_nM<>m4!=!#l;Eu88NXF|X@avBX#8j5J44P#$h8^ld;J=?ydU7X_kX+EpPJxa z{}cMlr|JB=Q2al_W&Oos^7#|XJvsZHvzBMiZ``fCI-zGR(D)D7m-PvY3Hx6EJzU;j z@Z8ED|M%s}&vUO|jb5Igu`)@={~i3Ysd4$I>;EyepRZr^#83O8ejiajE!GngWnuhb zxIABC?JLc{#lNgC!tMDBum1)v-(T_NYyPqIsM;T1lz)w0`Umv(e2Le81()Z~txkOY zj%yhxAGCNz&KBUsPTl^WUUTRsV7?hJQ-@U(Zy|{n_j3f0v`LHzDTqdFbu_ z_z8MhU!;F;l+xqtWB9d0;{M;qkF6DIKdism{SEu{74VPH%l;(y9CGq{V*L;<&;Q#! z$(JA3&l@@W#;J4cQ@-%m;qv`)fBhP#{eOUcdH%rk{06uF^L@C?pV3n%-aoOvrS`-6 zCK}I|i>>$2%lOOm{ATvizYBkHysnQDGwlm*?RSmlSDxUkZyWzy{g>+cxIO=AoM$mV zh1VZbhuia`AF2JZ3C{Yu@eh@6pWv*|8-IuR<^6xwtj)jIzYUlDbI*y-^q;8xiUjxi zx6pS9>(^%A>)(WTPUdg#@00&3&3{y#_$fd58|Z%;shpV7&sV*k<95$reUY_vEB`Om zeiYXa{S#~H)<3Px>8(%mdj9tZ)sNQoe>B8|eR73=r{yyy!L2Oe-zt~$lXHD0diEDg z{~G?~`v}ZQ%)ZyZ3YYfnx%dCQ+L!kWi|ALNm+_zFoR0q$xUAn=eB@7jlppc`r1{s4 z-}uYuW&VeroYMN`@TS|v2^+mXxFKPby4g35r{(o2dBV$ha!L9yYKrid})Cu+H_1B30dAPja zZS9la&|CZaOYLW4j!(~@LoeSaB|iEeuct42R_)Kx^*#E3^0W0f`v3MzDBm*W)_<}7 zO8ud4raY{V5)*pXdg1tL2$%DFEG9T>y+4(%Qr!|vX&30EK1;VfE9YrsXzEL z#4q!A_}ABl`tkaw9k=quKmSX7>#O~293M8}_<}!$ez&kbdt`$T)u-1#377c~`y=pl z{*5)ius>q)u@^!4;H#1PuTgy=UWBfBl>0Vv*zgj2mblZmw!{WKQ`w0 z^!y3*vi?k&;Xkc^94`GY7 z9jojAh5WZs`;+T%^S>1RlG)0CJ2A9>AAdX5&nU_tK`;9Y)Hyb36JGx?T*f!V&-Fu2 zTtCFh_0w7HPmDQZ0ytw0c&8L+Oay1F1b+9(G-}~V*|A*W7h5Z5i z<7*@A%lVOgq_dBy8un3{co}0;HbOiAKnk}oa+OAm-w&0IJ`f5@K;aj z`95BMCtTJCh!2j&``=9Mhxp-J<@n>W*GGK4H2%Dv-_RSs1N$<+&0cka+V^_?z8!wd z*rNXXsQpnfH~W+yfBz4??Ejg4i+|f$UuLm?8@$g5`F`vWE&nBQz7gfmULEB>8~Y_= z3-Tq+Mn%(jC)W?>^LcLio8YoOgiSaa{G*@!-oR*x`VZfSHqN)4;TzpBFdD4>XC(CS zR`PvL_>I{AC28O5Z-C4Dd;ErdH26o4|6yuBQ-_}_=eNSIM=$&P#q`&~<@tYXVjm6V zkDl_+YJT$l56AgdEqs^RTSOW4UtWiEzB&9_?92GEnEo2Ltlwi3|7h@!9{;1%e)#^a z=L_WfEbyz*%lbqy{Z(+;|F-%? zRc;y8Xnb|`oMj5HhRgWO+vj|9c%vR$Mwb%b!6P&LhJSv;|3`AZD*8*{GQakEiw{0Q z?T<=uY!N@UE=Di+&$NAu?;^PDZ<&2;ntk%0s`*#MdgJK#xO>ZJit=&#eM#asPW%U+ zwqXQDG{&$AvKQ+Ov ze_XiT@aQb`vOkYz!1)_yOkXYi7y4P~<$SX=r+vVeh@SZgd}IOrneYyg`setM`r0K>uU7zutPqE+f+V)8T6} zYJcIR^Anu>_f`8rpXOD+>=(^dURqFpz-jwMr(r)=Kl{COb;3USebCGMALNwgGvC`U zIu*UFzreSseW8y26u4Yp@a{v`8|m{S{{1z+Fn&n$DMR;RhIbRU{&1Y>{N52p*-zR`?ynH+5zWp7h_CxzD#1Dnnt4QdvW$pV!>_=sK zeVjM(_K{pO*ysAX=<_3^6W~9G>#GnyLj8yF1=m+ve>{45KLnfTcfWgX!v1k^`91_O z(S9j&fBl`Q@rU+d+~>bo{coSp`}|H;o^PMn_k2Mvetx6=()?KEp?{)&(tH8&%l?4r z54b96|5&)JFTrX5k2X3m;r~SJ*Pjvd2lh_#6V!hwAKG`CAA|i|`@sISOOyJe;je}G zY5!^eC#nC?KH<+yNb2XKm*)eCpZ1^D&x3aeoch^d$U%wxPFMT+`rYx{BtK2_3)e6D zG(QUavVM$z_=E-rC+r^ym;Dhq{a4!mBK5yx%%@$K^nV2UGeY^(zoqqu!>~l?e{rRd7 z<8$o88H=Ou_s@~hd7A%>gdYCAjKARrk)MoDynU}f5H90ue#1T*{G(rc=uy$d>c1wz z8B4?OA9+-Ck@~Ny!`sXF9DV@y<^6YW-|P2>Z#PcI=lDm1fAsjjRPB$i!}&e~d_VNk zez93dzb{;^%LU{?mb`q zTm9@N`Vx76n3%9{di?XhccYj0*9-BBKc5%fq4C$$;eW{Z7=F9@5Ay@F&-fO8?b3PC zuEhU-m5z_${6_qIUjh9t@Q=gz-}G?egWsk0!}#4e_Tkvt8U3k~>)5yWc7n_PzvYKb zvrqo_YyRQ;?ASMs{@=>^(S6Ft==k4r;@_~x{AdTUUn2Vt#02Lz?3;cze6Op_!7JZvpz~Mw%Cq1jV$SzzR^Qh;=G!RG z>-oNto$rtS%Ut>5pKHSNt^ev6y{z?HruMn!;l1t*=l}D4nI~00E@R&;^!$h`+efv^ z#~0*$-)RQ*FXKZZ9Q)cI^?yB_z zpFn)_e2kS@TK|UHFE7X!|JNZJk6z~YrpLa;kNq0B?2lOdl$rS_{4`F{&LM(@MxCHeZDyXpNGUWNT{wvXda z>nq`VHI0J_fx! zKVUx7`ck;85Ae+t`e(iwW%lVm*VF!$_LJw7AN@DqLitVe8?Q>B#UEhL_CVqLo+rH_P*8iaP z8Nc*Yjpws2>=cbcFYCL;v2XEVKZ48qV-`Q(q%!}+zXtpDCMI}?o4RRPz_S|P;5h!Y zJ_COwo3U?#QT|qb#J5)S9}{!pUw&{my_dm9qHnf+%)S1b>7Al=svni$riYI}zch-k zkF{uj$PtI(VOe>H#Jj|%pU<@o~i z{01+7C9khXekBtMa`c1I%lzK-eACM7w};F4jPfHU_=fN0%ddgjuP(?bzwOXV`!qe@ zFY@|9aCv@(Zx&G|^cnv8?Wp!M8LM;8?>Mk?)Jl0aV|}LQqZf9HnkpZau|D1N4h=g+ zjo`9BWt@8s{@Fi*Z<~wH?m20F6ZG=^_F{Y+^m2cr|HEclzcpOek1c-gS>~Vkn```~ zaeSWluIdzRg6o+i84b zGj`2;eqp1|QCsz2QjmuKm%cVBf~~{jpzvc7`@f`=rl;b1l4bQkVZn*m=iSQ9b`Vi4>74AV?EX zQ4|yu>5$D$Af$&t=p75FVDDgWfMQovP(L>873@m0qKJwWML`r)uwuc6eCL_HbMD#8 z-rw)PyzZ0t%$zpo?AhJ3iS}Clyufm%&nN6?nb=45g^rVx(KA-zZ8ZJ?8TrA)C*y~l zjsJB0L2!9L)pEM;f6@Cb6YbP~MMmBcy`2BXoIyQar*Y~n}=xsqfe#xzph$;RoXs2 zr!SwpxMiY?`p?YUCH*sg;`D9da(*EFA5PAueAfRD$9{IPme1$pGS*l7pqKX_GU?mE z_5MQ}ZU6M^-%(mV_P4_^<#X1Dd0M_)<;2AGYy0|pX?*bh%Go~+V`hE&%{|Q>@1vak z@sP8A{Q9Jpj`vnRHo{l@*~;GwEBw<$PDu`2NZD{ji_YKbEt8Zi!yj2c{=J ziywUpxV*pj%{?tNCcpgX1GQfe%ehwG8@;UmOiz4Pf9RXTCBNX4_Vw$ZwbTH$FW*m? z8P=)Kv0tEE&QFfvd_TGw_T~P+apJfA5A=J%<@tZ}&u>k$n`&9{KSb>hR8G!^51tZo zuBA$q=PPHT$3+y+7%lZ=T`!`;t{`)$;`G;e_A$oZ}t@pT4kA31NR_r%O+K1DB`2H~M z2dDjpV?R4Tc&2s8`F<~)Sm48y=LNI3G*i8C@*BK9_Bo$V^!x_zb#O{w4=(59;~$QH zIR3d79;xN)?&61A{P4Qy<@((0o1XaKd%!>KqvM}BhwmGAINPk`t2Q$6v)^EQT@^~)6H9h4I@ymp^3Ke2wBtUSzbvrXgq8ThFhe>gwlAAZ-1DZX=&xUb;(kTAY<{eSRpx+}*f{?U_5Sihd3_QUo!e&ib| zz5{)Y(7thB|1W$e&j*G6SwH&aKVQp#c!a-tX&682$C=7`{voA5<;E6T*Q{S>XnbM+ zp#0dUe)t>y5B~M}k9hsx@MQl$!}`D ze)%s{`&Ftpj(_T({;?hXN8$R(xUc^M{&uKGlivR>)A}2#_Knki^mW#+m#Tm6--qiz z^o$SVzhhtKAD{dB-{5k-qH)%*e*d3^eYw8(Iq{R9$j`r`*ZcpW|8)H}INvXjH6!)! z=YRGOpVRo|`vghOnxOZ%W;#E>7ijtWDyK|v<~r80$P)^PA!HFV;MM|9LoBKA(5FteM72uDK5`?=LeZ(6he^XRN{R zQGG>(e{)aB$;Ef7zA7MRqG$gY&RBF-wig|VDm{tbG$|7LpZ z`})oB$wQrg_LqqtU&Ox<`|^C5#Rs?e;G59P^Z%A}O;1_iU&H18HT6fGP`^vw2_u`(^ll7uh7f$!%@5ABcrFX6WhaPhN0 z?6?2ZYQH?fM@|mwpIr3>JZDIRFFrY}KjwnR;aO2m{Zc>h4fvPqf1A_r@9WpYrT&bw zzwG;8r12F-xapZ|zCbVQ7n{@4^-pR1{bD)#&(W{#x`4pBpe{uz%0UW(hds1HP8{r2nJmH{zT4V@khF?aTQ!F`T~o z33|D|Zyfu+{$se@A29#>o!u-!{P-gNm$5JRpM7re!9PMT-?wAT62IyB8~$O^zws|0 zXqNEn?+uN=(COi==7s+0tFNnnuHQrZaN@&0`~&RE`$N{})AjGe<^3h&6W@&be-r!i z{-e*$KYe)(dO081`h2>6mBv3jmZN_Uy_`>K`ehrV{@;bm`jGxdeoF6u@2GwGKDfuZ zz9#?BzVD!y{%d0f`*!_GUw=>a{bD)&cQtx>{@?T)wnX)B!{z%AS+n=jI_LQqd;W$0 zz3UqKNB;&q+jhhsWwEZ?IVQiij^OpK7NH_>0yG*~++d?v`(<7*{c-j5(A%Fk~dcBaa|N$r;@XH5g& zxgacG??sIg8{s+m%2|`amwy=Y>MI&0zEoZs%c-9?@Gs}%;UE3RpQHNM;U$BEhSxXJ zH5DBH{4f5$R{O=V9RIJOm-G8fzi`h65&f(1tNR3dP6*2nr~H(a_Ww@p4~*sayx%DC zEnJ?@LeH8E{l*g-sGj&`a=47oGgmisl&R|G2$D;%|*F z4r5bLkX%T!OB!GlvnPFrq+=LE5wzO;<^<@%fW(C@ZyRKFB1*Z=f6{KN6j z|KfkU`tPlrI)yLl5pvq<5B1+OmJ{C+?B@=2ym{ZK{w4UhLjw9F{^9t?7ykcJ`}@Rl z{J)4^+Q;-~Rz~$Nz~%a$HmCmKv=6?h|152vD&>q{pVJq1sQ*0W^V>x^@jZ`y$^Y0# z-|y6vee^q3ANo({=$}I`-=8u4$uCFs&%$N?VN4OfacmKP4)JI8%gCQWFYm|ozdv68 zG+fTVgVTT4-dj)W2VeBx+FCz@lrz8ieA%)FiCXHve@6Zk_9g#3HNC#hkLmiw@Y=(b zVKee)-*nE^KOI09?FL}`#vYWMc99%-04pkma>n&p2nY_kw1z4 z;Y84KXnkE%rR$%7%lVyf;=lXi&_1yee?yJ0EV#2vJbxU0(YTEIJyliz=tG*z@O^^Kt(aZB+V;hD3O;7#8AAt8P*ZQN()E|AF`lWpB zu`k#EpPbiF>x3~2XMDliY5fd|<%JXWOx%xsxqdP|_3P{JgC9_#{;`RF#xnlV@2B>| z_D$!^Zwt}O{SW#FocMhGz3_zY|)@tzIHZ@LkQ=VFX!)^V{{ogx?U!G6lo-caVl)k>Z#+Mh% z(cg|HyB13}-C{FKyZ+(Ocs$SI(M%H6d$7 z;|s7a`6H9Quj)rTJ@!pc{me%%`$tEd9{R^V{_%zXTj9IsE2sWhGZH_X_;WS>Ax;lB z{kGms61Sk2{pq=tVfjr@S<&aIz9g2TzZt!}A7gsPEdEVD4=&e#Rln`2;|Fg2i~ciI z?GKCa+t-I{mD_TgCd%O1BZBMB4fW(CIO7982rl1GgEOY!dNzgYd3ML4+_j{h6b%lA=CPfqsrrK*o|(_{a7 z^m0D!#*)y#>B&X#>)>)e4)sf!sbA(Q`U2$}tmQ9IPX2_GtKs{tYm%r`UKGn||7)@T zZ;F$%ef>3X>3?G%3H`(Ik1zZWQTxTQ9RF9N=X{H#p7!(gSHUGeTKP|38|^>iurKqM z&zCI>`^S<6O%tQxSpy=x?b5LQYF^$nF+zD^gwsCMZ^Pr7Cg$Q_-mg5VZCL;K_w}Q+ zd;?-R`YX}P^|$Gd+7{Jc0k6ml&dCY;FWirRtlF=L<-|V+eW!Yk?_INTL_ZrY-{)KY zeIxB3aDV(wQ2XOzIrTRS{hXA(x^7f|IedC$z%xPA89DdjO<{g#{y0VL4^&Q{fYa9G zf1Z_?4$rDkPR@XnOW-^!GFA1(%E@VPav_{&WsZht=LS4811D#~$-nT+h)=HniI3mV zlZ#D1MeX;CL*t)IXg1#~1Z~qS~)iPELT6OW^pw0DVD` z(~}c?{mJO%`#IQ04>vvb&qpus$MDPy{!P#S!q0=xC{a%TAt(6#=Q8Ze{a5xR;p7zS z%j`v-tMT`baK;+BkiFuwG`?QS$;s%+#c=kj&s2S%Sk7MQxx{z<-j0*gef>=M;@$y! z-oyvTKfdsPj`}ZkoSaRrGCl*nJinYtKU4KVgqxoD&p|KmKd@(xf9zYX!T;HCdH&Bh zImxfTi?J{7XZhT65qr@WsQ=0cH~Z{`pM`x{U)i2H_I>?D=yUR7Ir=lv56*X-oaXD# zfXnmcwr39araDMR%`#$K9kn}uGI1mi*VK&^k4eNY=`52vr+w@0(Ysmb{1|2{YU6{;_Gditm7v40BssscBD7$1y3^w>Wc{&v5>?s-r? zfBamf^)ot_Gk#7&FZX9m&zj8Fp9q)x8|?YhztXQC?oj(h?)uZ`%oVq4`J$X_73zYy zXdYbd|Jd~_db`$PF1$gxykDQZzJ=Sh7<2In#P?2aU~_i5{w9qtFP5X9j{fL@j&n`u z`=17v@8{T@5BKB0MePrY<-~tH`e`MOb4}{&kAu$(0-N*Uc6~QR(muJ4Sqe`@y89|?b#_ap0RPJ!<~p{|a9{6C`cRYrLIr&D|~`ZKB{+}BTn&#w+v zjtuvl{qhsv(`sM7ADHCqug{*fhpunni6vFN+?cAWUE|DYcO|3%KPPWC_cmuVmR8vSpn+AmX1PV_l@X)h}0{n;>Q`keM3 zjs2hcI?n#G*+;(weRkM?u@ArD=enAI;iJ&Y^L=JNT|W}OutGWGhy7*K6aUK^U#MqI z<8$^xS12!0eLBbg2<*Sn$8q+j%|80!a5>+_>JQ$fZn)Ql|5w#M?CHcL*(%ki@)!0$KQfFTJ_P@AzO9uHZt=mZ;8K6)pZ!Jj=KnqHXUqBQ$@=p-bKSej z!~95m#%W9VVC>8Lap?ICKK$~~KD-hx&)4H0KIr!pr~L1${jhxLeD{4DCMwVm&Qm=x zqi=FcD*ke~obO@fBWL>czgg=q#c8u2%ftN7{P30f5A9o5dd% zt9+n~kC^8?lj3E>C+}|(v(=fe{|tRj-&oH2p%nc-JsrosuP=c&t`$({e*E}Czd`Mn z1+=-(`J466dga4nIeSgT*q8gSrl(I)Kc+8&cO2^c!yi6x4=pSHHzvzx@%bG8gV5&| zI6d|2>kHw72e|sB&rrWyzteu3)PC5$)~Airego0p(?4L%1803>9Q^>eoF8ao#`+KI zYs&v4_9cHBCucR*)Li|3&>5#d7un z1MIKPbDa2neJ)(SA8B)z?;rhdYQIk`XD_oq`lkIICqBkM?T5Y}eAeN?@DIW@k-xq~ zUsKQDIUuk#5p((r&+M-K3;rMe<^GFt)(pLO?yhSQ_&*w7Ni1hC{cqKmI?kHt%!BIa z`Vroj_&)9t*qYC`&t88YxXh2{AHDB?huRMur~b@7@%2W3V}EDg*WeRKhD-%zJ2cH^nkDKAJJR=hy8Urq7U^$qsxChhy&^gQ2n7<$6Ut zT%YBt{gPPD_17UMK5{bljWfR3Yia?P4|p0UCp^2Mw&q%R zGqqpnI63F!KWgjz0B@qa(s6R;lqS2YFL)QqcSm7hb56Q`FO4q|%h`)N6#d*mj$_~V ze~9wpz;do1Kl;7Ze!p1GUQK88vc57s@mcxNcY@3Pcgwkc{h@E8_A6sKdp)h;*>e7I za?T;A{rGro&A;%2u`kcRTTb=uv)6hMT)t25>uF!w5C3h|{t(A0zuAX(L@&>0n0@@4 z9{&d>x%D6BblQ)xM*lfD89#Hbtr_6V#q3pefXn+8a9gvyJ0`{Vhv$^Wa`plbz`vY- zWP0X&U*7>P=Zmps^8Mor{ekMgPlT_{-Cbj0FLQtNU&;P{2K_;*FLazWkLj_$AA0$I zpN$WzA7a7&zHqtzr~YisIqT$9{dLyz%lSPqoce2z{)F+4v!?O&?cnW31vV%8`GNk? zTjMWtoSeDj`C6L4;YX@==f#+7_8+l4=gA6oclKe)xYG|WKN<^ zPPo5@)-OC?^#cOS89wL!QZxMjy`R%lXTE-b+CL(~|Nf(f<}d8;g+9N~*-zIug}>G_ zur~4I$A78D*E_H_^*Q$si{Ns8mvP#p?Zg^7KHyET|Iwhp`eeGkBw7AA&i%#4=;i$x zC!<3J7oHfHIvudg>czxnKYeZmcigf)5^`D64++VAQUhY4c9{axk zx^T%qwx;mQhkmr$?-t9szq1E=dH=!m#Ao$`zK;5D?COs>gYq#~P=AxKpS>}cInU-4 zIP)9#zs76*^bC9+JQ{NDzwM5FIX~U!zJ8+W`#R2?W_s+`Mla{R+{?0hff9!cgO!c7m)LNDK^xBQ!~-}$6)dH#$!fi~g#$3K7e((4#s0~}|5=z767 z?tIz?%JU=qvZ;SMexugkVCB>wdgGk0GY2luf8*cy8d|WIXMIUn_q^U z{CJx39yMwS zwEl)h_{*p4)bU6En5+IvV>x~87wp%}bDZ;=eErXGxqo4O3hw*APW=~0c!Rh8R{y-; zf35l-5X*`0C+y4hyV>V_DqsI&lE3}w4z&sQ{okPej|ejHAJEUw56ot|{(HEbFSgHy za7{qYHT#_3uwL!=k8tzF`3sLL?;hdwA95A%KRyJP`zOo^|I^KW03!XDN zV9reEyuW&f^4!4IEWV!ia~G)na>rQ{e0xuh&hPN8TK-{ytx3}Lx2yfqSkC*MThPn% z9j3>=#gF~(;BtPv#m}0`{1gA3*q8U~eLnfQ94#ySTeY8xKVAO~{F-7{f2c5YverPPG{x_gsG}`eETcY~)aCtwvQTA@yK8$&P z{H##>C4uE!pL2f23(5E`r}~`pJDycu9@w1WbIvDu3Z7l!ICJ8yKkQh>^Ox{1h)?$a zY)(wqKcn`C#B%c6=ji4AbJJtr%7^`RaJl}s_?gqpKk+}W@#RMNt8M>V#`Br*&(O>F zA+3Dr`cL7bdb#>zPBuODw^ZZrAK0AYbIu=G0+;#U=a&@yw~XgI;cKxk`~Mbyy8aWm zyx(W-$DC$*{4ZDgi3l%v=)YyGf8igam;DFxpRWH1{?God|1c+_*ZeB^ca4_sh=4K4 zm^F@l&gXa=p54W9`utm+b}nPAz~5ATzRW+N-shZ8^1AB#I8M$RT(EN)V;TM-@yYXd zmh;l}E7ks>SkCz%AE1}#PfU+}ix2zn!xs#9@sl&nKk=`^e%9y+e{k~7Wz+?H4SIP$ z#>$tje-AG6yXADh{)q1#E&t#MZ~W(f%g7&`FY+#Wc|InS{yo*_IZpkUUhSio?_XR0 z@%>|eHGKBruKmf$l+W6Ko!T!7$XS-N;j}O3Z+r}w@8gm)eNOvvKFLRLdA`u+k6#tBb< z`_Gf!4f`B9(O*CPs`lFk*5*Fve7f(I_X;d$_?+|kzER#Yu$<;|&JX+=o?XLnaxVVK z@9@`%ui4sM%em?L&FHfl1)2D(=;i(@IUSqn`d8rJHg@rov&}#8f2Z-caPj$^^9f%@ zU)*UIJ^3H~R*i3;jC=+9rw>y5f*q7%sXg_jpx_&8Kp0Bd@C+Fjz|Hc0{wV$7nFG1h&Q1wsFN!PywZ_>~8KXL~4 z$q%gGYhOqIC<*AZj9GFHoW9QabN_1j<^E_gXZoD;2mgX+cXynejGnOu|5M|a`=d#H zI)9P)HXjj?v+iCU zzxdxx?U!fdPoqC}kn^9ee+oWb<~M17%0$le%U?_F7i8p%(KkC-{m1DS!4n1A|L9Zc z{jV;v>E#k{{CMt?92WJoS1yhSUm_X->)&w{=t>sZPobTdn+HL zoS5My<9|@j{@`B9`#a9{d;TBW9B-<;SA_4Z`G@0=J}L2^kssl{{t@_veFM|@{>k;t zv7aO7b0ls0oNI-L(PyRf#AorNe+Vw^hfnGUjbHwK)qcKmax(nK)!%FUM0BS9=Ke;!|~7c3I5^u z@2K|kogR*V<9DNfqj&IThp3)d(ccAsqI*y>{ukBw+Amqm+N!-EHR_8@s0m(YQIW3bq24wJly}MFLZ@x4-M!O zaQ2_!)>rPpzT7{@KEI)Vr%@O``oq503YAwWCw|5(eU-k#`Z1w=gmPkn zGgjcNk8|O&KZ$=hIR#Gr!Ebp|u)O~T=Qs3>b<^je&l(lsmS54|jDBjE-{bW2;2(vY z_!;xW&;JsC0rus54~q|O@v(ls3H`D#eqT>n&<{i}`y1$uqc?sd`lE(LIR1^_08h?; z)IT|a`o|XaUxIx(9~1kw{$;GgSw9!6|FQ_jzVYj^pRAua{dI8pJ_`2nPtL$U|BL@J zwLc-k@o)TE^m2bDll~g`Q{$A=KUtsn{cjTX<$Q1SaMqU>@BWKhKM#k?`ENcy@`RAH zJ|3$2ZjQ75g|n7|4}oWOjPRv%Q~c^D#r@&~BHY(s1;3=Ta%>VGde%CupNFaa10y`| z-V~pU{{Bu8?(46FUv{YT&-&Fb|9I@@{FiIxhu3Ns#?Sh7jPmayd|dF0)+Oub(eSKK zBb@S4*YGRwe^HBwe_uZb-g=$Wv;Ot{k5l{mIXxUbbwzx$(aZT87Js^amhxuGZT;() zf1=v&8{zn;{<*%o9KAdrjr})|R>^~Aewut`}>}TaixWxxQ z5BOeebnIu33g{DX$_J-^z-OYD_haMq^u;q( z-^J<8K6>~J^gr}bJ-@+OACiCJ=fF30bMdo(X!Aeqf05cB72yZ1-J-G5m(GRf42tlL z+qY=_F;-{7vkr@J>X-U~pN)SxKgDte{(b#faC!gGIQx&j|MRgg&oB7g^ju4yiT<$B zf#sZZ{e|drDq}hNGtjRb=Q#V5zW>wVKaLA5=fM5?yF~2|isjVbY3P3_b)5Z6Uw0~7zs;x!)~?!IKNM*=lu=zdK`Xk}j^$92w{^9uNfARki_Os-CGU3z@eR9E? z6rYSZ0^~dw`)E}JsTdekrlr!hS zk9i{GJZt>~JZGG<4>$WfD?CB%4-IZwv{C0w(-RB&MXE22<><$wm+KqT^L#!2O+OAU z_h_p<@;+cPU}hoHZF zsN=l98)g!h4vA#|3fA6UM;t2n7;W`})^pDlbC&hBc$6)NgH_UN;|I5=?!sY#> ze}7o7eUkY6{{NoZFNo#z{|fZ7em6buC;9qv_<)`Pd$#lma?-`?!~Dzo>tD6sTj!5- z&a+5gDetMA`a#cFBfs*j8e`L?m*W(NQ z=c=C^%h4C3zixu#JMMk-v;bw4-3AZ8glv!oVfx%2>m`| zRL^hd$(5$xh+dw5#C|#_{zCL84t5;-zJ4J5sN>W>?N6V!{z3b1$A0!{!ClQZYyW{; zU*lP~AJzZJ2qzcNS9lijJ9yS$<>W;4wi#veuSGI`w8^db_~WX4gH&*x`gM! zrGFYH=lS*b8}{Y?lg};J@hs#o>c2X|E!Tc2&vFLXm-j!eIW6>$eP918dbz(C$I<7a zm-By&lQVsNfA}{egD3JgX`R9S`2SG*WwD(2`=OWl(e&gjU*8vAx4Y~A>HY67wJ+xn zC&vfe#s~eQ4|@52T5+3A+NZGZ_uqe1KO~mZe|w|9>j1}D^ZNQ;aCtw;@+V{dy++}+ zAo+6-u5WXCD5p=s=}U}%_DXhBK3F;96HZy+-0R9xezbDNG@P*v*ZU{J2+L)DLqaK<{E zy}qu*_hb*bKNsrB88#NtcY!Y+8}X0c{5MwrL!Eu}W*_~b=x0@{9-ow-_Ct^VL*TcK zaQ?{&e)*eg{QV-_#xi?h&EQ$w9}VM2Z}G!BV_(isust=nukQqJ(%f-!hVQ?Hmak@n zo1VS0gVE3aG}rdj()F!0{?Z_h>s}jrIX}=iIl=ee5k9FZust=n-+%T|`-5UR{pUdR zvVJxFhAmP30q~3De1;7BXDikIfPiaG`WO343qF5Cub)}#oduWq)#oQn|G@Do)sGF> zb27d0L7f{WdZ@mia>f+)?>qA&)pOQM7v%-Y$w}}TZ9h@YStlKp_fpQ94*uugA!o1W zK=t20mb2H?f%41y|HOx$^WA*?{_uCJ1NMyY563_Mi~r8*e~@z4bnp!qhMc{qPU=4| zmJ{E8*q84+U>`l_*ZKN=;j%tpPYeHW{PVx~KUD1>9?S9H9=)8;VtUTs^Y!iEk4_1K zZJ%mRgj4_cqW-&S`Nky1PI zaQx#7|J~JoNi4^I8}y|WjtBQe^{wG0@_ntN)@uKQ`~9y3``JT+O+S62y!Gs574hA2wBvKu zMfEM=@_kj}!zS_7ToL+5pR4u@V>xFrwLmZPujz@;*Y6FN^Ff!M8pe-*zx;!={3Q|I z=D80v7S8e-pu8f&->LDT)+J|w6=-}zVmbBG9RKotSMy*0x4H>m-wZDA{|~DZ#s~NP z7pnb{u^j(O#l3D^&(thRYza*A3KK8`EoDXC6=^wtnQIdC_`?2~bKEMAD zR{Mj3I8Og>h+fWzH9nl>l*mB(`S8i%XCLOD4LJ-G}$d!hA-PoCdn&l3COB<%CQ=<9j$``rAGQu`B~ zee`A@eO>fVk9YRTNoJq;_khdyH`vpp{BX*TFUmh2``P0I_9Wr7DV(_wK2FO&I+n9n zR0sP%RXR?e@%6hWIsUPUfBK4+RrC|p{!ooCofCg;^oc^piO<*9g69nk*pp&@$G_kH zr)&B0Bi#BDdril|vnnH;TtHpuSy8GV9I)q!eR3Y0TnIl#;~x^s*$b^nd`t2jC+GP3 z8t`g4-$dfaCh?QY@sIvkwJ+CSF`V|<4gJc#juW4+&w}5`eXUYCuQcq5^Tn5j^zC8b99Q(fhMAauE-1O967J7NU&GuBW@9TFyAzZGXjg#~I z_)o#Ue4oqbrf0A8KlF{p2ezl0u0Ku7FXta5_k4Yheg}G4pBX17`TqZf%lV|XrwaG` z-kwIb!MjcdCKK{%cP$9@zl*J{ul9I zP#OHQ^ppkr7og9n6U*sKf1;P~Uzi^I_&5D_xP1TNw6jC|e*EY!R{H~EIb-Dy z^pZbJPkdH>^uNR9`Mp;Uc~|SiuRrv&u%BJ(IP>3EJ6GxWga^*Jk^8TK2;D$`N8rR>svp6 zJ*xFr8sYVB5Azq-_Yc73`Qnimh4~FV`Gx!E880E~Lo>yX`rPIWxLdFYiBO;v3M* z^@nfY_rD&#zB0fkIh&l~xBm+4XP+BTCOA3ilcJScSImzusQ(hj$;mf9pW;tz`9=oR zIeO!?CF_$#svqw-bIzWv-_*8-e?feY4G-v3zMj9~PpSQQ&idtZ^sQ4I`^0DZb?}ze zE`It9{%LE<_bm41`8bQ;IPtUo_ze9G6IE}0w!yfR{&|hBFqWhL6#b6rj?<@n{aW~( zV*{I0{rabTOEtbi$C=Y^I(wzoAAE`WFOTJ{Uq8XV{RjPr@PWOw|54}Z{qHsG%lEhGpK$7D)!bD6c~$)ni{-T62iTYM zPfbrw^7Ze-<^6b@)6KtKU%jFB3t~CfS8LGA`KYF+ei%Qde-AGEYxc}B{_XrNo-yaKm2X<(*AbOKVAR6>c?c{tI*5&EtcQX^>4xD{$Tfi4%9PwE@{6|p3m@O-D&)-Q~l5g zzw+aKmGi9LN-2Miv=6^A=klAc|3dYHBD}+6?NraZVy~lL!S@^5sb1fI^!&dHm+K$O zN6f_M$G=JK4~THz{zkaGKl14J9h}~e{}tL#-VZSQ?PX8F*MF`0UQQ1;{e}NDPP~j> zuHQ{h`F;HgxIF*ub3gtcH2%B@xBAOHXs^T;^`D9_y?(z-)8F+%wEmalU#@>Py}O@l zGe5p%a5;a#;`8rJ%lg9XQzvGB;+&?5CGdBK2Jbu`)<5m*m;WcVKfrPN zoN@fWgkHW6ux&c{S1iZ_h=BEWdB0{0$jdNS?AAvT>oW! z+4%We;~VHW`W1h+a(p{nzW+!}`uwcN+dkDa@rUY*BHYRce@^`8$oEb8El&RoJQ<(% zf3JQR-+!t75{)m8KTY{Q`ZCw*%&%YcPr>)j4=9t3Un@WV`>)!scAWP6=AIT>e)uBd zljk@1EnUz5J^`;9=-QVyZM1Z6m%nOiek_Ra#V5C3eo?2(^7b3pCXu80uPnmX|GDq- zbLO6!_jdl?iEP!6*oD_zc8c=H@Lzkl@=qpD&BMR1e+1rjRKRc4A2xmeHPrvO2p_z@ z?edkI&&zx9@0N*&(03mn@Edx5^YstFrT_oaCmes+_sd^f;~y2EK~I_CTaKHn^TU1U zpO~(CE0eF^OXC|E;n>>i!?6AuDKCz2VtxMC^EKA`$_HiS^^{jBw>mF9tew*@l=!%R zL;YENzWsaQ9fxG(4Y8knd`5l``njW(n}6T_-EhgT#AI#am%pjTKT5fk+2>7^7esjf z4^#Db7xv}*lD(hSwwNU@ll)Ed{ukBsokySH%T z=XU%bJ4X9Yoc=cWqa&2Z`JYdG-Nx$pVEo$pgTBc6rJwpgCc=4F&Bn@p%11>w=R3j~ zYx~0G`8#ro*t!}yHz zeGL94mV=b%Yx#`x{SE%6EFIzUezBDa`+Wby`1Qp1bN>kU_1D4Wd}S*$Hhuq{)P8P+ zo1XZtMgM&N2>12Zz~y{8Hz$b3FaM!xzc9j0PhDS)UiMcq>APzEhUthJ~A(qpBduaSeI!?@{hj&-rC&D=klvv?c;y+uS|4pucm@|F- z74W~i>HLp|_^ki2KIo(6zTdts;|=d+w7a3SZ1TYePBlYEV$%9 ziyxmBKXcjT@cM%^Kil}_`UPL)j{*44DGE~Gtf}kDM_neA7eu(VFa0l1xtve#zIjtu zzi)$m`tqgXKj%34K2GwRIqCiTVz}I&$0qS%)9M%h1zJDye3r+peyGa}(aZeCZ|ME{ zMSp&h+xmg}@ylPL@t14;5VOx&D-2Rz9LuTS^Ta;i?=buHDYK8hSmW=Qk)MmcNts)p zr0ZwGXN+=uwfKDh&F@|NRcL%8VmWJ-a`ittBcFkNx&P0cN%?*I=+A-6`Hse4k~00a zW1I6oSnZc* z3-lShqegH7T~_diF9{k!y_0L#2CXL@M*VjHj8lDrLpMu`!wC}OvKYROd=ilep zp9+`nS6G|){;B_|>c7l!Uk{&xeo{i~FFk(h{}}l3Wm!bUgIx_<-~F{dU^iO z+9X|nRFX5kto;7?xd!{$)jGb6cYSE%vhS1EH>Yd)MmTQc*Z3*QOC2X?bXxnD)1R#N z!|{uK+wpKn(?HBFBS?gnK68g;}cHyR<2>-Gw zu$)GnQ+}>R@O81;AG!<2K71xTrz)_VZ~Enrgx9iXtG;>{{`sT{y8f7e{~cfDX422d zpkJ4~RvwT3k>P3|o9X_?!R7fLE1%6T7XJkr|IonZ6ysbgG8dem^qUo&2fzVXBer~Zszt>r&HBOi+X!La{WpZE1c;Ma`P@ojbH z=br@{-^2*tF>0He-{-0SK*z7?;dU*3lk!A_Q&+}sR9?IbxA9*^e6oHczgV67`oVBH zAIj&x{|ezbhmO?v&1S2{f4TVQtN$=R8poEcUv5<%)x$0SmE*rpxIVHn`T8>WG1Jt) zao>Ll@ztyjUhbHsdqRvUzy5Dm|0Mw$D?i+96`}v8yXx&XUtb9C-8rC6Siji%&1@}I z`<>kUZ~VYZ!d$fwp4G!~uAgoF#`@rH)wg%&Q@}ZEg1LaT#6Ze_j-0=cJpUqHf3ND> zX4DTrf5j21$EH7j;=cec=cm}3DLwvYHU9n)PW@Q<9#j9lBK+B7*Dd>J-;tWDABE>6 zVmak|NbSq_HIi#K{BJvZohyHW`v1K;usVaAeaiBP`Y+stfB(f0Eo&a-lkZ<-(g$$a zf3Y)i>MUKqSj#tT z7jF7~=-;iQd`+)i^?l)6_YWu&bz7x9Zt-I=b!{z%Kl-cZa z|Izx#i`bX*Pkg@n*RL%z|1W6$6h(NW%T_wx3;S~ZU?zP}xZJ;hTg<-yC2D_QgyY}h z>w#XLKhC7@4nJ#vj(_T$`%~Dr@&B^gFHmmt1GbE>(DEk&=1ia4{L@YB=XC9^di%}S z9|o7_7-Pj7YN>${-8Y>3uRoc}}Na=u2^rVh(% zpR>f}NA5pwm-X*&YJaHmI>P(QH3!$q#@EB;`i=V&@Kv(DfFD`?zUtQ~uhji#_`b5{ zg>Rnqn(}v)SM9=wtbbMcYV}`~ksm_*^87y6|Gs_GcTRHl&wXzG-&6k;8SQsMFYh;E ze@5}rUE)6&eqDu@AD@(;|E2tt^%J!(=gZ3d1^DwazrlA)ysi90<(0eeInS?B-cju5 z$omJ}ABfX`tom?&#pk9!koe^NH}sS_-Twjb)k8FXG{n#U5H{r87t z{BZPe%1{5M{F~K(*#C(cj<4+(eWJd;Qhlk~kK^s}KWlhKzDf1F+P`#MXulo$Ux(=a zX`KDG@Uz4F3vuyp!G2D7|C2hk_$eQC^_`ZlQ0>R@eXuXjPq2SWnbY-c;PU;L^!m5@ z`(Evb_ecHqG2R-zTtA@4zqOz7R`6#gX#b`CXcIsG{G#=@YyU>i`1@J?m+aF2jkm`Q`QGRy|D$L8S^hJ9bNJE2b$uL{fA_tS@io|S z<}dQQ>FdC=M?21*E<9VxLVPt;Ul!r4g^lmj`b+sIKGxb_CG+#Y%JZEb&idZ?KU)6s zUHIT+{%%J34reKe1$M{nU|Nw~6D#MEhF#8ldmlO6@bhrR#TBeQn20&s>51`sg<`io}O~i?1HMVQ;Pf zvt|6z|9*aAqw9b5wfy1!865wV-}+}g<$=@VpY}7phuF`V5?cjfgy*S7pm>}Stwt(-EY>)UDhnnyU-a>R%I9q9M#7~$5x;s3%9 z>f++(H|hsH@&8Tv=JwF`V@z>g)C8kZtQCoLIYQd@Ul}@;kh<^23$a zkuux$GydTRsr^#DKK}Nu4H3?@Xh+o#jc~5d(Zm0ud~$vn*OzhnKjHFxwbq&V-;un& zHvgT}{>TXDTHW||^c#l+TBkAkKj5e3DYyEe{67!)O3T+(%U7iF{W~u#pK;>vqW%xg z$bZLvez$-rl*effR~_O1PV{m=0KjduRAiGThV|Gm|I=`NgD z;6I^1qgwfyyM3-P`T8H>@_qyPi~f&>Sm>+t|2(xn%5m0raPk|xzw%1QS%1Op`sD}g z%lFGHKl*y|Yk)p0^l$mq?8CoDFY9CSmt9{N$JbW4>QFdh9S!PD`)@L=j>lrsr~W@zqR?xYM=MdHdBA{e7?PN#{R9@N52VvePv+pJfbm< z|H*29h~vDo*5#?!!uR`xk4fXa6L|m0uj{*l=tpY&!<^pddVYZFs~zW^!-=_X=(~*Y zuZeHX@W9@A^!2>o{}ud!RD9@t|D)CZP-ma_OUyp;ZA|LTzOTpsmvDK$(%y;m%a8vF zTE6kIobwIFtN&q+^G@NxZC-chA8f$>{Z)az)9BmhEZOyNncvJmdaHl@Pg473j#EEo zAN~b;IseS;`+DO09R8|&KP&mprr-YfKT7RaI!=6DuX;`U7knLh*&m71bC&Nhs*iHh z!#_iR&M2>crurZJQ@HG}@Xj3LpWjYBd4(H47pwh|j?<<$UhsQ^oU{5)Qu`wu=bfor>%OY*cfqGCFL9iAzGe@6Rc*o762G*s zz4Ml?KT-V;ishVD_z8OXzMJW>@B9B4zCgaenSAHWFCY3-)P6kYth|rVOMW*!@mc+# z{}3+Ezghk9&L8FDT`=nJOfCNq<@QeA$d6L|4D}!C(>Z4aet>;B9~S#?-Wl`t@55z( zk9YEDAM?-uqCZ>x4~y{Q7liG@S%+)T=g*9A;y3*a)t5NVJAtOh{(I;r4RP&j{)q+q z@4|bB{gXOL?|&C)`TGU-&Yf{`J@tRS@&U1&vpCM!_1`*(e>}ob%we zmv#PwU!(p<#d6MieGU5u4RxIU!9m=~pPMzI&;u5WY_)`3Tw0~fAmae~3{TIh_&Ocs)eruWI+9sa= zm*CSU1lFd0{OA{|efhq9a?JXi?+4ub|KNN-;6?18(AVi16IOrdUx3U0sriTh@x@D; zAMk&_+MgK9(Lay=ifN8hKfeAsxa4nZKkc*0`lbIof_?e^h0h2tGW0rTXOh z(XQ`!7VlLp|F{Te{B!-t{>c(}c14i7rmCy?0Zv`Nr20V-&h-mStr&y(k$^UT)scUn$qm=w|1${ z^_-Qv9xnHHS#zgz&MID)v~QeilDYpa)%81kt@1%m&o$R^U6-jX`0bQWp5L}>vUL4t z>c2dea~AS#=;i*O>9OzoUjYANa$whF)Ss0P{TFJ#DwcEB^?dYl{a||H^YypF<^55s zKdw0_A8RG*ZxibTiQ|D~M8{I%-) zM!4zWH=~#LudIDcPb~0xaJhabe!J#s{zxkRZ?t}@V>$8PgnnU#<6N`&`WxXnlePa* zC)B^+|F)?8{%-y@&h-=Ze*=11AJhNQWB5^+c^u{?~|4Qu3`5tDUHQ9zcpVRdr`YYfvzxjIK|9@(~i>qHhKJ3pyKW#6k$G-W; z{%p9MPhkCrH6Q-TujJn*I>cDcQ zujl;t8ft%n*FLXhg+7rkHWB{g>J+~i`#mSQ_{=`G&|d^!I>7lS=b<iG@+ z_4bs$vBp0(mZQG_{R@K~C#U)P^WpOTGyRX4()(WvwcjDIImah`S;|u-Xsvqe%{mb<5bJ2Gl?Z&6?ANw=mx9{iTr+f>Vz2L@AD~(^i ze~>Jn&uRY|=r0-K_y(C1eEm6a8K0lFdqMjL@1*(br_O4BL||p|Ip4Z&t9*jHe(^cq z0zVu3(RBp50?53bGFa< zR{81Jm-i!0PfpF9vPkng`qSX@{I;+6{dZFP1+ISl_^^K}`WyN;L)A%OGa=zbt68f`-JFYp|^M4}z+%bXWY(IYVJ=FfN zSkCu*Pe6acc*lv)%8!0JT<$N~nD^@seQ&j2>Du4te9L_r`nK}^PcrAgcdT5b^Edjw zs+Z>nV>tTb(aZDM#wnk#KMpSYqc;9^PLle!_AkMHw(QSJ&LQU;Czta5+=1#pko()I zIm_CQ?+fQAIdg)qC)e|R<^){6U+MG77cSQSg&#|NcXn|7!~C0mD!e}LH-z??lhDKQ zKS1s0MflXmQ+x_~d4JUWo1R$F9|M=?zpVVsIq0qYgRn36=ghxx{PX?dqtVOrA?W!H zzT%yfzF6x=&X+6Vvae~!SvJU{N+Z?*PT^^bmn)=#zL>@Rg6c)R1{m6tot{t&)we`*-<|1~1w z-}LZwC2-lFHUF&1 zh>!op|EcP~G?wGP7`^Pjn4UF}uP;h+E5C8R&q4XmQu{@Lt;u{|aB+*onOeTGjC>IG z<@`AOvt~-y7sBQKt@&roM|}J*{?AeSM`q*$(f0`bbIp>j9{`v63!Cut{&&8XuU{np z?Pz+x_D}lPdFnqe!Y$Xq3$VZ8n_TQOzOnD?^WjGw>-^Kce*eE*{hzO#I)~SMHyj_d z?mT^H z{xw(a=d0d0dgFc3A9qrO`}#icA1ht{W6kO3zem;ns0g>dLVmnM%U==Lnh(A8)d@RV zCT@ny{*ZCj)Ns~1@Ees+ahz)gIBPBV4eEbPM&6tFW&evcD{H=VeJ{AY|7B}h-~Xcb zTPEhI{S!0tp6IU_6>!Z%OzHX_@DnB~r%ZnNPhQ+Iu|Ugrl;f=VDIfd4@cHWh_>84aXsPr&-e=hl7)!`qJ5 z{6L-2Km75(1p7JTB7C2@3w17Hd_JT8hd9pofa43kSosLY8J}><3SR`z8X4hdKAhqQ z5nsvp2>10J;nPc%V-x@A@z3~vTJ2Xy_}?$5_<`u>4~uYLe*j$8kJhHt4|;Mf!n5)A#?H+8+?%=;f;bir1+}F2;&kX&eVSM}bzY6>Eeya69IC>l3t8_YL)|)jojB^HHoB;q33iDL;H~?92WE zdVWJc{iu}wBegHrXEB`knxmKZ4~%2q*EfSp|H41xtibmqzMuN4p5M^_d2dR;N#m=E<;(?*&`bWtKYHx@`iAhS zgEW3(BK{{{3FAlqt=cb+<>cxH=;iwqlpj6u`TF|srh~P9sT1nAaQ8d4{?Kn#`-5Ej zz-eFFhqXT{y2`lE_!*t!Z_u_zv=gYUsmnvpZ!_C{r|vvW)kZJ%YjaAvz7|~W&l+d{*DwEH*v}pw;pU&UU`_N5iUOOH z()Isn{Zz(s^fk~+|1>@O$G-pF;PU+zn^WL^`~9c(3u8I$mxEs3zcxMl$G$!re!xW8 zf4fWToIN!+f5`vt$@^_NWoLpBMF6YmabKyK+ z0Vlu0YpDJh<>WN@OY1{UuFfL9yT&>_&wu#(TIjQmbb7eyvA^>%(N8N6$hr78J-*=o z!OvxXGMsb5@`wAE_^+e!vH!U%XD-@-Ue2#DPW*Gar1by7tA?q6>W}9$s6YHue+@ML zQ45$0DFHbX&i(bAez$6Vp)a>q|3^o7 z@%14m7qn15EW(?85pr^UGqpb{Am?MB=R4pw7i=d!IUf=K{D%Ku8_rk%==WCpLt;6( z{txsrf14irzW#UkmJ^+Sp8p_zd=Y;u>}RFogIj#?-_RdWA^j(e-}ICP{wutc@fmWS z@9^udoyJf9P4QzVh5pHPZPow42q!-5!?$67PUZ$9ew4_rEXpW&SWd z-1OwapV7Y|-)~ON8R`1{HU6=&9Q{w|W>TJU`+4{}C?xBlJJ!=k)&9N$poe__*$2 z|D}C9YW$-D=1lbT4>)}t{sZ=9f55kIdgj`LRbS!s_%}WLd-R<{JvQMse&Ac-a{X^P zpYr+R=Mas5ax7>3Y(f7n@1KWr_J%D{{de&8WA*u5+MM@$dB2(aL%hFSgZGEJq~)vD`$ML`{K;9G-{BX)v*i0(a{tJ9i$Pa8Uas-W_mzZGe(W3PU7|j! zALi~q`JDG>dMdASocBiy>s+h$;XTqg_pb(DaD(IDQhvGq=bjeVEb01h;Bx=pxbGiZ zz1990$9cZp{KGe+?{{Rd`Hy*O-`C@76TH{NfS4#hzdd?!SU;4%Q0>e4@xsZu@a>JR zQCqz06ezDy&YTH<>Wh%`E?6!+XJjm=e!j-P++V^zdfu<~^i5&JTK4FBbNEg$a(W1s&;|0P`dulYA_{s*f4V&!Py zW*_|q^s;_5`@ElQ_KANze8R-wlLgmn{llq$>YDm5(efP?%XycqSp5%I&YXw-{KKwR zJ@&uAzFgn8d-poE&->lj=YP?E4!^(B**9+f%hdj8XCH3%(XT@<_xH^{@0Xi>;{Oa@ zCf{#Mjz8|%o_12$KNz2r)c!Q(#019{V*x%yxqLrO^wc@r#t*y-o|77%KIi`Rr}!T> zI^doydVVW8C%nInel5JHBH*4e{^^tEpLdbQs{In>)CrunB0k==8lmxxP>y{#eFe_D zT*FmAGL{p|C-^^cu;cVeU;i;&&etYp{KN5&FZ_>E|3j5qpQW!E{|Nn@ks0-4RA1rr z*f%}#e~7;S@L+zM&_8_||ME$hE1e#0dfvr*AAN%{LB*PR zTK}e}tmr4IzB-npUxQwrk2XDh691-u4=&H&ebj26=6|^LKb}=TRqdBW_=(%D(O7ub zVH%wG3l6KRCd6(fBwJ+bd6@5DAS^Rg2@2VoldH>wk zzXR_e*9SSFe>ncJh5uvKf0^UFAHQ|zwT`bwFV~lu^vA0{%1uxFZzuKJ-?&lBkA3_z zm*RgF{NZ6*f7A)}d;hD~YW-2ZleGM$%9&r_Uw6GuIq&kFsC;BBr~Ti;{*)9ar}+9e z;TKm0Tj$=Sbq>crzVLsF+Ru;W_+N=WZ-C>ppRa!dF3Gmt@)X6G0#^n>to@z{xi;8 zb^|!)+Cy;Akeg;yw-^||QDdGPuFo2#6)z%01DKgpT~&iBvZc1eC zvsPI~`KFaR&iC1U{Ze?|K=qGJ{4Z(|uHVqlQTyewoVD5#^py$6iO<)+1eg5DnuhY@ zpYl@{%71M#e)#-$QO;WADtOjF)svI?etnPJxvGc1h<&+#nn{0+>Pws+|E8z@UO+GJ zNBkdQXB}t7vHb1bB?(a=7ZT#`M2H6>X9rzjh4o!_u?X&QSBMZJ9zuY)yDNmqjXMbh zh`Z;;g}n9DoSIWJJLmWQx1aOux2n3QyQjOSS=Pv4N)c?R3H(&6%sxMFF3P^S~-0R?3 zX#B(5aq4JoY$r{>>F?9{8rpI6*uM$=X43!PA&f7nzY%^Qm8QQQzVo4xfASx_rSD1gAC_<8 z^PK#7OnF199)2D6cZ%yzzaX>^e?s-OF}>&4qL=fTNgw`sesKOqe+^vj$1qO*nx6by zsQFV8tKqB4`GC^@!6yD`3-FKr1+^dc zkCL3e@*MOs{x?1GdHq%JEt)foNysz&lYY`d`d`)b9}?r#B{*Y+SJZz)DkuH3v0pYU z;yiP&zY>0aX@)V0l?m_vO|@Sc<5m~xE5D(W_hz3m;q{lp<^FB!lf%9L zx7B`gD#!n2=w*L^>0j&~*Ix>k^C#$&lfJIc#mnC(+4NaVaLPB&^7QRH2k*n>`@iQ$ zOb_2h@MZAAT>FIH+IM1kPkC)jZ*2|y65?B>He+c{>Mw@N_Z{N{f9Vu>|0~pfb&Q+; z)wk*#T!dckzq|JFFy^Fw7F_P%wECY+|A%TneE(YhS^X#e3(?E{$Cf7a?+3a3`51jc z*nUuE;XeKg(98Lw`Sj<*U#QUMhaR84{rE1Mej9VavCsSvrk z(ugEJ&9&VtMR9jre>!~C|*|Fi$*$87%C{5YJsZoVHd|2;$W zMT-Zjp5K!CKQ#UUI=^Uq=A%cbp1H(dm6z)Ly72`U9Us~MMg6zNc=w%8iTHHluW5*J zuRjBRT6N@~n7#ks)qePW!O~=U;yWF^%&wK9mE7g9f?vFA1rf09rDd;ykEU*4#_`pfg^F!m~ zFXa1B!QdD-|CEoD&`bMG`N4lu-$C_Nx_->K=~+v5B6^u0&Zj>C-k~P?e#M-r|9;gQ z`*QvZdfF%WiqB5avb?{nkKI%K_tE)j-j{X?*TeL--Ibr;p{%H8Z z0U6dLkbiLU4`1Y8SG7M>Ib(7-bH#A{ABFyfsz}eAq}Q*9zMw7A!%dIKLWnV0OdS?<|O^|-wFFte)wh!XHL`R()bp;rN&<#EWiw{uK0?ei_y*;NSF`m%=B*<$e+4%!&H^+aCLcr7>=EnXCoaM*Y{u zxXs0~7GVr`iI3h-!dq_l#gBDGXKq*0rZqFIAt9^7W;DkueWb{ z)*9@l`XP~?@^5gN5kd&tgX2qeZKzeq50FC%Ber2(98US>G>w) z^@qVHh3gM!GvU7d-dFRdRoizsZMNt8C_gwaKNS0On=`iN+Ur^WdzI~wSllxn<=c}PV za^FUM*K+>aLCULR+}_{t5%`z+*?jt9)tAQjjK7CO_J^Yn21J~9w)Z~_eqf)7( z5r1DzpWM%qjo)+P8;V}mUmNE)uWy4d9+>%gn};vpG6>IOl zF1kP99PG>e+(~Zt#~z~o!}|wKPg?D+#9HOUGF_(U&Tr(bKD(>1T6sf^a~7lB6HpX_|dq`m=uc@X6f z=NJ0)H>>?Hf6eC3H|O%FLDOHYdgFWl^F(w%WIgs}{U`bVSoThDuWwTO;r%1V(Odr4 zp_lhtK7B1*=BG(B`D5`PD|bm#R!3l8+V3RiE^7F2jlUwssS6fMo9Y|e@pngt_mkJ) zU*@;HeXk#;`oXdD8{wuOj9$k7{+W4wHGENXtbX!*EdEO2++RzcnN7H*|6u$}`SYCo zH(r7L=Lf0%G<`Yt<@{NzKjazp%j(Z$wI9|mv)T9R>mxov(?3-8#_wEyTXaA2Smj~) zF#f_N_eS@dj!Cgk{C59o8S%^dD&kAim%?TK0FH+C$NL|z_QU#b9RGG#a|wFszvR;o zgufJ)f7AH%Pg47hsyB{*%fA8WWq$+qjeC86xP1R2&6ID;|CZk8>H5JFHU9>;<6n(E zSNU<-^m#pPv8DBJ)yw_%u6>7dS2%gqSNs=A{{g*~Ij=uj?bqk!M=1~EOFkd$_aS{U z|KZEDw;#Y|eLy~bti~_*$GbY=^~LCAeK_3wd!B*I`VM|0e~F3mZTWYC#@`gBE z@&iR*BI+uJ%X9IJT@ToTj`yFF#fJ0Oj^fefjQ9`p%X9 zrF*8{elPgV;rrR*^ZX3#%lk8*en0fvj8ty^y?$T#*#k4gWO?S(f40V7rrgr(`B}>Q z#yIuE@^2sPKQ&PEKTW?kTFKq5oj{vwhZnKK%{oiw3HmG-Dq<<&*rsUhRkdt2DkH_U~y? zJwB8AZQ;_sVw3o>>C4YeYJX^6z72XgKLb7fllraUQhu%e^2}&Ih@blVoZ1ijuhehj z!~%Z^UJ%#Qz8JqVq32FEICr(7ze9Og{_Xy5xZPj6rNmeCP{{cWJ#C@gAGf*VcK;h~ zE&lo6yEQ)fzA5G3IPVh53Vc)aGJimsH}3WKYkZCExasdx`y=x5O~~Kd57YOjw{QB5 z;WB@a&;Nt!KkPrG={G_z_y18Q?EYmR|Az2K!}lZkOPYDU{4e>xAe%n&)bby0_oqLe zhuiacOw&J9-!EQod;|Q;`O~~V(s*~cd|%Dy|4H>fs2w-^>!YviqxS9ob|3$G@R_Ch zez)>NETo_N37=N`{o8T!8oo%=m!EgT{_KAG{`U4w-xV(XYs#GG=KopsKdc=${eRGB z`&V|qyN`cexa_~?`ICODpH_cg)%b@gM-SI$A@!T|y`;RMUHL&zS$R?88d<~cN=Sj~0!aq@76XTnGu&UaEzn|dD5B4~*Ys8l+9~|kKlk9%v zh7n(r{5!KD;z|7q)t5(H=PcXSkMwJxm-27%C-tktyT;S+Ny+Ektyw?$BZefhq0={w!jK69qrC69gd z|K1^7_O}jysf+%G=Kkrc=->GNQPWo*aWr3DxO&7_qL=5NrsseEfy??1tA9h5_6%mO z7uu(O{;Kv{mGeyDM~&*N_Tj(43x`Dc2miZfy@eI>zwp1revyo?u}_-3{yV} z{RvN$tf%cm(*ID}2e}`_^Gm+T#kaY(A94MTt9Dtq!Ry4mMKz zl`%eV(SH^eR&G}e@1DZ&(O>MC9|2-e+rlKhfOqaOMmgLnP5Y; z-X0H|1n&~*JcxL`G3c(Ot6XOUt^5#HoeQjZI9fp82+K?i{yL-`_1bQ zs6Q~+OyjF=$Gb`U1pfg4@_izo{{3ux_f5%_e{28HXRu!+=l`T|VmUzlH?`yI|GlH; z#opQUCH2O8=FyXW?DtT8Lp%GFANUT++s8-!fN!t%+jHtKd8AhlnWm%oPo zoRSQEsx=L_HGtpkEV%FANh`fu=3xUByn|4dI> zH~n3DPz;R9P^`ETies`!AQTl(58$Mb;?R{u2_%8b{O|M2RpK8+LqfARlMOJ4nRaLFJ1C(9T5TD3nomD4|e z7X6@uQaSo(;AhlE`GdyFKfD3^1^M~Y=;eHS@{}|u^^4%QH)P0DU;cU4l>Z@We~@x3 zzqC(QK3g<>WvQI}eG2=sz7hLr`h{@0{|B4iKjRDhx2gTcR8IL{fL`t&%%^`cn?A+| z^x4TX#$V(Gd3{v>;KTwazC+=%zu)R7 zdE)c$5O_glUj78}Upi9jA9<40KMt4uJ67lMPhR7n{~e|F8}jnU(98E->L1TEsecqM z<;VI@q>1#~^BJr5EAsM3(0|rn)5r5o>K}&7_}lu&V!5#>YE9seceI>vPOMHt}!$|7q&KF6!UH*FQDn^pB^i|FC~d|2N4W z!2ZZujW3Pg50~+)`Nt;yZG3T*`frZ<@9=YrLr(wxNcBH3FTW4_^8TcM&zK~szZWj+ zXUsn~@o(doW7K|GUVabyqx-3U`g}?K-EgU&R{waW)IXaan6Bw-jK+uXrjJ6-`0_O6 zhehK*__y1xs(QwMCo3NkjsM^!XNR2e-$@$(@Vxvk;#;`8rjI^vQhz60&Udl#DK_zM z2oLbx5H(8Z{uUqMEY%feTLdE&C72?FW;w$k2#N|{#JOe znkfItQ}W;DM`mgMmFWBi?IXNbTgW$+`HgdwGd~;7AHe4=3OVx&XKQ>-F;4v0hu?yK z`970Re=}UhXUxyw9}WJQ%fbKo>Yw@@&bg?~D?`rw%6aO)Brm@S`?9_n|7QOdr@s+? zvdk}L{bLjV{4f45RQs|%AP>I*y__#-@g?=w!{z)@EC1N^`F|<)<^DM4tjuTMy~6Y{ zzjcZFZ_LZD!@j(~Ek5jf{k8D1t6UPx$=-&Rv1@-{5oMvcEOS87siAR{g*j=dM`e^N8<@ z{Q9}@RqLYpVL$)O{Ox>=zd4mNS9~>k*}rJ>zsdRKIdIv(Xz??DPySeZH);ISV%+wk zk-qDd=e|Fn=PoqUUxocUsefVqF@Nv%H>y6DemH04n|?NWdA^Ze=J&n+O87B3eKP)A z)PDT?gRM^|{wvVS`OIcNslOa9=bzK3u=!KU7w>=iXD?&FNcM*cCuYV6%um2+OCM6+ zl*;+vdo{k+y!xYXOzGHs{N4LGx7bmXEgm4s!wwIN>8g^_Wy`| zd*;@^)4m%1WqmTgc|H9z^fTeI{}{dJ)_;7?#h0{?{v7mjKVh1E`a);JIsYuBe31SZ z)c#QAHfQMjUuU5oQIl8ylImMh_4q#%y|fS5^!bl3{Lg^P`9W~se!yuz-cdt<7;fkNeg|c)9^3v5A3JuPle0+YiwG4zJIn1`?CKm zjnfx;FB`w-*8jr)DcG0!0e%IRKYG2N0cJY~g^e3U0^%rUOH5uD;WB&x~%lQM?Crz}e#_4Mv4?kmY#(sl)|DUS; zmUf)yhyFP9GJedbKNc?Y*Q_6*PsN%o)}OF`n*HZ4^!xN34wv}@TOYym@%dk%&rkL@W!Fy_&vd?CpWk1a zfBp0FKQ(^&{_XViWxrf`mFE8+%4K}$IBO|BTlW&p|EUsRk(~c$>nnIBUOyTBWogtu zrcX`$7T-j;v_IIlHUHSMXYr55AEqyjPauC}|5-l$zp5XRmybu^ysdI8f8PH%_@7M~ zo{6Q|=l|+jKk8zf^jle3Re610zKZfn<(6h&{>I{8&Y$yn?(L6(%lD0ZyrY(n>b!h3 zdRf2V)9me!%5q||GU3y|b~gR__*%+qGCobd{v3vV86WvF9<&Vs{Pg&r+yf( zMK9m?^63W)FOvAb{&TI!zAt}!YW@t#kY@7_H~UrSWqgg^e)IahRo|B3nR;&NuW)+% z&FjnIvcEZB|L<5$f1CDCC{y$gDIfF?sow`GZ;5f*Z`R_&5778pBYu#yN$~EsKA?R6 zZ2a_puuuB{zxm=jl$R3UgTqwMZ|Hefpyz)F!e{kX&TquWyBPocZ-2PVf6{+Si@#0d zFNty53QJ#&##h&lvlgE8RVWYN&)CN&`ctlXP^CH+ag`5%}kKC|BkeWzBnzvJ~cYM%S}1GtPI$a8x>#6tRc zK4ogZJ-6qV5q*)I4@LhXO+QHW4ehw;55m9fA4X4_$bawuK)8IrHYVD%lX%E@)z#QUkmo-d{sE< zgOfhWC;8i`JnWx)`*70NkWF9Gzw!O>FXKZvd1CPy-xq#pnEyV1&407nm-Q2g{5QT2 zdO6<%PJH%!;5$hCd&8yuCrzZE-+cO8)qc3X+Lu4{)W5yZ%lr>|;`935h3^TM?~B-^ zevm%jejTCq!~UD+$7JjGM0i2JNKgE<)uaXgqm&PhIM0N(m{{P4C=dIORzGHt zoBtm0-@^W*)nCd7&!4nTRr_-Oc{XOs5AT2DQ#5_;dB^PgXD95-{7ydoj&Rw3?z#7W zxcVOy-`QIKc?F;3@+86Xze~wc7IZpi{uZ?dj`XX6>$#0ZdOFx|a zKPDTWaq^6`7~dNG*iwz3GU4_7@0RdIa(-=|`KRO6zMKz{<>$(rl%Jp49KDnuE5F#M ze?$7IexRur1qQg^3BA4p`0IJedeToQ~0m-QTg)z`QKC3zntGEWzNbU z{;m9Nf_`9SUj6B+5B;ayP%ixZ$5oz zxSaoGe2uln2j6thJ)e1r_>;U7dYNA^{lqiJ2QQcA^y|Ro`~l;uZ#6Mies0wGbL9i> z{a>fNC8qb!cWvy;{#>&^ac*3HgX)LHxG!I8CE|Z8Yrc8id z)jQ#ZeBTb+1ilH<{_($u+&wy24g2za)7l*0KA>L}F5@5b@AdeAwB{pR~UZs(m?MLEf*t zvyHDMfA4nUl%PQLMY8_D^!#S~lhHqnzMv)IKgn;N|9iXmm+?jM+*8!Q>Gx{+tax{^ zwGuAN)s^7#H^&IdHUNO^95H2PgS z9v1O`$RD{Ml;^AdW&MrU{|%S%f5a31pH=(0{n6Opv-;sEzQ52*|2m)kzp5V=sUgp0dy~O9!{|8*gk5+&ArpWWP{QFIK(Iq2PPyTZzF`TsWd|tx8>~A;wo|C`7 zVqeY&fTQO(uV1G6QspPg`JJ9W`s8lG+secJ%`@c8UC)Os-8Fbk`JSrh%wW%F9lUGs zGx2{hAX779*M;c$4gdTv`ZrWxp`0^;J>TT|U4x&{%lEt1{X#vzq33_mzlC1*hvwry zl79KV1?SA*r2YrEtgq<3)2<6iKQ^(?|C0VC8ehF~&NTIW#E{*BceDP{drn&6-(z3S zKTLA$!@q;e{-2Y&hW_~t|JcI+duqQTFaH+(S7pjMe>JK92A*wydH&eMzLlSE)P9Mq z-`z#aM|Fpu$~h}`v)6hCA7|5_#{Vtr8GNMrvdr6ChWa(O3iX^H4F6F1puGHR;`?8X za?S)!>c4`^`GEMxrjL*R{X%$=+&^LQ;gj@P{9kJPRgr(=*gEv?p226zn`QlH7{761 znRKRb?92SLrH|jRZ~8CL%l!`d_@~4#>m$s5QvV5D#*dahV)F5St@fMq@{iHW{2l%+ zCa?bp{#|%}0(p{r{y%8?TQUzlx64A$DNE$__i(9SNlsmXe~5kgKAq&I{~*h0f9#nM zpOwF#G=1Uv%ryQ!dYK<1f7190xV#@ZGX$G_->Uw2w61@pef&ey*QA^_)pN$bzbdau z<$Oz9j(w@0BR;xHZSvcGryL!fukgF-OH(=H+hypVsLlNH;>D`rx78a@kM!@sWqrd{ z>xXyV6Z7L69IKqa*UeV?+HqSewv_l}eZ@D| z&er_3_)K4*_D8qltncD~m!OyPbN72MJpVYUe-|$O=N?P0h}pOJJE;B2cHGwDy@UR^ zvdrxh)Aftt^8NIx^=B=xHKk)dK7E1Z-)d^VO1bTC+wqR+5q}%~VDc|rzq;!CDYyMu z(>^^T(!YiNiN1ODZ^GsN0_tBb<`egRk+4`)C z_qyx&kN)4O*e_~~@rxfjQvK6cUswItDz`d|FX|G!3ta9`WPD(}$C5ePe}}&+{)=`9 z_132`J!6HJ;S&GdPtRFk@p=EH8sG33xBS6=Z;fwoj88xCq6K!o#`YUu@xyJc|BIwg=4VKstqk+cp7Fcc zr2cySGjKV7!hVBW{H#yhQtg+vc#bV!y%7KkHAQ6i)uyZ*VJrtgqc0{{>AkKJAgq7qFHZ zzN_*fF-}{?`eb;I6g_Pv?JxXs{LA@n_8b09&-&k8H2rn$IPE9=G14dJJLS_q3YYc! z*t9m+;%EKy9%{cn#;^SP@&&A)hVPz-)4szW!M@BNSj@!l^$%zL^P9aB%s=b9_sXU( zAAcxo-)v&v>mP*6_{e_q&yV%(`(nSKA;xEAF4lJm{C?3FN&nh@^Lp0b_tN;9+Hu|$ z@cZyD^E3JM_rm4-EoI8yFV_CC7jyvji<)BG+E;jA^?yi=^RBV|wZ+OSV*K^PXDzV( z$r6fOcAR%1{4Vq||7CyUxIzPe>fk%4ZVCn#3p&3 z)ZYr1^3VH$HXEC~|M*|tZwF()Xn0gV;d3uKQ91RuL3v|Te&FvTStcL97W*=Op#7rF zP3o_K%lxAG$0q)5f6H+7KOky<;d4fx6t&;O)c@eTd_MMdz!iUrqFWhyVBcW0cc>7_WR} z^nQnLw(?lzyx+%U_4a;;Pe1>7<-C7KYy8#G`#Z_!5TBfnNdD93O!BMXGXA&z1vc?- z`(wtb{l>g}HhTHKMSS#mlKLy*az2FhZ%7mAxBk&YwLdg3zXH9?&k!GdvZVfUxU3(s z{3lPzf9u~Kr}Wk>e>MAF ze=+={uzwH7CjR*w|HrERu>YRMFG4T-pUi(!KMOAR-&p=*)93$5*e~2)$0z3V$bG}~ zv;XBp_0Ro$Vg8`^{6g%HDT(qg$uEGPHCp}Kn8*7+MeT>>BaNSr{to&6A^y|&dGLmE z9e?u7d4Kxx>-4OB#<#|K*YbUX?@woF`kQrpYGu;Kr+h0q7yAdu`QD;ue2RUqp9!xB zGJNwk``-WA>VJUL@9>)#ZO+__!t&4f`Yh%BV%+@0&%wTYAI_&g8!qFceEw%@`r`U! zb9T{K)jxXKUyt6>XYrFiXTs(F1lH8RS)ajOs(e3Uer&$RKUg{YJK#V3aju>v4ZlEn zjdEKb#QF+b-!}vMa=snErRlHI_`~zTZT|@NS!;#;OOy|Z^vvIt|28LD|9i3e5APo_ zJ?EF(THopTm+wR7KdCGvq5dmle88HQF0i%2m#hEqe0I|lpYhYNFXMl2 z-|J6wITgLkFJa%f*PjBH`87D2T&yxI~ zt31pc^m8IL2%l<~uTlx0nHtx z`2E-~Y|X2mh+e+$_%wU_6W}sGKulI^ zo`n~LRf_>TFO8H3R2gBw5_(%N0%zM^{L)}8+>}$zS#O%U;f_7<}dzj zeJtstd{UO)Qr_6kKAgOGQ{!vM%Ukh3qgJ`C&nG_94}s4g(k_3^|6;Wt)_##_*T zTCaN2Z_fwLTHt25tUtH%$!|XWOVoaA#I63I=l$A*Ue+g}$G_LJKEDwz<6GAM@J*UN zE8kCT{m;;AY2U*2f1cC-W&P+c*HFI0^(*xM(LcUHk@k;SKlKy5Xh4QFQ^x6wqNo2j zXFm2z+woOp{sR8Q)#!((a@Oiq%@Hp3%iE_fiXQ&dRp^K2?uod*1}^Kf)ADbh)5Zors{MHSZ7i~En=!!;n!c)7{EOdSs_BCd#=gv-`t+H8 z_r;@wYIvt1nGSn=pydzEHP?sF2mimR{h<*j{tLHTp?LxSS$Rdo_x@l^@XpvAufo2} zkD2|X{#Vu4#<=Op-%9k~%Kg;8zpwFOAOF-9{8zxGec+k$n~$IW{R{g=rOJ7J@IRjp z(?=|SDz8fAJnKQ&m-2yq^allTeK}mtr=?8bA5Q-9zxe-0?GH}n_%A~*>-SB+{;0UV z6fWQYefg-{WcdQCf1R{`9v0)@z7y6D>gTFjzZ+xEf6)COYWaW{DUX*A;~mx=AC%y~ zX;4i6!hIh_`c+h4mdYEuO$Y{}m-F#_`P-r&`=}pE5tE+#x-$?XHPW=6`|7S_WyX_g*_k(wA$aFkD^baThu!aA%)c?R3 z-{7DRmE*rJdKrJ1esO7BzmDqbW8C!E?}J|MCu{5(`Zqm!0T19Ze&Lz$TY1;9a=&u; z{5SY%)ucW1PB1TS;DYh0FPV zDN>HHL09unL#i4Z+h%|{XuZq|84%M^TdxY;@?2+ zH^jKbM_wL?zO*Vso)f?6`5XO4s;@}p=np_I`%_GR(;cCI)9(*|EXYu1_zmv!e{;28 znaUqNbzHC+yl_yA4;+WzZOSNAf*@v5b^!uTg z^)F_>@xz>b^!sM{!^6Y$CClHgn!d8AeTKhv&hiBrnG46(j@k5C`wj2%$8vps#IhY+ z?sxLs+IRADAN(&Fl;N3^ze)WL>c2jfqu(37oDX99mc8Tt_kw>jG-G)J_wo18_$y-k z`^C$(d=vkk=wUW+e80*J zeICm9{6|OY{uTP?f4(~|I6s^IB>R-|B(Jk zAJykL{g2s4F4I`xI}o3|f9SIlANEau*E7;TQv2mG{>l8%KDJ7gSH<{>heJ+ZX#l*i zCPSYL`?Wuh4&b!!@a^$0_m|?I-|+wL^ErKq+OJ9F^!2twFXM01W8dqyh0FdH^MBGN zV*=vG7x9;Cd@ULJbi`+zzv0`Um-z#)xA@^(!=-+heqqy?SpHQf?8CphF!WFUR%!aG zV|wDl|B|_5f~~MWd3eU2*>@+$^;^RKXpDH$e~tQYigELg{VmYT_xHYyVg6&^KmX0) zFI7e5tFvf)`5S?K8Gl;&#pbGOFN@lmq3S_RfI&{2Q+J8&f&?x1px5A>yZPF*c^(0RG<44DSTWeDe8?QTsB#nSK87 zL;Ee&w(Oa{V}rvqe=1}Aym3qQ`4a1)%By1B$`8Cd{$+i>?a{{y( z_I~000Y6>s*SF*JHFy@sC~r&Uw1r11uToC=G5hFgYmdmrkN+fZUOGDHOnjd;M0(nH zo1Z}62`=M%+HB%S1IHHrk5>CbQh9ZUF~K_M=MRiHHobmrxST&gn~i-m=AZPRqW0T! z{L>bmsJynF9$U1vCnz74$`=%m3D&~D>`yZPqzV6~UlT6h|E*8iKHn7n>9xQw5y&ZB`_ z`8!kXm$l=JAE>J{l=n~NtG*;{A@=3|0kh9D!@lWPfy?;Z+5|M-|4g-C+m6%!qb{AJ zyd;$m?I~kb?92GV>=QHgOJJ z32^H_-i&>jfA##)@0LdVYUMRCepKswy8ev*=Vcn-$ab9PM_=}0)enm}ZQ`#pm+A9` z|9hLnC-Vc$S&%2hhkf*~^dA>os`i^w`GlXx1}o9a{DA4P@Adz{<@=AN51W6kzATD= zw#JuBKm4V^%XIx4>ANz8Tl}^6jtl&~l9l`#%0Z;PQRmVj@rM`4v7sF1SwZ*T?wG!tnWFYrgWT7{7PV_tY1${*HYa z|C{}}+l~vo{#x`hKjFFQvHu%-nZL6%CH23;Hys%99wW!a;=e)dH^jL4pLNr?;1~3Z zOEZ=yN&QWlzPeP7{%7>Ef57zbA07AqKREMC*>|$9Km6~5*q8d_`Q}TPX#IiTrTz!U zc*#FYG=Is9+m#QBaeF`WEPukk%+Fhy=AG>IcV^R<#?Ss$z7L?6_07hy>GeOrWqfSU z42_TfKDA#N;}3qkMC%WEeXsJk-uP?#j0?WUzI=Z%`=r@8`tRT}ezs?d#`}Lj?Kh=z z^xvYF`3cj1T^ZMZll5W?KtaW$*V_|H>UFIJ{uc+ zjenV6F#9||{G0wOxQzeonV^B2|0lBPPvg7nFfRBKz0@z`#N_o~z_)12Se~Qt>0hY! z%Tqb)&pt;l>uXF;o_PIdaH&7VGs5qa%$eRU=fl|d!`1csVw^KqLR-)L{67^Z{G(@1-|Iht%ky2nUKl?d|NJlhUs3;UG0t2*ymqSz!OQAD zt~XA6A7lT5oSr#<*q8Z#&$pZwroUpJ3Bg{X1~kUt!M-ZgZvN-=}JSP%02H`D*S`*5Sr)agv`K#*8K#f+vryaD))==~;lJX) zpgG2AD`@}V|I_@b&%9h3wqLY4aM~yMPa1ziUj7>K$^LuO)24X+t8h6#h4%wCiJ!L8 z{Qsi%hv((5pkIGv#EH-AUxv&6qfdSd+b8_{^sm(Px5c=%1*GpU<*fhB>8&k-|Eck@ zzBiq}gnyaeHBOu6^)JHZe1{GvgnGF5|Bu>l%FACsUp6e_v}s=dJbYZ4><xTszc!UqSJ#D0`)+#1 zY&MpIcT!#vaoR8Y)&pNh?Wc3vlBbAI_E(yHz8QJ_Lb%M&Seujd-$niBIQq}0uF&x{ z{uiJ>uy6GJ$?KopZ+!4%Hh)ax^Jl!A6}PF{Z_F4+zxm6{wEqX+K-1S6;~#z>j=zUA zj1SgReO1I6bK6)K{sjJI{Os*}eRtK@$GGW<|8ey4eQ3x=E40szeXoBEF6GPk;Ev;C z@o$9v!nznY{nN*e4<1Ed)i*Qr_T}1VPwF?(^!H2U=pRA){KwloID}eE~~fljo!+_YOjwE?#KVwL6M#^-S6I< zekZj*IL2>Y?|m)*y^ov_?5Oq!q;lGd`?Be?`0?rW_rhiU@rTERHsRj?&T79lmE->& z^m0Cw=|_DU*WV5QW>Cg_CiAbC+OJOKA9tJ(?4#*#ig7Ee$E_S6?5X;S7`M7WEPE)g zO68>WF5;8*?G_((*6Z(t%lO>#1n&Lst@ayJIsWfJFXLm=Q)j&X_N@P%d#}*?2eu-fi|8B~??0pV2c>fS--KS)_nV$P@%kI#GJk3Hmok6b z@GyP6ze}($?>EmaE%5%z%VONhGQ6M07uS1!1ODZF0JBe>@ceqX%nv>~J6C7D|AA_s z^~LG@I`nHbN1QzO`fK4bzCU31@cF`h`UhcO&e!tX@{;tGtN*y(^J}m#>sw6EGx2;r zT3MdcNf~DIcNwB2JXR(KWq8!96`F?s!Lxa?0b`)F2wG>o70AENe$wBy9ex3m$;bNOp}V&Plf@c)DJ zt?)|xOZ_wdqzV6~zXHBA_k7V5ycwn+{|Br6T>0^wZ-tkm|6*KZpP0P*!}(S?3;WsfX+E)U`U~MQ zzkq+!oYXVte~Q{~N#)FyUw~fL2brGli(Y>|T<$+vJn|haGt?j22dn?n)qZ1!JfTb( zC$CsPb_QJLCp;f@`CFQotd%)Y^}{oi8PgkQ{nT;F8!}dAv2UF9VMoIYhew?H_tl+m zY5j$tNBl1j&sd#I>W@|XgHt){$IeAB&)4+W_x@+X&uxj~r+%4#;y*#-tBdh|ufC;e zg`bnnUrS$7e>VK$;ZgokztEGv8pwSo1Xt=E!0`qm+#}I zr+$^K%<0dB%lY#5{LsVA|LN*~V5B#Wf9%gdKdwUc)}~#%>D!ThI$XvV*d!+Mg!0AT zT7Ka2ebUMwZKf}Om*QX6=fJTK@A74?e4elAm-UHKCye9Y>d#D#zb-?a@|?QH`lNG| z=iy~TX@{W<+f zaG77`H?xm_{+Is2C2C*J?@QsVk2(>(4~VS37(*B=d+`vb^7VuJrRCzpTM zsQt=RPW~O0wQqXLhu0qo->E)&fAIV++%DIDd|dN4e7{pB;5=*kr~3U|dDuUqO!7{m ztit(zdwVuM-cO#}_tRUHhxR?U@2@v256|yNa=yhLLHu$)gxRM~;NSFz!)1OK&TnYu z9`#Q2{q{DsAL^5wZ?V(R%l94A^ZnNAr^03ZC!92)>3Lx;{dcPUFn^Pr@3&LX%lO;$ ze82Vj$?$hdGS6HY_8F4-|A5-B%@C7+KBR?j`S)hiN1k|2Ub5C;Qr16uek1=TZ?IVN z3jO`r_|rIfF%i9tkBno}>nCJ6@!K=mEm$0tpGVYwONKOiPF}Ho;9=#>shqqTk9}Dm zVR~Z5zUjxoWqm0A`3+6Ww4DFP)c)X9j{mXfI~*Kw%Cy&yflL2w`{|3L{Pp$cdF&Sq zP;Pnt{pW9K`kAYHTKx~qVAFGAWqr=VEGJE#lUJ<&8I6B=f0>^2W8d_P(98LBrZ4TFeaOyYlKdbgjBE50^GnaWNdYQjP&u{Q=#^v(JV&-gp5r_J&DgW)p&M47YlP5$GH@$ai@zo8u`FInIA61-q&jL&L%E6VGU z*q8Ii%s%f#?3?}-)i=es>3KdQ(06Xj@Jxs=sUHrP`!Puq9F33vO|?HlIX>YXm*>*= zMmBvs6VG{8%=Hh$zKox-Z_m78hp>E*KSSYie+PQ+pZ|rwt^VtjW1ljEf8%ZF<@=wd z&*JBQ@!tynD>weO`3*SpGe2qk2W$Js``tM2I`$WSss3gDP1@HaXD{F~)raFFG+s~t z|GjMd=#!kW#1P_>@1r)Skkq%pW&CD+er$f&=XJG(|4*{a#rf1q6Mm&=ZMJZJxMGyZ4PN1QQ{*EhkJv_|p4&sz3|_C@gjvD#1P_-{o2*ujyW z{=3&Vz-4}fJ`wqkhV;|dA^o3e`YR%i&)1HBUH=zekG`TNV|}iq{tJz-e=09NO!lIo zzbq4R%~R*U7B2S(GNvOY|NL|>vc@O(pJwxfJe}M>g?^oujK!4HSHk7~6WSzSf2{s( z#r&e2Z(&^f)K9*uZ3*8ZJ1eh>@gCh?k9dL3Ps;tEGG@R&dY(W1d-e+cMf`B4|7Qj9Utb>M*f;&3s&9!neQMKVe-L_kKUn#-_=pAj(~`B%Udn;kKd7JTZA^B<k) z{Pn}Wd_U%$>Gk|C<##QOe^4stTYq2lSM-fId4_+}_kqum^%asQK7M?m@1*u+{X`09 zEmeSC`e(*TAL%!JFsnb_V{lgdf?%Dh?PMQ7vs@EdkE$g2$X=NHtS!AtP zSLGF%G|pPJ4F08mXI$%~(;ozv^H1@QP562r=KQa(_8U?;{trYi=OdV&I^*>Rz~y`@ z>TELo#J8#1FVEOJ#pe&_7iY{IGSA)^j_DYa`1p&}esuVlBjhn!b_BZOk*X zCC7Kd{=}*bY4&>l7kx(U4@l*#71Gm?Z-D;qAra@9dwqAf?EkR(LHVNmkrv`R zSnbRA&20UFTm2#b*Vp(X?)~En{TQ`hoXS}X)fN56eIibL#Bcilz-4{Ge%-?Qi^kXAshYl!Tb|w0 zH+(+4A1A@({Y9R8&a;G1)c6|n@^$eq`@c=kGsV8?yTE1tKk-?ad;Hm)|0!Af`FLma z^8Ag{rg(iP_`uc-Ws>~0^ph6iKT^|Qq1^JU$CB{*!jDk@`T087m-%(Sy{n~I@ zU&S-`{`p_*AFcM~e8N0@E%d+ji8y6~=V$sg;WEF;n2r9e^?&e%{cF{JU5wM$v{)|C z^f$*i{X^qtseVK|&bx;9$8@-?FJw$-{?RjjW3S68YG3Xz5pH9$X9~md6Z~YgU!BU? zzq1DElkval854T_>Tp?q&6vvj#~1q3)PH%5cYPonAF=EbFnYuL*D70^ZeMWFjM^pshqtQMcBW*PsEA&6tQpmLb!b2$G??{uD!zk z2X*aywJ+yuq;UKfpdT2&A6EByB^K`;rFWloIc6F!~UU-k)Ar~_20sK zHfN~w-amh1{{gk%n3sQpUdG?1$3OXJ`meM8txj3_v;2P)`-LqT)*OYU= zPPl&*z3nfBzpC+7r}BmCO$t83zkGkqr~eSXQqK3z?oY+O`A7eT`frPI+batH0KM!_ zwV0Cn_u=w=-ZVb_i`JPGysh?IW8C(d!dIY|@8=d%QokI2TuZcn6mI43nU0f!rD{L7 z{}gWfOW{kD*T?j>*A%`C`*QxOmD!~JJ-D>*rt$tS{c~clOzqdixb1a;FGVl=mo28G zehFOWAME^#qR%Hr=VMU+{=mN6FY3ANm0M@e$-z(Rza`?N$@bF2zs|;IdY&m~1<=00 zKXH2A36yy|{{sH8`mc-5$MAg6_LGBmiNEroh*PJ${vEh{-?Z~H%s;-+f1&=XBTkvO z^Dp3^tN%f%d~Wy2!D8%xSR8TU^ZK{pGJdB`q5U)e{EhxAwO^ddHz}ALyp_-spPjXU z{!MsoV^lwU{-ggM`!c?>`a_wwvlQUpssG&h8=g=4LFy;=<$OBR6TjEL4!^T0sz2U8 z`XAMPRVu&Z6KQ|Y%l!jZ|L||+2mPyXS-)cSgYs$R5B;y2zVe7u=4~%C{1^2n!9sUCTW&MYpA7Xl9 zf&Z)Nt4QS=ygNB~9=&|uF+KL}d=d2jh4;#xFXH1zU!?tm+UWcc&l?s_4xU4QlAI5o zJ#&WmEdA)8h0FeaE0aF|(09bX?5{IUnXvOi;H#JgcuF1hO*q8YM(-WW9KMj}h ziIrLJAN?9?zke!!`0UBSBJ?u;GClFx^GE*_{Q0VAe?INE^`B0hJvrD$n8{xLU zv}~=(!N$sEeQ0+7G~D*@QI@;GW&eWbwto@6uJYXeYxK5%QtN{9xPRL#313M3(tosf zW>UWZF5k~h12_MRU!E9rRr_&ndmZ6VqL=Z##gx=Pk>#d=Tl%Liniy=L_DiDulW^NV z3Gc4FJjQJ=B>Zvg%l(xWb5j2pT=ox`#{0kdfr-IJYQHkZJDd>ikA**q{+yC%e{E9# z2>jU6D1TSn9e@7Ys{PuC6SM7qr+jP!FRG4l+Y3$mwWaEF&yPH}z1Z+AR9_Y8JzsO0 z)D_}etv=$E39o+$F5lnm`4OM_N56H}ej2}d=%nC5^s@fMIR3r<0eH=T===(7+Wvmh ze?MHxr^S@azg^USZhto1_BZ2yC%Bv+ZqJ`*X8Wt*JF0$ID!-)vq~JdM_dX=zq~GiB zh0FNg%B1&?erL7cn96rKU{Y`odO1J9^u%ZJqrW@LE&XVG`>{9n3kFB|gU0s9lYe`t z|LSP}yyy3SJ1N**d2K2m^!%jYF8s^*#hw{?X7_vt6Tebs(VD!=a0Nx^LiJ?XdnLw_rL*QTibrq1~GyBPa&KDqTd z;C8;tV;4*g4piO{<90p^?~emCzTEjS=#BqgGdZ{g|MLCW?DKvyj{au&*z%};B>iX9 ze^rcI{lWfC=%xOcO`eI5|3>)9x${@ZGoSuJYQHo(Uj=UGyO92Yn!eomDV{%hz~rDG zyl_BtehPVRXNkaX!2jHm==_tUet_C9P31#-Ob)I`FW)b$Ok&^S!~S*fU2^BsQ0B}( z@t11)8lv=(KX#T1{95!fzhimo_3MwD9F(iRCB{t;zXrX`|5%w$>gU7dd@<9ICZGS6 zntyc>Crx&~3;m0E=w*J$(v;L!YyJ&Q<(+3t4(6hNA;+=r{a+22^D*+xAKjcyf0Fb4 zjQORp%ESAe=(F;EwENZIqclFwX9&+9gLBsl<4<^t>O*dGUfcy_yixVx{d2|{%Nn0U z{PO<7KEE;k^!jGi=k7<-IiKwPRrtROz3e|VJ!4+4pADDw^L9TKV^WL%tp803hO7OG z7^iq&*SJGr-3LpO=YQHVIKZ!8|obmZ<%clefE6?4(hDslQf!X>*xhweo+J+HZ>Phl1PvTu02E8q82$lFG@yqv3M?irp{8n8WVs zflpI?OLTve=TnZJ5=@56_{zq7jH&D{BKU>GFY60!%$C$oRr}Sc{Na&Pf(y{g{Eg|c zZ}DOOe7M|SXYn&8H2=hZgr=`=#3?^^7ZdzE^zwd8(~rJnN^q3w4~lWq!_P&3(ZYi) z{oX%(CVYHbbU%=PK7T$oB{)^npSxcOZtqXhe}ek2i1fU(?S3Kn@v85e%D>xVN^lPT zpRbHK`S0~-!^f6J_Xm0Z=ucArvi>i7e-YfyI{*Fa$-!CZWqq0F7C-t^R4?lbvwGq; zJ^W1c^8L*E58glaXTbNbi|&`=H#>`+{5u`{h2;^)rrmV`pPsdEX-?{=YyMS4_eXht z)|e^58R+Hvyy>wY^ADH(gk)SnD5sfyB1 znI}HpKcxRMO@DcGzov28;`a`o8e9yQ??1GuN)yj(M$i^IPVXyKPDT$y+6nk+e^s% z=Ne6a?tWK%dOlZqcz>>?$?nfZe>C=G{k-*G_S$?}Og~@sbun)D!=gV5z09wfe#L~i z{z$l-FTgv|o~hjri?16re+H)VH;SeO*TZG~jNNZa`t5$yKbK7nj=;XmFJj-GiQUhN z{&4sSgChInx%YpQ+AoRh8^;#x%g<`?XCjS|A59{6{Qbu@zefKKtH}By8i>4UjLBBSCh)ok4G=}gV;Oc+A8T& zWbYrr|2Vj;UofAHne6%TzfY?D+UR}?&p-Wea_|_uurcC{+3czm;hAEp(2}Yrp@w25rsb7?h z&z`C0=nq4GS#hN2`IvqD9}1W8zulifnyh}2|8HPl&ZqI*?uUTCob_)u(Hoy$F(r6G zd2Mt*gy+TUObMP>p1VK7^KE~b92`P?vcA~zj65~_=nsa=`V;dHx4RPX|B~9z-H+ip z`7;u|tiLfmHoblX{M(8s{b=m22h#s)HvLv+Jtu#Mqn}+L>50kfUswIG=zb8-7n~yF zOZ2k8)$$*kc9#YIhr;FinEghc+4H+?)|6ne+8+|#AL04O8&3(|R^FP*$%{7Z%ldxH zlj;srBKzoD;nKe~|7h?}`-%UhYQH|ZAH(zUZBv3J${SKSc`*e0vcA;v44-BneG6Rn zFPeWeaMnNLf0^2^OXcKmGy0!vBaTh4Z-UGBTe}~THVe-9lJ`&NdDIWt|D3%a6mGHb zuKqjgKaCe&KQ;IkF6%pu(BIqfbz_~&ZBHoE`N^Wi5>4L(u* zz=+c)wz~r1jigV`FSkBhQvaFSuSn%9M@$VG(9bN1IQA_*?AOC(e%{hYpV0gh|CiV= z=pW;AviF<9>(I;i*!MZTz7{Uur>#%!^N;wx$;O|?&)s@zP=h|`AL&WI9;@vHz2%FL(bS-0Cv?$83ByCi0y6U5$S^pV2t!^ZF{d)K80< zGHvA#`#-DwnyCHoyu4s)P>KGS{*fM^c9$9Y3b?G#usla&ob>;J{lemiqp`cz;J+*X z=pfVUGs)g>3m=62K26d6kY4}L$f-d&T-G01nM(TqOYK)h9Q)pX8G32IEq}Zo`=xL> z|H;ZH{a?GQj{3V2`vrqy+{!2Y;}Y~g4UX>5rObQ%YV$-c_fOjWvYuCdJvHb6m;SeL zt@GLYW#L82>tfvQ3WN{DzkDCJn3DPd@IC`0?)`7IXlk&k+V30Vc2^+0KYAIz*z-&3 z`@v5M@Bd}|L7osFV(ro| z@C|BJ|ASM1_QU_4718~hq{;lF-xuCHcRwi_IOP-n+o=6P(fy#FS9h2eY^_|@ zuS%Vx&UjAyun+d@OCyd?vyXmnxXdru{ibN(*uwvIYQHL#Q~<FVD~P*!226;rjVHr4>_2)tydM{vUcVb$);IGTdB*oMzyA9%wV&I+54ZjM%!MBXFR0S}?Y1X^ zy-chRXDm51tGE5h=xu)^-%11JRnh)O&sj^-8!qb;*gt4{0&V}}G+9frFI?6?+WtlK zwto@64_w|~X`HnZyOMsnA1aNb-vut?YumqwecQi?zL(msPUWoS*crXdf8^8mfXn=e z?SHiNlUCAy5ccK#P}{!Psp-wFFNf09qXBV6V`Y=5KqXMBMFVznQn za{TXrUhcQdr{5la;3(bSO`A)eu$PDO!Sk=jzMQW^`M@XK_MgMc)PJvNe>9x5pl2<} zK)CcjY=1M)1kU&kK0x)QshqVO+Yz69|2I8(=JngcrGIYwqw!B!!9V&^wO^mgS!=Ql z`sy4fKCj;zeqLFWel$M)mDrc{Bep*tPOSK6twM$RADqfr3$YdU<$O-l6SLQE377jr zY=1l4_P3M&HEMrYw7(s0``cNIFj)DhR8D+bU|;t4+WvcqknzM55Em&%EC6a35l#J0bjI^*>l!)5$W%+wFK?GML)tJ<$k<@nzSy|hoJr_Or) zhVU^%qV%J&{q>}O1GwDpW9O^j)3@J~@h|)9?R*u=6nph4f3)w1DsNLxo(%0VIXYhj zJ`yhXJKFh&8G{~!3L{i5?~&R1dmoSmW~} zYQIkRZ(9G!IBS7U*7UV0r_YGq_NVGz1h}j(wf&{W=}W@`@E_+6)^3D!Te{iWznQu{TjoVH|j^fJGYPu~$P?T778wfrHiq<<#%rF?pB`%~HLa)$Eq zXn!es+h59Fk<;NtrKz0st%m;tf>e%vRk)mAWcyRGkAM2-_&-biSH`&QFJ&*xnd(2c z{}jD(?5~ndzqfB3eFylGvS@#)`KPSl{~WbnlgiN-p_l%nFHk4o z)D`&Us+aSXvgb2+PFwLe@oh37;*?3R{|nx)G&)}a|I}6dqo1wz2d8q{vOm#(Blk~a z&u75D*Z%>R{;TB=Hc3D6ll~htec|~WlsVD_r+&ic!)5$t=Xb#E{0`P)&4U-!r*hUB z{f>Y6zHWN<&v^ZBaG8Ix^E=@9r~cvpTI@^vV4VFwcK!$aSM;*}(s)vTz3R(i-1Nl% z3wp^vJO2aw_$M#0|8thx`5)vTXGM^Ir0*u|%leEo&imni=w*J!IQi%GKf%YgM(1Bp zKJ0u0)>7WB@ehu1>N?MdSnq&K`Ly#bXmjA?AN+QBQ9~*xuYSb8%x{{WHpT0IfXn_3 zJ0FAi?0gIKcl|%Y&O6SEV)@&<2d`pA1d*VCIbudp;mpFaEX(Fyau5&$3K%dTiaFQbDzeC@? zHsZwR^(*1LpYrEp;NPeJaqP?dwCC0quvc}i^0?mGBEChN1J8_z>5Y>=EATJ-kIg=9 znsM~Y;j;hI$^_i|e@yKUP37pnMKAqt)9d%E`L>Suzk$pBK6btZ+^7FZwcnJ=(SMCz z)+bF*o9Ojl!KMFPZ2qSI&5}P-zm3zU@4biV~0|KuD0&d0|y_x9oF-$%b%Hqx{I2mhvj4=&?> zyZ^%4FY<@yvs~>r>->X%K5%S(4KK+m$3J?;s&HccN_pRC{sM0E7w~uSFZ+{7v)2xT*3y1c-k^G(KiuvgWG(Mk z<>CF8NzPi~Ys9~7N~EVv_xe}i`TLvjkH+p##Qz^^U%n5O_>-Kq!dKAW8NR>Z#N_oa z!{zx}`q7Yn{+IOst@gwBGx_5=Yke=Fe>t=d*F16h7vXZh4))1^Glh^+jo_{{*(fIsdPwj{O1LJmABx`x=Cen}IIBSLTu`l}rEPi4(jy?wu!u}O` zipKkI=khPfSzl~HFZZWoAC670p9h!qZQh^6@9RJMoz#AKzhaV8RyKo|$oN_G*hkM@ z5!8QpSJlh|?nk7}L(l)Be+n-B zQ#9Vc@h)mVonz}s^z!|s>DeDe`b_^sKL7Af`iaTzmn8k&u`lyGv>9;r55b8AzNzxU z{gTFM3*e7qU-oyP=QsFPdldAK!Pgw2>4)PVPJFaAJ=K2UeoFGh^zcW~%lxC|A9~9_ z_*}Tm@9-PXpY-#7Ab$1&?V$E6qx%op-v%cZ__lD_pMy{IaJwIoy*^vzJjuZ{x?1Lz5Zdid_QUa**{49_#*!8u`lb}o?CqI zhtSLXiQQjndeRDi5H9^w@{c?r|Lp!m;_H>qpES<1dH}t&Z^lW#*WVA9@x9&8%KkFT zf9h|U#$ULEBn= zKQ6}YE-l*Xebm34AOB8xzb<;as|$X2-oL#w;9h@M-oJ77e|i7?)P7TRe=*$jwDtc+ zFY_1nPDttljel4wM}H@JDgUNt|CslG2VC|)Tlux}qjg=DQEWKD;=K+scH#w%}%apo$G4^{is%6X>fjZ>HEm5k;r&6hnQ&X*qOW`#>A$#e|BvbUU-Z@Lzi@w$=jd-m z|LA_v{Xon~;@|YQz?Y4P?)QO{K4K;QI<-G0mE-?r^xfrry!`z^%!zvaP4Lq2{w{5Q zBqr|C!9V%eh<(}rZTCB26OMoQjp$|kZ}&5iCVZK`S>tO?<-F@}KriEO(_`Q3uZPS2 zO8iqkNVDDlMfn)5@fGgx;`>UwzY9JBF6-ZRKN#HZ@1m{0F7My?!B@ofqf|dU(!))U z{cF)n`)>DtnVwkT*TAKJNc^-v#Lrzwuy4-~`?KM4e*wP{Gv&kX;^AAxgEjp!KkGPi@z^4*2f#DU%1Ix3=KA5p zGD&%m%8BJl{LA_{_R%xv@AX%}<@`mvKMIb2{uloTseQR$Ab&rV=lH)Iz4YIWvu5D+ zm%+~|+z$o!>7S|eM0llZ>f>!+fZ^69zh z^;=u?GXHM(PbKvi!@n)uU&Z+dKK{e8FZZ{Y9&Y~mR`nwEvOmD?r%LLN)b!P-a`YFX zm-%r>JHu)8eb=Opx=(-%4$F8x!l zx4Sy&i=9sVvi@p)D!vak`{+-DOZ#nl&+&hr+OLUmvycANgnhm*Hv8yLfy?@&fV4{hmHO?RQdtvF1-%Do1}3dbxkj^wepq%lJPLF82@ceC?U| z=XaUL7xw?)j2S$iglCs=R&6Q{uC`NXg6Dn!dvQs-6@7 z@z|I9sZ7s1&Fg2vW&gSLd6WLHQU7wk!&Tw^nE3SZABSG{2iP-B>aWxIhDP_NCix8X zGJkJ+;`8>8h0FeSJ9Cgb-Ix6Oc5dF3A-a|}^%lx^bt^t$;Wo-whi7V2Ic>!|n!Z6X z&a*}je^%qK%G#M}dZ&Dz5BX_I+2g90`GM0H>YCMOGY-}7kI}>L&g<<=F3-8^>vq+T z${Oc>HO`+x4?kMcpONv2ok`{OYpy+|>`wG@zDOF!)=}i2?0-q)=rNM`1rB^nA&el<)jgUOs*HO}^)prKgoQWsC92_?P~>@w(=Mee?&zW&O~~ zoagw@seL&gWaY;iljl#|BzMuFm-gNC*j#u{_`m26guj-}+Bfe${n&a&?Kh@!(s}@T z+5c8dKMCG-VATFl=B+Hz{=BUAtFv|{rsvIjPc3@^F8gadx3bP%W)sDJM&^&;l>emu zCG>JWhv%lp{siKa`Q7!N4(m@+KOTN*p?$@t{V(yqsqqiX+L^YVA9AhS#i8+!h;fUB zySDbjzSN&$`ZrWRDaK8Y{c-5)%CgIbhUriG9}Ac7TkQRUPy1iue_P`pRg{lGFYCjm z$EVkihRgm_-YHgpcz^LMu>ZB%57!@zv)9|&s!!o1BV&5jy5W@HkCcb&Gp1)R1f25u zq1q4Ex00OlIg0qCf9>P*`jK#%|LuM62O2*b@Bb6*mo}tw>e2}G@_sNqF?sz$)u(gx z!<~Oilh+S}PaB_I^V@LG2pXS%OEiC)Vw}D9*rI+fQvbts{{Z=e-Z*V(v)Iqb`48Af z<2m}p=w<#sjiYZOJ{kWR=b4#(^o?+tpZ;@97(W^x|I&PXXoxS#8_>)1E2jTS^+Wah zf;4?S`d=rjp7bT{*TK&l8QCXhUw;48^be15zBR%Yb!`<~_Foa7Ye3?t?tKf1zJu&foh~MYmFPi?Q7&rgesuX=j+Q*~L5B2=! z^}nH)^AFKrKgkE-U-l;z)BmA*xu30wz5@NW{Z!BMOWGd@e}7P9pFH#Br;YZ{<$SPw z{BXWC#1?I730&5f;8tczx)=EWH2>v%JI5{kyuZrvFXxB6|7f91di?;n%&J;8OnJln*pM|GTOE zuzzOU#sYkQ)m76M=VqU8xi*HE#_e1G4!#%uW&G{^dwmzxH^jKt?}=W{AGGulzt{K9 zrymXR%U!^?Uq569n>DY%Va@YMq@=Vw{Wa2ub& zcO$-Q%Ok$u(71kAxXk~V9&YjBe{=O;7+-ol&u16(GQVbNPU^Q*{fHR1_|fl-UdI2X zzeQs9{&#}Q`F(Km7mac1?>5+%{S}_uSP$L{{eK6=xYuu|`r$F|^*f@M{Z|%W(*F+d zb4Td-lK99o-~Q}^efjc2kX#B5_Z_;zAHBj;0FOxXAOozZ8SQu(l3 z4=>x6_~iUC(_`Q3w}H#|bvFJ)7)^u6=xH}3WDt@80(o_PP*-x4nC<2L@}Hy?i=&7WaK`4;GzzxengeLnc~`pw}o z{^mE*pM3vRsr?br``vTu-$3PZf2+KolX}{cK>3j9{pa&wIIlo!em<e8I{ERXe?GKz6X3G{#GVP<$_jjp@=#Cucz@aW z6+T++kB!DZNxmWRN%=ARyuZA@JzUDSjjxja$Ekn0-zh)-!oH2)c-L%zeyH5PoaagX zc-71IV<~##Z--va_q6eu*JFQuxU_FJK7(8NhVPGk8DANv&Un5adfDG^JgGlG^&=ym z)US(P*8eTdN&PzTuLnoZpP1}_dHz#0{evP-`L+CqPgeio_Y;&K^2GDCu`lQUS@}xp z4^{n`h$r=Hp_lnoj&^fkvgb1k+$bRAsw zXL!AF+OlgkemVc!+4uZRwI7b3@IUh7aQ+?p=#N$VwbA^j=Zrs(Qhj;E8Q;=BMi2iN z>67^%>oa>j|9gz;t7Dx0D|&bv^zweTKCRa?|4<5-^+ih`J{g}_{3mJr;ru4)^PG3( z3Chc(@r~!V+%~oBc;!JV*YUgfr~KQPE~)?DUBYGk-{M2lbI7L}AO25N`wd0;Kj zrY9z^{~Ipr|HiTD(|?-U567>hA8vZy#izohf9mz5h5Up6g?$hO{tvuxu4O?_YtP&H^w)n{|PSfTc6v^d{$&S7{GpL?{SWY``)93BZtFkz=YKC#`&Fr& zSiVOu4)?rJHl z8Cdxtf3H#dbw&Ad^m0Fd>B$qX{}w*KLfa=|PCox{;4;3pITPAc)6@TZ4F9seU5wwQ z`6K5K=hvsuTluChcALgOD8{Y)&7FK$+0Cl2h;eJ5dDng=@nxj{V(l}(dHt<<|DId> zjQyqPrT$p^O#j8}m%yd}WAy{>P|^5;>tUz~q{UiLp=llYSQ_u;a? z+P@Qh`Fcw24=c)_R36qp(nS69`uDIe^AEmGQ5N}M%Hq3l*&ph;*U!Vgd_QS*Dp|hY zLBF_vQT^L+sb7>?(odVl{5bx}i}%!ixISo{@h_ad%ByghKl6IeU(oc&*Y`SYAND_a zzdoz>%VT=RLfGeB`liH}k^KcWKH@j8e_r)+f2v#mGEQ6iI(nJEwebzV8OQ&taOocz zr+?_C4pob>zno)i0=ujTXH>)%2z--j0C&!U(6*(^`7@Ac2X zW&N;N{O_v$+M@iw==1BhmOh{U`EXf3vhqin^yT*l?92YQVtlFkm+uer>t9|^UHwdX zIDbX?_nf})0_EZSm~rN(h?TzfC(1|0>>H;qpCf)LpWeT5^eu2HKhJGjSktrg;r~;$ zKcpz1hhEN?H9a=H{%N>;|8M@WX`J*gR{I6L=k)KtfXn_}v!CQoVSkrVI=@K%B>9u@ zEBZ$M>Aze0@&BdTm-89&&j*e#@)!ODdKrIv?)8tuW&Cf?9}WMDp7w3I+V2x_+D|LX z@NYH!{iF89bNT|`C?6QL51!M0KPvt+azCTBPyA-~(a(WP`)~2_o7FY^KMa@eZ>;_C z@za0$UgIAcar$3Y|KQ&#A0Bbyv-%Hz5c_hzpS4d({r&LmgV_A2ofn0 z7rSWx|IEHC_92#4(`S}#c`N0!IpXv=JnsQ79i;Zr^UVRASkafl<$NsspEtF8g3l=X zL!WtULdj1#v zKdP@$zR?}>eXQei`pqc29li8##_Sd9`3*h)i@rqDKddOfjrgT~LVuB@KdHYJzG6R( zpZvpSA$>E;*46y0%I>{gulZNB>lSfreSO_=Wos#~R(|T@O=7%xWA?Ac z9b=ql@#y54WgXy|>QsK!lH!iFP+paW>-#D?f-E3yr zZ0yVWlBJK|uy6X#=w*JZ7{8MEWqsM~C-qmr?`(+DM@&BcZfbu}QGPjknLoq7#pLyu zX-4PehbytMcnk(eqV%M&R;-}&7}T9xa7Z$shR(&`J|J+-}&Dm*w2LHQ*3(9`?a_7 zaDQo%(^uLBF6UEt`~9x$7WMCTP#&(YnZ9z*9ueO@MSt4oJtKYr@k{=D`=+O_c|JV9 zKi2G;Gx`eN`XMZyGl} zecjX1%l=KDKJWiD_z7|D(>DyJTySvbDNeo}ulT%NDxKXu;c|LDAZ&#nF8`HWIt zc>ka`|L~)*FX#Uk(@%%z&!-~3r2nyMzdkDe-ad1oN1~VS2h2Xd`S_23%lD~skJx)Y z_IEll9RD12!SB-7o>?{?`?CI<}Y{gH%en@UXpDTjRZo~fI7@xH1DcP6bT#_4eR8?@7=3j&IV^*xpVZZOz=d>6< zUwQ9{Pwv{%_vH1u=DKEFQ(hnO1KYiot@-32&7aENK`=w(Yc9$U#J}W^`6qw8{s8#xHPLTL|HrHU zfe|nrWcC7M4?QhvKe z`p5S9vjt!9i1?HHK<^-k>++^q5SFUqe`ULNC1 zkLsDDeMUc9ia?>}%<@sCu z*yMlB|J7=LWGjxI_?i;wPwE@tvi~3Z#FWgR8#H}&8lUlFrYvu<_^yYS)WrC=(^f{j z0sHcPCgwDKJzUOjz`xn_&*vt!KRCwmZ|Sc?FZ+Xw>1*LKKS4~CnPmEI*YpjJai6~1 z;HCAgxIMp`6#HIZ4VUphzu}+!_vyP+?N_(r_WXvRm;DvR^i^<~f1u1`-|8QKQ~xT3 zXC57&rB6Zs2TuRviX)dQpReh!$gb1KK1B5wTpRLVCRRrL0p&xL^M1v@asIwvd9(7B<3j%0>c^=bK8W=F4cnG$ zEbsy7Wq!Mu{!!J}6xH`fFYkA3;{Vn!KkrNa;|u#``S^-Gzo*oGt>$0b2g3NCdGdrT z&yW0lQh9xhFYi|FD?On>gS@_r$+oWG&yPH!v?ZaMhng2!8Lu?Yi`A7e%+HXwd zzs%Yt*b}|X{}t2s&U0*9e3pLn?`it$vT*Z%+Xbg-`r&V@|1sId_fBuccRG9L;4S4N zTJhP^zKvP3Q?LjA<$O-`TzXZoGta()`W`SQpAqF;dhl1k-P z=ctRuKT-cZ zJE>*I;4|gbt@t^@8Gr7GeOdoU|Id+y`ephZ;Ie-a|7ge`{@46}q4r0%;^YPXw^x0G za%?8`+rg!MqE7qzPb|c@4Eyr^Me_Y&e5v}E{kMtt6M0qHyGO7s_GNw=ex7@OntmJj zF7Hp?Z+GU~T#SHVHOIzob%XB2FZ&D9 z{G zXV_M$`mXSkYqG2M?AeNwe;Iv0SEcd~e(M;NDj%52yMNpv=z{&W!?Rzm)xDK{^qt|d zf9d$zF0DBJSIhSgy0>&{#m@*j1skK6?~jV=SU!wX7O+qGXop_jFZ>4QH?MD(*L%Ln%d#eWBKFrzccn_e>*nOW7BwL?~Q|v z)PG$nr~Iu&{IY)lpXm9`>o->Y$Sl7lIpwb{`maYvdVcfz)!{P!=J}FlZ8Kc?>4|;$ zzTR`oU&{Zc%CTS2+w+HSqC9LL&Ayc%_`k?M8Q+`UmmjTP@XZSGX`7ROzVIHJ{>n%X zxAFsTgZ{*th*N%i{292EUwfv>{4Isc`q!*W&d+@)?LW_-^#Pl|-}w&mr&0M8M}DJo zDp$>avBmfWw+oj2#ppesedHZF|Gz}@rz+y~8F~#{CujU5xRf8$!e8t_^v)! z)%*0^_kVfBNB-`S!Y%#qzpyXs1Edf8N&TO2S${{fTEhS2%>Hu6 zg5+Pxh#0r@!~Z}p^Ap6BrvDu-^ABjqKmYuLohJrm*w56&_#>Ol)bc@I_EZ1O5r6fX zx?oY;Q*!(MwloLt3oosR_!ifOobm(z4gUiwBkuJ)%U|Krzs9D;Xa2DjsQtkaKTygq z9RKiN(98a4*P_Ue_1wQ=YA;Fvdr|0UwUz&s0z-4~I^i%Sj_67bu@yYnc zxYtt_zk`1|F^f%$-{Qkoz1kle@eL$>aQwqpqF>b%anf&ke64`X{2Bf~lQFI5q`yhi zH!|WrKKOFOw$ileSxE2_n$C6^xvYF{r{xz;0|&BFU}ehd;>plL>7&4dw%c{ zYCq10KXj-*Kls<^W&VLQ4{aaXH~q)cM+M7-XXN~N+Mgfx~7Ls&zE*TE|{vkF_p`{$zY1|%2dw&g-`J>EC(Y+-;ADe~ez{*F5+7kKnF-?j>~&eUsEh@_(k< zuZ^A$b#{Zlvbh7LEr1`Z>67zuqIr^J@m5wpEfB?e_}qqG|uyX7ro36q;c%O z1DE`zePB+KXX^XUw_{(<_n}Sle904!=6;p-;e3t1EaK!j^~d-b%IlRAKXsn=#rWwO ze?uy#{dt@CWPTF=Y5KR|vi^uo;xqpXC$y-qbJTyGa`dzbv_HnrR{u>!`J336@eTIT zw1tU-9;(*fzqOeD8r4_FxYs|AUcPU*`KNxV{-1-( z{d@L&c_#R>=l2ZpOZkIany8;Vf6Dr8>Oao$W&GxRd|r=z<2S)&e_b*DU*g-dLAm9L z*UyJ1;`9D*RsW4e?dQ{tL!vzQ`WCpa|AQh< zn=)zmG12_MeVYE77^kf{|LHq*e&Ii=Z;Cj5D*9i>?}p3%N%QYH{lBM)@A`^}zmm{D z1(*FP*d%`9!~Ykr-Jj!s?^XM?sT^NVqL=(LJ#DhrKauCeN1N-@PkeJVePc8}d}4FX z#;0liz#mo~&TkmU7xOFdhv227VtUUX$G@zv;eWk*?^FApKL(fe2e{ey{^zLwu>Wb? z>mNlg-w&+4?Rk-Xub&H-@jn`$ev9P^wIAlcaq`dj$=urKoi*q`~#-01n4 z{t>vmzl-^QO8wWwxVQf>dKrI^CbLiZHTw_2<^E~XPn+S(KhNhSwLe7PpS)9e=UjL0 zh{)En$_FdAcjDn|9u)EU%ER}+ao&X%%LC#+BlVM*r(8Nu-??7@jOzQxxYyrL{FAG) zq$y2*U!J4!@!S7CulB3-{cN0fsquS=@3aQxbANp?C|`bC*C`(A$sT;}IUKitZvrT=}6zdF(zxAeWI{wpI+ z{?NV~za9J1Kg6fEZ~Qj+ZewE4554*SQ0>e8JMQ^ipn*Jt@-`h9+4RAR>+_%5p|6;X2rYOH2y?oz6`(`%1{yO#FsQoAUpX|A0eZZde zB-RIHe)aT8+iL$5{=h|_wzN58QEoLEAGd**^o{XX4(geMv%mE>;*;+KYaib#(!+25 z_>0^r-}DH6Qr@8ZAI(3U{gHk5>lS>U!f#nS+&{YLjn2Wh%H{sXSHu0Q#5eAikneW( z#=$j`zKoPFe#1V$q3^tONe=yre0*tqtsOcCSD}~uH_mTf{~dZc|02nc-sMZRKb!oO z`RgP%|5w80eiY-xMEc>R|3{5)XpHl}@QXTi4K7c_$8TPLDZFJsl>gZD`TsNaW&O;a z&k>h)5BB_g^XU0pj9&H!@EiGO`t1fS$??Cx=F^|#<4^li`9-8p*58xd^cTV};n`DP-bVc!U*qjXvevj|@VD{ z?7KgN@f#mEZ;|Y;+B!HB``hjm+2=R@7yIZ>hs*fD{OfO0SIz&aa5*2>c(VQuRR2R# zIrX=<*6+%qylY<1^W~Xizv`;5TkQFEP(DcOCv^gD`-ds3>njiUZznl*Z5`#|{(H*2 z*Hf3*hL?nT<9}}$?yrWQBIz%c^Z#fcjGKS>$?)?kwSM8B-_Y~F_+L-$Hx=b4p_lO` zZ9W!P8wxE;77q(BvH#=vg#s@zR|1v*7e8# zu=0b(`|qOmt707cR=$o!FYEKg^vA$m{h-aV_ZQ`RCrw|C)<3h^?&!~C|8`jawoqQD z?T7J4j#=Dd?MF|z^gn5{jBm1Zaf`j*dT9I=F;4o7A5DC_*T%Tl9|b>mkoq@`_rJN? zZ;EmB7T? z&}OFT4~Ks{R{fjC``)@#Ur2Y2gZx`&#{Gzqblu6GI5q;)@QOeDy=X+@W zg!&}sU9h{xKO&|lefIvCOnfpwkN-6N!EhOW!%gG;A4q&MKA}!p|IOFmK;vu59wlv- zach5RYxc>?if3;BvnPYhI*}^11nKKel`~Y_azLhhksu@AI7Th4EUAe{hyH zHPgeN`EiM^wGB~yV~kJyxl8VlUqW7`ygbI)Uu1kF@yYz;f7U42_xcgahbX`3q%Spo z@4rUvk1ooGqnGg$Hk0~oWUX)*T)yA2^z)lff1}zT5pmWRiFN4MF#j5qkBV{f%J@+1 z%l`iN`-J(Q)HlPWe-0;4lKz|3eu1O+@ipbsM@&gQ>z|GA!|JnW?D^UAhmXa6W<-o1 zzv1sKJYQlNrT&|gTmDTPT;L<&a(^WDJ-1jI@GtX2@OS0=KFXih*Tbd#UNtrRehiL( z(~nX6vcDz4@kM-f=w*LRlAFF3F82>w`qB9GPtf#LDL2hJUxxLA{28zQhqmH8Uw94n zm)9t_JoEZ$xQstZGx=}+O~1d|AKr=+3-*Vgm+za3>8s#UzF8B%J{mv%KN4VUvzJSVS=Pg7pdGiRV>IltC)sM@d2vgVC_<26ryp8HzX#}85c zpctpF86Qmi^8Wd9R=U0tF7vwhkw(bp!Vha%>*YFo@ExjyuXv&^!?!SeFf>a->m$T{*%;x*nW9F zP0A0vFM7#e|4hApU$~r)ru8qc@%8U)?3eV4xa}XX`MERTnaV6{uJ|;*o~%E!|KN1x zRjs(K@9u+tIo}Aq{YI>&-y1IDXX5kR{GX-vD_U_|%j|<*&VNU5HnDH|z2MURYW;HQ zH(%#!`p3mMdgFVdm;N`uS)P-B#?MDD9%)EXNxSapT`WbW1%pbwo zKh65j3XLyZKZB#kmhorRf4Kh^Zu9HL?^k{Q$Ugfwn2R=khw8)qZ|IFToOXfwzghX< zNN?+p)!SX6{F(%}^~c&y*DIf0gm1Rj4a%>C%lf^g-_~D^?@s>Q7p^Z7pV>FQ8(h|} zyq>ve^MAGa57&p&^t+;$^B>UPvi0rJ`lji3fy?{_>woz4=_i&O)P7|vKDXzUYU_GU zU%38gde+*E?~MIv^+okN!Fz`5i>7C-jr_;|P3nJ8QGGA;{Rb;2O}0L5`W@kQ19W|l znEdnSe{ap_pT%r^e&dB|YkSdWq<(qMS|8;H{q3r+YsF2!9scF~3G~E-eXrjZe(|{I z`53qId$;EAz=&JG_*`49L0`QLlge}m>P@mv04 zAHEfOIX{Z>lcv8<_2KjP&&TvzqL=lfWd6YMwS~riu&&Se`hR(+leB)#(ew|EIPued zkpHwVk0>7=acsgV3-E`PhwD>Tf8bXCHWUAxZ%&=F@@aa~-y_c{vsS*$KfX52bDlXd zS^Gu!N|C*0pzn4^_LrId zN!1tp8#jGd(X+m2W!AXqyTGOY#+o!5TOTHV{&$|*5BHaOKA`={$~PuH=|6Zq>$j%Q zsXl1MP2UOsa=$BjV#2@IZv>b2lXrsUFV6=(`TvaCuZ=h{!!7+Ch;RF$y1r`ho1Xt| z50~*j<(D?WzrT3?uVcR?+eM3+FdH?YB;j;fVnZMZQe_vDk!;13t(98W*=y|3-{pi<)%l=@V z8PCM$AOHKI+CM1b^vTHoH@`npZGE8m6Yft#52vqW{9V8N^+VJ1;v}^Xd~#e{GDjKhXH<_|NZ8Ow%t^ z`~72j?4R{%X#Zd6Uy9rJ{#S#`_X)+~UyA+ADBWL)O`ksYQZ82i)vfr+r|hR`{X+SO zR{Y0DLf!`d^8JXV+3cG>1An?K#u*D!{_+2%+OI0gOVLaFh<$8g-|I`@Qa>#HJRklS z`#isIH2vk8zmy5jDJx&A|C*xwe|L&~`M!!W#WPLn|AFVrFZI*PpZQ;|_6y}J$^S+# z=kF3f@g@0RaH-!`=Y0R4|Lx58m6_o>KYrch5js9#ejNXdFIRJXvkRIc{_UcA{g&ZR z&7VqLpXmNmqjJ_4;H(Azro2YiPoAs{IqMtnePk{AXXQh6edngm4XS7T1-?+$vRA?7 zdz5X}&^dL$< zHc3CeNdF&dKU{w&f8gki|B7DjPhfq=xYz#zm;HgPUy%RUMDG)2Q=K;sYR$BZ*qYy2DR%l&BBH}3Uc!)5)${Qp%V^JDqvhyRV# zeyArtHm16dtei>Z8Uqdrr@;~W+W3?a7&qZAHJRjm)ieBb# zm{W)Ie0=<0!exEm+Fvv_|3dq_wb~Eor+B}^i52_sP2sXX%k;dz;JiQKo4_+;bpFfU z&&GMzEEfNnsdbT_-{96iSOo7;t@Fp&^#1X+g~m5H#wlyW2k)uz4Qj^W)}!x@hpf zGXMN{RR3Z9+iEz1}$Ie$|&A0E?=ji%ByiEDfENk}6 zpC|Xn?5+0WocFKorPxz>b4>5|ue>Me<9-}|!#@2dukWM!(J@Z{!S;&0gI?Aj_zgY# z^Su5oxQxH~4bJ{N-fy=5t)JSjjd9+ew%4Jr^0=P&x9tUa1N$;R&TrVK|KRnn!KHt} zZ}8;)jzH~~rE>OXyn_D8AWO{X`OU}w5?uC|+4Ez4ljqlE+!B4hL$F^mtQE%=&$m)} z;rXMl{O4lz1s|k*a7=&Sq}dU#P#%^)Y@+Y*%JmU{QR1Wi`S`s4dE%G(InT}iqBr^k z&%$MYwdbS{UmyIoM^Kd#-){8<{tW)*`?X^F|H8#TG4cHmX9oKG8;*Use~OqqU$!0l zJNg9m>VH7QiHZL;UI&-+Q%r9>_j;(GkN+ztwBn}E!QUAkaf=T)i`#Mjg4W&Cgaw&!-$_)Py4T;^Xa z{})Q05{s4J(b&%nY{h>l4fAi5`mbxnE&raxzIlh%>HBWbw?NF6Eywt^m+e}CgP_|dOjB}`?Dz1_I{xKxAQws#(qgw z&lfW8&xf0(JUsu+&X2P5mpGs3a7};u`AqQ1$^$*02)&)(#NV6`b}&4{`BUNfP@c0_ zY7X(s`<3&<()5qOW&X(YoJqz1W+#Q`+a0F%t5P|8siq|Sdp-Ui68jlhUoiXpX7+t1L);`2GjGK*WU-1`x%X6lfNzgd*Joq`Dgsb`At6mk5T{F56`bk^6BuB zxZd0UkJu0MFVu6Unzw(n+Ao}6mE?D$m-Pel@6Vs&`QHVfGdAKrf8jILe&KwsBtK3$ z`1kr-;j+F?{k1aT>+jiWzg*APG|u_PcE08rdHn}iGS`(e0%9*O1?`-F`TmjfdF?l^zfAR`qw|3|lehc9 zXQ+M7_q_)Fh-%gIPT)7MzZx#{8{|Ln5tEPqO3k0}d}lakD#M9|zRFeT^XD(~8~Vm; z&sP8Z?`*j2zh_S#eLCikIG@hOFArj0#&@3ceuFcAe4C~(u7}rLvN*?F!S$-Iis`L? z3cpVEwW*x@L9Qe|IbYNJ_xdaH`NMCdpLf3bM}MpOug`kU-^2&MN&OFL#e1z2_TMkZ zeq%)|Zu(o$%l_k}ee~GB485F>k>sYo6fWa`&wc;lV&Uu$U`);PVa|G!%dd*^{~nEh zWQ@1#@j{E8<#3nsrWhYE{i7D!i}P=de{3txUMa@!7ZIP#k9z-Je-$j?>xU@{DYc5%wL>`e(0ze_xcA^ z-yGxU$v^bxqL=S8_znL$C*|`09Js8%Fh2&TOjCa-i;Vvt$G(hTlH6>~{XaN)IY+si zzmu?!p0aQ@{^k1s=H%?Rc{QJ8`5XONa9N+%XO{o%ygy!4PFfzz+fU=<^_l3U|KRht z^F9wp`ZM5ieu2-QtEOEOrT=NQFYhmxf5tgW<|*YBtvK=1zMPJI`F@>eX1^WL=0vrR z{xrC}ACIq{sr8@V_WG!QijR8UmJZt{HCTaoPRdXv$DN_FR4D9 zKeIi1Cm!)|#7~s?IsZWGZ+?HE*T1Ir>x=SNmCN{)_9L&SteLM_67-K z@@0EMefj%T{SS=s&zjb3v2W!UDi7CBO#k3{6)pBH{{rRV{IBs-2AtetXAK;If0-Y` zzy0R*hr#81Ke*ZS{-?sF{|>j9eEgrQ|FC=;zxad8=GnLShoYC~gWi7g`pIzFA48eo z`I4u;{{Ed$Uy|GTIX}Wn_KE3fi$2Sr-}SBP>!S7#`<{QL`sNs?t+Vs9mZ@I8@5{HJ z=;4$P+RB3^{?e<;l+$JzH~m3ysbAK9vZu!T|3>XI{tnw;+jTlZBf2b`3Q~Q>+LL*N!XX?=j*Juzdu~g$1KKwz3n5Kg>URE8nApGym<>tEuF6X!UHqZ0n!ZX5Y^US7?zpeVO)#sbW*HAvV6}PjV zhT&hv|K6v!KNK$gU*G0>-XuID^P9A}X4B{Y`s%+f#(CD(maeC~TFZ~=JzrOOZ7XhP zVKoXbmHSnFOkUpr|JP9UZ_nKGI^h|aKcLMwn?C*x)qi`VLO-$`Cyjb8R2_%wMw1fKtXjXtCAe-d9a_GSFa`wedIFZ!qO zebj&W{xi<|?;_dD1>ZvTb&;MnAKsGRAKg=VK~MVvxBbzZDi7c9*r$Df+y3ZH)PLCj zFiu_=uM*Dp1r~o&KNv307jFBj(c@qDSF8Q7|7)DGY`hY^j1P+G2f^k02e|FeMo;=l z>*i`dOuupJlJN@kvOlPpejr@N|8Vvf+xwsVC$D!<`{DOp#<3r?5BDE$3zzoK^t4~_ z8TtL&+o(Q#ezw1xw#axn{$>AQG5r9z^v~h!UnV~E_{Z1wYCqrq%5&be#`~j}^{-<3 zGI%gh-@oKpGX1-&{RZX445zInfAGJHa=AZGe5Uc8mCOA?j{Eon{LB6e-tTGpEL_en zD8_fgerec0@On#sKlCzwFQ)Gcm+?C>k$!vsd^sT8f4>*@WqqL--&1*gjQi)mFZN~q zpFB&mPyH`_cyv*|H}*?qelVdYt&~qV=UXSa#oq@m>x0BZ{XRf6v|rZ#&_1(%YaE;K z8rjQE`$PF*dxKTKy;^aLe@FOP2k7(T`=(_1qkmIU5a9;!AS&m$4U&{s;S8;I{wH>lxpa$o*4k96j&n z(rsmaT;@;H^qawD{D@8BN8|HvBK9SJ(>VLf=>L?quZcKm^7RL;ru^(>V(&C48O2S=jW(@Xng&fDV+29h?#dfoOe0-M_+{bJ^I&4 zjxRX#bL{_5a?%QCey*gXe~jDngLe|n{&`~d{!P#PGVk{!H~$@kXXN~4IDMvM{Kw&6 zzK`1rd8X9i_& znYBx#zo_>D<$pCF9gLOlXEuJ!F4=H(g()d~qi`G2x%Pz&9M< zGxt|>M_qrS|B~cQ{j$o>)btOF@i`qk=8UtxA`6JE`0%`*@iE`$dHY_!4qWc<;5Q$i z**{zT%lXQV-*ROe{a@l=OL#`kAG6;qeWqu9jP-{kxA@k?zkHvS7`f~I2K8UviZA}R+;S+elB|BAH5oK=4Tn7p#Ssb0yq6{aC!cm?+7PNKL792^o8eJ8sDn9 zWA51#vhpoi=iooe!}BYXe0AB2celn@8?%od|8VB7*|K>UQWAXirUd9KU?@4?~{VKTZPcS_;efl5J^cC_4Zux(n>;+?eCL{Bsrsp@W ze@N3Go~cu2&p{C^LZ@jqpT=WF%L_-mT}<{0nMwvF1teoo_W zY{e<-JnP4m*JdfxR)0F}5Vr4>#mCgX++SCOv;I>0)ktk0()6sq`1r9&eEcu|pH}~s zQGA|LmY-7pbw&9K?91~dKC3@wAN_K8|3Q(S-{4kOThxAeQO^2W>DPN^dFEEXyq@(f z=2zin^ZCw&{C`o?SJ#SD)+tNRDX&Q7l+|bR=}+265C0nfay~G1!uvPQ`XA?Sm>v!B zng18mej)xOXMK?Izu8anrEuxrn|;#c)Bm!juVCM})rBRZ&&c@7^wbZpe^ukFEXo(- zU(S!C&Y4ZG{{k-OzioJ3o7DRAk;b>HzW;pvviHl|$`4X*<@=Z^%k^DKS$zv$x?d}9 z?-%xGlwMls-%x+Op7rI@i>tHLIV-=sKkfbUzWT37<&@?3;BtSM*JB?&{4?xJ`Jl`u z?Za80FTK1zOP*Qz#=pHEKGgJ8wc_@EVf~){P3XygYEe=DDye`)R4B28aI zw)coQxAyx}<+Z7tvba#=t8T^Z{qhO^rT>q8$~uUCeHp)b z&RL=s-$&@B{9F2ydiLMYzqRyZ)2DxNKK-UQPW;pb_HSek?;Gj)&FjC^^jEav_I`N} z|MGspzrA0){$03y-$(y|XKL>k8^3VA3gb)9scXhLU!bHk8{?c$KX2z9_5HR=(-)49 z%szc(IL~5*@)NcHLz%@td`|O@+80``>8mWt-ywe4e?tF_I-AtL4PQ7RijO+W|C;|F z)c?p-PFen5{fGT4;`e$u`=^*6Ab+gRn|(O@r%In69NFhL-u34HC$&GS72m&qm_O`K zqI_BYC-twxW&Z#+t_Vl^z%Nf6()ras27hVtp_59iOw z1qI4&Ovd^i|QrpTYii&5?g%GW&48kLCPA^gI)Oqc33o zIsc|a?q5st>vj$Ehy9nV@4~55NqtV!7mgpufAW<4M^F9esObyu51>rL>FdBLE1a)X zk_pELNlsbi{3GI{e0V(A&(KWXym=lm+}cY#}*VD>4?Pl%rHXHCy2xaB|li|Id8W~jfEPd|Ua`KZ)C-d|~)^YLT@qn?j#oc9}P;rVht8uN3^ zY1sRP{*jgC?s&|F$ya{d2x1?Ry%ht=bJP^Ov4u-`dZ6 zu`la0^xu>A(chEj^dHGHe)Il0AC>j@B&Yt7KYV{d{||2Mr`O*Nm;D!(|5m=O{&M~< z=ZDijw)T(bZ|xK3n;<=6ak{x9nX zo>Lc$--%xKkC1+=Q$GGX;0NsyrJp)uobt{2#xemK<*(<|1-^gEF$_I$a&fb&s!r&6Xpr>t;4 z0Q1{voU+`UPk%9fE&gTxkv>DxKKg6m)57^Dt5X&q{)emm+Q>f|&#y)=;|sH&srz~G7dhU0FlYji?_1up^`&f)$fq$uA^hwh6e7{Ngv-LY- z^6Ph}+(mqi(fL|%&hKFTZ&1I+;92}j|HIDT@|f>OZ`Hh%?`e|F*cR^c8ys2j~6!^X1SRzZCznzXQ&hbV>asaK6uS z=g;xK=KoN&KdC6c7(M&vL{EIg|BbCU>nHHj zH2$h=o8!avL({|gR{B)sLsEJDKl=oy5ufZIEvkqAyWk%UcfFYZvoyX+y?=%?-|*@A znaXR6@>8(C!!YHXS(ntG3?C)?^Cf@qiGS|5G5_ai`sDnv6#mnQA$q<7=NB5szSp0K zed&K0C;yoLBmdD~sP+fN^2a!_T%f!;l~)U&h5bWoQaSn)^65AKXm}Rp|6;Y@6vdb1 z$D^0=z3H*(^)un$h4-sk`)}_T%Fi6^%lCh@Pdq=`FV5Oxt`>fc`VZS5Yu}7>7T0XJ z>@T$T4LxUpp@(0o_6wZ$4^CSJKaTih{OH>+)APSG;4(kt?R)=MtN+0fM*}ze$D&^u zuFqKe= zFLyy1zY#9&C;rp;(ZnbBOTzoT!uwbJJN;2`Ip3c;XYt{m|D~+oqV_9V@kieb`E>L$ zKZD-kAN5}m%ntdo{lB{IDda zu1-ZS{mWwdDRB8diI_+~8eje%!oJME7$;`FwZ|9b^Fd8tU5s;NWPe~K@ zDHC3Q2weIHmgc1YM>KuSsr)->A19+fSH7QgdG6ys7=F>1=>19iVC@gSp4Rva?_bZ! z>nAk*;r)fl_6z>F^5L=egT6THd$a`y;a|Q_u=hV2^UvQ0!aoS_r%ki}l-e(@KLGvC zqtrirV&ca?{V)1zli=BbI)3);51jPRSNlU+aoT@)4xZ`Xid*{j$NqH#b$-y7KhsZy z=hy#29=6Z;uN3>wsQpT{Z}HPUTKp5x%lr%Tk4gLJ$HS$3lfR6A{PSb{(nZHN!&3RR zU-b(XtN%f%oaghta@n6LeNMB_S&i0ze+e$*Gu|J@nX9n)_ai>p-(5`q26~x)sr?bD9REYm%lvyWeHC2xS3I!S2AZa1`d4ZChsO9Zd#;}wc0>2vi~IEp zep3GvQ#tuF82d86#~!`@;j) zi=MA9e;e?Ak?()tJTv^?GkuMmmCv>G{WGc+uj#O_|l`+jCdLLW&DQE zH2vzTm-_>Ro8H?G(98Kl*z|h-_gN_)S@_+}*{^PF8;jrgn%I}|Q<7W#?uTB^=YpGk z%7^Lu!n5U3{`1U;)ymI$8vno;C;yGFtNz3CN1md$=X3rC{epe5FZ%-)d{8J8UcV3g z&+z;n(|iBz^65k4IpynYvA;L^zTy3sR_0E4ckL*?KJf4RWuLuzjadD${OP3WYl`vO z^;XxsqW*VK{}nO*{9&u>v&c#Nv={bg42p5D-$?aCvd8RM@DHc1qTdt!yaB4W`ip&w zuQy!gZ@ixR&%0*1w7;FPFX#WJar&owpqKG~8b`l7{EteVKfxv%#xM8&-bLr%>otE0 zoOcq>!uU?=zbeujA6?chcl-wRK@Zgrj&XZetUs$R=$@iC&ivDE#3$$bF~386ymO4B z-xa=ES$0~7jUrBb=6?tEKOn}fttGxK^YMATy=%_6vM$&nA72{B|1S9d@1V#&?<}w1 z87|}h6XtZ(XAbxNw^jcYF>ddgkssFu+o=CRshs$B!oIBkn|;cx*Y|?U{?LJsb%@H8 z_rHBUeQ6y3JEE8K9gXwO^7ld#U{~shs$?LNDtx zrYBD=f6?!azO*>s61|N7w>xZotusme7I2xLH~z|L{bTt*P~#hs%6nea5R@w~FUrf5 zSGD3TCv?p{IjJEC{tr(2HrMzENBS4HD%bc-zZsnKv42}H$8W}Izld)D_Dcp9G~dyWApVXgQEPwes{R^-_TPgKOR~gapngGYx)L7_C0^<^@gBQ;|ulJPx4K% zFa6&SrmU;!OY%+N(mufPzu?-snEx8}KQxtZ{(D1E4VUj@uY5ghQ%z4^!n{)xR) zJFRLHy}u4n|Ka!fo?H7dPW2O`{w00F;g77Yc}e*j4wwB~^f_p=jMEqSPU`0{wLd(S zuPyDv#>6k@XPcfr4fajn2`>9%sngcy*k^j-^KRll$$?-o*d3e5z=k(v;8)09* z|1$fGY0W;oBV67e#%Ujnlm4-4e^^o80lmy0Set}?*S>2;@oxy1?_;e0%=?SyLtc_U z6R}?+^QZa#GkxNB=C2m<3GhtV|F%A@@nhxv(H{FUeltDK$2j&kfXnG0W$_6#UOp`#~zle;f3&zHWNzx7TOjvcHfqkxxH=6W_^d zzdn_-{!)rw)_+Y;`We5Nz637gGxi^`{)2}7M?7oJ54aQivOm!{V-EWIv_EZ!9~oQ> zm-A~p=YBlwb5_U&%4L6R-adM}KM#Jc#$S`|c*%C^-*e7~J}YmZ`vZxOH7(P_xgU}7 z8+z6s&<`0^xS#JFwO^Uew;vV!gI>murpLb5{|%S*U*gC9*P09;CzjtupON_+)AJi?A^*{He`Y5CeEAK% ze|}f0{r;-=-1L_zuT}p^j;~*cU*?za52sApSP=hLsD4nS_k7}z@p`|gCK*QaS#=M=#~e^o{Su_20o|{eRy>Hq$i0eg561>6h<|9q;sLXMI2a)qF&7tNNGk zvr{XFa#M0P^~N zxa^-Z=Tg{nebWZ1$PcFpi%4qgj8lG6nbkA5;6o zQ#tx2dHbek&cW-sADjCDtbFiH|7vU>J^z<9ePQ|God6=-hg|NrrxbHIqAf&l}1-+F3J z&DNZqeZTGRJo~SzuIcGCJw52<{3X+Wx<09Y3oi4U&1<&T`UR)_l$G+oqxLIOIpu#7 zy<9)jbA7!24S02Zu=|tI^h&k=YxDjn) z{+sej<=p>po2wDaD&^G)Zfk|yOP|7Jd|`bedRwdHUj76w-+xczv_-E|K6yT9oHb9c ze+@3*N3u2p?)`tR_DfSa{$E8e^GnmSrs4Ikz-4}GZ4TU*|2r*zeuA^sXLa=(Eq_IV z+gc>|`qvs?c`7G=FXLa{uQC6uiF*A@aGBp*n*#U#SF8QpRF3}_(aZeb^sHHW{R?o} zA48j@_pfkY{+~1DhwJ?-oV7yAPhI~>d8O(#C&F1Pw0rSKjjtw^bFV+|{G(w_)a##v z%lZ{<0{-FN|2nl_naa7>pG7a{bC{kvyVpMhm;Qq`f%3yCKfb8{zpDM>R8IMyMlbs- zP0yU)>z{&4{o|hI{)BV?;fwq8cgTeI~{*U>o;)Lj20BOirbGC@Rp5w%6HLzjph5F<}W(`8@=bB zN%j&RR+sDTB8LqGK59Io-#J)Tq zHT%S89Q~tknV;L5j`xp#6ZPN7SyQ^XXKT$5d}H-r6ze_jA@%bS?92C2%s%mX{ljp1 zzHVz;-aq=bYCoOtAotfp=-0^iD}!iF3;%Zg(Ek@M^J~`JX#aixfqrZ3%lW6QDSA$> zX}`8oULLS!>^W=Ew7*+wd?l&8R@(mu@h|f~)3YYsS^6*2KLD5K|M=%O_`19ty+82Z zLG2f%a{S+)DWB~FM>OHo6|VnY>c3IX{B*<9 zf2=gVhw?Jj+nVV=<2J;6SLLP3ZB2gm>c3;Yi~6ri<*&;8>TVZ5dg{N|-vyWb`#e+d z{`p_@yQ}@uRL=bHPV}-r!1O$GAb!)|0hjS5&lJd?l^ zWvQI`_wDMxB<8Hyl3&x`2AAji__sCTYtH<0rTOop_RCW_{%=Ju{hR5TUwi#6aQQwi zYtFuY@Hg@8t@h>o=@iad+EVoLevEPQ!}_l2Z-&eMQ>(Ms{B`Tqx;{evE62XPUu~Q= zVQ9}^Vtx=@o}XuP?sfG2R9_c!`h?SG|FzP1UyZ*ul~0rL|4qav-;Xi-+<#twBV3*j z&?Z=$M|{{{CG*Pz)&9s-{(#JXZ$SURxR}%Cc>VQo*?(+(DtzHTziRo3uRzP!$Z7NT z`Eh;B1LY;Lo<8m76@RXztwKLY9an&@(+yOJo+^S5iUFXKD2PyAkg4V?LPrqA~N(dVmunZKv-K<1xUqnGcK z7{|Zm5B(DOSNQ>bF4xrOAAJe-Th<4(*`AZ%I+_0$tN-#;PW`wF`||wQ^z;c_U(+wn zaQyQdeDWK=Y5wqEruGMGeAyiTi_pvdSJRUpufGyLr(ZyyYWF1fA9b1fS&w}=Uk7e& z-rm2iiFu9kvC6H@-|nQfF|W?Vhd!IPlJ%v9_?P_~#<{<}{tCFvZx~Z}|JXubr}oqN z@3MZo0KK%&rl-#$e$&r~A6X*%kN%F^B+8F3^kcMqRm!c+?f+;aAE~@ZxwW~)Gry1Z zBQ(CDshsue%keMu7ysz#lf3>ixIF)+&+-2GU-YBZen~1nT-N6=&Db|ReG>7TejZ%D zUq_qouRp%fk5&8isXXX=e0T|ZnSYp`K85_5elA?Tf6e*gJhS4N3g?G2SLFQg7J9yT zMS}CJ!+7cK)W5ozZ+z={VgEi=F@Ib0KRD*MZMY=7{g9JlejHrZH_Si0|2b2&uJe71 zqm@VJn-iaL{)Qi^_KRcvq8XQln+%(&Wr0tE=Y*-8?_12F{IWi3{+G77ETO*`F3+!j zc`UN&{iC0(_V-EUd>`W?^bPXZ0d4R_1^L3}gN%lrGrv-PK`et3eL9{=Z}m*)@Yv59@} z{~WlyUt!mT{QCTzrRATH@TvMq4EA_ zs{OJA|6u9Kdi^NNIa>b01YiE$$y!!&br$vq437EeuNH=0KST9J32u7qPeU)`bIWPA z{!F->uV#Gxgew#A&(ioS68ypAPj0A@_W$u+7l#+9|M~>C_~2(?U*`XI&9LwFr^DrZ zL*s9~ko12c_T~AY=cecWI1Rmgf3EMPGc=}b{ZzQjzpegtdTLSP{`-&GkM2L}H!;s? zHzRHzmuUH;`8$=T5Q84blUz9PRTqL=!K{WSems*mC~ zZu*|}OTrV-pBY_WZ1S7;e>{BPP_@tX@AJWu#Pz>k?MLmu=Zt0PpRd*YMEx)J(VP9! zQ?Cw>!~TJd`ur2FQTwL{usF2KX7c~f4~+|{Y8I= z+K=*Qd~LUgFKu&8cxwv(Yww6ZwBqXUX1F{*HT#`AUme~tU`E43GS-G4jel96F^+$) zzeV*)ZhG=F8NEFJK#xuAd;L-HO#cI~KJx0&$A7!pkH#OyO;7obL@)1eVV^Nmwtf;^ z#=jQ-uB)z2^ELB7X8&sv z{_j=$QU9xTCc}wk${W{&6VXfm*PMQZ>PN(!`bYghPyLvHUe*`T^BexHeAqt>F7tcZ z4CkEs2^1UEfx#W?iRK3bcStzW6}m!@*`W6{g` zpQb-=)2kBx4}tUj+f1JV_xXET?UyHbr=O$za<4q0@fXGXqr9uavv!yg-%De#FVAnh zeXoB?_455f=il_)%cIfD{b~0s_Pu@-{L>)je_x)A|5>$Pm*A$SevCvf^EUJIsza_xh_E-?)H#K8+8>{^$X5`O(|;M_&(@=Y#0+|H_D@ z|2NcrWxzcPr~Jf+FXF31FY8ZfdhYeNR9_tH&Azn-wdke&viRXvKJ+zkIe&yX6LTs* z|0I`RsQo0rx3Eg*Ld?%Tg3J1)>E}(I6IQL76!Q;NU*3e{3;hRhIiEFK59j+`)x;;~ zlNo1zfPK?f!DauFar~DKogB~ADui>sH@{i=EPm{Nrt!)7SQ%cNb7A;M=aKrq@J}_q zbdIlb{LA`)>G}Sc*O$R%erBBfnt$}GurKdV8^{0J(lHu8yoC6#3<{4jz`1^2UjW~DA1%MdZ~oDLul9o`od5m$$9Z8sdYS)|KlAVPd2s1p z@o5?>|L<>H5w2JJr3v1@Po1vC^`5aH{6%?rg5STePM@`G-F88^7B2H=Z~yr&_4=%W z_;c|u``fL|r+2wD^!lGwKQzJ7Gnc^r5cHD2{o7Aeo7wuoa5-NBj%LF}vOePC|4r@J zCOH0?OHjTLz4R}i-!VbUl&ufoGCzi+>Hp28q0ir6nxELKYX^}FpVi& zKL9S{Q(F@__vFhH_s?FsK35!buIWvshw50A`>Q=XrzpYmHjLNt4`Z3ODV(xW7Ut3$ zD=$sxE!WKTTft@gZt>yYt~K}PLBzi@FXq%4uWzIJ@&q?M_76n=&B(yk9J2NO;nIH_ zr_T8JH&y!;32y!=UqAHneBag-vh{u8vcJJNb;9Rwi%fnz=UQ@oSu5BaF7F?CZt=kn zz`m>>*qQ_Oy?%eV%x{fTXT1NdGUfB!^jzQl(98VI#|ygEPLFIA>v^{&d&! zjfnN|&7OR+yZW=#?P+Whf4R$#2zQF&p4Tl|c5_rbsHPp~m@w!V}4FHPm> z_eL+z|4m=e_R56+f5Bz`Xk&7?kAKIEea}1ZF<$Q<#-iJ6`~|Uo)7&e=7bcF^@eh12 z?92K3&FObgeN}>+p8WJdFY9MECdR(^-y1IDL*w_&O~&61`+R>jGbV?dp6k;K{d771 zJu{}y*7t-<{eW}*gBFVt*MB#Szbs(P2fue_#2E|HzU&H@^X=0(W5qqOFZ+LtFIkw> z_khd&hktD1zjjnqzf`aGOO-Qbgpar|;*4c`Wa48?o5uIRzRb_9{OIlaqu(7a-`_%y z|L;qa{(GtYl7KNOobnSNzKCx(^z!^NP0v`ikLrtJz1c?(-xa;=zqR<`RzCPHa2fw{ zPm_P&{*%i=nx7)&v^nrCUyGj4aIFte|3eeJ{DW#O3-`jl%4L5|rp-c6|H)bt_u|g@ zm-T7xS)NJ4y?%f7KRlJA?~Y#jXS?SwTbc}hGoEw(xRDl2S>VH^* zKeVow&IR~B`UutM1q;s2i}l9&R`pQTk8i^91+P_od9cUc2PO1yz7<}hydssKd(g?@ z)|5}q&o({pJmTN<9pG~PEIu@KT@O%>|9Z7wl*(V7esE(f-8lKP zcm2>0SNkL4_&g_;EkvI)y)4%A8)adxg?=-*tPk1s(U>*_asJ0(U(R>P=9Hi7Gg|$Z zrE=!d?TBCI|E4D=?Zv+7+rs7jd*k@0ti*?Y6XKKoH*kK-u0N-!|EeaO{S_0B87Kj4%tonf7;KPYQIqre}3s6+Lv^Fd{#J3^HUt#hd=U34;{;N>NhJq zUG-%NZsqTN>jmLo_@6r}`0!tSwN7U1&qOclgJ~T7pXlX$N8_&zJ}2S-54gNv(0ZE# zG$y!@{~V3KB*6zsU&^Y?_aGC#oT(`g4 zgnR!p)P6cg{~LOlpP2sa2b20=;SYtu?|<*7*AMQm-z+U(S#WjxeU+au=UnCV)m+~T z)c=T7Uh%-}@E7b$`)T@b7bW#S!{z$~_{S#xM^2CG5Bkg0eyMWCAMm$7jrf|H+2I_x zoPUJg_=~&k5sg1L%nC0~(Hp1!t;4@O-!c7|@6HL0Zz}q=8NTC%k$t%Le~H>38NhW< zmhd;n?;iXA3B6oD)A#OsZbE;l#$Oui;ijj2KcbiO2S$9jua+-c{{y`DFy-WLvq|SB z@;4v*(!Ncfw6Eru>qmac75QC*Ue-6TpRIrY;@RO9S$eaN9{#=4^Bdgq1OE;#^Gh3l z(P!TD%RZVP#$Q*d{rUv27+u**)*RRpO>51=4^s+u+Yu4EJ`Y+(}e8cz)^OEu3j(yqR!&hNn#y_?uj(xBH9KL;i%nQFv`oB}{mn699xxSyFm+_&kiD&CSg>PM{oa@u_ z-Z`PKKaXNx>aXeHr{6wU>lbs?|G;H^*7Jq`42kFR_o}`uur+P;##xL01pl%=-JE`f z>ScdcW=$Wx)gSa9qnGsqvp=AEZfu{mgpc6z{Lj|x;XeKcHU41<-fH9!ZA(}yctHJE zrgH3mh<(Yg*+2E+xuMs80GIv!wx$91{vXQt_k8~?hiLnT|MxTT8$V!8QvZnROJn*qTMQ{$04NFTlC}`|ov0;`%?X_VWYgtng!6&QnfXOZ)ej=BF@~GuM3w z`!fDA{T=O-`nTaSzr{Z`@n3yJ)PA9VUhP-M@x!~_8*%3P&%ovTpxX}WhzJi40`DwP0yUf`+piP<7e7z+7GympQt}SXX3Lq9nM&eu_*WAYPfvg+jE-> z(3XC!`hf{mP?7e0X4e2Hcnb2kguFXr9|xpSFCB`Y%c4r`Ks;HKyLK8jw>-?cV5TmJ}L+BZ1$hdG6>KkKpI zG7MdbfL^|T zNS~CZ|DVPu&yQ0$`uouzDbJ@fobq}9_rZrp`%}q3>v#VBpCaD>$*BlzO$^>=)6ez& zAm-Bhz+03iIPXGJKKQoEs}tPL5@Ic5OXafun^_aYzMbX8TF)lRWqr|cJIjoJ?nKehwL^J#7mu0xEslk2zx7PB>`X7m8xt(Q&{kyS$WNBb)Vw_23_R-%3m-Qvnd(QRmsP-!p-0Y*jGs`|_Qki}9 zcfe(Rf;BtpFWlF^9kDOxXJm8kb?WE#>c3t&&o9y2SyQZab%D$JovjIaj{n>7FXzu0 z=gcavzYTtIalo1f@o{Dm@tOY})c%lE&RWT>=wvAK9$Fm+FgRJ@!pcey>-3alo1y{;}`<{~Ip*o8iRInN>diy|CZ1C}2&?b8NBJ zbsc({|2L=KTlE#Op8AJ<^wf`Q(GMw%vv>ZzfApc+FG%G*rT#BO-)V5n z@o({?zXC4bU*Mg7>WnWx`h2x7=L7z@z6q!P=P9pEn3c(=`0X@2ovsP=oMa`cy@UvXf}$&c4x2AA*v9xeKr4Ry#Fe-KQ6&dPkfi4m*-c_>F2^_d~4-L5Ek{0~?A(ffaJ_N;h544zXL@Xn<1HRp~||Ga;35%%SLU#>5l zJ!xKlAzaq?Oz-`pAFckYWA6RKN2&kXfOo31{o`vk_GSIR>}Ts|!Dar+o?P_!xA^(r zL)3p+f?NLJ7oeB*zvlGk!)5)1Gimrf>F9&D4bLCAW&q#n8!PpDhdaq%NrK;X&N2G^ zKh_79X!%MLeA<|om2$ zuT6gzT-N9DZ+i1TP3)h9effT>=k|S5Y)wNi-#6tq^he8YUVkRMA`JMA`iV_nf6m6f z%s=5f{amBmzR&s2@4JQ59Dk@N;{N-hrz@B5hl>8X?W$Gpzi)aPT=wr6Cug3YL449a zz{wBsd44)v#s~a{|Bqhj9(w<0s{QmEm#v=)m-P#5QvLxK?h^X)Pgnc3 z&GJ*x%lscb@p=6llD|{nb;SWT$v?mO{LjkdFOBp4&-0X5ss6++k=}pbbf(5v5p%AY z=O^P|=1q3KTqw~q;mFh9fN+)x|n0r>yL*2Hmuq5 zFI4-5fqm1Q{Mh+n#Bzo5Ai?eX669(@ir(|dnev-`zK`emQE++xpWn!-osY-$!T%)T zIa0su`dNPL`Ypo0oKI#s^_=`1j$Y=U=*_0T{#R-IMX4P9MBWdj>-k^eU#jt^^EdXJ9v+Hb#-FBVeGUJn9|xE7`8aclGE+X{#~1qB z)c(j+&idk5^s@iV^qk4$^@qUa{AJ6p-~UbFFU$JXX#C6fOO12pnb(hk%lawtVH18p z!Dq4m0={nx8L zn_nyIhr_Wi<8RY*W}4RzgUkL(&NTD>v4#G>>VK4S>O5zfo&4>48Vh_VdinlAntqn7 zk3OvWidfI}H9fo@z3h+V{__6u1+Rn4{NLt;_-y&dlkxrkik4sY&&!&F#cZ5sF;Bx~ zgDW}roNLLmswY%m6mZQwC;uJgS=r;t4@u=cstp zv@YTQsZ9K79RJnmWqxR!I_33M@cRzZ@>`v6b@#KHAIkqC_FD{6Zuiu)qo0fUbIRrY zgv^=^YX)cLJskn%tRzCWVH?ZGwSj<_Iy5NA9G#2>l>c2FVm&voP z670+V2dkf~pLl&ST-G;jP0jm9{|@$B6vdo1r^hdNQR9cdt^S9ka-L-sVgJC&m=nL( z7s91|vo$mCAN_mkzcS|d-{QI#^!mdK(98SDX?mX3eW3c%1UEfAA3f(IX6l#s56^?k z{E#-u_y63B^#8wMU!Gs&p7dUV(|@p6Z;kq|Pw-1>Z_&PtcL}~yeN&Dv_$qi#RYFhy z4(DBq&y|;?a`y7)690FlF=x!{^+Vv&K5o_R8MTRq_{{&8YQG|tzbt$82cwtykLiiY z>qEHY*T$@jkF5OYSF8O&2~K?Ek66A{F6RSg#_Tq}f;0XJus`|0RE~ZSTUNi0<%^ANjKD6uqGxp{Du53xl9kI zFTStj{P0iWlkaOVrt_S?Da-zpPrkowdd75K|BseW&Iilbhxhp9(b)dqaG8HFCdH<4 zd;eoU>`Q*p+n99k=__OXzHk}8cs>64U*d0}<Yv{j6QMW%8>|0<*uHW6vlprldfA`N^|vuq_njV(^_!}`G?k<8jb6_0H$CGoukQty z{h5q;tWNm)*ICP-A9HeAl6Rx}r+sgq$q#xf^X`A$6!R^VSE}C1boxIx$Gj*0<@qZy zc|HG&{jDdO+`^wfo&(VtxzP-cAk_6>b^xV)dj zGaK4u+AP-ZSs!5i{!X<&BEfTqAE4tGo)7E}Z#g1vpJ}t<_?jr^1MQ}~unET(d}p;U z>z|qS9lf>hyx-7`_}Y&P&Zsy&?lZ7&`d!h>{_`|GSI*+u3H@UQF~_FY?+BOn!F5oI$}c%V&;5m-XITd;KP1*OCa*f^ z&Y1Usx6F?@W7cgiT&Ck^^u6IZBU3s1%eJR{a{ijd&zRfmyTE0BY-4KgAALWyUme(( z*K_uN?XSElU`%Rr0*jyhd;7p!+>qO~0SouTSOdFYJt7 zp6{C;``&*i_%|cs_!$$Mf8y_}@l_;vPM^CqKKQoidk>A{&(?Q@%lqAyKgRT?Cw~WG zzh!lTpZ&|-T2}VwZG&FE|JR&;fa+^v&hzbe`)}i=XY@H6W>1ZR-J3JKej#g<@+Md=?AO6ChlL%Keo_sh5ohr z*gkV|vycBR;j;gq_-)RA*{It!f5cy)@edA|lX}ivm;J5z>OV~7*xv&Con`))(KF}8 zzUeoI-*bTa=QsF0H{KEZFUsVH__8_vH$z`GDAsfTczrwgq9K7jQ>RV#?Z+s!Ul9o3$!lbzgq3r1@!rz)4$_?6ZA5_GCh61*Vm$#_ov`CCMel+R&0M`^m6{P z**87^i~lxodA>vb_>D0OdduH%wV$Wl#w11mH1c5@e{n#a^ql(3`%|s4FW<+&zSZe* zITywDTfwD%qxb&#U#{QCOn$6<79YN_zY%&_-!cE(GsI{59Js8HSpA_+{JG07)_Vc{p_%ff zar7vYV`&CE6TMh{5li;*j*r)x4Z@|C2 zKhT_hvg%7>z4=E^e*Z!*>m%r`O>eQoT#X<5f5P7?(D>o>xyFhASnRi`R!*IPzta%u z;eVj7D~#=D>wky;9LD*h&on*xI|=(am4WqHp7Z|GiRwQ$!580miN+6KkA1oR)~9Cc ze}hZ?x9dlrXL|gfjD4y9o}Vysp5|&Bd4K6w^s+wYx!0en`r4RN|4fhlU(g>_9LMkd zWB+IPsj@#IGyb;mCAnt&c$Vg;t_f$a&aHBm-5HvnngnO8N?T6*ybk+Q^8(srelz=~ zpQiRpnsC#vMK9m)Gd*Ko#T)oB;4YkrS=Qezvp&-*=C zz4^aH?MK}DoWDlY#rzxevOa--ujecU!otB zryQHKxnBPT{KtVBKQX}v9Wq?YNBmc-{UW))=BiK6Ip1rs#$OlECVM??HSw*&zU)6Y zJ#D(#N54e%WwGA4ogel&dKsUi$0oe4%Lt7R{bz8w{^TDGZN72hzZUz_KUkXx@6d5% zT)t1y%lZGhL)df{ReQ_ zUu^#A6HJf)+qC@S5`4#5qcxYD@AW=&_6Hc}d}QP3--gTkfwrbY{N|tkeN%YOy(5Eb?`Wa%^Bd)}_#f8zs+w^8Q@#ha ze8Up_;0sRF`1rok0~&u_Dkr`-h)>2Z=AZBDc>U{e`MzR{FQ=|cIe%O~g0OP^qRIBhxS(>|pLxj)DsoG}&L^7o3yUlP!#dv50| zzpVaGjqRJB@^L=#)7Y2uYti!?yigH<^$%yv0XP4zVPC%AMtnBrnDav; ze-gdSzs$br`Csz?1YF)fwms{NDbQQ}`AW-I5YVQg@tpH#KhpB$2lSbq)7Q?B^Kai( zeMvx{?m2xu=NG@Ddij1sCVsO|`QVQe-{1n(^Ber*R$Hz#{bTU2hN*uzV+y$We_!nn zjrGRSbG~o`df8t}{QL$#_QtJZ{f8QVO)5vf620vIF+F1nuYVLixlHp%Oz@!(x7YlV zzg23#E}+lO=A1wLsm5O%FlK-=ra;eF0R9N}<$T5F^q;G~B-WdM^jx2Z(aZB!^!$eX z3kP)2_^|&F{I?@CejR_vn8i5pe~EorKe9fTG0pB@Mtb;v(M$a^`*5#+5H9aeSpB2V zH$CmwYK^~N%;|HF+pMGJ0{$&rzRzKL&pE&M0qo25G0vFB>+grl`m>E`ynpmRsQseA z`h3qhUwDnimzUs|tlC=h2fq*d(tlWfvi1Lg%l8w^KVt^deBpJfADrN(hc8Dj=UZ6$ynpz;aM?e_J2&(X*1yp{@ce4ayU2fDz&+SDyb#n{IkIZ9U(w`(3%zj}%V(eGlu}}Ws^a*gw-$t7MvVb<*bJ|+I^_Byd`JLG}J@(;uU|-JH zLCG~^H*$g z{cZe%FTVfSR?8>Pk0j@wb1nG3T1AnSLo;-fzc0zoB7#XZ|@(;gE-f!Dg^OGOYrjT>=#`%8I_8On;zm-14bNU*--?XjjM+fw2p3_(I{j83v zkM1wesUPqgGWkW%Z}>m;sJV}t{`w5ZKb$@lZvH!~{e#uN=ji!9*1yrq^+nHb=&#>= zUaaq;@efPo=&wV6Yi-Qw6TSZ0jD7M)Oz=1NxK#5?{<^FE(ttiIoAZ6G9X0-vfIbgS zpNgKo6n+i%WΝeK*zD#Cr3Op6hcpdU^iU?_;*qJ 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%0D*wul$d9|MmFcd@FbI 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

  • KdtqUW|3khP8usxMFE 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� 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

    S+Ft-o_H_&$%+~pEXD9)8}E|^yjF4bdbbZE4~7~ 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

    -2GbUo)^Ro?m3_#J*n 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%0Are!~Z}p&)0YRA~=7*^yC8mJ6xU*FwXh4ZuxJ}_y zgv8PI-h|`QhK7m*>B;>A!|wTBDr!IiHC5@kRWPYy4Hpi4Sh^aX!*l z=w*Kz`>vk6IX~9ru6{FI&c`wToNt7GeBu9TwOz=OewS_6J7zH}|Lc$LMALl1={+ zT+bH>^27N@Zu#HP@=p!(13&uKQjLZ4iC$BlE+2f)FG@AnoR9RX#uwBd<%3f`{)TVD zzr5dJ`H$;Agv;{_#yQ`}_5Zrs53WCK!tqb8i0=dRFQ)4!u74jc?{8XuI3LL^|66K5 zxc|o{9RK8>_VFHidH+0{{$04-zrfMN+u!?|zo7jYr~bGWIUngg^*=tM=lU@Ij+QUD zzLNBB!{z-U^UwK5Zu|cb`*QxL%PBwo6XVNU=w*K8a##Om%0GP~`De~&;}_pYX`<^V zwVrYAiHmj|qWw4gCoTVY<&+72#-M!V^aWolAETT;CC~@=y7ZM>lvgXK&x3O>&sarY z|GAd0&ZAF7s zP_$#9lp5L&)<=C|T54B&G$mz>pKrj0@#D^aH zu6_gjmHk5hoL@}*{4eqUjs2X75pMCppGPm(ul2d6r!4U2;PQPx@<&d{@7M>2YW|4t zA1(i(9(|6>sVn-jXVE`2F{}PR)z^l4@`HV?Yq9@-=w*My>L35KAL<|b&%ovRb&H?# zgWdYyN!MR1BYbuHpnmD=>S_C^j_`fQ1o>ku*irkZng}Pq=0q0&HPG8khd7!6HfwR_Nd=>FY`=?KH_53gTC*g8_1|0vaDc~QD z|2AsBAk@S0Z~O`La=t8mnybeb`p4mNe+{SntZ7hwIOT7TeR=2}-*++l z=!wttkHX7`sGj_@W)zOUlK*|weu2j|XWZ^ZX$!l<^SlV>UYl6xE4nE^Ai`NIfYVp) zs`g9e{FlH!YZh?p%N`*B$xR0l1uRY@9U-H-9}ee%AK`J>1qB=qvV8 z|1y3#+}1MS_hbKQ&NmGDoVflz_$bbA3^;2RuK&HUFVDBT-2Bs*+>8Elp3e*Vytux% z#?SMEnH>E+=wCKgW#8qrf7&@JK`Az1p%<2AZ*wmkOTktM7-%`xSzVt7~*&kW8wU_Si!3QZX zjd1o-*#G1F^MT5P`v>d?`)g$(AD}$A|A4bT!upHpZp^sAMs=Jrd84S2Rr49bK<{|{G`@r;+*miRedo3PvSSAm;G5Qlk1=OuZPR~ zGZw#_f8sC1zPz7r`%~;+*j_Jn;lpMBk^K|$=W_NUuBH5P{hOZO_+Mg0e>Gg*-@-q? z#r>D0>|0JYqN#_OHnm``2e_{N)~dR&e%@coz)LTI3YL)2@%!Bi; zFM7TOJwkbja_*1dyh{ydFQrE9S0!@xaxN!+Ie!=b=y~SC)vtid_W{_G!9N`T{4f4T ztNjs)oV}h=8sA9e%n8u*E;M@LyA1o^lzQw5VV`G8u+RUZUk;b^1MrT|V^K zzZm=S{^0>HbW{60GlYHq7yU)>_sT>2#?AlaRQ`w$4czRbzYu-yw9r1!RGEF^zW^@Z zSF!d-PBt|P+6V1#zS<8sa{_qD!(BB0>{T7AWtt%~W2I$k`t}pZMi`1md@xy883r^85sQzW68S_~(D|KS%ACCvyBR zLofT+rYEPa{#>|>Z|s>-emLdF7xvGAAMGh8f8?C}!O7oY_?P)5dtxrf7JFr9qhC^- zRe!kZhlP5+?}~l&*k6iXo-eTY@Ne;9e+j(0z+=ym{s+BV|7WQED4($RE*dL)EhlOI z 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�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

    0igSLpvY%(?0$)PD(IVxaT9 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

    2|zZAX9KTS`3w1uX>1pfEH-1V(-`-gv@ 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⩔Kjw%?{H4%+brd%a5q4HvI|P4zKR> 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

    7Ta+5|Z5Z<8O})xj@BFa3wL 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 Z=-)XIr^Mg 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⋙|Kb03-P1z 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 z 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 z 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

    uEKL&lge@5?r3-x{EUtCK2d7X#t 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�v&>iSujQ2agTZGEP3nIq`apNU? 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

    k9}n6tp_X+&Z%)Tjo4AkIcN{aqSz5+f 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⪻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 z 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�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 literal 0 HcmV?d00001 diff --git a/examples/rt/teapot.camera b/examples/rt/teapot.camera new file mode 100644 index 0000000000000000000000000000000000000000..9a98e3f64676af05505dfb71e8808e527ff4735d GIT binary patch literal 136 zcmY#jW?)bN;?#29_au8 literal 0 HcmV?d00001 diff --git a/examples/simple/Makefile b/examples/simple/Makefile new file mode 100644 index 00000000..b00c6737 --- /dev/null +++ b/examples/simple/Makefile @@ -0,0 +1,25 @@ + +CXX=g++ +CXXFLAGS=-Iobjs/ -O3 -Wall +ISPC=ispc +ISPCFLAGS=-O2 + +default: simple + +.PHONY: dirs clean +.PRECIOUS: objs/simple.h + +dirs: + /bin/mkdir -p objs/ + +clean: + /bin/rm -rf objs *~ simple + +simple: dirs objs/simple.o objs/simple_ispc.o + $(CXX) $(CXXFLAGS) -o $@ objs/simple.o objs/simple_ispc.o + +objs/simple.o: simple.cpp objs/simple_ispc.h + $(CXX) $(CXXFLAGS) -c -o $@ $< + +objs/%_ispc.h objs/%_ispc.o: %.ispc + $(ISPC) $(ISPCFLAGS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h diff --git a/examples/simple/simple.cpp b/examples/simple/simple.cpp new file mode 100644 index 00000000..3b5bf028 --- /dev/null +++ b/examples/simple/simple.cpp @@ -0,0 +1,63 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include + +// Include the header file that the ispc compiler generates +#include "simple_ispc.h" +using namespace ispc; + +int main() { + // Pointers passed to ispc-compiled code are currently required to have + // alignment equal to the target's native vector size. Here we align + // to 32 bytes to be safe for both SSE and AVX targets. +#ifdef _MSC_VER + __declspec(align(32)) float vin[16], vout[16]; +#else + float vin[16] __attribute__((aligned(32))); + float vout[16] __attribute__((aligned(32))); +#endif + + // Initialize input buffer + for (int i = 0; i < 16; ++i) + vin[i] = (float)i; + + // Call simple() function from simple.ispc file + simple(vin, vout, 16); + + // Print results + for (int i = 0; i < 16; ++i) + printf("%d: simple(%f) = %f\n", i, vin[i], vout[i]); + + return 0; +} diff --git a/examples/simple/simple.ispc b/examples/simple/simple.ispc new file mode 100644 index 00000000..a44c29e5 --- /dev/null +++ b/examples/simple/simple.ispc @@ -0,0 +1,53 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +export void simple(uniform float vin[], uniform float vout[], + uniform int count) { + // Compute the result for 'programCount' values in parallel + for (uniform int i = 0; i < count; i += programCount) { + int index = i + programIndex; + // Load the appropriate input value for this program instance. + float v = vin[index]; + + // Do an arbitrary little computation, but at least make the + // computation dependent on the value being processed + if (v < 3.) + v = v * v; + else + v = sqrt(v); + + // And write the result to the output array. + vout[index] = v; + } +} diff --git a/examples/simple/simple.vcxproj b/examples/simple/simple.vcxproj new file mode 100755 index 00000000..9723ed02 --- /dev/null +++ b/examples/simple/simple.vcxproj @@ -0,0 +1,164 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + Document + +cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 + + +cl /E /TP %(Filename).ispc | ispc -O2 -o %(Filename).obj -h %(Filename)_ispc.h + + %(Filename).obj + %(Filename).obj + +cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h --arch=x86 + + +cl /E /TP %(Filename).ispc | ispc -O2 - -o %(Filename).obj -h %(Filename)_ispc.h + + %(Filename).obj + %(Filename).obj + + + + {947C5311-8B78-4D05-BEE4-BCF342D4B367} + Win32Proj + simple + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + diff --git a/examples/timing.h b/examples/timing.h new file mode 100644 index 00000000..a51ab372 --- /dev/null +++ b/examples/timing.h @@ -0,0 +1,67 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include + + +#ifdef WIN32 +#include +#define rdtsc __rdtsc +#else +extern "C" { + __inline__ uint64_t rdtsc() { + uint32_t low, high; + __asm__ __volatile__ ( + "xorl %%eax,%%eax \n cpuid" + ::: "%rax", "%rbx", "%rcx", "%rdx" ); + __asm__ __volatile__ ( + "rdtsc" : "=a" (low), "=d" (high)); + return (uint64_t)high << 32 | low; + } +} +#endif + +static uint64_t start, end; + +static inline void reset_and_start_timer() +{ + start = rdtsc(); +} + +/* Returns the number of millions of elapsed processor cycles since the + last reset_and_start_timer() call. */ +static inline double get_elapsed_mcycles() +{ + end = rdtsc(); + return (end-start) / (1024. * 1024.); +} diff --git a/expr.cpp b/expr.cpp new file mode 100644 index 00000000..53b07bdf --- /dev/null +++ b/expr.cpp @@ -0,0 +1,4519 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file expr.cpp + @brief Implementations of expression classes +*/ + +#include "expr.h" +#include "type.h" +#include "sym.h" +#include "ctx.h" +#include "module.h" +#include "util.h" +#include "llvmutil.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +///////////////////////////////////////////////////////////////////////////////////// +// Expr + +llvm::Value * +Expr::GetLValue(FunctionEmitContext *ctx) const { + // Expressions that can't provide an lvalue can just return NULL + return NULL; +} + + +llvm::Constant * +Expr::GetConstant(const Type *type) const { + // The default is failure; just return NULL + return NULL; +} + + +Symbol * +Expr::GetBaseSymbol() const { + // Not all expressions can do this, so provide a generally-useful + // default + return NULL; +} + + +/** If a conversion from 'fromAtomicType' to 'toAtomicType' may cause lost + precision, issue a warning. Don't warn for conversions to bool and + conversions between signed and unsigned integers of the same size. + */ +static void +lMaybeIssuePrecisionWarning(const AtomicType *toAtomicType, + const AtomicType *fromAtomicType, + SourcePos pos, const char *errorMsgBase) { + switch (toAtomicType->basicType) { + case AtomicType::TYPE_BOOL: + case AtomicType::TYPE_INT32: + case AtomicType::TYPE_UINT32: + case AtomicType::TYPE_FLOAT: + case AtomicType::TYPE_INT64: + case AtomicType::TYPE_UINT64: + case AtomicType::TYPE_DOUBLE: + if ((int)toAtomicType->basicType < (int)fromAtomicType->basicType && + toAtomicType->basicType != AtomicType::TYPE_BOOL && + !(toAtomicType->basicType == AtomicType::TYPE_INT32 && + fromAtomicType->basicType == AtomicType::TYPE_UINT32) && + !(toAtomicType->basicType == AtomicType::TYPE_INT64 && + fromAtomicType->basicType == AtomicType::TYPE_UINT64)) + Warning(pos, "Conversion from type \"%s\" to type \"%s\" for %s" + " may lose information.", + fromAtomicType->GetString().c_str(), toAtomicType->GetString().c_str(), + errorMsgBase); + break; + default: + FATAL("logic error in lMaybeIssuePrecisionWarning"); + } +} + + +Expr * +Expr::TypeConv(const Type *toType, const char *errorMsgBase, bool failureOk) { + /* This function is way too long and complex. Is type conversion stuff + always this messy, or can this be cleaned up somehow? */ + assert(failureOk || errorMsgBase != NULL); + + const Type *fromType = GetType(); + if (toType == NULL || fromType == NULL) + return this; + + // The types are equal; there's nothing to do + if (Type::Equal(toType, fromType)) + return this; + + if (fromType == AtomicType::Void) { + if (!failureOk) + Error(pos, "Can't convert from \"void\" to \"%s\" for %s.", + toType->GetString().c_str(), errorMsgBase); + return NULL; + } + + if (toType == AtomicType::Void) { + if (!failureOk) + Error(pos, "Can't convert type \"%s\" to \"void\" for %s.", + fromType->GetString().c_str(), errorMsgBase); + return NULL; + } + + if (toType->IsUniformType() && fromType->IsVaryingType()) { + if (!failureOk) + Error(pos, "Can't convert from varying type \"%s\" to uniform " + "type \"%s\" for %s.", fromType->GetString().c_str(), + toType->GetString().c_str(), errorMsgBase); + return NULL; + } + + // Convert from type T -> const T; just return a TypeCast expr, which + // can handle this + if (Type::Equal(toType, fromType->GetAsConstType())) + return new TypeCastExpr(toType, this, pos); + + if (dynamic_cast(fromType)) { + if (dynamic_cast(toType)) { + // Convert from a reference to a type to a const reference to a type; + // this is handled by TypeCastExpr + if (Type::Equal(toType->GetReferenceTarget(), + fromType->GetReferenceTarget()->GetAsConstType())) + return new TypeCastExpr(toType, this, pos); +#if 0 + // FIXME: why is this commented out?? + else { + Error(pos, "Can't convert between incompatible reference types \"%s\" " + "and \"%s\".", fromType->GetString().c_str(), + toType->GetString().c_str()); + return NULL; + } +#endif + } + else { + // convert from a reference T -> T + Expr *fromExpr = new DereferenceExpr(this, pos); + if (fromExpr->GetType() == NULL) + return NULL; + return fromExpr->TypeConv(toType, errorMsgBase, failureOk); + } + } + else if (dynamic_cast(toType)) { + // T -> reference T + Expr *fromExpr = new ReferenceExpr(this, pos); + if (fromExpr->GetType() == NULL) + return NULL; + return fromExpr->TypeConv(toType, errorMsgBase, failureOk); + } + else if (Type::Equal(toType, fromType->GetAsNonConstType())) + // convert: const T -> T (as long as T isn't a reference) + return new TypeCastExpr(toType, this, pos); + + fromType = fromType->GetReferenceTarget(); + toType = toType->GetReferenceTarget(); + // I don't think this is necessary +//CO if (Type::Equal(toType, fromType)) +//CO return fromExpr; + + const ArrayType *toArrayType = dynamic_cast(toType); + const ArrayType *fromArrayType = dynamic_cast(fromType); + if (toArrayType && fromArrayType) { + if (Type::Equal(toArrayType->GetElementType(), fromArrayType->GetElementType())) { + // the case of different element counts should have returned + // out earlier, yes?? + assert(toArrayType->GetElementCount() != fromArrayType->GetElementCount()); + return new TypeCastExpr(new ReferenceType(toType, false), this, pos); + } + else if (Type::Equal(toArrayType->GetElementType(), + fromArrayType->GetElementType()->GetAsConstType())) { + // T[x] -> const T[x] + return new TypeCastExpr(new ReferenceType(toType, false), this, pos); + } + else { + if (!failureOk) + Error(pos, "Array type \"%s\" can't be converted to type \"%s\" for %s.", + fromType->GetString().c_str(), toType->GetString().c_str(), + errorMsgBase); + return NULL; + } + } + + const VectorType *toVectorType = dynamic_cast(toType); + const VectorType *fromVectorType = dynamic_cast(fromType); + if (toVectorType && fromVectorType) { + // converting e.g. int -> float + if (fromVectorType->GetElementCount() != toVectorType->GetElementCount()) { + if (!failureOk) + Error(pos, "Can't convert between differently sized vector types " + "\"%s\" -> \"%s\" for %s.", fromType->GetString().c_str(), + toType->GetString().c_str(), errorMsgBase); + return NULL; + } + return new TypeCastExpr(toType, this, pos); + } + + const StructType *toStructType = dynamic_cast(toType); + const StructType *fromStructType = dynamic_cast(fromType); + if (toStructType && fromStructType) { + if (!Type::Equal(toStructType->GetAsUniformType()->GetAsConstType(), + fromStructType->GetAsUniformType()->GetAsConstType())) { + if (!failureOk) + Error(pos, "Can't convert between different struct types " + "\"%s\" -> \"%s\".", fromStructType->GetString().c_str(), + toStructType->GetString().c_str()); + return NULL; + } + + return new TypeCastExpr(toType, this, pos); + } + + // from here on out, the from type can only be atomic something or + // other... + const AtomicType *fromAtomicType = dynamic_cast(fromType); + if (fromAtomicType == NULL) { + if (!failureOk) + Error(pos, "Type conversion only possible from atomic types, not " + "from \"%s\" to \"%s\", for %s.", fromType->GetString().c_str(), + toType->GetString().c_str(), errorMsgBase); + return NULL; + } + + // scalar -> short-vector conversions + if (toVectorType != NULL) + return new TypeCastExpr(toType, this, pos); + + // ok, it better be a scalar->scalar conversion of some sort by now + const AtomicType *toAtomicType = dynamic_cast(toType); + if (toAtomicType == NULL) { + if (!failureOk) + Error(pos, "Type conversion only possible to atomic types, not " + "from \"%s\" to \"%s\", for %s.", + fromType->GetString().c_str(), toType->GetString().c_str(), + errorMsgBase); + return NULL; + } + + if (!failureOk) + lMaybeIssuePrecisionWarning(toAtomicType, fromAtomicType, pos, + errorMsgBase); + + return new TypeCastExpr(toType, this, pos); +} + + +/////////////////////////////////////////////////////////////////////////// + +/** Given an atomic or vector type, this returns a boolean type with the + same "shape". In other words, if the given type is a vector type of + three uniform ints, the returned type is a vector type of three uniform + bools. */ +static const Type * +lMatchingBoolType(const Type *type) { + bool uniformTest = type->IsUniformType(); + const AtomicType *boolBase = uniformTest ? AtomicType::UniformBool : + AtomicType::VaryingBool; + const VectorType *vt = dynamic_cast(type); + if (vt != NULL) + return new VectorType(boolBase, vt->GetElementCount()); + else { + assert(dynamic_cast(type) != NULL); + return boolBase; + } +} + +/////////////////////////////////////////////////////////////////////////// +// UnaryExpr + +static llvm::Constant * +lLLVMConstantValue(const Type *type, llvm::LLVMContext *ctx, double value) { + const AtomicType *atomicType = dynamic_cast(type); + const VectorType *vectorType = dynamic_cast(type); + + // This function is only called with, and only works for atomic and + // vector types. + assert(atomicType != NULL || vectorType != NULL); + + if (atomicType) { + // If it's an atomic type, then figure out which of the llvmutil.h + // functions to call to get the corresponding constant and then + // call it... + bool isUniform = type->IsUniformType(); + switch (atomicType->basicType) { + case AtomicType::TYPE_VOID: + FATAL("can't get constant value for void type"); + return NULL; + case AtomicType::TYPE_BOOL: + if (isUniform) + return (value != 0.) ? LLVMTrue : LLVMFalse; + else + return LLVMBoolVector(value != 0.); + case AtomicType::TYPE_UINT32: { + unsigned int i = (unsigned int)value; + return isUniform ? LLVMUInt32(i) : LLVMUInt32Vector(i); + } + case AtomicType::TYPE_INT32: { + int i = (int)value; + assert((double)i == value); + return isUniform ? LLVMInt32(i) : LLVMInt32Vector(i); + } + case AtomicType::TYPE_FLOAT: + return isUniform ? LLVMFloat((float)value) : + LLVMFloatVector((float)value); + case AtomicType::TYPE_UINT64: { + uint64_t i = (uint64_t)value; + assert(value == (int64_t)i); + return isUniform ? LLVMUInt64(i) : LLVMUInt64Vector(i); + } + case AtomicType::TYPE_INT64: { + int64_t i = (int64_t)value; + assert((double)i == value); + return isUniform ? LLVMInt64(i) : LLVMInt64Vector(i); + } + case AtomicType::TYPE_DOUBLE: + return isUniform ? LLVMDouble(value) : LLVMDoubleVector(value); + default: + FATAL("logic error in lLLVMConstantValue"); + return NULL; + } + } + + // For vector types, first get the LLVM constant for the basetype with + // a recursive call to lLLVMConstantValue(). + const Type *baseType = vectorType->GetBaseType(); + llvm::Constant *constElement = lLLVMConstantValue(baseType, ctx, value); + const llvm::Type *llvmVectorType = vectorType->LLVMType(ctx); + + // Now create a constant version of the corresponding LLVM type that we + // use to represent the VectorType. + // FIXME: this is a little ugly in that the fact that ispc represents + // uniform VectorTypes as LLVM VectorTypes and varying VectorTypes as + // LLVM ArrayTypes leaks into the code here; it feels like this detail + // should be better encapsulated? + if (baseType->IsUniformType()) { + const llvm::VectorType *lvt = + llvm::dyn_cast(llvmVectorType); + assert(lvt != NULL); + std::vector vals; + for (unsigned int i = 0; i < lvt->getNumElements(); ++i) + vals.push_back(constElement); + return llvm::ConstantVector::get(lvt, vals); + } + else { + const llvm::ArrayType *lat = + llvm::dyn_cast(llvmVectorType); + assert(lat != NULL); + std::vector vals; + for (unsigned int i = 0; i < lat->getNumElements(); ++i) + vals.push_back(constElement); + return llvm::ConstantArray::get(lat, vals); + } +} + + +/** Utility routine to emit code to do a {pre,post}-{inc,dec}rement of the + given expresion. + */ +static llvm::Value * +lEmitPrePostIncDec(UnaryExpr::Op op, Expr *expr, SourcePos pos, + FunctionEmitContext *ctx) { + const Type *type = expr->GetType(); + + // Get both the lvalue and the rvalue of the given expression + llvm::Value *lvalue = NULL, *rvalue = NULL; + if (dynamic_cast(type) != NULL) { + type = type->GetReferenceTarget(); + lvalue = expr->GetValue(ctx); + + Expr *deref = new DereferenceExpr(expr, expr->pos); + rvalue = deref->GetValue(ctx); + } + else { + lvalue = expr->GetLValue(ctx); + rvalue = expr->GetValue(ctx); + } + + if (lvalue == NULL) { + // If we can't get a lvalue, then we have an error here + Error(expr->pos, "Can't %s-%s non-lvalues.", + (op == UnaryExpr::PreInc || op == UnaryExpr::PreDec) ? "pre" : "post", + (op == UnaryExpr::PreInc || op == UnaryExpr::PostInc) ? "increment" : "decrement"); + return NULL; + } + + // Emit code to do the appropriate addition/subtraction to the + // expression's old value + ctx->SetDebugPos(pos); + llvm::Value *binop = NULL; + int delta = (op == UnaryExpr::PreInc || op == UnaryExpr::PostInc) ? 1 : -1; + llvm::Constant *dval = lLLVMConstantValue(type, g->ctx, delta); + if (!type->IsFloatType()) + binop = ctx->BinaryOperator(llvm::Instruction::Add, rvalue, + dval, "val_inc_or_dec"); + else + binop = ctx->BinaryOperator(llvm::Instruction::FAdd, rvalue, + dval, "val_inc_or_dec"); + +#if 0 + if (type->IsUniformType()) { + if (ctx->VaryingCFDepth() > 0) + Warning(expr->pos, + "Modifying \"uniform\" value under \"varying\" control flow. Beware."); + } +#endif + + // And store the result out to the lvalue + ctx->StoreInst(binop, lvalue, ctx->GetMask(), type); + + // And then if it's a pre increment/decrement, return the final + // computed result; otherwise return the previously-grabbed expression + // value. + return (op == UnaryExpr::PreInc || op == UnaryExpr::PreDec) ? binop : rvalue; +} + + + +/** Utility routine to emit code to negate the given expression. + */ +static llvm::Value * +lEmitNegate(Expr *arg, SourcePos pos, FunctionEmitContext *ctx) { + const Type *type = arg->GetType(); + llvm::Value *argVal = arg->GetValue(ctx); + if (type == NULL || argVal == NULL) + return NULL; + + // Negate by subtracting from zero... + llvm::Value *zero = lLLVMConstantValue(type, g->ctx, 0.); + ctx->SetDebugPos(pos); + if (type->IsFloatType()) + return ctx->BinaryOperator(llvm::Instruction::FSub, zero, argVal, "fnegate"); + else { + assert(type->IsIntType()); + return ctx->BinaryOperator(llvm::Instruction::Sub, zero, argVal, "fnegate"); + } +} + + +UnaryExpr::UnaryExpr(Op o, Expr *e, SourcePos p) + : Expr(p), op(o) { + expr = e; +} + + +llvm::Value * +UnaryExpr::GetValue(FunctionEmitContext *ctx) const { + if (expr == NULL) + return NULL; + + ctx->SetDebugPos(pos); + + switch (op) { + case PreInc: + case PreDec: + case PostInc: + case PostDec: + return lEmitPrePostIncDec(op, expr, pos, ctx); + case Negate: + return lEmitNegate(expr, pos, ctx); + case LogicalNot: { + llvm::Value *argVal = expr->GetValue(ctx); + return ctx->NotOperator(argVal, "logicalnot"); + } + case BitNot: { + llvm::Value *argVal = expr->GetValue(ctx); + return ctx->NotOperator(argVal, "bitnot"); + } + default: + FATAL("logic error"); + return NULL; + } +} + + +const Type * +UnaryExpr::GetType() const { + if (expr == NULL) + return NULL; + + const Type *type = expr->GetType(); + if (type == NULL) + return NULL; + + // For all unary expressions besides logical not, the returned type is + // the same as the source type. Logical not always returns a bool + // type, with the same shape as the input type. + switch (op) { + case PreInc: + case PreDec: + case PostInc: + case PostDec: + case Negate: + case BitNot: + return type; + case LogicalNot: + return lMatchingBoolType(type); + default: + FATAL("error"); + return NULL; + } +} + + +Expr * +UnaryExpr::Optimize() { + if (!expr) + return NULL; + + expr = expr->Optimize(); + + ConstExpr *constExpr = dynamic_cast(expr); + // If the operand isn't a constant, then we can't do any optimization + // here... + if (constExpr == NULL) + return this; + + const Type *type = constExpr->GetType(); + + if (type == AtomicType::UniformInt64 || + type == AtomicType::VaryingInt64 || + type == AtomicType::UniformUInt64 || + type == AtomicType::VaryingUInt64 || + type == AtomicType::UniformConstInt64 || + type == AtomicType::VaryingConstInt64 || + type == AtomicType::UniformConstUInt64 || + type == AtomicType::VaryingConstUInt64) + // FIXME: should handle these at some point; for now we only do + // constant folding for bool, int32 and float types... + return this; + + switch (op) { + case PreInc: + case PreDec: + case PostInc: + case PostDec: + // this shouldn't happen--it's illegal to modify a contant value.. + // An error will be issued elsewhere... + return this; + case Negate: { + // Since we currently only handle int32 and floats here, it's safe + // to stuff whatever we have into a double, do the negate as a + // double, and then return a ConstExpr with the same type as the + // original... + double v[ISPC_MAX_NVEC]; + int count = constExpr->AsDouble(v); + for (int i = 0; i < count; ++i) + v[i] = -v[i]; + return new ConstExpr(constExpr, v); + } + case BitNot: { + if (type == AtomicType::UniformInt32 || + type == AtomicType::VaryingInt32 || + type == AtomicType::UniformConstInt32 || + type == AtomicType::VaryingConstInt32) { + int32_t v[ISPC_MAX_NVEC]; + int count = constExpr->AsInt32(v); + for (int i = 0; i < count; ++i) + v[i] = ~v[i]; + return new ConstExpr(type, v, pos); + } + else if (type == AtomicType::UniformUInt32 || + type == AtomicType::VaryingUInt32 || + type == AtomicType::UniformConstUInt32 || + type == AtomicType::VaryingConstUInt32) { + uint32_t v[ISPC_MAX_NVEC]; + int count = constExpr->AsUInt32(v); + for (int i = 0; i < count; ++i) + v[i] = ~v[i]; + return new ConstExpr(type, v, pos); + } + else + FATAL("unexpected type in UnaryExpr::Optimize() / BitNot case"); + } + case LogicalNot: { + assert(type == AtomicType::UniformBool || + type == AtomicType::VaryingBool || + type == AtomicType::UniformConstBool || + type == AtomicType::VaryingConstBool); + bool v[ISPC_MAX_NVEC]; + int count = constExpr->AsBool(v); + for (int i = 0; i < count; ++i) + v[i] = !v[i]; + return new ConstExpr(type, v, pos); + } + default: + FATAL("unexpected op in UnaryExpr::Optimize()"); + return NULL; + } +} + + +Expr * +UnaryExpr::TypeCheck() { + if (expr != NULL) + expr = expr->TypeCheck(); + if (expr == NULL) + // something went wrong in type checking... + return NULL; + + const Type *type = expr->GetType(); + if (type == NULL) + return NULL; + + if (op == PreInc || op == PreDec || op == PostInc || op == PostDec) { + if (!type->IsNumericType()) { + Error(expr->pos, "Can only pre/post increment float and integer " + "types, not \"%s\".", type->GetString().c_str()); + return NULL; + } + return this; + } + + // don't do this for pre/post increment/decrement + if (dynamic_cast(type)) { + expr = new DereferenceExpr(expr, pos); + type = expr->GetType(); + } + + if (op == Negate) { + if (!type->IsNumericType()) { + Error(expr->pos, "Negate not allowed for non-numeric type \"%s\".", + type->GetString().c_str()); + return NULL; + } + } + else if (op == LogicalNot) { + const Type *boolType = lMatchingBoolType(type); + expr = expr->TypeConv(boolType, "logical not"); + if (!expr) + return NULL; + } + else if (op == BitNot) { + if (!type->IsIntType()) { + Error(expr->pos, "~ operator can only be used with integer types, " + "not \"%s\".", type->GetString().c_str()); + return NULL; + } + } + return this; +} + + +void +UnaryExpr::Print() const { + if (!expr || !GetType()) + return; + + printf("[ %s ] (", GetType()->GetString().c_str()); + if (op == PreInc) printf("++"); + if (op == PreDec) printf("--"); + if (op == Negate) printf("-"); + if (op == LogicalNot) printf("!"); + if (op == BitNot) printf("~"); + printf("("); + expr->Print(); + printf(")"); + if (op == PostInc) printf("++"); + if (op == PostDec) printf("--"); + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// BinaryExpr + +static const char * +lOpString(BinaryExpr::Op op) { + switch (op) { + case BinaryExpr::Add: return "+"; + case BinaryExpr::Sub: return "-"; + case BinaryExpr::Mul: return "*"; + case BinaryExpr::Div: return "/"; + case BinaryExpr::Mod: return "%"; + case BinaryExpr::Shl: return "<<"; + case BinaryExpr::Shr: return ">>"; + case BinaryExpr::Lt: return "<"; + case BinaryExpr::Gt: return ">"; + case BinaryExpr::Le: return "<="; + case BinaryExpr::Ge: return ">="; + case BinaryExpr::Equal: return "=="; + case BinaryExpr::NotEqual: return "!="; + case BinaryExpr::BitAnd: return "&"; + case BinaryExpr::BitXor: return "^"; + case BinaryExpr::BitOr: return "|"; + case BinaryExpr::LogicalAnd: return "&&"; + case BinaryExpr::LogicalOr: return "||"; + case BinaryExpr::Comma: return ","; + default: + FATAL("unimplemented case in lOpString()"); + return ""; + } +} + + +/** Utility routine to emit the binary bitwise operator corresponding to + the given BinaryExpr::Op. +*/ +static llvm::Value * +lEmitBinaryBitOp(BinaryExpr::Op op, llvm::Value *arg0Val, + llvm::Value *arg1Val, FunctionEmitContext *ctx) { + llvm::Instruction::BinaryOps inst; + switch (op) { + case BinaryExpr::Shl: inst = llvm::Instruction::Shl; break; + case BinaryExpr::Shr: inst = llvm::Instruction::AShr; break; + case BinaryExpr::BitAnd: inst = llvm::Instruction::And; break; + case BinaryExpr::BitXor: inst = llvm::Instruction::Xor; break; + case BinaryExpr::BitOr: inst = llvm::Instruction::Or; break; + default: + FATAL("logic error in lEmitBinaryBitOp()"); + return NULL; + } + + return ctx->BinaryOperator(inst, arg0Val, arg1Val, "bitop"); +} + + +/** Utility routine to emit binary arithmetic operator based on the given + BinaryExpr::Op. +*/ +static llvm::Value * +lEmitBinaryArith(BinaryExpr::Op op, llvm::Value *e0Val, llvm::Value *e1Val, + const Type *type, FunctionEmitContext *ctx, SourcePos pos) { + llvm::Instruction::BinaryOps inst; + bool isFloatOp = type->IsFloatType(); + bool isUnsignedOp = type->IsUnsignedType(); + + switch (op) { + case BinaryExpr::Add: + inst = isFloatOp ? llvm::Instruction::FAdd : llvm::Instruction::Add; + break; + case BinaryExpr::Sub: + inst = isFloatOp ? llvm::Instruction::FSub : llvm::Instruction::Sub; + break; + case BinaryExpr::Mul: + inst = isFloatOp ? llvm::Instruction::FMul : llvm::Instruction::Mul; + break; + case BinaryExpr::Div: + if (type->IsVaryingType() && !isFloatOp) + PerformanceWarning(pos, "Division with varying integer types is " + "very inefficient."); + inst = isFloatOp ? llvm::Instruction::FDiv : + (isUnsignedOp ? llvm::Instruction::UDiv : llvm::Instruction::SDiv); + break; + case BinaryExpr::Mod: + if (type->IsVaryingType() && !isFloatOp) + PerformanceWarning(pos, "Modulus operator with varying types is " + "very inefficient."); + inst = isFloatOp ? llvm::Instruction::FRem : + (isUnsignedOp ? llvm::Instruction::URem : llvm::Instruction::SRem); + break; + default: + FATAL("Invalid op type passed to lEmitBinaryArith()"); + return NULL; + } + + return ctx->BinaryOperator(inst, e0Val, e1Val, "binop"); +} + + +/** Utility routine to emit a binary comparison operator based on the given + BinaryExpr::Op. + */ +static llvm::Value * +lEmitBinaryCmp(BinaryExpr::Op op, llvm::Value *e0Val, llvm::Value *e1Val, + const Type *type, FunctionEmitContext *ctx, SourcePos pos) { + bool isFloatOp = type->IsFloatType(); + bool isUnsignedOp = type->IsUnsignedType(); + + llvm::CmpInst::Predicate pred; + switch (op) { + case BinaryExpr::Lt: + pred = isFloatOp ? llvm::CmpInst::FCMP_OLT : + (isUnsignedOp ? llvm::CmpInst::ICMP_ULT : llvm::CmpInst::ICMP_SLT); + break; + case BinaryExpr::Gt: + pred = isFloatOp ? llvm::CmpInst::FCMP_OGT : + (isUnsignedOp ? llvm::CmpInst::ICMP_UGT : llvm::CmpInst::ICMP_SGT); + break; + case BinaryExpr::Le: + pred = isFloatOp ? llvm::CmpInst::FCMP_OLE : + (isUnsignedOp ? llvm::CmpInst::ICMP_ULE : llvm::CmpInst::ICMP_SLE); + break; + case BinaryExpr::Ge: + pred = isFloatOp ? llvm::CmpInst::FCMP_OGE : + (isUnsignedOp ? llvm::CmpInst::ICMP_UGE : llvm::CmpInst::ICMP_SGE); + break; + case BinaryExpr::Equal: + pred = isFloatOp ? llvm::CmpInst::FCMP_OEQ : llvm::CmpInst::ICMP_EQ; + break; + case BinaryExpr::NotEqual: + pred = isFloatOp ? llvm::CmpInst::FCMP_ONE : llvm::CmpInst::ICMP_NE; + break; + default: + FATAL("error in lEmitBinaryCmp()"); + return NULL; + } + + llvm::Value *cmp = ctx->CmpInst(isFloatOp ? llvm::Instruction::FCmp : + llvm::Instruction::ICmp, + pred, e0Val, e1Val, "bincmp"); + // This is a little ugly: CmpInst returns i1 values, but we use vectors + // of i32s for varying bool values; type convert the result here if + // needed. + if (type->IsVaryingType()) + cmp = ctx->I1VecToBoolVec(cmp); + + return cmp; +} + + +BinaryExpr::BinaryExpr(Op o, Expr *a, Expr *b, SourcePos p) + : Expr(p), op(o) { + arg0 = a; + arg1 = b; +} + + +llvm::Value * +BinaryExpr::GetValue(FunctionEmitContext *ctx) const { + if (!arg0 || !arg1) + return NULL; + + llvm::Value *e0Val = arg0->GetValue(ctx); + llvm::Value *e1Val = arg1->GetValue(ctx); + ctx->SetDebugPos(pos); + + switch (op) { + case Add: + case Sub: + case Mul: + case Div: + case Mod: + return lEmitBinaryArith(op, e0Val, e1Val, arg0->GetType(), ctx, pos); + case Lt: + case Gt: + case Le: + case Ge: + case Equal: + case NotEqual: + return lEmitBinaryCmp(op, e0Val, e1Val, arg0->GetType(), ctx, pos); + case Shl: + case Shr: + case BitAnd: + case BitXor: + case BitOr: { + if (op == Shr && arg1->GetType()->IsVaryingType() && + dynamic_cast(arg1) == NULL) + PerformanceWarning(pos, "Shift right is extremely inefficient for " + "varying shift amounts."); + return lEmitBinaryBitOp(op, e0Val, e1Val, ctx); + } + case LogicalAnd: + return ctx->BinaryOperator(llvm::Instruction::And, e0Val, e1Val, + "logical_and"); + case LogicalOr: + return ctx->BinaryOperator(llvm::Instruction::Or, e0Val, e1Val, + "logical_or"); + case Comma: + return e1Val; + default: + FATAL("logic error"); + return NULL; + } +} + + +const Type * +BinaryExpr::GetType() const { + if (arg0 == NULL || arg1 == NULL) + return NULL; + + const Type *type0 = arg0->GetType(), *type1 = arg1->GetType(); + if (type0 == NULL || type1 == NULL) + return NULL; + + if (!type0->IsBoolType() && !type0->IsNumericType()) { + Error(arg0->pos, "First operand to binary operator \"%s\" is of invalid " + "type \"%s\".", lOpString(op), type0->GetString().c_str()); + return NULL; + } + if (!type1->IsBoolType() && !type1->IsNumericType()) { + Error(arg1->pos, + "Second operand to binary operator \"%s\" is of invalid " + "type \"%s\".", lOpString(op), type1->GetString().c_str()); + return NULL; + } + + const Type *promotedType = Type::MoreGeneralType(type0, type1, pos, + lOpString(op)); + // I don't think that MoreGeneralType should be able to fail after the + // type checks above. + assert(promotedType != NULL); + + switch (op) { + case Add: + case Sub: + case Mul: + case Div: + case Mod: + return promotedType; + case Lt: + case Gt: + case Le: + case Ge: + case Equal: + case NotEqual: + case LogicalAnd: + case LogicalOr: + return lMatchingBoolType(promotedType); + case Shl: + case Shr: + case BitAnd: + case BitXor: + case BitOr: + return promotedType; + case Comma: + return arg1->GetType(); + default: + FATAL("logic error in BinaryExpr::GetType()"); + return NULL; + } +} + + +#define FOLD_OP(O, E) \ + case O: \ + for (int i = 0; i < count; ++i) \ + result[i] = (v0[i] E v1[i]); \ + break + +/** Constant fold the binary integer operations that aren't also applicable + to floating-point types. +*/ +template static ConstExpr * +lConstFoldBinIntOp(BinaryExpr::Op op, const T *v0, const T *v1, ConstExpr *carg0) { + T result[ISPC_MAX_NVEC]; + int count = carg0->Count(); + + switch (op) { + FOLD_OP(BinaryExpr::Mod, %); + FOLD_OP(BinaryExpr::Shl, <<); + FOLD_OP(BinaryExpr::Shr, >>); + FOLD_OP(BinaryExpr::BitAnd, &); + FOLD_OP(BinaryExpr::BitXor, ^); + FOLD_OP(BinaryExpr::BitOr, |); + default: + return NULL; + } + + return new ConstExpr(carg0->GetType(), result, carg0->pos); +} + + +/** Constant fold the binary logical ops. + */ +template static ConstExpr * +lConstFoldBinLogicalOp(BinaryExpr::Op op, const T *v0, const T *v1, ConstExpr *carg0) { + bool result[ISPC_MAX_NVEC]; + int count = carg0->Count(); + + switch (op) { + FOLD_OP(BinaryExpr::Lt, <); + FOLD_OP(BinaryExpr::Gt, >); + FOLD_OP(BinaryExpr::Le, <=); + FOLD_OP(BinaryExpr::Ge, >=); + FOLD_OP(BinaryExpr::Equal, ==); + FOLD_OP(BinaryExpr::NotEqual, !=); + FOLD_OP(BinaryExpr::LogicalAnd, &&); + FOLD_OP(BinaryExpr::LogicalOr, ||); + default: + return NULL; + } + + const Type *rType = carg0->GetType()->IsUniformType() ? AtomicType::UniformBool : + AtomicType::VaryingBool; + return new ConstExpr(rType, result, carg0->pos); +} + + +/** Constant fold binary arithmetic ops. + */ +template static ConstExpr * +lConstFoldBinArithOp(BinaryExpr::Op op, const T *v0, const T *v1, ConstExpr *carg0) { + T result[ISPC_MAX_NVEC]; + int count = carg0->Count(); + + switch (op) { + FOLD_OP(BinaryExpr::Add, +); + FOLD_OP(BinaryExpr::Sub, -); + FOLD_OP(BinaryExpr::Mul, *); + FOLD_OP(BinaryExpr::Div, /); + default: + return NULL; + } + + return new ConstExpr(carg0->GetType(), result, carg0->pos); +} + + +/** Constant fold the various boolean binary ops. + */ +static ConstExpr * +lConstFoldBoolBinOp(BinaryExpr::Op op, const bool *v0, const bool *v1, + ConstExpr *carg0) { + bool result[ISPC_MAX_NVEC]; + int count = carg0->Count(); + + switch (op) { + FOLD_OP(BinaryExpr::BitAnd, &); + FOLD_OP(BinaryExpr::BitXor, ^); + FOLD_OP(BinaryExpr::BitOr, |); + FOLD_OP(BinaryExpr::Lt, <); + FOLD_OP(BinaryExpr::Gt, >); + FOLD_OP(BinaryExpr::Le, <=); + FOLD_OP(BinaryExpr::Ge, >=); + FOLD_OP(BinaryExpr::Equal, ==); + FOLD_OP(BinaryExpr::NotEqual, !=); + FOLD_OP(BinaryExpr::LogicalAnd, &&); + FOLD_OP(BinaryExpr::LogicalOr, ||); + default: + return NULL; + } + + return new ConstExpr(carg0->GetType(), result, carg0->pos); +} + + +Expr * +BinaryExpr::Optimize() { + if (arg0 != NULL) + arg0 = arg0->Optimize(); + if (arg1 != NULL) + arg1 = arg1->Optimize(); + + if (!arg0 || !arg1) + return NULL; + + ConstExpr *constArg0 = dynamic_cast(arg0); + ConstExpr *constArg1 = dynamic_cast(arg1); + + if (g->opt.fastMath) { + // optimizations related to division by floats.. + + // transform x / const -> x * (1/const) + if (op == Div && constArg1 != NULL) { + const Type *type1 = constArg1->GetType(); + if (Type::Equal(type1, AtomicType::UniformFloat) || + Type::Equal(type1, AtomicType::VaryingFloat) || + Type::Equal(type1, AtomicType::UniformConstFloat) || + Type::Equal(type1, AtomicType::VaryingConstFloat)) { + float inv[ISPC_MAX_NVEC]; + int count = constArg1->AsFloat(inv); + for (int i = 0; i < count; ++i) + inv[i] = 1.f / inv[i]; + Expr *einv = new ConstExpr(type1, inv, constArg1->pos); + Expr *e = new BinaryExpr(Mul, arg0, einv, pos); + e = e->TypeCheck(); + if (e == NULL) + return NULL; + return e->Optimize(); + } + } + + // transform x / y -> x * rcp(y) + if (op == Div) { + const Type *type1 = arg1->GetType(); + if (Type::Equal(type1, AtomicType::UniformFloat) || + Type::Equal(type1, AtomicType::VaryingFloat) || + Type::Equal(type1, AtomicType::UniformConstFloat) || + Type::Equal(type1, AtomicType::VaryingConstFloat)) { + // Get the symbol for the appropriate builtin + std::vector *rcpFuns = + m->symbolTable->LookupFunction("rcp"); + if (rcpFuns != NULL) { + assert(rcpFuns->size() == 2); + Expr *rcpSymExpr = new FunctionSymbolExpr(rcpFuns, pos); + ExprList *args = new ExprList(arg1, arg1->pos); + Expr *rcpCall = new FunctionCallExpr(rcpSymExpr, args, + arg1->pos, false); + rcpCall = rcpCall->TypeCheck(); + if (rcpCall == NULL) + return NULL; + rcpCall = rcpCall->Optimize(); + if (rcpCall == NULL) + return NULL; + + Expr *ret = new BinaryExpr(Mul, arg0, rcpCall, pos); + ret = ret->TypeCheck(); + if (ret == NULL) + return NULL; + return ret->Optimize(); + } + else + Warning(pos, "rcp() not found from stdlib. Can't apply " + "fast-math rcp optimization."); + } + } + } + + // From here on out, we're just doing constant folding, so if both args + // aren't constants then we're done... + if (constArg0 == NULL || constArg1 == NULL) + return this; + + assert(Type::Equal(arg0->GetType()->GetAsNonConstType(), + arg1->GetType()->GetAsNonConstType())); + const Type *type = arg0->GetType()->GetAsNonConstType(); + if (type == AtomicType::UniformFloat || type == AtomicType::VaryingFloat) { + float v0[ISPC_MAX_NVEC], v1[ISPC_MAX_NVEC]; + constArg0->AsFloat(v0); + constArg1->AsFloat(v1); + ConstExpr *ret; + if ((ret = lConstFoldBinArithOp(op, v0, v1, constArg0)) != NULL) + return ret; + else if ((ret = lConstFoldBinLogicalOp(op, v0, v1, constArg0)) != NULL) + return ret; + else + return this; + } + if (type == AtomicType::UniformDouble || type == AtomicType::VaryingDouble) { + double v0[ISPC_MAX_NVEC], v1[ISPC_MAX_NVEC]; + constArg0->AsDouble(v0); + constArg1->AsDouble(v1); + ConstExpr *ret; + if ((ret = lConstFoldBinArithOp(op, v0, v1, constArg0)) != NULL) + return ret; + else if ((ret = lConstFoldBinLogicalOp(op, v0, v1, constArg0)) != NULL) + return ret; + else + return this; + } + if (type == AtomicType::UniformInt32 || type == AtomicType::VaryingInt32) { + int32_t v0[ISPC_MAX_NVEC], v1[ISPC_MAX_NVEC]; + constArg0->AsInt32(v0); + constArg1->AsInt32(v1); + ConstExpr *ret; + if ((ret = lConstFoldBinArithOp(op, v0, v1, constArg0)) != NULL) + return ret; + else if ((ret = lConstFoldBinIntOp(op, v0, v1, constArg0)) != NULL) + return ret; + else if ((ret = lConstFoldBinLogicalOp(op, v0, v1, constArg0)) != NULL) + return ret; + else + return this; + } + else if (type == AtomicType::UniformUInt32 || type == AtomicType::VaryingUInt32) { + uint32_t v0[ISPC_MAX_NVEC], v1[ISPC_MAX_NVEC]; + constArg0->AsUInt32(v0); + constArg1->AsUInt32(v1); + ConstExpr *ret; + if ((ret = lConstFoldBinArithOp(op, v0, v1, constArg0)) != NULL) + return ret; + else if ((ret = lConstFoldBinIntOp(op, v0, v1, constArg0)) != NULL) + return ret; + else if ((ret = lConstFoldBinLogicalOp(op, v0, v1, constArg0)) != NULL) + return ret; + else + return this; + } + else if (type == AtomicType::UniformBool || type == AtomicType::VaryingBool) { + bool v0[ISPC_MAX_NVEC], v1[ISPC_MAX_NVEC]; + constArg0->AsBool(v0); + constArg1->AsBool(v1); + ConstExpr *ret; + if ((ret = lConstFoldBoolBinOp(op, v0, v1, constArg0)) != NULL) + return ret; + else if ((ret = lConstFoldBinLogicalOp(op, v0, v1, constArg0)) != NULL) + return ret; + else + return this; + } + else + return this; +} + + +Expr * +BinaryExpr::TypeCheck() { + if (arg0 != NULL) + arg0 = arg0->TypeCheck(); + if (arg1 != NULL) + arg1 = arg1->TypeCheck(); + + if (arg0 == NULL || arg1 == NULL) + return NULL; + + const Type *type0 = arg0->GetType(), *type1 = arg1->GetType(); + if (type0 == NULL || type1 == NULL) + return NULL; + + switch (op) { + case Shl: + case Shr: + case BitAnd: + case BitXor: + case BitOr: { + // Must have integer or bool-typed operands for these bit-related + // ops; don't do any implicit conversions from floats here... + if (!type0->IsIntType() && !type0->IsBoolType()) { + Error(arg0->pos, "First operand to binary operator \"%s\" must be " + "an integer or bool.", lOpString(op)); + return NULL; + } + if (!type1->IsIntType() && !type1->IsBoolType()) { + Error(arg1->pos, "Second operand to binary operator \"%s\" must be " + "an integer or bool.", lOpString(op)); + return NULL; + } + + const Type *promotedType = Type::MoreGeneralType(type0, type1, arg0->pos, + "binary bit op"); + if (promotedType == NULL) + return NULL; + + arg0 = arg0->TypeConv(promotedType, "binary bit op"); + arg1 = arg1->TypeConv(promotedType, "binary bit op"); + if (arg0 == NULL || arg1 == NULL) + return NULL; + return this; + } + case Add: + case Sub: + case Mul: + case Div: + case Mod: + case Lt: + case Gt: + case Le: + case Ge: { + // Must be numeric type for these. (And mod is special--can't be float) + if (!type0->IsNumericType() || (op == Mod && type0->IsFloatType())) { + Error(arg0->pos, "First operand to binary operator \"%s\" is of " + "invalid type \"%s\".", lOpString(op), + type0->GetString().c_str()); + return NULL; + } + if (!type1->IsNumericType() || (op == Mod && type1->IsFloatType())) { + Error(arg1->pos, "First operand to binary operator \"%s\" is of " + "invalid type \"%s\".", lOpString(op), + type1->GetString().c_str()); + return NULL; + } + + const Type *promotedType = Type::MoreGeneralType(type0, type1, arg0->pos, + lOpString(op)); + if (promotedType == NULL) + return NULL; + + arg0 = arg0->TypeConv(promotedType, lOpString(op)); + arg1 = arg1->TypeConv(promotedType, lOpString(op)); + if (!arg0 || !arg1) + return NULL; + return this; + } + case Equal: + case NotEqual: { + if (!type0->IsBoolType() && !type0->IsNumericType()) { + Error(arg0->pos, + "First operand to equality operator \"%s\" is of " + "non-comparable type \"%s\".", lOpString(op), + type0->GetString().c_str()); + return NULL; + } + if (!type1->IsBoolType() && !type1->IsNumericType()) { + Error(arg1->pos, + "Second operand to equality operator \"%s\" is of " + "non-comparable type \"%s\".", lOpString(op), + type1->GetString().c_str()); + return NULL; + } + + const Type *promotedType = + Type::MoreGeneralType(type0, type1, arg0->pos, lOpString(op)); + if (promotedType == NULL) + return NULL; + + arg0 = arg0->TypeConv(promotedType, lOpString(op)); + arg1 = arg1->TypeConv(promotedType, lOpString(op)); + if (!arg0 || !arg1) + return NULL; + return this; + } + case LogicalAnd: + case LogicalOr: { + // We need to type convert to a boolean type of the more general + // shape of the two types + bool isUniform = (type0->IsUniformType() && type1->IsUniformType()); + const AtomicType *boolType = isUniform ? AtomicType::UniformBool : + AtomicType::VaryingBool; + const Type *destType = NULL; + const VectorType *vtype0 = dynamic_cast(type0); + const VectorType *vtype1 = dynamic_cast(type1); + if (vtype0 && vtype1) { + int sz0 = vtype0->GetElementCount(), sz1 = vtype1->GetElementCount(); + if (sz0 != sz1) { + Error(pos, "Can't do logical operation \"%s\" between vector types of " + "different sizes (%d vs. %d).", lOpString(op), sz0, sz1); + return NULL; + } + destType = new VectorType(boolType, sz0); + } + else if (vtype0) + destType = new VectorType(boolType, vtype0->GetElementCount()); + else if (vtype1) + destType = new VectorType(boolType, vtype1->GetElementCount()); + else + destType = boolType; + + arg0 = arg0->TypeConv(destType, lOpString(op)); + arg1 = arg1->TypeConv(destType, lOpString(op)); + if (!arg0 || !arg1) + return NULL; + return this; + } + case Comma: + return this; + default: + FATAL("logic error"); + return NULL; + } +} + + +void +BinaryExpr::Print() const { + if (!arg0 || !arg1 || !GetType()) + return; + + printf("[ %s ] (", GetType()->GetString().c_str()); + arg0->Print(); + printf(" %s ", lOpString(op)); + arg1->Print(); + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// AssignExpr + + +/** Store the result of an assignment to the given location. + */ +static void +lStoreAssignResult(llvm::Value *rv, llvm::Value *lv, const Type *type, + FunctionEmitContext *ctx, Symbol *baseSym) { + assert(baseSym->varyingCFDepth <= ctx->VaryingCFDepth()); + if (!g->opt.disableMaskedStoreToStore && + baseSym->varyingCFDepth == ctx->VaryingCFDepth() && + baseSym->isStatic == false && + dynamic_cast(baseSym->type) == NULL) { + // If the variable is declared at the same varying control flow + // depth as where it's being assigned, then we don't need to do any + // masking but can just do the assignment as if all the lanes were + // known to be on. While this may lead to random/garbage values + // written into the lanes that are off, by definition they will + // never be accessed, since those lanes aren't executing, and won't + // be executing at this scope or any other one before the variable + // goes out of scope. + ctx->StoreInst(rv, lv, LLVMMaskAllOn, type); + } + else + ctx->StoreInst(rv, lv, ctx->GetMask(), type); +} + + +/** Emit code to do an "assignment + operation" operator, e.g. "+=". + */ +static llvm::Value * +lEmitOpAssign(AssignExpr::Op op, Expr *arg0, Expr *arg1, const Type *type, + Symbol *baseSym, SourcePos pos, FunctionEmitContext *ctx) { + llvm::Value *lv = arg0->GetLValue(ctx); + if (!lv) { + // FIXME: I think this test is unnecessary and that this case + // should be caught during typechecking + Error(pos, "Can't assign to left-hand side of expression."); + return NULL; + } + + // Get the value on the right-hand side of the assignment+operation + // operator and load the current value on the left-hand side. + llvm::Value *rvalue = arg1->GetValue(ctx); + ctx->SetDebugPos(pos); + llvm::Value *oldLHS = ctx->LoadInst(lv, type, "opassign_load"); + + // Map the operator to the corresponding BinaryExpr::Op operator + BinaryExpr::Op basicop; + switch (op) { + case AssignExpr::MulAssign: basicop = BinaryExpr::Mul; break; + case AssignExpr::DivAssign: basicop = BinaryExpr::Div; break; + case AssignExpr::ModAssign: basicop = BinaryExpr::Mod; break; + case AssignExpr::AddAssign: basicop = BinaryExpr::Add; break; + case AssignExpr::SubAssign: basicop = BinaryExpr::Sub; break; + case AssignExpr::ShlAssign: basicop = BinaryExpr::Shl; break; + case AssignExpr::ShrAssign: basicop = BinaryExpr::Shr; break; + case AssignExpr::AndAssign: basicop = BinaryExpr::BitAnd; break; + case AssignExpr::XorAssign: basicop = BinaryExpr::BitXor; break; + case AssignExpr::OrAssign: basicop = BinaryExpr::BitOr; break; + default: + FATAL("logic error in lEmitOpAssign()"); + return NULL; + } + + // Emit the code to compute the new value + llvm::Value *newValue = NULL; + switch (op) { + case AssignExpr::MulAssign: + case AssignExpr::DivAssign: + case AssignExpr::ModAssign: + case AssignExpr::AddAssign: + case AssignExpr::SubAssign: + newValue = lEmitBinaryArith(basicop, oldLHS, rvalue, type, ctx, pos); + break; + case AssignExpr::ShlAssign: + case AssignExpr::ShrAssign: + case AssignExpr::AndAssign: + case AssignExpr::XorAssign: + case AssignExpr::OrAssign: + newValue = lEmitBinaryBitOp(basicop, oldLHS, rvalue, ctx); + break; + default: + FATAL("logic error in lEmitOpAssign"); + return NULL; + } + + // And store the result back to the lvalue. + lStoreAssignResult(newValue, lv, type, ctx, baseSym); + + return newValue; +} + + +AssignExpr::AssignExpr(AssignExpr::Op o, Expr *a, Expr *b, SourcePos p) + : Expr(p), op(o) { + lvalue = a; + rvalue = b; +} + + +llvm::Value * +AssignExpr::GetValue(FunctionEmitContext *ctx) const { + const Type *type = NULL; + if (lvalue == NULL || rvalue == NULL || (type = GetType()) == NULL) + return NULL; + + ctx->SetDebugPos(pos); + +#if 0 + if (ctx->VaryingCFDepth() > 0 && type->IsUniformType()) + Warning(pos, "Modifying \"uniform\" value under \"varying\" control flow. Beware."); +#endif + + Symbol *baseSym = lvalue->GetBaseSymbol(); + if (!baseSym) { + // FIXME: I think that this check also is unnecessary and that this + // case should be covered during type checking. + Error(pos, "Left hand side of assignment statement can't be assigned to."); + return NULL; + } + + switch (op) { + case Assign: { + llvm::Value *lv = lvalue->GetLValue(ctx); + if (!lv) { + // FIXME: another, I believe, now unnecessary test? + Error(lvalue->pos, "Can't assign to left-hand side of expression."); + return NULL; + } + + llvm::Value *rv = rvalue->GetValue(ctx); + if (rv == NULL) + return NULL; + + ctx->SetDebugPos(pos); + + // Warn if we're assigning a large array + const ArrayType *at = dynamic_cast(type); + if (at && at->TotalElementCount() > 4) + PerformanceWarning(pos, "Copying %d element array in assignment expression.", + at->TotalElementCount()); + +#if 0 + const StructType *st = dynamic_cast(type); + if (st != NULL) { + bool anyUniform = false; + for (int i = 0; i < st->NumElements(); ++i) { + if (st->GetMemberType(i)->IsUniformType()) + anyUniform = true; + } + + if (anyUniform && ctx->VaryingCFDepth() > 0) + Warning(pos, "Modifying \"uniform\" value under \"varying\" " + "control flow. Beware."); + } +#endif + + lStoreAssignResult(rv, lv, type, ctx, baseSym); + + return rv; + } + case MulAssign: + case DivAssign: + case ModAssign: + case AddAssign: + case SubAssign: + case ShlAssign: + case ShrAssign: + case AndAssign: + case XorAssign: + case OrAssign: { + // This should be caught during type checking + assert(!dynamic_cast(type) && + !dynamic_cast(type)); + return lEmitOpAssign(op, lvalue, rvalue, type, baseSym, pos, ctx); + } + default: + FATAL("logic error in AssignExpr::GetValue()"); + return NULL; + } +} + + +Expr * +AssignExpr::Optimize() { + if (lvalue) + lvalue = lvalue->Optimize(); + if (rvalue) + rvalue = rvalue->Optimize(); + if (lvalue == NULL || rvalue == NULL) + return NULL; + + return this; +} + + +const Type * +AssignExpr::GetType() const { + return lvalue ? lvalue->GetType() : NULL; +} + + +Expr * +AssignExpr::TypeCheck() { + bool lvalueIsReference = lvalue && + dynamic_cast(lvalue->GetType()) != NULL; + bool rvalueIsReference = rvalue && + dynamic_cast(rvalue->GetType()) != NULL; + + // hack to allow asigning array references e.g. in a struct... + if (lvalueIsReference && + !(rvalueIsReference && + dynamic_cast(rvalue->GetType()->GetReferenceTarget()))) + lvalue = new DereferenceExpr(lvalue, lvalue->pos); + + if (lvalue != NULL) + lvalue = lvalue->TypeCheck(); + if (rvalue != NULL) + rvalue = rvalue->TypeCheck(); + if (rvalue != NULL && lvalue != NULL) + rvalue = rvalue->TypeConv(lvalue->GetType(), "operator ="); + if (rvalue == NULL || lvalue == NULL) + return NULL; + + if (lvalue->GetType()->IsConstType()) { + Error(pos, "Can't assign to type \"%s\" on left-hand size of " + "expression.", lvalue->GetType()->GetString().c_str()); + return NULL; + } + + return this; +} + + +void +AssignExpr::Print() const { + if (!lvalue || !rvalue || !GetType()) + return; + + printf("[%s] assign (", GetType()->GetString().c_str()); + lvalue->Print(); + printf(" "); + if (op == Assign) printf("="); + if (op == MulAssign) printf("*="); + if (op == DivAssign) printf("/="); + if (op == ModAssign) printf("%%="); + if (op == AddAssign) printf("+="); + if (op == SubAssign) printf("-="); + if (op == ShlAssign) printf("<<="); + if (op == ShrAssign) printf(">>="); + if (op == AndAssign) printf("&="); + if (op == XorAssign) printf("^="); + if (op == OrAssign) printf("|="); + printf(" "); + rvalue->Print(); + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// SelectExpr + +SelectExpr::SelectExpr(Expr *t, Expr *e1, Expr *e2, SourcePos p) + : Expr(p) { + test = t; + expr1 = e1; + expr2 = e2; +} + + +/** Emit code to select between two varying values based on a varying test + value. + */ +static llvm::Value * +lEmitVaryingSelect(FunctionEmitContext *ctx, llvm::Value *test, + llvm::Value *expr1, llvm::Value *expr2, + const Type *type) { + llvm::Value *resultPtr = ctx->AllocaInst(expr1->getType(), "selectexpr_tmp"); + // Don't need to worry about masking here + ctx->StoreInst(expr2, resultPtr); + // Use masking to conditionally store the expr1 values + ctx->StoreInst(expr1, resultPtr, test, type); + return ctx->LoadInst(resultPtr, type, "selectexpr_final"); +} + + +llvm::Value * +SelectExpr::GetValue(FunctionEmitContext *ctx) const { + if (!expr1 || !expr2 || !test) + return NULL; + + ctx->SetDebugPos(pos); + + const Type *testType = test->GetType()->GetAsNonConstType(); + // This should be taken care of during typechecking + assert(testType->GetBaseType() == AtomicType::UniformBool || + testType->GetBaseType() == AtomicType::VaryingBool); + + const Type *type = expr1->GetType(); + // Type checking should also make sure this is the case + assert(Type::Equal(type->GetAsNonConstType(), + expr2->GetType()->GetAsNonConstType())); + + if (testType == AtomicType::UniformBool) { + // Simple case of a single uniform bool test expression; we just + // want one of the two expressions. In this case, we can be + // careful to evaluate just the one of the expressions that we need + // the value of so that if the other one has side-effects or + // accesses invalid memory, it doesn't execute. + llvm::Value *testVal = test->GetValue(ctx); + llvm::BasicBlock *testTrue = ctx->CreateBasicBlock("select_true"); + llvm::BasicBlock *testFalse = ctx->CreateBasicBlock("select_false"); + llvm::BasicBlock *testDone = ctx->CreateBasicBlock("select_done"); + ctx->BranchInst(testTrue, testFalse, testVal); + + ctx->SetCurrentBasicBlock(testTrue); + llvm::Value *expr1Val = expr1->GetValue(ctx); + // Note that truePred won't be necessarily equal to testTrue, in + // case the expr1->GetValue() call changes the current basic block. + llvm::BasicBlock *truePred = ctx->GetCurrentBasicBlock(); + ctx->BranchInst(testDone); + + ctx->SetCurrentBasicBlock(testFalse); + llvm::Value *expr2Val = expr2->GetValue(ctx); + // See comment above truePred for why we can't just assume we're in + // the testFalse basic block here. + llvm::BasicBlock *falsePred = ctx->GetCurrentBasicBlock(); + ctx->BranchInst(testDone); + + ctx->SetCurrentBasicBlock(testDone); + llvm::PHINode *ret = ctx->PhiNode(expr1Val->getType(), 2, "select"); + ret->addIncoming(expr1Val, truePred); + ret->addIncoming(expr2Val, falsePred); + return ret; + } + else if (dynamic_cast(testType) == NULL) { + // if the test is a varying bool type, then evaluate both of the + // value expressions with the mask set appropriately and then do an + // element-wise select to get the result + llvm::Value *testVal = test->GetValue(ctx); + assert(testVal->getType() == LLVMTypes::MaskType); + llvm::Value *oldMask = ctx->GetMask(); + ctx->MaskAnd(oldMask, testVal); + llvm::Value *expr1Val = expr1->GetValue(ctx); + ctx->MaskAndNot(oldMask, testVal); + llvm::Value *expr2Val = expr2->GetValue(ctx); + ctx->SetMask(oldMask); + + return lEmitVaryingSelect(ctx, testVal, expr1Val, expr2Val, type); + } + else { + // FIXME? Short-circuiting doesn't work in the case of + // vector-valued test expressions. (We could also just prohibit + // these and place the issue in the user's hands...) + llvm::Value *testVal = test->GetValue(ctx); + llvm::Value *expr1Val = expr1->GetValue(ctx); + llvm::Value *expr2Val = expr2->GetValue(ctx); + + ctx->SetDebugPos(pos); + const VectorType *vt = dynamic_cast(type); + // Things that typechecking should have caught + assert(vt != NULL); + assert(dynamic_cast(testType) != NULL && + (dynamic_cast(testType)->GetElementCount() == + vt->GetElementCount())); + + // Do an element-wise select + llvm::Value *result = llvm::UndefValue::get(type->LLVMType(g->ctx)); + for (int i = 0; i < vt->GetElementCount(); ++i) { + llvm::Value *ti = ctx->ExtractInst(testVal, i, ""); + llvm::Value *e1i = ctx->ExtractInst(expr1Val, i, ""); + llvm::Value *e2i = ctx->ExtractInst(expr2Val, i, ""); + llvm::Value *sel = NULL; + if (testType->IsUniformType()) + sel = ctx->SelectInst(ti, e1i, e2i); + else + sel = lEmitVaryingSelect(ctx, ti, e1i, e2i, vt->GetElementType()); + result = ctx->InsertInst(result, sel, i, ""); + } + return result; + } +} + + +const Type * +SelectExpr::GetType() const { + if (!test || !expr1 || !expr2) + return NULL; + + const Type *testType = test->GetType(); + const Type *expr1Type = expr1->GetType(); + const Type *expr2Type = expr2->GetType(); + + if (!testType || !expr1Type || !expr2Type) + return NULL; + + bool becomesVarying = (testType->IsVaryingType() || expr1Type->IsVaryingType() || + expr2Type->IsVaryingType()); + // if expr1 and expr2 have different vector sizes, typechecking should fail... + int testVecSize = dynamic_cast(testType) != NULL ? + dynamic_cast(testType)->GetElementCount() : 0; + int expr1VecSize = dynamic_cast(expr1Type) != NULL ? + dynamic_cast(expr1Type)->GetElementCount() : 0; +//CO int expr2VecSize = dynamic_cast(expr2Type) != NULL ? +//CO dynamic_cast(expr2Type)->GetElementCount() : 0; +//CO assert(testVecSize == expr1VecSize && expr1VecSize == expr2VecSize); + // REMOVE? old test + assert(!(testVecSize != 0 && expr1VecSize != 0 && testVecSize != expr1VecSize)); + + int vectorSize = std::max(testVecSize, expr1VecSize); + return Type::MoreGeneralType(expr1Type, expr2Type, pos, "select expression", + becomesVarying, vectorSize); +} + + +Expr * +SelectExpr::Optimize() { + if (test) + test = test->Optimize(); + if (expr1) + expr1 = expr1->Optimize(); + if (expr2) + expr2 = expr2->Optimize(); + if (test == NULL || expr1 == NULL || expr2 == NULL) + return NULL; + + return this; +} + + +Expr * +SelectExpr::TypeCheck() { + if (test) + test = test->TypeCheck(); + if (expr1) + expr1 = expr1->TypeCheck(); + if (expr2) + expr2 = expr2->TypeCheck(); + + if (test == NULL || expr1 == NULL || expr2 == NULL) + return NULL; + + const Type *type1 = expr1->GetType(), *type2 = expr2->GetType(); + if (!type1 || !type2) + return NULL; + + if (dynamic_cast(type1)) { + Error(pos, "Array type \"%s\" can't be used in select expression", + type1->GetString().c_str()); + return NULL; + } + if (dynamic_cast(type2)) { + Error(pos, "Array type \"%s\" can't be used in select expression", + type2->GetString().c_str()); + return NULL; + } + + const Type *testType = test->GetType(); + if (testType == NULL) + return NULL; + test = test->TypeConv(lMatchingBoolType(testType), "select"); + if (testType == NULL) + return NULL; + testType = test->GetType(); + + int testVecSize = dynamic_cast(testType) ? + dynamic_cast(testType)->GetElementCount() : 0; + const Type *promotedType = Type::MoreGeneralType(type1, type2, pos, "select expression", + testType->IsVaryingType(), testVecSize); + if (promotedType == NULL) + return NULL; + + expr1 = expr1->TypeConv(promotedType, "select"); + expr2 = expr2->TypeConv(promotedType, "select"); + if (!expr1 || !expr2) + return NULL; + + return this; +} + + +void +SelectExpr::Print() const { + if (!test || !expr1 || !expr2 || !GetType()) + return; + + printf("[%s] (", GetType()->GetString().c_str()); + test->Print(); + printf(" ? "); + expr1->Print(); + printf(" : "); + expr2->Print(); + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// FunctionCallExpr + +static void +lPrintFunctionOverloads(const std::vector &matches) { + for (unsigned int i = 0; i < matches.size(); ++i) { + const FunctionType *t = dynamic_cast(matches[i]->type); + assert(t != NULL); + fprintf(stderr, "\t%s\n", t->GetString().c_str()); + } +} + + +/** Helper function used for function overload resolution: returns true if + the call argument's type exactly matches the function argument type + (modulo a conversion to a const type if needed). + */ +static bool +lExactMatch(Expr *callArg, const Type *funcArgType) { + const Type *callType = callArg->GetType(); + if (dynamic_cast(callType) == NULL) + callType = callType->GetAsNonConstType(); + + return Type::Equal(callType, funcArgType); +} + +/** Helper function used for function overload resolution: returns true if + the call argument type and the function argument type match, modulo + conversion to a reference type if needed. + */ +static bool +lMatchIgnoringReferences(Expr *callArg, const Type *funcArgType) { + const Type *callType = callArg->GetType()->GetReferenceTarget(); + if (funcArgType->IsConstType()) + callType = callType->GetAsConstType(); + + return Type::Equal(callType, + funcArgType->GetReferenceTarget()); +} + + +/** Helper function used for function overload resolution: returns true if + the call argument type and the function argument type match if we only + do a uniform -> varying type conversion but otherwise have exactly the + same type. + */ +static bool +lMatchIgnoringUniform(Expr *callArg, const Type *funcArgType) { + const Type *callType = callArg->GetType(); + if (dynamic_cast(callType) == NULL) + callType = callType->GetAsNonConstType(); + + if (Type::Equal(callType, funcArgType)) + return true; + + return (callType->IsUniformType() && + funcArgType->IsVaryingType() && + Type::Equal(callType->GetAsVaryingType(), funcArgType)); +} + + +/** Helper function used for function overload resolution: returns true if + we can type convert from the call argument type to the function + argument type, but without doing a uniform -> varying conversion. + */ +static bool +lMatchWithTypeConvSameVariability(Expr *callArg, const Type *funcArgType) { + Expr *te = callArg->TypeConv(funcArgType, + "function call argument", true); + return (te != NULL && + te->GetType()->IsUniformType() == callArg->GetType()->IsUniformType()); +} + + +/** Helper function used for function overload resolution: returns true if + there is any type conversino that gets us from the caller argument type + to the function argument type. + */ +static bool +lMatchWithTypeConv(Expr *callArg, const Type *funcArgType) { + Expr *te = callArg->TypeConv(funcArgType, + "function call argument", true); + return (te != NULL); +} + + +/** See if we can find a single function from the set of overload options + based on the predicate function passed in. Returns true if no more + tries should be made to find a match, either due to success from + finding a single overloaded function that matches or failure due to + finding multiple ambiguous matches. + */ +bool +FunctionCallExpr::tryResolve(bool (*matchFunc)(Expr *, const Type *)) { + FunctionSymbolExpr *fse = dynamic_cast(func); + if (!fse) + // error will be issued later if not calling an actual function + return false; + + const char *funName = fse->candidateFunctions->front()->name.c_str(); + std::vector &callArgs = args->exprs; + + std::vector matches; + std::vector::iterator iter; + for (iter = fse->candidateFunctions->begin(); + iter != fse->candidateFunctions->end(); ++iter) { + // Loop over the set of candidate functions and try each one + Symbol *candidateFunction = *iter; + const FunctionType *ft = + dynamic_cast(candidateFunction->type); + assert(ft != NULL); + const std::vector &candArgTypes = ft->GetArgumentTypes(); + const std::vector &argumentDefaults = ft->GetArgumentDefaults(); + + // There's no way to match if the caller is passing more arguments + // than this function instance takes. + if (callArgs.size() > candArgTypes.size()) + continue; + + unsigned int i; + // Note that we're looping over the caller arguments, not the + // function arguments; it may be ok to have more arguments to the + // function than are passed, if the function has default argument + // values. This case is handled below. + for (i = 0; i < callArgs.size(); ++i) { + // This may happen if there's an error earlier in compilation. + // It's kind of a silly to redundantly discover this for each + // potential match versus detecting this earlier in the + // matching process and just giving up. + if (!callArgs[i] || !callArgs[i]->GetType() || !candArgTypes[i]) + return false; + + // See if this caller argument matches the type of the + // corresponding function argument according to the given + // predicate function. If not, break out and stop trying. + if (!matchFunc(callArgs[i], candArgTypes[i])) + break; + } + if (i == callArgs.size()) { + // All of the arguments matched! + if (i == candArgTypes.size()) + // And we have exactly as many arguments as the function + // wants, so we're done. + matches.push_back(candidateFunction); + else if (i < candArgTypes.size() && argumentDefaults[i] != NULL) + // Otherwise we can still make it if there are default + // arguments for the rest of the arguments! Because in + // Module::AddFunction() we have verified that once the + // default arguments start, then all of the following ones + // have them as well. Therefore, we just need to check if + // the arg we stopped at has a default value and we're + // done. + matches.push_back(candidateFunction); + // otherwise, we don't have a match + } + } + + if (matches.size() == 0) + return false; + else if (matches.size() == 1) { + fse->matchingFunc = matches[0]; + + // fill in any function defaults required + const FunctionType *ft = + dynamic_cast(fse->matchingFunc->type); + assert(ft != NULL); + const std::vector &argumentDefaults = ft->GetArgumentDefaults(); + const std::vector &argTypes = ft->GetArgumentTypes(); + for (unsigned int i = callArgs.size(); i < argTypes.size(); ++i) { + assert(argumentDefaults[i] != NULL); + args->exprs.push_back(argumentDefaults[i]); + } + return true; + } + else { + Error(fse->pos, "Multiple overloaded instances of function \"%s\" matched.", + funName); + lPrintFunctionOverloads(matches); + // Stop trying to find more matches after failure + return true; + } +} + + +void +FunctionCallExpr::resolveFunctionOverloads() { + FunctionSymbolExpr *fse = dynamic_cast(func); + if (!fse) + // error will be issued later if not calling an actual function + return; + assert(args); + + // Try to find the best overload for the function... + + // Is there an exact match that doesn't require any argument type + // conversion at all? + if (tryResolve(lExactMatch)) + return; + + // Try to find a single match ignoring references + if (tryResolve(lMatchIgnoringReferences)) + return; + + // TODO: next, try to find an exact match via type promotion--i.e. char + // -> int, etc--things that don't lose data + + // Next try to see if there's a match via just uniform -> varying + // promotions. TODO: look for one with a minimal number of them? + if (tryResolve(lMatchIgnoringUniform)) + return; + + // Try to find a match via type conversion, but don't change + // unif->varying + if (tryResolve(lMatchWithTypeConvSameVariability)) + return; + + // Last chance: try to find a match via arbitrary type conversion. + if (tryResolve(lMatchWithTypeConv)) + return; + + // failure :-( + const char *funName = fse->candidateFunctions->front()->name.c_str(); + Error(pos, "Unable to find matching overload for call to function \"%s\". " + "Candidates are:", funName); + lPrintFunctionOverloads(*fse->candidateFunctions); + fprintf(stderr, "Passed types: %s(", funName); + for (unsigned int i = 0; i < args->exprs.size(); ++i) { + const Type *t = args->exprs[i]->GetType(); + if (t) + fprintf(stderr, "%s%s", t->GetString().c_str(), + (i < args->exprs.size()-1) ? ", " : ")\n"); + else + fprintf(stderr, "(unknown type)%s", + (i < args->exprs.size()-1) ? ", " : ")\n"); + } +} + + +FunctionCallExpr::FunctionCallExpr(Expr *f, ExprList *a, SourcePos p, bool il) + : Expr(p) { + func = f; + args = a; + isLaunch = il; + + resolveFunctionOverloads(); +} + + +/** Starting from the function initialFunction, we're calling into + calledFunc. The question is: is this a recursive call back to + initialFunc? If it definitely is or if it may be, then return true. + Return false if it definitely is not. + */ +static bool +lMayBeRecursiveCall(llvm::Function *calledFunc, + llvm::Function *initialFunc, + std::set &seenFuncs) { + // Easy case: intrinsics aren't going to call functions themselves + if (calledFunc->isIntrinsic()) + return false; + + std::string name = calledFunc->getName(); + if (name.size() > 2 && name[0] == '_' && name[1] == '_') + // builtin stdlib function; none of these are recursive... + return false; + + if (calledFunc->isDeclaration()) + // There's visibility into what the called function does without a + // definition, so we have to be conservative + return true; + + if (calledFunc == initialFunc) + // hello recursive call + return true; + + // Otherwise iterate over all of the instructions in the function. If + // any of them is a function call then check recursively.. + llvm::inst_iterator iter; + for (iter = llvm::inst_begin(calledFunc); + iter != llvm::inst_end(calledFunc); ++iter) { + llvm::Instruction *inst = &*iter; + llvm::CallInst *ci = llvm::dyn_cast(inst); + if (ci != NULL) { + llvm::Function *nextCalledFunc = ci->getCalledFunction(); + // Don't repeatedly test functions we've seen before + if (seenFuncs.find(nextCalledFunc) == seenFuncs.end()) { + seenFuncs.insert(nextCalledFunc); + if (lMayBeRecursiveCall(nextCalledFunc, initialFunc, + seenFuncs)) + return true; + } + } + } + return false; +} + + +llvm::Value * +FunctionCallExpr::GetValue(FunctionEmitContext *ctx) const { + if (!func || !args) + return NULL; + + ctx->SetDebugPos(pos); + + FunctionSymbolExpr *fse = dynamic_cast(func); + if (!fse) { + Error(pos, "Invalid function name for function call."); + return NULL; + } + + if (!fse->matchingFunc) + // no overload match was found, get out of here.. + return NULL; + + Symbol *funSym = fse->matchingFunc; + llvm::Function *callee = funSym->function; + if (!callee) { + Error(pos, "Symbol \"%s\" is not a function.", funSym->name.c_str()); + return NULL; + } + + const FunctionType *ft = dynamic_cast(funSym->type); + assert(ft != NULL); + bool isVoidFunc = (ft->GetReturnType() == AtomicType::Void); + + // Automatically convert function call args to references if needed. + // FIXME: this should move to the TypeCheck() method... (but the + // GetLValue call below needs a FunctionEmitContext, which is + // problematic...) + std::vector callargs = args->exprs; + const std::vector &argTypes = ft->GetArgumentTypes(); + bool err = false; + for (unsigned int i = 0; i < callargs.size(); ++i) { + Expr *argExpr = callargs[i]; + if (!argExpr) + continue; + + // All arrays should already have been converted to reference types + assert(dynamic_cast(argTypes[i]) == NULL); + + if (dynamic_cast(argTypes[i])) { + if (!dynamic_cast(argExpr->GetType())) { + // The function wants a reference type but the argument + // being passed isn't already a reference. + if (argExpr->GetLValue(ctx) == NULL) { + // If it doesn't have an lvalue, then we can't make it + // a reference, so issue an error. + // FIXME: for const reference parameters, we could + // store the expr's value to alloca'ed memory and then + // pass a reference to that... + Error(pos, "Can't pass non-lvalue as \"reference\" parameter \"%s\" " + "to function \"%s\".", ft->GetArgumentName(i).c_str(), + funSym->name.c_str()); + err = true; + } + else + argExpr = new ReferenceExpr(argExpr, argExpr->pos); + } + } + + // Do whatever type conversion is needed + argExpr = argExpr->TypeConv(argTypes[i], "function call argument"); + // The function overload resolution code should have ensured that + // we can successfully do any type conversions needed here. + assert(argExpr != NULL); + callargs[i] = argExpr; + } + if (err) + return NULL; + + // Now evaluate the values of all of the parameters being passed. We + // need to evaluate these first here, since their GetValue() calls may + // change the current basic block (e.g. if one of these is itself a + // function call expr...); we need to basic blocks to stay consistent + // below when we emit the code that does the actual funciton call. + std::vector argVals; + std::vector storedArgValPtrs, argValLValues; + for (unsigned int i = 0; i < callargs.size(); ++i) { + Expr *argExpr = callargs[i]; + if (!argExpr) + // give up; we hit an error earlier + return NULL; + + llvm::Value *argValue = argExpr->GetValue(ctx); + if (!argValue) + // something went wrong in evaluating the argument's + // expression, so give up on this + return NULL; + + if (dynamic_cast(argTypes[i]) && + !llvm::isa(argValue->getType())) { + assert(llvm::isa(argValue->getType())); + // if the parameter is a reference and the lvalue needs a + // gather to pull it together, then do the gather here and + // store the result to local memory, so that we can pass the + // single pointer to the local memory that is needed for the + // reference. Below, we'll copy the result back to the varying + // lvalue pointer we have here. (== pass by value/result) + const ReferenceType *rt = + dynamic_cast(argExpr->GetType()); + assert(rt != NULL); + const Type *type = rt->GetReferenceTarget(); + + llvm::Value *ptr = ctx->AllocaInst(type->LLVMType(g->ctx), "arg"); + llvm::Value *val = ctx->LoadInst(argValue, type); + ctx->StoreInst(val, ptr); + storedArgValPtrs.push_back(ptr); + argValLValues.push_back(argValue); + argVals.push_back(ptr); + } + else { + argVals.push_back(argValue); + storedArgValPtrs.push_back(NULL); + argValLValues.push_back(NULL); + } + } + + // We sometimes need to check to see if the mask is all off here; + // specifically, if the mask is all off and we call a recursive + // function, then we will probably have an unsesirable infinite loop. + ctx->SetDebugPos(pos); + llvm::BasicBlock *bDoCall = ctx->CreateBasicBlock("funcall_mask_ok"); + llvm::BasicBlock *bSkip = ctx->CreateBasicBlock("funcall_mask_off"); + llvm::BasicBlock *bAfter = ctx->CreateBasicBlock("after_funcall"); + llvm::Function *currentFunc = ctx->GetCurrentBasicBlock()->getParent(); + + // If we need to check the mask (it may be a recursive call, possibly + // transitively), or we're launching a task, which is expensive and + // thus probably always worth checking, then use the mask to choose + // whether to go to the bDoCallBlock or the bSkip block + std::set seenFuncs; + seenFuncs.insert(currentFunc); + if (ft->isTask || lMayBeRecursiveCall(callee, currentFunc, seenFuncs)) { + Debug(pos, "Checking mask before function call \"%s\".", funSym->name.c_str()); + ctx->BranchIfMaskAny(bDoCall, bSkip); + } + else + // If we don't need to check the mask, then always to the call; + // just jump to bDoCall + ctx->BranchInst(bDoCall); + + // And the bSkip block just jumps immediately to bAfter. So why do we + // need it? So the phi node below can easily tell what paths are + // going into it + ctx->SetCurrentBasicBlock(bSkip); + ctx->BranchInst(bAfter); + + // Emit the code to do the function call + ctx->SetCurrentBasicBlock(bDoCall); + + llvm::Value *retVal = NULL; + ctx->SetDebugPos(pos); + if (ft->isTask) + ctx->LaunchInst(callee, argVals); + else { + // Most of the time, the mask is passed as the last argument. this + // isn't the case for things like SSE intrinsics and extern "C" + // functions from the application. + assert(callargs.size() + 1 == callee->arg_size() || + callargs.size() == callee->arg_size()); + + if (callargs.size() + 1 == callee->arg_size()) + argVals.push_back(ctx->GetMask()); + + retVal = ctx->CallInst(callee, argVals, isVoidFunc ? "" : "calltmp"); + } + + // For anything we had to do as pass by value/result, copy the + // corresponding reference values back out + for (unsigned int i = 0; i < storedArgValPtrs.size(); ++i) { + llvm::Value *ptr = storedArgValPtrs[i]; + if (ptr != NULL) { + const ReferenceType *rt = + dynamic_cast(callargs[i]->GetType()); + assert(rt != NULL); + llvm::Value *load = ctx->LoadInst(ptr, rt->GetReferenceTarget(), + "load_ref"); + // FIXME: apply the "don't do blending" optimization here if + // appropriate? + ctx->StoreInst(load, argValLValues[i], ctx->GetMask(), + rt->GetReferenceTarget()); + } + } + + // And jump out to the 'after funciton call' basic block + ctx->BranchInst(bAfter); + ctx->SetCurrentBasicBlock(bAfter); + + if (isVoidFunc) + return NULL; + + // The return value for the non-void case is either undefined or the + // function return value, depending on whether we actually ran the code + // path that called the function or not. + const llvm::Type *lrType = ft->GetReturnType()->LLVMType(g->ctx); + llvm::PHINode *ret = ctx->PhiNode(lrType, 2, "fun_ret"); + assert(retVal != NULL); + ret->addIncoming(llvm::UndefValue::get(lrType), bSkip); + ret->addIncoming(retVal, bDoCall); + return ret; +} + + +const Type * +FunctionCallExpr::GetType() const { + FunctionSymbolExpr *fse = dynamic_cast(func); + if (fse && fse->matchingFunc) { + const FunctionType *ft = + dynamic_cast(fse->matchingFunc->type); + assert(ft != NULL); + return ft->GetReturnType(); + } + else + return NULL; +} + + +Expr * +FunctionCallExpr::Optimize() { + if (func) + func = func->Optimize(); + if (args) + args = args->Optimize(); + if (!func || !args) + return NULL; + + return this; +} + + +Expr * +FunctionCallExpr::TypeCheck() { + if (func) { + func = func->TypeCheck(); + if (func != NULL) { + const FunctionType *ft = dynamic_cast(func->GetType()); + if (ft != NULL) { + if (ft->isTask) { + if (!isLaunch) + Error(pos, "\"launch\" expression needed to call function " + "with \"task\" qualifier."); + } + else if (isLaunch) + Error(pos, "\"launch\" expression illegal with non-\"task\"-" + "qualified function."); + } + else + Error(pos, "Valid function name must be used for function call."); + } + } + + if (args) + args = args->TypeCheck(); + + if (!func || !args) + return NULL; + return this; +} + + +void +FunctionCallExpr::Print() const { + if (!func || !args || !GetType()) + return; + + printf("[%s] funcall %s ", GetType()->GetString().c_str(), + isLaunch ? "launch" : ""); + func->Print(); + printf(" args ("); + args->Print(); + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// ExprList + +llvm::Value * +ExprList::GetValue(FunctionEmitContext *ctx) const { + FATAL("ExprList::GetValue() should never be called"); + return NULL; +} + + +const Type * +ExprList::GetType() const { + FATAL("ExprList::GetType() should never be called"); + return NULL; +} + + +ExprList * +ExprList::Optimize() { + for (unsigned int i = 0; i < exprs.size(); ++i) + if (exprs[i]) + exprs[i] = exprs[i]->Optimize(); + return this; +} + + +ExprList * +ExprList::TypeCheck() { + for (unsigned int i = 0; i < exprs.size(); ++i) + if (exprs[i]) + exprs[i] = exprs[i]->TypeCheck(); + return this; +} + + +llvm::Constant * +ExprList::GetConstant(const Type *type) const { + const StructType *structType = dynamic_cast(type); + const SequentialType *sequentialType = + dynamic_cast(type); + + if (structType != NULL) { + // We can potentially return an llvm::ConstantStruct if we have the + // same number of elements in the ExprList as the struct has + // members (and the various elements line up with the shape of the + // corresponding struct elements). + if ((int)exprs.size() != structType->NumElements()) { + Error(pos, "Initializer list for struct \"%s\" must have %d " + "elements (has %d).", structType->GetString().c_str(), + (int)exprs.size(), structType->NumElements()); + return NULL; + } + + std::vector cv; + for (unsigned int i = 0; i < exprs.size(); ++i) { + if (exprs[i] == NULL) + return NULL; + const Type *elementType = structType->GetMemberType(i); + llvm::Constant *c = exprs[i]->GetConstant(elementType); + if (c == NULL) + // If this list element couldn't convert to the right + // constant type for the corresponding struct member, then + // give up + return NULL; + cv.push_back(c); + } + +#if defined(LLVM_2_8) || defined(LLVM_2_9) + return llvm::ConstantStruct::get(*g->ctx, cv, false); +#else + const llvm::StructType *llvmStructType = + llvm::dyn_cast(structType->LLVMType(g->ctx)); + assert(llvmStructType != NULL); + return llvm::ConstantStruct::get(llvmStructType, cv); +#endif + } + else if (sequentialType) { + // Similarly, if we have an array or vector type, we may be able to + // return the corresponding llvm constant value. + if ((int)exprs.size() != sequentialType->GetElementCount()) { + bool isArray = (dynamic_cast(type) != NULL); + Error(pos, "Initializer list for %s \"%s\" must have %d elements (has %d).", + isArray ? "array" : "vector", sequentialType->GetString().c_str(), + (int)exprs.size(), sequentialType->GetElementCount()); + return NULL; + } + + std::vector cv; + for (unsigned int i = 0; i < exprs.size(); ++i) { + if (exprs[i] == NULL) + return NULL; + const Type *elementType = sequentialType->GetElementType(); + llvm::Constant *c = exprs[i]->GetConstant(elementType); + if (c == NULL) + return NULL; + cv.push_back(c); + } + + const llvm::Type *lt = type->LLVMType(g->ctx); + const llvm::ArrayType *lat = llvm::dyn_cast(lt); + // FIXME: should the assert below validly fail for uniform vectors + // now? + assert(lat != NULL); + return llvm::ConstantArray::get(lat, cv); + } + return NULL; +} + + +void +ExprList::Print() const { + printf("expr list ("); + for (unsigned int i = 0; i < exprs.size(); ++i) { + if (exprs[i] != NULL) + exprs[i]->Print(); + printf("%s", (i == exprs.size() - 1) ? ")" : ", "); + } + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// IndexExpr + +IndexExpr::IndexExpr(Expr *a, Expr *i, SourcePos p) + : Expr(p) { + arrayOrVector = a; + index = i; +} + + +// FIXME: This is an ugly hack--if we're indexing into a uniform ispc +// VectorType, then this bitcasts the corresponding llvm::VectorType value +// to be a pointer to the vector's element type, so that a GEP to index +// from the pointer indices elements of the llvm::VectorType and doesn't +// incorrectly try to index into an array of llvm::VectorType instances. + +static llvm::Value * +lCastUniformVectorBasePtr(llvm::Value *ptr, FunctionEmitContext *ctx) { + const llvm::PointerType *baseType = + llvm::dyn_cast(ptr->getType()); + if (!baseType) + return ptr; + + const llvm::VectorType *baseEltVecType = + llvm::dyn_cast(baseType->getElementType()); + if (!baseEltVecType) + return ptr; + + const llvm::Type *vecEltType = baseEltVecType->getElementType(); + int numElts = baseEltVecType->getNumElements(); + const llvm::Type *castType = + llvm::PointerType::get(llvm::ArrayType::get(vecEltType, numElts), 0); + return ctx->BitCastInst(ptr, castType); +} + + +llvm::Value * +IndexExpr::GetValue(FunctionEmitContext *ctx) const { + const Type *arrayOrVectorType; + if (arrayOrVector == NULL || index == NULL || + ((arrayOrVectorType = arrayOrVector->GetType()) == NULL)) + return NULL; + + ctx->SetDebugPos(pos); + llvm::Value *lvalue = GetLValue(ctx); + if (!lvalue) { + // We may be indexing into a temporary that hasn't hit memory, so + // get the full value and stuff it into temporary alloca'd space so + // that we can index from there... + llvm::Value *val = arrayOrVector->GetValue(ctx); + if (val == NULL) { + assert(m->errorCount > 0); + return NULL; + } + ctx->SetDebugPos(pos); + llvm::Value *ptr = ctx->AllocaInst(arrayOrVectorType->LLVMType(g->ctx), + "array_tmp"); + ctx->StoreInst(val, ptr); + ptr = lCastUniformVectorBasePtr(ptr, ctx); + lvalue = ctx->GetElementPtrInst(ptr, LLVMInt32(0), index->GetValue(ctx)); + } + + ctx->SetDebugPos(pos); + return ctx->LoadInst(lvalue, GetType(), "index"); +} + + +const Type * +IndexExpr::GetType() const { + const Type *arrayOrVectorType, *indexType; + if (!arrayOrVector || !index || + ((arrayOrVectorType = arrayOrVector->GetType()) == NULL) || + ((indexType = index->GetType()) == NULL)) + return NULL; + + const SequentialType *sequentialType = + dynamic_cast(arrayOrVectorType->GetReferenceTarget()); + // Typechecking should have caught this... + assert(sequentialType != NULL); + + const Type *elementType = sequentialType->GetElementType(); + if (indexType->IsUniformType()) + // If the index is uniform, the resulting type is just whatever the + // element type is + return elementType; + else + // A varying index into uniform array/vector -> varying type (and + // same for varying array of course...) + return elementType->GetAsVaryingType(); +} + + +Symbol * +IndexExpr::GetBaseSymbol() const { + return arrayOrVector ? arrayOrVector->GetBaseSymbol() : NULL; +} + + +llvm::Value * +IndexExpr::GetLValue(FunctionEmitContext *ctx) const { + const Type *type; + if (!arrayOrVector || !index || ((type = arrayOrVector->GetType()) == NULL)) + return NULL; + + ctx->SetDebugPos(pos); + llvm::Value *basePtr = NULL; + if (dynamic_cast(type) || + dynamic_cast(type)) + basePtr = arrayOrVector->GetLValue(ctx); + else { + type = type->GetReferenceTarget(); + assert(dynamic_cast(type) || + dynamic_cast(type)); + basePtr = arrayOrVector->GetValue(ctx); + } + if (!basePtr) + return NULL; + + basePtr = lCastUniformVectorBasePtr(basePtr, ctx); + + ctx->SetDebugPos(pos); + return ctx->GetElementPtrInst(basePtr, LLVMInt32(0), index->GetValue(ctx)); +} + + +Expr * +IndexExpr::Optimize() { + if (arrayOrVector) + arrayOrVector = arrayOrVector->Optimize(); + if (index) + index = index->Optimize(); + if (arrayOrVector == NULL || index == NULL) + return NULL; + + return this; +} + + +Expr * +IndexExpr::TypeCheck() { + if (arrayOrVector) + arrayOrVector = arrayOrVector->TypeCheck(); + if (index) + index = index->TypeCheck(); + + if (!arrayOrVector || !index || !index->GetType()) + return NULL; + + const Type *arrayOrVectorType = arrayOrVector->GetType(); + if (!arrayOrVectorType) + return NULL; + + if (dynamic_cast(arrayOrVectorType->GetReferenceTarget()) == NULL) { + Error(pos, "Trying to index into non-array or vector type \"%s\".", + arrayOrVectorType->GetString().c_str()); + return NULL; + } + + bool isUniform = (index->GetType()->IsUniformType() && + !g->opt.disableUniformMemoryOptimizations); + const Type *indexType = isUniform ? AtomicType::UniformInt32 : + AtomicType::VaryingInt32; + index = index->TypeConv(indexType, "array index"); + if (!index) + return NULL; + + return this; +} + + +void +IndexExpr::Print() const { + if (!arrayOrVector || !index || !GetType()) + return; + + printf("[%s] index ", GetType()->GetString().c_str()); + arrayOrVector->Print(); + printf("["); + index->Print(); + printf("]"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// MemberExpr + +MemberExpr::MemberExpr(Expr *e, const char *id, SourcePos p, SourcePos idpos) + : Expr(p), identifierPos(idpos) { + expr = e; + identifier = id; +} + + +llvm::Value * +MemberExpr::GetValue(FunctionEmitContext *ctx) const { + if (!expr) + return NULL; + + llvm::Value *lvalue = GetLValue(ctx); + if (!lvalue) { + // As in the array case, this may be a temporary that hasn't hit + // memory; get the full value and stuff it into a temporary array + // so that we can index from there... + llvm::Value *val = expr->GetValue(ctx); + if (!val) { + assert(m->errorCount > 0); + return NULL; + } + ctx->SetDebugPos(pos); + const Type *exprType = expr->GetType(); + llvm::Value *ptr = ctx->AllocaInst(exprType->LLVMType(g->ctx), + "struct_tmp"); + ctx->StoreInst(val, ptr); + + int elementNumber = getElementNumber(); + if (elementNumber == -1) + return NULL; + lvalue = ctx->GetElementPtrInst(ptr, 0, elementNumber); + } + + ctx->SetDebugPos(pos); + return ctx->LoadInst(lvalue, GetType(), "structelement"); +} + + +const Type * +MemberExpr::GetType() const { + if (!expr) + return NULL; + + const Type *exprType = expr->GetType(); + if (!exprType) + return NULL; + + const StructType *structType = dynamic_cast(exprType); + const VectorType *vectorType = dynamic_cast(exprType); + if (!structType && !vectorType) { + const ReferenceType *referenceType = + dynamic_cast(exprType); + const Type *refTarget = (referenceType == NULL) ? NULL : + referenceType->GetReferenceTarget(); + if ((structType = dynamic_cast(refTarget)) == NULL && + (vectorType = dynamic_cast(refTarget)) == NULL) { + Error(pos, "Can't access member of non-struct/vector type \"%s\".", + exprType->GetString().c_str()); + return NULL; + } + } + + if (vectorType != NULL) + // only one-element vector selection is supported for now (i.e. no + // swizzling "foo.xxy"), so the result type is always just the + // element type. + return vectorType->GetElementType(); + else { + // Otherwise it's a struct, and the result type is the element + // type, possibly promoted to varying if the struct type / lvalue + // is varying. + const Type *elementType = structType->GetMemberType(identifier); + if (!elementType) + Error(identifierPos, "Element name \"%s\" not present in struct type \"%s\".%s", + identifier.c_str(), structType->GetString().c_str(), + getCandidateNearMatches().c_str()); + + if (exprType->IsVaryingType()) + return elementType->GetAsVaryingType(); + else + return elementType; + } +} + + +Symbol * +MemberExpr::GetBaseSymbol() const { + return expr ? expr->GetBaseSymbol() : NULL; +} + + +/** Map one character ids to vector element numbers. Allow a few different + conventions--xyzw, rgba, uv. + */ +static int +lIdentifierToVectorElement(char id) { + switch (id) { + case 'x': + case 'r': + case 'u': + return 0; + case 'y': + case 'g': + case 'v': + return 1; + case 'z': + case 'b': + return 2; + case 'w': + case 'a': + return 3; + default: + return -1; + } +} + + +int +MemberExpr::getElementNumber() const { + const Type *exprType; + if (!expr || ((exprType = expr->GetType()) == NULL)) + return -1; + + const StructType *structType = dynamic_cast(exprType); + const VectorType *vectorType = dynamic_cast(exprType); + if (!structType && !vectorType) { + const ReferenceType *referenceType = + dynamic_cast(exprType); + const Type *refTarget = (referenceType == NULL) ? NULL : + referenceType->GetReferenceTarget() ; + if ((structType = dynamic_cast(refTarget)) == NULL && + (vectorType = dynamic_cast(refTarget)) == NULL) + // FIXME: I think we shouldn't ever get here and that + // typechecking should have caught this case + return -1; + } + + int elementNumber = -1; + if (vectorType) { + if (identifier.size() != 1) { + Error(pos, "Only single-character vector element accessors are currently " + "supported--\"%s\" is invalid. Sorry.", identifier.c_str()); + } + else { + elementNumber = lIdentifierToVectorElement(identifier[0]); + if (elementNumber == -1) + Error(pos, "Vector element identifier \"%s\" unknown.", + identifier.c_str()); + } + } + else { + elementNumber = structType->GetMemberNumber(identifier); + if (elementNumber == -1) + Error(identifierPos, "Element name \"%s\" not present in struct type \"%s\".%s", + identifier.c_str(), structType->GetString().c_str(), + getCandidateNearMatches().c_str()); + } + return elementNumber; +} + + + +llvm::Value * +MemberExpr::GetLValue(FunctionEmitContext *ctx) const { + const Type *exprType; + if (!expr || ((exprType = expr->GetType()) == NULL)) + return NULL; + + ctx->SetDebugPos(pos); + const StructType *structType = dynamic_cast(exprType); + const VectorType *vectorType = dynamic_cast(exprType); + llvm::Value *basePtr = NULL; + if (structType || vectorType) + basePtr = expr->GetLValue(ctx); + else { + const ReferenceType *referenceType = dynamic_cast(exprType); + // FIXME: store structType and vectorType as members, or do all + // this in a separate function? This code to figure out + // struct/vectorType is replicated a bunch of times in + // MemberExpr... + const Type *refTarget = (referenceType == NULL) ? NULL : + referenceType->GetReferenceTarget() ; + if ((structType = dynamic_cast(refTarget)) == NULL && + (vectorType = dynamic_cast(refTarget)) == NULL) { + // FIXME: again I think typechecking should have caught this + Error(pos, "Can't access member of non-struct/vector type \"%s\".", + exprType->GetString().c_str()); + return NULL; + } + basePtr = expr->GetValue(ctx); + } + if (!basePtr) + return NULL; + + int elementNumber = getElementNumber(); + if (elementNumber == -1) + return NULL; + + ctx->SetDebugPos(pos); + return ctx->GetElementPtrInst(basePtr, 0, elementNumber); +} + + +Expr * +MemberExpr::TypeCheck() { + if (expr) + expr = expr->TypeCheck(); + return expr ? this : NULL; +} + + +Expr * +MemberExpr::Optimize() { + if (expr) + expr = expr->Optimize(); + return expr ? this : NULL; +} + + +void +MemberExpr::Print() const { + if (!expr || !GetType()) + return; + + printf("[%s] member (", GetType()->GetString().c_str()); + expr->Print(); + printf(" . %s)", identifier.c_str()); + pos.Print(); +} + + +/** There is no structure member with the name we've got in "identifier". + Use the approximate string matching routine to see if the identifier is + a minor misspelling of one of the ones that is there. + */ +std::string +MemberExpr::getCandidateNearMatches() const { + const StructType *structType = + dynamic_cast(expr->GetType()); + if (!structType) + return ""; + + std::vector elementNames; + for (int i = 0; i < structType->NumElements(); ++i) + elementNames.push_back(structType->GetElementName(i)); + std::vector alternates = MatchStrings(identifier, elementNames); + if (!alternates.size()) + return ""; + + std::string ret = " Did you mean "; + for (unsigned int i = 0; i < alternates.size(); ++i) { + ret += std::string("\"") + alternates[i] + std::string("\""); + if (i < alternates.size() - 1) ret += ", or "; + } + ret += "?"; + return ret; +} + + +/////////////////////////////////////////////////////////////////////////// +// ConstExpr + +ConstExpr::ConstExpr(const Type *t, int32_t i, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstInt32); + int32Val[0] = i; +} + + +ConstExpr::ConstExpr(const Type *t, int32_t *i, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstInt32 || + type == AtomicType::VaryingConstInt32); + for (int j = 0; j < Count(); ++j) + int32Val[j] = i[j]; +} + + +ConstExpr::ConstExpr(const Type *t, uint32_t u, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstUInt32); + uint32Val[0] = u; +} + + +ConstExpr::ConstExpr(const Type *t, uint32_t *u, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstUInt32 || + type == AtomicType::VaryingConstUInt32); + for (int j = 0; j < Count(); ++j) + uint32Val[j] = u[j]; +} + + +ConstExpr::ConstExpr(const Type *t, float f, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstFloat); + floatVal[0] = f; +} + + +ConstExpr::ConstExpr(const Type *t, float *f, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstFloat || + type == AtomicType::VaryingConstFloat); + for (int j = 0; j < Count(); ++j) + floatVal[j] = f[j]; +} + + +ConstExpr::ConstExpr(const Type *t, int64_t i, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstInt64); + int64Val[0] = i; +} + + +ConstExpr::ConstExpr(const Type *t, int64_t *i, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstInt64 || + type == AtomicType::VaryingConstInt64); + for (int j = 0; j < Count(); ++j) + int64Val[j] = i[j]; +} + + +ConstExpr::ConstExpr(const Type *t, uint64_t u, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformUInt64); + uint64Val[0] = u; +} + + +ConstExpr::ConstExpr(const Type *t, uint64_t *u, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstUInt64 || + type == AtomicType::VaryingConstUInt64); + for (int j = 0; j < Count(); ++j) + uint64Val[j] = u[j]; +} + + +ConstExpr::ConstExpr(const Type *t, double f, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstDouble); + doubleVal[0] = f; +} + + +ConstExpr::ConstExpr(const Type *t, double *f, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstDouble || + type == AtomicType::VaryingConstDouble); + for (int j = 0; j < Count(); ++j) + doubleVal[j] = f[j]; +} + + +ConstExpr::ConstExpr(const Type *t, bool b, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstBool); + boolVal[0] = b; +} + + +ConstExpr::ConstExpr(const Type *t, bool *b, SourcePos p) + : Expr(p) { + type = dynamic_cast(t); + assert(type != NULL); + type = type->GetAsConstType(); + assert(type == AtomicType::UniformConstBool || + type == AtomicType::VaryingConstBool); + for (int j = 0; j < Count(); ++j) + boolVal[j] = b[j]; +} + + +ConstExpr::ConstExpr(ConstExpr *old, double *v) + : Expr(old->pos) { + type = old->type; + switch (type->basicType) { + case AtomicType::TYPE_BOOL: + for (int i = 0; i < Count(); ++i) + boolVal[i] = (v[i] != 0.); + break; + case AtomicType::TYPE_INT32: + for (int i = 0; i < Count(); ++i) + int32Val[i] = (int)v[i]; + break; + case AtomicType::TYPE_UINT32: + for (int i = 0; i < Count(); ++i) + uint32Val[i] = (unsigned int)v[i]; + break; + case AtomicType::TYPE_FLOAT: + for (int i = 0; i < Count(); ++i) + floatVal[i] = (float)v[i]; + break; + case AtomicType::TYPE_DOUBLE: + for (int i = 0; i < Count(); ++i) + doubleVal[i] = v[i]; + break; + case AtomicType::TYPE_INT64: + case AtomicType::TYPE_UINT64: + FATAL("fixme; we need another constructor so that we're not trying to pass " + "double values to init an int64 type..."); + default: + FATAL("unimplemented const type"); + } +} + + +const Type * +ConstExpr::GetType() const { + return type; +} + + +llvm::Value * +ConstExpr::GetValue(FunctionEmitContext *ctx) const { + ctx->SetDebugPos(pos); + bool isVarying = type->IsVaryingType(); + + // ConstExpr only represents atomic types; just dispatch out to the + // appropriate utility routine to get the llvm constant value of the + // type we need. + switch (type->basicType) { + case AtomicType::TYPE_BOOL: + if (isVarying) + return LLVMBoolVector(boolVal); + else + return boolVal[0] ? LLVMTrue : LLVMFalse; + case AtomicType::TYPE_INT32: + return isVarying ? LLVMInt32Vector(int32Val) : + LLVMInt32(int32Val[0]); + case AtomicType::TYPE_UINT32: + return isVarying ? LLVMUInt32Vector(uint32Val) : + LLVMUInt32(uint32Val[0]); + case AtomicType::TYPE_FLOAT: + return isVarying ? LLVMFloatVector(floatVal) : + LLVMFloat(floatVal[0]); + case AtomicType::TYPE_INT64: + return isVarying ? LLVMInt64Vector(int64Val) : + LLVMInt64(int64Val[0]); + case AtomicType::TYPE_UINT64: + return isVarying ? LLVMUInt64Vector(uint64Val) : + LLVMUInt64(uint64Val[0]); + case AtomicType::TYPE_DOUBLE: + return isVarying ? LLVMDoubleVector(doubleVal) : + LLVMDouble(doubleVal[0]); + default: + FATAL("unimplemented const type"); + return NULL; + } +} + + +/* Type conversion templates: take advantage of C++ function overloading + rules to get the one we want to match. */ + +/* First the most general case, just use C++ type conversion if nothing + else matches */ +template static inline void +lConvertElement(From from, To *to) { + *to = (To)from; +} + + +/** When converting from bool types to numeric types, make sure the result + is one or zero. + FIXME: this is a different rule than we use elsewhere, where we sign extend + the bool. We should fix the other case to just zero extend and then + patch up places in the stdlib that depend on sign extension to call a + routine to make that happen. + */ +template static inline void +lConvertElement(bool from, To *to) { + *to = from ? (To)1 : (To)0; +} + + +/** When converting numeric types to bool, compare to zero. (Do we + actually need this one??) */ +template static inline void +lConvertElement(From from, bool *to) { + *to = (from != 0); +} + + +/** And bool -> bool is just assignment */ +static inline void +lConvertElement(bool from, bool *to) { + *to = from; +} + + +/** Type conversion utility function + */ +template static void +lConvert(const From *from, To *to, int count, bool forceVarying) { + for (int i = 0; i < count; ++i) + lConvertElement(from[i], &to[i]); + + if (forceVarying && count == 1) + for (int i = 1; i < g->target.vectorWidth; ++i) + to[i] = to[0]; +} + + +int +ConstExpr::AsInt64(int64_t *ip, bool forceVarying) const { + switch (type->basicType) { + case AtomicType::TYPE_BOOL: lConvert(boolVal, ip, Count(), forceVarying); break; + case AtomicType::TYPE_INT32: lConvert(int32Val, ip, Count(), forceVarying); break; + case AtomicType::TYPE_UINT32: lConvert(uint32Val, ip, Count(), forceVarying); break; + case AtomicType::TYPE_FLOAT: lConvert(floatVal, ip, Count(), forceVarying); break; + case AtomicType::TYPE_DOUBLE: lConvert(doubleVal, ip, Count(), forceVarying); break; + case AtomicType::TYPE_INT64: lConvert(int64Val, ip, Count(), forceVarying); break; + case AtomicType::TYPE_UINT64: lConvert(uint64Val, ip, Count(), forceVarying); break; + default: + FATAL("unimplemented const type"); + } + return Count(); +} + + +int +ConstExpr::AsUInt64(uint64_t *up, bool forceVarying) const { + switch (type->basicType) { + case AtomicType::TYPE_BOOL: lConvert(boolVal, up, Count(), forceVarying); break; + case AtomicType::TYPE_INT32: lConvert(int32Val, up, Count(), forceVarying); break; + case AtomicType::TYPE_UINT32: lConvert(uint32Val, up, Count(), forceVarying); break; + case AtomicType::TYPE_FLOAT: lConvert(floatVal, up, Count(), forceVarying); break; + case AtomicType::TYPE_DOUBLE: lConvert(doubleVal, up, Count(), forceVarying); break; + case AtomicType::TYPE_INT64: lConvert(int64Val, up, Count(), forceVarying); break; + case AtomicType::TYPE_UINT64: lConvert(uint64Val, up, Count(), forceVarying); break; + default: + FATAL("unimplemented const type"); + } + return Count(); +} + + +int +ConstExpr::AsDouble(double *d, bool forceVarying) const { + switch (type->basicType) { + case AtomicType::TYPE_BOOL: lConvert(boolVal, d, Count(), forceVarying); break; + case AtomicType::TYPE_INT32: lConvert(int32Val, d, Count(), forceVarying); break; + case AtomicType::TYPE_UINT32: lConvert(uint32Val, d, Count(), forceVarying); break; + case AtomicType::TYPE_FLOAT: lConvert(floatVal, d, Count(), forceVarying); break; + case AtomicType::TYPE_DOUBLE: lConvert(doubleVal, d, Count(), forceVarying); break; + case AtomicType::TYPE_INT64: lConvert(int64Val, d, Count(), forceVarying); break; + case AtomicType::TYPE_UINT64: lConvert(uint64Val, d, Count(), forceVarying); break; + default: + FATAL("unimplemented const type"); + } + return Count(); +} + + +int +ConstExpr::AsFloat(float *fp, bool forceVarying) const { + switch (type->basicType) { + case AtomicType::TYPE_BOOL: lConvert(boolVal, fp, Count(), forceVarying); break; + case AtomicType::TYPE_INT32: lConvert(int32Val, fp, Count(), forceVarying); break; + case AtomicType::TYPE_UINT32: lConvert(uint32Val, fp, Count(), forceVarying); break; + case AtomicType::TYPE_FLOAT: lConvert(floatVal, fp, Count(), forceVarying); break; + case AtomicType::TYPE_DOUBLE: lConvert(doubleVal, fp, Count(), forceVarying); break; + case AtomicType::TYPE_INT64: lConvert(int64Val, fp, Count(), forceVarying); break; + case AtomicType::TYPE_UINT64: lConvert(uint64Val, fp, Count(), forceVarying); break; + default: + FATAL("unimplemented const type"); + } + return Count(); +} + + +int +ConstExpr::AsBool(bool *b, bool forceVarying) const { + switch (type->basicType) { + case AtomicType::TYPE_BOOL: lConvert(boolVal, b, Count(), forceVarying); break; + case AtomicType::TYPE_INT32: lConvert(int32Val, b, Count(), forceVarying); break; + case AtomicType::TYPE_UINT32: lConvert(uint32Val, b, Count(), forceVarying); break; + case AtomicType::TYPE_FLOAT: lConvert(floatVal, b, Count(), forceVarying); break; + case AtomicType::TYPE_DOUBLE: lConvert(doubleVal, b, Count(), forceVarying); break; + case AtomicType::TYPE_INT64: lConvert(int64Val, b, Count(), forceVarying); break; + case AtomicType::TYPE_UINT64: lConvert(uint64Val, b, Count(), forceVarying); break; + default: + FATAL("unimplemented const type"); + } + return Count(); +} + + +int +ConstExpr::AsInt32(int32_t *ip, bool forceVarying) const { + switch (type->basicType) { + case AtomicType::TYPE_BOOL: lConvert(boolVal, ip, Count(), forceVarying); break; + case AtomicType::TYPE_INT32: lConvert(int32Val, ip, Count(), forceVarying); break; + case AtomicType::TYPE_UINT32: lConvert(uint32Val, ip, Count(), forceVarying); break; + case AtomicType::TYPE_FLOAT: lConvert(floatVal, ip, Count(), forceVarying); break; + case AtomicType::TYPE_DOUBLE: lConvert(doubleVal, ip, Count(), forceVarying); break; + case AtomicType::TYPE_INT64: lConvert(int64Val, ip, Count(), forceVarying); break; + case AtomicType::TYPE_UINT64: lConvert(uint64Val, ip, Count(), forceVarying); break; + default: + FATAL("unimplemented const type"); + } + return Count(); +} + + +int +ConstExpr::AsUInt32(uint32_t *up, bool forceVarying) const { + switch (type->basicType) { + case AtomicType::TYPE_BOOL: lConvert(boolVal, up, Count(), forceVarying); break; + case AtomicType::TYPE_INT32: lConvert(int32Val, up, Count(), forceVarying); break; + case AtomicType::TYPE_UINT32: lConvert(uint32Val, up, Count(), forceVarying); break; + case AtomicType::TYPE_FLOAT: lConvert(floatVal, up, Count(), forceVarying); break; + case AtomicType::TYPE_DOUBLE: lConvert(doubleVal, up, Count(), forceVarying); break; + case AtomicType::TYPE_INT64: lConvert(int64Val, up, Count(), forceVarying); break; + case AtomicType::TYPE_UINT64: lConvert(uint64Val, up, Count(), forceVarying); break; + default: + FATAL("unimplemented const type"); + } + return Count(); +} + + +int +ConstExpr::Count() const { + return GetType()->IsVaryingType() ? g->target.vectorWidth : 1; +} + + +llvm::Constant * +ConstExpr::GetConstant(const Type *type) const { + // Caller shouldn't be trying to stuff a varying value here into a + // constant type. + if (type->IsUniformType()) + assert(Count() == 1); + + type = type->GetAsNonConstType(); + if (type == AtomicType::UniformBool || type == AtomicType::VaryingBool) { + bool bv[ISPC_MAX_NVEC]; + AsBool(bv, type->IsVaryingType()); + if (type->IsUniformType()) + return bv[0] ? LLVMTrue : LLVMFalse; + else + return LLVMBoolVector(bv); + } + else if (type == AtomicType::UniformInt32 || type == AtomicType::VaryingInt32) { + int32_t iv[ISPC_MAX_NVEC]; + AsInt32(iv, type->IsVaryingType()); + if (type->IsUniformType()) + return LLVMInt32(iv[0]); + else + return LLVMInt32Vector(iv); + } + else if (type == AtomicType::UniformUInt32 || type == AtomicType::VaryingUInt32) { + uint32_t uiv[ISPC_MAX_NVEC]; + AsUInt32(uiv, type->IsVaryingType()); + if (type->IsUniformType()) + return LLVMUInt32(uiv[0]); + else + return LLVMUInt32Vector(uiv); + } + else if (type == AtomicType::UniformFloat || type == AtomicType::VaryingFloat) { + float fv[ISPC_MAX_NVEC]; + AsFloat(fv, type->IsVaryingType()); + if (type->IsUniformType()) + return LLVMFloat(fv[0]); + else + return LLVMFloatVector(fv); + } + else if (type == AtomicType::UniformInt64 || type == AtomicType::VaryingInt64) { + int64_t iv[ISPC_MAX_NVEC]; + AsInt64(iv, type->IsVaryingType()); + if (type->IsUniformType()) + return LLVMInt64(iv[0]); + else + return LLVMInt64Vector(iv); + } + else if (type == AtomicType::UniformUInt64 || type == AtomicType::VaryingUInt64) { + uint64_t uiv[ISPC_MAX_NVEC]; + AsUInt64(uiv, type->IsVaryingType()); + if (type->IsUniformType()) + return LLVMUInt64(uiv[0]); + else + return LLVMUInt64Vector(uiv); + } + else if (type == AtomicType::UniformDouble || type == AtomicType::VaryingDouble) { + double dv[ISPC_MAX_NVEC]; + AsDouble(dv, type->IsVaryingType()); + if (type->IsUniformType()) + return LLVMDouble(dv[0]); + else + return LLVMDoubleVector(dv); + } + else { + FATAL("unexpected type in ConstExpr::GetConstant()"); + return NULL; + } +} + + +Expr * +ConstExpr::Optimize() { + return this; +} + + +Expr * +ConstExpr::TypeCheck() { + return this; +} + + + +void +ConstExpr::Print() const { + printf("[%s] (", GetType()->GetString().c_str()); + for (int i = 0; i < Count(); ++i) { + switch (type->basicType) { + case AtomicType::TYPE_BOOL: + printf("%s", boolVal[i] ? "true" : "false"); + break; + case AtomicType::TYPE_INT32: + printf("%d", int32Val[i]); + break; + case AtomicType::TYPE_UINT32: + printf("%u", uint32Val[i]); + break; + case AtomicType::TYPE_FLOAT: + printf("%f", floatVal[i]); + break; + case AtomicType::TYPE_INT64: +#ifdef ISPC_IS_LINUX + printf("%ld", int64Val[i]); +#else + printf("%lld", int64Val[i]); +#endif + break; + case AtomicType::TYPE_UINT64: +#ifdef ISPC_IS_LINUX + printf("%lu", uint64Val[i]); +#else + printf("%llu", uint64Val[i]); +#endif + break; + case AtomicType::TYPE_DOUBLE: + printf("%f", doubleVal[i]); + break; + default: + FATAL("unimplemented const type"); + } + if (i != Count() - 1) + printf(", "); + } + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// TypeCastExpr + +TypeCastExpr::TypeCastExpr(const Type *t, Expr *e, SourcePos p) + : Expr(p) { + type = t; + expr = e; +} + + +/** Handle all the grungy details of type conversion between atomic types. + Given an input value in exprVal of type fromType, convert it to the + llvm::Value with type toType. + */ +static llvm::Value * +lTypeConvAtomic(FunctionEmitContext *ctx, llvm::Value *exprVal, + const AtomicType *toType, const AtomicType *fromType, + SourcePos pos) { + llvm::Value *cast = NULL; + + switch (toType->basicType) { + case AtomicType::TYPE_FLOAT: { + const llvm::Type *targetType = + fromType->IsUniformType() ? LLVMTypes::FloatType : + LLVMTypes::FloatVectorType; + switch (fromType->basicType) { + case AtomicType::TYPE_BOOL: + if (fromType->IsVaryingType() && + LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) + // If we have a bool vector of i32 element,s first truncate + // down to a single bit + exprVal = ctx->TruncInst(exprVal, LLVMTypes::Int1VectorType, "bool_to_i1"); + // And then do an unisgned int->float cast + cast = ctx->CastInst(llvm::Instruction::UIToFP, // unsigned int + exprVal, targetType, "bool2float"); + break; + case AtomicType::TYPE_INT32: + case AtomicType::TYPE_INT64: + cast = ctx->CastInst(llvm::Instruction::SIToFP, // signed int to float + exprVal, targetType, "int2float"); + break; + case AtomicType::TYPE_UINT32: + case AtomicType::TYPE_UINT64: + if (fromType->IsVaryingType()) + PerformanceWarning(pos, "Conversion from unsigned int to float is slow. " + "Use \"int\" if possible"); + cast = ctx->CastInst(llvm::Instruction::UIToFP, // unsigned int to float + exprVal, targetType, "uint2float"); + break; + case AtomicType::TYPE_FLOAT: + // No-op cast. + cast = exprVal; + break; + case AtomicType::TYPE_DOUBLE: + cast = ctx->FPCastInst(exprVal, targetType, "double2float"); + break; + default: + FATAL("unimplemented"); + } + break; + } + case AtomicType::TYPE_DOUBLE: { + const llvm::Type *targetType = + fromType->IsUniformType() ? LLVMTypes::DoubleType : + LLVMTypes::DoubleVectorType; + switch (fromType->basicType) { + case AtomicType::TYPE_BOOL: + if (fromType->IsVaryingType() && + LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) + // truncate i32 bool vector values to i1s + exprVal = ctx->TruncInst(exprVal, LLVMTypes::Int1VectorType, "bool_to_i1"); + cast = ctx->CastInst(llvm::Instruction::UIToFP, // unsigned int to double + exprVal, targetType, "bool2double"); + break; + case AtomicType::TYPE_INT32: + case AtomicType::TYPE_INT64: + cast = ctx->CastInst(llvm::Instruction::SIToFP, // signed int + exprVal, targetType, "int2double"); + break; + case AtomicType::TYPE_UINT32: + case AtomicType::TYPE_UINT64: + if (fromType->IsVaryingType()) + PerformanceWarning(pos, "Conversion from unsigned int64 to float is slow. " + "Use \"int64\" if possible"); + cast = ctx->CastInst(llvm::Instruction::UIToFP, // unsigned int + exprVal, targetType, "uint2double"); + break; + case AtomicType::TYPE_FLOAT: + cast = ctx->FPCastInst(exprVal, targetType, "float2double"); + break; + case AtomicType::TYPE_DOUBLE: + cast = exprVal; + break; + default: + FATAL("unimplemented"); + } + break; + } + case AtomicType::TYPE_INT32: { + const llvm::Type *targetType = + fromType->IsUniformType() ? LLVMTypes::Int32Type : + LLVMTypes::Int32VectorType; + switch (fromType->basicType) { + case AtomicType::TYPE_BOOL: + if (fromType->IsVaryingType() && + LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) + exprVal = ctx->TruncInst(exprVal, LLVMTypes::Int1VectorType, "bool_to_i1"); + // FIXME: we're currently doing sign extension rather than zero + // extension here, which means that ints will have the value + // 0xffffffff for 'true' bools (versus the value 1). There is + // some code in stdlib.ispc that depends on bool->int conversions + // having this behavior that needs to be cleaned up (e.g. to + // call a __sext() builtin to do bool->int conversions) if we + // are going to fix this here. + cast = ctx->SExtInst(exprVal, targetType, "bool2int"); + break; + case AtomicType::TYPE_INT32: + case AtomicType::TYPE_UINT32: + cast = exprVal; + break; + case AtomicType::TYPE_FLOAT: + cast = ctx->CastInst(llvm::Instruction::FPToSI, // signed int + exprVal, targetType, "float2int"); + break; + case AtomicType::TYPE_INT64: + case AtomicType::TYPE_UINT64: + cast = ctx->TruncInst(exprVal, targetType, "int64_to_int32"); + break; + case AtomicType::TYPE_DOUBLE: + cast = ctx->CastInst(llvm::Instruction::FPToSI, // signed int + exprVal, targetType, "double2int"); + break; + default: + FATAL("unimplemented"); + } + break; + } + case AtomicType::TYPE_UINT32: { + const llvm::Type *targetType = + fromType->IsUniformType() ? LLVMTypes::Int32Type : + LLVMTypes::Int32VectorType; + switch (fromType->basicType) { + case AtomicType::TYPE_BOOL: + if (fromType->IsVaryingType() && + LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) + exprVal = ctx->TruncInst(exprVal, LLVMTypes::Int1VectorType, "bool_to_i1"); + // FIXME: See comments above w.r.t. fixing this to be a + // ZExtInst rather than an SExtInst... + cast = ctx->SExtInst(exprVal, targetType, "bool2uint"); + break; + case AtomicType::TYPE_INT32: + case AtomicType::TYPE_UINT32: + cast = exprVal; + break; + case AtomicType::TYPE_FLOAT: + if (fromType->IsVaryingType()) + PerformanceWarning(pos, "Conversion from float to unsigned int is slow. " + "Use \"int\" if possible"); + cast = ctx->CastInst(llvm::Instruction::FPToUI, // unsigned int + exprVal, targetType, "float2uint"); + break; + case AtomicType::TYPE_INT64: + case AtomicType::TYPE_UINT64: + cast = ctx->TruncInst(exprVal, targetType, "int64_to_uint32"); + break; + case AtomicType::TYPE_DOUBLE: + if (fromType->IsVaryingType()) + PerformanceWarning(pos, "Conversion from double to unsigned int is slow. " + "Use \"int\" if possible"); + cast = ctx->CastInst(llvm::Instruction::FPToUI, // unsigned int + exprVal, targetType, "double2uint"); + break; + default: + FATAL("unimplemented"); + } + break; + } + case AtomicType::TYPE_INT64: { + const llvm::Type *targetType = + fromType->IsUniformType() ? LLVMTypes::Int64Type : + LLVMTypes::Int64VectorType; + switch (fromType->basicType) { + case AtomicType::TYPE_BOOL: + if (fromType->IsVaryingType() && + LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) + exprVal = ctx->TruncInst(exprVal, LLVMTypes::Int1VectorType, "bool_to_i1"); + cast = ctx->SExtInst(exprVal, targetType, "bool2int64"); + break; + case AtomicType::TYPE_INT32: + cast = ctx->SExtInst(exprVal, targetType, "int32_to_int64"); + break; + case AtomicType::TYPE_UINT32: + cast = ctx->ZExtInst(exprVal, targetType, "uint32_to_int64"); + break; + case AtomicType::TYPE_FLOAT: + cast = ctx->CastInst(llvm::Instruction::FPToSI, // signed int + exprVal, targetType, "float2int64"); + break; + case AtomicType::TYPE_INT64: + case AtomicType::TYPE_UINT64: + cast = exprVal; + break; + case AtomicType::TYPE_DOUBLE: + cast = ctx->CastInst(llvm::Instruction::FPToSI, // signed int + exprVal, targetType, "double2int"); + break; + default: + FATAL("unimplemented"); + } + break; + } + case AtomicType::TYPE_UINT64: { + const llvm::Type *targetType = + fromType->IsUniformType() ? LLVMTypes::Int64Type : + LLVMTypes::Int64VectorType; + switch (fromType->basicType) { + case AtomicType::TYPE_BOOL: + if (fromType->IsVaryingType() && + LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) + exprVal = ctx->TruncInst(exprVal, LLVMTypes::Int1VectorType, "bool_to_i1"); + cast = ctx->SExtInst(exprVal, targetType, "bool2uint"); + break; + case AtomicType::TYPE_INT32: + cast = ctx->SExtInst(exprVal, targetType, "int32_to_uint64"); + break; + case AtomicType::TYPE_UINT32: + cast = ctx->ZExtInst(exprVal, targetType, "uint32_to_uint64"); + break; + case AtomicType::TYPE_FLOAT: + if (fromType->IsVaryingType()) + PerformanceWarning(pos, "Conversion from float to unsigned int64 is slow. " + "Use \"int64\" if possible"); + cast = ctx->CastInst(llvm::Instruction::FPToUI, // signed int + exprVal, targetType, "float2uint"); + break; + case AtomicType::TYPE_INT64: + case AtomicType::TYPE_UINT64: + cast = exprVal; + break; + case AtomicType::TYPE_DOUBLE: + if (fromType->IsVaryingType()) + PerformanceWarning(pos, "Conversion from double to unsigned int64 is slow. " + "Use \"int64\" if possible"); + cast = ctx->CastInst(llvm::Instruction::FPToUI, // signed int + exprVal, targetType, "double2uint"); + break; + default: + FATAL("unimplemented"); + } + break; + } + case AtomicType::TYPE_BOOL: { + switch (fromType->basicType) { + case AtomicType::TYPE_BOOL: + cast = exprVal; + break; + case AtomicType::TYPE_INT32: + case AtomicType::TYPE_UINT32: { + llvm::Value *zero = fromType->IsUniformType() ? (llvm::Value *)LLVMInt32(0) : + (llvm::Value *)LLVMInt32Vector(0); + cast = ctx->CmpInst(llvm::Instruction::ICmp, llvm::CmpInst::ICMP_NE, + exprVal, zero, "cmpi0"); + break; + } + case AtomicType::TYPE_FLOAT: { + llvm::Value *zero = fromType->IsUniformType() ? (llvm::Value *)LLVMFloat(0.f) : + (llvm::Value *)LLVMFloatVector(0.f); + cast = ctx->CmpInst(llvm::Instruction::FCmp, llvm::CmpInst::FCMP_ONE, + exprVal, zero, "cmpf0"); + break; + } + case AtomicType::TYPE_INT64: + case AtomicType::TYPE_UINT64: { + llvm::Value *zero = fromType->IsUniformType() ? (llvm::Value *)LLVMInt64(0) : + (llvm::Value *)LLVMInt64Vector((int64_t)0); + cast = ctx->CmpInst(llvm::Instruction::ICmp, llvm::CmpInst::ICMP_NE, + exprVal, zero, "cmpi0"); + break; + } + case AtomicType::TYPE_DOUBLE: { + llvm::Value *zero = fromType->IsUniformType() ? (llvm::Value *)LLVMDouble(0.) : + (llvm::Value *)LLVMDoubleVector(0.); + cast = ctx->CmpInst(llvm::Instruction::FCmp, llvm::CmpInst::FCMP_ONE, + exprVal, zero, "cmpd0"); + break; + } + default: + FATAL("unimplemented"); + } + + if (fromType->IsUniformType()) { + if (toType->IsVaryingType() && + LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) { + // extend out to i32 bool values from i1 here. then we'll + // turn into a vector below, the way it does for everyone + // else... + cast = ctx->SExtInst(cast, LLVMTypes::BoolVectorType->getElementType(), + "i1bool_to_i32bool"); + } + } + else + // fromType->IsVaryingType()) + cast = ctx->I1VecToBoolVec(cast); + + break; + } + default: + FATAL("unimplemented"); + } + + // If we also want to go from uniform to varying, replicate out the + // value across the vector elements.. + if (toType->IsVaryingType() && fromType->IsUniformType()) { + const llvm::Type *vtype = toType->LLVMType(g->ctx); + llvm::Value *castVec = llvm::UndefValue::get(vtype); + for (int i = 0; i < g->target.vectorWidth; ++i) + castVec = ctx->InsertInst(castVec, cast, i, "smearinsert"); + return castVec; + } + else + return cast; +} + + +/** Converts the given value of the given type to be the varying + equivalent, returning the resulting value. + */ +static llvm::Value * +lUniformValueToVarying(FunctionEmitContext *ctx, llvm::Value *value, + const Type *type) { + // nothing to do if it's already varying + if (type->IsVaryingType()) + return value; + + const llvm::Type *llvmType = type->GetAsVaryingType()->LLVMType(g->ctx); + llvm::Value *retValue = llvm::UndefValue::get(llvmType); + + // for structs, just recursively make their elements varying (if + // needed) and populate the return struct + const StructType *structType = dynamic_cast(type); + if (structType != NULL) { + for (int i = 0; i < structType->NumElements(); ++i) { + llvm::Value *v = ctx->ExtractInst(value, i, "struct_element"); + v = lUniformValueToVarying(ctx, v, structType->GetMemberType(i)); + retValue = ctx->InsertInst(retValue, v, i, "set_struct_element"); + } + return retValue; + } + + // And similarly do the elements of arrays and vectors individually + const SequentialType *sequentialType = + dynamic_cast(type); + if (sequentialType != NULL) { + for (int i = 0; i < sequentialType->GetElementCount(); ++i) { + llvm::Value *v = ctx->ExtractInst(value, i, "get_element"); + v = lUniformValueToVarying(ctx, v, sequentialType->GetElementType()); + retValue = ctx->InsertInst(retValue, v, i, "set_element"); + } + return retValue; + } + + // Otherwise we must have a uniform AtomicType, so smear its value + // across the vector lanes. + assert(dynamic_cast(type) != NULL); + for (int i = 0; i < g->target.vectorWidth; ++i) + retValue = ctx->InsertInst(retValue, value, i, "smearinsert"); + return retValue; +} + + + +llvm::Value * +TypeCastExpr::GetValue(FunctionEmitContext *ctx) const { + if (!expr) + return NULL; + + ctx->SetDebugPos(pos); + const Type *toType = GetType(), *fromType = expr->GetType(); + if (!toType || !fromType || toType == AtomicType::Void || + fromType == AtomicType::Void) + // an error should have been issued elsewhere in this case + return NULL; + + if (Type::Equal(toType->GetAsConstType(), fromType->GetAsConstType())) + // There's nothing to do, just return the value. (LLVM's type + // system doesn't worry about constiness.) + return expr->GetValue(ctx); + + // This also should be caught during typechecking + assert(!(toType->IsUniformType() && fromType->IsVaryingType())); + + const ReferenceType *toReference = dynamic_cast(toType); + const ReferenceType *fromReference = dynamic_cast(fromType); + if (toReference && fromReference) { + const Type *toTarget = toReference->GetReferenceTarget(); + const Type *fromTarget = fromReference->GetReferenceTarget(); + + const ArrayType *toArray = dynamic_cast(toTarget); + const ArrayType *fromArray = dynamic_cast(fromTarget); + if (toArray && fromArray) { + // cast array pointer from [n x foo] to [0 x foo] if needed to be able + // to pass to a function that takes an unsized array as a parameter + if(toArray->GetElementCount() != 0 && + (toArray->GetElementCount() != fromArray->GetElementCount())) + Warning(pos, "Type-converting array of length %d to length %d", + fromArray->GetElementCount(), toArray->GetElementCount()); + assert(Type::Equal(toArray->GetBaseType()->GetAsConstType(), + fromArray->GetBaseType()->GetAsConstType())); + llvm::Value *v = expr->GetValue(ctx); + const llvm::Type *ptype = toType->LLVMType(g->ctx); + return ctx->BitCastInst(v, ptype); //, "array_cast_0size"); + } + + assert(Type::Equal(toTarget, fromTarget) || + Type::Equal(toTarget, fromTarget->GetAsConstType())); + return expr->GetValue(ctx); + } + + const StructType *toStruct = dynamic_cast(toType); + const StructType *fromStruct = dynamic_cast(fromType); + if (toStruct && fromStruct) { + // The only legal type conversions for structs are to go from a + // uniform to a varying instance of the same struct type. + assert(toStruct->IsVaryingType() && fromStruct->IsUniformType() && + Type::Equal(toStruct, fromStruct->GetAsVaryingType())); + + llvm::Value *origValue = expr->GetValue(ctx); + if (!origValue) + return NULL; + return lUniformValueToVarying(ctx, origValue, fromType); + } + + const VectorType *toVector = dynamic_cast(toType); + const VectorType *fromVector = dynamic_cast(fromType); + if (toVector && fromVector) { + // this should be caught during typechecking + assert(toVector->GetElementCount() == fromVector->GetElementCount()); + + llvm::Value *exprVal = expr->GetValue(ctx); + if (!exprVal) + return NULL; + + // Emit instructions to do type conversion of each of the elements + // of the vector. + // FIXME: since uniform vectors are represented as + // llvm::VectorTypes, we should just be able to issue the + // corresponding vector type convert, which should be more + // efficient by avoiding serialization! + llvm::Value *cast = llvm::UndefValue::get(toType->LLVMType(g->ctx)); + for (int i = 0; i < toVector->GetElementCount(); ++i) { + llvm::Value *ei = ctx->ExtractInst(exprVal, i); + + llvm::Value *conv = lTypeConvAtomic(ctx, ei, toVector->GetElementType(), + fromVector->GetElementType(), pos); + if (!conv) + return NULL; + cast = ctx->InsertInst(cast, conv, i); + } + return cast; + } + + const AtomicType *fromAtomic = dynamic_cast(fromType); + // at this point, coming from an atomic type is all that's left... + assert(fromAtomic != NULL); + + llvm::Value *exprVal = expr->GetValue(ctx); + if (!exprVal) + return NULL; + + if (toVector) { + // scalar -> short vector conversion + llvm::Value *conv = lTypeConvAtomic(ctx, exprVal, toVector->GetElementType(), + fromAtomic, pos); + if (!conv) + return NULL; + + llvm::Value *cast = llvm::UndefValue::get(toType->LLVMType(g->ctx)); + for (int i = 0; i < toVector->GetElementCount(); ++i) + cast = ctx->InsertInst(cast, conv, i); + return cast; + } + else { + const AtomicType *toAtomic = dynamic_cast(toType); + // typechecking should ensure this is the case + assert(toAtomic != NULL); + + return lTypeConvAtomic(ctx, exprVal, toAtomic, fromAtomic, pos); + } +} + + +const Type * +TypeCastExpr::GetType() const { + return type; +} + + +Expr * +TypeCastExpr::TypeCheck() { + if (expr != NULL) + expr = expr->TypeCheck(); + if (expr == NULL) + return NULL; + + const Type *toType = GetType(), *fromType = expr->GetType(); + if (toType == NULL || fromType == NULL) + return NULL; + + const char *toTypeString = toType->GetString().c_str(); + const char *fromTypeString = fromType->GetString().c_str(); + + // It's an error to attempt to convert from varying to uniform + if (toType->IsUniformType() && !fromType->IsUniformType()) { + Error(pos, "Can't assign 'varying' value to 'uniform' type \"%s\".", + toTypeString); + return NULL; + } + + // And any kind of void type in a type cast doesn't make sense + if (toType == AtomicType::Void || fromType == AtomicType::Void) { + Error(pos, "Void type illegal in type cast from type \"%s\" to " + "type \"%s\".", fromTypeString, toTypeString); + return NULL; + } + + // FIXME: do we need to worry more about references here? + + if (dynamic_cast(fromType) != NULL) { + // Starting from a vector type; the result type must be a vector + // type as well + if (dynamic_cast(toType) == NULL) { + Error(pos, "Can't convert vector type \"%s\" to non-vector type \"%s\".", + fromTypeString, toTypeString); + return NULL; + } + + // And the two vectors must have the same number of elements + if (dynamic_cast(toType)->GetElementCount() != + dynamic_cast(fromType)->GetElementCount()) { + Error(pos, "Can't convert vector type \"%s\" to differently-sized " + "vector type \"%s\".", fromTypeString, toTypeString); + return NULL; + } + + // And we're ok; since vectors can only hold AtomicTypes, we know + // that type converting the elements will work. + return this; + } + else if (dynamic_cast(fromType) != NULL) { + FATAL("Shouldn't ever get here"); + return this; + } + else { + assert(dynamic_cast(fromType) != NULL); + // If we're going from an atomic type, the only possible result is + // another atomic type + if (dynamic_cast(toType) == NULL) { + Error(pos, "Can't convert from non-atomic type \"%s\" to \"%s\".", + fromTypeString, toTypeString); + return NULL; + } + + return this; + } + +} + + +Expr * +TypeCastExpr::Optimize() { + if (expr != NULL) + expr = expr->Optimize(); + if (expr == NULL) + return NULL; + + ConstExpr *constExpr = dynamic_cast(expr); + if (!constExpr) + // We can't do anything if this isn't a const expr + return this; + + const Type *toType = GetType(); + const AtomicType *toAtomic = dynamic_cast(toType); + // If we're not casting to an atomic type, we can't do anything here, + // since ConstExprs can only represent atomic types. (So e.g. we're + // casting from an int to an int<4>.) + if (toAtomic == NULL) + return this; + + bool forceVarying = toType->IsVaryingType(); + + // All of the type conversion smarts we need is already in the + // ConstExpr::AsBool(), etc., methods, so we just need to call the + // appropriate one for the type that this cast is converting to. + switch (toAtomic->basicType) { + case AtomicType::TYPE_BOOL: { + bool bv[ISPC_MAX_NVEC]; + constExpr->AsBool(bv, forceVarying); + return new ConstExpr(toType, bv, pos); + } + case AtomicType::TYPE_INT32: { + int32_t iv[ISPC_MAX_NVEC]; + constExpr->AsInt32(iv, forceVarying); + return new ConstExpr(toType, iv, pos); + } + case AtomicType::TYPE_UINT32: { + uint32_t uv[ISPC_MAX_NVEC]; + constExpr->AsUInt32(uv, forceVarying); + return new ConstExpr(toType, uv, pos); + } + case AtomicType::TYPE_FLOAT: { + float fv[ISPC_MAX_NVEC]; + constExpr->AsFloat(fv, forceVarying); + return new ConstExpr(toType, fv, pos); + } + case AtomicType::TYPE_INT64: { + int64_t iv[ISPC_MAX_NVEC]; + constExpr->AsInt64(iv, forceVarying); + return new ConstExpr(toType, iv, pos); + } + case AtomicType::TYPE_UINT64: { + uint64_t uv[ISPC_MAX_NVEC]; + constExpr->AsUInt64(uv, forceVarying); + return new ConstExpr(toType, uv, pos); + } + case AtomicType::TYPE_DOUBLE: { + double dv[ISPC_MAX_NVEC]; + constExpr->AsDouble(dv, forceVarying); + return new ConstExpr(toType, dv, pos); + } + default: + FATAL("unimplemented"); + } + return this; + +} + + +void +TypeCastExpr::Print() const { + printf("[%s] type cast (", GetType()->GetString().c_str()); + expr->Print(); + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// ReferenceExpr + +ReferenceExpr::ReferenceExpr(Expr *e, SourcePos p) + : Expr(p) { + expr = e; +} + + +llvm::Value * +ReferenceExpr::GetValue(FunctionEmitContext *ctx) const { + ctx->SetDebugPos(pos); + return expr ? expr->GetLValue(ctx) : NULL; +} + + +Symbol * +ReferenceExpr::GetBaseSymbol() const { + return expr ? expr->GetBaseSymbol() : NULL; +} + + +const Type * +ReferenceExpr::GetType() const { + if (!expr) + return NULL; + + const Type *type = expr->GetType(); + if (!type) + return NULL; + + return new ReferenceType(type, false); +} + + +Expr * +ReferenceExpr::Optimize() { + if (expr) + expr = expr->Optimize(); + if (expr == NULL) + return NULL; + + return this; +} + + +Expr * +ReferenceExpr::TypeCheck() { + if (expr != NULL) + expr = expr->TypeCheck(); + if (expr == NULL) + return NULL; + return this; +} + + +void +ReferenceExpr::Print() const { + if (expr == NULL || GetType() == NULL) + return; + + printf("[%s] &(", GetType()->GetString().c_str()); + expr->Print(); + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// DereferenceExpr + +DereferenceExpr::DereferenceExpr(Expr *e, SourcePos p) + : Expr(p) { + expr = e; +} + + +llvm::Value * +DereferenceExpr::GetValue(FunctionEmitContext *ctx) const { + if (expr == NULL) + return NULL; + llvm::Value *ptr = expr->GetValue(ctx); + if (ptr == NULL) + return NULL; + const Type *type = GetType(); + if (type == NULL) + return NULL; + + ctx->SetDebugPos(pos); + return ctx->LoadInst(ptr, type, "reference_load"); +} + + +llvm::Value * +DereferenceExpr::GetLValue(FunctionEmitContext *ctx) const { + if (expr == NULL) + return NULL; + return expr->GetValue(ctx); +} + + +Symbol * +DereferenceExpr::GetBaseSymbol() const { + return expr ? expr->GetBaseSymbol() : NULL; +} + + +const Type * +DereferenceExpr::GetType() const { + return (expr && expr->GetType()) ? expr->GetType()->GetReferenceTarget() : + NULL; +} + + +Expr * +DereferenceExpr::TypeCheck() { + if (expr != NULL) + expr = expr->TypeCheck(); + if (expr == NULL) + return NULL; + return this; +} + + +Expr * +DereferenceExpr::Optimize() { + if (expr != NULL) + expr = expr->Optimize(); + if (expr == NULL) + return NULL; + return this; +} + + +void +DereferenceExpr::Print() const { + if (expr == NULL || GetType() == NULL) + return; + + printf("[%s] *(", GetType()->GetString().c_str()); + expr->Print(); + printf(")"); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// SymbolExpr + +SymbolExpr::SymbolExpr(Symbol *s, SourcePos p) + : Expr(p) { + symbol = s; +} + + +llvm::Value * +SymbolExpr::GetValue(FunctionEmitContext *ctx) const { + // storagePtr may be NULL due to an earlier compilation error + if (!symbol || !symbol->storagePtr) + return NULL; + ctx->SetDebugPos(pos); + return ctx->LoadInst(symbol->storagePtr, GetType(), symbol->name.c_str()); +} + + +llvm::Value * +SymbolExpr::GetLValue(FunctionEmitContext *ctx) const { + if (symbol == NULL) + return NULL; + ctx->SetDebugPos(pos); + return symbol->storagePtr; +} + + +Symbol * +SymbolExpr::GetBaseSymbol() const { + return symbol; +} + + +const Type * +SymbolExpr::GetType() const { + return symbol ? symbol->type : NULL; +} + + +Expr * +SymbolExpr::TypeCheck() { + return this; +} + + +Expr * +SymbolExpr::Optimize() { + if (symbol == NULL) + return NULL; + else if (symbol->constValue != NULL) { + assert(GetType()->IsConstType()); + return symbol->constValue; + } + else + return this; +} + + +void +SymbolExpr::Print() const { + if (symbol == NULL || GetType() == NULL) + return; + + printf("[%s] sym: (%s)", GetType()->GetString().c_str(), + symbol->name.c_str()); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// FunctionSymbolExpr + +FunctionSymbolExpr::FunctionSymbolExpr(std::vector *candidates, + SourcePos p) + : Expr(p) { + matchingFunc = NULL; + candidateFunctions = candidates; +} + + +const Type * +FunctionSymbolExpr::GetType() const { + return matchingFunc ? matchingFunc->type : NULL; +} + + +llvm::Value * +FunctionSymbolExpr::GetValue(FunctionEmitContext *ctx) const { + assert("!should not call FunctionSymbolExpr::GetValue()"); + return NULL; +} + + +Symbol * +FunctionSymbolExpr::GetBaseSymbol() const { + return matchingFunc; +} + + +Expr * +FunctionSymbolExpr::TypeCheck() { + return this; +} + + +Expr * +FunctionSymbolExpr::Optimize() { + return this; +} + + +void +FunctionSymbolExpr::Print() const { + if (!matchingFunc || !GetType()) + return; + + printf("[%s] fun sym (%s)", GetType()->GetString().c_str(), + matchingFunc->name.c_str()); + pos.Print(); +} + + +/////////////////////////////////////////////////////////////////////////// +// SyncExpr + +const Type * +SyncExpr::GetType() const { + return AtomicType::Void; +} + + +llvm::Value * +SyncExpr::GetValue(FunctionEmitContext *ctx) const { + ctx->SetDebugPos(pos); + std::vector noArg; + llvm::Function *fsync = m->module->getFunction("ISPCSync"); + if (fsync == NULL) { + FATAL("Couldn't find ISPCSync declaration?!"); + return NULL; + } + + return ctx->CallInst(fsync, noArg, ""); +} + + +void +SyncExpr::Print() const { + printf("sync"); + pos.Print(); +} + + +Expr * +SyncExpr::TypeCheck() { + return this; +} + + +Expr * +SyncExpr::Optimize() { + return this; +} diff --git a/expr.h b/expr.h new file mode 100644 index 00000000..ae59b101 --- /dev/null +++ b/expr.h @@ -0,0 +1,543 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file expr.h + @brief Expr abstract base class and expression implementations +*/ + +#ifndef ISPC_EXPR_H +#define ISPC_EXPR_H 1 + +#include "ispc.h" + +class FunctionSymbolExpr; + +/** @brief Expr is the abstract base class that defines the interface that + all expression types must implement. + */ +class Expr : public ASTNode { +public: + Expr(SourcePos p) : ASTNode(p) { } + + /** This is the main method for Expr implementations to implement. It + should call methods in the FunctionEmitContext to emit LLVM IR + instructions to the current basic block in order to generate an + llvm::Value that represents the expression's value. */ + virtual llvm::Value *GetValue(FunctionEmitContext *ctx) const = 0; + + /** For expressions that can provide an lvalue (e.g. array indexing), + this function should emit IR that computes the expression's lvalue + and returns the corresponding llvm::Value. Expressions that can't + provide an lvalue should leave this unimplemented; the default + implementation returns NULL. */ + virtual llvm::Value *GetLValue(FunctionEmitContext *ctx) const; + + /** Returns the Type of the expression. */ + virtual const Type *GetType() const = 0; + + /** For expressions that have values based on a symbol (e.g. regular + symbol references, array indexing, etc.), this returns a pointer to + that symbol. */ + virtual Symbol *GetBaseSymbol() const; + + /** If this is a constant expression that can be converted to a + constant of the given type, this method should return the + corresponding llvm::Constant value. Otherwise it should return + NULL. */ + virtual llvm::Constant *GetConstant(const Type *type) const; + + /** This method should perform early optimizations of the expression + (constant folding, etc.) and return a pointer to the resulting + expression. If an error is encountered during optimization, NULL + should be returned. */ + virtual Expr *Optimize() = 0; + + /** This method should perform type checking of the expression and + return a pointer to the resulting expression. If an error is + encountered, NULL should be returned. */ + virtual Expr *TypeCheck() = 0; + + /** Prints the expression to standard output (used for debugging). */ + virtual void Print() const = 0; + + /** This method tries to convert the expression to the given type. In + the event of failure, if the failureOk parameter is true, then no + error is issued. If failureOk is false, then an error is printed + that incorporates the given error message string. In either + failure case, NULL is returned. */ + Expr *TypeConv(const Type *type, const char *errorMsgBase = NULL, + bool failureOk = false); +}; + + +/** @brief Unary expression */ +class UnaryExpr : public Expr { +public: + enum Op { + PreInc, ///< Pre-increment + PreDec, ///< Pre-decrement + PostInc, ///< Post-increment + PostDec, ///< Post-decrement + Negate, ///< Negation + LogicalNot, ///< Logical not + BitNot, ///< Bit not + }; + + UnaryExpr(Op op, Expr *expr, SourcePos pos); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + void Print() const; + Expr *Optimize(); + Expr *TypeCheck(); + +private: + const Op op; + Expr *expr; +}; + + +/** @brief Binary expression */ +class BinaryExpr : public Expr { +public: + enum Op { + Add, ///< Addition + Sub, ///< Subtraction + Mul, ///< Multiplication + Div, ///< Division + Mod, ///< Modulus + Shl, ///< Shift left + Shr, ///< Shift right + + Lt, ///< Less than + Gt, ///< Greater than + Le, ///< Less than or equal + Ge, ///< Greater than or equal + Equal, ///< Equal + NotEqual, ///< Not equal + + BitAnd, ///< Bitwise AND + BitXor, ///< Bitwise XOR + BitOr, ///< Bitwise OR + LogicalAnd, ///< Logical AND + LogicalOr, ///< Logical OR + + Comma, ///< Comma operator + }; + + BinaryExpr(Op o, Expr *a, Expr *b, SourcePos p); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + void Print() const; + + Expr *Optimize(); + Expr *TypeCheck(); + +private: + const Op op; + Expr *arg0, *arg1; +}; + + +/** @brief Assignment expression */ +class AssignExpr : public Expr { +public: + enum Op { + Assign, ///< Regular assignment + MulAssign, ///< *= assignment + DivAssign, ///< /= assignment + ModAssign, ///< %= assignment + AddAssign, ///< += assignment + SubAssign, ///< -= assignment + ShlAssign, ///< <<= assignment + ShrAssign, ///< >>= assignment + AndAssign, ///< &= assignment + XorAssign, ///< ^= assignment + OrAssign, ///< |= assignment + }; + + AssignExpr(Op o, Expr *a, Expr *b, SourcePos p); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + void Print() const; + + Expr *Optimize(); + Expr *TypeCheck(); + +private: + const Op op; + Expr *lvalue, *rvalue; +}; + + +/** @brief Selection expression, corresponding to "test ? a : b". + + Returns the value of "a" or "b", depending on the value of "test". +*/ +class SelectExpr : public Expr { +public: + SelectExpr(Expr *test, Expr *a, Expr *b, SourcePos p); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + void Print() const; + + Expr *Optimize(); + Expr *TypeCheck(); + +private: + Expr *test, *expr1, *expr2; +}; + + +/** @brief A list of expressions. + + These are mostly used for representing curly-brace delimited + initializers for initializers for complex types and for representing + the arguments passed to a function call. + */ +class ExprList : public Expr { +public: + ExprList(SourcePos p) : Expr(p) { } + ExprList(Expr *e, SourcePos p) : Expr(p) { exprs.push_back(e); } + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + void Print() const; + llvm::Constant *GetConstant(const Type *type) const; + ExprList *Optimize(); + ExprList *TypeCheck(); + + std::vector exprs; +}; + + +/** @brief Expression representing a function call. + */ +class FunctionCallExpr : public Expr { +public: + FunctionCallExpr(Expr *func, ExprList *args, SourcePos p, bool isLaunch); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + void Print() const; + + Expr *Optimize(); + Expr *TypeCheck(); + +private: + Expr *func; + ExprList *args; + bool isLaunch; + + void resolveFunctionOverloads(); + bool tryResolve(bool (*matchFunc)(Expr *, const Type *)); +}; + + +/** @brief Expression representing indexing into something with an integer + offset. + + This is used for both array indexing and indexing into VectorTypes. +*/ +class IndexExpr : public Expr { +public: + IndexExpr(Expr *arrayOrVector, Expr *index, SourcePos p); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + llvm::Value *GetLValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + Symbol *GetBaseSymbol() const; + void Print() const; + + Expr *Optimize(); + Expr *TypeCheck(); + +private: + Expr *arrayOrVector, *index; +}; + + +/** @brief Expression representing member selection ("foo.bar"). + */ +class MemberExpr : public Expr { +public: + MemberExpr(Expr *expr, const char *identifier, SourcePos pos, + SourcePos identifierPos); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + llvm::Value *GetLValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + Symbol *GetBaseSymbol() const; + void Print() const; + Expr *Optimize(); + Expr *TypeCheck(); + +private: + std::string getCandidateNearMatches() const; + int getElementNumber() const; + + Expr *expr; + std::string identifier; + const SourcePos identifierPos; +}; + + +/** @brief Expression representing a compile-time constant value. + + This class can currently represent compile-time constants of anything + that is an AtomicType; for anything more complex, we don't currently + have a representation of a compile-time constant that can be further + reasoned about. + */ +class ConstExpr : public Expr { +public: + /** Create a ConstExpr from a uniform int32 value */ + ConstExpr(const Type *t, int32_t i, SourcePos p); + /** Create a ConstExpr from a varying int32 value */ + ConstExpr(const Type *t, int32_t *i, SourcePos p); + /** Create a ConstExpr from a uniform uint32 value */ + ConstExpr(const Type *t, uint32_t u, SourcePos p); + /** Create a ConstExpr from a varying uint32 value */ + ConstExpr(const Type *t, uint32_t *u, SourcePos p); + /** Create a ConstExpr from a uniform float value */ + ConstExpr(const Type *t, float f, SourcePos p); + /** Create a ConstExpr from a varying float value */ + ConstExpr(const Type *t, float *f, SourcePos p); + /** Create a ConstExpr from a uniform double value */ + ConstExpr(const Type *t, double d, SourcePos p); + /** Create a ConstExpr from a varying double value */ + ConstExpr(const Type *t, double *d, SourcePos p); + /** Create a ConstExpr from a uniform int64 value */ + ConstExpr(const Type *t, int64_t i, SourcePos p); + /** Create a ConstExpr from a varying int64 value */ + ConstExpr(const Type *t, int64_t *i, SourcePos p); + /** Create a ConstExpr from a uniform uint64 value */ + ConstExpr(const Type *t, uint64_t i, SourcePos p); + /** Create a ConstExpr from a varying uint64 value */ + ConstExpr(const Type *t, uint64_t *i, SourcePos p); + /** Create a ConstExpr from a uniform bool value */ + ConstExpr(const Type *t, bool b, SourcePos p); + /** Create a ConstExpr from a varying bool value */ + ConstExpr(const Type *t, bool *b, SourcePos p); + /** Create a ConstExpr of the same type as the given old ConstExpr, + with values given by the "vales" parameter. */ + ConstExpr(ConstExpr *old, double *values); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + void Print() const; + llvm::Constant *GetConstant(const Type *type) const; + + Expr *TypeCheck(); + Expr *Optimize(); + + /** Return the ConstExpr's values as booleans, doing type conversion + from the actual type if needed. If forceVarying is true, then type + convert to 'varying' so as to always return a number of values + equal to the target vector width into the given pointer. */ + int AsBool(bool *, bool forceVarying = false) const; + + /** Return the ConstExpr's values as int32s, doing type conversion + from the actual type if needed. If forceVarying is true, then type + convert to 'varying' so as to always return a number of values + equal to the target vector width into the given pointer. */ + int AsInt32(int32_t *, bool forceVarying = false) const; + + /** Return the ConstExpr's values as uint32s, doing type conversion + from the actual type if needed. If forceVarying is true, then type + convert to 'varying' so as to always return a number of values + equal to the target vector width into the given pointer. */ + int AsUInt32(uint32_t *, bool forceVarying = false) const; + + /** Return the ConstExpr's values as floats, doing type conversion + from the actual type if needed. If forceVarying is true, then type + convert to 'varying' so as to always return a number of values + equal to the target vector width into the given pointer. */ + int AsFloat(float *, bool forceVarying = false) const; + + /** Return the ConstExpr's values as int64s, doing type conversion + from the actual type if needed. If forceVarying is true, then type + convert to 'varying' so as to always return a number of values + equal to the target vector width into the given pointer. */ + int AsInt64(int64_t *, bool forceVarying = false) const; + + /** Return the ConstExpr's values as uint64s, doing type conversion + from the actual type if needed. If forceVarying is true, then type + convert to 'varying' so as to always return a number of values + equal to the target vector width into the given pointer. */ + int AsUInt64(uint64_t *, bool forceVarying = false) const; + + /** Return the ConstExpr's values as doubles, doing type conversion + from the actual type if needed. If forceVarying is true, then type + convert to 'varying' so as to always return a number of values + equal to the target vector width into the given pointer. */ + int AsDouble(double *, bool forceVarying = false) const; + + /** Return the number of values in the ConstExpr; should be either 1, + if it has uniform type, or the target's vector width if it's + varying. */ + int Count() const; + +private: + const AtomicType *type; + union { + int32_t int32Val[ISPC_MAX_NVEC]; + uint32_t uint32Val[ISPC_MAX_NVEC]; + bool boolVal[ISPC_MAX_NVEC]; + float floatVal[ISPC_MAX_NVEC]; + double doubleVal[ISPC_MAX_NVEC]; + int64_t int64Val[ISPC_MAX_NVEC]; + uint64_t uint64Val[ISPC_MAX_NVEC]; + }; +}; + + +/** @brief Expression representing a type cast of the given expression to a + probably-different type. */ +class TypeCastExpr : public Expr { +public: + TypeCastExpr(const Type *t, Expr *e, SourcePos p); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + void Print() const; + Expr *TypeCheck(); + Expr *Optimize(); + +private: + const Type *type; + Expr *expr; +}; + + +/** @brief Expression that represents taking a reference of a (non-reference) + variable. */ +class ReferenceExpr : public Expr { +public: + ReferenceExpr(Expr *e, SourcePos p); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + Symbol *GetBaseSymbol() const; + void Print() const; + Expr *TypeCheck(); + Expr *Optimize(); + +private: + Expr *expr; +}; + + +/** @brief Expression that represents dereferencing a reference to get its + value. */ +class DereferenceExpr : public Expr { +public: + DereferenceExpr(Expr *e, SourcePos p); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + llvm::Value *GetLValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + Symbol *GetBaseSymbol() const; + void Print() const; + Expr *TypeCheck(); + Expr *Optimize(); + +private: + Expr *expr; +}; + + +/** @brief Expression representing a symbol reference in the program */ +class SymbolExpr : public Expr { +public: + SymbolExpr(Symbol *s, SourcePos p); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + llvm::Value *GetLValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + Symbol *GetBaseSymbol() const; + Expr *TypeCheck(); + Expr *Optimize(); + void Print() const; + +private: + Symbol *symbol; +}; + + +/** @brief Expression representing a function symbol in the program (generally + used for a function call). + */ +class FunctionSymbolExpr : public Expr { +public: + FunctionSymbolExpr(std::vector *candidateFunctions, + SourcePos pos); + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + Symbol *GetBaseSymbol() const; + Expr *TypeCheck(); + Expr *Optimize(); + void Print() const; + +private: + friend class FunctionCallExpr; + + /** All of the functions with the name given in the function call; + there may be more then one, in which case we need to resolve which + overload is the best match. */ + std::vector *candidateFunctions; + + /** The actual matching function found after overload resolution; this + value is set by FunctionCallExpr::resolveFunctionOverloads() */ + Symbol *matchingFunc; +}; + + +/** @brief A sync statement in the program (waits for all launched tasks before + proceeding). */ +class SyncExpr : public Expr { +public: + SyncExpr(SourcePos p) : Expr(p) { } + + llvm::Value *GetValue(FunctionEmitContext *ctx) const; + const Type *GetType() const; + Expr *TypeCheck(); + Expr *Optimize(); + void Print() const; +}; + +#endif // ISPC_EXPR_H diff --git a/failing_tests/max-uint-1.ispc b/failing_tests/max-uint-1.ispc new file mode 100644 index 00000000..d86126e6 --- /dev/null +++ b/failing_tests/max-uint-1.ispc @@ -0,0 +1,19 @@ +static float float4(uniform float a, uniform float b, uniform float c, + uniform float d) { + float ret = 0; + for (uniform int i = 0; i < programCount; i += 4) { + ret = insert(ret, i + 0, a); + ret = insert(ret, i + 1, b); + ret = insert(ret, i + 2, c); + ret = insert(ret, i + 3, d); + } + return ret; +} + +export float f_f(float a) { + unsigned int i = (unsigned int)a; + return max((unsigned int)2, i); +} + +export float result() { return float4(2,2,3,4); } + diff --git a/failing_tests/max-uint.ispc b/failing_tests/max-uint.ispc new file mode 100644 index 00000000..145aa707 --- /dev/null +++ b/failing_tests/max-uint.ispc @@ -0,0 +1,8 @@ + +export float f_f(float a) { + unsigned int i = (unsigned int)a; + return max((unsigned int)10, i); +} + +export float result() { return 10; } + diff --git a/failing_tests/min-uint-1.ispc b/failing_tests/min-uint-1.ispc new file mode 100644 index 00000000..018b20d6 --- /dev/null +++ b/failing_tests/min-uint-1.ispc @@ -0,0 +1,19 @@ +static float float4(uniform float a, uniform float b, uniform float c, + uniform float d) { + float ret = 0; + for (uniform int i = 0; i < programCount; i += 4) { + ret = insert(ret, i + 0, a); + ret = insert(ret, i + 1, b); + ret = insert(ret, i + 2, c); + ret = insert(ret, i + 3, d); + } + return ret; +} + +export float f_f(float a) { + unsigned int i = (unsigned int)a; + return min((unsigned int)2, i); +} + +export float result() { return float4(1,2,2,2); } + diff --git a/failing_tests/min-uint-2.ispc b/failing_tests/min-uint-2.ispc new file mode 100644 index 00000000..5b5f0539 --- /dev/null +++ b/failing_tests/min-uint-2.ispc @@ -0,0 +1,19 @@ +static float float4(uniform float a, uniform float b, uniform float c, + uniform float d) { + float ret = 0; + for (uniform int i = 0; i < programCount; i += 4) { + ret = insert(ret, i + 0, a); + ret = insert(ret, i + 1, b); + ret = insert(ret, i + 2, c); + ret = insert(ret, i + 3, d); + } + return ret; +} + +export float f_f(float a) { + unsigned int i = (unsigned int)a; + return min((unsigned int)20, i); +} + +export float result() { return float4(1,2,3,4); } + diff --git a/failing_tests/struct-array-assign.ispc b/failing_tests/struct-array-assign.ispc new file mode 100644 index 00000000..8dc09543 --- /dev/null +++ b/failing_tests/struct-array-assign.ispc @@ -0,0 +1,11 @@ + +struct Foo { + float f; +}; + + +export float foo(Foo f[], int i, uniform int j) { + Foo x = f[i]; + return x.f; +} + diff --git a/ispc.cpp b/ispc.cpp new file mode 100644 index 00000000..506846f0 --- /dev/null +++ b/ispc.cpp @@ -0,0 +1,137 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file ispc.cpp + @brief ispc global definitions +*/ + +#include "ispc.h" +#include "module.h" +#include "util.h" +#include +#ifdef ISPC_IS_WINDOWS +#include +#include +#endif +#include +#include +#ifndef LLVM_2_8 +#include +#endif +#include +#include + +Globals *g; +Module *m; + +/////////////////////////////////////////////////////////////////////////// +// Target + +Target::Target() { + arch = "x86-64"; + cpu = "nehalem"; + isa = SSE4; + nativeVectorWidth = 4; + vectorWidth = 4; +} + +/////////////////////////////////////////////////////////////////////////// +// Opt + +Opt::Opt() { + level = 1; + fastMath = false; + disableBlendedMaskedStores = false; + disableCoherentControlFlow = false; + disableUniformControlFlow = false; + disableGatherScatterOptimizations = false; + disableMaskedStoreToStore = false; + disableGatherScatterFlattening = false; + disableUniformMemoryOptimizations = false; + disableMaskedStoreOptimizations = false; +} + +/////////////////////////////////////////////////////////////////////////// +// Globals + +Globals::Globals() { + mathLib = Globals::Math_ISPC; + + includeStdlib = true; + runCPP = true; + debugPrint = false; + disableWarnings = false; + emitPerfWarnings = true; + emitInstrumentation = false; + generateDebuggingSymbols = false; + + ctx = new llvm::LLVMContext; + +#ifdef ISPC_IS_WINDOWS + _getcwd(currentDirectory, sizeof(currentDirectory)); +#else + getcwd(currentDirectory, sizeof(currentDirectory)); +#endif +} + +/////////////////////////////////////////////////////////////////////////// +// ASTNode + +ASTNode::~ASTNode() { +} + +/////////////////////////////////////////////////////////////////////////// +// SourcePos + +SourcePos::SourcePos(const char *n, int l, int c) { + name = n ? n : m->module->getModuleIdentifier().c_str(); + first_line = last_line = l; + first_column = last_column = c; +} + +llvm::DIFile SourcePos::GetDIFile() const { +#ifdef LLVM_2_8 + return llvm::DIFile(); +#else + std::string directory, filename; + GetDirectoryAndFileName(g->currentDirectory, name, &directory, &filename); + return m->diBuilder->createFile(filename, directory); +#endif // LLVM_2_8 +} + + +void +SourcePos::Print() const { + printf(" @ [%s:%d.%d - %d.%d] ", name, first_line, first_column, + last_line, last_column); +} diff --git a/ispc.h b/ispc.h new file mode 100644 index 00000000..2c4ec158 --- /dev/null +++ b/ispc.h @@ -0,0 +1,313 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file ispc.h + @brief Main ispc.header file +*/ + +#ifndef ISPC_H +#define ISPC_H + +#if defined(_WIN32) || defined(_WIN64) +#define ISPC_IS_WINDOWS +#elif defined(__linux__) +#define ISPC_IS_LINUX +#elif defined(__APPLE__) +#define ISPC_IS_APPLE +#endif + +#include +#include +#include +#include + +/** @def ISPC_MAX_NVEC maximum vector size of any of the compliation + targets. + */ +#define ISPC_MAX_NVEC 16 + +// Forward declarations of a number of widely-used LLVM types +namespace llvm { + class BasicBlock; + class Constant; + class ConstantValue; + class DIBuilder; + class DIDescriptor; + class DIFile; + class DIType; + class Function; + class FunctionType; + class LLVMContext; + class Module; + class Type; + class Value; +} + +class ArrayType; +class AtomicType; +class DeclSpecs; +class Declaration; +class Declarator; +class FunctionEmitContext; +class Expr; +class ExprList; +class FunctionType; +class GatherBuffer; +class Module; +class Stmt; +class Symbol; +class SymbolTable; +class Type; + +/** @brief Representation of a range of positions in a source file. + + This class represents a range of characters in a source file + (e.g. those that span a token's definition), from starting line and + column to ending line and column. (These values are tracked by the + lexing code). Both lines and columns are counted starting from one. + */ +struct SourcePos { + SourcePos(const char *n = NULL, int l = 0, int c = 0); + + const char *name; + int first_line; + int first_column; + int last_line; + int last_column; + + /** Prints the filename and line/column range to standard output. */ + void Print() const; + + /** Returns a LLVM DIFile object that represents the SourcePos's file */ + llvm::DIFile GetDIFile() const; +}; + + +/** @brief Abstract base class for nodes in the abstract syntax tree (AST). + + This class defines a basic interface that all abstract syntax tree + (AST) nodes must implement. The base classes for both expressions + (Expr) and statements (Stmt) inherit from this class. +*/ +class ASTNode { +public: + ASTNode(SourcePos p) : pos(p) { } + virtual ~ASTNode(); + + /** The Optimize() method should perform any appropriate early-stage + optimizations on the node (e.g. constant folding). The caller + should use the returned ASTNode * in place of the original node. + This method may return NULL if an error is encountered during + optimization. */ + virtual ASTNode *Optimize() = 0; + + /** Type checking should be performed by the node when this method is + called. In the event of an error, a NULL value may be returned. + As with ASTNode::Optimize(), the caller should store the returned + pointer in place of the original ASTNode *. */ + virtual ASTNode *TypeCheck() = 0; + + /** All AST nodes must track the file position where they are + defined. */ + const SourcePos pos; +}; + +/** @brief Structure that defines a compilation target + + This structure defines a compilation target for the ispc compiler. +*/ +struct Target { + Target(); + + /** Enumerant giving the instruction sets that the compiler can + target. */ + enum ISA { SSE2, SSE4, AVX }; + + /** Instruction set being compiled to. */ + ISA isa; + + /** Target system architecture. (e.g. "x86-64", "x86"). */ + std::string arch; + + /** Target CPU. (e.g. "corei7", "corei7-avx", ..) */ + std::string cpu; + + /** Native vector width of the vector instruction set. Note that this + value is directly derived from the ISA Being used (e.g. it's 4 for + SSE, 8 for AVX, etc.) */ + int nativeVectorWidth; + + /** Actual vector width currently being compiled to. This may be an + integer multiple of the native vector width, for example if we're + "doubling up" and compiling 8-wide on a 4-wide SSE system. */ + int vectorWidth; +}; + +/** @brief Structure that collects optimization options + + This structure collects all of the options related to optimization of + generated code. +*/ +struct Opt { + Opt(); + + /** Optimization level. Currently, the only valid values are 0, + indicating essentially no optimization, and 1, indicating as much + optimization as possible. */ + int level; + + /** Indicates whether "fast and loose" numerically unsafe optimizations + should be performed. This is false by default. */ + bool fastMath; + + /** On targets that don't have a masked store instruction but do have a + blending instruction, by default, we simulate masked stores by + loading the old value, blending, and storing the result. This can + potentially be unsafe in multi-threaded code, in that it writes to + locations that aren't supposed to be written to. Setting this + value to true disables this work-around, and instead implements + masked stores by 'scalarizing' them, so that we iterate over the + ISIMD lanes and do a scalar write for the ones that are running. */ + bool disableBlendedMaskedStores; + + /** Disables the 'coherent control flow' constructs in the + language. (e.g. this causes "cif" statements to be demoted to "if" + statements.) This is likely only useful for measuring the impact + of coherent control flow. */ + bool disableCoherentControlFlow; + + /** Disables uniform control flow optimizations (e.g. this changes an + "if" statement with a uniform condition to have a varying + condition). This is likely only useful for measuring the impact of + uniform control flow. */ + bool disableUniformControlFlow; + + /** Disables the backend optimizations related to gather/scatter + (e.g. transforming gather from sequential locations to an unaligned + load, etc.) This is likely only useful for measuring the impact of + these optimizations. */ + bool disableGatherScatterOptimizations; + + /** Disables the optimization that demotes masked stores to regular + stores when the store is happening at the same control flow level + where the variable was declared. This is likely only useful for + measuring the impact of this optimization. */ + bool disableMaskedStoreToStore; + + /** Disables the optimization that detects when the execution mask is + all on and emits code for gathers and scatters that doesn't loop + over the SIMD lanes but just does the scalar loads and stores + directly. */ + bool disableGatherScatterFlattening; + + /** Disables the optimizations that detect when arrays are being + indexed with 'uniform' values and issue scalar loads/stores rather + than gathers/scatters. This is likely only useful for measuring + the impact of this optimization. */ + bool disableUniformMemoryOptimizations; + + /** Disables optimizations for masked stores: masked stores with the + mask all on are transformed to regular stores, and masked stores + with the mask are all off are removed (which in turn can allow + eliminating additional dead code related to computing the value + stored). This is likely only useful for measuring the impact of + this optimization. */ + bool disableMaskedStoreOptimizations; +}; + +/** @brief This structure collects together a number of global variables. + + This structure collects a number of global variables that mostly + represent parameter settings for this compilation run. In particular, + none of these values should change after compilation befins; their + values are all set during command-line argument processing or very + early during the compiler's execution, before any files are parsed. + */ +struct Globals { + Globals(); + + /** Optimization option settings */ + Opt opt; + /** Compilation target information */ + Target target; + + /** There are a number of math libraries that can be used for + transcendentals and the like during program compilation. */ + enum MathLib { Math_ISPC, Math_ISPCFast, Math_SVML, Math_System }; + MathLib mathLib; + + /** Records whether the ispc standard library should be made available + to the program during compilations. (Default is true.) */ + bool includeStdlib; + + /** Indicates whether the C pre-processor should be run over the + program source before compiling it. (Default is true.) */ + bool runCPP; + + /** When \c true, voluminous debugging output will be printed during + ispc's execution. */ + bool debugPrint; + + /** Indicates whether all warning messages should be surpressed. */ + bool disableWarnings; + + /** Indicates whether additional warnings should be issued about + possible performance pitfalls. */ + bool emitPerfWarnings; + + /** Indicates whether calls should be emitted in the program to an + externally-defined program instrumentation function. (See the + "Instrumenting your ispc programs" section in the user's + manual.) */ + bool emitInstrumentation; + + /** Indicates whether ispc should generate debugging symbols for the + program in its output. */ + bool generateDebuggingSymbols; + + /** Global LLVMContext object */ + llvm::LLVMContext *ctx; + + /** Current working directory when the ispc compiler starts + execution. */ + char currentDirectory[1024]; + + /** Arguments to pass along to the C pre-processor, if it is run on the + program before compilation. */ + std::vector cppArgs; +}; + +extern Globals *g; +extern Module *m; + +#endif // ISPC_H diff --git a/ispc.sln b/ispc.sln new file mode 100755 index 00000000..0f48203a --- /dev/null +++ b/ispc.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ispc", "ispc.vcxproj", "{9861F490-F516-480C-B63C-D62A77AFA9D5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ispc_test", "ispc_test.vcxproj", "{92547BA8-BE86-4E78-8799-1D72A70E5831}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9861F490-F516-480C-B63C-D62A77AFA9D5}.Debug|Win32.ActiveCfg = Debug|Win32 + {9861F490-F516-480C-B63C-D62A77AFA9D5}.Debug|Win32.Build.0 = Debug|Win32 + {9861F490-F516-480C-B63C-D62A77AFA9D5}.Release|Win32.ActiveCfg = Release|Win32 + {9861F490-F516-480C-B63C-D62A77AFA9D5}.Release|Win32.Build.0 = Release|Win32 + {92547BA8-BE86-4E78-8799-1D72A70E5831}.Debug|Win32.ActiveCfg = Debug|Win32 + {92547BA8-BE86-4E78-8799-1D72A70E5831}.Debug|Win32.Build.0 = Debug|Win32 + {92547BA8-BE86-4E78-8799-1D72A70E5831}.Release|Win32.ActiveCfg = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ispc.vcxproj b/ispc.vcxproj new file mode 100755 index 00000000..e06e1eff --- /dev/null +++ b/ispc.vcxproj @@ -0,0 +1,216 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + %LLVM_INSTALL_DIR%\bin\clang -emit-llvm stdlib-c.c -c -o - | %LLVM_INSTALL_DIR%\bin\llvm-dis - | python bitcode2cpp.py stdlib-c.c > gen-bitcode-c.cpp + clang stdlib-c.c + %LLVM_INSTALL_DIR%\bin\clang -emit-llvm stdlib-c.c -c -o - | %LLVM_INSTALL_DIR%\bin\llvm-dis - | python bitcode2cpp.py stdlib-c.c > gen-bitcode-c.cpp + clang stdlib-c.c + gen-bitcode-c.cpp + gen-bitcode-c.cpp + + + + + + + + + + + + + + + + + + + + + + + + Document + cl /EP /TP %(Filename).ispc /DISPC=1 /DPI=3.1415926535 | python stdlib2cpp.py > gen-stdlib.cpp + gen-stdlib.cpp + cl /EP /TP %(Filename).ispc /DISPC=1 /DPI=3.1415926535 | python stdlib2cpp.py > gen-stdlib.cpp + gen-stdlib.cpp + Building gen-stdlib.cpp + Building gen-stdlib.cpp + + + + + Document + m4 stdlib.m4 stdlib-sse4.ll | python bitcode2cpp.py stdlib-sse4.ll > gen-bitcode-sse4.cpp + gen-bitcode-sse4.cpp + stdlib.m4;stdlib-sse.ll + m4 stdlib.m4 stdlib-sse4.ll | python bitcode2cpp.py stdlib-sse4.ll > gen-bitcode-sse4.cpp + gen-bitcode-sse4.cpp + stdlib.m4;stdlib-sse.ll + Building gen-bitcode-sse4.cpp + Building gen-bitcode-sse4.cpp + + + + + Document + m4 stdlib.m4 stdlib-sse4x2.ll | python bitcode2cpp.py stdlib-sse4x2.ll > gen-bitcode-sse4x2.cpp + gen-bitcode-sse4x2.cpp + stdlib.m4;stdlib-sse.ll + m4 stdlib.m4 stdlib-sse4x2.ll | python bitcode2cpp.py stdlib-sse4x2.ll > gen-bitcode-sse4x2.cpp + gen-bitcode-sse4x2.cpp + stdlib.m4;stdlib-sse.ll + Building gen-bitcode-sse4x2.cpp + Building gen-bitcode-sse4x2.cpp + + + + + Document + m4 stdlib.m4 stdlib-sse2.ll | python bitcode2cpp.py stdlib-sse2.ll > gen-bitcode-sse2.cpp + gen-bitcode-sse2.cpp + stdlib.m4;stdlib-sse.ll + m4 stdlib.m4 stdlib-sse2.ll | python bitcode2cpp.py stdlib-sse2.ll > gen-bitcode-sse2.cpp + gen-bitcode-sse2.cpp + stdlib.m4;stdlib-sse.ll + Building gen-bitcode-sse2.cpp + Building gen-bitcode-sse2.cpp + + + + + Document + m4 stdlib.m4 stdlib-avx.ll | python bitcode2cpp.py stdlib-avx.ll > gen-bitcode-avx.cpp + gen-bitcode-avx.cpp + stdlib.m4;stdlib-sse.ll + m4 stdlib.m4 stdlib-avx.ll | python bitcode2cpp.py stdlib-avx.ll > gen-bitcode-avx.cpp + gen-bitcode-avx.cpp + stdlib.m4;stdlib-sse.ll + Building gen-bitcode-avx.cpp + Building gen-bitcode-avx.cpp + + + + + Document + flex -t lex.ll > lex.cc + lex.cc + flex -t lex.ll > lex.cc + lex.cc + ispc.h;decl.h;parse.hh;sym.h + ispc.h;decl.h;parse.hh;sym.h + + + Document + bison -d -v -t -o parse.cc parse.yy + parse.cc;parse.h + bison -d -v -t -o parse.cc parse.yy + parse.cc;parse.h + ispc.h;type.h;decl.h;expr.h;sym.h;stmt.h + ispc.h;type.h;decl.h;expr.h;sym.h;stmt.h + Running bison on parse.yy + Running bison on parse.yy + + + + {9861F490-F516-480C-B63C-D62A77AFA9D5} + Win32Proj + ispc + + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + true + + + false + + + + NotUsing + Level3 + Disabled + NOMINMAX + $(LLVM_INSTALL_DIR)\include;.;.\winstuff;%(AdditionalIncludeDirectories) + 4146;4800;4996;4355;4624 + + + Console + true + $(LLVM_INSTALL_DIR)\lib;%(AdditionalLibraryDirectories) + LLVMAnalysis.lib;LLVMArchive.lib;LLVMAsmPrinter.lib;LLVMBitReader.lib;LLVMBitWriter.lib;LLVMCodeGen.lib;LLVMCore.lib;LLVMExecutionEngine.lib;LLVMInstCombine.lib;LLVMInstrumentation.lib;LLVMipa.lib;LLVMipo.lib;LLVMLinker.lib;LLVMMC.lib;LLVMMCParser.lib;LLVMObject.lib;LLVMScalarOpts.lib;LLVMSelectionDAG.lib;LLVMSupport.lib;LLVMTarget.lib;LLVMTransformUtils.lib;LLVMX86ASMPrinter.lib;LLVMX86ASMParser.lib;LLVMX86Utils.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMX86Info.lib;%(AdditionalDependencies) + + + + + Level3 + NotUsing + MaxSpeed + true + true + NOMINMAX + $(LLVM_INSTALL_DIR)\include;.;.\winstuff;%(AdditionalIncludeDirectories) + 4146;4800;4996;4355;4624 + + + Console + true + true + true + $(LLVM_INSTALL_DIR)\lib;%(AdditionalLibraryDirectories) + LLVMAnalysis.lib;LLVMArchive.lib;LLVMAsmPrinter.lib;LLVMBitReader.lib;LLVMBitWriter.lib;LLVMCodeGen.lib;LLVMCore.lib;LLVMExecutionEngine.lib;LLVMInstCombine.lib;LLVMInstrumentation.lib;LLVMipa.lib;LLVMipo.lib;LLVMLinker.lib;LLVMMC.lib;LLVMMCParser.lib;LLVMObject.lib;LLVMScalarOpts.lib;LLVMSelectionDAG.lib;LLVMSupport.lib;LLVMTarget.lib;LLVMTransformUtils.lib;LLVMX86ASMPrinter.lib;LLVMX86ASMParser.lib;LLVMX86Utils.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMX86Info.lib;%(AdditionalDependencies) + + + + + + \ No newline at end of file diff --git a/ispc_test.cpp b/ispc_test.cpp new file mode 100644 index 00000000..3665aa42 --- /dev/null +++ b/ispc_test.cpp @@ -0,0 +1,313 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#define _CRT_SECURE_NO_WARNINGS + +#include +#include + +#ifdef ISPC_HAVE_SVML +#include +extern "C" { + extern __m128 __svml_sinf4(__m128); + extern __m128 __svml_cosf4(__m128); + extern __m128 __svml_sincosf4(__m128 *,__m128); + extern __m128 __svml_tanf4(__m128); + extern __m128 __svml_atanf4(__m128); + extern __m128 __svml_atan2f4(__m128, __m128); + extern __m128 __svml_expf4(__m128); + extern __m128 __svml_logf4(__m128); + extern __m128 __svml_powf4(__m128, __m128); +} +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef LLVM_2_8 +#include +#endif + +extern "C" { + void ISPCLaunch(void *, void *); + void ISPCSync(); +} + +void ISPCLaunch(void *func, void *data) { + typedef void (*TaskFuncType)(void *, int, int); + TaskFuncType tft = (TaskFuncType)(func); + tft(data, 0, 1); +} + + +void ISPCSync() { +} + +static void usage(int ret) { + fprintf(stderr, "usage: ispc_test\n"); + fprintf(stderr, "\t[-h/--help]\tprint help\n"); + fprintf(stderr, "\t\n"); + exit(ret); +} + +static void svml_missing() { + fprintf(stderr, "Program called unavailable SVML function!\n"); + exit(1); +} + +static bool lRunTest(const char *fn) { + llvm::LLVMContext *ctx = new llvm::LLVMContext; + +#ifdef LLVM_2_8 + std::string err; + llvm::MemoryBuffer *buf = llvm::MemoryBuffer::getFileOrSTDIN(fn, &err); + if (!buf) { + fprintf(stderr, "Unable to open file \"%s\": %s\n", fn, err.c_str()); + delete ctx; + return false; + } + std::string bcErr; + llvm::Module *module = llvm::ParseBitcodeFile(buf, *ctx, &bcErr); +#else + llvm::OwningPtr buf; + llvm::error_code err = llvm::MemoryBuffer::getFileOrSTDIN(fn, buf); + if (err) { + fprintf(stderr, "Unable to open file \"%s\": %s\n", fn, err.message().c_str()); + delete ctx; + return false; + } + std::string bcErr; + llvm::Module *module = llvm::ParseBitcodeFile(buf.get(), *ctx, &bcErr); +#endif + + if (!module) { + fprintf(stderr, "Bitcode reader failed for \"%s\": %s\n", fn, bcErr.c_str()); + delete ctx; + return false; + } + + std::string eeError; + llvm::ExecutionEngine *ee = llvm::ExecutionEngine::createJIT(module, &eeError); + if (!ee) { + fprintf(stderr, "Unable to create ExecutionEngine: %s\n", eeError.c_str()); + return false; + } + + llvm::Function *func; + if ((func = module->getFunction("ISPCLaunch")) != NULL) + ee->addGlobalMapping(func, (void *)ISPCLaunch); + if ((func = module->getFunction("ISPCSync")) != NULL) + ee->addGlobalMapping(func, (void *)ISPCSync); + if ((func = module->getFunction("putchar")) != NULL) + ee->addGlobalMapping(func, (void *)putchar); + if ((func = module->getFunction("printf")) != NULL) + ee->addGlobalMapping(func, (void *)printf); + if ((func = module->getFunction("fflush")) != NULL) + ee->addGlobalMapping(func, (void *)fflush); + if ((func = module->getFunction("sinf")) != NULL) + ee->addGlobalMapping(func, (void *)sinf); + if ((func = module->getFunction("cosf")) != NULL) + ee->addGlobalMapping(func, (void *)cosf); + if ((func = module->getFunction("tanf")) != NULL) + ee->addGlobalMapping(func, (void *)tanf); + if ((func = module->getFunction("atanf")) != NULL) + ee->addGlobalMapping(func, (void *)atanf); + if ((func = module->getFunction("atan2f")) != NULL) + ee->addGlobalMapping(func, (void *)atan2f); + if ((func = module->getFunction("powf")) != NULL) + ee->addGlobalMapping(func, (void *)powf); + if ((func = module->getFunction("expf")) != NULL) + ee->addGlobalMapping(func, (void *)expf); + if ((func = module->getFunction("logf")) != NULL) + ee->addGlobalMapping(func, (void *)logf); + +#ifdef ISPC_HAVE_SVML +#define DO_SVML(FUNC ,FUNCNAME) \ + if ((func = module->getFunction(FUNCNAME)) != NULL) \ + ee->addGlobalMapping(func, (void *)FUNC) +#else +#define DO_SVML(FUNC, FUNCNAME) \ + if ((func = module->getFunction(FUNCNAME)) != NULL) \ + ee->addGlobalMapping(func, (void *)svml_missing) +#endif + + DO_SVML(__svml_sinf4, "__svml_sinf4"); + DO_SVML(__svml_cosf4, "__svml_cosf4"); + DO_SVML(__svml_sincosf4, "__svml_sincosf4"); + DO_SVML(__svml_tanf4, "__svml_tanf4"); + DO_SVML(__svml_atanf4, "__svml_atanf4"); + DO_SVML(__svml_atan2f4, "__svml_atan2f4"); + DO_SVML(__svml_expf4, "__svml_expf4"); + DO_SVML(__svml_logf4, "__svml_logf4"); + DO_SVML(__svml_powf4, "__svml_powf4"); + + // figure out the vector width in the compiled code + func = module->getFunction("width"); + if (!func) { + fprintf(stderr, "No width() function found!\n"); + return false; + } + int width; + { + typedef int (*PFN)(); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + width = pfn(); + assert(width == 4 || width == 8 || width == 12 || width == 16); + } + + // find the value that returns the desired result + func = module->getFunction("result"); + bool foundResult = (func != NULL); + float result[16]; + for (int i = 0; i < 16; ++i) + result[i] = 0; + bool ok = true; + if (foundResult) { + typedef void (*PFN)(float *); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + pfn(result); + } + else + fprintf(stderr, "Warning: no result() function found.\n"); + + // try to find a function to run + float returned[16]; + for (int i = 0; i < 16; ++i) + returned[i] = 0; + float vfloat[16] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; + double vdouble[16] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; + int vint[16] = { 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32 }; + int vint2[16] = { 5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; + + if ((func = module->getFunction("f_v")) != NULL) { + typedef void (*PFN)(float *); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + pfn(returned); + } + else if ((func = module->getFunction("f_f")) != NULL) { + typedef void (*PFN)(float *, float *); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + llvm::verifyFunction(*func); + pfn(returned, vfloat); + } + else if ((func = module->getFunction("f_fu")) != NULL) { + typedef void (*PFN)(float *, float *, float fu); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + llvm::verifyFunction(*func); + pfn(returned, vfloat, 5.); + } + else if ((func = module->getFunction("f_fi")) != NULL) { + typedef void (*PFN)(float *, float *, int *); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + pfn(returned, vfloat, vint); + } + else if ((func = module->getFunction("f_du")) != NULL) { + typedef void (*PFN)(float *, double *, double); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + pfn(returned, vdouble, 5.); + } + else if ((func = module->getFunction("f_duf")) != NULL) { + typedef void (*PFN)(float *, double *, float); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + pfn(returned, vdouble, 5.f); + } + else if ((func = module->getFunction("f_di")) != NULL) { + typedef void (*PFN)(float *, double *, int *); + PFN pfn = reinterpret_cast(ee->getPointerToFunction(func)); + pfn(returned, vdouble, vint2); + } + else { + fprintf(stderr, "Unable to find runnable function in file \"%s\"\n", fn); + ok = false; + } + + // see if we got the right result + if (ok) { + if (foundResult) { + for (int i = 0; i < width; ++i) + if (returned[i] != result[i]) { + ok = false; + fprintf(stderr, "Test \"%s\" RETURNED %d: %g / %a EXPECTED %g / %a\n", + fn, i, returned[i], returned[i], result[i], result[i]); + } + } + else { + for (int i = 0; i < width; ++i) + fprintf(stderr, "Test \"%s\" returned %d: %g / %a\n", + fn, i, returned[i], returned[i]); + } + } + + delete ee; + delete ctx; + + return ok && foundResult; +} + +int main(int argc, char *argv[]) { + llvm::InitializeNativeTarget(); + + std::vector files; + for (int i = 1; i < argc; ++i) { + if (!strcmp(argv[i], "--help") || !strcmp(argv[i], "-h")) + usage(0); + else + files.push_back(argv[i]); + } + + int passes = 0, fails = 0; + for (unsigned int i = 0; i < files.size(); ++i) { + if (lRunTest(files[i])) ++passes; + else ++fails; + } + + if (fails > 0) + fprintf(stderr, "%d/%d tests passed\n", passes, passes+fails); + return fails > 0; +} diff --git a/ispc_test.vcxproj b/ispc_test.vcxproj new file mode 100755 index 00000000..bd7a6407 --- /dev/null +++ b/ispc_test.vcxproj @@ -0,0 +1,88 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + + + + {92547BA8-BE86-4E78-8799-1D72A70E5831} + Win32Proj + ispc_test + + + + Application + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + true + + + false + + + + + + Level3 + Disabled + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + $(LLVM_INSTALL_DIR)/include + + + Console + true + $(LLVM_INSTALL_DIR)/lib + LLVMAnalysis.lib;LLVMArchive.lib;LLVMAsmPrinter.lib;LLVMBitReader.lib;LLVMBitWriter.lib;LLVMCodeGen.lib;LLVMCore.lib;LLVMExecutionEngine.lib;LLVMInstCombine.lib;LLVMInstrumentation.lib;LLVMipa.lib;LLVMipo.lib;LLVMJIT.lib;LLVMLinker.lib;LLVMMC.lib;LLVMMCParser.lib;LLVMObject.lib;LLVMScalarOpts.lib;LLVMSelectionDAG.lib;LLVMSupport.lib;LLVMTarget.lib;LLVMTransformUtils.lib;LLVMX86ASMPrinter.lib;LLVMX86ASMParser.lib;LLVMX86Utils.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMX86Info.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + $(LLVM_INSTALL_DIR)/include + + + Console + true + true + true + $(LLVM_INSTALL_DIR)/lib + LLVMAnalysis.lib;LLVMArchive.lib;LLVMAsmPrinter.lib;LLVMBitReader.lib;LLVMBitWriter.lib;LLVMCodeGen.lib;LLVMCore.lib;LLVMExecutionEngine.lib;LLVMInstCombine.lib;LLVMInstrumentation.lib;LLVMipa.lib;LLVMipo.lib;LLVMJIT.lib;LLVMLinker.lib;LLVMMC.lib;LLVMMCParser.lib;LLVMObject.lib;LLVMScalarOpts.lib;LLVMSelectionDAG.lib;LLVMSupport.lib;LLVMTarget.lib;LLVMTransformUtils.lib;LLVMX86ASMPrinter.lib;LLVMX86ASMParser.lib;LLVMX86Utils.lib;LLVMX86CodeGen.lib;LLVMX86Disassembler.lib;LLVMX86Info.lib;%(AdditionalDependencies) + + + + + + \ No newline at end of file diff --git a/lex.ll b/lex.ll new file mode 100644 index 00000000..327ac144 --- /dev/null +++ b/lex.ll @@ -0,0 +1,426 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +%{ + +#include "ispc.h" +#include "decl.h" +#include "parse.hh" +#include "sym.h" +#include "util.h" +#include "module.h" + +static uint32_t lParseBinary(const char *ptr, SourcePos pos); +static void lCComment(SourcePos *); +static void lCppComment(SourcePos *); +static void lHandleCppHash(SourcePos *); +static void lStringConst(YYSTYPE *, SourcePos *); + +#define YY_USER_ACTION \ + yylloc->first_line = yylloc->last_line; \ + yylloc->first_column = yylloc->last_column; \ + yylloc->last_column += yyleng; + +#ifdef ISPC_IS_WINDOWS +inline int isatty(int) { return 0; } +#endif // ISPC_IS_WINDOWS + +%} + +%option nounput +%option noyywrap +%option bison-bridge +%option bison-locations +%option nounistd + +WHITESPACE [ \t\r]+ +INT_NUMBER (([0-9]+)|(0x[0-9a-fA-F]+)|(0b[01]+)) +FLOAT_NUMBER (([0-9]+|(([0-9]+\.[0-9]*[fF]?)|(\.[0-9]+)))([eE][-+]?[0-9]+)?[fF]?)|([-]?0x[01]\.?[0-9a-fA-F]+p[-+]?[0-9]+[fF]?) + +IDENT [a-zA-Z_][a-zA-Z_0-9]* + +%% +"/*" { lCComment(yylloc); } +"//" { lCppComment(yylloc); } + +bool { return TOKEN_BOOL; } +break { return TOKEN_BREAK; } +case { return TOKEN_CASE; } +cbreak { return TOKEN_CBREAK; } +ccontinue { return TOKEN_CCONTINUE; } +cdo { return TOKEN_CDO; } +cfor { return TOKEN_CFOR; } +char { return TOKEN_CHAR; } +cif { return TOKEN_CIF; } +cwhile { return TOKEN_CWHILE; } +const { return TOKEN_CONST; } +continue { return TOKEN_CONTINUE; } +creturn { return TOKEN_CRETURN; } +default { return TOKEN_DEFAULT; } +do { return TOKEN_DO; } +double { return TOKEN_DOUBLE; } +else { return TOKEN_ELSE; } +enum { return TOKEN_ENUM; } +export { return TOKEN_EXPORT; } +extern { return TOKEN_EXTERN; } +false { return TOKEN_FALSE; } +float { return TOKEN_FLOAT; } +for { return TOKEN_FOR; } +goto { return TOKEN_GOTO; } +if { return TOKEN_IF; } +inline { return TOKEN_INLINE; } +int { return TOKEN_INT; } +int32 { return TOKEN_INT; } +int64 { return TOKEN_INT64; } +launch { return TOKEN_LAUNCH; } +print { return TOKEN_PRINT; } +reference { return TOKEN_REFERENCE; } +return { return TOKEN_RETURN; } +soa { return TOKEN_SOA; } +static { return TOKEN_STATIC; } +struct { return TOKEN_STRUCT; } +switch { return TOKEN_SWITCH; } +sync { return TOKEN_SYNC; } +task { return TOKEN_TASK; } +true { return TOKEN_TRUE; } +typedef { return TOKEN_TYPEDEF; } +uniform { return TOKEN_UNIFORM; } +unsigned { return TOKEN_UNSIGNED; } +varying { return TOKEN_VARYING; } +void { return TOKEN_VOID; } +while { return TOKEN_WHILE; } + +L?\"(\\.|[^\\"])*\" { lStringConst(yylval, yylloc); return TOKEN_STRING_LITERAL; } + +{IDENT} { + /* We have an identifier--is it a type name or an identifier? + The symbol table will straighten us out... */ + yylval->stringVal = new std::string(yytext); + if (m->symbolTable->LookupType(yytext) != NULL) + return TOKEN_TYPE_NAME; + else + return TOKEN_IDENTIFIER; +} + +{INT_NUMBER} { + char *endPtr = NULL; +#ifdef ISPC_IS_WINDOWS + unsigned long val; +#else + unsigned long long val; +#endif + + if (yytext[0] == '0' && yytext[1] == 'b') + val = lParseBinary(yytext+2, *yylloc); + else { +#ifdef ISPC_IS_WINDOWS + val = strtoul(yytext, &endPtr, 0); +#else + val = strtoull(yytext, &endPtr, 0); +#endif + } + yylval->int32Val = (int32_t)val; + if (val != (unsigned int)yylval->int32Val) + Warning(*yylloc, "32-bit integer has insufficient bits to represent value %s (%x %llx)", + yytext, yylval->int32Val, (unsigned long long)val); + return TOKEN_INT_CONSTANT; +} + +{INT_NUMBER}[uU] { + char *endPtr = NULL; +#ifdef ISPC_IS_WINDOWS + unsigned long val; +#else + unsigned long long val; +#endif + + if (yytext[0] == '0' && yytext[1] == 'b') + val = lParseBinary(yytext+2, *yylloc); + else { +#ifdef ISPC_IS_WINDOWS + val = strtoul(yytext, &endPtr, 0); +#else + val = strtoull(yytext, &endPtr, 0); +#endif + } + + yylval->int32Val = (int32_t)val; + if (val != (unsigned int)yylval->int32Val) + Warning(*yylloc, "32-bit integer has insufficient bits to represent value %s (%x %llx)", + yytext, yylval->int32Val, (unsigned long long)val); + return TOKEN_UINT_CONSTANT; +} + +{FLOAT_NUMBER} { + /* FIXME: need to implement a hex float constant parser so that we can + support them on Windows (which doesn't handle them in its atof() + implementation... */ + yylval->floatVal = atof(yytext); + return TOKEN_FLOAT_CONSTANT; +} + +"++" { return TOKEN_INC_OP; } +"--" { return TOKEN_DEC_OP; } +"<<" { return TOKEN_LEFT_OP; } +">>" { return TOKEN_RIGHT_OP; } +"<=" { return TOKEN_LE_OP; } +">=" { return TOKEN_GE_OP; } +"==" { return TOKEN_EQ_OP; } +"!=" { return TOKEN_NE_OP; } +"&&" { return TOKEN_AND_OP; } +"||" { return TOKEN_OR_OP; } +"*=" { return TOKEN_MUL_ASSIGN; } +"/=" { return TOKEN_DIV_ASSIGN; } +"%=" { return TOKEN_MOD_ASSIGN; } +"+=" { return TOKEN_ADD_ASSIGN; } +"-=" { return TOKEN_SUB_ASSIGN; } +"<<=" { return TOKEN_LEFT_ASSIGN; } +">>=" { return TOKEN_RIGHT_ASSIGN; } +"&=" { return TOKEN_AND_ASSIGN; } +"^=" { return TOKEN_XOR_ASSIGN; } +"|=" { return TOKEN_OR_ASSIGN; } +";" { return ';'; } +("{"|"<%") { return '{'; } +("}"|"%>") { return '}'; } +"," { return ','; } +":" { return ':'; } +"=" { return '='; } +"(" { return '('; } +")" { return ')'; } +("["|"<:") { return '['; } +("]"|":>") { return ']'; } +"." { return '.'; } +"&" { return '&'; } +"!" { return '!'; } +"~" { return '~'; } +"-" { return '-'; } +"+" { return '+'; } +"*" { return '*'; } +"/" { return '/'; } +"%" { return '%'; } +"<" { return '<'; } +">" { return '>'; } +"^" { return '^'; } +"|" { return '|'; } +"?" { return '?'; } + +{WHITESPACE} { } + +\n { + yylloc->last_line++; + yylloc->last_column = 1; +} + +#(line)?[ ][0-9]+[ ]\"(\\.|[^\\"])*\"[^\n]* { + lHandleCppHash(yylloc); +} + +. { + Error(*yylloc, "Illegal character: %c (0x%x)", yytext[0], int(yytext[0])); + YY_USER_ACTION +} + +%% + +/*sizeof { return TOKEN_SIZEOF; }*/ +/*"->" { return TOKEN_PTR_OP; }*/ +/*short { return TOKEN_SHORT; }*/ +/*long { return TOKEN_LONG; }*/ +/*signed { return TOKEN_SIGNED; }*/ +/*volatile { return TOKEN_VOLATILE; }*/ +/*"long"[ \t\v\f\n]+"long" { return TOKEN_LONGLONG; }*/ +/*union { return TOKEN_UNION; }*/ +/*"..." { return TOKEN_ELLIPSIS; }*/ + +/** Return the integer version of a binary constant from a string. + */ +static uint32_t +lParseBinary(const char *ptr, SourcePos pos) { + uint32_t val = 0; + bool warned = false; + + while (*ptr != '\0') { + /* if this hits, the regexp for 0b... constants is broken */ + assert(*ptr == '0' || *ptr == '1'); + + if ((val & (1<<31)) && warned == false) { + // We're about to shift out a set bit + // FIXME: 64-bit int constants... + Warning(pos, "Can't represent binary constant with 32-bit integer type"); + warned = true; + } + + val = (val << 1) | (*ptr == '0' ? 0 : 1); + ++ptr; + } + return val; +} + + +/** Handle a C-style comment in the source. + */ +static void +lCComment(SourcePos *pos) { + char c, prev = 0; + + while ((c = yyinput()) != 0) { + if (c == '\n') { + pos->last_line++; + pos->last_column = 1; + } + if (c == '/' && prev == '*') + return; + prev = c; + } + Error(*pos, "unterminated comment"); +} + +/** Handle a C++-style comment--eat everything up until the end of the line. + */ +static void +lCppComment(SourcePos *pos) { + char c; + do { + c = yyinput(); + } while (c != 0 && c != '\n'); + if (c == '\n') { + pos->last_line++; + pos->last_column = 1; + } +} + +/** Handle a line that starts with a # character; this should be something + left behind by the preprocessor indicating the source file/line + that our current position corresponds to. + */ +static void lHandleCppHash(SourcePos *pos) { + char *ptr, *src; + + // Advance past the opening stuff on the line. + assert(yytext[0] == '#'); + if (yytext[1] == ' ') + // On Linux/OSX, the preprocessor gives us lines like + // # 1234 "foo.c" + ptr = yytext + 2; + else { + // On windows, cl.exe's preprocessor gives us lines of the form: + // #line 1234 "foo.c" + assert(!strncmp(yytext+1, "line ", 5)); + ptr = yytext + 6; + } + + // Now we can set the line number based on the integer in the string + // that ptr is pointing at. + pos->last_line = strtol(ptr, &src, 10) - 1; + pos->last_column = 1; + // Make sure that the character after the integer is a space and that + // then we have open quotes + assert(src != ptr && src[0] == ' ' && src[1] == '"'); + src += 2; + + // And the filename is everything up until the closing quotes + std::string filename; + while (*src != '"') { + assert(*src && *src != '\n'); + filename.push_back(*src); + ++src; + } + pos->name = strdup(filename.c_str()); +} + + +/** Given a pointer to a position in a string, return the character that it + represents, accounting for the escape characters supported in string + constants. (i.e. given the literal string "\\", return the character + '/'). The return value is the new position in the string and the + decoded character is returned in *pChar. +*/ +static char * +lEscapeChar(char *str, char *pChar, SourcePos *pos) +{ + if (*str != '\\') { + *pChar = *str; + } + else { + char *tail; + ++str; + switch (*str) { + case '\'': *pChar = '\''; break; + case '\"': *pChar = '\"'; break; + case '?': *pChar = '\?'; break; + case '\\': *pChar = '\\'; break; + case 'a': *pChar = '\a'; break; + case 'b': *pChar = '\b'; break; + case 'f': *pChar = '\f'; break; + case 'n': *pChar = '\n'; break; + case 'r': *pChar = '\r'; break; + case 't': *pChar = '\t'; break; + case 'v': *pChar = '\v'; break; + // octal constants \012 + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': + *pChar = strtol(str, &tail, 8); + str = tail - 1; + break; + // hexidecimal constant \xff + case 'x': + *pChar = strtol(str, &tail, 16); + str = tail - 1; + break; + default: + Error(*pos, "Bad character escape sequence: '%s'\n.", str); + break; + } + } + ++str; + return str; +} + + +/** Parse a string constant in the source file. For each character in the + string, handle any escaped characters with lEscapeChar() and keep eating + characters until we come to the closing quote. +*/ +static void +lStringConst(YYSTYPE *yylval, SourcePos *pos) +{ + char *p; + std::string str; + p = strchr(yytext, '"') + 1; + while (*p != '\"') { + char cval; + p = lEscapeChar(p, &cval, pos); + str.push_back(cval); + } + yylval->stringVal = new std::string(str); +} diff --git a/llvmutil.cpp b/llvmutil.cpp new file mode 100644 index 00000000..e0fc4511 --- /dev/null +++ b/llvmutil.cpp @@ -0,0 +1,329 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file llvmutil.cpp + @brief Implementations of various LLVM utility types and classes. +*/ + +#include "llvmutil.h" +#include "type.h" + +const llvm::Type *LLVMTypes::VoidType = NULL; +const llvm::PointerType *LLVMTypes::VoidPointerType = NULL; +const llvm::Type *LLVMTypes::BoolType = NULL; +const llvm::Type *LLVMTypes::Int8Type = NULL; +const llvm::Type *LLVMTypes::Int16Type = NULL; +const llvm::Type *LLVMTypes::Int32Type = NULL; +const llvm::Type *LLVMTypes::Int32PointerType = NULL; +const llvm::Type *LLVMTypes::Int64Type = NULL; +const llvm::Type *LLVMTypes::Int64PointerType = NULL; +const llvm::Type *LLVMTypes::FloatType = NULL; +const llvm::Type *LLVMTypes::FloatPointerType = NULL; +const llvm::Type *LLVMTypes::DoubleType = NULL; + +const llvm::VectorType *LLVMTypes::MaskType = NULL; +const llvm::VectorType *LLVMTypes::BoolVectorType = NULL; +const llvm::VectorType *LLVMTypes::Int1VectorType = NULL; +const llvm::VectorType *LLVMTypes::Int32VectorType = NULL; +const llvm::Type *LLVMTypes::Int32VectorPointerType = NULL; +const llvm::VectorType *LLVMTypes::Int64VectorType = NULL; +const llvm::Type *LLVMTypes::Int64VectorPointerType = NULL; +const llvm::VectorType *LLVMTypes::FloatVectorType = NULL; +const llvm::Type *LLVMTypes::FloatVectorPointerType = NULL; +const llvm::VectorType *LLVMTypes::DoubleVectorType = NULL; +const llvm::ArrayType *LLVMTypes::VoidPointerVectorType = NULL; + +llvm::Constant *LLVMTrue = NULL; +llvm::Constant *LLVMFalse = NULL; +llvm::Constant *LLVMMaskAllOn = NULL; +llvm::Constant *LLVMMaskAllOff = NULL; + + +void +InitLLVMUtil(llvm::LLVMContext *ctx, Target target) { + LLVMTypes::VoidType = llvm::Type::getVoidTy(*ctx); + LLVMTypes::VoidPointerType = llvm::PointerType::get(llvm::Type::getInt8Ty(*ctx), 0); + LLVMTypes::BoolType = llvm::Type::getInt1Ty(*ctx); + LLVMTypes::Int8Type = llvm::Type::getInt8Ty(*ctx); + LLVMTypes::Int16Type = llvm::Type::getInt16Ty(*ctx); + LLVMTypes::Int32Type = llvm::Type::getInt32Ty(*ctx); + LLVMTypes::Int32PointerType = llvm::PointerType::get(LLVMTypes::Int32Type, 0); + LLVMTypes::Int64Type = llvm::Type::getInt64Ty(*ctx); + LLVMTypes::Int64PointerType = llvm::PointerType::get(LLVMTypes::Int64Type, 0); + LLVMTypes::FloatType = llvm::Type::getFloatTy(*ctx); + LLVMTypes::FloatPointerType = llvm::PointerType::get(LLVMTypes::FloatType, 0); + LLVMTypes::DoubleType = llvm::Type::getDoubleTy(*ctx); + + // Note that both the mask and bool vectors are vector of int32s + // (not i1s). LLVM ends up generating much better SSE code with + // this representation. + LLVMTypes::MaskType = LLVMTypes::BoolVectorType = + llvm::VectorType::get(llvm::Type::getInt32Ty(*ctx), target.vectorWidth); + + LLVMTypes::Int1VectorType = + llvm::VectorType::get(llvm::Type::getInt1Ty(*ctx), target.vectorWidth); + LLVMTypes::Int32VectorType = + llvm::VectorType::get(LLVMTypes::Int32Type, target.vectorWidth); + LLVMTypes::Int32VectorPointerType = llvm::PointerType::get(LLVMTypes::Int32VectorType, 0); + LLVMTypes::Int64VectorType = + llvm::VectorType::get(LLVMTypes::Int64Type, target.vectorWidth); + LLVMTypes::Int64VectorPointerType = llvm::PointerType::get(LLVMTypes::Int64VectorType, 0); + LLVMTypes::FloatVectorType = + llvm::VectorType::get(LLVMTypes::FloatType, target.vectorWidth); + LLVMTypes::FloatVectorPointerType = llvm::PointerType::get(LLVMTypes::FloatVectorType, 0); + LLVMTypes::DoubleVectorType = + llvm::VectorType::get(LLVMTypes::DoubleType, target.vectorWidth); + LLVMTypes::VoidPointerVectorType = + llvm::ArrayType::get(LLVMTypes::VoidPointerType, target.vectorWidth); + + LLVMTrue = llvm::ConstantInt::getTrue(*ctx); + LLVMFalse = llvm::ConstantInt::getFalse(*ctx); + + std::vector maskOnes; + llvm::Constant *onMask = NULL; + onMask = llvm::ConstantInt::get(llvm::Type::getInt32Ty(*ctx), -1, + true /*signed*/); // 0xffffffff + + for (int i = 0; i < target.vectorWidth; ++i) + maskOnes.push_back(onMask); + LLVMMaskAllOn = llvm::ConstantVector::get(LLVMTypes::MaskType, maskOnes); + + std::vector maskZeros; + llvm::Constant *offMask = NULL; + offMask = llvm::ConstantInt::get(llvm::Type::getInt32Ty(*ctx), 0, + true /*signed*/); + + for (int i = 0; i < target.vectorWidth; ++i) + maskZeros.push_back(offMask); + LLVMMaskAllOff = llvm::ConstantVector::get(LLVMTypes::MaskType, maskZeros); +} + + +llvm::ConstantInt *LLVMInt32(int32_t ival) { + return llvm::ConstantInt::get(llvm::Type::getInt32Ty(*g->ctx), ival, + true /*signed*/); +} + + +llvm::ConstantInt * +LLVMUInt32(uint32_t ival) { + return llvm::ConstantInt::get(llvm::Type::getInt32Ty(*g->ctx), ival, + false /*unsigned*/); +} + + +llvm::ConstantInt * +LLVMInt64(int64_t ival) { + return llvm::ConstantInt::get(llvm::Type::getInt64Ty(*g->ctx), ival, + true /*signed*/); +} + + +llvm::ConstantInt * +LLVMUInt64(uint64_t ival) { + return llvm::ConstantInt::get(llvm::Type::getInt64Ty(*g->ctx), ival, + false /*unsigned*/); +} + + +llvm::Constant * +LLVMFloat(float fval) { + return llvm::ConstantFP::get(llvm::Type::getFloatTy(*g->ctx), fval); +} + + +llvm::Constant * +LLVMDouble(double dval) { + return llvm::ConstantFP::get(llvm::Type::getDoubleTy(*g->ctx), dval); +} + + +llvm::Constant * +LLVMInt32Vector(int32_t ival) { + llvm::Constant *v = LLVMInt32(ival); + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(v); + return llvm::ConstantVector::get(LLVMTypes::Int32VectorType, vals); +} + + +llvm::Constant * +LLVMInt32Vector(const int32_t *ivec) { + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(LLVMInt32(ivec[i])); + return llvm::ConstantVector::get(LLVMTypes::Int32VectorType, vals); +} + + +llvm::Constant * +LLVMUInt32Vector(uint32_t ival) { + llvm::Constant *v = LLVMUInt32(ival); + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(v); + return llvm::ConstantVector::get(LLVMTypes::Int32VectorType, vals); +} + + +llvm::Constant * +LLVMUInt32Vector(const uint32_t *ivec) { + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(LLVMUInt32(ivec[i])); + return llvm::ConstantVector::get(LLVMTypes::Int32VectorType, vals); +} + + +llvm::Constant * +LLVMFloatVector(float fval) { + llvm::Constant *v = LLVMFloat(fval); + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(v); + return llvm::ConstantVector::get(LLVMTypes::FloatVectorType, vals); +} + + +llvm::Constant * +LLVMFloatVector(const float *fvec) { + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(LLVMFloat(fvec[i])); + return llvm::ConstantVector::get(LLVMTypes::FloatVectorType, vals); +} + + +llvm::Constant * +LLVMDoubleVector(double dval) { + llvm::Constant *v = LLVMDouble(dval); + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(v); + return llvm::ConstantVector::get(LLVMTypes::DoubleVectorType, vals); +} + + +llvm::Constant * +LLVMDoubleVector(const double *dvec) { + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(LLVMDouble(dvec[i])); + return llvm::ConstantVector::get(LLVMTypes::DoubleVectorType, vals); +} + + +llvm::Constant * +LLVMInt64Vector(int64_t ival) { + llvm::Constant *v = LLVMInt64(ival); + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(v); + return llvm::ConstantVector::get(LLVMTypes::Int64VectorType, vals); +} + + +llvm::Constant * +LLVMInt64Vector(const int64_t *ivec) { + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(LLVMInt64(ivec[i])); + return llvm::ConstantVector::get(LLVMTypes::Int64VectorType, vals); +} + + +llvm::Constant * +LLVMUInt64Vector(uint64_t ival) { + llvm::Constant *v = LLVMUInt64(ival); + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(v); + return llvm::ConstantVector::get(LLVMTypes::Int64VectorType, vals); +} + + +llvm::Constant * +LLVMUInt64Vector(const uint64_t *ivec) { + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(LLVMUInt64(ivec[i])); + return llvm::ConstantVector::get(LLVMTypes::Int64VectorType, vals); +} + + +llvm::Constant * +LLVMBoolVector(bool b) { + llvm::Constant *v; + if (LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) + v = llvm::ConstantInt::get(LLVMTypes::Int32Type, b ? 0xffffffff : 0, + false /*unsigned*/); + else { + assert(LLVMTypes::BoolVectorType->getElementType() == + llvm::Type::getInt1Ty(*g->ctx)); + v = b ? LLVMTrue : LLVMFalse; + } + + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) + vals.push_back(v); + return llvm::ConstantVector::get(LLVMTypes::BoolVectorType, vals); +} + + +llvm::Constant * +LLVMBoolVector(const bool *bvec) { + std::vector vals; + for (int i = 0; i < g->target.vectorWidth; ++i) { + llvm::Constant *v; + if (LLVMTypes::BoolVectorType == LLVMTypes::Int32VectorType) + v = llvm::ConstantInt::get(LLVMTypes::Int32Type, bvec[i] ? 0xffffffff : 0, + false /*unsigned*/); + else { + assert(LLVMTypes::BoolVectorType->getElementType() == + llvm::Type::getInt1Ty(*g->ctx)); + v = bvec[i] ? LLVMTrue : LLVMFalse; + } + + vals.push_back(v); + } + return llvm::ConstantVector::get(LLVMTypes::BoolVectorType, vals); +} + + +const llvm::ArrayType * +LLVMPointerVectorType(const llvm::Type *t) { + // NOTE: ArrayType, not VectorType + return llvm::ArrayType::get(llvm::PointerType::get(t, 0), + g->target.vectorWidth); +} diff --git a/llvmutil.h b/llvmutil.h new file mode 100644 index 00000000..3a5a4e4c --- /dev/null +++ b/llvmutil.h @@ -0,0 +1,157 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file llvmutil.h + @brief Header file with declarations for various LLVM utility stuff +*/ + +#ifndef ISPC_LLVMUTIL_H +#define ISPC_LLVMUTIL_H 1 + +#include "ispc.h" +#include +#include +#include +#include + +/** This structure holds pointers to a variety of LLVM types; code + elsewhere can use them from here, ratherthan needing to make more + verbose LLVM API calls. + */ +struct LLVMTypes { + static const llvm::Type *VoidType; + static const llvm::PointerType *VoidPointerType; + static const llvm::Type *BoolType; + static const llvm::Type *Int8Type; + static const llvm::Type *Int16Type; + static const llvm::Type *Int32Type; + static const llvm::Type *Int32PointerType; + static const llvm::Type *Int64Type; + static const llvm::Type *Int64PointerType; + static const llvm::Type *FloatType; + static const llvm::Type *FloatPointerType; + static const llvm::Type *DoubleType; + + static const llvm::VectorType *MaskType; + static const llvm::VectorType *BoolVectorType; + static const llvm::VectorType *Int1VectorType; + static const llvm::VectorType *Int32VectorType; + static const llvm::Type *Int32VectorPointerType; + static const llvm::VectorType *Int64VectorType; + static const llvm::Type *Int64VectorPointerType; + static const llvm::VectorType *FloatVectorType; + static const llvm::Type *FloatVectorPointerType; + static const llvm::VectorType *DoubleVectorType; + static const llvm::ArrayType *VoidPointerVectorType; +}; + +/** These variables hold the corresponding LLVM constant values as a + convenience to code elsewhere in the system. + */ +extern llvm::Constant *LLVMTrue, *LLVMFalse; + +/** This should be called early in initialization to initialize the members + of LLVMTypes and the LLVMTrue/LLVMFalse constants. However, it can't + be called until the compilation target is known. + */ +extern void InitLLVMUtil(llvm::LLVMContext *ctx, Target target); + +/** Returns an LLVM i32 constant of the given value */ +extern llvm::ConstantInt *LLVMInt32(int32_t i); +/** Returns an LLVM i32 constant of the given value */ +extern llvm::ConstantInt *LLVMUInt32(uint32_t i); +/** Returns an LLVM i64 constant of the given value */ +extern llvm::ConstantInt *LLVMInt64(int64_t i); +/** Returns an LLVM i64 constant of the given value */ +extern llvm::ConstantInt *LLVMUInt64(uint64_t i); +/** Returns an LLVM float constant of the given value */ +extern llvm::Constant *LLVMFloat(float f); +/** Returns an LLVM double constant of the given value */ +extern llvm::Constant *LLVMDouble(double f); + +/** Returns an LLVM boolean vector constant of the given value smeared + across all elements */ +extern llvm::Constant *LLVMBoolVector(bool v); +/** Returns an LLVM i32 vector constant of the given value smeared + across all elements */ +extern llvm::Constant *LLVMInt32Vector(int32_t i); +/** Returns an LLVM i32 vector constant of the given value smeared + across all elements */ +extern llvm::Constant *LLVMUInt32Vector(uint32_t i); +/** Returns an LLVM i64 vector constant of the given value smeared + across all elements */ +extern llvm::Constant *LLVMInt64Vector(int64_t i); +/** Returns an LLVM i64 vector constant of the given value smeared + across all elements */ +extern llvm::Constant *LLVMUInt64Vector(uint64_t i); +/** Returns an LLVM float vector constant of the given value smeared + across all elements */ +extern llvm::Constant *LLVMFloatVector(float f); +/** Returns an LLVM double vector constant of the given value smeared + across all elements */ +extern llvm::Constant *LLVMDoubleVector(double f); + +/** Returns an LLVM boolean vector based on the given array of values. + The array should have g->target.vectorWidth elements. */ +extern llvm::Constant *LLVMBoolVector(const bool *v); +/** Returns an LLVM i32 vector based on the given array of values. + The array should have g->target.vectorWidth elements. */ +extern llvm::Constant *LLVMInt32Vector(const int32_t *i); +/** Returns an LLVM i32 vector based on the given array of values. + The array should have g->target.vectorWidth elements. */ +extern llvm::Constant *LLVMUInt32Vector(const uint32_t *i); +/** Returns an LLVM i64 vector based on the given array of values. + The array should have g->target.vectorWidth elements. */ +extern llvm::Constant *LLVMInt64Vector(const int64_t *i); +/** Returns an LLVM i64 vector based on the given array of values. + The array should have g->target.vectorWidth elements. */ +extern llvm::Constant *LLVMUInt64Vector(const uint64_t *i); +/** Returns an LLVM float vector based on the given array of values. + The array should have g->target.vectorWidth elements. */ +extern llvm::Constant *LLVMFloatVector(const float *f); +/** Returns an LLVM double vector based on the given array of values. + The array should have g->target.vectorWidth elements. */ +extern llvm::Constant *LLVMDoubleVector(const double *f); + +/** LLVM constant value representing an 'all on' SIMD lane mask */ +extern llvm::Constant *LLVMMaskAllOn; +/** LLVM constant value representing an 'all off' SIMD lane mask */ +extern llvm::Constant *LLVMMaskAllOff; + +/** Given an LLVM type, returns the corresponding type for a vector of + pointers to that type. (In practice, an array of pointers, since LLVM + prohibits vectors of pointers. + */ +extern const llvm::ArrayType *LLVMPointerVectorType(const llvm::Type *t); + +#endif // ISPC_LLVMUTIL_H diff --git a/main.cpp b/main.cpp new file mode 100644 index 00000000..09034828 --- /dev/null +++ b/main.cpp @@ -0,0 +1,330 @@ +/* + Copyright (c) 2010-2011, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** @file main.cpp + @brief main() entrypoint implementation for ispc +*/ + +#include "ispc.h" +#include "module.h" +#include +#include +#ifdef LLVM_2_8 +#include +#else +#include +#endif + +#ifdef ISPC_IS_WINDOWS +#define strcasecmp stricmp +#define BUILD_DATE __DATE__ +#define BUILD_VERSION "" +#endif // ISPC_IS_WINDOWS + +static void usage(int ret) { + printf("This is the Intel(r) SPMD Program Compiler (ispc), build %s (%s)\n\n", BUILD_DATE, BUILD_VERSION); + printf("usage: ispc\n"); + printf(" [--arch={x86,x86-64}]\t\tSelect target architecture\n"); + printf(" [--cpu=]\t\t\tSelect target CPU type\n"); + printf(" (atom, barcelona, core2, corei7, corei7-avx, istanbul, nocona,\n"); + printf(" penryn, westmere)\n"); +#ifndef ISPC_IS_WINDOWS + printf(" [-D]\t\t\t\t#define value when running preprocessor\n"); +#endif + printf(" [--debug]\t\t\t\tPrint information useful for debugging ispc\n"); + printf(" [--emit-asm]\t\t\tGenerate assembly language file as output\n"); + printf(" [--emit-llvm]\t\t\tEmit LLVM bitode file as output\n"); + printf(" [--emit-obj]\t\t\tGenerate object file file as output\n"); + printf(" [--fast-math]\t\t\tPerform non-IEEE-compliant optimizations of numeric expressions\n"); + printf(" [-g]\t\t\t\tGenerate debugging information\n"); + printf(" [--help]\t\t\t\tPrint help\n"); + printf(" [-h] \t\t\t\tOutput filename for header\n"); + printf(" [--instrument]\t\t\tEmit instrumentation to gather performance data\n"); + printf(" [--math-lib=