]> granicus.if.org Git - postgis/commitdiff
Added regression tests for raster2pgsql loader. Ticket is #1388
authorBborie Park <bkpark at ucdavis.edu>
Wed, 8 Feb 2012 16:11:13 +0000 (16:11 +0000)
committerBborie Park <bkpark at ucdavis.edu>
Wed, 8 Feb 2012 16:11:13 +0000 (16:11 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@9098 b70326c6-7e19-0410-871a-916f4a2858ee

24 files changed:
raster/loader/raster2pgsql.c
raster/test/regress/Makefile.in
raster/test/regress/loader/Basic-post.sh [new file with mode: 0755]
raster/test/regress/loader/Basic-pre.sh [new file with mode: 0755]
raster/test/regress/loader/Basic.select.expected [new file with mode: 0644]
raster/test/regress/loader/Basic.select.sql [new file with mode: 0644]
raster/test/regress/loader/Basic.sql.expected [new file with mode: 0644]
raster/test/regress/loader/BasicCopy-post.sh [new file with mode: 0755]
raster/test/regress/loader/BasicCopy-pre.sh [new file with mode: 0755]
raster/test/regress/loader/BasicCopy.opts [new file with mode: 0644]
raster/test/regress/loader/BasicCopy.select.expected [new file with mode: 0644]
raster/test/regress/loader/BasicCopy.select.sql [new file with mode: 0644]
raster/test/regress/loader/BasicCopy.sql.expected [new file with mode: 0644]
raster/test/regress/loader/Tiled10x10-post.sh [new file with mode: 0755]
raster/test/regress/loader/Tiled10x10-pre.sh [new file with mode: 0755]
raster/test/regress/loader/Tiled10x10.opts [new file with mode: 0644]
raster/test/regress/loader/Tiled10x10.select.expected [new file with mode: 0644]
raster/test/regress/loader/Tiled10x10.select.sql [new file with mode: 0644]
raster/test/regress/loader/Tiled10x10Copy-post.sh [new file with mode: 0755]
raster/test/regress/loader/Tiled10x10Copy-pre.sh [new file with mode: 0755]
raster/test/regress/loader/Tiled10x10Copy.opts [new file with mode: 0644]
raster/test/regress/loader/Tiled10x10Copy.select.expected [new file with mode: 0644]
raster/test/regress/loader/Tiled10x10Copy.select.sql [new file with mode: 0644]
regress/run_test

index 41516f6ef61735e91682e848edfde2fdf57fd70e..405e201a41b765ae073608c5b97dba053713e71e 100644 (file)
@@ -1671,6 +1671,12 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
                                        xtile * info->tile_size[0], ytile * info->tile_size[1],
                                        &(gt[0]), &(gt[3])
                                );
+                               /*
+                               rtinfo(_("tile (%d, %d) gt = (%f, %f, %f, %f, %f, %f)"),
+                                       xtile, ytile,
+                                       gt[0], gt[1], gt[2], gt[3], gt[4], gt[5]
+                               );
+                               */
 
                                /* create VRT dataset */
                                hdsDst = VRTCreate(info->tile_size[0], info->tile_size[1]);
index 8cca0a92ca73dfb897259d7176c9f7c15c4c1616..f1dce2ed9494eaac9554782eebde5a3d91185c8c 100644 (file)
@@ -119,12 +119,16 @@ TEST_BUGS = \
        tickets
 
 TEST_LOADER = \
-       loader/basic
+       loader/Basic \
+       loader/BasicCopy \
+       loader/Tiled10x10 \
+       loader/Tiled10x10Copy
 
 TESTS = $(TEST_METADATA) $(TEST_IO) $(TEST_FUNC) \
                $(TEST_PROPS) $(TEST_BANDPROPS) \
                $(TEST_UTILITY) $(TEST_GIST) $(TEST_SREL) \
-               $(TEST_BUGS)
+               $(TEST_BUGS) \
+               $(TEST_LOADER)
 
 all:
        @echo "Use 'make check' to run all tests"
