changeset 209:2ae83ca07f0d

remove tmp file
author gongo@gendarme.cr.ie.u-ryukyu.ac.jp
date Fri, 30 Jan 2009 09:57:32 +0900
parents 07f3cd0bcc14
children 204b03ca98f8
files TaskManager/Test/test_render/SGList.cpp TaskManager/Test/test_render/SGList.h TaskManager/Test/test_render/log TaskManager/Test/test_render/task/CreateSpan.cpp.orig TaskManager/Test/test_render/task/DrawSpanRenew.cpp.orig
diffstat 5 files changed, 0 insertions(+), 18591 deletions(-) [+]
line wrap: on
line diff
--- a/TaskManager/Test/test_render/SGList.cpp	Fri Jan 30 09:57:12 2009 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-#include "SGList.h"
-
-const char *sglist_table[SGLIST_LENGTH] = {
-    "Ball", "LongCube", "Cube", "Cube", "Plane", "CUBE", "IEBOSS", "IEJIKI", "IETAMA", "PANEL_1024", "PANEL_2048", "PANEL_512", "Sphere", "Sphere", "Earth", "Moon"
-};
--- a/TaskManager/Test/test_render/SGList.h	Fri Jan 30 09:57:12 2009 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#ifndef INCLUDED_SGLIST
-#define INCLUDED_SGLIST
-
-/* ../xml_file/Ball.xml */
-#define Ball	 0
-
-/* ../xml_file/LongCube.xml */
-#define LongCube	 1
-
-/* ../xml_file/cube.xml */
-#define Cube	 2
-
-/* ../xml_file/cube_big.xml */
-#define Cube	 3
-
-/* ../xml_file/cube_split.xml */
-#define Plane	 4
-#define CUBE	 5
-
-/* ../xml_file/ieboss.xml */
-#define IEBOSS	 6
-
-/* ../xml_file/iejiki.xml */
-#define IEJIKI	 7
-
-/* ../xml_file/ietama.xml */
-#define IETAMA	 8
-
-/* ../xml_file/panel_1024.xml */
-#define PANEL_1024	 9
-
-/* ../xml_file/panel_2048.xml */
-#define PANEL_2048	 10
-
-/* ../xml_file/panel_512.xml */
-#define PANEL_512	 11
-
-/* ../xml_file/sphere.xml */
-#define Sphere	 12
-
-/* ../xml_file/sphere_big.xml */
-#define Sphere	 13
-
-/* ../xml_file/universe.xml */
-#define Earth	 14
-#define Moon	 15
-
-/* Number of Scene */
-#define SGLIST_LENGTH 16
-
-/* Scene Table */
-extern const char *sglist_table[SGLIST_LENGTH];
-
-#endif
--- a/TaskManager/Test/test_render/log	Fri Jan 30 09:57:12 2009 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17799 +0,0 @@
-Use Keyboard
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-2
-3
-5
-6
-7
-9
-10
-11
-13
-14
-15
-17
-18
-19
-21
-22
-23
-25
-26
-27
-29
-30
-31
-33
-34
-35
-37
-38
-39
-41
-42
-43
-45
-46
-47
-49
-50
-51
-53
-54
-55
-57
-58
-59
-61
-62
-63
-65
-66
-67
-69
-70
-71
-73
-74
-75
-77
-78
-79
-81
-82
-83
-85
-86
-87
-89
-90
-91
-93
-94
-95
-97
-98
-99
-101
-102
-103
-105
-106
-107
-109
-110
-111
-113
-114
-115
-117
-118
-119
-121
-122
-123
-125
-126
-127
-129
-130
-131
-133
-134
-135
-137
-138
-139
-141
-142
-143
-145
-146
-147
-149
-150
-151
-153
-154
-155
-157
-158
-159
-161
-162
-163
-165
-166
-167
-169
-170
-171
-173
-174
-175
-177
-178
-179
-181
-182
-183
-185
-186
-187
-189
-190
-191
-193
-194
-195
-197
-198
-199
-201
-202
-203
-205
-206
-207
-209
-210
-211
-213
-214
-215
-217
-218
-219
-221
-222
-223
-225
-226
-227
-229
-230
-231
-233
-234
-235
-237
-238
-239
-241
-242
-243
-245
-246
-247
-249
-250
-251
-253
-254
-255
-257
-258
-259
-261
-262
-263
-265
-266
-267
-269
-270
-271
-273
-274
-275
-277
-278
-279
-281
-282
-283
-285
-286
-287
-289
-290
-291
-293
-294
-295
-297
-298
-299
-301
-302
-303
-305
-306
-307
-309
-310
-311
-313
-314
-315
-317
-318
-319
-321
-705
-707
-708
-709
-711
-712
-713
-715
-716
-717
-719
-720
-721
-723
-724
-725
-727
-728
-729
-731
-732
-733
-735
-736
-737
-739
-740
-741
-743
-744
-745
-747
-748
-749
-751
-752
-753
-755
-756
-757
-759
-760
-761
-763
-764
-765
-767
-768
-769
-771
-772
-773
-775
-776
-777
-779
-780
-781
-783
-784
-785
-787
-788
-789
-791
-792
-793
-795
-796
-797
-799
-800
-801
-803
-804
-805
-807
-808
-809
-811
-812
-813
-815
-816
-817
-819
-820
-821
-823
-824
-825
-827
-828
-829
-831
-832
-833
-835
-836
-837
-839
-840
-841
-843
-844
-845
-847
-848
-849
-851
-852
-853
-855
-856
-857
-859
-860
-861
-863
-864
-865
-867
-868
-869
-871
-872
-873
-875
-876
-877
-879
-880
-881
-883
-884
-885
-887
-888
-889
-891
-892
-893
-895
-896
-897
-899
-900
-901
-903
-904
-905
-907
-908
-909
-911
-912
-913
-915
-916
-917
-919
-920
-921
-923
-924
-925
-927
-928
-929
-931
-932
-933
-935
-936
-937
-939
-940
-941
-943
-944
-945
-947
-948
-949
-951
-952
-953
-955
-956
-957
-959
-960
-961
-963
-964
-965
-967
-968
-969
-971
-972
-973
-975
-976
-977
-979
-980
-981
-983
-984
-985
-987
-988
-989
-991
-992
-993
-995
-996
-997
-999
-1000
-1001
-1003
-1004
-1005
-1007
-1008
-1009
-1011
-1012
-1013
-1015
-1016
-1017
-1019
-1020
-1021
-1023
-1024
-1025
-12.937063 FPS
--- a/TaskManager/Test/test_render/task/CreateSpan.cpp.orig	Fri Jan 30 09:57:12 2009 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,521 +0,0 @@
-#include "CreateSpan.h"
-#include "viewer_types.h"
-
-static const int SPAN_PACK_LOAD    =  5;
-static const int SPAN_PACK_STORE   =  6;
-static const int POLYGON_PACK_LOAD =  7;
-static const int TILE_ALLOCATE     =  8;
-static const int TILE_LOAD         =  9;
-static const int TILE_STORE        = 10;
-
-static SpanPackPtr spack = NULL;
-static SpanPackPtr send_spack = NULL;
-static int prev_index = 0;
-
-SchedDefineTask(CreateSpan);
-
-static float
-calc(float f1, float f2,int i, float base)
-{
-    float ans;
-    ans = f1/f2*i + base;
-    return ans;
-}
-
-
-/**
- * TrianglePack から、vMin, vMid, vMax を求める
- *
- * @param [triPack] TrianglePack
- * @param [vMin] [vMid] [vMax]
- */
-static void
-make_vertex(TrianglePack *triPack,
-	    VertexPackPtr *vMin, VertexPackPtr *vMid, VertexPackPtr *vMax)
-{
-    if (triPack->ver1.y <= triPack->ver2.y) {
-	if (triPack->ver2.y <= triPack->ver3.y) {
-	    *vMin = &triPack->ver1;
-	    *vMid = &triPack->ver2;
-	    *vMax = &triPack->ver3;
-	} else if (triPack->ver3.y <= triPack->ver1.y) {
-	    *vMin = &triPack->ver3;
-	    *vMid = &triPack->ver1;
-	    *vMax = &triPack->ver2;
-	} else {
-	    *vMin = &triPack->ver1;
-	    *vMid = &triPack->ver3;
-	    *vMax = &triPack->ver2;
-	}
-    } else {
-	if (triPack->ver1.y <= triPack->ver3.y) {
-	    *vMin = &triPack->ver2;
-	    *vMid = &triPack->ver1;
-	    *vMax = &triPack->ver3;
-	} else if (triPack->ver3.y <= triPack->ver2.y) {
-	    *vMin = &triPack->ver3;
-	    *vMid = &triPack->ver2;
-	    *vMax = &triPack->ver1;
-	} else {
-	    *vMin = &triPack->ver2;
-	    *vMid = &triPack->ver3;
-	    *vMax = &triPack->ver1;
-	}
-    }
-}
-
-static void
-make_vMid10(VertexPack *v, VertexPack *vMin,
-	    VertexPack *vMid, VertexPack *vMax)
-{
-    //int d, d1;
-    float d;
-    int d1;
-    
-    d  = vMax->y - vMin->y;
-    d1 = (int)(vMid->y - vMin->y);
-
-    v->tex_x  = calc(vMax->tex_x - vMin->tex_x, d, d1, vMin->tex_x);
-    v->tex_y  = calc(vMax->tex_y - vMin->tex_y, d, d1, vMin->tex_y);
-    v->x      = calc(vMax->x - vMin->x, d, d1, vMin->x);
-    v->y      = vMid->y;
-    v->z      = calc(vMax->z - vMin->z, d, d1, vMin->z);
-}
-
-/**
- * 与えられた scale から、実際に使うテクスチャの Tapestry を選択する
- *
- * テクスチャは、オリジナルのサイズから、可能なかぎり 1/2 で縮小していき、
- * 下の図の様に連続した領域に入れられる
- *
- *   Tapestry (1)
- * +---+---+---+---+
- * | 0 | 1 | 2 | 3 |
- * +---+---+---+---+
- * | 4 | 5 | 6 | 7 |     (2)
- * +---+---+---+---+  +---+---+
- * | 8 | 9 | 10| 11|  | 16| 17|   (3)
- * +---+---+---+---+  +---+---+  +---+
- * | 12| 13| 14| 15|  | 18| 19|  | 20|
- * +---+---+---+---+  +---+---+  +---|
- *
- * (1)                                                 (2)             (3)
- *  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
- *  | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * | * | * | 14| 15| 16| 17| 18| 19| 20|
- *  +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
- *
- * scale の値から、各 Tapestry の先頭アドレスを返す
- *
- * @param[in] tw       Width of texture
- * @param[in] th       Height of texture
- * @param[in] scale    テクスチャの縮小率 (= 2^n)
- * @param[in] addr_top テクスチャの先頭アドレス (上の図での (1)
- * @return scale に対応する Tapestry のアドレス (上の図での (1) or (2) or(3)
- */
-static uint32*
-getTapestry(int tw, int th, int scale, uint32 *addr_top)
-{
-    int index = 0;
-
-    for (int s = 1; s < scale; s <<= 1) {
-	index += tw*th;
-	tw >>= 1; /* tw /= 2 */
-	th >>= 1;
-    }
-
-    return addr_top + index;
-}
-
-
-/**
- * span の width,height と texture の width,height を比べて
- * span を描画する際に使う texture の比率を求める
- *
- * @param[in] width      Width of span
- * @param[in] height     Height of span
- * @param[in] tex_width  Width of 1/1 texture that span use
- * @param[in] tex_height Height of 1/1 texture that span use
- * @param[in] scale_max  この Span で使う texture の最大縮小率
- *                   計算結果が scale_max 以上になるのを防ぐ
- * @return 描画に使う texture の比率
- *         width と height は 1/scale の画像を使う
- *
- */
-static int
-getScale(int width, int height, int tex_width, int tex_height, int scale_max)
-{
-    int base, tex_base;
-    int scale = 1;
-
-    /**
-     * width と height で、長い方を基準に、
-     * texture の scale を決める
-     */
-    if (width > height) {
-	base = width;
-	tex_base = tex_width;
-    } else {
-	base = height;
-	tex_base = tex_height;
-    }
-
-    if (tex_base > base) {
-	int t_scale = tex_base/base;
-
-	while (t_scale >>= 1) {
-	    scale <<= 1;
-	}
-    }
-
-    return (scale > scale_max) ? scale_max : scale;
-}
-
-/**
- * x軸に水平な辺を持つ三角形ポリゴンから、
- * Span を抜き出す
- *
- * @param[in] spackList    triangle から生成された span を格納する List
- * @param[in] charge_y_top 担当する y の範囲開始地点
- * @param[in] charge_y_end 担当する y の範囲終了地点
- * @param[in] tex_addr     triangle が参照するテクスチャの先頭アドレス
- * @param[in] tex_width    テクスチャの width
- * @param[in] tex_height   テクスチャの height
- * @param[in] tex_scale_max  テクスチャの最大縮小率 (2^n)
- * @param[in] vMin     triangle の座標
- * @param[in] vMid     triangle の座標。triangle を二つに分けて出来た新しい座標
- * @param[in] vMid10   triangle の座標
- * @param[in] length_y  分割する前の Triangle の y の長さ
- * @param[in] tex_y_len 分割する前の Triangle に貼られている Texture の
- *                      長さの割合 (0 ... 1)
- */
-void
-CreateSpan::half_triangle(SpanPackPtr *spackList,
-			  int charge_y_top, int charge_y_end,
-			  uint32 *tex_addr, int tex_width, int tex_height, 
-			  int tex_scale_max,
-			  VertexPack *vMin,VertexPack *vMid,VertexPack *vMid10,
-			  int length_y, float tex_y_len)
-{
-    float tmp_z,tmp_tex1, tmp_tex2 ,tmp_tey1,tmp_tey2;
-    float tmp_xpos,tmp_end,tmp_zpos;
-    float start_z, end_z;
-    float start_tex_x, end_tex_x, start_tex_y, end_tex_y;
-    int x, y, length;
-
-#if 1
-    // これじゃないと
-    // テクスチャの貼りに微妙に隙間が。謎だ
-    int start_y = (int)vMid->y;
-    int end_y   = (int)vMin->y;
-#else
-    float start_y = vMid->y;
-    float end_y   = vMin->y;
-#endif
-    float div_y = start_y - end_y;
-    int k = 0;
-    int l = 1;
-
-    SpanPackPtr tmp_spack;
-
-    /**
-     * 三角形ポリゴンをx軸に水平に二つに分けようとして
-     * ある一辺がすでに水平だった場合、つまり
-     *
-     * |\
-     * | \
-     * |  \
-     * -----
-     *
-     *
-     * 上のようなポリゴンだった場合は、本来なら上の部分の三角形にだけ
-     * half_triangle の処理をするべきだが、現在の処理だと
-     * この half_triangle に「上の部分の三角形」と、
-     * 「『下の部分の三角形と判断してしまった』直線」が来てしまう。
-     * 直線の部分が来ると、calc() で 0 除算とかで、値不定で暴走するので
-     * 現在はこれで代用。
-     * half_triangle 呼ぶ前にこれを判断できれば良いかもしれない。
-     * てかこんなんでいいのかよ。。。
-     */
-#if 1
-    if ((int)div_y == 0) {
-	return;
-    }
-#else
-    if (vMid10->x == vMin->x && vMid10->y == vMin->y) {
-	return;
-    }
-#endif
-
-    if (div_y < 0) {
-	div_y = -div_y;
-	k = 1;
-	l = -1;
-    }
-
-    for (int i = k; i < (int)div_y+1; i++) {
-	y = (int)vMin->y + i*l;
-
-	/**
-	 * 担当 y 範囲内
-	 */
-	if (charge_y_top <= y && y <= charge_y_end) {
-	    // 1..8 を index0, 9..16 を index1 にするために y を -1
-	    int index = (y-1) / split_screen_h;
-
-	    /**
-	     * 違う SpanPack を扱う場合、
-	     * 現在の SpanPack をメインメモリに送り、
-	     * 新しい SpanPack を取ってくる
-	     */
-	    if (index != prev_index) {
-		tmp_spack = spack;
-		spack = send_spack;
-		send_spack = tmp_spack;
-
-		smanager->dma_wait(SPAN_PACK_STORE);
-		smanager->dma_store(send_spack, (uint32)spackList[prev_index],
-				    sizeof(SpanPack), SPAN_PACK_STORE);
-		
-		smanager->dma_load(spack, (uint32)spackList[index],
-				   sizeof(SpanPack), SPAN_PACK_LOAD);
-		prev_index = index;
-		smanager->dma_wait(SPAN_PACK_LOAD);
-	    }
-
-	    /**
-	     * 書き込む SpanPack が満杯だったら
-	     * メインメモリで allocate した領域 (next) を持ってきて
-	     * 現在の spack->next につなぎ、next を次の spack とする。
-	     */
-	    if (spack->info.size >= MAX_SIZE_SPAN) {
-		SpanPackPtr next;
-		
-		smanager->mainMem_alloc(0, sizeof(SpanPack));
-		smanager->mainMem_wait();
-		next = (SpanPackPtr)smanager->mainMem_get(0);
-		
-		spack->next = next;
-
-		tmp_spack = spack;
-		spack = send_spack;
-		send_spack = tmp_spack;
-
-		smanager->dma_wait(SPAN_PACK_STORE);
-		smanager->dma_store(send_spack, (uint32)spackList[index],
-				    sizeof(SpanPack), SPAN_PACK_STORE);
-
-		spackList[index] = next;
-		
-		smanager->dma_load(spack, (uint32)spackList[index],
-				   sizeof(SpanPack), SPAN_PACK_LOAD);
-		smanager->dma_wait(SPAN_PACK_LOAD);
-		spack->init((index+1)*split_screen_h);
-	    }
-	} else {
-	    /**
-	     * 担当範囲外だったら無視
-	     */
-	    continue;
-	}
-	
-	tmp_xpos = calc(vMid10->x - vMin->x ,div_y, i, vMin->x);
-	tmp_end  = calc(vMid->x  - vMin->x ,div_y, i, vMin->x);
-	tmp_z    = calc(vMid10->z - vMin->z ,div_y, i, vMin->z);
-	tmp_zpos = calc(vMid->z  - vMin->z ,div_y, i, vMin->z);
-
-	length = (tmp_xpos > tmp_end)
-	    ? (int)tmp_xpos - (int)tmp_end : (int)tmp_end - (int)tmp_xpos;
-	if (length == 0) {
-	    continue;
-	}
-
-	tmp_tex1 =((i/(div_y)) * vMid10->tex_x) +
-	    ( ((div_y - i)/(div_y)) * vMin->tex_x);
-	tmp_tex2 =( (i/(div_y)) * vMid->tex_x) +
-	    ( ((div_y - i)/(div_y)) * vMin->tex_x);
-
-	tmp_tey1 =( (i/(div_y)) * vMid10->tex_y) +
-	    ( ((div_y - i)/(div_y)) * vMin->tex_y);
-	tmp_tey2 =( (i/(div_y)) * vMid->tex_y) +
-	    ( ((div_y - i)/(div_y)) * vMin->tex_y);
-
-	if (tmp_xpos > tmp_end) {
-	    x = (int)tmp_end;
-	    length = (int)(tmp_xpos)-(int)(tmp_end)+1;
-	    start_z = tmp_zpos;
-	    end_z = tmp_z;
-	    start_tex_x = tmp_tex2;
-	    end_tex_x = tmp_tex1;
-	    start_tex_y = tmp_tey2;
-	    end_tex_y = tmp_tey1;
-	} else {
-	    x = (int)tmp_xpos;
-	    length = (int)(tmp_end)-(int)(tmp_xpos)+1;
-	    start_z = tmp_z;
-	    end_z = tmp_zpos;
-	    start_tex_x = tmp_tex1;
-	    end_tex_x = tmp_tex2;
-	    start_tex_y = tmp_tey1;
-	    end_tex_y = tmp_tey2;
-	}
-
-	smanager->dma_wait(SPAN_PACK_LOAD);
-
-	Span *span = &spack->span[spack->info.size++];
-
-	span->x          = x;
-	span->y          = y;
-	span->length_x   = length;
-	span->start_z    = start_z;
-	span->end_z      = end_z;
-	span->tex_x1     = start_tex_x;
-	span->tex_x2     = end_tex_x;
-	span->tex_y1     = start_tex_y;
-	span->tex_y2     = end_tex_y;
-
-
-	float tex_x_len = span->tex_x2 - span->tex_x1;
-
-	/**
-	 * tex_x_len, tex_y_len を掛ける理由は
-	 * Changelog の 2008-12-16 を参照
-	 */
-	int scale = getScale(span->length_x, length_y,
-			     (int)(span->tex_width*tex_x_len),
-			     (int)(span->tex_height*tex_y_len), tex_scale_max);
-
-	scale = (8 > tex_scale_max) ? tex_scale_max : 8;
-	
-	uint32 *tapestry = getTapestry(tex_width, tex_height, scale, tex_addr);
-
-	span->tex_addr   = tapestry;
-	span->tex_width  = tex_width/scale;
-	span->tex_height = tex_height/scale;
-    }
-}
-
-
-int
-CreateSpan::run(void *rbuf, void *wbuf)
-{
-    PolygonPack *pp = (PolygonPack*)smanager->get_input(0);
-    PolygonPack *next_pp = 
-	(PolygonPack*)smanager->allocate(sizeof(PolygonPack));
-    PolygonPack *free_pp = next_pp;
-    PolygonPack *tmp_pp;
-
-    TrianglePackPtr triPack;
-    VertexPackPtr vMin, vMid, vMax;
-    VertexPackPtr vMid10
-	= (VertexPackPtr)smanager->allocate(sizeof(VertexPack));
-    
-    SpanPackPtr *spackList = (SpanPackPtr*)smanager->get_input(1);
-    spack = (SpanPackPtr)smanager->get_input(2);
-    send_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack));
-    prev_index = get_param(0);
-
-    // spack と send_spack は swap しながら DMA を繰り返すので
-    // 自分で allocate した send_spack を覚えてないといけない
-    SpanPackPtr free_spack = send_spack;
-
-    int charge_y_top = get_param(1);
-    int charge_y_end = get_param(2);
-
-    do {
-	if (pp->next != NULL) {
-	    smanager->dma_load(next_pp, (uint32)pp->next,
-			       sizeof(PolygonPack), POLYGON_PACK_LOAD);
-	} else {
-	    next_pp = NULL;
-	}
-
-	for (int i = 0; i < pp->info.size; i++) {
-	    triPack = &pp->tri[i];
-	    
-#if 0
-	    make_vertex(triPack, &vMin, &vMid, &vMax);
-#else
-	    if (triPack->ver1.y <= triPack->ver2.y) {
-		if (triPack->ver2.y <= triPack->ver3.y) {
-		    vMin = &triPack->ver1;
-		    vMid = &triPack->ver2;
-		    vMax = &triPack->ver3;
-		} else if (triPack->ver3.y <= triPack->ver1.y) {
-		    vMin = &triPack->ver3;
-		    vMid = &triPack->ver1;
-		    vMax = &triPack->ver2;
-		} else {
-		    vMin = &triPack->ver1;
-		    vMid = &triPack->ver3;
-		    vMax = &triPack->ver2;
-		}
-	    } else {
-		if (triPack->ver1.y <= triPack->ver3.y) {
-		    vMin = &triPack->ver2;
-		    vMid = &triPack->ver1;
-		    vMax = &triPack->ver3;
-		} else if (triPack->ver3.y <= triPack->ver2.y) {
-		    vMin = &triPack->ver3;
-		    vMid = &triPack->ver2;
-		    vMax = &triPack->ver1;
-		} else {
-		    vMin = &triPack->ver2;
-		    vMid = &triPack->ver3;
-		    vMax = &triPack->ver1;
-		}
-	    }
-#endif
-	    make_vMid10(vMid10, vMin, vMid, vMax);
-
-	    /**
-	     * ポリゴンを、x軸に水平に分割して二つの三角形を作り、
-	     * それぞれから Span を求める
-	     *
-	     *      vMax
-	     *        |\
-	     *        | \
-	     *        |  \
-	     *        |   \
-	     * vMid10 ------ vMid
-	     *        |   /
-	     *        |  /
-	     *        | /
-	     *        |/
-	     *      vMin
-	     *
-	     * (vMax, vMid, vMin) という triangle を
-	     * (vMax, vMid, vMid10) (vMin, vMid, vMid10) という
-	     * 二つの Triangle に分けている
-	     */
-	    half_triangle(spackList, charge_y_top, charge_y_end,
-			  triPack->tex_info.addr,
-			  triPack->tex_info.width,
-			  triPack->tex_info.height,
-			  triPack->tex_info.scale_max, vMin, vMid, vMid10,
-			  (int)(vMax->y - vMin->y), vMax->tex_y - vMin->tex_y);
-	    half_triangle(spackList, charge_y_top, charge_y_end,
-			  pp->tri[0].tex_info.addr,
-			  pp->tri[0].tex_info.width,
-			  pp->tri[0].tex_info.height,
-			  pp->tri[0].tex_info.scale_max, vMax, vMid, vMid10,
-			  (int)(vMax->y - vMin->y), vMax->tex_y - vMin->tex_y);
-	}
-
-	smanager->dma_wait(POLYGON_PACK_LOAD);	
-
-	tmp_pp = pp;
-	pp = next_pp;
-	next_pp = tmp_pp;
-    } while (pp);
-
-    smanager->dma_wait(SPAN_PACK_STORE);
-    smanager->dma_store(spack, (uint32)spackList[prev_index],
-			sizeof(SpanPack), SPAN_PACK_STORE);
-    smanager->dma_wait(SPAN_PACK_STORE);
-
-    free(free_pp);
-    free(free_spack);
-    free(vMid10);
-
-    return 0;
-}
--- a/TaskManager/Test/test_render/task/DrawSpanRenew.cpp.orig	Fri Jan 30 09:57:12 2009 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include "DrawSpanRenew.h"
-#include "polygon_pack.h"
-#include "SpanPack.h"
-#include "texture.h"
-#include "viewer_types.h"
-#include "Func.h"
-
-#define SPAN_PACK_LOAD 0
-#define TEX_LOAD 1
-
-SchedDefineTask(DrawSpanRenew);
-
-int
-DrawSpanRenew::run(void *rbuf, void *wbuf)
-{
-    hash = (TileHashPtr)smanager->global_get(GLOBAL_TEXTURE_HASH);
-    tileList = (TileListPtr)smanager->global_get(GLOBAL_TILE_LIST);
-
-    int rangex_start  = smanager->get_param(0);
-    int rangex_end    = smanager->get_param(1); 
-
-    // Υô x ϰ
-    int rangex        = rangex_end - rangex_start + 1;
-
-    // y ϰ (render_y + rangey - 1)
-    int rangey        = smanager->get_param(2);
-    
-    float *zRow = (float*)smanager->allocate(sizeof(float)*rangex*rangey);
-
-    for (int i = 0; i < rangex*rangey; i++) {
-	zRow[i] = 65535.0f;
-    }
-
-    int **linebuf = (int**)smanager->allocate(sizeof(int*)*rangey);
-
-    for (int i = 0; i < rangey; i++) {
-	linebuf[i] = (int*)smanager->get_output(i);
-	linebuf_init(linebuf[i], rangex, 0xffffffff);
-    }
-
-    SpanPackPtr spack = (SpanPackPtr)smanager->get_param(3);
-    SpanPackPtr next_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack));
-    SpanPackPtr free_spack1 = spack;
-    SpanPackPtr free_spack2 = next_spack;
-    Span *span;
-    
-    // span->length_x νǤκƵư
-    int js_cont = smanager->get_param(4);
-
-    smanager->dma_wait(TEX_LOAD);
-
-    do {
-	/**
-	 * SpanPack->next ¸ߤ硢
-	 * ߤ SpanPack Ƥ֤
-	 *  SpanPack  DMA žԤ
-	 */
-	if (spack->next != NULL) {
-	    smanager->dma_load(next_spack, (uint32)spack->next,
-			       sizeof(SpanPack), SPAN_PACK_LOAD);
-	} else {
-	    next_spack = NULL;
-	}
-
-	for (int t = spack->info.start; t < spack->info.size; t++) {	  
-	    span = &spack->span[t];
-
-	    Uint32 rgb = 0x00ff0000;
-	    float tex1 = span->tex_x1;
-	    float tex2 = span->tex_x2;
-	    float tey1 = span->tex_y1;
-	    float tey2 = span->tex_y2;
-
-	    /**
-	     * Span  1 pixel 
-	     * ƥκɸ
-	     */
-	    int tex_xpos;
-	    int tex_ypos;
-
-	    /**
-	     * (tex_xpos, tex_ypos) Ρ֥å(ο޻)Ǥκɸ
-	     * Υ֥åΥɥ쥹(MainMemory)
-	     */
-	    int tex_localx;
-	    int tex_localy;
-	    uint32 *tex_addr;
-
-	    int x = span->x;
-	    int y = span->y;
-	    int x_len = span->length_x;
-	    float z = span->start_z;
-	    float zpos = span->end_z;
-
-	    // ɸ [0 .. split_screen_w-1] 褦 x,y  -1
-	    int localx = getLocalX(x-1);
-	    int localy = getLocalY(y-1);
-
-	    if (x_len == 1) {
-		if (x < rangex_start || rangex_end < x) {
-		    continue;
-		}
-
-		tex_xpos = (int)((span->tex_width-1) * tex1);
-		tex_ypos = (int)((span->tex_height-1) * tey1);
-
-		if (zpos < zRow[localx + (rangex * localy)]) {
-		    tex_addr = getTile(tex_xpos, tex_ypos,
-				       span->tex_width, span->tex_addr);
-		    tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL;
-		    tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL;
-
-		    /**
-		     * Tile ̵硢öϤǤ
-		     * Tile ɤ륿餻˺Ƶư
-		     */
-		    if (!isAvailableTile(tex_addr)) {
-			spack->info.start = t;
-			//set_rgb(tex_addr);
-			set_rgbs(tex_addr,
-				 getTile(span->tex_width-1, tex_ypos,
-					 span->tex_width, span->tex_addr));
-			//reboot(spack, 0);
-			//goto FINISH;
-		    }
-		    
-		    rgb = get_rgb(tex_localx, tex_localy, tex_addr);
-
-		    zRow[localx + (rangex * localy)] = zpos;
-		    linebuf[localy][localx] = rgb;
-		}
-	    } else {
-		int js = (x < rangex_start) ? rangex_start - x : 0;
-		int je = (x + x_len > rangex_end) ? rangex_end - x : x_len;
-		float tex_x, tex_y, tex_z;
-		
-		/**
-		 * ӤСʸƵưޤǤ
-		 * js_cont ϻȤʤ 0 ˤƤ櫓ɡ
-		 * ǽΰΤˤϤɤΡ
-		 */
-		js = (js < js_cont) ? js_cont : js;
-		js_cont = 0;
-
-		for (int j = js; j <= je; j++) {
-		    localx = getLocalX(x-1+j);
-
-		    tex_z = z*(x_len-1-j)/(x_len-1) + zpos*j/(x_len-1);
-
-		    tex_x = tex1*(x_len-1-j)/(x_len-1) + tex2*j/(x_len-1);
-		    tex_y = tey1*(x_len-1-j)/(x_len-1) + tey2*j/(x_len-1);
-		    if (tex_x > 1) tex_x = 1;
-		    if (tex_x < 0) tex_x = 0;
-		    if (tex_y > 1) tex_y = 1;
-		    if (tex_y < 0) tex_y = 0;
-		    tex_xpos = (int)((span->tex_width-1) * tex_x);
-		    tex_ypos = (int)((span->tex_height-1) * tex_y);
-		    
-		    if (tex_z < zRow[localx + (rangex*localy)]) {
-			tex_addr = getTile(tex_xpos, tex_ypos,
-					   span->tex_width, span->tex_addr);
-			tex_localx = tex_xpos % TEXTURE_SPLIT_PIXEL;
-			tex_localy = tex_ypos % TEXTURE_SPLIT_PIXEL;
-			if (!isAvailableTile(tex_addr)) {
-			    spack->info.start = t;
-<<<<<<< local
-			    printf("empty\n");
-			    set_rgb(tex_addr);
-=======
-			    //set_rgb(tex_addr);
->>>>>>> other
-			    set_rgbs(tex_addr,
-				     getTile(span->tex_width-1, tex_ypos,
-					     span->tex_width, span->tex_addr));
-			    //reboot(spack, j);
-			    //goto FINISH;
-			}
-			
-			rgb = get_rgb(tex_localx, tex_localy, tex_addr);
-		    
-			zRow[localx + (rangex*localy)] = tex_z;
-			linebuf[localy][localx] = rgb;
-		    }
-		}
-	    }
-	}
-
-	smanager->dma_wait(SPAN_PACK_LOAD);
-
-	SpanPackPtr tmp_spack = spack;
-	spack = next_spack;
-	next_spack = tmp_spack;
-    } while (spack);
-
-
-FINISH:
-    smanager->dma_wait(SPAN_PACK_LOAD);
-    //free(next_spack);
-    free(linebuf);
-    free(zRow);
-
-    // Renew  allocate 줿ΤʤΤǡ free
-    //free(spack);
-
-    free(free_spack1);
-    free(free_spack2);
-
-
-    return 0;
-}