diff --git a/raster/test/regress/loader/Basic-post.sh b/raster/test/regress/loader/Basic-post.sh
new file mode 100755 (executable)
index 0000000..1bdc985
--- /dev/null
@@ -0,0 +1 @@
+rm -f loader/Basic.tif
diff --git a/raster/test/regress/loader/Basic-pre.sh b/raster/test/regress/loader/Basic-pre.sh
new file mode 100755 (executable)
index 0000000..9e4c254
--- /dev/null
@@ -0,0 +1 @@
+cp loader/testraster.tif loader/Basic.tif
diff --git a/raster/test/regress/loader/Basic.select.expected b/raster/test/regress/loader/Basic.select.expected
new file mode 100644 (file)
index 0000000..06ae1a7
--- /dev/null
@@ -0,0 +1,74 @@
+0|1.0000000000|-1.0000000000|90|90|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|01030000000100000005000000000000000000000000000000008056C00000000000000000000000000000000000000000008056400000000000000000000000000080564000000000008056C0000000000000000000000000008056C0
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000A0000004000000000000000000000000000000000000000000000000000000000000000000034C0000000000000244000000000000034C000000000000024400000000000003EC000000000000022400000000000003EC000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C0000000000000244000000000000049C0000000000000224000000000000049C0000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000008051C0000000000000224000000000008051C0000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000040564000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000004056400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000040564000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000040564000000000000034C0000000000080564000000000000034C00000000000805640000000000000000000000000008051400000000000000000000000000080514000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000000000000000494000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000344000000000000024C0000000000000344000000000000000000000000000000000000000000000000005000000000000000000344000000000000044C00000000000003E4000000000000044C00000000000003E4000000000000049C0000000000000344000000000000049C0000000000000344000000000000044C005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C00500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC00500000000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC0050000000000000000004E4000000000000034C0000000000080514000000000000034C000000000008051400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C005000000000000000000444000000000000034C0000000000000494000000000000034C000000000000049400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|0
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|0
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000A0000004100000000000000000024400000000000000000000000000000244000000000000024C0000000000000224000000000000024C0000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C000000000000024400000000000003EC000000000000022400000000000003EC000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C0000000000000244000000000000049C0000000000000224000000000000049C0000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000008051C0000000000000224000000000008051C0000000000000000000000000008051C0000000000000000000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000040564000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000004056400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000040564000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000040564000000000000034C0000000000080564000000000000034C00000000000805640000000000000000000000000008051400000000000000000000000000080514000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000000000000000494000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C00500000000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0050000000000000000004E4000000000000034C0000000000080514000000000000034C000000000008051400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C005000000000000000000444000000000000034C0000000000000494000000000000034C000000000000049400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00500000000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC005000000000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0|255
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|0
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+0103000000010000000500000000000000000054400000000000000000000000000000544000000000000024C0000000000080564000000000000024C00000000000805640000000000000000000000000000054400000000000000000|0
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000A0000004300000000000000000024400000000000000000000000000000244000000000000024C0000000000000224000000000000024C0000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C000000000000024400000000000003EC000000000000022400000000000003EC000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C0000000000000244000000000000049C0000000000000224000000000000049C0000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000008051C0000000000000224000000000008051C0000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008056C0000000000040564000000000008056C0000000000080564000000000008056C0000000000080564000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000004056400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000040564000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000040564000000000000034C0000000000080564000000000000034C0000000000080564000000000000024C0000000000000544000000000000024C00000000000005440000000000000000000000000008051400000000000000000000000000080514000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000000000000000494000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C00500000000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0050000000000000000004E4000000000000034C0000000000080514000000000000034C000000000008051400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C005000000000000000000444000000000000034C0000000000000494000000000000034C000000000000049400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00500000000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC005000000000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|0
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
diff --git a/raster/test/regress/loader/Basic.select.sql b/raster/test/regress/loader/Basic.select.sql
new file mode 100644 (file)
index 0000000..de526ec
--- /dev/null
@@ -0,0 +1,4 @@
+SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, extent FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'the_rast';
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 1)).* FROM loadedrast) foo;
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 2)).* FROM loadedrast) foo;
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 3)).* FROM loadedrast) foo;
diff --git a/raster/test/regress/loader/Basic.sql.expected b/raster/test/regress/loader/Basic.sql.expected
new file mode 100644 (file)
index 0000000..6884abc
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN;
+CREATE TABLE "loadedrast" ("rid" serial PRIMARY KEY,"the_rast" raster);
+INSERT INTO "loadedrast" ("the_rast") VALUES ('0100000300000000000000F03F000000000000F0BF0000000000000000000000000000000000000000000000000000000000000000000000005A005A000400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000040000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000040000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'::raster);
+SELECT AddRasterConstraints('','loadedrast','the_rast',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE);
+END;
diff --git a/raster/test/regress/loader/BasicCopy-post.sh b/raster/test/regress/loader/BasicCopy-post.sh
new file mode 100755 (executable)
index 0000000..4f09b61
--- /dev/null
@@ -0,0 +1 @@
+rm -f loader/BasicCopy.tif
diff --git a/raster/test/regress/loader/BasicCopy-pre.sh b/raster/test/regress/loader/BasicCopy-pre.sh
new file mode 100755 (executable)
index 0000000..bb0ad13
--- /dev/null
@@ -0,0 +1 @@
+cp loader/testraster.tif loader/BasicCopy.tif
diff --git a/raster/test/regress/loader/BasicCopy.opts b/raster/test/regress/loader/BasicCopy.opts
new file mode 100644 (file)
index 0000000..b18b986
--- /dev/null
@@ -0,0 +1 @@
+-Y
diff --git a/raster/test/regress/loader/BasicCopy.select.expected b/raster/test/regress/loader/BasicCopy.select.expected
new file mode 100644 (file)
index 0000000..06ae1a7
--- /dev/null
@@ -0,0 +1,74 @@
+0|1.0000000000|-1.0000000000|90|90|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|01030000000100000005000000000000000000000000000000008056C00000000000000000000000000000000000000000008056400000000000000000000000000080564000000000008056C0000000000000000000000000008056C0
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000A0000004000000000000000000000000000000000000000000000000000000000000000000034C0000000000000244000000000000034C000000000000024400000000000003EC000000000000022400000000000003EC000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C0000000000000244000000000000049C0000000000000224000000000000049C0000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000008051C0000000000000224000000000008051C0000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000040564000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000004056400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000040564000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000040564000000000000034C0000000000080564000000000000034C00000000000805640000000000000000000000000008051400000000000000000000000000080514000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000000000000000494000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000344000000000000024C0000000000000344000000000000000000000000000000000000000000000000005000000000000000000344000000000000044C00000000000003E4000000000000044C00000000000003E4000000000000049C0000000000000344000000000000049C0000000000000344000000000000044C005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C00500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC00500000000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC0050000000000000000004E4000000000000034C0000000000080514000000000000034C000000000008051400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C005000000000000000000444000000000000034C0000000000000494000000000000034C000000000000049400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|0
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|0
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000A0000004100000000000000000024400000000000000000000000000000244000000000000024C0000000000000224000000000000024C0000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C000000000000024400000000000003EC000000000000022400000000000003EC000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C0000000000000244000000000000049C0000000000000224000000000000049C0000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000008051C0000000000000224000000000008051C0000000000000000000000000008051C0000000000000000000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000040564000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000004056400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000040564000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000040564000000000000034C0000000000080564000000000000034C00000000000805640000000000000000000000000008051400000000000000000000000000080514000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000000000000000494000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C00500000000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0050000000000000000004E4000000000000034C0000000000080514000000000000034C000000000008051400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C005000000000000000000444000000000000034C0000000000000494000000000000034C000000000000049400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00500000000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC005000000000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0|255
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|0
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+0103000000010000000500000000000000000054400000000000000000000000000000544000000000000024C0000000000080564000000000000024C00000000000805640000000000000000000000000000054400000000000000000|0
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000A0000004300000000000000000024400000000000000000000000000000244000000000000024C0000000000000224000000000000024C0000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C000000000000024400000000000003EC000000000000022400000000000003EC000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C0000000000000244000000000000049C0000000000000224000000000000049C0000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000008051C0000000000000224000000000008051C0000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008056C0000000000040564000000000008056C0000000000080564000000000008056C0000000000080564000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000004056400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000040564000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000040564000000000000034C0000000000080564000000000000034C0000000000080564000000000000024C0000000000000544000000000000024C00000000000005440000000000000000000000000008051400000000000000000000000000080514000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000000000000000494000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C00500000000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0050000000000000000004E4000000000000034C0000000000080514000000000000034C000000000008051400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C005000000000000000000444000000000000034C0000000000000494000000000000034C000000000000049400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00500000000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC005000000000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|0
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
diff --git a/raster/test/regress/loader/BasicCopy.select.sql b/raster/test/regress/loader/BasicCopy.select.sql
new file mode 100644 (file)
index 0000000..de526ec
--- /dev/null
@@ -0,0 +1,4 @@
+SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, extent FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'the_rast';
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 1)).* FROM loadedrast) foo;
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 2)).* FROM loadedrast) foo;
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 3)).* FROM loadedrast) foo;
diff --git a/raster/test/regress/loader/BasicCopy.sql.expected b/raster/test/regress/loader/BasicCopy.sql.expected
new file mode 100644 (file)
index 0000000..313577c
--- /dev/null
@@ -0,0 +1,7 @@
+BEGIN;
+CREATE TABLE "loadedrast" ("rid" serial PRIMARY KEY,"the_rast" raster);
+COPY "loadedrast" ("the_rast") FROM stdin;
+0100000300000000000000F03F000000000000F0BF0000000000000000000000000000000000000000000000000000000000000000000000005A005A000400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000040000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000040000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFF00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+\.
+SELECT AddRasterConstraints('','loadedrast','the_rast',TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE);
+END;
diff --git a/raster/test/regress/loader/Tiled10x10-post.sh b/raster/test/regress/loader/Tiled10x10-post.sh
new file mode 100755 (executable)
index 0000000..0b4a7ca
--- /dev/null
@@ -0,0 +1 @@
+rm -f loader/Tiled10x10.tif
diff --git a/raster/test/regress/loader/Tiled10x10-pre.sh b/raster/test/regress/loader/Tiled10x10-pre.sh
new file mode 100755 (executable)
index 0000000..d4b6129
--- /dev/null
@@ -0,0 +1 @@
+cp loader/testraster.tif loader/Tiled10x10.tif
diff --git a/raster/test/regress/loader/Tiled10x10.opts b/raster/test/regress/loader/Tiled10x10.opts
new file mode 100644 (file)
index 0000000..292f1f0
--- /dev/null
@@ -0,0 +1 @@
+-t 10x10
diff --git a/raster/test/regress/loader/Tiled10x10.select.expected b/raster/test/regress/loader/Tiled10x10.select.expected
new file mode 100644 (file)
index 0000000..40bd610
--- /dev/null
@@ -0,0 +1,244 @@
+0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|01030000000100000005000000000000000000000000000000008056C00000000000000000000000000000000000000000008056400000000000000000000000000080564000000000008056C0000000000000000000000000008056C0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|255
+0103000000010000000500000000000000000024400000000000000000000000000000244000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000|255
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+010300000001000000050000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E400000000000000000|255
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+0103000000010000000500000000000000000049400000000000000000000000000000494000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000|255
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+0103000000010000000500000000000000008051400000000000000000000000000080514000000000000024C0000000000000544000000000000024C00000000000005440000000000000000000000000008051400000000000000000|255
+0103000000010000000500000000000000000054400000000000000000000000000000544000000000000024C0000000000080564000000000000024C00000000000805640000000000000000000000000000054400000000000000000|255
+01030000000100000005000000000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C0000000000000244000000000000024C0000000000000000000000000000024C0|255
+01030000000100000005000000000000000000244000000000000024C0000000000000244000000000000034C0000000000000344000000000000034C0000000000000344000000000000024C0000000000000244000000000000024C0|255
+01030000000100000005000000000000000000344000000000000024C0000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E4000000000000024C0000000000000344000000000000024C0|255
+010300000001000000050000000000000000003E4000000000000024C00000000000003E4000000000000034C0000000000000444000000000000034C0000000000000444000000000000024C00000000000003E4000000000000024C0|255
+01030000000100000005000000000000000000444000000000000024C0000000000000444000000000000034C0000000000000494000000000000034C0000000000000494000000000000024C0000000000000444000000000000024C0|255
+01030000000100000005000000000000000000494000000000000024C0000000000000494000000000000034C00000000000004E4000000000000034C00000000000004E4000000000000024C0000000000000494000000000000024C0|255
+010300000001000000050000000000000000004E4000000000000024C00000000000004E4000000000000034C0000000000080514000000000000034C0000000000080514000000000000024C00000000000004E4000000000000024C0|255
+01030000000100000005000000000000000080514000000000000024C0000000000080514000000000000034C0000000000000544000000000000034C0000000000000544000000000000024C0000000000080514000000000000024C0|255
+01030000000100000005000000000000000000544000000000000024C0000000000000544000000000000034C0000000000080564000000000000034C0000000000080564000000000000024C0000000000000544000000000000024C0|255
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000244000000000000034C000000000000024400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0000000000000244000000000000034C0|255
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+010300000001000000050000000000000000003E4000000000000034C00000000000003E400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00000000000003E4000000000000034C0|255
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+01030000000100000005000000000000000000494000000000000034C000000000000049400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0000000000000494000000000000034C0|255
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000080514000000000000034C000000000008051400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000080514000000000000034C0|255
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+0103000000010000000500000000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C000000000000024400000000000003EC000000000000000000000000000003EC0|255
+0103000000010000000500000000000000000024400000000000003EC0000000000000244000000000000044C0000000000000344000000000000044C000000000000034400000000000003EC000000000000024400000000000003EC0|255
+0103000000010000000500000000000000000034400000000000003EC0000000000000344000000000000044C00000000000003E4000000000000044C00000000000003E400000000000003EC000000000000034400000000000003EC0|255
+010300000001000000050000000000000000003E400000000000003EC00000000000003E4000000000000044C0000000000000444000000000000044C000000000000044400000000000003EC00000000000003E400000000000003EC0|255
+0103000000010000000500000000000000000044400000000000003EC0000000000000444000000000000044C0000000000000494000000000000044C000000000000049400000000000003EC000000000000044400000000000003EC0|255
+0103000000010000000500000000000000000049400000000000003EC0000000000000494000000000000044C00000000000004E4000000000000044C00000000000004E400000000000003EC000000000000049400000000000003EC0|255
+010300000001000000050000000000000000004E400000000000003EC00000000000004E4000000000000044C0000000000080514000000000000044C000000000008051400000000000003EC00000000000004E400000000000003EC0|255
+0103000000010000000500000000000000008051400000000000003EC0000000000080514000000000000044C0000000000000544000000000000044C000000000000054400000000000003EC000000000008051400000000000003EC0|255
+0103000000010000000500000000000000000054400000000000003EC0000000000000544000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0|255
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000244000000000000044C0000000000000244000000000000049C0000000000000344000000000000049C0000000000000344000000000000044C0000000000000244000000000000044C0|255
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+010300000001000000050000000000000000003E4000000000000044C00000000000003E4000000000000049C0000000000000444000000000000049C0000000000000444000000000000044C00000000000003E4000000000000044C0|255
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+01030000000100000005000000000000000000494000000000000044C0000000000000494000000000000049C00000000000004E4000000000000049C00000000000004E4000000000000044C0000000000000494000000000000044C0|255
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000080514000000000000044C0000000000080514000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000080514000000000000044C0|255
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+01030000000100000005000000000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000000049C0000000000000000000000000000049C0|255
+01030000000100000005000000000000000000244000000000000049C000000000000024400000000000004EC000000000000034400000000000004EC0000000000000344000000000000049C0000000000000244000000000000049C0|255
+01030000000100000005000000000000000000344000000000000049C000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000000049C0000000000000344000000000000049C0|255
+010300000001000000050000000000000000003E4000000000000049C00000000000003E400000000000004EC000000000000044400000000000004EC0000000000000444000000000000049C00000000000003E4000000000000049C0|255
+01030000000100000005000000000000000000444000000000000049C000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000000049C0000000000000444000000000000049C0|255
+01030000000100000005000000000000000000494000000000000049C000000000000049400000000000004EC00000000000004E400000000000004EC00000000000004E4000000000000049C0000000000000494000000000000049C0|255
+010300000001000000050000000000000000004E4000000000000049C00000000000004E400000000000004EC000000000008051400000000000004EC0000000000080514000000000000049C00000000000004E4000000000000049C0|255
+01030000000100000005000000000000000080514000000000000049C000000000008051400000000000004EC000000000000054400000000000004EC0000000000000544000000000000049C0000000000080514000000000000049C0|255
+01030000000100000005000000000000000000544000000000000049C000000000000054400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0|255
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000024400000000000004EC0000000000000244000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC000000000000024400000000000004EC0|255
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+010300000001000000050000000000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC00000000000003E400000000000004EC0|255
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+0103000000010000000500000000000000000049400000000000004EC0000000000000494000000000008051C00000000000004E4000000000008051C00000000000004E400000000000004EC000000000000049400000000000004EC0|255
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000008051400000000000004EC0000000000080514000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000008051400000000000004EC0|255
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000100000005000000000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008051C0000000000000000000000000008051C0|255
+01030000000100000005000000000000000000244000000000008051C0000000000000244000000000000054C0000000000000344000000000000054C0000000000000344000000000008051C0000000000000244000000000008051C0|255
+01030000000100000005000000000000000000344000000000008051C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008051C0000000000000344000000000008051C0|255
+010300000001000000050000000000000000003E4000000000008051C00000000000003E4000000000000054C0000000000000444000000000000054C0000000000000444000000000008051C00000000000003E4000000000008051C0|255
+01030000000100000005000000000000000000444000000000008051C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008051C0000000000000444000000000008051C0|255
+01030000000100000005000000000000000000494000000000008051C0000000000000494000000000000054C00000000000004E4000000000000054C00000000000004E4000000000008051C0000000000000494000000000008051C0|255
+010300000001000000050000000000000000004E4000000000008051C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008051C00000000000004E4000000000008051C0|255
+01030000000100000005000000000000000080514000000000008051C0000000000080514000000000000054C0000000000000544000000000000054C0000000000000544000000000008051C0000000000080514000000000008051C0|255
+01030000000100000005000000000000000000544000000000008051C0000000000000544000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|0
+01030000000100000005000000000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C0000000000000244000000000000054C0|255
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+010300000001000000050000000000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C00000000000003E4000000000000054C0|255
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+01030000000100000005000000000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000000494000000000000054C0|255
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000080514000000000000054C0|255
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|0
+0103000000010000000500000000000000000024400000000000000000000000000000244000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000|255
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+010300000001000000050000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E400000000000000000|255
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+0103000000010000000500000000000000000049400000000000000000000000000000494000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000|255
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+0103000000010000000500000000000000008051400000000000000000000000000080514000000000000024C0000000000000544000000000000024C00000000000005440000000000000000000000000008051400000000000000000|255
+0103000000010000000500000000000000000054400000000000000000000000000000544000000000000024C0000000000080564000000000000024C00000000000805640000000000000000000000000000054400000000000000000|255
+01030000000100000005000000000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C0000000000000244000000000000024C0000000000000000000000000000024C0|255
+01030000000100000005000000000000000000244000000000000024C0000000000000244000000000000034C0000000000000344000000000000034C0000000000000344000000000000024C0000000000000244000000000000024C0|255
+01030000000100000005000000000000000000344000000000000024C0000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E4000000000000024C0000000000000344000000000000024C0|255
+010300000001000000050000000000000000003E4000000000000024C00000000000003E4000000000000034C0000000000000444000000000000034C0000000000000444000000000000024C00000000000003E4000000000000024C0|255
+01030000000100000005000000000000000000444000000000000024C0000000000000444000000000000034C0000000000000494000000000000034C0000000000000494000000000000024C0000000000000444000000000000024C0|255
+01030000000100000005000000000000000000494000000000000024C0000000000000494000000000000034C00000000000004E4000000000000034C00000000000004E4000000000000024C0000000000000494000000000000024C0|255
+010300000001000000050000000000000000004E4000000000000024C00000000000004E4000000000000034C0000000000080514000000000000034C0000000000080514000000000000024C00000000000004E4000000000000024C0|255
+01030000000100000005000000000000000080514000000000000024C0000000000080514000000000000034C0000000000000544000000000000034C0000000000000544000000000000024C0000000000080514000000000000024C0|255
+01030000000100000005000000000000000000544000000000000024C0000000000000544000000000000034C0000000000080564000000000000034C0000000000080564000000000000024C0000000000000544000000000000024C0|255
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000244000000000000034C000000000000024400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0000000000000244000000000000034C0|255
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+010300000001000000050000000000000000003E4000000000000034C00000000000003E400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00000000000003E4000000000000034C0|255
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+01030000000100000005000000000000000000494000000000000034C000000000000049400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0000000000000494000000000000034C0|255
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000080514000000000000034C000000000008051400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000080514000000000000034C0|255
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+0103000000010000000500000000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C000000000000024400000000000003EC000000000000000000000000000003EC0|255
+0103000000010000000500000000000000000024400000000000003EC0000000000000244000000000000044C0000000000000344000000000000044C000000000000034400000000000003EC000000000000024400000000000003EC0|255
+0103000000010000000500000000000000000034400000000000003EC0000000000000344000000000000044C00000000000003E4000000000000044C00000000000003E400000000000003EC000000000000034400000000000003EC0|255
+010300000001000000050000000000000000003E400000000000003EC00000000000003E4000000000000044C0000000000000444000000000000044C000000000000044400000000000003EC00000000000003E400000000000003EC0|255
+0103000000010000000500000000000000000044400000000000003EC0000000000000444000000000000044C0000000000000494000000000000044C000000000000049400000000000003EC000000000000044400000000000003EC0|255
+0103000000010000000500000000000000000049400000000000003EC0000000000000494000000000000044C00000000000004E4000000000000044C00000000000004E400000000000003EC000000000000049400000000000003EC0|255
+010300000001000000050000000000000000004E400000000000003EC00000000000004E4000000000000044C0000000000080514000000000000044C000000000008051400000000000003EC00000000000004E400000000000003EC0|255
+0103000000010000000500000000000000008051400000000000003EC0000000000080514000000000000044C0000000000000544000000000000044C000000000000054400000000000003EC000000000008051400000000000003EC0|255
+0103000000010000000500000000000000000054400000000000003EC0000000000000544000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0|255
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000244000000000000044C0000000000000244000000000000049C0000000000000344000000000000049C0000000000000344000000000000044C0000000000000244000000000000044C0|255
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+010300000001000000050000000000000000003E4000000000000044C00000000000003E4000000000000049C0000000000000444000000000000049C0000000000000444000000000000044C00000000000003E4000000000000044C0|255
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+01030000000100000005000000000000000000494000000000000044C0000000000000494000000000000049C00000000000004E4000000000000049C00000000000004E4000000000000044C0000000000000494000000000000044C0|255
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000080514000000000000044C0000000000080514000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000080514000000000000044C0|255
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+01030000000100000005000000000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000000049C0000000000000000000000000000049C0|255
+01030000000100000005000000000000000000244000000000000049C000000000000024400000000000004EC000000000000034400000000000004EC0000000000000344000000000000049C0000000000000244000000000000049C0|255
+01030000000100000005000000000000000000344000000000000049C000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000000049C0000000000000344000000000000049C0|255
+010300000001000000050000000000000000003E4000000000000049C00000000000003E400000000000004EC000000000000044400000000000004EC0000000000000444000000000000049C00000000000003E4000000000000049C0|255
+01030000000100000005000000000000000000444000000000000049C000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000000049C0000000000000444000000000000049C0|255
+01030000000100000005000000000000000000494000000000000049C000000000000049400000000000004EC00000000000004E400000000000004EC00000000000004E4000000000000049C0000000000000494000000000000049C0|255
+010300000001000000050000000000000000004E4000000000000049C00000000000004E400000000000004EC000000000008051400000000000004EC0000000000080514000000000000049C00000000000004E4000000000000049C0|255
+01030000000100000005000000000000000080514000000000000049C000000000008051400000000000004EC000000000000054400000000000004EC0000000000000544000000000000049C0000000000080514000000000000049C0|255
+01030000000100000005000000000000000000544000000000000049C000000000000054400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0|255
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000024400000000000004EC0000000000000244000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC000000000000024400000000000004EC0|255
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+010300000001000000050000000000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC00000000000003E400000000000004EC0|255
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+0103000000010000000500000000000000000049400000000000004EC0000000000000494000000000008051C00000000000004E4000000000008051C00000000000004E400000000000004EC000000000000049400000000000004EC0|255
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000008051400000000000004EC0000000000080514000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000008051400000000000004EC0|255
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000100000005000000000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008051C0000000000000000000000000008051C0|255
+01030000000100000005000000000000000000244000000000008051C0000000000000244000000000000054C0000000000000344000000000000054C0000000000000344000000000008051C0000000000000244000000000008051C0|255
+01030000000100000005000000000000000000344000000000008051C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008051C0000000000000344000000000008051C0|255
+010300000001000000050000000000000000003E4000000000008051C00000000000003E4000000000000054C0000000000000444000000000000054C0000000000000444000000000008051C00000000000003E4000000000008051C0|255
+01030000000100000005000000000000000000444000000000008051C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008051C0000000000000444000000000008051C0|255
+01030000000100000005000000000000000000494000000000008051C0000000000000494000000000000054C00000000000004E4000000000000054C00000000000004E4000000000008051C0000000000000494000000000008051C0|255
+010300000001000000050000000000000000004E4000000000008051C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008051C00000000000004E4000000000008051C0|255
+01030000000100000005000000000000000080514000000000008051C0000000000080514000000000000054C0000000000000544000000000000054C0000000000000544000000000008051C0000000000080514000000000008051C0|255
+01030000000100000005000000000000000000544000000000008051C0000000000000544000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|255
+01030000000100000005000000000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C0000000000000244000000000000054C0|255
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+010300000001000000050000000000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C00000000000003E4000000000000054C0|255
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+01030000000100000005000000000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000000494000000000000054C0|255
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000080514000000000000054C0|255
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|0
+0103000000010000000500000000000000000024400000000000000000000000000000244000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000|255
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+010300000001000000050000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E400000000000000000|255
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+0103000000010000000500000000000000000049400000000000000000000000000000494000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000|255
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+0103000000010000000500000000000000008051400000000000000000000000000080514000000000000024C0000000000000544000000000000024C00000000000005440000000000000000000000000008051400000000000000000|255
+0103000000010000000500000000000000000054400000000000000000000000000000544000000000000024C0000000000080564000000000000024C00000000000805640000000000000000000000000000054400000000000000000|0
+01030000000100000005000000000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C0000000000000244000000000000024C0000000000000000000000000000024C0|255
+01030000000100000005000000000000000000244000000000000024C0000000000000244000000000000034C0000000000000344000000000000034C0000000000000344000000000000024C0000000000000244000000000000024C0|255
+01030000000100000005000000000000000000344000000000000024C0000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E4000000000000024C0000000000000344000000000000024C0|255
+010300000001000000050000000000000000003E4000000000000024C00000000000003E4000000000000034C0000000000000444000000000000034C0000000000000444000000000000024C00000000000003E4000000000000024C0|255
+01030000000100000005000000000000000000444000000000000024C0000000000000444000000000000034C0000000000000494000000000000034C0000000000000494000000000000024C0000000000000444000000000000024C0|255
+01030000000100000005000000000000000000494000000000000024C0000000000000494000000000000034C00000000000004E4000000000000034C00000000000004E4000000000000024C0000000000000494000000000000024C0|255
+010300000001000000050000000000000000004E4000000000000024C00000000000004E4000000000000034C0000000000080514000000000000034C0000000000080514000000000000024C00000000000004E4000000000000024C0|255
+01030000000100000005000000000000000080514000000000000024C0000000000080514000000000000034C0000000000000544000000000000034C0000000000000544000000000000024C0000000000080514000000000000024C0|255
+01030000000100000005000000000000000000544000000000000024C0000000000000544000000000000034C0000000000080564000000000000034C0000000000080564000000000000024C0000000000000544000000000000024C0|255
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000244000000000000034C000000000000024400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0000000000000244000000000000034C0|255
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+010300000001000000050000000000000000003E4000000000000034C00000000000003E400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00000000000003E4000000000000034C0|255
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+01030000000100000005000000000000000000494000000000000034C000000000000049400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0000000000000494000000000000034C0|255
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000080514000000000000034C000000000008051400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000080514000000000000034C0|255
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+0103000000010000000500000000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C000000000000024400000000000003EC000000000000000000000000000003EC0|255
+0103000000010000000500000000000000000024400000000000003EC0000000000000244000000000000044C0000000000000344000000000000044C000000000000034400000000000003EC000000000000024400000000000003EC0|255
+0103000000010000000500000000000000000034400000000000003EC0000000000000344000000000000044C00000000000003E4000000000000044C00000000000003E400000000000003EC000000000000034400000000000003EC0|255
+010300000001000000050000000000000000003E400000000000003EC00000000000003E4000000000000044C0000000000000444000000000000044C000000000000044400000000000003EC00000000000003E400000000000003EC0|255
+0103000000010000000500000000000000000044400000000000003EC0000000000000444000000000000044C0000000000000494000000000000044C000000000000049400000000000003EC000000000000044400000000000003EC0|255
+0103000000010000000500000000000000000049400000000000003EC0000000000000494000000000000044C00000000000004E4000000000000044C00000000000004E400000000000003EC000000000000049400000000000003EC0|255
+010300000001000000050000000000000000004E400000000000003EC00000000000004E4000000000000044C0000000000080514000000000000044C000000000008051400000000000003EC00000000000004E400000000000003EC0|255
+0103000000010000000500000000000000008051400000000000003EC0000000000080514000000000000044C0000000000000544000000000000044C000000000000054400000000000003EC000000000008051400000000000003EC0|255
+0103000000010000000500000000000000000054400000000000003EC0000000000000544000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0|255
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000244000000000000044C0000000000000244000000000000049C0000000000000344000000000000049C0000000000000344000000000000044C0000000000000244000000000000044C0|255
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+010300000001000000050000000000000000003E4000000000000044C00000000000003E4000000000000049C0000000000000444000000000000049C0000000000000444000000000000044C00000000000003E4000000000000044C0|255
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+01030000000100000005000000000000000000494000000000000044C0000000000000494000000000000049C00000000000004E4000000000000049C00000000000004E4000000000000044C0000000000000494000000000000044C0|255
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000080514000000000000044C0000000000080514000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000080514000000000000044C0|255
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+01030000000100000005000000000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000000049C0000000000000000000000000000049C0|255
+01030000000100000005000000000000000000244000000000000049C000000000000024400000000000004EC000000000000034400000000000004EC0000000000000344000000000000049C0000000000000244000000000000049C0|255
+01030000000100000005000000000000000000344000000000000049C000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000000049C0000000000000344000000000000049C0|255
+010300000001000000050000000000000000003E4000000000000049C00000000000003E400000000000004EC000000000000044400000000000004EC0000000000000444000000000000049C00000000000003E4000000000000049C0|255
+01030000000100000005000000000000000000444000000000000049C000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000000049C0000000000000444000000000000049C0|255
+01030000000100000005000000000000000000494000000000000049C000000000000049400000000000004EC00000000000004E400000000000004EC00000000000004E4000000000000049C0000000000000494000000000000049C0|255
+010300000001000000050000000000000000004E4000000000000049C00000000000004E400000000000004EC000000000008051400000000000004EC0000000000080514000000000000049C00000000000004E4000000000000049C0|255
+01030000000100000005000000000000000080514000000000000049C000000000008051400000000000004EC000000000000054400000000000004EC0000000000000544000000000000049C0000000000080514000000000000049C0|255
+01030000000100000005000000000000000000544000000000000049C000000000000054400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0|255
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000024400000000000004EC0000000000000244000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC000000000000024400000000000004EC0|255
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+010300000001000000050000000000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC00000000000003E400000000000004EC0|255
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+0103000000010000000500000000000000000049400000000000004EC0000000000000494000000000008051C00000000000004E4000000000008051C00000000000004E400000000000004EC000000000000049400000000000004EC0|255
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000008051400000000000004EC0000000000080514000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000008051400000000000004EC0|255
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000100000005000000000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008051C0000000000000000000000000008051C0|255
+01030000000100000005000000000000000000244000000000008051C0000000000000244000000000000054C0000000000000344000000000000054C0000000000000344000000000008051C0000000000000244000000000008051C0|255
+01030000000100000005000000000000000000344000000000008051C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008051C0000000000000344000000000008051C0|255
+010300000001000000050000000000000000003E4000000000008051C00000000000003E4000000000000054C0000000000000444000000000000054C0000000000000444000000000008051C00000000000003E4000000000008051C0|255
+01030000000100000005000000000000000000444000000000008051C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008051C0000000000000444000000000008051C0|255
+01030000000100000005000000000000000000494000000000008051C0000000000000494000000000000054C00000000000004E4000000000000054C00000000000004E4000000000008051C0000000000000494000000000008051C0|255
+010300000001000000050000000000000000004E4000000000008051C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008051C00000000000004E4000000000008051C0|255
+01030000000100000005000000000000000080514000000000008051C0000000000080514000000000000054C0000000000000544000000000000054C0000000000000544000000000008051C0000000000080514000000000008051C0|255
+01030000000100000005000000000000000000544000000000008051C0000000000000544000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|0
+01030000000100000005000000000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C0000000000000244000000000000054C0|255
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+010300000001000000050000000000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C00000000000003E4000000000000054C0|255
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+01030000000100000005000000000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000000494000000000000054C0|255
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000080514000000000000054C0|255
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|255
diff --git a/raster/test/regress/loader/Tiled10x10.select.sql b/raster/test/regress/loader/Tiled10x10.select.sql
new file mode 100644 (file)
index 0000000..de526ec
--- /dev/null
@@ -0,0 +1,4 @@
+SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, extent FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'the_rast';
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 1)).* FROM loadedrast) foo;
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 2)).* FROM loadedrast) foo;
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 3)).* FROM loadedrast) foo;
diff --git a/raster/test/regress/loader/Tiled10x10Copy-post.sh b/raster/test/regress/loader/Tiled10x10Copy-post.sh
new file mode 100755 (executable)
index 0000000..d0adf08
--- /dev/null
@@ -0,0 +1 @@
+rm -f loader/Tiled10x10Copy.tif
diff --git a/raster/test/regress/loader/Tiled10x10Copy-pre.sh b/raster/test/regress/loader/Tiled10x10Copy-pre.sh
new file mode 100755 (executable)
index 0000000..2539174
--- /dev/null
@@ -0,0 +1 @@
+cp loader/testraster.tif loader/Tiled10x10Copy.tif
diff --git a/raster/test/regress/loader/Tiled10x10Copy.opts b/raster/test/regress/loader/Tiled10x10Copy.opts
new file mode 100644 (file)
index 0000000..cbdb7ab
--- /dev/null
@@ -0,0 +1 @@
+-t 10x10 -Y
diff --git a/raster/test/regress/loader/Tiled10x10Copy.select.expected b/raster/test/regress/loader/Tiled10x10Copy.select.expected
new file mode 100644 (file)
index 0000000..40bd610
--- /dev/null
@@ -0,0 +1,244 @@
+0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|01030000000100000005000000000000000000000000000000008056C00000000000000000000000000000000000000000008056400000000000000000000000000080564000000000008056C0000000000000000000000000008056C0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|255
+0103000000010000000500000000000000000024400000000000000000000000000000244000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000|255
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+010300000001000000050000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E400000000000000000|255
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+0103000000010000000500000000000000000049400000000000000000000000000000494000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000|255
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+0103000000010000000500000000000000008051400000000000000000000000000080514000000000000024C0000000000000544000000000000024C00000000000005440000000000000000000000000008051400000000000000000|255
+0103000000010000000500000000000000000054400000000000000000000000000000544000000000000024C0000000000080564000000000000024C00000000000805640000000000000000000000000000054400000000000000000|255
+01030000000100000005000000000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C0000000000000244000000000000024C0000000000000000000000000000024C0|255
+01030000000100000005000000000000000000244000000000000024C0000000000000244000000000000034C0000000000000344000000000000034C0000000000000344000000000000024C0000000000000244000000000000024C0|255
+01030000000100000005000000000000000000344000000000000024C0000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E4000000000000024C0000000000000344000000000000024C0|255
+010300000001000000050000000000000000003E4000000000000024C00000000000003E4000000000000034C0000000000000444000000000000034C0000000000000444000000000000024C00000000000003E4000000000000024C0|255
+01030000000100000005000000000000000000444000000000000024C0000000000000444000000000000034C0000000000000494000000000000034C0000000000000494000000000000024C0000000000000444000000000000024C0|255
+01030000000100000005000000000000000000494000000000000024C0000000000000494000000000000034C00000000000004E4000000000000034C00000000000004E4000000000000024C0000000000000494000000000000024C0|255
+010300000001000000050000000000000000004E4000000000000024C00000000000004E4000000000000034C0000000000080514000000000000034C0000000000080514000000000000024C00000000000004E4000000000000024C0|255
+01030000000100000005000000000000000080514000000000000024C0000000000080514000000000000034C0000000000000544000000000000034C0000000000000544000000000000024C0000000000080514000000000000024C0|255
+01030000000100000005000000000000000000544000000000000024C0000000000000544000000000000034C0000000000080564000000000000034C0000000000080564000000000000024C0000000000000544000000000000024C0|255
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000244000000000000034C000000000000024400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0000000000000244000000000000034C0|255
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+010300000001000000050000000000000000003E4000000000000034C00000000000003E400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00000000000003E4000000000000034C0|255
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+01030000000100000005000000000000000000494000000000000034C000000000000049400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0000000000000494000000000000034C0|255
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000080514000000000000034C000000000008051400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000080514000000000000034C0|255
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+0103000000010000000500000000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C000000000000024400000000000003EC000000000000000000000000000003EC0|255
+0103000000010000000500000000000000000024400000000000003EC0000000000000244000000000000044C0000000000000344000000000000044C000000000000034400000000000003EC000000000000024400000000000003EC0|255
+0103000000010000000500000000000000000034400000000000003EC0000000000000344000000000000044C00000000000003E4000000000000044C00000000000003E400000000000003EC000000000000034400000000000003EC0|255
+010300000001000000050000000000000000003E400000000000003EC00000000000003E4000000000000044C0000000000000444000000000000044C000000000000044400000000000003EC00000000000003E400000000000003EC0|255
+0103000000010000000500000000000000000044400000000000003EC0000000000000444000000000000044C0000000000000494000000000000044C000000000000049400000000000003EC000000000000044400000000000003EC0|255
+0103000000010000000500000000000000000049400000000000003EC0000000000000494000000000000044C00000000000004E4000000000000044C00000000000004E400000000000003EC000000000000049400000000000003EC0|255
+010300000001000000050000000000000000004E400000000000003EC00000000000004E4000000000000044C0000000000080514000000000000044C000000000008051400000000000003EC00000000000004E400000000000003EC0|255
+0103000000010000000500000000000000008051400000000000003EC0000000000080514000000000000044C0000000000000544000000000000044C000000000000054400000000000003EC000000000008051400000000000003EC0|255
+0103000000010000000500000000000000000054400000000000003EC0000000000000544000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0|255
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000244000000000000044C0000000000000244000000000000049C0000000000000344000000000000049C0000000000000344000000000000044C0000000000000244000000000000044C0|255
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+010300000001000000050000000000000000003E4000000000000044C00000000000003E4000000000000049C0000000000000444000000000000049C0000000000000444000000000000044C00000000000003E4000000000000044C0|255
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+01030000000100000005000000000000000000494000000000000044C0000000000000494000000000000049C00000000000004E4000000000000049C00000000000004E4000000000000044C0000000000000494000000000000044C0|255
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000080514000000000000044C0000000000080514000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000080514000000000000044C0|255
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+01030000000100000005000000000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000000049C0000000000000000000000000000049C0|255
+01030000000100000005000000000000000000244000000000000049C000000000000024400000000000004EC000000000000034400000000000004EC0000000000000344000000000000049C0000000000000244000000000000049C0|255
+01030000000100000005000000000000000000344000000000000049C000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000000049C0000000000000344000000000000049C0|255
+010300000001000000050000000000000000003E4000000000000049C00000000000003E400000000000004EC000000000000044400000000000004EC0000000000000444000000000000049C00000000000003E4000000000000049C0|255
+01030000000100000005000000000000000000444000000000000049C000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000000049C0000000000000444000000000000049C0|255
+01030000000100000005000000000000000000494000000000000049C000000000000049400000000000004EC00000000000004E400000000000004EC00000000000004E4000000000000049C0000000000000494000000000000049C0|255
+010300000001000000050000000000000000004E4000000000000049C00000000000004E400000000000004EC000000000008051400000000000004EC0000000000080514000000000000049C00000000000004E4000000000000049C0|255
+01030000000100000005000000000000000080514000000000000049C000000000008051400000000000004EC000000000000054400000000000004EC0000000000000544000000000000049C0000000000080514000000000000049C0|255
+01030000000100000005000000000000000000544000000000000049C000000000000054400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0|255
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000024400000000000004EC0000000000000244000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC000000000000024400000000000004EC0|255
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+010300000001000000050000000000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC00000000000003E400000000000004EC0|255
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+0103000000010000000500000000000000000049400000000000004EC0000000000000494000000000008051C00000000000004E4000000000008051C00000000000004E400000000000004EC000000000000049400000000000004EC0|255
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000008051400000000000004EC0000000000080514000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000008051400000000000004EC0|255
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000100000005000000000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008051C0000000000000000000000000008051C0|255
+01030000000100000005000000000000000000244000000000008051C0000000000000244000000000000054C0000000000000344000000000000054C0000000000000344000000000008051C0000000000000244000000000008051C0|255
+01030000000100000005000000000000000000344000000000008051C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008051C0000000000000344000000000008051C0|255
+010300000001000000050000000000000000003E4000000000008051C00000000000003E4000000000000054C0000000000000444000000000000054C0000000000000444000000000008051C00000000000003E4000000000008051C0|255
+01030000000100000005000000000000000000444000000000008051C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008051C0000000000000444000000000008051C0|255
+01030000000100000005000000000000000000494000000000008051C0000000000000494000000000000054C00000000000004E4000000000000054C00000000000004E4000000000008051C0000000000000494000000000008051C0|255
+010300000001000000050000000000000000004E4000000000008051C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008051C00000000000004E4000000000008051C0|255
+01030000000100000005000000000000000080514000000000008051C0000000000080514000000000000054C0000000000000544000000000000054C0000000000000544000000000008051C0000000000080514000000000008051C0|255
+01030000000100000005000000000000000000544000000000008051C0000000000000544000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|0
+01030000000100000005000000000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C0000000000000244000000000000054C0|255
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+010300000001000000050000000000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C00000000000003E4000000000000054C0|255
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+01030000000100000005000000000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000000494000000000000054C0|255
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000080514000000000000054C0|255
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|0
+0103000000010000000500000000000000000024400000000000000000000000000000244000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000|255
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+010300000001000000050000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E400000000000000000|255
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+0103000000010000000500000000000000000049400000000000000000000000000000494000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000|255
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+0103000000010000000500000000000000008051400000000000000000000000000080514000000000000024C0000000000000544000000000000024C00000000000005440000000000000000000000000008051400000000000000000|255
+0103000000010000000500000000000000000054400000000000000000000000000000544000000000000024C0000000000080564000000000000024C00000000000805640000000000000000000000000000054400000000000000000|255
+01030000000100000005000000000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C0000000000000244000000000000024C0000000000000000000000000000024C0|255
+01030000000100000005000000000000000000244000000000000024C0000000000000244000000000000034C0000000000000344000000000000034C0000000000000344000000000000024C0000000000000244000000000000024C0|255
+01030000000100000005000000000000000000344000000000000024C0000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E4000000000000024C0000000000000344000000000000024C0|255
+010300000001000000050000000000000000003E4000000000000024C00000000000003E4000000000000034C0000000000000444000000000000034C0000000000000444000000000000024C00000000000003E4000000000000024C0|255
+01030000000100000005000000000000000000444000000000000024C0000000000000444000000000000034C0000000000000494000000000000034C0000000000000494000000000000024C0000000000000444000000000000024C0|255
+01030000000100000005000000000000000000494000000000000024C0000000000000494000000000000034C00000000000004E4000000000000034C00000000000004E4000000000000024C0000000000000494000000000000024C0|255
+010300000001000000050000000000000000004E4000000000000024C00000000000004E4000000000000034C0000000000080514000000000000034C0000000000080514000000000000024C00000000000004E4000000000000024C0|255
+01030000000100000005000000000000000080514000000000000024C0000000000080514000000000000034C0000000000000544000000000000034C0000000000000544000000000000024C0000000000080514000000000000024C0|255
+01030000000100000005000000000000000000544000000000000024C0000000000000544000000000000034C0000000000080564000000000000034C0000000000080564000000000000024C0000000000000544000000000000024C0|255
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000244000000000000034C000000000000024400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0000000000000244000000000000034C0|255
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+010300000001000000050000000000000000003E4000000000000034C00000000000003E400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00000000000003E4000000000000034C0|255
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+01030000000100000005000000000000000000494000000000000034C000000000000049400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0000000000000494000000000000034C0|255
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000080514000000000000034C000000000008051400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000080514000000000000034C0|255
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+0103000000010000000500000000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C000000000000024400000000000003EC000000000000000000000000000003EC0|255
+0103000000010000000500000000000000000024400000000000003EC0000000000000244000000000000044C0000000000000344000000000000044C000000000000034400000000000003EC000000000000024400000000000003EC0|255
+0103000000010000000500000000000000000034400000000000003EC0000000000000344000000000000044C00000000000003E4000000000000044C00000000000003E400000000000003EC000000000000034400000000000003EC0|255
+010300000001000000050000000000000000003E400000000000003EC00000000000003E4000000000000044C0000000000000444000000000000044C000000000000044400000000000003EC00000000000003E400000000000003EC0|255
+0103000000010000000500000000000000000044400000000000003EC0000000000000444000000000000044C0000000000000494000000000000044C000000000000049400000000000003EC000000000000044400000000000003EC0|255
+0103000000010000000500000000000000000049400000000000003EC0000000000000494000000000000044C00000000000004E4000000000000044C00000000000004E400000000000003EC000000000000049400000000000003EC0|255
+010300000001000000050000000000000000004E400000000000003EC00000000000004E4000000000000044C0000000000080514000000000000044C000000000008051400000000000003EC00000000000004E400000000000003EC0|255
+0103000000010000000500000000000000008051400000000000003EC0000000000080514000000000000044C0000000000000544000000000000044C000000000000054400000000000003EC000000000008051400000000000003EC0|255
+0103000000010000000500000000000000000054400000000000003EC0000000000000544000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0|255
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000244000000000000044C0000000000000244000000000000049C0000000000000344000000000000049C0000000000000344000000000000044C0000000000000244000000000000044C0|255
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+010300000001000000050000000000000000003E4000000000000044C00000000000003E4000000000000049C0000000000000444000000000000049C0000000000000444000000000000044C00000000000003E4000000000000044C0|255
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+01030000000100000005000000000000000000494000000000000044C0000000000000494000000000000049C00000000000004E4000000000000049C00000000000004E4000000000000044C0000000000000494000000000000044C0|255
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000080514000000000000044C0000000000080514000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000080514000000000000044C0|255
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+01030000000100000005000000000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000000049C0000000000000000000000000000049C0|255
+01030000000100000005000000000000000000244000000000000049C000000000000024400000000000004EC000000000000034400000000000004EC0000000000000344000000000000049C0000000000000244000000000000049C0|255
+01030000000100000005000000000000000000344000000000000049C000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000000049C0000000000000344000000000000049C0|255
+010300000001000000050000000000000000003E4000000000000049C00000000000003E400000000000004EC000000000000044400000000000004EC0000000000000444000000000000049C00000000000003E4000000000000049C0|255
+01030000000100000005000000000000000000444000000000000049C000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000000049C0000000000000444000000000000049C0|255
+01030000000100000005000000000000000000494000000000000049C000000000000049400000000000004EC00000000000004E400000000000004EC00000000000004E4000000000000049C0000000000000494000000000000049C0|255
+010300000001000000050000000000000000004E4000000000000049C00000000000004E400000000000004EC000000000008051400000000000004EC0000000000080514000000000000049C00000000000004E4000000000000049C0|255
+01030000000100000005000000000000000080514000000000000049C000000000008051400000000000004EC000000000000054400000000000004EC0000000000000544000000000000049C0000000000080514000000000000049C0|255
+01030000000100000005000000000000000000544000000000000049C000000000000054400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0|255
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000024400000000000004EC0000000000000244000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC000000000000024400000000000004EC0|255
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+010300000001000000050000000000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC00000000000003E400000000000004EC0|255
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+0103000000010000000500000000000000000049400000000000004EC0000000000000494000000000008051C00000000000004E4000000000008051C00000000000004E400000000000004EC000000000000049400000000000004EC0|255
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000008051400000000000004EC0000000000080514000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000008051400000000000004EC0|255
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000100000005000000000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008051C0000000000000000000000000008051C0|255
+01030000000100000005000000000000000000244000000000008051C0000000000000244000000000000054C0000000000000344000000000000054C0000000000000344000000000008051C0000000000000244000000000008051C0|255
+01030000000100000005000000000000000000344000000000008051C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008051C0000000000000344000000000008051C0|255
+010300000001000000050000000000000000003E4000000000008051C00000000000003E4000000000000054C0000000000000444000000000000054C0000000000000444000000000008051C00000000000003E4000000000008051C0|255
+01030000000100000005000000000000000000444000000000008051C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008051C0000000000000444000000000008051C0|255
+01030000000100000005000000000000000000494000000000008051C0000000000000494000000000000054C00000000000004E4000000000000054C00000000000004E4000000000008051C0000000000000494000000000008051C0|255
+010300000001000000050000000000000000004E4000000000008051C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008051C00000000000004E4000000000008051C0|255
+01030000000100000005000000000000000080514000000000008051C0000000000080514000000000000054C0000000000000544000000000000054C0000000000000544000000000008051C0000000000080514000000000008051C0|255
+01030000000100000005000000000000000000544000000000008051C0000000000000544000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|255
+01030000000100000005000000000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C0000000000000244000000000000054C0|255
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+010300000001000000050000000000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C00000000000003E4000000000000054C0|255
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+01030000000100000005000000000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000000494000000000000054C0|255
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000080514000000000000054C0|255
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|0
+0103000000010000000500000000000000000000000000000000000000000000000000000000000000000024C0000000000000244000000000000024C00000000000002440000000000000000000000000000000000000000000000000|0
+0103000000010000000500000000000000000024400000000000000000000000000000244000000000000024C0000000000000344000000000000024C00000000000003440000000000000000000000000000024400000000000000000|255
+0103000000010000000500000000000000000034400000000000000000000000000000344000000000000024C00000000000003E4000000000000024C00000000000003E40000000000000000000000000000034400000000000000000|0
+010300000001000000050000000000000000003E4000000000000000000000000000003E4000000000000024C0000000000000444000000000000024C0000000000000444000000000000000000000000000003E400000000000000000|255
+0103000000010000000500000000000000000044400000000000000000000000000000444000000000000024C0000000000000494000000000000024C00000000000004940000000000000000000000000000044400000000000000000|0
+0103000000010000000500000000000000000049400000000000000000000000000000494000000000000024C00000000000004E4000000000000024C00000000000004E40000000000000000000000000000049400000000000000000|255
+010300000001000000050000000000000000004E4000000000000000000000000000004E4000000000000024C0000000000080514000000000000024C0000000000080514000000000000000000000000000004E400000000000000000|0
+0103000000010000000500000000000000008051400000000000000000000000000080514000000000000024C0000000000000544000000000000024C00000000000005440000000000000000000000000008051400000000000000000|255
+0103000000010000000500000000000000000054400000000000000000000000000000544000000000000024C0000000000080564000000000000024C00000000000805640000000000000000000000000000054400000000000000000|0
+01030000000100000005000000000000000000000000000000000024C0000000000000000000000000000034C0000000000000244000000000000034C0000000000000244000000000000024C0000000000000000000000000000024C0|255
+01030000000100000005000000000000000000244000000000000024C0000000000000244000000000000034C0000000000000344000000000000034C0000000000000344000000000000024C0000000000000244000000000000024C0|255
+01030000000100000005000000000000000000344000000000000024C0000000000000344000000000000034C00000000000003E4000000000000034C00000000000003E4000000000000024C0000000000000344000000000000024C0|255
+010300000001000000050000000000000000003E4000000000000024C00000000000003E4000000000000034C0000000000000444000000000000034C0000000000000444000000000000024C00000000000003E4000000000000024C0|255
+01030000000100000005000000000000000000444000000000000024C0000000000000444000000000000034C0000000000000494000000000000034C0000000000000494000000000000024C0000000000000444000000000000024C0|255
+01030000000100000005000000000000000000494000000000000024C0000000000000494000000000000034C00000000000004E4000000000000034C00000000000004E4000000000000024C0000000000000494000000000000024C0|255
+010300000001000000050000000000000000004E4000000000000024C00000000000004E4000000000000034C0000000000080514000000000000034C0000000000080514000000000000024C00000000000004E4000000000000024C0|255
+01030000000100000005000000000000000080514000000000000024C0000000000080514000000000000034C0000000000000544000000000000034C0000000000000544000000000000024C0000000000080514000000000000024C0|255
+01030000000100000005000000000000000000544000000000000024C0000000000000544000000000000034C0000000000080564000000000000034C0000000000080564000000000000024C0000000000000544000000000000024C0|255
+01030000000100000005000000000000000000000000000000000034C000000000000000000000000000003EC000000000000024400000000000003EC0000000000000244000000000000034C0000000000000000000000000000034C0|0
+01030000000100000005000000000000000000244000000000000034C000000000000024400000000000003EC000000000000034400000000000003EC0000000000000344000000000000034C0000000000000244000000000000034C0|255
+01030000000100000005000000000000000000344000000000000034C000000000000034400000000000003EC00000000000003E400000000000003EC00000000000003E4000000000000034C0000000000000344000000000000034C0|0
+010300000001000000050000000000000000003E4000000000000034C00000000000003E400000000000003EC000000000000044400000000000003EC0000000000000444000000000000034C00000000000003E4000000000000034C0|255
+01030000000100000005000000000000000000444000000000000034C000000000000044400000000000003EC000000000000049400000000000003EC0000000000000494000000000000034C0000000000000444000000000000034C0|0
+01030000000100000005000000000000000000494000000000000034C000000000000049400000000000003EC00000000000004E400000000000003EC00000000000004E4000000000000034C0000000000000494000000000000034C0|255
+010300000001000000050000000000000000004E4000000000000034C00000000000004E400000000000003EC000000000008051400000000000003EC0000000000080514000000000000034C00000000000004E4000000000000034C0|0
+01030000000100000005000000000000000080514000000000000034C000000000008051400000000000003EC000000000000054400000000000003EC0000000000000544000000000000034C0000000000080514000000000000034C0|255
+01030000000100000005000000000000000000544000000000000034C000000000000054400000000000003EC000000000008056400000000000003EC0000000000080564000000000000034C0000000000000544000000000000034C0|0
+0103000000010000000500000000000000000000000000000000003EC0000000000000000000000000000044C0000000000000244000000000000044C000000000000024400000000000003EC000000000000000000000000000003EC0|255
+0103000000010000000500000000000000000024400000000000003EC0000000000000244000000000000044C0000000000000344000000000000044C000000000000034400000000000003EC000000000000024400000000000003EC0|255
+0103000000010000000500000000000000000034400000000000003EC0000000000000344000000000000044C00000000000003E4000000000000044C00000000000003E400000000000003EC000000000000034400000000000003EC0|255
+010300000001000000050000000000000000003E400000000000003EC00000000000003E4000000000000044C0000000000000444000000000000044C000000000000044400000000000003EC00000000000003E400000000000003EC0|255
+0103000000010000000500000000000000000044400000000000003EC0000000000000444000000000000044C0000000000000494000000000000044C000000000000049400000000000003EC000000000000044400000000000003EC0|255
+0103000000010000000500000000000000000049400000000000003EC0000000000000494000000000000044C00000000000004E4000000000000044C00000000000004E400000000000003EC000000000000049400000000000003EC0|255
+010300000001000000050000000000000000004E400000000000003EC00000000000004E4000000000000044C0000000000080514000000000000044C000000000008051400000000000003EC00000000000004E400000000000003EC0|255
+0103000000010000000500000000000000008051400000000000003EC0000000000080514000000000000044C0000000000000544000000000000044C000000000000054400000000000003EC000000000008051400000000000003EC0|255
+0103000000010000000500000000000000000054400000000000003EC0000000000000544000000000000044C0000000000080564000000000000044C000000000008056400000000000003EC000000000000054400000000000003EC0|255
+01030000000100000005000000000000000000000000000000000044C0000000000000000000000000000049C0000000000000244000000000000049C0000000000000244000000000000044C0000000000000000000000000000044C0|0
+01030000000100000005000000000000000000244000000000000044C0000000000000244000000000000049C0000000000000344000000000000049C0000000000000344000000000000044C0000000000000244000000000000044C0|255
+01030000000100000005000000000000000000344000000000000044C0000000000000344000000000000049C00000000000003E4000000000000049C00000000000003E4000000000000044C0000000000000344000000000000044C0|0
+010300000001000000050000000000000000003E4000000000000044C00000000000003E4000000000000049C0000000000000444000000000000049C0000000000000444000000000000044C00000000000003E4000000000000044C0|255
+01030000000100000005000000000000000000444000000000000044C0000000000000444000000000000049C0000000000000494000000000000049C0000000000000494000000000000044C0000000000000444000000000000044C0|0
+01030000000100000005000000000000000000494000000000000044C0000000000000494000000000000049C00000000000004E4000000000000049C00000000000004E4000000000000044C0000000000000494000000000000044C0|255
+010300000001000000050000000000000000004E4000000000000044C00000000000004E4000000000000049C0000000000080514000000000000049C0000000000080514000000000000044C00000000000004E4000000000000044C0|0
+01030000000100000005000000000000000080514000000000000044C0000000000080514000000000000049C0000000000000544000000000000049C0000000000000544000000000000044C0000000000080514000000000000044C0|255
+01030000000100000005000000000000000000544000000000000044C0000000000000544000000000000049C0000000000080564000000000000049C0000000000080564000000000000044C0000000000000544000000000000044C0|0
+01030000000100000005000000000000000000000000000000000049C000000000000000000000000000004EC000000000000024400000000000004EC0000000000000244000000000000049C0000000000000000000000000000049C0|255
+01030000000100000005000000000000000000244000000000000049C000000000000024400000000000004EC000000000000034400000000000004EC0000000000000344000000000000049C0000000000000244000000000000049C0|255
+01030000000100000005000000000000000000344000000000000049C000000000000034400000000000004EC00000000000003E400000000000004EC00000000000003E4000000000000049C0000000000000344000000000000049C0|255
+010300000001000000050000000000000000003E4000000000000049C00000000000003E400000000000004EC000000000000044400000000000004EC0000000000000444000000000000049C00000000000003E4000000000000049C0|255
+01030000000100000005000000000000000000444000000000000049C000000000000044400000000000004EC000000000000049400000000000004EC0000000000000494000000000000049C0000000000000444000000000000049C0|255
+01030000000100000005000000000000000000494000000000000049C000000000000049400000000000004EC00000000000004E400000000000004EC00000000000004E4000000000000049C0000000000000494000000000000049C0|255
+010300000001000000050000000000000000004E4000000000000049C00000000000004E400000000000004EC000000000008051400000000000004EC0000000000080514000000000000049C00000000000004E4000000000000049C0|255
+01030000000100000005000000000000000080514000000000000049C000000000008051400000000000004EC000000000000054400000000000004EC0000000000000544000000000000049C0000000000080514000000000000049C0|255
+01030000000100000005000000000000000000544000000000000049C000000000000054400000000000004EC000000000008056400000000000004EC0000000000080564000000000000049C0000000000000544000000000000049C0|255
+0103000000010000000500000000000000000000000000000000004EC0000000000000000000000000008051C0000000000000244000000000008051C000000000000024400000000000004EC000000000000000000000000000004EC0|0
+0103000000010000000500000000000000000024400000000000004EC0000000000000244000000000008051C0000000000000344000000000008051C000000000000034400000000000004EC000000000000024400000000000004EC0|255
+0103000000010000000500000000000000000034400000000000004EC0000000000000344000000000008051C00000000000003E4000000000008051C00000000000003E400000000000004EC000000000000034400000000000004EC0|0
+010300000001000000050000000000000000003E400000000000004EC00000000000003E4000000000008051C0000000000000444000000000008051C000000000000044400000000000004EC00000000000003E400000000000004EC0|255
+0103000000010000000500000000000000000044400000000000004EC0000000000000444000000000008051C0000000000000494000000000008051C000000000000049400000000000004EC000000000000044400000000000004EC0|0
+0103000000010000000500000000000000000049400000000000004EC0000000000000494000000000008051C00000000000004E4000000000008051C00000000000004E400000000000004EC000000000000049400000000000004EC0|255
+010300000001000000050000000000000000004E400000000000004EC00000000000004E4000000000008051C0000000000080514000000000008051C000000000008051400000000000004EC00000000000004E400000000000004EC0|0
+0103000000010000000500000000000000008051400000000000004EC0000000000080514000000000008051C0000000000000544000000000008051C000000000000054400000000000004EC000000000008051400000000000004EC0|255
+0103000000010000000500000000000000000054400000000000004EC0000000000000544000000000008051C0000000000080564000000000008051C000000000008056400000000000004EC000000000000054400000000000004EC0|0
+01030000000100000005000000000000000000000000000000008051C0000000000000000000000000000054C0000000000000244000000000000054C0000000000000244000000000008051C0000000000000000000000000008051C0|255
+01030000000100000005000000000000000000244000000000008051C0000000000000244000000000000054C0000000000000344000000000000054C0000000000000344000000000008051C0000000000000244000000000008051C0|255
+01030000000100000005000000000000000000344000000000008051C0000000000000344000000000000054C00000000000003E4000000000000054C00000000000003E4000000000008051C0000000000000344000000000008051C0|255
+010300000001000000050000000000000000003E4000000000008051C00000000000003E4000000000000054C0000000000000444000000000000054C0000000000000444000000000008051C00000000000003E4000000000008051C0|255
+01030000000100000005000000000000000000444000000000008051C0000000000000444000000000000054C0000000000000494000000000000054C0000000000000494000000000008051C0000000000000444000000000008051C0|255
+01030000000100000005000000000000000000494000000000008051C0000000000000494000000000000054C00000000000004E4000000000000054C00000000000004E4000000000008051C0000000000000494000000000008051C0|255
+010300000001000000050000000000000000004E4000000000008051C00000000000004E4000000000000054C0000000000080514000000000000054C0000000000080514000000000008051C00000000000004E4000000000008051C0|255
+01030000000100000005000000000000000080514000000000008051C0000000000080514000000000000054C0000000000000544000000000000054C0000000000000544000000000008051C0000000000080514000000000008051C0|255
+01030000000100000005000000000000000000544000000000008051C0000000000000544000000000000054C0000000000080564000000000000054C0000000000080564000000000008051C0000000000000544000000000008051C0|255
+01030000000100000005000000000000000000000000000000000054C0000000000000000000000000008056C0000000000000244000000000008056C0000000000000244000000000000054C0000000000000000000000000000054C0|0
+01030000000100000005000000000000000000244000000000000054C0000000000000244000000000008056C0000000000000344000000000008056C0000000000000344000000000000054C0000000000000244000000000000054C0|255
+01030000000100000005000000000000000000344000000000000054C0000000000000344000000000008056C00000000000003E4000000000008056C00000000000003E4000000000000054C0000000000000344000000000000054C0|0
+010300000001000000050000000000000000003E4000000000000054C00000000000003E4000000000008056C0000000000000444000000000008056C0000000000000444000000000000054C00000000000003E4000000000000054C0|255
+01030000000100000005000000000000000000444000000000000054C0000000000000444000000000008056C0000000000000494000000000008056C0000000000000494000000000000054C0000000000000444000000000000054C0|0
+01030000000100000005000000000000000000494000000000000054C0000000000000494000000000008056C00000000000004E4000000000008056C00000000000004E4000000000000054C0000000000000494000000000000054C0|255
+010300000001000000050000000000000000004E4000000000000054C00000000000004E4000000000008056C0000000000080514000000000008056C0000000000080514000000000000054C00000000000004E4000000000000054C0|0
+01030000000100000005000000000000000080514000000000000054C0000000000080514000000000008056C0000000000000544000000000008056C0000000000000544000000000000054C0000000000080514000000000000054C0|255
+01030000000100000005000000000000000000544000000000000054C0000000000000544000000000008056C0000000000080564000000000008056C0000000000080564000000000000054C0000000000000544000000000000054C0|255
diff --git a/raster/test/regress/loader/Tiled10x10Copy.select.sql b/raster/test/regress/loader/Tiled10x10Copy.select.sql
new file mode 100644 (file)
index 0000000..de526ec
--- /dev/null
@@ -0,0 +1,4 @@
+SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, extent FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'the_rast';
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 1)).* FROM loadedrast) foo;
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 2)).* FROM loadedrast) foo;
+SELECT geom, val FROM (SELECT (ST_DumpAsPolygons(the_rast, 3)).* FROM loadedrast) foo;
index 356e1e90d77c4f52dad0379d8925cafc3e3c79bd..412d52d3ace89b14f0397b55ae6e3ce4b5e69f79 100755 (executable)
@@ -8,6 +8,10 @@ DB=postgis_reg
 SHP2PGSQL=../loader/shp2pgsql
 PGSQL2SHP=../loader/pgsql2shp
 
+# raster2pgsql is relative to the place where this script
+# would be called: raster/test/regress
+RASTER2PGSQL=../../loader/raster2pgsql
+
 ###################################################
 #
 # Usage ./run_test <testname> [<testname>]
@@ -443,6 +447,107 @@ run_loader_test ()
        return 0
 }
 
+#
+# This runs the loader once and checks the output of it.
+# It will NOT run if neither the expected SQL nor the expected
+# select results file exists, unless you pass true for the final
+# parameter.
+#
+# $1 - Description of this run of the loader, used for error messages.
+# $2 - Table name to load into.
+# $3 - The name of the file containing what the
+#      SQL generated by shp2pgsql should look like.
+# $4 - The name of the file containing the expected results of
+#      SELECT rast FROM _tblname should look like.
+# $5 - Command line options for raster2pgsql.
+# $6 - If you pass true, this will run the loader even if neither
+#      of the expected results files exists (though of course
+#      the results won't be compared with anything).
+#
+run_raster_loader_and_check_output()
+{
+       _description=$1
+       _tblname=$2
+       _expected_sql_file=$3
+       _expected_select_results_file=$4
+       _loader_options=$5
+       _run_always=$6
+       # ON_ERROR_STOP is used by psql to return non-0 on an error
+       _psql_opts="--no-psqlrc --variable ON_ERROR_STOP=true"
+
+       if [ -n "$_run_always" -o -r "$_expected_sql_file" -o -r "$_expected_select_results_file" ]; then
+               show_progress
+
+               # Produce the output SQL file.
+               ${RASTER2PGSQL} $_loader_options -C -f the_rast ${TEST}.tif $_tblname \
+                       > ${TMPDIR}/loader.out \
+                       2> ${TMPDIR}/loader.err
+
+               if [ $? -gt 0 ]; then
+                       fail " $_description: running raster2pgsql" "${TMPDIR}/loader.err"
+                       return 1
+               fi
+
+               # Compare the output SQL file with the expected if there is one.
+               if [ -r $_expected_sql_file ]; then
+                       show_progress
+                       if diff "${TMPDIR}/loader.out" "$_expected_sql_file" > /dev/null; then
+                               :
+                       else
+                               fail " $_description: actual SQL does not match expected.", \
+                                       "${TMPDIR}/loader.out"
+                       fi
+               fi
+
+               # Run the loader SQL script.
+               show_progress
+               ${PSQL} ${_psql_opts} -f ${TMPDIR}/loader.out "${DB}" > ${TMPDIR}/loader.err 2>&1
+               if [ $? -gt 0 ]; then
+                       fail " $_description: running raster2pgsql output" "${TMPDIR}/loader.err"
+                       return 1
+               fi
+
+               # Run the select script (if there is one)
+               if [ -r "${TEST}.select.sql" ]; then
+                       if run_simple_test "${TEST}.select.sql" "$_expected_select_results_file" "$_description"; then
+                               :
+                       else
+                               # That will have already called fail, so just return an error.
+                               return 1
+                       fi
+               fi
+       fi
+       return 0
+}
+
+#
+#  run_raster_loader_test 
+#
+#  Load a raster with different methods
+#
+#  raster input is ${TEST}.tif, expected output is {$TEST}.expected
+#
+run_raster_loader_test ()
+{
+       # See if there is a custom command-line options file
+       _custom_opts=""
+       if [ -r ${TEST}.opts ]; then
+               _custom_opts=`grep -v ^\s*# ${TEST}.opts`
+       fi
+
+       tblname="loadedrast"
+
+       if run_raster_loader_and_check_output "test" "${tblname}" "${TEST}.sql.expected" "${TEST}.select.expected" \
+               "$_custom_opts" "true"; then
+               :
+       else
+               return 1
+       fi
+       drop_table_if_exists "${tblname}" >> ${TMPDIR}/regress_log 2>&1
+
+       return 0
+}
+
 # Log an initialization error and optionally drop the db
 init_db_error ()
 {
@@ -536,7 +641,7 @@ if [ -z "$1" ]; then
        echo " --nocreate   do not create the regression database on start" >&2
        echo " --upgrade    source the upgrade scripts on start" >&2
        echo " --nodrop     do not drop the regression database on exit" >&2
-       echo " --raster     load also topology extension" >&2
+       echo " --raster     load also raster extension" >&2
        echo " --topology   load also topology extension" >&2
        echo " --clean      cleanup test logs on exit" >&2
        echo " --expect     save obtained output as expected" >&2
@@ -732,6 +837,12 @@ while [ -n "$1" ]; do
                if run_loader_test; then
                        pass
                fi
+       # Check .tif *before* .sql as loader test could
+       # create the .sql
+       elif [ -r "${TEST}.tif" ]; then
+               if run_raster_loader_test; then
+                       pass
+               fi
        elif [ -r "${TEST}.sql" ]; then
                if run_simple_test ${TEST}.sql ${TEST}_expected; then
                        pass