From e1f4d033ada18380f358a16c8e26b8e663476080 Mon Sep 17 00:00:00 2001 From: legrand Date: Tue, 19 Dec 2006 08:39:08 +0000 Subject: [PATCH] git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@86 331e1502-861f-0410-8da2-ba01fb791d7f --- trunk/paradiseo-mo/tutorial/AUTHORS | 1 + trunk/paradiseo-mo/tutorial/ChangeLog | 0 trunk/paradiseo-mo/tutorial/Makefile.am | 28 + trunk/paradiseo-mo/tutorial/NEWS | 0 trunk/paradiseo-mo/tutorial/README | 73 + trunk/paradiseo-mo/tutorial/autogen.sh | 154 + trunk/paradiseo-mo/tutorial/cleaner | 7 + trunk/paradiseo-mo/tutorial/configure.in | 52 + trunk/paradiseo-mo/tutorial/docs/Doxyfile | 236 + trunk/paradiseo-mo/tutorial/docs/Makefile.am | 5 + .../tutorial/docs/html/annotated.html | 65 + .../docs/html/class_empty_selection.html | 52 + .../tutorial/docs/html/classes.html | 52 + .../tutorial/docs/html/classmo_algo.html | 55 + .../docs/html/classmo_aspir_crit-members.html | 37 + .../docs/html/classmo_aspir_crit.html | 91 + .../tutorial/docs/html/classmo_aspir_crit.png | Bin 0 -> 778 bytes .../classmo_best_impr_select-members.html | 43 + .../docs/html/classmo_best_impr_select.html | 185 + .../docs/html/classmo_best_impr_select.png | Bin 0 -> 513 bytes .../docs/html/classmo_cool_sched.html | 57 + .../tutorial/docs/html/classmo_cool_sched.png | Bin 0 -> 430 bytes .../html/classmo_easy_cool_sched-members.html | 40 + .../docs/html/classmo_easy_cool_sched.html | 147 + .../docs/html/classmo_easy_cool_sched.png | Bin 0 -> 422 bytes .../classmo_first_impr_select-members.html | 45 + .../docs/html/classmo_first_impr_select.html | 216 + .../docs/html/classmo_first_impr_select.png | Bin 0 -> 512 bytes .../classmo_gen_sol_continue-members.html | 41 + .../docs/html/classmo_gen_sol_continue.html | 176 + .../docs/html/classmo_gen_sol_continue.png | Bin 0 -> 522 bytes .../docs/html/classmo_h_c-members.html | 43 + .../tutorial/docs/html/classmo_h_c.html | 230 + .../tutorial/docs/html/classmo_h_c.png | Bin 0 -> 454 bytes .../classmo_h_c_move_loop_expl-members.html | 44 + .../docs/html/classmo_h_c_move_loop_expl.html | 194 + .../docs/html/classmo_h_c_move_loop_expl.png | Bin 0 -> 658 bytes ...ssmo_impr_best_fit_aspir_crit-members.html | 42 + .../classmo_impr_best_fit_aspir_crit.html | 132 + .../html/classmo_impr_best_fit_aspir_crit.png | Bin 0 -> 548 bytes .../classmo_it_rand_next_move-members.html | 42 + .../docs/html/classmo_it_rand_next_move.html | 174 + .../docs/html/classmo_it_rand_next_move.png | Bin 0 -> 511 bytes .../html/classmo_l_s_check_point-members.html | 39 + .../docs/html/classmo_l_s_check_point.html | 147 + .../docs/html/classmo_move-members.html | 37 + .../tutorial/docs/html/classmo_move.html | 60 + .../tutorial/docs/html/classmo_move_expl.html | 62 + .../tutorial/docs/html/classmo_move_expl.png | Bin 0 -> 983 bytes .../docs/html/classmo_move_incr_eval.html | 55 + .../tutorial/docs/html/classmo_move_init.html | 55 + .../docs/html/classmo_move_loop_expl.html | 62 + .../docs/html/classmo_move_loop_expl.png | Bin 0 -> 1024 bytes .../html/classmo_move_select-members.html | 39 + .../docs/html/classmo_move_select.html | 149 + .../docs/html/classmo_move_select.png | Bin 0 -> 988 bytes .../tutorial/docs/html/classmo_next_move.html | 60 + .../tutorial/docs/html/classmo_next_move.png | Bin 0 -> 518 bytes .../html/classmo_no_aspir_crit-members.html | 38 + .../docs/html/classmo_no_aspir_crit.html | 138 + .../docs/html/classmo_no_aspir_crit.png | Bin 0 -> 478 bytes .../classmo_rand_impr_select-members.html | 43 + .../docs/html/classmo_rand_impr_select.html | 221 + .../docs/html/classmo_rand_impr_select.png | Bin 0 -> 517 bytes .../tutorial/docs/html/classmo_rand_move.html | 55 + .../docs/html/classmo_s_a-members.html | 46 + .../tutorial/docs/html/classmo_s_a.html | 208 + .../tutorial/docs/html/classmo_s_a.png | Bin 0 -> 462 bytes .../html/classmo_sol_continue-members.html | 37 + .../docs/html/classmo_sol_continue.html | 90 + .../docs/html/classmo_sol_continue.png | Bin 0 -> 533 bytes .../docs/html/classmo_t_s-members.html | 46 + .../tutorial/docs/html/classmo_t_s.html | 268 + .../tutorial/docs/html/classmo_t_s.png | Bin 0 -> 457 bytes .../classmo_t_s_move_loop_expl-members.html | 46 + .../docs/html/classmo_t_s_move_loop_expl.html | 212 + .../docs/html/classmo_t_s_move_loop_expl.png | Bin 0 -> 659 bytes .../docs/html/classmo_tabu_list-members.html | 40 + .../tutorial/docs/html/classmo_tabu_list.html | 157 + .../tutorial/docs/html/doxygen.css | 358 + .../tutorial/docs/html/doxygen.png | Bin 0 -> 1281 bytes .../tutorial/docs/html/files.html | 59 + .../tutorial/docs/html/ftv2blank.png | Bin 0 -> 174 bytes .../tutorial/docs/html/ftv2doc.png | Bin 0 -> 255 bytes .../tutorial/docs/html/ftv2folderclosed.png | Bin 0 -> 259 bytes .../tutorial/docs/html/ftv2folderopen.png | Bin 0 -> 261 bytes .../tutorial/docs/html/ftv2lastnode.png | Bin 0 -> 233 bytes .../tutorial/docs/html/ftv2link.png | Bin 0 -> 358 bytes .../tutorial/docs/html/ftv2mlastnode.png | Bin 0 -> 160 bytes .../tutorial/docs/html/ftv2mnode.png | Bin 0 -> 194 bytes .../tutorial/docs/html/ftv2node.png | Bin 0 -> 235 bytes .../tutorial/docs/html/ftv2plastnode.png | Bin 0 -> 165 bytes .../tutorial/docs/html/ftv2pnode.png | Bin 0 -> 200 bytes .../tutorial/docs/html/ftv2vertline.png | Bin 0 -> 229 bytes .../tutorial/docs/html/functions.html | 235 + .../tutorial/docs/html/functions_func.html | 119 + .../tutorial/docs/html/functions_type.html | 68 + .../tutorial/docs/html/functions_vars.html | 152 + .../tutorial/docs/html/hierarchy.html | 82 + .../tutorial/docs/html/index.html | 8 + .../tutorial/docs/html/index_8h-source.html | 34 + .../tutorial/docs/html/installdox | 117 + .../paradiseo-mo/tutorial/docs/html/main.html | 39 + .../tutorial/docs/html/mo_8h-source.html | 71 + .../tutorial/docs/html/mo_algo_8h-source.html | 51 + .../docs/html/mo_aspir_crit_8h-source.html | 58 + .../html/mo_best_impr_select_8h-source.html | 99 + .../docs/html/mo_cool_sched_8h-source.html | 51 + .../html/mo_easy_cool_sched_8h-source.html | 72 + .../html/mo_first_impr_select_8h-source.html | 106 + .../html/mo_gen_sol_continue_8h-source.html | 78 + .../tutorial/docs/html/mo_h_c_8h-source.html | 132 + .../html/mo_h_c_move_loop_expl_8h-source.html | 115 + ...mo_impr_best_fit_aspir_crit_8h-source.html | 96 + .../html/mo_it_rand_next_move_8h-source.html | 92 + .../html/mo_l_s_check_point_8h-source.html | 80 + .../tutorial/docs/html/mo_move_8h-source.html | 54 + .../docs/html/mo_move_expl_8h-source.html | 54 + .../html/mo_move_incr_eval_8h-source.html | 54 + .../docs/html/mo_move_init_8h-source.html | 52 + .../html/mo_move_loop_expl_8h-source.html | 51 + .../docs/html/mo_move_select_8h-source.html | 72 + .../docs/html/mo_next_move_8h-source.html | 53 + .../docs/html/mo_no_aspir_crit_8h-source.html | 63 + .../html/mo_rand_impr_select_8h-source.html | 103 + .../docs/html/mo_rand_move_8h-source.html | 51 + .../tutorial/docs/html/mo_s_a_8h-source.html | 154 + .../docs/html/mo_sol_continue_8h-source.html | 54 + .../tutorial/docs/html/mo_t_s_8h-source.html | 174 + .../html/mo_t_s_move_loop_expl_8h-source.html | 134 + .../docs/html/mo_tabu_list_8h-source.html | 71 + .../tutorial/docs/html/search.idx | Bin 0 -> 326683 bytes .../tutorial/docs/html/search.php | 381 + .../paradiseo-mo/tutorial/docs/html/tab_b.gif | Bin 0 -> 35 bytes .../paradiseo-mo/tutorial/docs/html/tab_l.gif | Bin 0 -> 706 bytes .../paradiseo-mo/tutorial/docs/html/tab_r.gif | Bin 0 -> 2585 bytes .../paradiseo-mo/tutorial/docs/html/tabs.css | 102 + .../paradiseo-mo/tutorial/docs/html/tree.html | 182 + .../tutorial/docs/latex/FreeSans.ttf | Bin 0 -> 22932 bytes .../paradiseo-mo/tutorial/docs/latex/Makefile | 39 + .../tutorial/docs/latex/annotated.tex | 31 + .../docs/latex/class_empty_selection.tex | 21 + .../tutorial/docs/latex/classmo_algo.tex | 23 + .../docs/latex/classmo_aspir_crit.eps | 203 + .../docs/latex/classmo_aspir_crit.tex | 46 + .../docs/latex/classmo_best_impr_select.eps | 197 + .../docs/latex/classmo_best_impr_select.tex | 103 + .../docs/latex/classmo_cool_sched.eps | 197 + .../docs/latex/classmo_cool_sched.tex | 27 + .../docs/latex/classmo_easy_cool_sched.eps | 197 + .../docs/latex/classmo_easy_cool_sched.tex | 83 + .../docs/latex/classmo_first_impr_select.eps | 197 + .../docs/latex/classmo_first_impr_select.tex | 116 + .../docs/latex/classmo_gen_sol_continue.eps | 197 + .../docs/latex/classmo_gen_sol_continue.tex | 100 + .../tutorial/docs/latex/classmo_h_c.eps | 197 + .../tutorial/docs/latex/classmo_h_c.tex | 114 + .../docs/latex/classmo_h_c_move_loop_expl.eps | 203 + .../docs/latex/classmo_h_c_move_loop_expl.tex | 98 + .../classmo_impr_best_fit_aspir_crit.eps | 197 + .../classmo_impr_best_fit_aspir_crit.tex | 78 + .../docs/latex/classmo_it_rand_next_move.eps | 197 + .../docs/latex/classmo_it_rand_next_move.tex | 96 + .../docs/latex/classmo_l_s_check_point.tex | 73 + .../tutorial/docs/latex/classmo_move.tex | 29 + .../tutorial/docs/latex/classmo_move_expl.eps | 209 + .../tutorial/docs/latex/classmo_move_expl.tex | 29 + .../docs/latex/classmo_move_incr_eval.tex | 23 + .../tutorial/docs/latex/classmo_move_init.tex | 23 + .../docs/latex/classmo_move_loop_expl.eps | 209 + .../docs/latex/classmo_move_loop_expl.tex | 29 + .../docs/latex/classmo_move_select.eps | 207 + .../docs/latex/classmo_move_select.tex | 77 + .../tutorial/docs/latex/classmo_next_move.eps | 197 + .../tutorial/docs/latex/classmo_next_move.tex | 29 + .../docs/latex/classmo_no_aspir_crit.eps | 197 + .../docs/latex/classmo_no_aspir_crit.tex | 68 + .../docs/latex/classmo_rand_impr_select.eps | 197 + .../docs/latex/classmo_rand_impr_select.tex | 124 + .../tutorial/docs/latex/classmo_rand_move.tex | 23 + .../tutorial/docs/latex/classmo_s_a.eps | 197 + .../tutorial/docs/latex/classmo_s_a.tex | 108 + .../docs/latex/classmo_sol_continue.eps | 197 + .../docs/latex/classmo_sol_continue.tex | 46 + .../tutorial/docs/latex/classmo_t_s.eps | 197 + .../tutorial/docs/latex/classmo_t_s.tex | 130 + .../docs/latex/classmo_t_s_move_loop_expl.eps | 203 + .../docs/latex/classmo_t_s_move_loop_expl.tex | 106 + .../tutorial/docs/latex/classmo_tabu_list.tex | 69 + .../tutorial/docs/latex/doxygen.sty | 78 + .../tutorial/docs/latex/hierarchy.tex | 48 + .../paradiseo-mo/tutorial/docs/latex/main.tex | 5 + .../tutorial/docs/latex/refman.tex | 66 + .../tutorial/docs/man/man3/EmptySelection.3 | 23 + .../tutorial/docs/man/man3/moAlgo.3 | 25 + .../tutorial/docs/man/man3/moAspirCrit.3 | 44 + .../tutorial/docs/man/man3/moBestImprSelect.3 | 115 + .../tutorial/docs/man/man3/moCoolSched.3 | 25 + .../tutorial/docs/man/man3/moEasyCoolSched.3 | 88 + .../docs/man/man3/moFirstImprSelect.3 | 128 + .../tutorial/docs/man/man3/moGenSolContinue.3 | 103 + .../tutorial/docs/man/man3/moHC.3 | 130 + .../tutorial/docs/man/man3/moHCMoveLoopExpl.3 | 111 + .../docs/man/man3/moImprBestFitAspirCrit.3 | 88 + .../tutorial/docs/man/man3/moItRandNextMove.3 | 106 + .../tutorial/docs/man/man3/moLSCheckPoint.3 | 81 + .../tutorial/docs/man/man3/moMove.3 | 33 + .../tutorial/docs/man/man3/moMoveExpl.3 | 27 + .../tutorial/docs/man/man3/moMoveIncrEval.3 | 25 + .../tutorial/docs/man/man3/moMoveInit.3 | 25 + .../tutorial/docs/man/man3/moMoveLoopExpl.3 | 29 + .../tutorial/docs/man/man3/moMoveSelect.3 | 82 + .../tutorial/docs/man/man3/moNextMove.3 | 27 + .../tutorial/docs/man/man3/moNoAspirCrit.3 | 71 + .../tutorial/docs/man/man3/moRandImprSelect.3 | 135 + .../tutorial/docs/man/man3/moRandMove.3 | 25 + .../tutorial/docs/man/man3/moSA.3 | 128 + .../tutorial/docs/man/man3/moSolContinue.3 | 44 + .../tutorial/docs/man/man3/moTS.3 | 156 + .../tutorial/docs/man/man3/moTSMoveLoopExpl.3 | 123 + .../tutorial/docs/man/man3/moTabuList.3 | 75 + trunk/paradiseo-mo/tutorial/docs/mo.doxytag | 884 + trunk/paradiseo-mo/tutorial/src/Makefile.am | 1 + trunk/paradiseo-mo/tutorial/src/index.h | 26 + trunk/paradiseo-mo/tutorial/src/mo | 6 + trunk/paradiseo-mo/tutorial/src/mo.h | 43 + trunk/paradiseo-mo/tutorial/src/moAlgo.h | 26 + trunk/paradiseo-mo/tutorial/src/moAspirCrit.h | 37 + .../tutorial/src/moBestImprSelect.h | 93 + trunk/paradiseo-mo/tutorial/src/moCoolSched.h | 27 + .../tutorial/src/moEasyCoolSched.h | 60 + .../tutorial/src/moFirstImprSelect.h | 104 + .../tutorial/src/moGenSolContinue.h | 69 + trunk/paradiseo-mo/tutorial/src/moHC.h | 133 + .../tutorial/src/moHCMoveLoopExpl.h | 108 + .../tutorial/src/moImprBestFitAspirCrit.h | 84 + .../tutorial/src/moItRandNextMove.h | 84 + .../tutorial/src/moLSCheckPoint.h | 66 + trunk/paradiseo-mo/tutorial/src/moMove.h | 32 + trunk/paradiseo-mo/tutorial/src/moMoveExpl.h | 29 + .../tutorial/src/moMoveIncrEval.h | 32 + trunk/paradiseo-mo/tutorial/src/moMoveInit.h | 28 + .../tutorial/src/moMoveLoopExpl.h | 26 + .../paradiseo-mo/tutorial/src/moMoveSelect.h | 65 + trunk/paradiseo-mo/tutorial/src/moNextMove.h | 29 + .../paradiseo-mo/tutorial/src/moNoAspirCrit.h | 48 + .../tutorial/src/moRandImprSelect.h | 104 + trunk/paradiseo-mo/tutorial/src/moRandMove.h | 26 + trunk/paradiseo-mo/tutorial/src/moSA.h | 153 + .../paradiseo-mo/tutorial/src/moSolContinue.h | 33 + trunk/paradiseo-mo/tutorial/src/moTS.h | 184 + .../tutorial/src/moTSMoveLoopExpl.h | 132 + trunk/paradiseo-mo/tutorial/src/moTabuList.h | 60 + .../tutorial/tutorial/Lesson1/Makefile.am | 20 + .../tutorial/Lesson1/benchs/ali535.tsp | 536 + .../tutorial/Lesson1/benchs/eil101.tsp | 102 + .../tutorial/Lesson1/benchs/pr2392.tsp | 2393 +++ .../tutorial/tutorial/Lesson1/benchs/readme | 35 + .../tutorial/Lesson1/benchs/rl5915.tsp | 5916 +++++++ .../tutorial/Lesson1/benchs/usa13509.tsp | 13510 ++++++++++++++++ .../tutorial/tutorial/Lesson1/hill_climbing | Bin 0 -> 471391 bytes .../tutorial/Lesson1/hill_climbing.cpp | 71 + .../tutorial/tutorial/Lesson2/Makefile.am | 20 + .../tutorial/Lesson2/benchs/ali535.tsp | 536 + .../tutorial/Lesson2/benchs/eil101.tsp | 102 + .../tutorial/Lesson2/benchs/pr2392.tsp | 2393 +++ .../tutorial/tutorial/Lesson2/benchs/readme | 35 + .../tutorial/Lesson2/benchs/rl5915.tsp | 5916 +++++++ .../tutorial/Lesson2/benchs/usa13509.tsp | 13510 ++++++++++++++++ .../tutorial/tutorial/Lesson2/tabu_search | Bin 0 -> 560656 bytes .../tutorial/tutorial/Lesson2/tabu_search.cpp | 73 + .../tutorial/tutorial/Lesson3/Makefile.am | 20 + .../tutorial/Lesson3/benchs/ali535.tsp | 536 + .../tutorial/Lesson3/benchs/eil101.tsp | 102 + .../tutorial/Lesson3/benchs/pr2392.tsp | 2393 +++ .../tutorial/tutorial/Lesson3/benchs/readme | 35 + .../tutorial/Lesson3/benchs/rl5915.tsp | 5916 +++++++ .../tutorial/Lesson3/benchs/usa13509.tsp | 13510 ++++++++++++++++ .../tutorial/Lesson3/simulated_annealing | Bin 0 -> 471632 bytes .../tutorial/Lesson3/simulated_annealing.cpp | 67 + .../tutorial/tutorial/Makefile.am | 1 + .../tutorial/tutorial/examples/Makefile.am | 1 + .../tutorial/examples/tsp/Makefile.am | 1 + .../tutorial/examples/tsp/benchs/ali535.tsp | 536 + .../tutorial/examples/tsp/benchs/eil101.tsp | 102 + .../tutorial/examples/tsp/benchs/pr2392.tsp | 2393 +++ .../tutorial/examples/tsp/benchs/readme | 35 + .../tutorial/examples/tsp/benchs/rl5915.tsp | 5916 +++++++ .../tutorial/examples/tsp/benchs/usa13509.tsp | 13510 ++++++++++++++++ .../tutorial/examples/tsp/src/Makefile.am | 31 + .../tutorial/examples/tsp/src/city_swap.cpp | 24 + .../tutorial/examples/tsp/src/city_swap.h | 29 + .../tutorial/examples/tsp/src/edge_xover.cpp | 126 + .../tutorial/examples/tsp/src/edge_xover.h | 46 + .../tutorial/examples/tsp/src/graph.cpp | 80 + .../tutorial/examples/tsp/src/graph.h | 30 + .../tutorial/examples/tsp/src/libtsp.a | Bin 0 -> 1682024 bytes .../tutorial/tutorial/examples/tsp/src/mix.h | 23 + .../tutorial/examples/tsp/src/order_xover.cpp | 90 + .../tutorial/examples/tsp/src/order_xover.h | 31 + .../examples/tsp/src/part_route_eval.cpp | 33 + .../examples/tsp/src/part_route_eval.h | 36 + .../examples/tsp/src/part_two_opt_init.cpp | 20 + .../examples/tsp/src/part_two_opt_init.h | 28 + .../examples/tsp/src/part_two_opt_next.cpp | 30 + .../examples/tsp/src/part_two_opt_next.h | 27 + .../examples/tsp/src/partial_mapped_xover.cpp | 88 + .../examples/tsp/src/partial_mapped_xover.h | 31 + .../tutorial/examples/tsp/src/route.h | 19 + .../tutorial/examples/tsp/src/route_eval.cpp | 23 + .../tutorial/examples/tsp/src/route_eval.h | 29 + .../tutorial/examples/tsp/src/route_init.cpp | 34 + .../tutorial/examples/tsp/src/route_init.h | 27 + .../tutorial/examples/tsp/src/route_valid.cpp | 42 + .../tutorial/examples/tsp/src/route_valid.h | 19 + .../tutorial/examples/tsp/src/two_opt.cpp | 42 + .../tutorial/examples/tsp/src/two_opt.h | 35 + .../examples/tsp/src/two_opt_incr_eval.cpp | 24 + .../examples/tsp/src/two_opt_incr_eval.h | 26 + .../examples/tsp/src/two_opt_init.cpp | 18 + .../tutorial/examples/tsp/src/two_opt_init.h | 28 + .../examples/tsp/src/two_opt_next.cpp | 30 + .../tutorial/examples/tsp/src/two_opt_next.h | 27 + .../examples/tsp/src/two_opt_rand.cpp | 20 + .../tutorial/examples/tsp/src/two_opt_rand.h | 27 + .../examples/tsp/src/two_opt_tabu_list.cpp | 58 + .../examples/tsp/src/two_opt_tabu_list.h | 38 + 327 files changed, 112065 insertions(+) create mode 100644 trunk/paradiseo-mo/tutorial/AUTHORS create mode 100644 trunk/paradiseo-mo/tutorial/ChangeLog create mode 100644 trunk/paradiseo-mo/tutorial/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/NEWS create mode 100644 trunk/paradiseo-mo/tutorial/README create mode 100755 trunk/paradiseo-mo/tutorial/autogen.sh create mode 100755 trunk/paradiseo-mo/tutorial/cleaner create mode 100644 trunk/paradiseo-mo/tutorial/configure.in create mode 100644 trunk/paradiseo-mo/tutorial/docs/Doxyfile create mode 100644 trunk/paradiseo-mo/tutorial/docs/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/annotated.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/class_empty_selection.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classes.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_algo.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_cool_sched.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_cool_sched.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_gen_sol_continue-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_gen_sol_continue.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_gen_sol_continue.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_impr_best_fit_aspir_crit-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_impr_best_fit_aspir_crit.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_impr_best_fit_aspir_crit.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_l_s_check_point-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_l_s_check_point.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_expl.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_expl.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_incr_eval.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_init.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_loop_expl.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_loop_expl.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_next_move.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_next_move.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_move.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s_move_loop_expl-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s_move_loop_expl.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s_move_loop_expl.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_tabu_list-members.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/classmo_tabu_list.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/doxygen.css create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/doxygen.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/files.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2blank.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2doc.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2folderclosed.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2folderopen.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2lastnode.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2link.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2mlastnode.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2mnode.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2node.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2plastnode.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2pnode.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/ftv2vertline.png create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/functions.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/functions_func.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/functions_type.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/functions_vars.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/hierarchy.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/index.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/index_8h-source.html create mode 100755 trunk/paradiseo-mo/tutorial/docs/html/installdox create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/main.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_algo_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_aspir_crit_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_best_impr_select_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_cool_sched_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_easy_cool_sched_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_first_impr_select_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_gen_sol_continue_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_h_c_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_h_c_move_loop_expl_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_impr_best_fit_aspir_crit_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_it_rand_next_move_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_l_s_check_point_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_move_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_move_expl_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_move_incr_eval_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_move_init_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_move_loop_expl_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_move_select_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_next_move_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_no_aspir_crit_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_rand_impr_select_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_rand_move_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_s_a_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_sol_continue_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_t_s_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_t_s_move_loop_expl_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/mo_tabu_list_8h-source.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/search.idx create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/search.php create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/tab_b.gif create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/tab_l.gif create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/tab_r.gif create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/tabs.css create mode 100644 trunk/paradiseo-mo/tutorial/docs/html/tree.html create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/FreeSans.ttf create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/Makefile create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/annotated.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/class_empty_selection.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_algo.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_aspir_crit.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_aspir_crit.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_best_impr_select.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_best_impr_select.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_cool_sched.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_cool_sched.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_easy_cool_sched.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_easy_cool_sched.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_first_impr_select.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_first_impr_select.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_gen_sol_continue.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_gen_sol_continue.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c_move_loop_expl.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c_move_loop_expl.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_impr_best_fit_aspir_crit.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_impr_best_fit_aspir_crit.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_it_rand_next_move.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_it_rand_next_move.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_l_s_check_point.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_expl.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_expl.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_incr_eval.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_init.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_loop_expl.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_loop_expl.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_select.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_select.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_next_move.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_next_move.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_no_aspir_crit.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_no_aspir_crit.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_impr_select.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_impr_select.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_move.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_s_a.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_s_a.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_sol_continue.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_sol_continue.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s_move_loop_expl.eps create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s_move_loop_expl.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/classmo_tabu_list.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/doxygen.sty create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/hierarchy.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/main.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/latex/refman.tex create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/EmptySelection.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moAlgo.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moAspirCrit.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moBestImprSelect.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moCoolSched.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moEasyCoolSched.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moFirstImprSelect.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moGenSolContinue.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moHC.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moHCMoveLoopExpl.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moImprBestFitAspirCrit.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moItRandNextMove.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moLSCheckPoint.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moMove.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveExpl.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveIncrEval.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveInit.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveLoopExpl.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveSelect.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moNextMove.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moNoAspirCrit.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moRandImprSelect.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moRandMove.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moSA.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moSolContinue.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moTS.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moTSMoveLoopExpl.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/man/man3/moTabuList.3 create mode 100644 trunk/paradiseo-mo/tutorial/docs/mo.doxytag create mode 100644 trunk/paradiseo-mo/tutorial/src/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/src/index.h create mode 100644 trunk/paradiseo-mo/tutorial/src/mo create mode 100644 trunk/paradiseo-mo/tutorial/src/mo.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moAlgo.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moAspirCrit.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moBestImprSelect.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moCoolSched.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moEasyCoolSched.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moFirstImprSelect.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moGenSolContinue.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moHC.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moHCMoveLoopExpl.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moImprBestFitAspirCrit.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moItRandNextMove.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moLSCheckPoint.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moMove.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moMoveExpl.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moMoveIncrEval.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moMoveInit.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moMoveLoopExpl.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moMoveSelect.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moNextMove.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moNoAspirCrit.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moRandImprSelect.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moRandMove.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moSA.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moSolContinue.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moTS.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moTSMoveLoopExpl.h create mode 100644 trunk/paradiseo-mo/tutorial/src/moTabuList.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/ali535.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/eil101.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/pr2392.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/readme create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/rl5915.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/usa13509.tsp create mode 100755 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/hill_climbing create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson1/hill_climbing.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/ali535.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/eil101.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/pr2392.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/readme create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/rl5915.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/usa13509.tsp create mode 100755 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/tabu_search create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson2/tabu_search.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/ali535.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/eil101.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/pr2392.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/readme create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/rl5915.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/usa13509.tsp create mode 100755 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/simulated_annealing create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Lesson3/simulated_annealing.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/ali535.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/eil101.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/pr2392.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/readme create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/rl5915.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/usa13509.tsp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/Makefile.am create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/city_swap.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/city_swap.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/edge_xover.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/edge_xover.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/graph.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/graph.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/libtsp.a create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/mix.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/order_xover.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/order_xover.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_route_eval.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_route_eval.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_init.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_init.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_next.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_next.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/partial_mapped_xover.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/partial_mapped_xover.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_eval.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_eval.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_init.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_init.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_valid.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_valid.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_incr_eval.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_incr_eval.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_init.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_init.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_next.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_next.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_rand.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_rand.h create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_tabu_list.cpp create mode 100644 trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_tabu_list.h diff --git a/trunk/paradiseo-mo/tutorial/AUTHORS b/trunk/paradiseo-mo/tutorial/AUTHORS new file mode 100644 index 000000000..6bb4943d4 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/AUTHORS @@ -0,0 +1 @@ +Documentation : boisson@lifl.fr diff --git a/trunk/paradiseo-mo/tutorial/ChangeLog b/trunk/paradiseo-mo/tutorial/ChangeLog new file mode 100644 index 000000000..e69de29bb diff --git a/trunk/paradiseo-mo/tutorial/Makefile.am b/trunk/paradiseo-mo/tutorial/Makefile.am new file mode 100644 index 000000000..f691c2558 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/Makefile.am @@ -0,0 +1,28 @@ +SUBDIRS = docs src tutorial + +CXX=g++ + +AM_CXXFLAGS =\ + -Wall\ + -Werror\ + -Wno-deprecated\ + -ansi\ + -pedantic + +clean_all: clean_aux clean_doc + -@make clean + -@(rm -rf acconfig.h acinclude.m4 aclocal.m4 autom4te.cache copying install news readme stamp* texput.log authors todo;\ + rm -f configure config.* CO* dep* INST* install-sh miss* mkins* Makefile Makefile.in;\ + cd docs; rm -rf Makefile Makefile.in; cd ../src ; rm -rf Makefile Makefile.in; cd ../tutorial; rm -rf Makefile Makefile.in;\ + cd examples; rm -f Makefile Makefile.in; cd tsp ; rm -f Makefile Makefile.in; cd src ; rm -rf .deps/ Makefile Makefile.in;\ + cd ../../../Lesson1 ; rm -rf .deps/ Makefile Makefile.in; cd ../Lesson2 ; rm -rf .deps/ Makefile Makefile.in ; cd ../Lesson3 ;\ + rm -rf .deps/ Makefile Makefile.in) + +clean_aux: + -@find . \( -name "*~" -o -name "*.old" -o -name "#*" -o -name "*.bak" \) -print -exec rm -rf \{\} \; + +doc: + -@(cd docs; make doc) + +clean_doc: + -@(cd docs; make clean-local) diff --git a/trunk/paradiseo-mo/tutorial/NEWS b/trunk/paradiseo-mo/tutorial/NEWS new file mode 100644 index 000000000..e69de29bb diff --git a/trunk/paradiseo-mo/tutorial/README b/trunk/paradiseo-mo/tutorial/README new file mode 100644 index 000000000..a05fca1ce --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/README @@ -0,0 +1,73 @@ + PARADISEO-MO README FILE +======================================================================= + +======================================================================= + +Welcome to PARADISEO-MO (Moving Objects), one of the extension of Evolving Objects library. + +================================================================== + BUILDING MO +================================================================== +The basic installation procedure goes the following: + +Go to your build-directory and run + $(SRCDIR)/configure + make + make doc + +where $(SRCDIR) is the top-level source directory of EO, i.e. where +the sources where unpacked. + +In case of problems, you can read the INSTALL file - but remember this +is a standard installation file from GNU and that it contains nothing +specific about MO. + +To clean everything, in the simply run + make clean_all + +=================================================================== + DIRECTORY STRUCTURE +=================================================================== +After unpacking the archive file, you should end up with the following +structure: + +.../ The MAIN PARADISEO-MO directory, created when unpacking. + | + +-- src SOURCE directory Contains most MO .h files. + | + | + +-- doc DOCUMENTATION directory (generated by Doxygen). + | | + | +- html HTML files - start at index.html. + | | + | +- latex latex files - use to generate Postcript doc. + | | + | +- man Unix man format documentation. + | + | + +-- tutorial TUTORIAL with lessons + | + +-examples APPLICATIONS - one directory per separate application. + | | + | +- tsp traveling salesman problem example. + | | + | +-src sources files for the lesson examples using the tsp. + | | + | +-benchs TSP Instance files. + | + +-Lesson1 How make a Hill Climbing on the TSP example. + | | + | +-benchs TSP Instance files. + | + +-Lesson2 How make a Tabu Search on the TSP example. + | | + | +-benchs TSP Instance files. + | + +-Lesson3 How make a Simulated Annealing on the TSP example. + | + +-benchs TSP Instance files. +=================================================================== + NOTES +=================================================================== + +Mailing list : paradiseo-help@lists.gforge.inria.fr diff --git a/trunk/paradiseo-mo/tutorial/autogen.sh b/trunk/paradiseo-mo/tutorial/autogen.sh new file mode 100755 index 000000000..0a4e95695 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/autogen.sh @@ -0,0 +1,154 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +PKG_NAME="the package." + +DIE=0 + +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`autoconf' installed to." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { + (libtool --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`libtool' installed." + echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { + grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ + (gettext --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`gettext' installed." + echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && { + grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ + (gettext --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`gettext' installed." + echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +(automake --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`automake' installed." + echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + NO_AUTOMAKE=yes +} + +(doxygen --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**WARNING**: You need to have \`doxygen' to generate the documentation." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" +} + +# if no automake, don't bother testing for aclocal +test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: Missing \`aclocal'. The version of \`automake'" + echo "installed doesn't appear recent enough." + echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +if test -z "$*"; then + echo "**Warning**: I am going to run \`configure' with no arguments." + echo "If you wish to pass any to it, please specify them on the" + echo \`$0\'" command line." + echo +fi + +case $CC in +xlc ) + am_opt=--include-deps;; +esac + +for coin in `find $srcdir -name configure.in -print` +do + dr=`dirname $coin` + if test -f $dr/NO-AUTO-GEN; then + echo skipping $dr -- flagged as no auto-gen + else + echo processing $dr + macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin` + ( cd $dr + aclocalinclude="$ACLOCAL_FLAGS" + for k in $macrodirs; do + if test -d $k; then + aclocalinclude="$aclocalinclude -I $k" + ##else + ## echo "**Warning**: No such directory \`$k'. Ignored." + fi + done + if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then + if grep "sed.*POTFILES" configure.in >/dev/null; then + : do nothing -- we still have an old unmodified configure.in + else + echo "Creating $dr/aclocal.m4 ..." + test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 + echo "Running gettextize... Ignore non-fatal messages." + echo "no" | gettextize --force --copy + echo "Making $dr/aclocal.m4 writable ..." + test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 + fi + fi + if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then + echo "Creating $dr/aclocal.m4 ..." + test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 + echo "Running gettextize... Ignore non-fatal messages." + echo "no" | gettextize --force --copy + echo "Making $dr/aclocal.m4 writable ..." + test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 + fi + if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then + echo "Running libtoolize..." + libtoolize --force --copy + fi + echo "Running aclocal $aclocalinclude ..." + aclocal $aclocalinclude + if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then + echo "Running autoheader..." + autoheader + fi + echo "Running automake --gnu $am_opt ..." + automake --add-missing --gnu $am_opt + echo "Running autoconf ..." + autoconf + ) + fi +done + +#conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c + +if test x$NOCONFIGURE = x; then + echo Running $srcdir/configure $conf_flags "$@" ... + $srcdir/configure $conf_flags "$@" \ + && echo Now type \`make\' to compile $PKG_NAME +else + echo Skipping configure process. +fi diff --git a/trunk/paradiseo-mo/tutorial/cleaner b/trunk/paradiseo-mo/tutorial/cleaner new file mode 100755 index 000000000..1e5c8c5ba --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/cleaner @@ -0,0 +1,7 @@ +(rm -rf acconfig.h acinclude.m4 aclocal.m4 autom4te.cache copying install news readme stamp* texput.log authors todo;\ +rm -f configure config.* CO* dep* INST* install-sh miss* mkins* Makefile Makefile.in;\ +cd docs; rm -rf Makefile Makefile.in; cd ../src ; rm -rf Makefile Makefile.in; cd ../tutorial; rm -rf Makefile Makefile.in;\ +cd examples; rm -f Makefile Makefile.in; cd tsp ; rm -f Makefile Makefile.in; cd src ; rm -rf .deps/ Makefile Makefile.in;\ +cd ../../../Lesson1 ; rm -rf .deps/ Makefile Makefile.in; cd ../Lesson2 ; rm -rf .deps/ Makefile Makefile.in ; cd ../Lesson3 ;\ +rm -rf .deps/ Makefile Makefile.in) +find . \( -name "*~" -o -name "*.old" -o -name "#*" -o -name "*.bak" -o -name "*.o" \) -print -exec rm -rf \{\} \; diff --git a/trunk/paradiseo-mo/tutorial/configure.in b/trunk/paradiseo-mo/tutorial/configure.in new file mode 100644 index 000000000..eacdfe81f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/configure.in @@ -0,0 +1,52 @@ +AC_INIT(configure.in) +AM_INIT_AUTOMAKE(paradiseo-mo, 0.1) + +AC_ISC_POSIX +AC_PROG_CXX +AM_PROG_CC_STDC +AC_HEADER_STDC +#AC_CXX_HAVE_SSTREAM +AC_PROG_RANLIB + +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET + +AC_C_CONST +AC_C_INLINE +AC_TYPE_SIZE_T + +AC_SUBST(EO_DIR) + +dnl EO +AC_ARG_WITH(EOdir, + --with-EOdir : Giving the path of the EO tree., + dnl Well done :-) + EO_DIR="$withval" + if test ! -d $EO_DIR + then + echo "" + echo "# --with-EOdir Invalid directory $withval" + exit 1 + fi, + dnl Bouhhhh !!!! + echo "" + echo "# You forgot to give the path of the EO tree !" + echo "# Please write something like ... './configure --with-EOdir=\$HOME/eo'" + exit 1 + ) + +AC_OUTPUT([ +Makefile +src/Makefile +docs/Makefile +tutorial/Makefile +tutorial/examples/Makefile +tutorial/examples/tsp/Makefile +tutorial/examples/tsp/src/Makefile +tutorial/Lesson1/Makefile +tutorial/Lesson2/Makefile +tutorial/Lesson3/Makefile +]) + +echo "Type 'make doc' for building documentation" diff --git a/trunk/paradiseo-mo/tutorial/docs/Doxyfile b/trunk/paradiseo-mo/tutorial/docs/Doxyfile new file mode 100644 index 000000000..049bdf56a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/Doxyfile @@ -0,0 +1,236 @@ +# Doxyfile 1.5.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = PARADISEO-MO +PROJECT_NUMBER = 0.1 +OUTPUT_DIRECTORY = +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = NO +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../src/ +FILE_PATTERNS = *.cpp \ + *.h +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = mo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = mo.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/trunk/paradiseo-mo/tutorial/docs/Makefile.am b/trunk/paradiseo-mo/tutorial/docs/Makefile.am new file mode 100644 index 000000000..bad00ad7c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/Makefile.am @@ -0,0 +1,5 @@ +doc: + -@doxygen Doxyfile + +clean-local: + rm -rf html latex man diff --git a/trunk/paradiseo-mo/tutorial/docs/html/annotated.html b/trunk/paradiseo-mo/tutorial/docs/html/annotated.html new file mode 100644 index 000000000..7a3fe4944 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/annotated.html @@ -0,0 +1,65 @@ + + +PARADISEO-MO: Class List + + + + +
+
+
+
+

PARADISEO-MO Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EmptySelectionSpecial class that describes the case of no selection
moAlgo< EOT >Description of an algorithm of the mo library
moAspirCrit< M >Description of the conditions in which a tabu move could be accepted
moBestImprSelect< M >One of the possible moMoveSelect
moCoolSchedThis class gives the description of a cooling schedule
moEasyCoolSchedOne of the possible moCoolSched
moFirstImprSelect< M >One possible moMoveSelect
moGenSolContinue< EOT >One possible stop criterion for a solution-based heuristic
moHC< M >Hill Climbing (HC)
moHCMoveLoopExpl< M >Iterative explorer used by a moHC
moImprBestFitAspirCrit< M >One of the possible moAspirCrit
moItRandNextMove< M >One of the possible moNextMove
moLSCheckPoint< M >Class which allows a checkpointing system
moMove< EOT >Definition of a move
moMoveExpl< M >Description of a move (moMove) explorer
moMoveIncrEval< M >(generally) Efficient evaluation function based a move and a solution
moMoveInit< M >Move (moMove) initializer
moMoveLoopExpl< M >Class which describes an iterative explorer
moMoveSelect< M >Class that describes a move selector (moMove)
moNextMove< M >Class which allows to generate a new move (moMove)
moNoAspirCrit< M >One of the possible aspiration criterion (moAspirCrit)
moRandImprSelect< M >One of the possible moMove selector (moMoveSelect)
moRandMove< M >Random move generator
moSA< M >Simulated Annealing (SA)
moSolContinue< EOT >Class that describes a stop criterion for a solution-based heuristic
moTabuList< M >Class describing a tabu list that a moTS uses
moTS< M >Tabu Search (TS)
moTSMoveLoopExpl< M >Explorer for a Tabu Search algorithm
+
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/class_empty_selection.html b/trunk/paradiseo-mo/tutorial/docs/html/class_empty_selection.html new file mode 100644 index 000000000..639e2f5d1 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/class_empty_selection.html @@ -0,0 +1,52 @@ + + +PARADISEO-MO: EmptySelection Class Reference + + + + +
+
+
+
+

EmptySelection Class Reference

Special class that describes the case of no selection. +More... +

+#include <moMoveSelect.h> +

+ + +
+


Detailed Description

+Special class that describes the case of no selection. +

+This class is used as an exception that can be thrown if a solution selector has completly failed. +

+ +

+Definition at line 21 of file moMoveSelect.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classes.html b/trunk/paradiseo-mo/tutorial/docs/html/classes.html new file mode 100644 index 000000000..178d00b3c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classes.html @@ -0,0 +1,52 @@ + + +PARADISEO-MO: Alphabetical List + + + + +
+
+
+
+

PARADISEO-MO Class Index

A | B | C | E | F | G | H | I | L | M | N | R | S | T

+ +
  A  
+
  H  
+
moMoveSelect   
moAlgo   moHC   
  N  
+
moAspirCrit   moHCMoveLoopExpl   moNextMove   
  B  
+
  I  
+
moNoAspirCrit   
moBestImprSelect   moImprBestFitAspirCrit   
  R  
+
  C  
+
moItRandNextMove   moRandImprSelect   
moCoolSched   
  L  
+
moRandMove   
  E  
+
moLSCheckPoint   
  S  
+
moEasyCoolSched   
  M  
+
moSA   
EmptySelection   moMove   moSolContinue   
  F  
+
moMoveExpl   
  T  
+
moFirstImprSelect   moMoveIncrEval   moTabuList   
  G  
+
moMoveInit   moTS   
moGenSolContinue   moMoveLoopExpl   moTSMoveLoopExpl   

A | B | C | E | F | G | H | I | L | M | N | R | S | T

+


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_algo.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_algo.html new file mode 100644 index 000000000..cdfcc6354 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_algo.html @@ -0,0 +1,55 @@ + + +PARADISEO-MO: moAlgo< EOT > Class Template Reference + + + + +
+
+
+
+

moAlgo< EOT > Class Template Reference

Description of an algorithm of the mo library. +More... +

+#include <moAlgo.h> +

+ + +
+


Detailed Description

+

template<class EOT>
+ class moAlgo< EOT >

+ +Description of an algorithm of the mo library. +

+moHC, moTS and moSA are 3 examples of algorithm of the mo library. +

+ +

+Definition at line 21 of file moAlgo.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit-members.html new file mode 100644 index 000000000..4e176532f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit-members.html @@ -0,0 +1,37 @@ + + +PARADISEO-MO: Member List + + + + +
+
+
+
+

moAspirCrit< M > Member List

This is the complete list of members for moAspirCrit< M >, including all inherited members.

+ +
init()=0moAspirCrit< M > [pure virtual]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit.html new file mode 100644 index 000000000..f10e382f8 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit.html @@ -0,0 +1,91 @@ + + +PARADISEO-MO: moAspirCrit< M > Class Template Reference + + + + +
+
+
+
+

moAspirCrit< M > Class Template Reference

Description of the conditions in which a tabu move could be accepted. +More... +

+#include <moAspirCrit.h> +

+

Inheritance diagram for moAspirCrit< M >: +

+ +moImprBestFitAspirCrit< M > +moNoAspirCrit< M > + +List of all members. + + + + + +

Public Member Functions

virtual void init ()=0
 Procedure which initialises all that needs a aspiration criterion.
+

Detailed Description

+

template<class M>
+ class moAspirCrit< M >

+ +Description of the conditions in which a tabu move could be accepted. +

+It is only a description... An object that herits from this class is needed to be used in a moTS. See moNoAspriCrit for example. +

+ +

+Definition at line 22 of file moAspirCrit.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + +
virtual void moAspirCrit< M >::init (  )  [pure virtual]
+
+
+ +

+Procedure which initialises all that needs a aspiration criterion. +

+It can be possible that this procedure do nothing... +

+Implemented in moImprBestFitAspirCrit< M >, and moNoAspirCrit< M >. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_aspir_crit.png new file mode 100644 index 0000000000000000000000000000000000000000..b959606a7b2df5e8ea6c548dbd4123dfa983d5f5 GIT binary patch literal 778 zcmV+l1NHogP)Z zAPj~Ztu((eH!yR7)vmPXL0YNzKf+=g5=zq+cZPhd{H7|jIIkawL#tdaD!~{z9feYZ z+zomwcZ1%_eLv{wHVS~dQ}x}$v-g8`H-l3SF3@QT({Z33Ehg=>1Pzxdp`}A+keadw z9}5~L!Y+rK(g&9ir9`+q7}hzt6wqn=japl2BAuayoDUACp}gq1e%7e>gQhzV?xAy0 zq)tA2g?cw=$D{7yN*Cxut+dNsC(yimxT>b}M2=I_w0rPM&%1~0(**6xneK@Dv}k%6 z@s{mZWY8Mhujs$~!*o2`vF--FmHSxeQ$9ja=wokycXUeVYuuaQ4V@AC<9gj2L9bIn zpYujE=&fYXTgjlel0k2!gFvTW=5dOnpa=P~;vipxZWRal8g#2T$k(7-#X-IX-6{_9 zHRx7xkgq|vii3O&x>eK!|L)fxMeI-V{-HSGuOjyHD-4l9kMaIA=t>6N=={)F4In`2 z`qcLre4tkqiQu{Gm+uybXV5qYDh#`z7e|jd0p42pPzL0T)Xo!q4qeXF7`D(zlS806 zCO{-lWau<=OzX^3rg3B^Pmw4IQ-jb8J?B9(fS@wGgZ4mn2^cV86F99dwe;rYI(a!# zP$&_Bo9s;}m~%aVE_raV>o&ZDX0*)5sK_-f-dxjF7Ky}MhCBeF${|Tsp>Ogi4ZENV ztY20dxLodYKtamYPf4Cbqd;p6yP@YyrNLY$s|!Fb0 zTtSf2y{PFq4|ymJSD|J1pcn5*yid#3lihNr!TR literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select-members.html new file mode 100644 index 000000000..205260314 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select-members.html @@ -0,0 +1,43 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moBestImprSelect< M > Member List

This is the complete list of members for moBestImprSelect< M >, including all inherited members.

+ + + + + + + +
best_fitmoBestImprSelect< M > [private]
best_movemoBestImprSelect< M > [private]
first_timemoBestImprSelect< M > [private]
Fitness typedefmoBestImprSelect< M >
init(const Fitness &__fit)moBestImprSelect< M > [inline, virtual]
operator()(M &__move, Fitness &__fit)moBestImprSelect< M > [inline]
update(const M &__move, const Fitness &__fit)moBestImprSelect< M > [inline, virtual]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select.html new file mode 100644 index 000000000..73911ad4e --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select.html @@ -0,0 +1,185 @@ + + +PARADISEO-MO: moBestImprSelect< M > Class Template Reference + + + + +
+
+ +

moBestImprSelect< M > Class Template Reference

One of the possible moMoveSelect. +More... +

+#include <moBestImprSelect.h> +

+

Inheritance diagram for moBestImprSelect< M >: +

+ +moMoveSelect< M > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

+void init (const Fitness &__fit)
 Procedure which initialise the exploration.
bool update (const M &__move, const Fitness &__fit)
 Function that indicates if the current move has not improved the fitness.
void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
 Procedure which saved the best move and fitness.

Private Attributes

+bool first_time
 Allowing to know if at least one move has been generated.
+M best_move
 The best move.
+Fitness best_fit
 The best fitness.
+

Detailed Description

+

template<class M>
+ class moBestImprSelect< M >

+ +One of the possible moMoveSelect. +

+All neighbors are considered, and the movement which enables the best improvement is selected. +

+ +

+Definition at line 22 of file moBestImprSelect.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moBestImprSelect< M >::update (const M &  __move,
const Fitness __fit 
) [inline, virtual]
+
+
+ +

+Function that indicates if the current move has not improved the fitness. +

+If the given fitness enables an improvment, the move (moMove) and the fitness linked to this move are saved.

+

Parameters:
+ + + +
__move a move.
__fit a fitness linked to the move.
+
+
Returns:
TRUE if the move does not improve the fitness.
+ +

+Implements moMoveSelect< M >. +

+Definition at line 47 of file moBestImprSelect.h. +

+References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moBestImprSelect< M >::operator() (M &  __move,
Fitness __fit 
) throw (EmptySelection) [inline]
+
+
+ +

+Procedure which saved the best move and fitness. +

+

Parameters:
+ + + +
__move the current move (result of the procedure).
__fit the current fitness (result of the procedure).
+
+
Exceptions:
+ + +
EmptySelection if no move has improved the fitness.
+
+ +

+Definition at line 68 of file moBestImprSelect.h. +

+References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_best_impr_select.png new file mode 100644 index 0000000000000000000000000000000000000000..5b868e9d7a0908bd78d7ba048e0e55fe63d120ba GIT binary patch literal 513 zcmV+c0{;DpP)ulaCU?3LVL>nk1&2rN)k6qJ8McMlN8$+zGASH^wmq!=hR0&2I)0YslP=K zb)c~CYl?n*5^v+0Of3?cYlBn@I~S}ZnaG0{iNu?z`$)f%2!%yVEH;^R&=8r{b*Tg* zc|-npk~pB|K$Q&9tJ?Dtl$P}pz9!u_RwTD?Nz8{e2}A>0 z1oAWkvWaQHo&XxjcH2bJk4RYpH4ljv#V-Q0WSup{?Cz(8oaI%blQfnUqD7<%(@;>~ zKuS#_E)UeO)Jgc6E~8$-U9u zC9EXro!zI + +PARADISEO-MO: moCoolSched Class Reference + + + + +
+
+ +

moCoolSched Class Reference

This class gives the description of a cooling schedule. +More... +

+#include <moCoolSched.h> +

+

Inheritance diagram for moCoolSched: +

+ +moEasyCoolSched + + + +
+

Detailed Description

+This class gives the description of a cooling schedule. +

+It is only a description... An object that herits from this class is needed to be used in a moSA. See moEasyCoolSched for example. +

+ +

+Definition at line 22 of file moCoolSched.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_cool_sched.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_cool_sched.png new file mode 100644 index 0000000000000000000000000000000000000000..f41e6114cd4110aabd9084934b81e9510edfd15a GIT binary patch literal 430 zcmV;f0a5;mP)D8%z3X(_7m85{;@;59NyG>>~cGWy)4Tq>}hkJ z>|`f9*~y;9{*3H8th(=b)V}^RO8^*aSrkTq6qL*Z+uj#{6G#bLu|(1b*2;?!vPQDC zHG{c?kU9#BK)IXv!lKNJ1S>((RM_0D&nw}Yjkc|#SFCOfbk7tYSS#BK9ab5V5i~4S ztho-0%Ich3w$cqNbC%}?)B@W1<~i&6YJlyWw+y$_we?uq%)Z9HuUZPVQ;{X5v07*qoM6N<$f>uVv#Q*>R literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched-members.html new file mode 100644 index 000000000..eda80b70c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moEasyCoolSched Member List

This is the complete list of members for moEasyCoolSched, including all inherited members.

+ + + + +
moEasyCoolSched(double __threshold, double __ratio)moEasyCoolSched [inline]
operator()(double &__temp)moEasyCoolSched [inline]
ratiomoEasyCoolSched [private]
thresholdmoEasyCoolSched [private]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched.html new file mode 100644 index 000000000..4e38843d4 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched.html @@ -0,0 +1,147 @@ + + +PARADISEO-MO: moEasyCoolSched Class Reference + + + + +
+
+ +

moEasyCoolSched Class Reference

One of the possible moCoolSched. +More... +

+#include <moEasyCoolSched.h> +

+

Inheritance diagram for moEasyCoolSched: +

+ +moCoolSched + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moEasyCoolSched (double __threshold, double __ratio)
 Simple constructor.
bool operator() (double &__temp)
 Function which proceeds to the cooling.

Private Attributes

+double threshold
 The temperature threhold.
+double ratio
 The decreasing factor of the temperature.
+

Detailed Description

+One of the possible moCoolSched. +

+The simpliest, the temperature decrease according to a ratio until it greater than a threshold. +

+ +

+Definition at line 22 of file moEasyCoolSched.h.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
moEasyCoolSched::moEasyCoolSched (double  __threshold,
double  __ratio 
) [inline]
+
+
+ +

+Simple constructor. +

+

Parameters:
+ + + +
__threshold the threshold.
__ratio the ratio used to descrease the temperature.
+
+ +

+Definition at line 31 of file moEasyCoolSched.h. +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
bool moEasyCoolSched::operator() (double &  __temp  )  [inline]
+
+
+ +

+Function which proceeds to the cooling. +

+Decrease the temperature and indicates if it is greater than the threshold.

+

Parameters:
+ + +
__temp the current temperature.
+
+
Returns:
if the new temperature (current temperature * ratio) is greater than the threshold.
+ +

+Definition at line 44 of file moEasyCoolSched.h. +

+References ratio, and threshold. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_easy_cool_sched.png new file mode 100644 index 0000000000000000000000000000000000000000..b88ae27f6c25f1078f439a37fd9df3289fd46246 GIT binary patch literal 422 zcmV;X0a^ZuP)FCU%uZoXSrX}9XoSgYlHm-cF#AqYo~ttW9)Q0ggs5uA?#su9_(NT zJJ`V<#?p2(xVb6#XBLRco#3G`Tt{?rJpu{>vfUP4Kr-fx<-+^;xT&-s-tc->koyo@emm%Qa)@jv<*cE>mN4)|%*r%9U= QEdT%j07*qoM6N<$f_6N;t^fc4 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select-members.html new file mode 100644 index 000000000..9ce7a8ce5 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select-members.html @@ -0,0 +1,45 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moFirstImprSelect< M > Member List

This is the complete list of members for moFirstImprSelect< M >, including all inherited members.

+ + + + + + + + + +
best_fitmoFirstImprSelect< M > [private]
best_movemoFirstImprSelect< M > [private]
Fitness typedefmoFirstImprSelect< M >
init(const Fitness &__fit)moFirstImprSelect< M > [inline, virtual]
init_fitmoFirstImprSelect< M > [private]
operator()(M &__move, Fitness &__fit)moFirstImprSelect< M > [inline]
update(const M &__move, const typename M::EOType::Fitness &__fit)moFirstImprSelect< M > [inline]
moMoveSelect::update(const M &__move, const Fitness &__fit)=0moMoveSelect< M > [pure virtual]
validmoFirstImprSelect< M > [private]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select.html new file mode 100644 index 000000000..288256efe --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select.html @@ -0,0 +1,216 @@ + + +PARADISEO-MO: moFirstImprSelect< M > Class Template Reference + + + + +
+
+ +

moFirstImprSelect< M > Class Template Reference

One possible moMoveSelect. +More... +

+#include <moFirstImprSelect.h> +

+

Inheritance diagram for moFirstImprSelect< M >: +

+ +moMoveSelect< M > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

virtual void init (const Fitness &__fit)
 Procedure which initialise the exploration.
bool update (const M &__move, const typename M::EOType::Fitness &__fit)
 Function that indicates if the current move has not improved the fitness.
void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
 Procedure which saved the best move and fitness.

Private Attributes

+bool valid
 Allow to know if at least one move has improved the solution.
+M best_move
 Best stored movement.
+Fitness init_fit
 Initial fitness.
+Fitness best_fit
 Best stored fitness.
+

Detailed Description

+

template<class M>
+ class moFirstImprSelect< M >

+ +One possible moMoveSelect. +

+The neighborhood is explored until a move enables an improvment of the current solution. +

+ +

+Definition at line 23 of file moFirstImprSelect.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
virtual void moFirstImprSelect< M >::init (const Fitness __fit  )  [inline, virtual]
+
+
+ +

+Procedure which initialise the exploration. +

+It save the current fitness as the initial value for the fitness. +

+Implements moMoveSelect< M >. +

+Definition at line 35 of file moFirstImprSelect.h. +

+References moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moFirstImprSelect< M >::update (const M &  __move,
const typename M::EOType::Fitness &  __fit 
) [inline]
+
+
+ +

+Function that indicates if the current move has not improved the fitness. +

+If the given fitness enables an improvment, the move (moMove) should be applied to the current solution.

+

Parameters:
+ + + +
__move a move.
__fit a fitness linked to the move.
+
+
Returns:
TRUE if the move does not improve the fitness.
+ +

+Definition at line 52 of file moFirstImprSelect.h. +

+References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moFirstImprSelect< M >::operator() (M &  __move,
Fitness __fit 
) throw (EmptySelection) [inline]
+
+
+ +

+Procedure which saved the best move and fitness. +

+

Parameters:
+ + + +
__move the current move (result of the procedure).
__fit the current fitness (result of the procedure).
+
+
Exceptions:
+ + +
EmptySelection if no move has improved the fitness.
+
+ +

+Definition at line 76 of file moFirstImprSelect.h. +

+References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, and moFirstImprSelect< M >::valid. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_first_impr_select.png new file mode 100644 index 0000000000000000000000000000000000000000..c7295b0509209bfb7410b3493cbff09ddd350dfd GIT binary patch literal 512 zcmV+b0{{JqP)07PC%zN0z>Cj;K|> zIfE4?Rz1{=jFPn_?5LG>iDC<5uq8B|+PL&KNFgk(stz;jHmX|L+Z;oRDp0qgip;ck z)li*US@u_J6^)aHpk$KgDs?d07N|}KpO=9esDwK3<#mso?y~xA)cNxTQK$3y1yL{B z!GRj6ff}fR8mRw@!cjsK9ToaO{SZ~S4aJum7X@U8%dIK)%h?WS0@ zCDf$&gfi9^Wl@RC9g6qb67LHk3hHh0usf*W1d1#vAJ(V>bv>%GqL5IRwQ|S%TCE+_ z1j%X8M*);O7;Otw=eg?01OJ7;iF!Z=>Jij&FRw3EJqd1^cfbe$0000 + +PARADISEO-MO: Member List + + + + +
+
+ +

moGenSolContinue< EOT > Member List

This is the complete list of members for moGenSolContinue< EOT >, including all inherited members.

+ + + + + +
init()moGenSolContinue< EOT > [inline, virtual]
maxNumGenmoGenSolContinue< EOT > [private]
moGenSolContinue(unsigned __maxNumGen)moGenSolContinue< EOT > [inline]
numGenmoGenSolContinue< EOT > [private]
operator()(const EOT &__sol)moGenSolContinue< EOT > [inline]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_gen_sol_continue.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_gen_sol_continue.html new file mode 100644 index 000000000..9b0f5ecb7 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_gen_sol_continue.html @@ -0,0 +1,176 @@ + + +PARADISEO-MO: moGenSolContinue< EOT > Class Template Reference + + + + +
+
+ +

moGenSolContinue< EOT > Class Template Reference

One possible stop criterion for a solution-based heuristic. +More... +

+#include <moGenSolContinue.h> +

+

Inheritance diagram for moGenSolContinue< EOT >: +

+ +moSolContinue< EOT > + +List of all members. + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moGenSolContinue (unsigned __maxNumGen)
 Simple constructor.
bool operator() (const EOT &__sol)
 Function that activates the stop criterion.
void init ()
 Procedure which allows to initialise the generation counter.

Private Attributes

+unsigned maxNumGen
 Iteration maximum number.
+unsigned numGen
 Iteration current number.
+

Detailed Description

+

template<class EOT>
+ class moGenSolContinue< EOT >

+ +One possible stop criterion for a solution-based heuristic. +

+The stop criterion corresponds to a maximum number of iteration. +

+ +

+Definition at line 21 of file moGenSolContinue.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
moGenSolContinue< EOT >::moGenSolContinue (unsigned  __maxNumGen  )  [inline]
+
+
+ +

+Simple constructor. +

+

Parameters:
+ + +
__maxNumGen the maximum number of generation.
+
+ +

+Definition at line 30 of file moGenSolContinue.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
bool moGenSolContinue< EOT >::operator() (const EOT &  __sol  )  [inline]
+
+
+ +

+Function that activates the stop criterion. +

+Increments the counter and returns TRUE if the current number of iteration is lower than the given maximum number of iterations.

+

Parameters:
+ + +
__sol the current solution.
+
+
Returns:
TRUE or FALSE according to the current generation number.
+ +

+Definition at line 44 of file moGenSolContinue.h. +

+References moGenSolContinue< EOT >::maxNumGen, and moGenSolContinue< EOT >::numGen. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void moGenSolContinue< EOT >::init (  )  [inline, virtual]
+
+
+ +

+Procedure which allows to initialise the generation counter. +

+It can also be used to reset the iteration counter. +

+Implements moSolContinue< EOT >. +

+Definition at line 54 of file moGenSolContinue.h. +

+References moGenSolContinue< EOT >::numGen. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_gen_sol_continue.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_gen_sol_continue.png new file mode 100644 index 0000000000000000000000000000000000000000..84c8334c7d9fedd73d390d7786a5397e223104bc GIT binary patch literal 522 zcmV+l0`>igP)H{dE zV)Ik(mRMbh3FRY}m10p$_D~!`%gK7=2`YW7LZh^tj-Fx(?VLj>V9YsuETFQ6rW*YO zU3w~8oCC_VxXbBK{nt6w+Q#y>K7}Q?)o`eO>(gcR&l86_^mOPYzv!RK*Dq}U75etL z3-s~$x(W0?)pw{v9qLerI@F=JhvEVWe11se(2Jo2-l?SRvGPD`ttNz5cC3&mm2~26 zJPX@8hXGWeq$8nX@=R>TXqRTU8F^&e;?P54dufI;bY?OurmPX0T3w-l@jQ;bKRp!U%JiUa|i{DIfsuUC^yCu8fx?tbn;XS(1PPF&H-f_ z?Q%L)f0t8Izd=@VDt&4VQ5w+_%r%)q^;@4#)jwMt>d@1nSNx*C0q55=KSusCJpcdz M07*qoM6N<$f~+X&3IG5A literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c-members.html new file mode 100644 index 000000000..c892afdcd --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c-members.html @@ -0,0 +1,43 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moHC< M > Member List

This is the complete list of members for moHC< M >, including all inherited members.

+ + + + + + + +
EOT typedefmoHC< M > [private]
Fitness typedefmoHC< M > [private]
full_evalmoHC< M > [private]
moHC(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select, eoEvalFunc< EOT > &__full_eval)moHC< M > [inline]
moHC(moMoveExpl< M > &__move_expl, eoEvalFunc< EOT > &__full_eval)moHC< M > [inline]
move_explmoHC< M > [private]
operator()(EOT &__sol)moHC< M > [inline]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c.html new file mode 100644 index 000000000..807defc87 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c.html @@ -0,0 +1,230 @@ + + +PARADISEO-MO: moHC< M > Class Template Reference + + + + +
+
+ +

moHC< M > Class Template Reference

Hill Climbing (HC). +More... +

+#include <moHC.h> +

+

Inheritance diagram for moHC< M >: +

+ +moAlgo< M::EOType > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moHC (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select, eoEvalFunc< EOT > &__full_eval)
 Full constructor.
 moHC (moMoveExpl< M > &__move_expl, eoEvalFunc< EOT > &__full_eval)
 Light constructor.
bool operator() (EOT &__sol)
 Function which launches the HC.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef EOT::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moMoveExpl< M > & move_expl
 Complete exploration of the neighborhood.
+eoEvalFunc< EOT > & full_eval
 A full evaluation function.
+

Detailed Description

+

template<class M>
+ class moHC< M >

+ +Hill Climbing (HC). +

+Class which describes the algorithm for a hill climbing. +

+ +

+Definition at line 26 of file moHC.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moHC< M >::moHC (moMoveInit< M > &  __move_init,
moNextMove< M > &  __next_move,
moMoveIncrEval< M > &  __incr_eval,
moMoveSelect< M > &  __move_select,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+Full constructor. +

+All the boxes are given in order the HC to use a moHCMoveLoopExpl.

+

Parameters:
+ + + + + + +
__move_init a move initialiser.
__next_move a neighborhood explorer.
__incr_eval a (generally) efficient evaluation function.
__move_select a move selector.
__full_eval a full evaluation function.
+
+ +

+Definition at line 53 of file moHC.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
moHC< M >::moHC (moMoveExpl< M > &  __move_expl,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+Light constructor. +

+This constructor allow to use another moMoveExpl (generally not a moHCMoveLoopExpl).

+

Parameters:
+ + + +
__move_expl a complete explorer.
__full_eval a full evaluation function.
+
+ +

+Definition at line 67 of file moHC.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
bool moHC< M >::operator() (EOT __sol  )  [inline]
+
+
+ +

+Function which launches the HC. +

+The HC has to improve a current solution. As the moSA and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm.

+

Parameters:
+ + +
__sol a current solution to improve.
+
+
Returns:
TRUE.
+ +

+Definition at line 82 of file moHC.h. +

+References moHC< M >::full_eval, and moHC< M >::move_expl. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7aa771638bf7786e97d39ae6ef8c9ff85e8591 GIT binary patch literal 454 zcmV;%0XhDOP)#0l>$ z?eGA?kLP%D;xHGEG+{G%u1u6Way!XH$pObk>5x%!-BU=94h|tm_F=g(oW%P@4zqCK zAat_LlpGznI@*9=9jnhSpX4aCcYw`-)tQLP=h6wS;sM$@Y^QlXHAnhvcs-xwTH+qJ2S%lbLK#K=ghn21R^-HPxUgU%&9`ZIw>Ed?%AzR*y30|$!W?* w*DKaXTQ}>I)+^sXu5JI^iQ)WLr_+1q2mfyZY^e$5hX4Qo07*qoM6N<$g0gGVh5!Hn literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl-members.html new file mode 100644 index 000000000..a3ef12e92 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl-members.html @@ -0,0 +1,44 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moHCMoveLoopExpl< M > Member List

This is the complete list of members for moHCMoveLoopExpl< M >, including all inherited members.

+ + + + + + + + +
EOT typedefmoHCMoveLoopExpl< M > [private]
Fitness typedefmoHCMoveLoopExpl< M > [private]
incr_evalmoHCMoveLoopExpl< M > [private]
moHCMoveLoopExpl(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select)moHCMoveLoopExpl< M > [inline]
move_initmoHCMoveLoopExpl< M > [private]
move_selectmoHCMoveLoopExpl< M > [private]
next_movemoHCMoveLoopExpl< M > [private]
operator()(const EOT &__old_sol, EOT &__new_sol)moHCMoveLoopExpl< M > [inline]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl.html new file mode 100644 index 000000000..300eda5db --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl.html @@ -0,0 +1,194 @@ + + +PARADISEO-MO: moHCMoveLoopExpl< M > Class Template Reference + + + + +
+
+ +

moHCMoveLoopExpl< M > Class Template Reference

Iterative explorer used by a moHC. +More... +

+#include <moHCMoveLoopExpl.h> +

+

Inheritance diagram for moHCMoveLoopExpl< M >: +

+ +moMoveLoopExpl< M > +moMoveExpl< M > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moHCMoveLoopExpl (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select)
 Constructor.
void operator() (const EOT &__old_sol, EOT &__new_sol)
 Procedure which launches the explorer.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moMoveInit< M > & move_init
 Move initialiser.
+moNextMove< M > & next_move
 Neighborhood explorer.
+moMoveIncrEval< M > & incr_eval
 (generally) Efficient evaluation.
+moMoveSelect< M > & move_select
 Move selector.
+

Detailed Description

+

template<class M>
+ class moHCMoveLoopExpl< M >

+ +Iterative explorer used by a moHC. +

+ +

+Definition at line 23 of file moHCMoveLoopExpl.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moHCMoveLoopExpl< M >::moHCMoveLoopExpl (moMoveInit< M > &  __move_init,
moNextMove< M > &  __next_move,
moMoveIncrEval< M > &  __incr_eval,
moMoveSelect< M > &  __move_select 
) [inline]
+
+
+ +

+Constructor. +

+All the boxes have to be specified.

+

Parameters:
+ + + + + +
__move_init the move initialiser.
__next_move the neighborhood explorer.
__incr_eval (generally) efficient evaluation function.
__move_select the move selector.
+
+ +

+Definition at line 43 of file moHCMoveLoopExpl.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moHCMoveLoopExpl< M >::operator() (const EOT __old_sol,
EOT __new_sol 
) [inline]
+
+
+ +

+Procedure which launches the explorer. +

+The exploration starts from an old solution and provides a new solution.

+

Parameters:
+ + + +
__old_sol the current solution.
__new_sol the new_sol (result of the procedure).
+
+ +

+Definition at line 59 of file moHCMoveLoopExpl.h. +

+References moHCMoveLoopExpl< M >::incr_eval, moHCMoveLoopExpl< M >::move_init, moHCMoveLoopExpl< M >::move_select, and moHCMoveLoopExpl< M >::next_move. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_h_c_move_loop_expl.png new file mode 100644 index 0000000000000000000000000000000000000000..8c51e26c5b7ad21137cc074c8cec2c637dd5a5d6 GIT binary patch literal 658 zcmV;D0&V??P)8u0000OP)t-s|Ns90 z00960z@MLBkN^MxkN^Mxkifved&2+Z00001bW%=J06^y0W&i*JC`m*?RCt{2m`ifQ zAPk0K(>3A-aDq;Ip{#QMBNQQFumPK7a5GM%H0ELH3rP0Z{nhVu`&K`Gwh8l}n3liE z0Dyb0<8jOk1Xo7nzUz4Onbw9FupALO_=yd|tc53-;E?JYkXDJ$fHCAs@mVF=5VTp7AUmw%fStE16&SYcTKk+a;J+sk<8O9gXKW@<2NVQC|W9mz}wOsYyPvF*xC4Q5MND)V_LGp(6zVaXPCACZ|JxsP1# z?#egs$Q(6c&SswREI#9%;gw9$mnPc@NMQ<7n8FmMFopTqOqgy)nduu6=7~%l{{Zk9 zzr~4igr!a4%lYh6GsD5?FbRETxg?rd`A4SK;i!R_X7PzLnonS(@Y17E@YmYxF%2Ng zWTvLyFD|<7+PLp5_HX6)~O85gf`S{%fx7A z0%zFJY=jOljZ!sJrxC1}opr{#^TtdZwepEID)LEjRX$VQ>H6e?$0@u5psahy#-{Gf sY+RosmfdyV + +PARADISEO-MO: Member List + + + + +
+
+ +

moImprBestFitAspirCrit< M > Member List

This is the complete list of members for moImprBestFitAspirCrit< M >, including all inherited members.

+ + + + + + +
best_fitmoImprBestFitAspirCrit< M > [private]
first_timemoImprBestFitAspirCrit< M > [private]
Fitness typedefmoImprBestFitAspirCrit< M >
init()moImprBestFitAspirCrit< M > [inline, virtual]
moImprBestFitAspirCrit()moImprBestFitAspirCrit< M > [inline]
operator()(const M &__move, const Fitness &__fit)moImprBestFitAspirCrit< M > [inline]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_impr_best_fit_aspir_crit.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_impr_best_fit_aspir_crit.html new file mode 100644 index 000000000..36c1a8068 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_impr_best_fit_aspir_crit.html @@ -0,0 +1,132 @@ + + +PARADISEO-MO: moImprBestFitAspirCrit< M > Class Template Reference + + + + +
+
+ +

moImprBestFitAspirCrit< M > Class Template Reference

One of the possible moAspirCrit. +More... +

+#include <moImprBestFitAspirCrit.h> +

+

Inheritance diagram for moImprBestFitAspirCrit< M >: +

+ +moAspirCrit< M > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

moImprBestFitAspirCrit ()
 Contructor.
+void init ()
 Initialisation procedure.
bool operator() (const M &__move, const Fitness &__fit)
 Function that indicates if the fit is better that the already saved fit.

Private Attributes

+Fitness best_fit
 Best fitness found until now.
+bool first_time
 Indicates that a fitness has been already saved or not.
+

Detailed Description

+

template<class M>
+ class moImprBestFitAspirCrit< M >

+ +One of the possible moAspirCrit. +

+This criterion is satisfied when a given fitness is the best ever considered. +

+ +

+Definition at line 22 of file moImprBestFitAspirCrit.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moImprBestFitAspirCrit< M >::operator() (const M &  __move,
const Fitness __fit 
) [inline]
+
+
+ +

+Function that indicates if the fit is better that the already saved fit. +

+The first time, the function only saved the current move and fitness.

+

Parameters:
+ + + +
__move a move.
__fit a fitnes linked to the move.
+
+
Returns:
TRUE the first time and if __fit > best_fit, else FALSE.
+ +

+Definition at line 52 of file moImprBestFitAspirCrit.h. +

+References moImprBestFitAspirCrit< M >::best_fit, and moImprBestFitAspirCrit< M >::first_time. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_impr_best_fit_aspir_crit.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_impr_best_fit_aspir_crit.png new file mode 100644 index 0000000000000000000000000000000000000000..cfb21ada85b68fd3d2031a0700b35520c2da5509 GIT binary patch literal 548 zcmeAS@N?(olHy`uVBq!ia0vp^>w!3cg&9cBt+40JG z3ycpOI8c4){}UjWu_VYZn8D%MjWi&8m#2$kNX4ADQ++LzzdO21KlnGl7U;Y?!*?u3t*CtdB5t|&e_X(7vv-A-y!&y#MOY+LuCt9@OE zoms)QLmRqhAH2UN?(7fq2fNoa&u6^%_VfOOe9@EYS$}-_ne^cB%P&a}#NTxBy?X#h z-N$}Qh~7#sm;IAspvIgaS7f3Vp)@zO>7=vN{oa<+4;_jrTFW^9Db=0{I6v93wq-5X zwxgm<5{C{(32lj6fArYH%O{NlSFd1R-`vT&HlS@0Z(iuE?b3?nJ~Kn2+zO{VC~RYq zI%sDr+1H%iBQQb9ub|Us$vL|NsZ4yItadPFu9*=#%W}r&5DkCk65csKC1ipo9|d}G zYm(H#bSdTc3kyqJR~_AXY|^odqTiU80!h_fhh&cdy}NBesq5{dd-|W>-IHPdH~c@# k55sE*&ojLL`tv`NPonkQl}ryfflFVdQ&MBb@0FA-?ZU6uP literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move-members.html new file mode 100644 index 000000000..d54d6f6c8 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move-members.html @@ -0,0 +1,42 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moItRandNextMove< M > Member List

This is the complete list of members for moItRandNextMove< M >, including all inherited members.

+ + + + + + +
EOT typedefmoItRandNextMove< M > [private]
max_itermoItRandNextMove< M > [private]
moItRandNextMove(moRandMove< M > &__rand_move, unsigned __max_iter)moItRandNextMove< M > [inline]
num_itermoItRandNextMove< M > [private]
operator()(M &__move, const EOT &__sol)moItRandNextMove< M > [inline]
rand_movemoItRandNextMove< M > [private]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move.html new file mode 100644 index 000000000..578bd248f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move.html @@ -0,0 +1,174 @@ + + +PARADISEO-MO: moItRandNextMove< M > Class Template Reference + + + + +
+
+ +

moItRandNextMove< M > Class Template Reference

One of the possible moNextMove. +More... +

+#include <moItRandNextMove.h> +

+

Inheritance diagram for moItRandNextMove< M >: +

+ +moNextMove< M > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moItRandNextMove (moRandMove< M > &__rand_move, unsigned __max_iter)
 The constructor.
bool operator() (M &__move, const EOT &__sol)
 Generation of a new move.

Private Types

+typedef M::EOType EOT
 Alias for the type.

Private Attributes

+moRandMove< M > & rand_move
 A move generator (generally randomly).
+unsigned max_iter
 Iteration maximum number.
+unsigned num_iter
 Iteration current number.
+

Detailed Description

+

template<class M>
+ class moItRandNextMove< M >

+ +One of the possible moNextMove. +

+This class is a move (moMove) generator with a bound for the maximum number of iterations. +

+ +

+Definition at line 22 of file moItRandNextMove.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
moItRandNextMove< M >::moItRandNextMove (moRandMove< M > &  __rand_move,
unsigned  __max_iter 
) [inline]
+
+
+ +

+The constructor. +

+Parameters only for initialising the attributes.

+

Parameters:
+ + + +
__rand_move the random move generator.
__max_iter the iteration maximum number.
+
+ +

+Definition at line 37 of file moItRandNextMove.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moItRandNextMove< M >::operator() (M &  __move,
const EOT __sol 
) [inline]
+
+
+ +

+Generation of a new move. +

+If the maximum number is not already reached, the current move is forgotten and remplaced by another one.

+

Parameters:
+ + + +
__move the current move.
__sol the current solution.
+
+
Returns:
FALSE if the maximum number of iteration is reached, else TRUE.
+ +

+Definition at line 52 of file moItRandNextMove.h. +

+References moItRandNextMove< M >::max_iter, moItRandNextMove< M >::num_iter, and moItRandNextMove< M >::rand_move. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_it_rand_next_move.png new file mode 100644 index 0000000000000000000000000000000000000000..574beda2c5be0329aa0b7d4884736a2bf472f24c GIT binary patch literal 511 zcmVH zFbqY-P1dAt;GCdnFVt1;e}t0%TZ%jdZYrQ@A1mndw{EYg9}$%;Lb%iWoE-#5*KQ%9ma{; zp|jW0*=$p7sjK(S&bXEQ#gA;@{sXS_kMW#bPVW01-0ky)ahKceg>f(5*?}9lfg8Ai z8@Pdc24_7*llDwv;5y+XshBPFRM%BtSfQ#ef zTU=3vDsepN7~5jl1Du9ugofw@VJU7(6-&bR(vW5ht;7}_w$lf-yL$;|(H$IuDmd~s zxP-(SFT6px%54#|e@|BGty0t8;wq=&*w!U3La_zzAi4$@L5eaPWzukv)YJ}RTRXI@ zbe0{R&mB4&-6}10_1@VTw{z}(E(14kCvkm$j9;MS8In@reQ5vy002ovPDHLkV1iOE B?+gF{ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_l_s_check_point-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_l_s_check_point-members.html new file mode 100644 index 000000000..f4e0bbda7 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_l_s_check_point-members.html @@ -0,0 +1,39 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moLSCheckPoint< M > Member List

This is the complete list of members for moLSCheckPoint< M >, including all inherited members.

+ + + +
add(eoBF< const M &, const typename M::EOType &, void > &__f)moLSCheckPoint< M > [inline]
funcmoLSCheckPoint< M > [private]
operator()(const M &__move, const typename M::EOType &__sol)moLSCheckPoint< M > [inline]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_l_s_check_point.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_l_s_check_point.html new file mode 100644 index 000000000..f4b2f3147 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_l_s_check_point.html @@ -0,0 +1,147 @@ + + +PARADISEO-MO: moLSCheckPoint< M > Class Template Reference + + + + +
+
+ +

moLSCheckPoint< M > Class Template Reference

Class which allows a checkpointing system. +More... +

+#include <moLSCheckPoint.h> +

+List of all members. + + + + + + + + + + + + +

Public Member Functions

void operator() (const M &__move, const typename M::EOType &__sol)
 Function which launches the checkpointing.
void add (eoBF< const M &, const typename M::EOType &, void > &__f)
 Procedure which add a new function to the function vector.

Private Attributes

+std::vector< eoBF< const M &,
+ const typename M::EOType &,
+ void > * > 
func
 vector of function
+


Detailed Description

+

template<class M>
+ class moLSCheckPoint< M >

+ +Class which allows a checkpointing system. +

+Thanks to this class, at each iteration, additionnal function can be used (and not only one). +

+ +

+Definition at line 21 of file moLSCheckPoint.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moLSCheckPoint< M >::operator() (const M &  __move,
const typename M::EOType &  __sol 
) [inline]
+
+
+ +

+Function which launches the checkpointing. +

+Each saved function is used on the current move and the current solution.

+

Parameters:
+ + + +
__move a move.
__sol a solution.
+
+ +

+Definition at line 34 of file moLSCheckPoint.h. +

+References moLSCheckPoint< M >::func. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + +
void moLSCheckPoint< M >::add (eoBF< const M &, const typename M::EOType &, void > &  __f  )  [inline]
+
+
+ +

+Procedure which add a new function to the function vector. +

+The new function is added at the end of the vector.

Parameters:
+ + +
__f a new function to add.
+
+ +

+Definition at line 49 of file moLSCheckPoint.h. +

+References moLSCheckPoint< M >::func. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move-members.html new file mode 100644 index 000000000..c75f8953a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move-members.html @@ -0,0 +1,37 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moMove< EOT > Member List

This is the complete list of members for moMove< EOT >, including all inherited members.

+ +
EOType typedefmoMove< EOT >


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move.html new file mode 100644 index 000000000..b27a76070 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move.html @@ -0,0 +1,60 @@ + + +PARADISEO-MO: moMove< EOT > Class Template Reference + + + + +
+
+ +

moMove< EOT > Class Template Reference

Definition of a move. +More... +

+#include <moMove.h> +

+List of all members. + + + + + +

Public Types

+typedef EOT EOType
 Alias for the type.
+


Detailed Description

+

template<class EOT>
+ class moMove< EOT >

+ +Definition of a move. +

+A move transforms a solution to another close solution. It describes how a solution can be modified to another one. +

+ +

+Definition at line 23 of file moMove.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_expl.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_expl.html new file mode 100644 index 000000000..2c165f99b --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_expl.html @@ -0,0 +1,62 @@ + + +PARADISEO-MO: moMoveExpl< M > Class Template Reference + + + + +
+
+ +

moMoveExpl< M > Class Template Reference

Description of a move (moMove) explorer. +More... +

+#include <moMoveExpl.h> +

+

Inheritance diagram for moMoveExpl< M >: +

+ +moMoveLoopExpl< M > +moHCMoveLoopExpl< M > +moTSMoveLoopExpl< M > + + + +
+

Detailed Description

+

template<class M>
+ class moMoveExpl< M >

+ +Description of a move (moMove) explorer. +

+Only a description...See moMoveLoopExpl. +

+ +

+Definition at line 21 of file moMoveExpl.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_expl.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_expl.png new file mode 100644 index 0000000000000000000000000000000000000000..1b27438a76a121d08784a4aedc4de6fba1e03040 GIT binary patch literal 983 zcmV;|11S87P)0000OP)t-s|Ns90 z00960z@MLBkN^MxkN^Mxkifved&2+Z00001bW%=J06^y0W&i*KZAnByRCt{2no(}# zAPk0yR_Zfw1Ly@-TWQZzX{EXU5f6}gH>?_A}D4-GJYeoBIB2gs<8Jc^;7V6CVx zjM~Sem}5m%R2dEQaNVr8-T>_y2=(^ao1j_apuXL1y%Ab95b8+FN>L@Gs1j0C2`Q?C z6jefsDj`LckfKURQ6;3P5>iwNDXN6}qyG44)bCcq4>8nuw%!$0Q5AKmkiW}*(R0q{ zrr)-|5;Y;Xebjr?Z`)sh8bX>pxI8s9;BXYR#FC=vsh7+`vg(NH9l-j89H%c_%wb9WgCj(X$^hG_!yg!Yl6K&V_c1L^VrwV{COj+*^)ZOuPWAqWoZ;i!k7 znNewyCF&g2Lj_dZsMyQJOz_btDob!i&9@!xITcz^pDv);NfOs~vz*iyhz@ zHI({%;kVU#t6ob{zXfW8^e-z#{qIqmpKY7<+{1Od{sM(@TFj-d;Ya`g002ovPDHLk FV1hSO!S4V7 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_incr_eval.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_incr_eval.html new file mode 100644 index 000000000..570e9b7b8 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_incr_eval.html @@ -0,0 +1,55 @@ + + +PARADISEO-MO: moMoveIncrEval< M > Class Template Reference + + + + +
+
+ +

moMoveIncrEval< M > Class Template Reference

(generally) Efficient evaluation function based a move and a solution. +More... +

+#include <moMoveIncrEval.h> +

+ + +
+


Detailed Description

+

template<class M>
+ class moMoveIncrEval< M >

+ +(generally) Efficient evaluation function based a move and a solution. +

+From a move and a solution, it computes a new fitness that could be associated to the solution if this one is updated. +

+ +

+Definition at line 24 of file moMoveIncrEval.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_init.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_init.html new file mode 100644 index 000000000..01718ead9 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_init.html @@ -0,0 +1,55 @@ + + +PARADISEO-MO: moMoveInit< M > Class Template Reference + + + + +
+
+ +

moMoveInit< M > Class Template Reference

Move (moMove) initializer. +More... +

+#include <moMoveInit.h> +

+ + +
+


Detailed Description

+

template<class M>
+ class moMoveInit< M >

+ +Move (moMove) initializer. +

+Class which allows to initiase a move. Only a description... An object that herits from this class needs to be designed to be used. +

+ +

+Definition at line 22 of file moMoveInit.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_loop_expl.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_loop_expl.html new file mode 100644 index 000000000..b16126b31 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_loop_expl.html @@ -0,0 +1,62 @@ + + +PARADISEO-MO: moMoveLoopExpl< M > Class Template Reference + + + + +
+
+ +

moMoveLoopExpl< M > Class Template Reference

Class which describes an iterative explorer. +More... +

+#include <moMoveLoopExpl.h> +

+

Inheritance diagram for moMoveLoopExpl< M >: +

+ +moMoveExpl< M > +moHCMoveLoopExpl< M > +moTSMoveLoopExpl< M > + + + +
+

Detailed Description

+

template<class M>
+ class moMoveLoopExpl< M >

+ +Class which describes an iterative explorer. +

+Only a description... moHCMoveLoopExpl and moTSMoveLoopExpl are exemples of class that are a moMoveLoopExpl. +

+ +

+Definition at line 21 of file moMoveLoopExpl.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_loop_expl.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_loop_expl.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc99c0f6b664ce32dcff9c3a63462c1b96c8d4d GIT binary patch literal 1024 zcmV+b1poVqP)0000OP)t-s|Ns90 z00960z@MLBkN^MxkN^Mxkifved&2+Z00001bW%=J06^y0W&i*KmPtfGRCt{2oNaE~ zFbsxe6zFeBH;{XQVFPxa0tIsaBTOVEM_-PW!L*{5Z#LMn8R`i`smsv3O7-jQ&*^$% z_NVl=o~;i-6;wfO%7wq%*ccm5Z98Hdss}O!dVyL*T#o9TM{y>AzzIAIqWT-oUw;`? zYXH`IWJf1!I6!5svoJzLiXh}MsH<(GLa$PdEfq7OR;-t!u9i;xarKx86;Mr#q^l+C zP*fY&yG^SaQO8#`yz>AVdKH#c(yRCw-K%lo!wKNP*f&A30|eAcFY?o>$tI{j2en6n zDyV`w&xh-7y^jXy*F>nd&(Q?kng{j$b{mb*tBFu&T2_L}AwlJkpmIo1IV7kY5>yTe zDu)D>LxRd7LFJI3a!61)G#+&^r;81Bf{bj51yxXaR3=`EYx#Y@U+8eE+woVTdIYn3 zKN;zE`~|4X;wN8Bm>N#tVW?`J#aC0)$cHUHY9OjM0INOnLMJL5R2&%^`OAxjdx%K! zgnSjM(nqLpfL^7FYbs_$y|Z42sx+PWqw-({Duf196Q4&{H`XzzTB#a!i6fJtj;Ly& zf;-J#g=LlWDn737)wu9+%`dq0eRrlifNzOn2MDNjMmE$AZFPJ6BtiYIsKYX{B^Fdc z<Di@s2mbh4hbrUMx)-C#DMzAkW=xz z1D^~zm7p@@RD#NoQwb_VP9>-eIhCL?^Vn%RTZiMHy%SSEU8IMZW!aEis|zB8WkLA9ynCx zqoxT|T~&0saS-D6QEeJd@L4>fZpKvTP_s>)J5+&N4OHgXuWCb$c?mU6jpYpoObHXX z=q_Z#1be8_m}*09I8=p^Irgi%qlUa#1G}Qz(LJRjI2utdxJ(mZCX8QW6$mx@5<$Bh zpmz9G-BCl{Xl3*O6^dZcaEwOynjZCZK@AR7wPD$wUsV&;mZ-Fl3e?SY%4VoLRmB~k=}?vS>Lb6Zebkr)M~z;EJ87@3 zc5U@)+yQ7`tsJV-9pJ#PDo5S2*mYa__!6C?sl literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select-members.html new file mode 100644 index 000000000..9ca8036b3 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select-members.html @@ -0,0 +1,39 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moMoveSelect< M > Member List

This is the complete list of members for moMoveSelect< M >, including all inherited members.

+ + + +
Fitness typedefmoMoveSelect< M >
init(const Fitness &__fit)=0moMoveSelect< M > [pure virtual]
update(const M &__move, const Fitness &__fit)=0moMoveSelect< M > [pure virtual]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select.html new file mode 100644 index 000000000..9f4177431 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select.html @@ -0,0 +1,149 @@ + + +PARADISEO-MO: moMoveSelect< M > Class Template Reference + + + + +
+
+ +

moMoveSelect< M > Class Template Reference

Class that describes a move selector (moMove). +More... +

+#include <moMoveSelect.h> +

+

Inheritance diagram for moMoveSelect< M >: +

+ +moBestImprSelect< M > +moFirstImprSelect< M > +moRandImprSelect< M > + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

virtual void init (const Fitness &__fit)=0
 Procedure which initialises all that the move selector needs including the initial fitness.
virtual bool update (const M &__move, const Fitness &__fit)=0
 Function which updates the best solutions.
+

Detailed Description

+

template<class M>
+ class moMoveSelect< M >

+ +Class that describes a move selector (moMove). +

+It iteratively considers some moves (moMove) and their associated fitnesses. The best move is so regularly updated. At any time, it could be accessed. +

+ +

+Definition at line 32 of file moMoveSelect.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
virtual void moMoveSelect< M >::init (const Fitness __fit  )  [pure virtual]
+
+
+ +

+Procedure which initialises all that the move selector needs including the initial fitness. +

+In order to know the fitness of the solution, for which the neighborhood will be soon explored

+

Parameters:
+ + +
__fit the current fitness.
+
+ +

+Implemented in moBestImprSelect< M >, moFirstImprSelect< M >, and moRandImprSelect< M >. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
virtual bool moMoveSelect< M >::update (const M &  __move,
const Fitness __fit 
) [pure virtual]
+
+
+ +

+Function which updates the best solutions. +

+

Parameters:
+ + + +
__move a new move.
__fit a fitness linked to the new move.
+
+
Returns:
a boolean that expresses the need to resume the exploration.
+ +

+Implemented in moBestImprSelect< M >, and moRandImprSelect< M >. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_move_select.png new file mode 100644 index 0000000000000000000000000000000000000000..0781eef978a681677ee59b2cefa2fa33f49bd163 GIT binary patch literal 988 zcmV<210(#2P)Q8C4ml|z-tG(1{>s#%mRm6dR#{x6V>V~P`qVE-H!~00DX@^*{q8+I8rPcW~Q4HZU z%wwbtC-{&4;QWTVa0st^M!Yz!>5;b&)E%F6^aru%lwUJt-{a409bAbPdA4YgXQD-N zno^-vxR<2u`2>0B(_r73u!7?u)EVwaOTSaNm#6LGE;V#=nC4b!FFv>95=PFRY1hwf z7YF0Q&#i35bV6JMz2B-mSvF#!-Lg8bZvI*76jpnw(bl)xOO3X^)n00}^{w{Oy}n^h zldm1%Q2E*cj?~Aac7h{yFWSe$*N$+Y?nQgAU8>Rk$MUrU94cQsz@hTB0~{(}JHVmx zwF4X~Upv5|^0foJ(#PZMDoR_@4CM>^6%E*E-;yuv*J#gShVq5|8tpmEP`d=qc@dW_(q6&-Gz?v7dV5py^DL@I|>tqa>R?3WVTnfT$X>}MK z&ROm);W(X|Tdp-Ue~@W7(W-pTO+?a87NBV37%ST7zo2zY49jq_Jsun_$Ji(jkJ+Z> zm7Hm~rp2z*V@(^!mJg2BcO>Ht1Mjdw>&AvLoV4?(O;aJ^p3SY$<{56#sDjc(Kf>2Eb!{l zTd3@t63%VWsy#W=a85hz$v_>)0W|df!$!O(%LI%Mj+YiJd(nPN7yDnq+h&b6Uyb%H-HkTstI0Hd;~UmArGLYkrq6%As5t(rfO1O!0000< KMNUMnLSTY^3G<-< literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_next_move.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_next_move.html new file mode 100644 index 000000000..13bc051bf --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_next_move.html @@ -0,0 +1,60 @@ + + +PARADISEO-MO: moNextMove< M > Class Template Reference + + + + +
+
+ +

moNextMove< M > Class Template Reference

Class which allows to generate a new move (moMove). +More... +

+#include <moNextMove.h> +

+

Inheritance diagram for moNextMove< M >: +

+ +moItRandNextMove< M > + + + +
+

Detailed Description

+

template<class M>
+ class moNextMove< M >

+ +Class which allows to generate a new move (moMove). +

+Useful for the explorer (for moTS or moHC). Does nothing... An object that herits from this class needs to be designed for being used. +

+ +

+Definition at line 22 of file moNextMove.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_next_move.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_next_move.png new file mode 100644 index 0000000000000000000000000000000000000000..ee1f90bbc464ccc6979fc685054b6842e06e6e3f GIT binary patch literal 518 zcmV+h0{Q)kP)Hcj{U_CX5yr$1Q%RK8MxlK;1+Z6 z`Q#5C=hh3H)VKhBk2|&QaKUo1&0}VPA`JBTuqEHY<=9|RhQrm4eB)g)xEVt$vDex8 z3S-HH6C9E%xE=2TXJv~JhZY3ba_xa7(t6;%z%6=(GiTZ0+OqS3)v%Yuc~|ugtD$#} ze+%vsHwF=4MM?;M5{5HDni&mg1yT@hI}WG^80rE3pL!cgCQ1YgFVl>In`> z6&!g7TtZ=06y6Z|lx~)@h)U_V#-;2dZs9CAj&+N(RAhs@$gaX!l2KWWvS{EiuhKiL zWA8AsGFeV^-glU+O{0y`)Zi7r4HfdBvi07*qo IM6N<$f`Rn!sQ>@~ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit-members.html new file mode 100644 index 000000000..85295b9e2 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit-members.html @@ -0,0 +1,38 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moNoAspirCrit< M > Member List

This is the complete list of members for moNoAspirCrit< M >, including all inherited members.

+ + +
init()moNoAspirCrit< M > [inline, private, virtual]
operator()(const M &__move, const typename M::EOType::Fitness &__sol)moNoAspirCrit< M > [inline, private]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit.html new file mode 100644 index 000000000..c4a8320cc --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit.html @@ -0,0 +1,138 @@ + + +PARADISEO-MO: moNoAspirCrit< M > Class Template Reference + + + + +
+
+ +

moNoAspirCrit< M > Class Template Reference

One of the possible aspiration criterion (moAspirCrit). +More... +

+#include <moNoAspirCrit.h> +

+

Inheritance diagram for moNoAspirCrit< M >: +

+ +moAspirCrit< M > + +List of all members. + + + + + + + + +

Private Member Functions

bool operator() (const M &__move, const typename M::EOType::Fitness &__sol)
 Function which describes the aspiration criterion behaviour.
void init ()
 Procedure which initialises all that needs a moNoAspirCrit.
+

Detailed Description

+

template<class M>
+ class moNoAspirCrit< M >

+ +One of the possible aspiration criterion (moAspirCrit). +

+The simplest : never satisfied. +

+ +

+Definition at line 21 of file moNoAspirCrit.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moNoAspirCrit< M >::operator() (const M &  __move,
const typename M::EOType::Fitness &  __sol 
) [inline, private]
+
+
+ +

+Function which describes the aspiration criterion behaviour. +

+Does nothing.

+

Parameters:
+ + + +
__move a move.
__sol a fitness.
+
+
Returns:
FALSE.
+ +

+Definition at line 32 of file moNoAspirCrit.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
void moNoAspirCrit< M >::init (  )  [inline, private, virtual]
+
+
+ +

+Procedure which initialises all that needs a moNoAspirCrit. +

+Nothing... +

+Implements moAspirCrit< M >. +

+Definition at line 43 of file moNoAspirCrit.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_no_aspir_crit.png new file mode 100644 index 0000000000000000000000000000000000000000..f8412d8ed8acf7254dedb1e46f342db73d89bb3f GIT binary patch literal 478 zcmV<40U`d0P)b^P#HT@38cluezVhUX$$AtAp zS*N+K@rA(e3E968f{b)7aQPV~6C^K_e3gxpf$3VvR1CjZ(&Wb3gse|N_Cu<2ZiOZ9 zgvA*4UT7a^*$I_s1(McrZUu@ot7{_~fwkA%ts#Vd4eV3vgYAV0)(2O6ePFTzw!N_P zP$sb#QCGVc$H?c)Z9H1I9a9Kl{NMg6UY8mFE_|(@7uNOlap4JjF@-5iVG2{2f(8u+ zCLFAB3MT^S%a-es+z54wbqzWK`X^8mED83mq$PS6pzuItgfglic}V5GaWVk)1*Br2 z3K$nin%n?QKz$0b3RMNHLP8UK^vjmOd!aa`onXX4029ht1#AWKP9nngJf{Nqw)AQU z;jD)8=q_x1u)Q$B`rzuZ4`nY>+KsUnb{@(k_9E(P&%-fp9oNSTw_*w*4FB8z0hBcK Ud(9`$rT_o{07*qoM6N<$f{td+!vFvP literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select-members.html new file mode 100644 index 000000000..f1721eed3 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select-members.html @@ -0,0 +1,43 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moRandImprSelect< M > Member List

This is the complete list of members for moRandImprSelect< M >, including all inherited members.

+ + + + + + + +
Fitness typedefmoRandImprSelect< M >
init(const Fitness &__fit)moRandImprSelect< M > [inline, virtual]
init_fitmoRandImprSelect< M > [private]
operator()(M &__move, Fitness &__fit)moRandImprSelect< M > [inline]
update(const M &__move, const Fitness &__fit)moRandImprSelect< M > [inline, virtual]
vect_better_fitmoRandImprSelect< M > [private]
vect_better_movesmoRandImprSelect< M > [private]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select.html new file mode 100644 index 000000000..cb8b36828 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select.html @@ -0,0 +1,221 @@ + + +PARADISEO-MO: moRandImprSelect< M > Class Template Reference + + + + +
+
+ +

moRandImprSelect< M > Class Template Reference

One of the possible moMove selector (moMoveSelect). +More... +

+#include <moRandImprSelect.h> +

+

Inheritance diagram for moRandImprSelect< M >: +

+ +moMoveSelect< M > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

void init (const Fitness &__fit)
 Procedure which all that needs a moRandImprSelect.
bool update (const M &__move, const Fitness &__fit)
 Function that updates the fitness and move vectors.
void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
 The move selection.

Private Attributes

+Fitness init_fit
 Fitness of the current solution.
+std::vector< Fitnessvect_better_fit
 Candidate fitnesse vector.
+std::vector< M > vect_better_moves
 Candidate move vector.
+

Detailed Description

+

template<class M>
+ class moRandImprSelect< M >

+ +One of the possible moMove selector (moMoveSelect). +

+All the neighbors are considered. One of them that enables an improvment of the objective function is choosen. +

+ +

+Definition at line 25 of file moRandImprSelect.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
void moRandImprSelect< M >::init (const Fitness __fit  )  [inline, virtual]
+
+
+ +

+Procedure which all that needs a moRandImprSelect. +

+Give a value to the initialise fitness. Clean the move and fitness vectors.

+

Parameters:
+ + +
__fit the current best fitness
+
+ +

+Implements moMoveSelect< M >. +

+Definition at line 40 of file moRandImprSelect.h. +

+References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moRandImprSelect< M >::update (const M &  __move,
const Fitness __fit 
) [inline, virtual]
+
+
+ +

+Function that updates the fitness and move vectors. +

+if a move give a better fitness than the initial fitness, it is saved and the fitness too.

+

Parameters:
+ + + +
__move a new move.
__fit a new fitness associated to the new move.
+
+
Returns:
TRUE.
+ +

+Implements moMoveSelect< M >. +

+Definition at line 56 of file moRandImprSelect.h. +

+References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moRandImprSelect< M >::operator() (M &  __move,
Fitness __fit 
) throw (EmptySelection) [inline]
+
+
+ +

+The move selection. +

+One the saved move is randomly chosen.

+

Parameters:
+ + + +
__move the reference of the move that can be initialised by the function.
__fit the reference of the fitness that can be initialised by the function.
+
+
Exceptions:
+ + +
EmptySelection If no move which improves the current fitness are found.
+
+ +

+Definition at line 77 of file moRandImprSelect.h. +

+References moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_rand_impr_select.png new file mode 100644 index 0000000000000000000000000000000000000000..6931c3dfdef9b2f9d4a0dc4a28e161ef38b999c7 GIT binary patch literal 517 zcmV+g0{Z=lP)t*X?0AmaE@G^qIOvkWV*}kH|WFQaB8HE?2>nM-F3ItaeT5Ygtr(QB_dTo$W z-2NtMb)uttukthO3&=# z;PbX&fN2IPz>L + +PARADISEO-MO: moRandMove< M > Class Template Reference + + + + +
+
+ +

moRandMove< M > Class Template Reference

Random move generator. +More... +

+#include <moRandMove.h> +

+ + +
+


Detailed Description

+

template<class M>
+ class moRandMove< M >

+ +Random move generator. +

+Only a description... An object that herits from this class needs to be designed in order to use a moSA. +

+ +

+Definition at line 21 of file moRandMove.h.


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a-members.html new file mode 100644 index 000000000..20fa23bec --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a-members.html @@ -0,0 +1,46 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moSA< M > Member List

This is the complete list of members for moSA< M >, including all inherited members.

+ + + + + + + + + + +
contmoSA< M > [private]
cool_schedmoSA< M > [private]
EOT typedefmoSA< M > [private]
Fitness typedefmoSA< M > [private]
full_evalmoSA< M > [private]
incr_evalmoSA< M > [private]
init_tempmoSA< M > [private]
moSA(moRandMove< M > &__move_rand, moMoveIncrEval< M > &__incr_eval, moSolContinue< EOT > &__cont, double __init_temp, moCoolSched &__cool_sched, eoEvalFunc< EOT > &__full_eval)moSA< M > [inline]
move_randmoSA< M > [private]
operator()(EOT &__sol)moSA< M > [inline]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a.html new file mode 100644 index 000000000..783a27f00 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a.html @@ -0,0 +1,208 @@ + + +PARADISEO-MO: moSA< M > Class Template Reference + + + + +
+
+ +

moSA< M > Class Template Reference

Simulated Annealing (SA). +More... +

+#include <moSA.h> +

+

Inheritance diagram for moSA< M >: +

+ +moAlgo< M::EOType > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moSA (moRandMove< M > &__move_rand, moMoveIncrEval< M > &__incr_eval, moSolContinue< EOT > &__cont, double __init_temp, moCoolSched &__cool_sched, eoEvalFunc< EOT > &__full_eval)
 SA constructor.
bool operator() (EOT &__sol)
 function that launches the SA algorithm.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef EOT::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moRandMove< M > & move_rand
 A move generator (generally randomly).
+moMoveIncrEval< M > & incr_eval
 A (generally) efficient evaluation function.
+moSolContinue< EOT > & cont
 Stopping criterion before temperature update.
+double init_temp
 Initial temperature.
+moCoolSchedcool_sched
 The cooling schedule.
+eoEvalFunc< EOT > & full_eval
 A full evaluation function.
+

Detailed Description

+

template<class M>
+ class moSA< M >

+ +Simulated Annealing (SA). +

+Class that describes a Simulated Annealing algorithm. +

+ +

+Definition at line 32 of file moSA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moSA< M >::moSA (moRandMove< M > &  __move_rand,
moMoveIncrEval< M > &  __incr_eval,
moSolContinue< EOT > &  __cont,
double  __init_temp,
moCoolSched __cool_sched,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+SA constructor. +

+All the boxes used by a SA need to be given.

+

Parameters:
+ + + + + + + +
__move_rand a move generator (generally randomly).
__incr_eval a (generaly) efficient evaluation function
__cont a stopping criterion.
__init_temp the initial temperature.
__cool_sched a cooling schedule, describes how the temperature is modified.
__full_eval a full evaluation function.
+
+ +

+Definition at line 60 of file moSA.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
bool moSA< M >::operator() (EOT __sol  )  [inline]
+
+
+ +

+function that launches the SA algorithm. +

+As a moTS or a moHC, the SA can be used for HYBRIDATION in an evolutionary algorithm.

+

Parameters:
+ + +
__sol a solution to improve.
+
+
Returns:
TRUE.
+ +

+Definition at line 82 of file moSA.h. +

+References moSA< M >::cont, moSA< M >::cool_sched, moSA< M >::full_eval, moSA< M >::incr_eval, moSA< M >::init_temp, and moSA< M >::move_rand. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_s_a.png new file mode 100644 index 0000000000000000000000000000000000000000..59c20157af06fab2bc77bf29f8e564f00a1a2deb GIT binary patch literal 462 zcmV;<0WtoGP) z$VJkbk`n{76FcCuqxC8BNlt`H2jJHMturFk&lM-siVIXYq^IkAS`J^+@OD1QS=YyF z_QiT3?$?KxC_3eO#bQw2KRK($dTkrEcE~1Rvx^!IojdhzY~=%3U8>T#;@oM|Idew6 zcP_Nom7u?KK9*-W%kp}Z^R)Gv&UB_To#{;Hc@7L|&bT2dPv;E>AVlO)vmboqSh;O& zR{2Vo!$WyI7^|JzjsqKRKne)sos%PY7ailGBSYjrrjeW`bnHk@;Ph!+c-|f8$dNi* z>1sa7>CGoQS|1JWs}HZ2?4Ri5&|CYbr%mU-I)mOjKT0+On3w54UjP6A07*qoM6N<$ Ef+?WR5C8xG literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue-members.html new file mode 100644 index 000000000..4f5721cf8 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue-members.html @@ -0,0 +1,37 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moSolContinue< EOT > Member List

This is the complete list of members for moSolContinue< EOT >, including all inherited members.

+ +
init()=0moSolContinue< EOT > [pure virtual]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue.html new file mode 100644 index 000000000..2e762b92a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue.html @@ -0,0 +1,90 @@ + + +PARADISEO-MO: moSolContinue< EOT > Class Template Reference + + + + +
+
+ +

moSolContinue< EOT > Class Template Reference

Class that describes a stop criterion for a solution-based heuristic. +More... +

+#include <moSolContinue.h> +

+

Inheritance diagram for moSolContinue< EOT >: +

+ +moGenSolContinue< EOT > + +List of all members. + + + + + +

Public Member Functions

virtual void init ()=0
 Procedure which initialises all that the stop criterion needs.
+

Detailed Description

+

template<class EOT>
+ class moSolContinue< EOT >

+ +Class that describes a stop criterion for a solution-based heuristic. +

+It allows to add an initialisation procedure to an object that is a unary function (eoUF). +

+ +

+Definition at line 22 of file moSolContinue.h.


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + +
virtual void moSolContinue< EOT >::init (  )  [pure virtual]
+
+
+ +

+Procedure which initialises all that the stop criterion needs. +

+Generally, it allocates some data structures or initialises some counters. +

+Implemented in moGenSolContinue< EOT >. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_sol_continue.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1f2edde45f1ab6750d0ab5e313aa1b9e214aa9 GIT binary patch literal 533 zcmeAS@N?(olHy`uVBq!ia0vp^D}XqFg&9cJFH!ysq$C1-LR|m<{|{vT|9@cq{DcWW z78oBmaG?6o|0h5$V@Z%-FoVOh8)-oHYEKu(kcv5Pr#j{xQQ&b+yu5XPenM6AHz(!L zS-<5MN-!%1?xYhy7yD z%2yxPS^agiOL_f-&4pR@(vuTSfi}AueyF^^>dJS;;pA3#d54Fh()BNMK3R&spAc6Q zgi)*7MVZB<&fxyDB|w-oU$Y%o0jsXygz**vG%b#)E%(!8SQ@}5fD z_d0X&zx%eKxwTSH=N*!YG0C~2|NTqI-^y(ZxUFQXPOJagwfEWe682IGGE&0uL`E9XdejC@0*t`_cI z9*VXi(k52|wnUc&RIfC)zE*WBtxIr~#uO_-8#l=OAIqz To=jK@j6()bS3j3^P6 + +PARADISEO-MO: Member List + + + + +
+
+ +

moTS< M > Member List

This is the complete list of members for moTS< M >, including all inherited members.

+ + + + + + + + + + +
contmoTS< M > [private]
EOT typedefmoTS< M > [private]
first_timemoTS< M > [private, static]
Fitness typedefmoTS< M > [private]
full_evalmoTS< M > [private]
moTS(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)moTS< M > [inline]
moTS(moMoveExpl< M > &__move_expl, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)moTS< M > [inline]
move_explmoTS< M > [private]
mutexmoTS< M > [private, static]
operator()(EOT &__sol)moTS< M > [inline]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s.html new file mode 100644 index 000000000..63b3c3eac --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s.html @@ -0,0 +1,268 @@ + + +PARADISEO-MO: moTS< M > Class Template Reference + + + + +
+
+ +

moTS< M > Class Template Reference

Tabu Search (TS). +More... +

+#include <moTS.h> +

+

Inheritance diagram for moTS< M >: +

+ +moAlgo< M::EOType > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moTS (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)
 Constructor of a moTS specifying all the boxes.
 moTS (moMoveExpl< M > &__move_expl, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)
 Constructor with less parameters.
bool operator() (EOT &__sol)
 Function which launchs the Tabu Search.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef EOT::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moMoveExpl< M > & move_expl
 Neighborhood explorer.
+moSolContinue< EOT > & cont
 Stop criterion.
+eoEvalFunc< EOT > & full_eval
 Full evaluation function.

Static Private Attributes

+static bool first_time
 Boolean allowing to initialise the ptread_mutex_t in the constructor.
+static pthread_mutex_t mutex
 The lock.
+

Detailed Description

+

template<class M>
+ class moTS< M >

+ +Tabu Search (TS). +

+Generic algorithm that describes a tabu search. +

+ +

+Definition at line 30 of file moTS.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moTS< M >::moTS (moMoveInit< M > &  __move_init,
moNextMove< M > &  __next_move,
moMoveIncrEval< M > &  __incr_eval,
moTabuList< M > &  __tabu_list,
moAspirCrit< M > &  __aspir_crit,
moSolContinue< EOT > &  __cont,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+Constructor of a moTS specifying all the boxes. +

+In this constructor, a moTSMoveLoopExpl is instanciated.

+

Parameters:
+ + + + + + + + +
__move_init move initialisation
__next_move neighborhood explorer
__incr_eval efficient evaluation
__tabu_list tabu list
__aspir_crit aspiration criterion
__cont stop criterion
__full_eval full evaluation function
+
+ +

+Definition at line 59 of file moTS.h. +

+References moTS< M >::first_time, and moTS< M >::mutex. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moTS< M >::moTS (moMoveExpl< M > &  __move_expl,
moSolContinue< EOT > &  __cont,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+Constructor with less parameters. +

+The explorer is given in the parameters.

+

Parameters:
+ + + + +
__move_expl the explorer (generally different that a moTSMoveLoopExpl)
__cont stop criterion
__full_eval full evaluation function
+
+ +

+Definition at line 81 of file moTS.h. +

+References moTS< M >::first_time, and moTS< M >::mutex. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
bool moTS< M >::operator() (EOT __sol  )  [inline]
+
+
+ +

+Function which launchs the Tabu Search. +

+Algorithm of the tabu search. As a moSA or a moHC, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread_mutex_t) is closed during the algorithm.

+

Parameters:
+ + +
__sol a solution to improve.
+
+
Returns:
TRUE.
+ +

+Definition at line 104 of file moTS.h. +

+References moTS< M >::cont, moTS< M >::full_eval, moTS< M >::move_expl, and moTS< M >::mutex. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6c7b3048073af92db7db2b099a29be87a8a1c0 GIT binary patch literal 457 zcmV;)0XF`LP)4mz={f{sP%ERJREtV>;R>k)GXHb*K#jsS)R9Y?pCkqOlLaNna*_X=fIE_To@Aabgny|>%isAcXnKfC&)g0INJK#mqP|{F2c`v(qN8|Bsb;L+kcKXo1 + +PARADISEO-MO: Member List + + + + +
+
+ +

moTSMoveLoopExpl< M > Member List

This is the complete list of members for moTSMoveLoopExpl< M >, including all inherited members.

+ + + + + + + + + + +
aspir_critmoTSMoveLoopExpl< M > [private]
EOT typedefmoTSMoveLoopExpl< M > [private]
Fitness typedefmoTSMoveLoopExpl< M > [private]
incr_evalmoTSMoveLoopExpl< M > [private]
moTSMoveLoopExpl(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit)moTSMoveLoopExpl< M > [inline]
move_initmoTSMoveLoopExpl< M > [private]
move_selectmoTSMoveLoopExpl< M > [private]
next_movemoTSMoveLoopExpl< M > [private]
operator()(const EOT &__old_sol, EOT &__new_sol)moTSMoveLoopExpl< M > [inline]
tabu_listmoTSMoveLoopExpl< M > [private]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s_move_loop_expl.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s_move_loop_expl.html new file mode 100644 index 000000000..c209b3057 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s_move_loop_expl.html @@ -0,0 +1,212 @@ + + +PARADISEO-MO: moTSMoveLoopExpl< M > Class Template Reference + + + + +
+
+ +

moTSMoveLoopExpl< M > Class Template Reference

Explorer for a Tabu Search algorithm. +More... +

+#include <moTSMoveLoopExpl.h> +

+

Inheritance diagram for moTSMoveLoopExpl< M >: +

+ +moMoveLoopExpl< M > +moMoveExpl< M > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moTSMoveLoopExpl (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit)
 Constructor.
void operator() (const EOT &__old_sol, EOT &__new_sol)
 Procedure which lauches the exploration.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moMoveInit< M > & move_init
 Move initialisation.
+moNextMove< M > & next_move
 Neighborhood explorer.
+moMoveIncrEval< M > & incr_eval
 Efficient evaluation.
+moBestImprSelect< M > move_select
 Move selector.
+moTabuList< M > & tabu_list
 Tabu list.
+moAspirCrit< M > & aspir_crit
 Aspiration criterion.
+

Detailed Description

+

template<class M>
+ class moTSMoveLoopExpl< M >

+ +Explorer for a Tabu Search algorithm. +

+It is used by a moTS. +

+ +

+Definition at line 30 of file moTSMoveLoopExpl.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moTSMoveLoopExpl< M >::moTSMoveLoopExpl (moMoveInit< M > &  __move_init,
moNextMove< M > &  __next_move,
moMoveIncrEval< M > &  __incr_eval,
moTabuList< M > &  __tabu_list,
moAspirCrit< M > &  __aspir_crit 
) [inline]
+
+
+ +

+Constructor. +

+

Parameters:
+ + + + + + +
__move_init move initialisation
__next_move neighborhood explorer
__incr_eval efficient evaluation
__tabu_list tabu list
__aspir_crit aspiration criterion
+
+ +

+Definition at line 49 of file moTSMoveLoopExpl.h. +

+References moTSMoveLoopExpl< M >::aspir_crit, and moTSMoveLoopExpl< M >::tabu_list. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moTSMoveLoopExpl< M >::operator() (const EOT __old_sol,
EOT __new_sol 
) [inline]
+
+
+ +

+Procedure which lauches the exploration. +

+The exploration continues while the chosen move is not in the tabu list or the aspiration criterion is true. If these 2 conditions are not true, the exploration stops if the move selector update function returns false.

+

Parameters:
+ + + +
__old_sol the initial solution
__new_sol the new solution
+
+ +

+Definition at line 69 of file moTSMoveLoopExpl.h. +

+References moTSMoveLoopExpl< M >::aspir_crit, moTSMoveLoopExpl< M >::incr_eval, moTSMoveLoopExpl< M >::move_init, moTSMoveLoopExpl< M >::move_select, moTSMoveLoopExpl< M >::next_move, and moTSMoveLoopExpl< M >::tabu_list. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s_move_loop_expl.png b/trunk/paradiseo-mo/tutorial/docs/html/classmo_t_s_move_loop_expl.png new file mode 100644 index 0000000000000000000000000000000000000000..c9608b2deabb5215c09073c147bd24719dee17fe GIT binary patch literal 659 zcmV;E0&M+>P)^@RCt{2m`ifQ zAPk1lCTqbBpf_kQ)K%_(gd!nq%)=owbdq>PrjZEJXOQY~@|&O4!+eLe<4cMEN_6s< zhqYEbKZtlljQPHd-+e!b7!jR|8P-XBbm+x~P|n$>iPjU-$J`)J5EIC;^p;2*k;vzJ z^r1_nI(jEF7YbsH91^`a(fUZETp`L?IU=;kDPjou)a4#CadwaSxY0@-$uH~3uemzr z7PCWH)O%~IUT0!Gp1fyzi0cz4h7wm1*FRln$89?Db;SGc+Y@j1``Z&gqSs1Pq7s#; zL?tTmb;R}GNI&6wxDrDv;~almPRKqDaV+#4XG4)@Bc2F7WPJSb@26y+jd&vT5?2w|KV8><19%-#^`1q@)j%aGQHe@aq7s#ODWY9H3@$zkC~-Y8HVVNa ze^g%Rcu{I+PTtqInByLSR=~sz7!$D!PuD2pnF#a_R){%*H!H@Fi4g!iqd2r@M6|%! zkd`p|2)ri7wHF zoR#CZ^VdYIiK!PA5#g}MOziFvQ))`)S*MP)Qr6L+>C{nr4boz6GA%}9Ef&3wb*y@w tiJkw)hXZzZly^bm)J2uJhPeFc`Uj2YDHPUK%K!iX002ovPDHLkV1kqwEnENq literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_tabu_list-members.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_tabu_list-members.html new file mode 100644 index 000000000..a5a45179f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_tabu_list-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moTabuList< M > Member List

This is the complete list of members for moTabuList< M >, including all inherited members.

+ + + + +
add(const M &__move, const EOT &__sol)=0moTabuList< M > [pure virtual]
EOT typedefmoTabuList< M >
init()=0moTabuList< M > [pure virtual]
update()=0moTabuList< M > [pure virtual]


Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/classmo_tabu_list.html b/trunk/paradiseo-mo/tutorial/docs/html/classmo_tabu_list.html new file mode 100644 index 000000000..184224785 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/classmo_tabu_list.html @@ -0,0 +1,157 @@ + + +PARADISEO-MO: moTabuList< M > Class Template Reference + + + + +
+
+ +

moTabuList< M > Class Template Reference

Class describing a tabu list that a moTS uses. +More... +

+#include <moTabuList.h> +

+List of all members. + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType EOT
 Alias for the type.

Public Member Functions

virtual void add (const M &__move, const EOT &__sol)=0
 Procedure to add a move in the tabu list.
virtual void update ()=0
 Procedure that updates the tabu list content.
virtual void init ()=0
 Procedure which initialises the tabu list.
+


Detailed Description

+

template<class M>
+ class moTabuList< M >

+ +Class describing a tabu list that a moTS uses. +

+It is only a description, does nothing... A new object that herits from this class has to be defined in order to be used in a moTS. +

+ +

+Definition at line 22 of file moTabuList.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
virtual void moTabuList< M >::add (const M &  __move,
const EOT __sol 
) [pure virtual]
+
+
+ +

+Procedure to add a move in the tabu list. +

+The two parameters have not to be modified so they are constant parameters

+

Parameters:
+ + + +
__move a new tabu move
__sol the solution associated to this move
+
+ +
+

+ +

+
+
+template<class M>
+ + + + + + + + +
virtual void moTabuList< M >::update (  )  [pure virtual]
+
+
+ +

+Procedure that updates the tabu list content. +

+Generally, a counter associated to each saved move is decreased by one. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
virtual void moTabuList< M >::init (  )  [pure virtual]
+
+
+ +

+Procedure which initialises the tabu list. +

+Can be useful if the data structure needs to be allocated before being used. +

+

+


The documentation for this class was generated from the following file: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/doxygen.css b/trunk/paradiseo-mo/tutorial/docs/html/doxygen.css new file mode 100644 index 000000000..c7db1a8a0 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; + white-space: nowrap; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } diff --git a/trunk/paradiseo-mo/tutorial/docs/html/doxygen.png b/trunk/paradiseo-mo/tutorial/docs/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a274bbaffdd67f6d784c894d9cf28729db0e14 GIT binary patch literal 1281 zcmaJ>ZA?>F7(Vx-ms?uoS`b@hdRtpo6o^%HU>M$hfGrBvQnk$LE?p^P!kn&ikhyq! zX~V@&tPF5Qt@V?oTL96Bi%aRiwbe1)9DWQI#?)=HxS7QSw`J`5fAJ*eJbB;uNuKA& zdERDo*{Y<(If(#(B$Lr#;nB(8Y#ia=ZCeW?JfPLuQY`=@cW$k}Rivq|vbxGrRq1Tl9;+(gNt?}UtVKM2`T5t1jLzuL@0UIs`S#vlhl4)^ zLgSYrPj@$+`|j?eSbXTmiHGkWxV8V}BzNR?pl9k_s4pDu9vd5a_UzZEPk)}Ad{AV_ zzddrjrh4=Imr`E06;LY{)YYt?o}L~H@7C}F^WB!Ra=v`Q0bj{>5&$66CWF>mf6vjP z2N>RRY6ZYa=K`76>+|_)Xdwko+7wv}7cN|btOhWb(*{sta~6b?S8Omrxw}!4`NhGr zZVpNqpu1@BE`QGWNTpEpcJVW5izu~2B^GlM?1(OPg)zwW;QcP@Ltcclm>XbJL9C|j z=9!2?ua=uIlf0%AndzHsRC}IyTL$EhAee(fdKB`?27KeS^2M8M_7b~PiCFO&r5LC7 z7gl1*a<8;SjNaw#h=843_AV9iZbWQOAp5YOC^&_F*9K0> zB|6%IDb?aM#3viTxkLU4aXg&@+CkNTOnQ1iMP*^?b|^lJy$4C)Zk4isV!|RZ*XhXh zw8q3$=*0LeGC!XI_Wc?dkT~3+*Gu%%yIqP+Wr3H$=&ROMQU6q}Ag^P~>c5vAEO;a- z_dK-3PPeKar%)6$j~vI2#*-YH!1h6HYVtwCX5_wM`iF#UKz&&@9Oo5w3%XGYrX zW>dY~)SG-((Yim%`InwgTvyRC?e=Wh^8KCao!R6Eg&TpVWUY1sN~4G}V?nFnEGo-; zHZ_$eW9-GnC%^WS9b z@p;-$oH#MtC0v>Q$HX%4^JdFdO$0cbv-W)Q TtK}Eh@>>I#ipmV1>S*>q-hkC} literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/files.html b/trunk/paradiseo-mo/tutorial/docs/html/files.html new file mode 100644 index 000000000..ff474b22f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/files.html @@ -0,0 +1,59 @@ + + +PARADISEO-MO: File Index + + + + +
+
+

PARADISEO-MO File List

Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
index.h [code]
mo.h [code]
moAlgo.h [code]
moAspirCrit.h [code]
moBestImprSelect.h [code]
moCoolSched.h [code]
moEasyCoolSched.h [code]
moFirstImprSelect.h [code]
moGenSolContinue.h [code]
moHC.h [code]
moHCMoveLoopExpl.h [code]
moImprBestFitAspirCrit.h [code]
moItRandNextMove.h [code]
moLSCheckPoint.h [code]
moMove.h [code]
moMoveExpl.h [code]
moMoveIncrEval.h [code]
moMoveInit.h [code]
moMoveLoopExpl.h [code]
moMoveSelect.h [code]
moNextMove.h [code]
moNoAspirCrit.h [code]
moRandImprSelect.h [code]
moRandMove.h [code]
moSA.h [code]
moSolContinue.h [code]
moTabuList.h [code]
moTS.h [code]
moTSMoveLoopExpl.h [code]
+
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2blank.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..493c3c0b615ade5b22027bde773faf2c0e076d66 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr2qYM%T@!Q%(o7{me!&ckj8p!u14)&*MwA5S zr6z#mEsk^N1FBF3sc_EE%}vcKVF=AhO-xa6_jFST&P^;T z2~I3aEm8;rVk12R#UIz>f`J-DJY5_^DsClP9B62eH+WF*G=YJMp~A-KbWwke5Kx}M M)78&qol`;+0EL(^EC2ui literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2doc.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..f72999f92172cca6edaa2538286b3e369bec9f49 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^5yjnX4egh%q=bp-`Pe zR7&bp17l3gfhmh7Fm(iZ2eAfco|q!h5)>qKG?UBh!IC9QGMbJAHf6IEiufk_g|d7~ qkWqJ4k(|I-Aeo-5U~n{Fnc?dN!3Uwu?t6hQVDNPHb6Mw<&;$TLIZ`G7 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2folderclosed.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d063440cbf13c4128dacd96661b6fce58abf26 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^55uo^`BphW;jCHO69?}tw{JfcdnZ<*@N=4I z?xF5Qc|QYEmKAIZ;JRGVHe=bn*tx1_|J^^vyg*oVM#A1kZlFULJYD@<);T3K0RTgB BWg7qh literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2folderopen.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2folderopen.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe2c913cf493ee37ad8e3a5132382138d93ac92 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^5u(C zYP)Mg%H-DB+{J~>rPn_#pYTax?r*V6ubqGX{lvROQ{?n5_cbm+cQAOm`njxgN@xNA D92;js literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2lastnode.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b9ba90cb0cf71c8ce662956bfee7d64cf60fa6 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gk+!>EaktaVt4N i!r*{E4>QXNV>t$uAA#a^n)TVt_DW*G8-srQl%FeIsRSdYm zeDdtWec}u&7@8h5rqv#p7g*pRdwwmugmlS-+cHV~j}#7`Nwj9m+AU)JGGo`8z_}`K z?s#Xsy%Z;1_jl5Y+?Gum8WyK6`MBvup0SAOKJ)mWcHyteJ?WLL>>-)=?&<$H&t5oH Vd!azZ1yDdSc)I$ztaD0e0sw}(dc*(# literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2mlastnode.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..09ceb6adb01054ce799ad20c0e818ab9272f2df2 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&fg$isFPOjJ*AaIJQGm()YSDb0rfjgNefXW#>UHx3vIVCg! E0ORy6RsaA1 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2mnode.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..3254c05112199fbc80aad313611c58a5b388792d GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&YcgaLd(;| zF{I*Fa>4?=2W(CyOv{5p*uLi}G<-ambjQcb>&~4!CzK3KXWY6d$*{eWU47N}X+XCz OFnGH9xvXPg)ksC(lf|p%(p+w2Gk+y>EaktaVt4N l!r*{E4>Lv;t literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2plastnode.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b07e00913d8069ebbb51bd7fd6d70d8bba88f75 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr#LU3Jc=+&MJ literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2pnode.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..2001b797ba2b98a4127f1d3efca64aef08bf6d51 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6Ub2s@Ck7}aNq!ti3c<^Gz9OH zn+a6GSQ6wH%;50sMjDVKR^l2_5}cn_Ql40p%8;I!W>k=uu3)5RqGz-?&Ycga!obtT zF{I*Fa>4?=2W(Dkd1@Anj~<0|oqBMOmqox%*rjK-r)THv+0v0L%h-agt(X~hWwYzA SIxU|Ma*U^|pUXO@geCywmoZiV literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/ftv2vertline.png b/trunk/paradiseo-mo/tutorial/docs/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..b330f3a33c0085c183ff39fc56b1b274160c1da0 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!py+H=+kU?6UZ?L@CkAK|NlRbNhD}!Xpp$P zU;Pg)ksC(lf|p%(p+w2Gqgt>EaktaVt4N e!r*{^G#i7W2*a|cHZQDzQVgE1elF{r5}E+)J2fZ( literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/functions.html b/trunk/paradiseo-mo/tutorial/docs/html/functions.html new file mode 100644 index 000000000..7b44ada86 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/functions.html @@ -0,0 +1,235 @@ + + +PARADISEO-MO: Class Members + + + + +
+
+ + +
+ +
+ +

+Here is a list of all documented class members with links to the class documentation for each member: +

+

- a -

+

- b -

+

- c -

+

- e -

+

- f -

+

- i -

+

- m -

+

- n -

+

- o -

+

- r -

+

- t -

+

- u -

+

- v -

+
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/functions_func.html b/trunk/paradiseo-mo/tutorial/docs/html/functions_func.html new file mode 100644 index 000000000..3b9e9eb90 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/functions_func.html @@ -0,0 +1,119 @@ + + +PARADISEO-MO: Class Members - Functions + + + + +
+
+ + +
+ +
+ +

+  +

+

- a -

+

- i -

+

- m -

+

- o -

+

- u -

+
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/functions_type.html b/trunk/paradiseo-mo/tutorial/docs/html/functions_type.html new file mode 100644 index 000000000..2435447b0 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/functions_type.html @@ -0,0 +1,68 @@ + + +PARADISEO-MO: Class Members - Typedefs + + + + +
+
+ + +  +

+

+
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/functions_vars.html b/trunk/paradiseo-mo/tutorial/docs/html/functions_vars.html new file mode 100644 index 000000000..3258b5b4a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/functions_vars.html @@ -0,0 +1,152 @@ + + +PARADISEO-MO: Class Members - Variables + + + + +
+
+ + +
+ +
+ +

+  +

+

- a -

+

- b -

+

- c -

+

- f -

+

- i -

+

- m -

+

- n -

+

- r -

+

- t -

+

- v -

+
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/hierarchy.html b/trunk/paradiseo-mo/tutorial/docs/html/hierarchy.html new file mode 100644 index 000000000..b34400e54 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/hierarchy.html @@ -0,0 +1,82 @@ + + +PARADISEO-MO: Hierarchical Index + + + + +
+
+ +

PARADISEO-MO Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/index.html b/trunk/paradiseo-mo/tutorial/docs/html/index.html new file mode 100644 index 000000000..bd26c60e9 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/index.html @@ -0,0 +1,8 @@ + + +PARADISEO-MO + + + + + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/index_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/index_8h-source.html new file mode 100644 index 000000000..4ac849937 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/index_8h-source.html @@ -0,0 +1,34 @@ + + +PARADISEO-MO: index.h Source File + + + + +
+
+

index.h

00001 
+00022 // coding: iso-8859-1
+00023 // mode: C++
+00024 // c-file-style: "Stroustrup"
+00025 // fill-column: 80
+00026 // End:
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/installdox b/trunk/paradiseo-mo/tutorial/docs/html/installdox new file mode 100755 index 000000000..9b89fe025 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( ); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/trunk/paradiseo-mo/tutorial/docs/html/main.html b/trunk/paradiseo-mo/tutorial/docs/html/main.html new file mode 100644 index 000000000..0ca3db448 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/main.html @@ -0,0 +1,39 @@ + + +PARADISEO-MO: Welcome to PARADISEO-Moving Objects + + + + +
+
+

Welcome to PARADISEO-Moving Objects

+

+

0.1

+Introduction

+MO is an extension of the ANSI-C++ compliant evolutionary computation library EO.
+ It contains classes for almost any kind of one solution based heuristics.

+Tutorial

+

+Installation

+The installation procedure of the package is detailed in the README file in the top-directory of the source-tree.

+Overall Design

+
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_8h-source.html new file mode 100644 index 000000000..dab6f0f73 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_8h-source.html @@ -0,0 +1,71 @@ + + +PARADISEO-MO: mo.h Source File + + + + +
+
+

mo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "mo.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __mo_h
+00013 #define __mo_h
+00014 
+00015 #include "moAspirCrit.h"
+00016 #include "moAlgo.h"
+00017 #include "moBestImprSelect.h"
+00018 #include "moCoolSched.h"
+00019 #include "moEasyCoolSched.h"
+00020 #include "moFirstImprSelect.h"
+00021 #include "moGenSolContinue.h"
+00022 #include "moHC.h"
+00023 #include "moHCMoveLoopExpl.h"
+00024 #include "moImprBestFitAspirCrit.h"
+00025 #include "moItRandNextMove.h"
+00026 #include "moLSCheckPoint.h"
+00027 #include "moMoveExpl.h"
+00028 #include "moMove.h"
+00029 #include "moMoveIncrEval.h"
+00030 #include "moMoveInit.h"
+00031 #include "moMoveLoopExpl.h"
+00032 #include "moMoveSelect.h"
+00033 #include "moNextMove.h"
+00034 #include "moNoAspirCrit.h"
+00035 #include "moRandImprSelect.h"
+00036 #include "moRandMove.h"
+00037 #include "moSA.h"
+00038 #include "moSolContinue.h"
+00039 #include "moTabuList.h"
+00040 #include "moTS.h"
+00041 #include "moTSMoveLoopExpl.h"
+00042 
+00043 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_algo_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_algo_8h-source.html new file mode 100644 index 000000000..5e2940983 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_algo_8h-source.html @@ -0,0 +1,51 @@ + + +PARADISEO-MO: moAlgo.h Source File + + + + +
+
+

moAlgo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moAlgo.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moAlgo_h
+00013 #define __moAlgo_h
+00014 
+00015 #include <eoOp.h>
+00016 
+00018 
+00021 template < class EOT > class moAlgo:public eoMonOp < EOT >
+00022 {
+00023 
+00024 };
+00025 
+00026 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_aspir_crit_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_aspir_crit_8h-source.html new file mode 100644 index 000000000..07a935b02 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_aspir_crit_8h-source.html @@ -0,0 +1,58 @@ + + +PARADISEO-MO: moAspirCrit.h Source File + + + + +
+
+

moAspirCrit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moAspirCrit.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moAspirCrit_h
+00013 #define __moAspirCrit_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class M > class moAspirCrit:public eoBF < const M &, const typename
+00023   M::EOType::Fitness &,
+00024   bool >
+00025 {
+00026 
+00027 public:
+00029 
+00032   virtual void
+00033   init () = 0;
+00034 
+00035 };
+00036 
+00037 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_best_impr_select_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_best_impr_select_8h-source.html new file mode 100644 index 000000000..d28690ce6 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_best_impr_select_8h-source.html @@ -0,0 +1,99 @@ + + +PARADISEO-MO: moBestImprSelect.h Source File + + + + +
+
+

moBestImprSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moBestImprSelect.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moBestImprSelect_h
+00013 #define __moBestImprSelect_h
+00014 
+00015 #include "moMoveSelect.h"
+00016 
+00018 
+00022 template < class M > class moBestImprSelect:public moMoveSelect < M >
+00023 {
+00024 
+00025 public:
+00026 
+00028   typedef typename M::EOType::Fitness Fitness;
+00029 
+00031   void init (const Fitness & __fit)
+00032   {
+00033 
+00034     first_time = true;
+00035   }
+00036 
+00037 
+00039 
+00047   bool update (const M & __move, const Fitness & __fit)
+00048   {
+00049 
+00050     if (first_time || __fit > best_fit)
+00051       {
+00052 
+00053         best_fit = __fit;
+00054         best_move = __move;
+00055 
+00056         first_time = false;
+00057       }
+00058 
+00059     return true;
+00060   }
+00061 
+00063 
+00068   void operator   () (M & __move, Fitness & __fit) throw (EmptySelection)
+00069   {
+00070 
+00071     if (!first_time)
+00072       {
+00073         __move = best_move;
+00074         __fit = best_fit;
+00075       }
+00076     else
+00077       throw EmptySelection ();
+00078   }
+00079 
+00080 private:
+00081 
+00083   bool first_time;
+00084 
+00086   M best_move;
+00087 
+00089   Fitness best_fit;
+00090 
+00091 };
+00092 
+00093 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_cool_sched_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_cool_sched_8h-source.html new file mode 100644 index 000000000..f88109ec9 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_cool_sched_8h-source.html @@ -0,0 +1,51 @@ + + +PARADISEO-MO: moCoolSched.h Source File + + + + +
+
+

moCoolSched.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moCoolSched.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moCoolSched_h
+00013 #define __moCoolSched_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 class moCoolSched:public eoUF < double &, bool >
+00023 {
+00024 
+00025 };
+00026 
+00027 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_easy_cool_sched_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_easy_cool_sched_8h-source.html new file mode 100644 index 000000000..b7bf3081a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_easy_cool_sched_8h-source.html @@ -0,0 +1,72 @@ + + +PARADISEO-MO: moEasyCoolSched.h Source File + + + + +
+
+

moEasyCoolSched.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moEasyCoolSched.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moEasyCoolSched_h
+00013 #define __moEasyCoolSched_h
+00014 
+00015 #include "moCoolSched.h"
+00016 
+00018 
+00022 class moEasyCoolSched:public moCoolSched
+00023 {
+00024 
+00025 public:
+00027 
+00031   moEasyCoolSched (double __threshold,
+00032                    double __ratio):threshold (__threshold), ratio (__ratio)
+00033   {
+00034 
+00035   }
+00036 
+00038 
+00044   bool operator   () (double &__temp)
+00045   {
+00046 
+00047     return (__temp *= ratio) > threshold;
+00048   }
+00049 
+00050 private:
+00051 
+00053   double threshold;
+00054 
+00056   double ratio;
+00057 
+00058 };
+00059 
+00060 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_first_impr_select_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_first_impr_select_8h-source.html new file mode 100644 index 000000000..5a4cefa69 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_first_impr_select_8h-source.html @@ -0,0 +1,106 @@ + + +PARADISEO-MO: moFirstImprSelect.h Source File + + + + +
+
+

moFirstImprSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moFirstImprSelect.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moFirstImprSelect_h
+00013 #define __moFirstImprSelect_h
+00014 
+00015 #include "moMoveSelect.h"
+00016 
+00018 
+00023 template < class M > class moFirstImprSelect:public moMoveSelect < M >
+00024 {
+00025 
+00026 public:
+00027 
+00029   typedef typename M::EOType::Fitness Fitness;
+00030 
+00032 
+00035   virtual void init (const Fitness & __fit)
+00036   {
+00037 
+00038     valid = false;
+00039     init_fit = __fit;
+00040   }
+00041 
+00042 
+00044 
+00052   bool update (const M & __move, const typename M::EOType::Fitness & __fit)
+00053   {
+00054 
+00055     if (__fit > init_fit)
+00056       {
+00057 
+00058         best_fit = __fit;
+00059         best_move = __move;
+00060         valid = true;
+00061 
+00062         return false;
+00063       }
+00064     else
+00065       {
+00066         return true;
+00067       }
+00068   }
+00069 
+00071 
+00076   void operator   () (M & __move, Fitness & __fit) throw (EmptySelection)
+00077   {
+00078 
+00079     if (valid)
+00080       {
+00081         __move = best_move;
+00082         __fit = best_fit;
+00083       }
+00084     else
+00085       throw EmptySelection ();
+00086   }
+00087 
+00088 private:
+00089 
+00091   bool valid;
+00092 
+00094   M best_move;
+00095 
+00097   Fitness init_fit;
+00098 
+00100   Fitness best_fit;
+00101 
+00102 };
+00103 
+00104 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_gen_sol_continue_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_gen_sol_continue_8h-source.html new file mode 100644 index 000000000..f5fceb2ed --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_gen_sol_continue_8h-source.html @@ -0,0 +1,78 @@ + + +PARADISEO-MO: moGenSolContinue.h Source File + + + + +
+
+

moGenSolContinue.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "eoGenSolContinue.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moGenSolContinue_h
+00013 #define __moGenSolContinue_h
+00014 
+00015 #include "moSolContinue.h"
+00016 
+00018 
+00021 template < class EOT > class moGenSolContinue:public moSolContinue < EOT >
+00022 {
+00023 
+00024 public:
+00025 
+00027 
+00030   moGenSolContinue (unsigned __maxNumGen):maxNumGen (__maxNumGen), numGen (0)
+00031   {
+00032 
+00033   }
+00034 
+00036 
+00044   bool operator   () (const EOT & __sol)
+00045   {
+00046 
+00047     return (++numGen < maxNumGen);
+00048   }
+00049 
+00051 
+00054   void init ()
+00055   {
+00056 
+00057     numGen = 0;
+00058   }
+00059 
+00060 private:
+00061 
+00063   unsigned maxNumGen;
+00064 
+00066   unsigned numGen;
+00067 };
+00068 
+00069 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_h_c_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_h_c_8h-source.html new file mode 100644 index 000000000..08d186634 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_h_c_8h-source.html @@ -0,0 +1,132 @@ + + +PARADISEO-MO: moHC.h Source File + + + + +
+
+

moHC.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moHC.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moHC_h
+00013 #define __moHC_h
+00014 
+00015 #include <eoOp.h>
+00016 #include <eoEvalFunc.h>
+00017 
+00018 #include "moAlgo.h"
+00019 #include "moMoveExpl.h"
+00020 #include "moHCMoveLoopExpl.h"
+00021 
+00023 
+00026 template < class M > class moHC:public moAlgo < typename M::EOType >
+00027 {
+00028 
+00030   typedef
+00031     typename
+00032     M::EOType
+00033     EOT;
+00034 
+00036   typedef
+00037     typename
+00038     EOT::Fitness
+00039     Fitness;
+00040 
+00041 public:
+00042 
+00044 
+00053 moHC (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moMoveSelect < M > &__move_select, eoEvalFunc < EOT > &__full_eval):move_expl (*new moHCMoveLoopExpl < M >
+00054              (__move_init, __next_move, __incr_eval, __move_select)),
+00055     full_eval (__full_eval)
+00056   {
+00057 
+00058   }
+00059 
+00061 
+00067 moHC (moMoveExpl < M > &__move_expl, eoEvalFunc < EOT > &__full_eval):move_expl (__move_expl),
+00068     full_eval
+00069     (__full_eval)
+00070   {
+00071 
+00072   }
+00073 
+00075 
+00082   bool operator   ()(EOT & __sol)
+00083   {
+00084 
+00085     if (__sol.invalid ())
+00086       {
+00087         full_eval (__sol);
+00088       }
+00089 
+00090     EOT new_sol;
+00091 
+00092     do
+00093       {
+00094 
+00095         new_sol = __sol;
+00096 
+00097         try
+00098         {
+00099 
+00100           move_expl (__sol, new_sol);
+00101 
+00102         }
+00103         catch (EmptySelection & __ex)
+00104         {
+00105 
+00106           break;
+00107         }
+00108 
+00109         if (new_sol.fitness () > __sol.fitness ())
+00110           {
+00111             __sol = new_sol;
+00112           }
+00113         else
+00114           {
+00115             break;
+00116           }
+00117 
+00118       }
+00119     while (true);
+00120 
+00121     return true;
+00122   }
+00123 
+00124 private:
+00125 
+00127   moMoveExpl < M > &move_expl;
+00128 
+00130   eoEvalFunc < EOT > &full_eval;
+00131 };
+00132 
+00133 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_h_c_move_loop_expl_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_h_c_move_loop_expl_8h-source.html new file mode 100644 index 000000000..66828473a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_h_c_move_loop_expl_8h-source.html @@ -0,0 +1,115 @@ + + +PARADISEO-MO: moHCMoveLoopExpl.h Source File + + + + +
+
+

moHCMoveLoopExpl.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moHCMoveLoopExpl.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moHCMoveLoopExpl_h
+00013 #define __moHCMoveLoopExpl_h
+00014 
+00015 #include "moMoveLoopExpl.h"
+00016 
+00017 #include "moMoveInit.h"
+00018 #include "moNextMove.h"
+00019 #include "moMoveIncrEval.h"
+00020 #include "moMoveSelect.h"
+00021 
+00023 template < class M > class moHCMoveLoopExpl:public moMoveLoopExpl < M >
+00024 {
+00025 
+00027   typedef typename M::EOType EOT;
+00028 
+00030   typedef typename M::EOType::Fitness Fitness;
+00031 
+00032 public:
+00033 
+00035 
+00043 moHCMoveLoopExpl (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moMoveSelect < M > &__move_select):
+00044 
+00045   move_init (__move_init),
+00046     next_move (__next_move),
+00047     incr_eval (__incr_eval), move_select (__move_select)
+00048   {
+00049 
+00050   }
+00051 
+00053 
+00059   void operator   () (const EOT & __old_sol, EOT & __new_sol)
+00060   {
+00061 
+00062     M move;
+00063 
+00064     //
+00065     move_init (move, __old_sol);        /* Restarting the exploration of 
+00066                                            of the neighborhood ! */
+00067 
+00068     move_select.init (__old_sol.fitness ());
+00069 
+00070     while (move_select.update (move, incr_eval (move, __old_sol))
+00071            && next_move (move, __old_sol));
+00072 
+00073     try
+00074     {
+00075 
+00076       M best_move;
+00077 
+00078       Fitness best_move_fit;
+00079 
+00080       move_select (best_move, best_move_fit);
+00081       __new_sol.fitness (best_move_fit);
+00082       best_move (__new_sol);
+00083 
+00084     }
+00085     catch (EmptySelection & __ex)
+00086     {
+00087 
+00088       // ?
+00089     }
+00090   }
+00091 
+00092 private:
+00093 
+00095   moMoveInit < M > &move_init;
+00096 
+00098   moNextMove < M > &next_move;
+00099 
+00101   moMoveIncrEval < M > &incr_eval;
+00102 
+00104   moMoveSelect < M > &move_select;
+00105 
+00106 };
+00107 
+00108 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_impr_best_fit_aspir_crit_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_impr_best_fit_aspir_crit_8h-source.html new file mode 100644 index 000000000..10ce89c74 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_impr_best_fit_aspir_crit_8h-source.html @@ -0,0 +1,96 @@ + + +PARADISEO-MO: moImprBestFitAspirCrit.h Source File + + + + +
+
+

moImprBestFitAspirCrit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moImprAspirCrit.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moImprBestFitAspirCrit_h
+00013 #define __moImprBestFitAspirCrit_h
+00014 
+00015 #include "moAspirCrit.h"
+00016 
+00018 
+00022 template < class M > class moImprBestFitAspirCrit:public moAspirCrit < M >
+00023 {
+00024 
+00025 public:
+00026 
+00028   typedef typename M::EOType::Fitness Fitness;
+00029 
+00031   moImprBestFitAspirCrit ()
+00032   {
+00033 
+00034     first_time = true;
+00035   }
+00036 
+00038   void init ()
+00039   {
+00040 
+00041     first_time = true;
+00042   }
+00043 
+00045 
+00052   bool operator   () (const M & __move, const Fitness & __fit)
+00053   {
+00054 
+00055     if (first_time)
+00056       {
+00057 
+00058         best_fit = __fit;
+00059         first_time = false;
+00060 
+00061         return true;
+00062       }
+00063     else if (__fit < best_fit)
+00064       return false;
+00065 
+00066     else
+00067       {
+00068 
+00069         best_fit = __fit;
+00070 
+00071         return true;
+00072       }
+00073   }
+00074 
+00075 private:
+00076 
+00078   Fitness best_fit;
+00079 
+00081   bool first_time;
+00082 };
+00083 
+00084 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_it_rand_next_move_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_it_rand_next_move_8h-source.html new file mode 100644 index 000000000..fc0b7554a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_it_rand_next_move_8h-source.html @@ -0,0 +1,92 @@ + + +PARADISEO-MO: moItRandNextMove.h Source File + + + + +
+
+

moItRandNextMove.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moNextMove.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moItRandNextMove_h
+00013 #define __moItRandNextMove_h
+00014 
+00015 #include "moNextMove.h"
+00016 #include "moRandMove.h"
+00017 
+00019 
+00022 template < class M > class moItRandNextMove:public moNextMove < M >
+00023 {
+00024 
+00026   typedef typename M::EOType EOT;
+00027 
+00028 public:
+00029 
+00031 
+00037   moItRandNextMove (moRandMove < M > &__rand_move,
+00038                     unsigned __max_iter):rand_move (__rand_move),
+00039     max_iter (__max_iter), num_iter (0)
+00040   {
+00041 
+00042   }
+00043 
+00045 
+00052   bool operator   () (M & __move, const EOT & __sol)
+00053   {
+00054 
+00055     if (num_iter++ > max_iter)
+00056       {
+00057 
+00058         num_iter = 0;
+00059         return false;
+00060       }
+00061     else
+00062       {
+00063 
+00064         /* The given solution is discarded here */
+00065         rand_move (__move);
+00066         num_iter++;
+00067         return true;
+00068       }
+00069   }
+00070 
+00071 private:
+00072 
+00074   moRandMove < M > &rand_move;
+00075 
+00077   unsigned max_iter;
+00078 
+00080   unsigned num_iter;
+00081 
+00082 };
+00083 
+00084 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_l_s_check_point_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_l_s_check_point_8h-source.html new file mode 100644 index 000000000..56caef581 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_l_s_check_point_8h-source.html @@ -0,0 +1,80 @@ + + +PARADISEO-MO: moLSCheckPoint.h Source File + + + + +
+
+

moLSCheckPoint.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moLSCheckPoint.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moSolUpdater_h
+00013 #define __moSolUpdater_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00021 template < class M > class moLSCheckPoint:public eoBF < const M &, const typename
+00022   M::EOType &, void >
+00023 {
+00024 
+00025 public:
+00027 
+00033   void
+00034   operator   () (const M & __move, const typename M::EOType & __sol)
+00035   {
+00036 
+00037     for (unsigned i = 0; i < func.size (); i++)
+00038       {
+00039         func[i]->operator   ()(__move, __sol);
+00040       }
+00041   }
+00042 
+00044 
+00048   void
+00049   add (eoBF < const M &, const typename M::EOType &, void >&__f)
+00050   {
+00051 
+00052     func.push_back (&__f);
+00053   }
+00054 
+00055 private:
+00056 
+00058   std::vector < eoBF < const
+00059     M &, const
+00060     typename
+00061   M::EOType &, void >*>
+00062     func;
+00063 
+00064 };
+00065 
+00066 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_move_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_8h-source.html new file mode 100644 index 000000000..64f65fc36 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_8h-source.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: moMove.h Source File + + + + +
+
+

moMove.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moMove.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMove_h
+00013 #define __moMove_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00023 template < class EOT > class moMove:public eoUF < EOT &, void >
+00024 {
+00025 
+00026 public:
+00028   typedef EOT EOType;
+00029 
+00030 };
+00031 
+00032 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_move_expl_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_expl_8h-source.html new file mode 100644 index 000000000..e287fcf49 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_expl_8h-source.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: moMoveExpl.h Source File + + + + +
+
+

moMoveExpl.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "eoMoveExpl.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveExpl_h
+00013 #define __moMoveExpl_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00021 template < class M > class moMoveExpl:public eoBF < const typename
+00022   M::EOType &,
+00023   typename
+00024 M::EOType &, void >
+00025 {
+00026 
+00027 };
+00028 
+00029 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_move_incr_eval_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_incr_eval_8h-source.html new file mode 100644 index 000000000..05f35f376 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_incr_eval_8h-source.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: moMoveIncrEval.h Source File + + + + +
+
+

moMoveIncrEval.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "eoMoveIncrEval.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveIncrEval_h
+00013 #define __moMoveIncrEval_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00024 template < class M > class moMoveIncrEval:public eoBF < const M &, const typename
+00025   M::EOType &,
+00026   typename
+00027   M::EOType::Fitness >
+00028 {
+00029 
+00030 };
+00031 
+00032 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_move_init_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_init_8h-source.html new file mode 100644 index 000000000..2abbc5ca6 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_init_8h-source.html @@ -0,0 +1,52 @@ + + +PARADISEO-MO: moMoveInit.h Source File + + + + +
+
+

moMoveInit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moMoveInit.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveInit_h
+00013 #define __moMoveInit_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class M > class moMoveInit:public eoBF < M &, const typename
+00023 M::EOType &, void >
+00024 {
+00025 
+00026 };
+00027 
+00028 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_move_loop_expl_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_loop_expl_8h-source.html new file mode 100644 index 000000000..ad871dec2 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_loop_expl_8h-source.html @@ -0,0 +1,51 @@ + + +PARADISEO-MO: moMoveLoopExpl.h Source File + + + + +
+
+

moMoveLoopExpl.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moMoveLoopExpl.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveLoopExpl_h
+00013 #define __moMoveLoopExpl_h
+00014 
+00015 #include "moMoveExpl.h"
+00016 
+00018 
+00021 template < class M > class moMoveLoopExpl:public moMoveExpl < M >
+00022 {
+00023 
+00024 };
+00025 
+00026 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_move_select_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_select_8h-source.html new file mode 100644 index 000000000..701540f94 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_move_select_8h-source.html @@ -0,0 +1,72 @@ + + +PARADISEO-MO: moMoveSelect.h Source File + + + + +
+
+

moMoveSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moMoveSelect.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveSelect_h
+00013 #define __moMoveSelect_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00021 class EmptySelection
+00022 {
+00023 
+00024 };
+00025 
+00027 
+00032 template < class M > class moMoveSelect:public eoBF < M &, typename M::EOType::Fitness &,
+00033   void >
+00034 {
+00035 public:
+00037   typedef
+00038     typename
+00039     M::EOType::Fitness
+00040     Fitness;
+00041 
+00043 
+00050   virtual void
+00051   init (const Fitness & __fit) = 0;
+00052 
+00054 
+00059   virtual
+00060     bool
+00061   update (const M & __move, const Fitness & __fit) = 0;
+00062 
+00063 };
+00064 
+00065 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_next_move_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_next_move_8h-source.html new file mode 100644 index 000000000..0a44fcb8a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_next_move_8h-source.html @@ -0,0 +1,53 @@ + + +PARADISEO-MO: moNextMove.h Source File + + + + +
+
+

moNextMove.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moNextMove.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moNextMove_h
+00013 #define __moNextMove_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class M > class moNextMove:public eoBF < M &, const typename
+00023   M::EOType &,
+00024   bool >
+00025 {
+00026 
+00027 };
+00028 
+00029 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_no_aspir_crit_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_no_aspir_crit_8h-source.html new file mode 100644 index 000000000..82bfa51e9 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_no_aspir_crit_8h-source.html @@ -0,0 +1,63 @@ + + +PARADISEO-MO: moNoAspirCrit.h Source File + + + + +
+
+

moNoAspirCrit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "eoNoAspirCrit.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moNoAspirCrit_h
+00013 #define __moNoAspirCrit_h
+00014 
+00015 #include "moAspirCrit.h"
+00016 
+00018 
+00021 template < class M > class moNoAspirCrit:public moAspirCrit < M >
+00022 {
+00023 
+00025 
+00032   bool operator   () (const M & __move,
+00033                       const typename M::EOType::Fitness & __sol)
+00034   {
+00035 
+00036     return false;
+00037   }
+00038 
+00040 
+00043   void init ()
+00044   {
+00045   }
+00046 };
+00047 
+00048 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_rand_impr_select_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_rand_impr_select_8h-source.html new file mode 100644 index 000000000..069592844 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_rand_impr_select_8h-source.html @@ -0,0 +1,103 @@ + + +PARADISEO-MO: moRandImprSelect.h Source File + + + + +
+
+

moRandImprSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moRandImprSelect.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moRandImprSelect_h
+00013 #define __moRandImprSelect_h
+00014 
+00015 #include <vector>
+00016 
+00017 #include <utils/eoRNG.h>
+00018 #include "moMoveSelect.h"
+00019 
+00021 
+00025 template < class M > class moRandImprSelect:public moMoveSelect < M >
+00026 {
+00027 
+00028 public:
+00029 
+00031   typedef typename M::EOType::Fitness Fitness;
+00032 
+00034 
+00040   void init (const Fitness & __fit)
+00041   {
+00042     init_fit = __fit;
+00043     vect_better_fit.clear ();
+00044     vect_better_moves.clear ();
+00045   }
+00046 
+00048 
+00056   bool update (const M & __move, const Fitness & __fit)
+00057   {
+00058 
+00059     if (__fit > init_fit)
+00060       {
+00061 
+00062         vect_better_fit.push_back (__fit);
+00063         vect_better_moves.push_back (__move);
+00064       }
+00065 
+00066     return true;
+00067   }
+00068 
+00070 
+00077   void operator   () (M & __move, Fitness & __fit) throw (EmptySelection)
+00078   {
+00079 
+00080     if (!vect_better_fit.empty ())
+00081       {
+00082 
+00083         unsigned n = rng.random (vect_better_fit.size ());
+00084 
+00085         __move = vect_better_moves[n];
+00086         __fit = vect_better_fit[n];
+00087       }
+00088     else
+00089       throw EmptySelection ();
+00090   }
+00091 
+00092 private:
+00093 
+00095   Fitness init_fit;
+00096 
+00098   std::vector < Fitness > vect_better_fit;
+00099 
+00101   std::vector < M > vect_better_moves;
+00102 };
+00103 
+00104 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_rand_move_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_rand_move_8h-source.html new file mode 100644 index 000000000..08dfeebc3 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_rand_move_8h-source.html @@ -0,0 +1,51 @@ + + +PARADISEO-MO: moRandMove.h Source File + + + + +
+
+

moRandMove.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moRandMove.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moRandMove_h
+00013 #define __moRandMove_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00021 template < class M > class moRandMove:public eoUF < M &, void >
+00022 {
+00023 
+00024 };
+00025 
+00026 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_s_a_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_s_a_8h-source.html new file mode 100644 index 000000000..ec344b5e6 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_s_a_8h-source.html @@ -0,0 +1,154 @@ + + +PARADISEO-MO: moSA.h Source File + + + + +
+
+

moSA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moSA.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moSA_h
+00013 #define __moSA_h
+00014 
+00015 #include <unistd.h>
+00016 
+00017 #include <eoOp.h>
+00018 #include <eoEvalFunc.h>
+00019 
+00020 #include "moAlgo.h"
+00021 #include "moRandMove.h"
+00022 #include "moMoveIncrEval.h"
+00023 #include "moCoolSched.h"
+00024 #include "moSolContinue.h"
+00025 
+00026 #include <math.h>
+00027 
+00029 
+00032 template < class M > class moSA:public moAlgo < typename M::EOType >
+00033 {
+00034 
+00036   typedef
+00037     typename
+00038     M::EOType
+00039     EOT;
+00040 
+00042   typedef
+00043     typename
+00044     EOT::Fitness
+00045     Fitness;
+00046 
+00047 public:
+00048 
+00050 
+00060   moSA (moRandMove < M > &__move_rand,
+00061         moMoveIncrEval < M > &__incr_eval,
+00062         moSolContinue < EOT > &__cont,
+00063         double __init_temp,
+00064         moCoolSched & __cool_sched, eoEvalFunc < EOT > &__full_eval):
+00065   move_rand (__move_rand),
+00066   incr_eval (__incr_eval),
+00067   cont (__cont),
+00068   init_temp (__init_temp),
+00069   cool_sched (__cool_sched),
+00070   full_eval (__full_eval)
+00071   {
+00072 
+00073   }
+00074 
+00076 
+00082   bool operator   ()(EOT & __sol)
+00083   {
+00084 
+00085     if (__sol.invalid ())
+00086       {
+00087         full_eval (__sol);
+00088       }
+00089 
+00090     double
+00091       temp = init_temp;
+00092 
+00093     M move;
+00094 
+00095     EOT best_sol = __sol;
+00096 
+00097     do
+00098       {
+00099 
+00100         cont.init ();
+00101         do
+00102           {
+00103 
+00104             move_rand (move);
+00105 
+00106             Fitness delta_fit = incr_eval (move, __sol) - __sol.fitness ();
+00107 
+00108             if (delta_fit > 0 || rng.uniform () < exp (delta_fit / temp))
+00109               {
+00110 
+00111                 __sol.fitness (incr_eval (move, __sol));
+00112                 move (__sol);
+00113 
+00114                 /* Updating the best solution found
+00115                    until now ? */
+00116                 if (__sol.fitness () > best_sol.fitness ())
+00117                   best_sol = __sol;
+00118               }
+00119 
+00120           }
+00121         while (cont (__sol));
+00122 
+00123       }
+00124     while (cool_sched (temp));
+00125 
+00126     __sol = best_sol;
+00127 
+00128     return true;
+00129   }
+00130 
+00131 private:
+00132 
+00134   moRandMove < M > &move_rand;
+00135 
+00137   moMoveIncrEval < M > &incr_eval;
+00138 
+00140   moSolContinue < EOT > &cont;
+00141 
+00143   double
+00144     init_temp;
+00145 
+00147   moCoolSched & cool_sched;
+00148 
+00150   eoEvalFunc < EOT > &full_eval;        // Full evaluator.
+00151 };
+00152 
+00153 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_sol_continue_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_sol_continue_8h-source.html new file mode 100644 index 000000000..301a833af --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_sol_continue_8h-source.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: moSolContinue.h Source File + + + + +
+
+

moSolContinue.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moSolContinue.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moSolContinue_h
+00013 #define __moSolContinue_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class EOT > class moSolContinue:public eoUF < const EOT &, bool >
+00023 {
+00024 
+00025 public:
+00027 
+00030   virtual void init () = 0;
+00031 };
+00032 
+00033 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_t_s_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_t_s_8h-source.html new file mode 100644 index 000000000..6e55de644 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_t_s_8h-source.html @@ -0,0 +1,174 @@ + + +PARADISEO-MO: moTS.h Source File + + + + +
+
+

moTS.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moTS.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008       
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moTS_h
+00013 #define __moTS_h
+00014 
+00015 #include <eoOp.h>
+00016 #include <eoEvalFunc.h>
+00017 
+00018 #include "moAlgo.h"
+00019 #include "moSolContinue.h"
+00020 
+00021 #include "moMoveExpl.h"
+00022 #include "moTSMoveLoopExpl.h"
+00023 
+00024 #include <pthread.h>
+00025 
+00027 
+00030 template < class M > class moTS:public moAlgo < typename M::EOType >
+00031 {
+00032 
+00034   typedef
+00035     typename
+00036     M::EOType
+00037     EOT;
+00038 
+00040   typedef
+00041     typename
+00042     EOT::Fitness
+00043     Fitness;
+00044 
+00045 public:
+00046 
+00048 
+00059 moTS (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moTabuList < M > &__tabu_list, moAspirCrit < M > &__aspir_crit, moSolContinue < EOT > &__cont, eoEvalFunc < EOT > &__full_eval):move_expl (*new moTSMoveLoopExpl < M >
+00060              (__move_init, __next_move, __incr_eval, __tabu_list,
+00061               __aspir_crit)), cont (__cont), full_eval (__full_eval)
+00062   {
+00063 
+00064     if (first_time)
+00065       {
+00066 
+00067         pthread_mutex_init (&mutex, 0);
+00068 
+00069         first_time = false;
+00070       }
+00071   }
+00072 
+00074 
+00081 moTS (moMoveExpl < M > &__move_expl, moSolContinue < EOT > &__cont, eoEvalFunc < EOT > &__full_eval):move_expl (__move_expl),
+00082     cont (__cont),
+00083     full_eval (__full_eval)
+00084   {
+00085 
+00086     if (first_time)
+00087       {
+00088 
+00089         pthread_mutex_init (&mutex, 0);
+00090 
+00091         first_time = false;
+00092       }
+00093   }
+00094 
+00096 
+00104   bool operator   ()(EOT & __sol)
+00105   {
+00106 
+00107     pthread_mutex_lock (&mutex);
+00108 
+00109     if (__sol.invalid ())
+00110       {
+00111         full_eval (__sol);
+00112       }
+00113 
+00114     M move;
+00115 
+00116     EOT best_sol = __sol, new_sol;
+00117 
+00118     cont.init ();
+00119 
+00120     do
+00121       {
+00122 
+00123         new_sol = __sol;
+00124 
+00125         try
+00126         {
+00127 
+00128           move_expl (__sol, new_sol);
+00129 
+00130         }
+00131         catch (EmptySelection & __ex)
+00132         {
+00133 
+00134           break;
+00135         }
+00136 
+00137         /* Updating the best solution
+00138            found until now ? */
+00139         if (new_sol.fitness () > __sol.fitness ())
+00140           {
+00141             best_sol = new_sol;
+00142           }
+00143 
+00144         __sol = new_sol;
+00145 
+00146       }
+00147     while (cont (__sol));
+00148 
+00149     __sol = best_sol;
+00150 
+00151     pthread_mutex_unlock (&mutex);
+00152 
+00153     return true;
+00154   }
+00155 
+00156 private:
+00157 
+00159   static
+00160     bool
+00161     first_time;
+00162 
+00164   static
+00165     pthread_mutex_t
+00166     mutex;
+00167 
+00169   moMoveExpl < M > &move_expl;
+00170 
+00172   moSolContinue < EOT > &cont;
+00173 
+00175   eoEvalFunc < EOT > &full_eval;
+00176 };
+00177 
+00179 template < class EOT > pthread_mutex_t moTS < EOT >::mutex;
+00180 
+00182 template < class EOT > bool moTS < EOT >::first_time = true;
+00183 
+00184 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_t_s_move_loop_expl_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_t_s_move_loop_expl_8h-source.html new file mode 100644 index 000000000..7d72d399c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_t_s_move_loop_expl_8h-source.html @@ -0,0 +1,134 @@ + + +PARADISEO-MO: moTSMoveLoopExpl.h Source File + + + + +
+
+

moTSMoveLoopExpl.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moTSMoveLoopExpl.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moTSMoveLoopExpl_h
+00013 #define __moTSMoveLoopExpl_h
+00014 
+00015 #include "moMoveLoopExpl.h"
+00016 
+00017 #include "moMoveInit.h"
+00018 #include "moNextMove.h"
+00019 #include "moMoveIncrEval.h"
+00020 #include "moMoveSelect.h"
+00021 
+00022 #include "moTabuList.h"
+00023 #include "moAspirCrit.h"
+00024 #include "moBestImprSelect.h"
+00025 
+00027 
+00030 template < class M > class moTSMoveLoopExpl:public moMoveLoopExpl < M >
+00031 {
+00032 
+00034   typedef typename M::EOType EOT;
+00035 
+00037   typedef typename M::EOType::Fitness Fitness;
+00038 
+00039 public:
+00040 
+00042 
+00049 moTSMoveLoopExpl (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moTabuList < M > &__tabu_list, moAspirCrit < M > &__aspir_crit):
+00050   move_init (__move_init),
+00051     next_move (__next_move),
+00052     incr_eval (__incr_eval),
+00053     tabu_list (__tabu_list), aspir_crit (__aspir_crit)
+00054   {
+00055 
+00056     tabu_list.init ();
+00057     aspir_crit.init ();
+00058   }
+00059 
+00061 
+00069   void operator   () (const EOT & __old_sol, EOT & __new_sol)
+00070   {
+00071 
+00072     M move;
+00073 
+00074 
+00075     move_init (move, __old_sol);        /* Restarting the exploration of 
+00076                                            of the neighborhood ! */
+00077 
+00078     move_select.init (__old_sol.fitness ());
+00079 
+00080     do
+00081       {
+00082 
+00083         Fitness fit = incr_eval (move, __old_sol);
+00084 
+00085         if (!tabu_list (move, __old_sol) || aspir_crit (move, fit))
+00086           {
+00087             if (!move_select.update (move, fit))
+00088               break;
+00089           }
+00090 
+00091       }
+00092     while (next_move (move, __old_sol));
+00093 
+00094     M best_move;
+00095 
+00096     Fitness best_move_fit;
+00097 
+00098     move_select (best_move, best_move_fit);
+00099 
+00100     __new_sol.fitness (best_move_fit);
+00101     best_move (__new_sol);
+00102 
+00103     /* Removing moves that are
+00104        no more tabu */
+00105     tabu_list.update ();
+00106 
+00107     // Updating the tabu list
+00108     tabu_list.add (best_move, __new_sol);
+00109   }
+00110 
+00111 private:
+00112 
+00114   moMoveInit < M > &move_init;
+00115 
+00117   moNextMove < M > &next_move;
+00118 
+00120   moMoveIncrEval < M > &incr_eval;
+00121 
+00123   moBestImprSelect < M > move_select;
+00124 
+00126   moTabuList < M > &tabu_list;
+00127 
+00129   moAspirCrit < M > &aspir_crit;
+00130 };
+00131 
+00132 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/mo_tabu_list_8h-source.html b/trunk/paradiseo-mo/tutorial/docs/html/mo_tabu_list_8h-source.html new file mode 100644 index 000000000..9bcd057d1 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/mo_tabu_list_8h-source.html @@ -0,0 +1,71 @@ + + +PARADISEO-MO: moTabuList.h Source File + + + + +
+
+

moTabuList.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moTabuList.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT 
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moTabuList_h
+00013 #define __moTabuList_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class M > class moTabuList:public eoBF < const M &, const typename
+00023   M::EOType &,
+00024   bool >
+00025 {
+00026 
+00027 public:
+00029   typedef
+00030     typename
+00031     M::EOType
+00032     EOT;
+00033 
+00034 
+00036 
+00042   virtual void
+00043   add (const M & __move, const EOT & __sol) = 0;
+00044 
+00046 
+00049   virtual void
+00050   update () = 0;
+00051 
+00053 
+00056   virtual void
+00057   init () = 0;
+00058 };
+00059 
+00060 #endif
+

Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/search.idx b/trunk/paradiseo-mo/tutorial/docs/html/search.idx new file mode 100644 index 0000000000000000000000000000000000000000..50cab33e9ce6d06e769c1a105d2776cb84cfab8c GIT binary patch literal 326683 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 H{pkM#8MJ>z literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/search.php b/trunk/paradiseo-mo/tutorial/docs/html/search.php new file mode 100644 index 000000000..caf38e36e --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/search.php @@ -0,0 +1,381 @@ + + +Search + + + + +
+
    +
  • Main Page
  • +
  • Classes
  • +
  • Files
  • +
  • +
    + + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
    \n
    \n
  • \n
\n
\n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

".search_results()."

".matches_text(0)."
".matches_text($numDocs); + echo "\n"; + echo "
$num.".$doc["name"]."
".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
\n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
\n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
\n"; + fclose($file); +} + +main(); + + +?> +
Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by  + +doxygen 1.5.1
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/html/tab_b.gif b/trunk/paradiseo-mo/tutorial/docs/html/tab_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d623483ffdf5f9f96900108042a7ab0643fe2a3 GIT binary patch literal 35 ncmZ?wbhEHbWMp7uXkcJy*>IeJfk6j|fqX^=1|}vKMh0sDa2W*H literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/tab_l.gif b/trunk/paradiseo-mo/tutorial/docs/html/tab_l.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b1e6337c9299a700401a2a78a2c6ffced475216 GIT binary patch literal 706 zcmZ?wbhEHbZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET99@1@a36+kb~?0UJ*yc&I3X_m z!ND^5$O7$#8OFRuDhG}!?8z?cdZK&!`PWjdR;Aj^wZ` zeK{IEYHBJ)6K8VIp1`BVt++swf6j+=L{p1*nO(VhE`pFexG@5$|>uaCcd z`0m=9m+yak{QmXN#Sc$^{$X9h9&q2jiKAI|&T)a;PPx2K9p`YIdw8HtR5k2Q$2-O2 z*;3y{MQ-RnJTgJfI&R5|O)AHxDf_00XbPvDZPy4t=hHd)nfLPvms&O`Ok(sD()5v$ z5U@&h;a=#xbxVbo2~X&Xj0Ie(f{v>vERH+qC+nTG=B8Nca=wU-O$?1&vUgV~9=!H; zx>3p9Yn%*<>t~sk+&0xfyS8RsPfYBd<~wWK%j-LmpU>O7yX^h#UCp1x-p#i7@bE;py8XI6 zmY<)m>~)W~yIWcMVoiPg{duuf<*)9qZ9l$m*Ph&W&$jlv*Vpa+{pH@n=IQ$L?0$ax ec60Ul|8o2P|NVbd{6P)#weSbE3}s?04AuZvx_~SI literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/tab_r.gif b/trunk/paradiseo-mo/tutorial/docs/html/tab_r.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce9dd9f533cb5486d6941844f442b59d4a9e9175 GIT binary patch literal 2585 zcmbV}`9Bkk1ILFF--w5zJc=ZZT(zjE=;2|_S)Qm~rCWz1Pc)KPl;jv%A#&v2*x}yc zmf2~Jm~&=xjJY?PqwIN}f8qQ2{r$uH{c*nJbmr{cR5??*egHrs-B=MzCF`3%e{FAW z{oL5xTHn~5TM{jaB;@|_Ue5F&Zb@p(kMyG{*;gWDg zyeL|eZf7Qd8=#bXzSiR{yzRgLSj-fJS8>lBjVHN z^o-0eS=nE6a`W;LChBs=`+QAJP~{b93>H^eRb5kCSC1zUNezun%`L5M?RDzv#%jk7 zYVRX=vATPD`+oEfum^{RM@GjuP?-r=yh0!p;Vx^T9G7~`7%5ydH%70=jyJ;;`d;hv92x3R=z{xp+Lg2!*@OK*K15-t&okoPtSED)h&$RLxdbA zseWm^C3d%-yRNi-ryk^!ek+C`n&~cd$#ZWct_cUL{l~i+Nzx^5d!n94(>bW-iL~Rl z&8r)?q|1DIo=0=judQ{FaGcfLERz8gfn3-Qt<2lksh{mzpT}DXxUuR^z=^key&q4! z+wWI45vL0k$R^(F#{qfqhUsN@WA+w-V?LPH33!Q?WFSB3)WBojE@hK41Nb?KfS+Qo zXgrzfsP$wr4Qzy*{OD>uJBjdgGM@VMml5)2f~_}lD*YyOb}Hjeobhz#4c`w(l^>KK zr?Ud;W~Z}*w;%hZ|2^p^+f06gJDJQD zeIhGADbDmm&6arh(q>EZ<7mjzg7l|z$hRL8=1>)Nv=S7CY$B}iYJ&*T_-T_OG*L1q ztZ3Lana33?y3AKnyq^YCF|4x%Rb5WU&2qcl{TFKey%QJeMxn^SdT!hZ5+0i1zeusiYVp-phBl7b5+Px-X&LhByq z0F&<;K0l2+v>qiHlXb#$jXMv$uK-dEGE9L~qtdU(XeRXmvu*K2Q&6!fD**JxYP4b4BR7FdJ$Qx9G9`J%-_X!a#LGpp3g9)VWytGCa;7`S1_e8F~!R+aSJ zOF17p2`H?2kPs8Q`_;U}+D%3p zs2-0BTqFwpUoBk`?P;iPQ(IbEA|JmMx!P&YYG|R@S=5Mnw;-?A6rEEVyV%d7{iU4a zNk`i!%F(Ykpm`}#oH;BjY->@b8vQedv;pza2FL&*6ufjd+*3Ute&>kes~TU?^KkojsTh(o~(3tk1Y6>4(yn( z#U*ID9@eg-beKo1B;HXe+}{Z%n@7m0+yxivuqk9~;!1LGQlah)xYK4>wgL}l6dsaN zIxlRlq`*`j9PG4*0hD6YV_b_2w5b#)o7J?`q#{GjvvKlD`T*dWcZx<-s(ZvLB44E# z=!|sw!?)@%y$oRNL#25WS3lzdii}TuQ3?CLnvQ1_n};2sT_;Y;#d3=+-(O% zMN$>O!3;ke(UuLR%h_&)N zs^!-@A>QR}4yB1bPp`9S19ikTbZ~O{&FF-yHK{En;mmShDUIEw03`j(DBIsM}Rjki2J#SQa3gFZTKBPDeIiLt9Z z%bL3(B@Qw%(B`wSMS~dPh$=R`(}lBoFXKy(s|*{#ru$wjsBc_O#zxNk9w+UUHmx(U zmJ8+M+ndtnZ<7|VU9Mbt61zpo9T&3%Wx&XII=#QJxjR`CZf22ac3d51Z?GD%LEe_&*t46Qf;4`bZ7p2K(Ab5>GfT^}4! zBT&HZD`^PEgWoI&{~o-ID0F?O`75sm(87x%A{(}Ch1)QlzdJ)1B-eqe5a(weg0`4lQIf1evjvbBY50DVbzO7CLf|vP z2#0(U-|jZ`H{y5N^o7%iK6H>_HEGN->U6^!)1{XpJV!!4(Ig7wzZQ*9WYF4X1rG0x z=1uA@i`rIAciubDC{;~b(|&|A@xkjRP5aRcvRU9tvIm}jDB6J eQ0-6-y)mpwdT=ayS0tBxKDA*~;EWmo literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/html/tabs.css b/trunk/paradiseo-mo/tutorial/docs/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/trunk/paradiseo-mo/tutorial/docs/html/tree.html b/trunk/paradiseo-mo/tutorial/docs/html/tree.html new file mode 100644 index 000000000..8b6c88146 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/html/tree.html @@ -0,0 +1,182 @@ + + + + + + + TreeView + + + + +
+

PARADISEO-MO

+
+

o*Welcome to PARADISEO-Moving Objects

+

o+Class List

+ +

o+Class Hierarchy

+ +

o*Class Members

+

\+File List

+
+

 o*index.h

+

 o*mo.h

+

 o*moAlgo.h

+

 o*moAspirCrit.h

+

 o*moBestImprSelect.h

+

 o*moCoolSched.h

+

 o*moEasyCoolSched.h

+

 o*moFirstImprSelect.h

+

 o*moGenSolContinue.h

+

 o*moHC.h

+

 o*moHCMoveLoopExpl.h

+

 o*moImprBestFitAspirCrit.h

+

 o*moItRandNextMove.h

+

 o*moLSCheckPoint.h

+

 o*moMove.h

+

 o*moMoveExpl.h

+

 o*moMoveIncrEval.h

+

 o*moMoveInit.h

+

 o*moMoveLoopExpl.h

+

 o*moMoveSelect.h

+

 o*moNextMove.h

+

 o*moNoAspirCrit.h

+

 o*moRandImprSelect.h

+

 o*moRandMove.h

+

 o*moSA.h

+

 o*moSolContinue.h

+

 o*moTabuList.h

+

 o*moTS.h

+

 \*moTSMoveLoopExpl.h

+
+
+
+ + diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/FreeSans.ttf b/trunk/paradiseo-mo/tutorial/docs/latex/FreeSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b550b90ba5480f9a3db170a19a1f86daecb0dc92 GIT binary patch literal 22932 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 RlllN>Fk>(~eFPlj{{dxA`xyWL literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/Makefile b/trunk/paradiseo-mo/tutorial/docs/latex/Makefile new file mode 100644 index 000000000..776fcf968 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/Makefile @@ -0,0 +1,39 @@ +all: clean refman.dvi + +ps: refman.ps + +pdf: refman.pdf + +ps_2on1: refman_2on1.ps + +pdf_2on1: refman_2on1.pdf + +refman.ps: refman.dvi + dvips -o refman.ps refman.dvi + +refman.pdf: refman.ps + ps2pdf refman.ps refman.pdf + +refman.dvi: refman.tex doxygen.sty + echo "Running latex..." + latex refman.tex + echo "Running makeindex..." + makeindex refman.idx + echo "Rerunning latex...." + latex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + latex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + +refman_2on1.ps: refman.ps + psnup -2 refman.ps >refman_2on1.ps + +refman_2on1.pdf: refman_2on1.ps + ps2pdf refman_2on1.ps refman_2on1.pdf + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/annotated.tex b/trunk/paradiseo-mo/tutorial/docs/latex/annotated.tex new file mode 100644 index 000000000..741c4aab0 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/annotated.tex @@ -0,0 +1,31 @@ +\section{PARADISEO-MO Class List} +Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{{\bf Empty\-Selection} (Special class that describes the case of no selection )}{\pageref{class_empty_selection}}{} +\item\contentsline{section}{{\bf mo\-Algo$<$ EOT $>$} (Description of an algorithm of the mo library )}{\pageref{classmo_algo}}{} +\item\contentsline{section}{{\bf mo\-Aspir\-Crit$<$ M $>$} (Description of the conditions in which a tabu move could be accepted )}{\pageref{classmo_aspir_crit}}{} +\item\contentsline{section}{{\bf mo\-Best\-Impr\-Select$<$ M $>$} (One of the possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select} )}{\pageref{classmo_best_impr_select}}{} +\item\contentsline{section}{{\bf mo\-Cool\-Sched} (This class gives the description of a cooling schedule )}{\pageref{classmo_cool_sched}}{} +\item\contentsline{section}{{\bf mo\-Easy\-Cool\-Sched} (One of the possible \doxyref{mo\-Cool\-Sched}{p.}{classmo_cool_sched} )}{\pageref{classmo_easy_cool_sched}}{} +\item\contentsline{section}{{\bf mo\-First\-Impr\-Select$<$ M $>$} (One possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select} )}{\pageref{classmo_first_impr_select}}{} +\item\contentsline{section}{{\bf mo\-Gen\-Sol\-Continue$<$ EOT $>$} (One possible stop criterion for a solution-based heuristic )}{\pageref{classmo_gen_sol_continue}}{} +\item\contentsline{section}{{\bf mo\-HC$<$ M $>$} (Hill Climbing (HC) )}{\pageref{classmo_h_c}}{} +\item\contentsline{section}{{\bf mo\-HCMove\-Loop\-Expl$<$ M $>$} (Iterative explorer used by a \doxyref{mo\-HC}{p.}{classmo_h_c} )}{\pageref{classmo_h_c_move_loop_expl}}{} +\item\contentsline{section}{{\bf mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$} (One of the possible \doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit} )}{\pageref{classmo_impr_best_fit_aspir_crit}}{} +\item\contentsline{section}{{\bf mo\-It\-Rand\-Next\-Move$<$ M $>$} (One of the possible \doxyref{mo\-Next\-Move}{p.}{classmo_next_move} )}{\pageref{classmo_it_rand_next_move}}{} +\item\contentsline{section}{{\bf mo\-LSCheck\-Point$<$ M $>$} (Class which allows a checkpointing system )}{\pageref{classmo_l_s_check_point}}{} +\item\contentsline{section}{{\bf mo\-Move$<$ EOT $>$} (Definition of a move )}{\pageref{classmo_move}}{} +\item\contentsline{section}{{\bf mo\-Move\-Expl$<$ M $>$} (Description of a move (\doxyref{mo\-Move}{p.}{classmo_move}) explorer )}{\pageref{classmo_move_expl}}{} +\item\contentsline{section}{{\bf mo\-Move\-Incr\-Eval$<$ M $>$} ((generally) Efficient evaluation function based a move and a solution )}{\pageref{classmo_move_incr_eval}}{} +\item\contentsline{section}{{\bf mo\-Move\-Init$<$ M $>$} (Move (\doxyref{mo\-Move}{p.}{classmo_move}) initializer )}{\pageref{classmo_move_init}}{} +\item\contentsline{section}{{\bf mo\-Move\-Loop\-Expl$<$ M $>$} (Class which describes an iterative explorer )}{\pageref{classmo_move_loop_expl}}{} +\item\contentsline{section}{{\bf mo\-Move\-Select$<$ M $>$} (Class that describes a move selector (\doxyref{mo\-Move}{p.}{classmo_move}) )}{\pageref{classmo_move_select}}{} +\item\contentsline{section}{{\bf mo\-Next\-Move$<$ M $>$} (Class which allows to generate a new move (\doxyref{mo\-Move}{p.}{classmo_move}) )}{\pageref{classmo_next_move}}{} +\item\contentsline{section}{{\bf mo\-No\-Aspir\-Crit$<$ M $>$} (One of the possible aspiration criterion (\doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}) )}{\pageref{classmo_no_aspir_crit}}{} +\item\contentsline{section}{{\bf mo\-Rand\-Impr\-Select$<$ M $>$} (One of the possible \doxyref{mo\-Move}{p.}{classmo_move} selector (\doxyref{mo\-Move\-Select}{p.}{classmo_move_select}) )}{\pageref{classmo_rand_impr_select}}{} +\item\contentsline{section}{{\bf mo\-Rand\-Move$<$ M $>$} (Random move generator )}{\pageref{classmo_rand_move}}{} +\item\contentsline{section}{{\bf mo\-SA$<$ M $>$} (Simulated Annealing (SA) )}{\pageref{classmo_s_a}}{} +\item\contentsline{section}{{\bf mo\-Sol\-Continue$<$ EOT $>$} (Class that describes a stop criterion for a solution-based heuristic )}{\pageref{classmo_sol_continue}}{} +\item\contentsline{section}{{\bf mo\-Tabu\-List$<$ M $>$} (Class describing a tabu list that a \doxyref{mo\-TS}{p.}{classmo_t_s} uses )}{\pageref{classmo_tabu_list}}{} +\item\contentsline{section}{{\bf mo\-TS$<$ M $>$} (Tabu Search (TS) )}{\pageref{classmo_t_s}}{} +\item\contentsline{section}{{\bf mo\-TSMove\-Loop\-Expl$<$ M $>$} (Explorer for a Tabu Search algorithm )}{\pageref{classmo_t_s_move_loop_expl}}{} +\end{CompactList} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/class_empty_selection.tex b/trunk/paradiseo-mo/tutorial/docs/latex/class_empty_selection.tex new file mode 100644 index 000000000..4b44303b4 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/class_empty_selection.tex @@ -0,0 +1,21 @@ +\section{Empty\-Selection Class Reference} +\label{class_empty_selection}\index{EmptySelection@{EmptySelection}} +Special class that describes the case of no selection. + + +{\tt \#include $<$mo\-Move\-Select.h$>$} + + + +\subsection{Detailed Description} +Special class that describes the case of no selection. + +This class is used as an exception that can be thrown if a solution selector has completly failed. + + + +Definition at line 21 of file mo\-Move\-Select.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Select.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_algo.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_algo.tex new file mode 100644 index 000000000..a2d7b3fe0 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_algo.tex @@ -0,0 +1,23 @@ +\section{mo\-Algo$<$ EOT $>$ Class Template Reference} +\label{classmo_algo}\index{moAlgo@{moAlgo}} +Description of an algorithm of the mo library. + + +{\tt \#include $<$mo\-Algo.h$>$} + + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class mo\-Algo$<$ EOT $>$} + +Description of an algorithm of the mo library. + +\doxyref{mo\-HC}{p.}{classmo_h_c}, \doxyref{mo\-TS}{p.}{classmo_t_s} and \doxyref{mo\-SA}{p.}{classmo_s_a} are 3 examples of algorithm of the mo library. + + + +Definition at line 21 of file mo\-Algo.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Algo.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_aspir_crit.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_aspir_crit.eps new file mode 100644 index 000000000..fbf0b26ef --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_aspir_crit.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 109.29 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.575 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moAspirCrit< M >) cw +(moImprBestFitAspirCrit< M >) cw +(moNoAspirCrit< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moAspirCrit< M >) 0.5 1 box + (moImprBestFitAspirCrit< M >) 0 0 box + (moNoAspirCrit< M >) 1 0 box + +% ----- relations ----- + +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_aspir_crit.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_aspir_crit.tex new file mode 100644 index 000000000..ffec16f05 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_aspir_crit.tex @@ -0,0 +1,46 @@ +\section{mo\-Aspir\-Crit$<$ M $>$ Class Template Reference} +\label{classmo_aspir_crit}\index{moAspirCrit@{moAspirCrit}} +Description of the conditions in which a tabu move could be accepted. + + +{\tt \#include $<$mo\-Aspir\-Crit.h$>$} + +Inheritance diagram for mo\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_aspir_crit} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void {\bf init} ()=0 +\begin{CompactList}\small\item\em Procedure which initialises all that needs a aspiration criterion. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Aspir\-Crit$<$ M $>$} + +Description of the conditions in which a tabu move could be accepted. + +It is only a description... An object that herits from this class is needed to be used in a \doxyref{mo\-TS}{p.}{classmo_t_s}. See mo\-No\-Aspri\-Crit for example. + + + +Definition at line 22 of file mo\-Aspir\-Crit.h. + +\subsection{Member Function Documentation} +\index{moAspirCrit@{mo\-Aspir\-Crit}!init@{init}} +\index{init@{init}!moAspirCrit@{mo\-Aspir\-Crit}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf mo\-Aspir\-Crit}$<$ M $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_aspir_crit_a8ce84510a5ec7c9078381e542c6d140} + + +Procedure which initialises all that needs a aspiration criterion. + +It can be possible that this procedure do nothing... + +Implemented in {\bf mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$} \doxyref{}{p.}{classmo_impr_best_fit_aspir_crit_ffa451a14ff4ea86fb8bd9fdbc348630}, and {\bf mo\-No\-Aspir\-Crit$<$ M $>$} \doxyref{}{p.}{classmo_no_aspir_crit_f3a286fc4c2d36bd390ba9a3074f3037}. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Aspir\-Crit.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_best_impr_select.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_best_impr_select.eps new file mode 100644 index 000000000..f9c367972 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_best_impr_select.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 259.74 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.925 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moBestImprSelect< M >) cw +(moMoveSelect< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moBestImprSelect< M >) 0 0 box + (moMoveSelect< M >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_best_impr_select.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_best_impr_select.tex new file mode 100644 index 000000000..a7b05435f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_best_impr_select.tex @@ -0,0 +1,103 @@ +\section{mo\-Best\-Impr\-Select$<$ M $>$ Class Template Reference} +\label{classmo_best_impr_select}\index{moBestImprSelect@{moBestImprSelect}} +One of the possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. + + +{\tt \#include $<$mo\-Best\-Impr\-Select.h$>$} + +Inheritance diagram for mo\-Best\-Impr\-Select$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_best_impr_select} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness {\bf Fitness}\label{classmo_best_impr_select_c4ae17435221fb0a8e8acd285210cfcb} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit)\label{classmo_best_impr_select_2d2abf9aa17dc77cbb4f41810ab7b956} + +\begin{CompactList}\small\item\em Procedure which initialise the exploration. \item\end{CompactList}\item +bool {\bf update} (const M \&\_\-\_\-move, const {\bf Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em Function that indicates if the current move has not improved the fitness. \item\end{CompactList}\item +void {\bf operator()} (M \&\_\-\_\-move, {\bf Fitness} \&\_\-\_\-fit) throw (Empty\-Selection) +\begin{CompactList}\small\item\em Procedure which saved the best move and fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +bool {\bf first\_\-time}\label{classmo_best_impr_select_352b14d206b0772eb9f40efb7beb0f13} + +\begin{CompactList}\small\item\em Allowing to know if at least one move has been generated. \item\end{CompactList}\item +M {\bf best\_\-move}\label{classmo_best_impr_select_bd86f70519f954c07ff0d8a2a3a8ff6a} + +\begin{CompactList}\small\item\em The best move. \item\end{CompactList}\item +{\bf Fitness} {\bf best\_\-fit}\label{classmo_best_impr_select_dcac897424b5805f146bb1dbb429f2fe} + +\begin{CompactList}\small\item\em The best fitness. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Best\-Impr\-Select$<$ M $>$} + +One of the possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. + +All neighbors are considered, and the movement which enables the best improvement is selected. + + + +Definition at line 22 of file mo\-Best\-Impr\-Select.h. + +\subsection{Member Function Documentation} +\index{moBestImprSelect@{mo\-Best\-Impr\-Select}!update@{update}} +\index{update@{update}!moBestImprSelect@{mo\-Best\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-Best\-Impr\-Select}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_best_impr_select_d10e3e6f8a0277731e95ef506d064d6d} + + +Function that indicates if the current move has not improved the fitness. + +If the given fitness enables an improvment, the move (\doxyref{mo\-Move}{p.}{classmo_move}) and the fitness linked to this move are saved. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitness linked to the move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE if the move does not improve the fitness. \end{Desc} + + +Implements {\bf mo\-Move\-Select$<$ M $>$} \doxyref{}{p.}{classmo_move_select_7c157b6e64fd417acf6e900059204eb1}. + +Definition at line 47 of file mo\-Best\-Impr\-Select.h. + +References mo\-Best\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-Best\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-Best\-Impr\-Select$<$ M $>$::first\_\-time.\index{moBestImprSelect@{mo\-Best\-Impr\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moBestImprSelect@{mo\-Best\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-Best\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline]}}\label{classmo_best_impr_select_169773d4d127acd782cf379f758222da} + + +Procedure which saved the best move and fitness. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]the current move (result of the procedure). \item[{\em \_\-\_\-fit}]the current fitness (result of the procedure). \end{description} +\end{Desc} +\begin{Desc} +\item[Exceptions:] +\begin{description} +\item[{\em \doxyref{Empty\-Selection}{p.}{class_empty_selection}}]if no move has improved the fitness. \end{description} +\end{Desc} + + +Definition at line 68 of file mo\-Best\-Impr\-Select.h. + +References mo\-Best\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-Best\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-Best\-Impr\-Select$<$ M $>$::first\_\-time. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Best\-Impr\-Select.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_cool_sched.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_cool_sched.eps new file mode 100644 index 000000000..dc8336154 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_cool_sched.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 317.46 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.575 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moCoolSched) cw +(moEasyCoolSched) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moCoolSched) 0 1 box + (moEasyCoolSched) 0 0 box + +% ----- relations ----- + +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_cool_sched.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_cool_sched.tex new file mode 100644 index 000000000..cfccf4669 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_cool_sched.tex @@ -0,0 +1,27 @@ +\section{mo\-Cool\-Sched Class Reference} +\label{classmo_cool_sched}\index{moCoolSched@{moCoolSched}} +This class gives the description of a cooling schedule. + + +{\tt \#include $<$mo\-Cool\-Sched.h$>$} + +Inheritance diagram for mo\-Cool\-Sched::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_cool_sched} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +This class gives the description of a cooling schedule. + +It is only a description... An object that herits from this class is needed to be used in a \doxyref{mo\-SA}{p.}{classmo_s_a}. See \doxyref{mo\-Easy\-Cool\-Sched}{p.}{classmo_easy_cool_sched} for example. + + + +Definition at line 22 of file mo\-Cool\-Sched.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Cool\-Sched.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_easy_cool_sched.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_easy_cool_sched.eps new file mode 100644 index 000000000..0cff15334 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_easy_cool_sched.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 317.46 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.575 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moEasyCoolSched) cw +(moCoolSched) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moEasyCoolSched) 0 0 box + (moCoolSched) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_easy_cool_sched.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_easy_cool_sched.tex new file mode 100644 index 000000000..ceb3b8927 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_easy_cool_sched.tex @@ -0,0 +1,83 @@ +\section{mo\-Easy\-Cool\-Sched Class Reference} +\label{classmo_easy_cool_sched}\index{moEasyCoolSched@{moEasyCoolSched}} +One of the possible \doxyref{mo\-Cool\-Sched}{p.}{classmo_cool_sched}. + + +{\tt \#include $<$mo\-Easy\-Cool\-Sched.h$>$} + +Inheritance diagram for mo\-Easy\-Cool\-Sched::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_easy_cool_sched} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-Easy\-Cool\-Sched} (double \_\-\_\-threshold, double \_\-\_\-ratio) +\begin{CompactList}\small\item\em Simple constructor. \item\end{CompactList}\item +bool {\bf operator()} (double \&\_\-\_\-temp) +\begin{CompactList}\small\item\em Function which proceeds to the cooling. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +double {\bf threshold}\label{classmo_easy_cool_sched_3dd53700390b7bb6428db80e01626c83} + +\begin{CompactList}\small\item\em The temperature threhold. \item\end{CompactList}\item +double {\bf ratio}\label{classmo_easy_cool_sched_1f84deff87defafd927e8c323b188f38} + +\begin{CompactList}\small\item\em The decreasing factor of the temperature. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +One of the possible \doxyref{mo\-Cool\-Sched}{p.}{classmo_cool_sched}. + +The simpliest, the temperature decrease according to a ratio until it greater than a threshold. + + + +Definition at line 22 of file mo\-Easy\-Cool\-Sched.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moEasyCoolSched@{mo\-Easy\-Cool\-Sched}!moEasyCoolSched@{moEasyCoolSched}} +\index{moEasyCoolSched@{moEasyCoolSched}!moEasyCoolSched@{mo\-Easy\-Cool\-Sched}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}mo\-Easy\-Cool\-Sched::mo\-Easy\-Cool\-Sched (double {\em \_\-\_\-threshold}, double {\em \_\-\_\-ratio})\hspace{0.3cm}{\tt [inline]}}\label{classmo_easy_cool_sched_c556b41343700293bb17e3b20d81e0f2} + + +Simple constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-threshold}]the threshold. \item[{\em \_\-\_\-ratio}]the ratio used to descrease the temperature. \end{description} +\end{Desc} + + +Definition at line 31 of file mo\-Easy\-Cool\-Sched.h. + +\subsection{Member Function Documentation} +\index{moEasyCoolSched@{mo\-Easy\-Cool\-Sched}!operator()@{operator()}} +\index{operator()@{operator()}!moEasyCoolSched@{mo\-Easy\-Cool\-Sched}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool mo\-Easy\-Cool\-Sched::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline]}}\label{classmo_easy_cool_sched_ca08df878417ef1124e6933a9c2d7a0b} + + +Function which proceeds to the cooling. + +Decrease the temperature and indicates if it is greater than the threshold. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-temp}]the current temperature. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]if the new temperature (current temperature $\ast$ ratio) is greater than the threshold. \end{Desc} + + +Definition at line 44 of file mo\-Easy\-Cool\-Sched.h. + +References ratio, and threshold. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Easy\-Cool\-Sched.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_first_impr_select.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_first_impr_select.eps new file mode 100644 index 000000000..04ffcb96d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_first_impr_select.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 258.065 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.9375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moFirstImprSelect< M >) cw +(moMoveSelect< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moFirstImprSelect< M >) 0 0 box + (moMoveSelect< M >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_first_impr_select.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_first_impr_select.tex new file mode 100644 index 000000000..c202586d4 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_first_impr_select.tex @@ -0,0 +1,116 @@ +\section{mo\-First\-Impr\-Select$<$ M $>$ Class Template Reference} +\label{classmo_first_impr_select}\index{moFirstImprSelect@{moFirstImprSelect}} +One possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. + + +{\tt \#include $<$mo\-First\-Impr\-Select.h$>$} + +Inheritance diagram for mo\-First\-Impr\-Select$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_first_impr_select} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness {\bf Fitness}\label{classmo_first_impr_select_64763ce3e6d2873266624382b407fa5a} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em Procedure which initialise the exploration. \item\end{CompactList}\item +bool {\bf update} (const M \&\_\-\_\-move, const typename M::EOType::Fitness \&\_\-\_\-fit) +\begin{CompactList}\small\item\em Function that indicates if the current move has not improved the fitness. \item\end{CompactList}\item +void {\bf operator()} (M \&\_\-\_\-move, {\bf Fitness} \&\_\-\_\-fit) throw (Empty\-Selection) +\begin{CompactList}\small\item\em Procedure which saved the best move and fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +bool {\bf valid}\label{classmo_first_impr_select_a99c0586ba07449234705c17a258d58c} + +\begin{CompactList}\small\item\em Allow to know if at least one move has improved the solution. \item\end{CompactList}\item +M {\bf best\_\-move}\label{classmo_first_impr_select_dfed419a608dd7c41f07fa1f1279cb8c} + +\begin{CompactList}\small\item\em Best stored movement. \item\end{CompactList}\item +{\bf Fitness} {\bf init\_\-fit}\label{classmo_first_impr_select_ce7ba63e8cc3a9164f4e546477e98ca8} + +\begin{CompactList}\small\item\em Initial fitness. \item\end{CompactList}\item +{\bf Fitness} {\bf best\_\-fit}\label{classmo_first_impr_select_e1190347b76ec6fe717be32354b4a9a9} + +\begin{CompactList}\small\item\em Best stored fitness. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-First\-Impr\-Select$<$ M $>$} + +One possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. + +The neighborhood is explored until a move enables an improvment of the current solution. + + + +Definition at line 23 of file mo\-First\-Impr\-Select.h. + +\subsection{Member Function Documentation} +\index{moFirstImprSelect@{mo\-First\-Impr\-Select}!init@{init}} +\index{init@{init}!moFirstImprSelect@{mo\-First\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf mo\-First\-Impr\-Select}$<$ M $>$::init (const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_first_impr_select_4c5ce18ede46247a439c68f6954a4055} + + +Procedure which initialise the exploration. + +It save the current fitness as the initial value for the fitness. + +Implements {\bf mo\-Move\-Select$<$ M $>$} \doxyref{}{p.}{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e}. + +Definition at line 35 of file mo\-First\-Impr\-Select.h. + +References mo\-First\-Impr\-Select$<$ M $>$::init\_\-fit, and mo\-First\-Impr\-Select$<$ M $>$::valid.\index{moFirstImprSelect@{mo\-First\-Impr\-Select}!update@{update}} +\index{update@{update}!moFirstImprSelect@{mo\-First\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-First\-Impr\-Select}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const typename M::EOType::Fitness \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_first_impr_select_7ba0882728daedc75c249647c070ccf0} + + +Function that indicates if the current move has not improved the fitness. + +If the given fitness enables an improvment, the move (\doxyref{mo\-Move}{p.}{classmo_move}) should be applied to the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitness linked to the move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE if the move does not improve the fitness. \end{Desc} + + +Definition at line 52 of file mo\-First\-Impr\-Select.h. + +References mo\-First\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-First\-Impr\-Select$<$ M $>$::best\_\-move, mo\-First\-Impr\-Select$<$ M $>$::init\_\-fit, and mo\-First\-Impr\-Select$<$ M $>$::valid.\index{moFirstImprSelect@{mo\-First\-Impr\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moFirstImprSelect@{mo\-First\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-First\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline]}}\label{classmo_first_impr_select_3be12cf4cbaed00df7c4fa735b2c0a95} + + +Procedure which saved the best move and fitness. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]the current move (result of the procedure). \item[{\em \_\-\_\-fit}]the current fitness (result of the procedure). \end{description} +\end{Desc} +\begin{Desc} +\item[Exceptions:] +\begin{description} +\item[{\em \doxyref{Empty\-Selection}{p.}{class_empty_selection}}]if no move has improved the fitness. \end{description} +\end{Desc} + + +Definition at line 76 of file mo\-First\-Impr\-Select.h. + +References mo\-First\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-First\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-First\-Impr\-Select$<$ M $>$::valid. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-First\-Impr\-Select.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_gen_sol_continue.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_gen_sol_continue.eps new file mode 100644 index 000000000..c9e65107d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_gen_sol_continue.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 227.273 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moGenSolContinue< EOT >) cw +(moSolContinue< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moGenSolContinue< EOT >) 0 0 box + (moSolContinue< EOT >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_gen_sol_continue.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_gen_sol_continue.tex new file mode 100644 index 000000000..5f4ac8050 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_gen_sol_continue.tex @@ -0,0 +1,100 @@ +\section{mo\-Gen\-Sol\-Continue$<$ EOT $>$ Class Template Reference} +\label{classmo_gen_sol_continue}\index{moGenSolContinue@{moGenSolContinue}} +One possible stop criterion for a solution-based heuristic. + + +{\tt \#include $<$mo\-Gen\-Sol\-Continue.h$>$} + +Inheritance diagram for mo\-Gen\-Sol\-Continue$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_gen_sol_continue} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-Gen\-Sol\-Continue} (unsigned \_\-\_\-max\-Num\-Gen) +\begin{CompactList}\small\item\em Simple constructor. \item\end{CompactList}\item +bool {\bf operator()} (const EOT \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Function that activates the stop criterion. \item\end{CompactList}\item +void {\bf init} () +\begin{CompactList}\small\item\em Procedure which allows to initialise the generation counter. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +unsigned {\bf max\-Num\-Gen}\label{classmo_gen_sol_continue_6d7674fc51d17423e8ee28693a08b5af} + +\begin{CompactList}\small\item\em Iteration maximum number. \item\end{CompactList}\item +unsigned {\bf num\-Gen}\label{classmo_gen_sol_continue_a18ebfd270f96517b4edaa2cad3eb9e0} + +\begin{CompactList}\small\item\em Iteration current number. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class mo\-Gen\-Sol\-Continue$<$ EOT $>$} + +One possible stop criterion for a solution-based heuristic. + +The stop criterion corresponds to a maximum number of iteration. + + + +Definition at line 21 of file mo\-Gen\-Sol\-Continue.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moGenSolContinue@{mo\-Gen\-Sol\-Continue}!moGenSolContinue@{moGenSolContinue}} +\index{moGenSolContinue@{moGenSolContinue}!moGenSolContinue@{mo\-Gen\-Sol\-Continue}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ {\bf mo\-Gen\-Sol\-Continue}$<$ EOT $>$::{\bf mo\-Gen\-Sol\-Continue} (unsigned {\em \_\-\_\-max\-Num\-Gen})\hspace{0.3cm}{\tt [inline]}}\label{classmo_gen_sol_continue_6b6cab23a23bd8904ea52ef5141d8d0a} + + +Simple constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-max\-Num\-Gen}]the maximum number of generation. \end{description} +\end{Desc} + + +Definition at line 30 of file mo\-Gen\-Sol\-Continue.h. + +\subsection{Member Function Documentation} +\index{moGenSolContinue@{mo\-Gen\-Sol\-Continue}!operator()@{operator()}} +\index{operator()@{operator()}!moGenSolContinue@{mo\-Gen\-Sol\-Continue}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool {\bf mo\-Gen\-Sol\-Continue}$<$ EOT $>$::operator() (const EOT \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_gen_sol_continue_457257cd73b474d6f7783d84d02c2e61} + + +Function that activates the stop criterion. + +Increments the counter and returns TRUE if the current number of iteration is lower than the given maximum number of iterations. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]the current solution. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE or FALSE according to the current generation number. \end{Desc} + + +Definition at line 44 of file mo\-Gen\-Sol\-Continue.h. + +References mo\-Gen\-Sol\-Continue$<$ EOT $>$::max\-Num\-Gen, and mo\-Gen\-Sol\-Continue$<$ EOT $>$::num\-Gen.\index{moGenSolContinue@{mo\-Gen\-Sol\-Continue}!init@{init}} +\index{init@{init}!moGenSolContinue@{mo\-Gen\-Sol\-Continue}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void {\bf mo\-Gen\-Sol\-Continue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_gen_sol_continue_6c5db8182157584b56507cc9075602d4} + + +Procedure which allows to initialise the generation counter. + +It can also be used to reset the iteration counter. + +Implements {\bf mo\-Sol\-Continue$<$ EOT $>$} \doxyref{}{p.}{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7}. + +Definition at line 54 of file mo\-Gen\-Sol\-Continue.h. + +References mo\-Gen\-Sol\-Continue$<$ EOT $>$::num\-Gen. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Gen\-Sol\-Continue.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c.eps new file mode 100644 index 000000000..648f11f20 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 268.456 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.8625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moHC< M >) cw +(moAlgo< M::EOType >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moHC< M >) 0 0 box + (moAlgo< M::EOType >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c.tex new file mode 100644 index 000000000..917388faa --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c.tex @@ -0,0 +1,114 @@ +\section{mo\-HC$<$ M $>$ Class Template Reference} +\label{classmo_h_c}\index{moHC@{moHC}} +Hill Climbing (HC). + + +{\tt \#include $<$mo\-HC.h$>$} + +Inheritance diagram for mo\-HC$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_h_c} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-HC} ({\bf mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Move\-Select}$<$ M $>$ \&\_\-\_\-move\_\-select, eo\-Eval\-Func$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em Full constructor. \item\end{CompactList}\item +{\bf mo\-HC} ({\bf mo\-Move\-Expl}$<$ M $>$ \&\_\-\_\-move\_\-expl, eo\-Eval\-Func$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em Light constructor. \item\end{CompactList}\item +bool {\bf operator()} ({\bf EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Function which launches the HC. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType {\bf EOT}\label{classmo_h_c_d219296ede03c679646bce2fe8ff96cb} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef EOT::Fitness {\bf Fitness}\label{classmo_h_c_56487c97a7cf0c423cc879d1bbd45027} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +{\bf mo\-Move\-Expl}$<$ M $>$ \& {\bf move\_\-expl}\label{classmo_h_c_f6bfb4553fb699f1e08f7d9c37d06103} + +\begin{CompactList}\small\item\em Complete exploration of the neighborhood. \item\end{CompactList}\item +eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_h_c_4b0d5cc70fc3d83f59a48b2bdea65736} + +\begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-HC$<$ M $>$} + +Hill Climbing (HC). + +Class which describes the algorithm for a hill climbing. + + + +Definition at line 26 of file mo\-HC.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moHC@{mo\-HC}!moHC@{moHC}} +\index{moHC@{moHC}!moHC@{mo\-HC}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-HC}$<$ M $>$::{\bf mo\-HC} ({\bf mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Move\-Select}$<$ M $>$ \& {\em \_\-\_\-move\_\-select}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_6cafe093f86a80c225827884cb9dc5b7} + + +Full constructor. + +All the boxes are given in order the HC to use a \doxyref{mo\-HCMove\-Loop\-Expl}{p.}{classmo_h_c_move_loop_expl}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-init}]a move initialiser. \item[{\em \_\-\_\-next\_\-move}]a neighborhood explorer. \item[{\em \_\-\_\-incr\_\-eval}]a (generally) efficient evaluation function. \item[{\em \_\-\_\-move\_\-select}]a move selector. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description} +\end{Desc} + + +Definition at line 53 of file mo\-HC.h.\index{moHC@{mo\-HC}!moHC@{moHC}} +\index{moHC@{moHC}!moHC@{mo\-HC}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-HC}$<$ M $>$::{\bf mo\-HC} ({\bf mo\-Move\-Expl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_45f27309792e584a27fa6dcb86ccda65} + + +Light constructor. + +This constructor allow to use another \doxyref{mo\-Move\-Expl}{p.}{classmo_move_expl} (generally not a \doxyref{mo\-HCMove\-Loop\-Expl}{p.}{classmo_h_c_move_loop_expl}). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-expl}]a complete explorer. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description} +\end{Desc} + + +Definition at line 67 of file mo\-HC.h. + +\subsection{Member Function Documentation} +\index{moHC@{mo\-HC}!operator()@{operator()}} +\index{operator()@{operator()}!moHC@{mo\-HC}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-HC}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_ed4e273c420efa6386c5975a696a5010} + + +Function which launches the HC. + +The HC has to improve a current solution. As the \doxyref{mo\-SA}{p.}{classmo_s_a} and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]a current solution to improve. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE. \end{Desc} + + +Definition at line 82 of file mo\-HC.h. + +References mo\-HC$<$ M $>$::full\_\-eval, and mo\-HC$<$ M $>$::move\_\-expl. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-HC.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c_move_loop_expl.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c_move_loop_expl.eps new file mode 100644 index 000000000..1383bbf1b --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c_move_loop_expl.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 346.821 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.44167 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moHCMoveLoopExpl< M >) cw +(moMoveLoopExpl< M >) cw +(moMoveExpl< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moHCMoveLoopExpl< M >) 0 0 box + (moMoveLoopExpl< M >) 0 1 box + (moMoveExpl< M >) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c_move_loop_expl.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c_move_loop_expl.tex new file mode 100644 index 000000000..fbcfeea7c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_h_c_move_loop_expl.tex @@ -0,0 +1,98 @@ +\section{mo\-HCMove\-Loop\-Expl$<$ M $>$ Class Template Reference} +\label{classmo_h_c_move_loop_expl}\index{moHCMoveLoopExpl@{moHCMoveLoopExpl}} +Iterative explorer used by a \doxyref{mo\-HC}{p.}{classmo_h_c}. + + +{\tt \#include $<$mo\-HCMove\-Loop\-Expl.h$>$} + +Inheritance diagram for mo\-HCMove\-Loop\-Expl$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_h_c_move_loop_expl} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-HCMove\-Loop\-Expl} ({\bf mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Move\-Select}$<$ M $>$ \&\_\-\_\-move\_\-select) +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item +void {\bf operator()} (const {\bf EOT} \&\_\-\_\-old\_\-sol, {\bf EOT} \&\_\-\_\-new\_\-sol) +\begin{CompactList}\small\item\em Procedure which launches the explorer. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType {\bf EOT}\label{classmo_h_c_move_loop_expl_077befd4106c201eafd3ea22bcea2fe9} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef M::EOType::Fitness {\bf Fitness}\label{classmo_h_c_move_loop_expl_f24871224316d5549b9013a2d27ab465} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +{\bf mo\-Move\-Init}$<$ M $>$ \& {\bf move\_\-init}\label{classmo_h_c_move_loop_expl_6776fc51331c1b452d026b92448b4ffc} + +\begin{CompactList}\small\item\em Move initialiser. \item\end{CompactList}\item +{\bf mo\-Next\-Move}$<$ M $>$ \& {\bf next\_\-move}\label{classmo_h_c_move_loop_expl_f716c5271e0eba9275c585dc52768443} + +\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item +{\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\bf incr\_\-eval}\label{classmo_h_c_move_loop_expl_84a8fccba05ab30414281469bc8ee779} + +\begin{CompactList}\small\item\em (generally) Efficient evaluation. \item\end{CompactList}\item +{\bf mo\-Move\-Select}$<$ M $>$ \& {\bf move\_\-select}\label{classmo_h_c_move_loop_expl_13bcd1322b2b97fd665be2f60c532fbb} + +\begin{CompactList}\small\item\em Move selector. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-HCMove\-Loop\-Expl$<$ M $>$} + +Iterative explorer used by a \doxyref{mo\-HC}{p.}{classmo_h_c}. + + + +Definition at line 23 of file mo\-HCMove\-Loop\-Expl.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}!moHCMoveLoopExpl@{moHCMoveLoopExpl}} +\index{moHCMoveLoopExpl@{moHCMoveLoopExpl}!moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-HCMove\-Loop\-Expl}$<$ M $>$::{\bf mo\-HCMove\-Loop\-Expl} ({\bf mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Move\-Select}$<$ M $>$ \& {\em \_\-\_\-move\_\-select})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_move_loop_expl_11410d648d79746253e9dc249c4ec7b5} + + +Constructor. + +All the boxes have to be specified. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-init}]the move initialiser. \item[{\em \_\-\_\-next\_\-move}]the neighborhood explorer. \item[{\em \_\-\_\-incr\_\-eval}](generally) efficient evaluation function. \item[{\em \_\-\_\-move\_\-select}]the move selector. \end{description} +\end{Desc} + + +Definition at line 43 of file mo\-HCMove\-Loop\-Expl.h. + +\subsection{Member Function Documentation} +\index{moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}!operator()@{operator()}} +\index{operator()@{operator()}!moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-HCMove\-Loop\-Expl}$<$ M $>$::operator() (const {\bf EOT} \& {\em \_\-\_\-old\_\-sol}, {\bf EOT} \& {\em \_\-\_\-new\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_move_loop_expl_f48d5379caac7f6a165e9fe8840e6ccb} + + +Procedure which launches the explorer. + +The exploration starts from an old solution and provides a new solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-old\_\-sol}]the current solution. \item[{\em \_\-\_\-new\_\-sol}]the new\_\-sol (result of the procedure). \end{description} +\end{Desc} + + +Definition at line 59 of file mo\-HCMove\-Loop\-Expl.h. + +References mo\-HCMove\-Loop\-Expl$<$ M $>$::incr\_\-eval, mo\-HCMove\-Loop\-Expl$<$ M $>$::move\_\-init, mo\-HCMove\-Loop\-Expl$<$ M $>$::move\_\-select, and mo\-HCMove\-Loop\-Expl$<$ M $>$::next\_\-move. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-HCMove\-Loop\-Expl.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_impr_best_fit_aspir_crit.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_impr_best_fit_aspir_crit.eps new file mode 100644 index 000000000..41cee35a0 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_impr_best_fit_aspir_crit.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 218.579 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.2875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moImprBestFitAspirCrit< M >) cw +(moAspirCrit< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moImprBestFitAspirCrit< M >) 0 0 box + (moAspirCrit< M >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_impr_best_fit_aspir_crit.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_impr_best_fit_aspir_crit.tex new file mode 100644 index 000000000..5303c7f37 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_impr_best_fit_aspir_crit.tex @@ -0,0 +1,78 @@ +\section{mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$ Class Template Reference} +\label{classmo_impr_best_fit_aspir_crit}\index{moImprBestFitAspirCrit@{moImprBestFitAspirCrit}} +One of the possible \doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}. + + +{\tt \#include $<$mo\-Impr\-Best\-Fit\-Aspir\-Crit.h$>$} + +Inheritance diagram for mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_impr_best_fit_aspir_crit} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness {\bf Fitness}\label{classmo_impr_best_fit_aspir_crit_0bc1a8c9af99781e662570c04750cca8} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-Impr\-Best\-Fit\-Aspir\-Crit} ()\label{classmo_impr_best_fit_aspir_crit_e2c697a5cf3a7696e38bb52b6694a340} + +\begin{CompactList}\small\item\em Contructor. \item\end{CompactList}\item +void {\bf init} ()\label{classmo_impr_best_fit_aspir_crit_ffa451a14ff4ea86fb8bd9fdbc348630} + +\begin{CompactList}\small\item\em Initialisation procedure. \item\end{CompactList}\item +bool {\bf operator()} (const M \&\_\-\_\-move, const {\bf Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em Function that indicates if the fit is better that the already saved fit. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +{\bf Fitness} {\bf best\_\-fit}\label{classmo_impr_best_fit_aspir_crit_9e52383f0af8013b4aff0942325e1bf3} + +\begin{CompactList}\small\item\em Best fitness found until now. \item\end{CompactList}\item +bool {\bf first\_\-time}\label{classmo_impr_best_fit_aspir_crit_2d5226c7dd661b33011402dbbbe78265} + +\begin{CompactList}\small\item\em Indicates that a fitness has been already saved or not. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$} + +One of the possible \doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}. + +This criterion is satisfied when a given fitness is the best ever considered. + + + +Definition at line 22 of file mo\-Impr\-Best\-Fit\-Aspir\-Crit.h. + +\subsection{Member Function Documentation} +\index{moImprBestFitAspirCrit@{mo\-Impr\-Best\-Fit\-Aspir\-Crit}!operator()@{operator()}} +\index{operator()@{operator()}!moImprBestFitAspirCrit@{mo\-Impr\-Best\-Fit\-Aspir\-Crit}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-Impr\-Best\-Fit\-Aspir\-Crit}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_impr_best_fit_aspir_crit_53f62fb56dcae3051a741f1fddb0204b} + + +Function that indicates if the fit is better that the already saved fit. + +The first time, the function only saved the current move and fitness. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitnes linked to the move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE the first time and if \_\-\_\-fit $>$ best\_\-fit, else FALSE. \end{Desc} + + +Definition at line 52 of file mo\-Impr\-Best\-Fit\-Aspir\-Crit.h. + +References mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$::best\_\-fit, and mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$::first\_\-time. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Impr\-Best\-Fit\-Aspir\-Crit.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_it_rand_next_move.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_it_rand_next_move.eps new file mode 100644 index 000000000..bc4ea56dc --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_it_rand_next_move.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 245.399 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.0375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moItRandNextMove< M >) cw +(moNextMove< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moItRandNextMove< M >) 0 0 box + (moNextMove< M >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_it_rand_next_move.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_it_rand_next_move.tex new file mode 100644 index 000000000..ff90d301e --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_it_rand_next_move.tex @@ -0,0 +1,96 @@ +\section{mo\-It\-Rand\-Next\-Move$<$ M $>$ Class Template Reference} +\label{classmo_it_rand_next_move}\index{moItRandNextMove@{moItRandNextMove}} +One of the possible \doxyref{mo\-Next\-Move}{p.}{classmo_next_move}. + + +{\tt \#include $<$mo\-It\-Rand\-Next\-Move.h$>$} + +Inheritance diagram for mo\-It\-Rand\-Next\-Move$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_it_rand_next_move} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-It\-Rand\-Next\-Move} ({\bf mo\-Rand\-Move}$<$ M $>$ \&\_\-\_\-rand\_\-move, unsigned \_\-\_\-max\_\-iter) +\begin{CompactList}\small\item\em The constructor. \item\end{CompactList}\item +bool {\bf operator()} (M \&\_\-\_\-move, const {\bf EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Generation of a new move. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType {\bf EOT}\label{classmo_it_rand_next_move_ee666007fc494bf4a5f0cd065e5671cf} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +{\bf mo\-Rand\-Move}$<$ M $>$ \& {\bf rand\_\-move}\label{classmo_it_rand_next_move_ef9410ec5e7dfa7f002e05967931c459} + +\begin{CompactList}\small\item\em A move generator (generally randomly). \item\end{CompactList}\item +unsigned {\bf max\_\-iter}\label{classmo_it_rand_next_move_3c476f7cc089b171493c52965f920542} + +\begin{CompactList}\small\item\em Iteration maximum number. \item\end{CompactList}\item +unsigned {\bf num\_\-iter}\label{classmo_it_rand_next_move_c3551d7910cf351d63f0f3427fc18504} + +\begin{CompactList}\small\item\em Iteration current number. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-It\-Rand\-Next\-Move$<$ M $>$} + +One of the possible \doxyref{mo\-Next\-Move}{p.}{classmo_next_move}. + +This class is a move (\doxyref{mo\-Move}{p.}{classmo_move}) generator with a bound for the maximum number of iterations. + + + +Definition at line 22 of file mo\-It\-Rand\-Next\-Move.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moItRandNextMove@{mo\-It\-Rand\-Next\-Move}!moItRandNextMove@{moItRandNextMove}} +\index{moItRandNextMove@{moItRandNextMove}!moItRandNextMove@{mo\-It\-Rand\-Next\-Move}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-It\-Rand\-Next\-Move}$<$ M $>$::{\bf mo\-It\-Rand\-Next\-Move} ({\bf mo\-Rand\-Move}$<$ M $>$ \& {\em \_\-\_\-rand\_\-move}, unsigned {\em \_\-\_\-max\_\-iter})\hspace{0.3cm}{\tt [inline]}}\label{classmo_it_rand_next_move_95ed13e1178f4e44cab7184b040b83d7} + + +The constructor. + +Parameters only for initialising the attributes. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-rand\_\-move}]the random move generator. \item[{\em \_\-\_\-max\_\-iter}]the iteration maximum number. \end{description} +\end{Desc} + + +Definition at line 37 of file mo\-It\-Rand\-Next\-Move.h. + +\subsection{Member Function Documentation} +\index{moItRandNextMove@{mo\-It\-Rand\-Next\-Move}!operator()@{operator()}} +\index{operator()@{operator()}!moItRandNextMove@{mo\-It\-Rand\-Next\-Move}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-It\-Rand\-Next\-Move}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_it_rand_next_move_92a2fbbc02a20853b9a309e99018a102} + + +Generation of a new move. + +If the maximum number is not already reached, the current move is forgotten and remplaced by another one. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]the current move. \item[{\em \_\-\_\-sol}]the current solution. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]FALSE if the maximum number of iteration is reached, else TRUE. \end{Desc} + + +Definition at line 52 of file mo\-It\-Rand\-Next\-Move.h. + +References mo\-It\-Rand\-Next\-Move$<$ M $>$::max\_\-iter, mo\-It\-Rand\-Next\-Move$<$ M $>$::num\_\-iter, and mo\-It\-Rand\-Next\-Move$<$ M $>$::rand\_\-move. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-It\-Rand\-Next\-Move.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_l_s_check_point.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_l_s_check_point.tex new file mode 100644 index 000000000..44cc5d177 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_l_s_check_point.tex @@ -0,0 +1,73 @@ +\section{mo\-LSCheck\-Point$<$ M $>$ Class Template Reference} +\label{classmo_l_s_check_point}\index{moLSCheckPoint@{moLSCheckPoint}} +Class which allows a checkpointing system. + + +{\tt \#include $<$mo\-LSCheck\-Point.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void {\bf operator()} (const M \&\_\-\_\-move, const typename M::EOType \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Function which launches the checkpointing. \item\end{CompactList}\item +void {\bf add} (eo\-BF$<$ const M \&, const typename M::EOType \&, void $>$ \&\_\-\_\-f) +\begin{CompactList}\small\item\em Procedure which add a new function to the function vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +std::vector$<$ eo\-BF$<$ const M \&, const typename M::EOType \&, void $>$ $\ast$ $>$ {\bf func}\label{classmo_l_s_check_point_ff2a31ee5689a804bd9a572c51a36ca4} + +\begin{CompactList}\small\item\em vector of function \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-LSCheck\-Point$<$ M $>$} + +Class which allows a checkpointing system. + +Thanks to this class, at each iteration, additionnal function can be used (and not only one). + + + +Definition at line 21 of file mo\-LSCheck\-Point.h. + +\subsection{Member Function Documentation} +\index{moLSCheckPoint@{mo\-LSCheck\-Point}!operator()@{operator()}} +\index{operator()@{operator()}!moLSCheckPoint@{mo\-LSCheck\-Point}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-LSCheck\-Point}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const typename M::EOType \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_l_s_check_point_2f9c1250279e3f49ec77a66c10029f1e} + + +Function which launches the checkpointing. + +Each saved function is used on the current move and the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-sol}]a solution. \end{description} +\end{Desc} + + +Definition at line 34 of file mo\-LSCheck\-Point.h. + +References mo\-LSCheck\-Point$<$ M $>$::func.\index{moLSCheckPoint@{mo\-LSCheck\-Point}!add@{add}} +\index{add@{add}!moLSCheckPoint@{mo\-LSCheck\-Point}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-LSCheck\-Point}$<$ M $>$::add (eo\-BF$<$ const M \&, const typename M::EOType \&, void $>$ \& {\em \_\-\_\-f})\hspace{0.3cm}{\tt [inline]}}\label{classmo_l_s_check_point_66be5fe2944bcdd752f1e58105e969a6} + + +Procedure which add a new function to the function vector. + +The new function is added at the end of the vector. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-f}]a new function to add. \end{description} +\end{Desc} + + +Definition at line 49 of file mo\-LSCheck\-Point.h. + +References mo\-LSCheck\-Point$<$ M $>$::func. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-LSCheck\-Point.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move.tex new file mode 100644 index 000000000..0460f6faf --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move.tex @@ -0,0 +1,29 @@ +\section{mo\-Move$<$ EOT $>$ Class Template Reference} +\label{classmo_move}\index{moMove@{moMove}} +Definition of a move. + + +{\tt \#include $<$mo\-Move.h$>$} + +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef EOT {\bf EOType}\label{classmo_move_7fb853a91ba1319530529e515380bbba} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class mo\-Move$<$ EOT $>$} + +Definition of a move. + +A move transforms a solution to another close solution. It describes how a solution can be modified to another one. + + + +Definition at line 23 of file mo\-Move.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_expl.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_expl.eps new file mode 100644 index 000000000..708dd0b50 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_expl.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 173.41 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.88333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMoveExpl< M >) cw +(moMoveLoopExpl< M >) cw +(moHCMoveLoopExpl< M >) cw +(moTSMoveLoopExpl< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMoveExpl< M >) 0.5 2 box + (moMoveLoopExpl< M >) 0.5 1 box + (moHCMoveLoopExpl< M >) 0 0 box + (moTSMoveLoopExpl< M >) 1 0 box + +% ----- relations ----- + +solid +1 0.5 1.25 out +solid +0 0.5 1.75 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_expl.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_expl.tex new file mode 100644 index 000000000..614132a6c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_expl.tex @@ -0,0 +1,29 @@ +\section{mo\-Move\-Expl$<$ M $>$ Class Template Reference} +\label{classmo_move_expl}\index{moMoveExpl@{moMoveExpl}} +Description of a move (\doxyref{mo\-Move}{p.}{classmo_move}) explorer. + + +{\tt \#include $<$mo\-Move\-Expl.h$>$} + +Inheritance diagram for mo\-Move\-Expl$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_move_expl} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Expl$<$ M $>$} + +Description of a move (\doxyref{mo\-Move}{p.}{classmo_move}) explorer. + +Only a description...See \doxyref{mo\-Move\-Loop\-Expl}{p.}{classmo_move_loop_expl}. + + + +Definition at line 21 of file mo\-Move\-Expl.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Expl.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_incr_eval.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_incr_eval.tex new file mode 100644 index 000000000..6b4bd7289 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_incr_eval.tex @@ -0,0 +1,23 @@ +\section{mo\-Move\-Incr\-Eval$<$ M $>$ Class Template Reference} +\label{classmo_move_incr_eval}\index{moMoveIncrEval@{moMoveIncrEval}} +(generally) Efficient evaluation function based a move and a solution. + + +{\tt \#include $<$mo\-Move\-Incr\-Eval.h$>$} + + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Incr\-Eval$<$ M $>$} + +(generally) Efficient evaluation function based a move and a solution. + +From a move and a solution, it computes a new fitness that could be associated to the solution if this one is updated. + + + +Definition at line 24 of file mo\-Move\-Incr\-Eval.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Incr\-Eval.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_init.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_init.tex new file mode 100644 index 000000000..556b323ee --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_init.tex @@ -0,0 +1,23 @@ +\section{mo\-Move\-Init$<$ M $>$ Class Template Reference} +\label{classmo_move_init}\index{moMoveInit@{moMoveInit}} +Move (\doxyref{mo\-Move}{p.}{classmo_move}) initializer. + + +{\tt \#include $<$mo\-Move\-Init.h$>$} + + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Init$<$ M $>$} + +Move (\doxyref{mo\-Move}{p.}{classmo_move}) initializer. + +Class which allows to initiase a move. Only a description... An object that herits from this class needs to be designed to be used. + + + +Definition at line 22 of file mo\-Move\-Init.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Init.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_loop_expl.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_loop_expl.eps new file mode 100644 index 000000000..76326be37 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_loop_expl.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 173.41 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.88333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMoveLoopExpl< M >) cw +(moMoveExpl< M >) cw +(moHCMoveLoopExpl< M >) cw +(moTSMoveLoopExpl< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMoveLoopExpl< M >) 0.5 1 box + (moMoveExpl< M >) 0.5 2 box + (moHCMoveLoopExpl< M >) 0 0 box + (moTSMoveLoopExpl< M >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_loop_expl.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_loop_expl.tex new file mode 100644 index 000000000..8bbfd3542 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_loop_expl.tex @@ -0,0 +1,29 @@ +\section{mo\-Move\-Loop\-Expl$<$ M $>$ Class Template Reference} +\label{classmo_move_loop_expl}\index{moMoveLoopExpl@{moMoveLoopExpl}} +Class which describes an iterative explorer. + + +{\tt \#include $<$mo\-Move\-Loop\-Expl.h$>$} + +Inheritance diagram for mo\-Move\-Loop\-Expl$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_move_loop_expl} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Loop\-Expl$<$ M $>$} + +Class which describes an iterative explorer. + +Only a description... \doxyref{mo\-HCMove\-Loop\-Expl}{p.}{classmo_h_c_move_loop_expl} and \doxyref{mo\-TSMove\-Loop\-Expl}{p.}{classmo_t_s_move_loop_expl} are exemples of class that are a \doxyref{mo\-Move\-Loop\-Expl}{p.}{classmo_move_loop_expl}. + + + +Definition at line 21 of file mo\-Move\-Loop\-Expl.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Loop\-Expl.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_select.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_select.eps new file mode 100644 index 000000000..86a37c002 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_select.eps @@ -0,0 +1,207 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 83.8574 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 5.9625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMoveSelect< M >) cw +(moBestImprSelect< M >) cw +(moFirstImprSelect< M >) cw +(moRandImprSelect< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMoveSelect< M >) 1 1 box + (moBestImprSelect< M >) 0 0 box + (moFirstImprSelect< M >) 1 0 box + (moRandImprSelect< M >) 2 0 box + +% ----- relations ----- + +solid +1 1 0.25 out +solid +0 2 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_select.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_select.tex new file mode 100644 index 000000000..390b93989 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_move_select.tex @@ -0,0 +1,77 @@ +\section{mo\-Move\-Select$<$ M $>$ Class Template Reference} +\label{classmo_move_select}\index{moMoveSelect@{moMoveSelect}} +Class that describes a move selector (\doxyref{mo\-Move}{p.}{classmo_move}). + + +{\tt \#include $<$mo\-Move\-Select.h$>$} + +Inheritance diagram for mo\-Move\-Select$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_move_select} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness {\bf Fitness}\label{classmo_move_select_8148ccc0e6fbd209c3fe6829559895c8} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit)=0 +\begin{CompactList}\small\item\em Procedure which initialises all that the move selector needs including the initial fitness. \item\end{CompactList}\item +virtual bool {\bf update} (const M \&\_\-\_\-move, const {\bf Fitness} \&\_\-\_\-fit)=0 +\begin{CompactList}\small\item\em Function which updates the best solutions. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Select$<$ M $>$} + +Class that describes a move selector (\doxyref{mo\-Move}{p.}{classmo_move}). + +It iteratively considers some moves (\doxyref{mo\-Move}{p.}{classmo_move}) and their associated fitnesses. The best move is so regularly updated. At any time, it could be accessed. + + + +Definition at line 32 of file mo\-Move\-Select.h. + +\subsection{Member Function Documentation} +\index{moMoveSelect@{mo\-Move\-Select}!init@{init}} +\index{init@{init}!moMoveSelect@{mo\-Move\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf mo\-Move\-Select}$<$ M $>$::init (const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e} + + +Procedure which initialises all that the move selector needs including the initial fitness. + +In order to know the fitness of the solution, for which the neighborhood will be soon explored + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-fit}]the current fitness. \end{description} +\end{Desc} + + +Implemented in {\bf mo\-Best\-Impr\-Select$<$ M $>$} \doxyref{}{p.}{classmo_best_impr_select_2d2abf9aa17dc77cbb4f41810ab7b956}, {\bf mo\-First\-Impr\-Select$<$ M $>$} \doxyref{}{p.}{classmo_first_impr_select_4c5ce18ede46247a439c68f6954a4055}, and {\bf mo\-Rand\-Impr\-Select$<$ M $>$} \doxyref{}{p.}{classmo_rand_impr_select_a19726a1509cff874801615d63a3b5d9}.\index{moMoveSelect@{mo\-Move\-Select}!update@{update}} +\index{update@{update}!moMoveSelect@{mo\-Move\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual bool {\bf mo\-Move\-Select}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_move_select_7c157b6e64fd417acf6e900059204eb1} + + +Function which updates the best solutions. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a new move. \item[{\em \_\-\_\-fit}]a fitness linked to the new move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]a boolean that expresses the need to resume the exploration. \end{Desc} + + +Implemented in {\bf mo\-Best\-Impr\-Select$<$ M $>$} \doxyref{}{p.}{classmo_best_impr_select_d10e3e6f8a0277731e95ef506d064d6d}, and {\bf mo\-Rand\-Impr\-Select$<$ M $>$} \doxyref{}{p.}{classmo_rand_impr_select_60ae5548560caee7e28d5ed2446186c9}. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Select.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_next_move.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_next_move.eps new file mode 100644 index 000000000..d9586a593 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_next_move.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 245.399 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.0375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moNextMove< M >) cw +(moItRandNextMove< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moNextMove< M >) 0 1 box + (moItRandNextMove< M >) 0 0 box + +% ----- relations ----- + +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_next_move.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_next_move.tex new file mode 100644 index 000000000..e51cd5566 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_next_move.tex @@ -0,0 +1,29 @@ +\section{mo\-Next\-Move$<$ M $>$ Class Template Reference} +\label{classmo_next_move}\index{moNextMove@{moNextMove}} +Class which allows to generate a new move (\doxyref{mo\-Move}{p.}{classmo_move}). + + +{\tt \#include $<$mo\-Next\-Move.h$>$} + +Inheritance diagram for mo\-Next\-Move$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_next_move} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Next\-Move$<$ M $>$} + +Class which allows to generate a new move (\doxyref{mo\-Move}{p.}{classmo_move}). + +Useful for the explorer (for \doxyref{mo\-TS}{p.}{classmo_t_s} or \doxyref{mo\-HC}{p.}{classmo_h_c}). Does nothing... An object that herits from this class needs to be designed for being used. + + + +Definition at line 22 of file mo\-Next\-Move.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Next\-Move.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_no_aspir_crit.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_no_aspir_crit.eps new file mode 100644 index 000000000..4a1de4c86 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_no_aspir_crit.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 291.971 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.7125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moNoAspirCrit< M >) cw +(moAspirCrit< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moNoAspirCrit< M >) 0 0 box + (moAspirCrit< M >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_no_aspir_crit.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_no_aspir_crit.tex new file mode 100644 index 000000000..2c5a3b5e1 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_no_aspir_crit.tex @@ -0,0 +1,68 @@ +\section{mo\-No\-Aspir\-Crit$<$ M $>$ Class Template Reference} +\label{classmo_no_aspir_crit}\index{moNoAspirCrit@{moNoAspirCrit}} +One of the possible aspiration criterion (\doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}). + + +{\tt \#include $<$mo\-No\-Aspir\-Crit.h$>$} + +Inheritance diagram for mo\-No\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_no_aspir_crit} +\end{center} +\end{figure} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +bool {\bf operator()} (const M \&\_\-\_\-move, const typename M::EOType::Fitness \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Function which describes the aspiration criterion behaviour. \item\end{CompactList}\item +void {\bf init} () +\begin{CompactList}\small\item\em Procedure which initialises all that needs a \doxyref{mo\-No\-Aspir\-Crit}{p.}{classmo_no_aspir_crit}. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-No\-Aspir\-Crit$<$ M $>$} + +One of the possible aspiration criterion (\doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}). + +The simplest : never satisfied. + + + +Definition at line 21 of file mo\-No\-Aspir\-Crit.h. + +\subsection{Member Function Documentation} +\index{moNoAspirCrit@{mo\-No\-Aspir\-Crit}!operator()@{operator()}} +\index{operator()@{operator()}!moNoAspirCrit@{mo\-No\-Aspir\-Crit}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-No\-Aspir\-Crit}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const typename M::EOType::Fitness \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, private]}}\label{classmo_no_aspir_crit_8a7180a8d5c25bfb6727d0b59551b0f8} + + +Function which describes the aspiration criterion behaviour. + +Does nothing. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-sol}]a fitness. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]FALSE. \end{Desc} + + +Definition at line 32 of file mo\-No\-Aspir\-Crit.h.\index{moNoAspirCrit@{mo\-No\-Aspir\-Crit}!init@{init}} +\index{init@{init}!moNoAspirCrit@{mo\-No\-Aspir\-Crit}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-No\-Aspir\-Crit}$<$ M $>$::init ()\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmo_no_aspir_crit_f3a286fc4c2d36bd390ba9a3074f3037} + + +Procedure which initialises all that needs a \doxyref{mo\-No\-Aspir\-Crit}{p.}{classmo_no_aspir_crit}. + +Nothing... + +Implements {\bf mo\-Aspir\-Crit$<$ M $>$} \doxyref{}{p.}{classmo_aspir_crit_a8ce84510a5ec7c9078381e542c6d140}. + +Definition at line 43 of file mo\-No\-Aspir\-Crit.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-No\-Aspir\-Crit.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_impr_select.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_impr_select.eps new file mode 100644 index 000000000..74d2fc0f6 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_impr_select.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 251.572 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.9875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moRandImprSelect< M >) cw +(moMoveSelect< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moRandImprSelect< M >) 0 0 box + (moMoveSelect< M >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_impr_select.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_impr_select.tex new file mode 100644 index 000000000..feaa35f47 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_impr_select.tex @@ -0,0 +1,124 @@ +\section{mo\-Rand\-Impr\-Select$<$ M $>$ Class Template Reference} +\label{classmo_rand_impr_select}\index{moRandImprSelect@{moRandImprSelect}} +One of the possible \doxyref{mo\-Move}{p.}{classmo_move} selector (\doxyref{mo\-Move\-Select}{p.}{classmo_move_select}). + + +{\tt \#include $<$mo\-Rand\-Impr\-Select.h$>$} + +Inheritance diagram for mo\-Rand\-Impr\-Select$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_rand_impr_select} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness {\bf Fitness}\label{classmo_rand_impr_select_3bff2fdb963297430543c82ffb567a5c} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void {\bf init} (const {\bf Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em Procedure which all that needs a \doxyref{mo\-Rand\-Impr\-Select}{p.}{classmo_rand_impr_select}. \item\end{CompactList}\item +bool {\bf update} (const M \&\_\-\_\-move, const {\bf Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em Function that updates the fitness and move vectors. \item\end{CompactList}\item +void {\bf operator()} (M \&\_\-\_\-move, {\bf Fitness} \&\_\-\_\-fit) throw (Empty\-Selection) +\begin{CompactList}\small\item\em The move selection. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +{\bf Fitness} {\bf init\_\-fit}\label{classmo_rand_impr_select_d153c277a0a2ea95ac484210d445b40e} + +\begin{CompactList}\small\item\em Fitness of the current solution. \item\end{CompactList}\item +std::vector$<$ {\bf Fitness} $>$ {\bf vect\_\-better\_\-fit}\label{classmo_rand_impr_select_05c7c3b858e8a25632f2f5c86b0c97a3} + +\begin{CompactList}\small\item\em Candidate fitnesse vector. \item\end{CompactList}\item +std::vector$<$ M $>$ {\bf vect\_\-better\_\-moves}\label{classmo_rand_impr_select_2ace12bd179144fa71d56324694201f5} + +\begin{CompactList}\small\item\em Candidate move vector. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Rand\-Impr\-Select$<$ M $>$} + +One of the possible \doxyref{mo\-Move}{p.}{classmo_move} selector (\doxyref{mo\-Move\-Select}{p.}{classmo_move_select}). + +All the neighbors are considered. One of them that enables an improvment of the objective function is choosen. + + + +Definition at line 25 of file mo\-Rand\-Impr\-Select.h. + +\subsection{Member Function Documentation} +\index{moRandImprSelect@{mo\-Rand\-Impr\-Select}!init@{init}} +\index{init@{init}!moRandImprSelect@{mo\-Rand\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-Rand\-Impr\-Select}$<$ M $>$::init (const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_a19726a1509cff874801615d63a3b5d9} + + +Procedure which all that needs a \doxyref{mo\-Rand\-Impr\-Select}{p.}{classmo_rand_impr_select}. + +Give a value to the initialise fitness. Clean the move and fitness vectors. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-fit}]the current best fitness \end{description} +\end{Desc} + + +Implements {\bf mo\-Move\-Select$<$ M $>$} \doxyref{}{p.}{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e}. + +Definition at line 40 of file mo\-Rand\-Impr\-Select.h. + +References mo\-Rand\-Impr\-Select$<$ M $>$::init\_\-fit, mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves.\index{moRandImprSelect@{mo\-Rand\-Impr\-Select}!update@{update}} +\index{update@{update}!moRandImprSelect@{mo\-Rand\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-Rand\-Impr\-Select}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const {\bf Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_60ae5548560caee7e28d5ed2446186c9} + + +Function that updates the fitness and move vectors. + +if a move give a better fitness than the initial fitness, it is saved and the fitness too. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a new move. \item[{\em \_\-\_\-fit}]a new fitness associated to the new move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE. \end{Desc} + + +Implements {\bf mo\-Move\-Select$<$ M $>$} \doxyref{}{p.}{classmo_move_select_7c157b6e64fd417acf6e900059204eb1}. + +Definition at line 56 of file mo\-Rand\-Impr\-Select.h. + +References mo\-Rand\-Impr\-Select$<$ M $>$::init\_\-fit, mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves.\index{moRandImprSelect@{mo\-Rand\-Impr\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moRandImprSelect@{mo\-Rand\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-Rand\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, {\bf Fitness} \& {\em \_\-\_\-fit}) throw ({\bf Empty\-Selection})\hspace{0.3cm}{\tt [inline]}}\label{classmo_rand_impr_select_5ee57f77a450c0a9ce50bfccf3ad2a55} + + +The move selection. + +One the saved move is randomly chosen. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]the reference of the move that can be initialised by the function. \item[{\em \_\-\_\-fit}]the reference of the fitness that can be initialised by the function. \end{description} +\end{Desc} +\begin{Desc} +\item[Exceptions:] +\begin{description} +\item[{\em \doxyref{Empty\-Selection}{p.}{class_empty_selection}}]If no move which improves the current fitness are found. \end{description} +\end{Desc} + + +Definition at line 77 of file mo\-Rand\-Impr\-Select.h. + +References mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Rand\-Impr\-Select.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_move.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_move.tex new file mode 100644 index 000000000..ff3370a8d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_rand_move.tex @@ -0,0 +1,23 @@ +\section{mo\-Rand\-Move$<$ M $>$ Class Template Reference} +\label{classmo_rand_move}\index{moRandMove@{moRandMove}} +Random move generator. + + +{\tt \#include $<$mo\-Rand\-Move.h$>$} + + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Rand\-Move$<$ M $>$} + +Random move generator. + +Only a description... An object that herits from this class needs to be designed in order to use a \doxyref{mo\-SA}{p.}{classmo_s_a}. + + + +Definition at line 21 of file mo\-Rand\-Move.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Rand\-Move.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_s_a.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_s_a.eps new file mode 100644 index 000000000..90945c761 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_s_a.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 268.456 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.8625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moSA< M >) cw +(moAlgo< M::EOType >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moSA< M >) 0 0 box + (moAlgo< M::EOType >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_s_a.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_s_a.tex new file mode 100644 index 000000000..0a99f4db8 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_s_a.tex @@ -0,0 +1,108 @@ +\section{mo\-SA$<$ M $>$ Class Template Reference} +\label{classmo_s_a}\index{moSA@{moSA}} +Simulated Annealing (SA). + + +{\tt \#include $<$mo\-SA.h$>$} + +Inheritance diagram for mo\-SA$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_s_a} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-SA} ({\bf mo\-Rand\-Move}$<$ M $>$ \&\_\-\_\-move\_\-rand, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, double \_\-\_\-init\_\-temp, {\bf mo\-Cool\-Sched} \&\_\-\_\-cool\_\-sched, eo\-Eval\-Func$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em SA constructor. \item\end{CompactList}\item +bool {\bf operator()} ({\bf EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em function that launches the SA algorithm. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType {\bf EOT}\label{classmo_s_a_d5d64a8797bdedc7b3af7893aded0bd5} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef EOT::Fitness {\bf Fitness}\label{classmo_s_a_97f1a40d5ab5a0b3f878d0347b34804b} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +{\bf mo\-Rand\-Move}$<$ M $>$ \& {\bf move\_\-rand}\label{classmo_s_a_71c49935b63a202d25888a5f86121fec} + +\begin{CompactList}\small\item\em A move generator (generally randomly). \item\end{CompactList}\item +{\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\bf incr\_\-eval}\label{classmo_s_a_4c3be32e9832e465b24e6d33559356bc} + +\begin{CompactList}\small\item\em A (generally) efficient evaluation function. \item\end{CompactList}\item +{\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\bf cont}\label{classmo_s_a_54484c8a514866ea496e0058c2e09716} + +\begin{CompactList}\small\item\em Stopping criterion before temperature update. \item\end{CompactList}\item +double {\bf init\_\-temp}\label{classmo_s_a_f1af7636b52aa5f6b381f8187b667bd4} + +\begin{CompactList}\small\item\em Initial temperature. \item\end{CompactList}\item +{\bf mo\-Cool\-Sched} \& {\bf cool\_\-sched}\label{classmo_s_a_c7aaf7424aa1b9f889d2ba9c959e5a1d} + +\begin{CompactList}\small\item\em The cooling schedule. \item\end{CompactList}\item +eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_s_a_bcd6a940046f23dd741444c0b85edf2c} + +\begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-SA$<$ M $>$} + +Simulated Annealing (SA). + +Class that describes a Simulated Annealing algorithm. + + + +Definition at line 32 of file mo\-SA.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moSA@{mo\-SA}!moSA@{moSA}} +\index{moSA@{moSA}!moSA@{mo\-SA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-SA}$<$ M $>$::{\bf mo\-SA} ({\bf mo\-Rand\-Move}$<$ M $>$ \& {\em \_\-\_\-move\_\-rand}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, double {\em \_\-\_\-init\_\-temp}, {\bf mo\-Cool\-Sched} \& {\em \_\-\_\-cool\_\-sched}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_s_a_ef9ffb0d95c599e0a06c78db5f2f4b12} + + +SA constructor. + +All the boxes used by a SA need to be given. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-rand}]a move generator (generally randomly). \item[{\em \_\-\_\-incr\_\-eval}]a (generaly) efficient evaluation function \item[{\em \_\-\_\-cont}]a stopping criterion. \item[{\em \_\-\_\-init\_\-temp}]the initial temperature. \item[{\em \_\-\_\-cool\_\-sched}]a cooling schedule, describes how the temperature is modified. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description} +\end{Desc} + + +Definition at line 60 of file mo\-SA.h. + +\subsection{Member Function Documentation} +\index{moSA@{mo\-SA}!operator()@{operator()}} +\index{operator()@{operator()}!moSA@{mo\-SA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-SA}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_s_a_0e4c54b57bc13fcbd4763883b8f719e5} + + +function that launches the SA algorithm. + +As a \doxyref{mo\-TS}{p.}{classmo_t_s} or a \doxyref{mo\-HC}{p.}{classmo_h_c}, the SA can be used for HYBRIDATION in an evolutionary algorithm. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]a solution to improve. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE. \end{Desc} + + +Definition at line 82 of file mo\-SA.h. + +References mo\-SA$<$ M $>$::cont, mo\-SA$<$ M $>$::cool\_\-sched, mo\-SA$<$ M $>$::full\_\-eval, mo\-SA$<$ M $>$::incr\_\-eval, mo\-SA$<$ M $>$::init\_\-temp, and mo\-SA$<$ M $>$::move\_\-rand. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-SA.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_sol_continue.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_sol_continue.eps new file mode 100644 index 000000000..08a227b1a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_sol_continue.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 227.273 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moSolContinue< EOT >) cw +(moGenSolContinue< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moSolContinue< EOT >) 0 1 box + (moGenSolContinue< EOT >) 0 0 box + +% ----- relations ----- + +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_sol_continue.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_sol_continue.tex new file mode 100644 index 000000000..9039a615f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_sol_continue.tex @@ -0,0 +1,46 @@ +\section{mo\-Sol\-Continue$<$ EOT $>$ Class Template Reference} +\label{classmo_sol_continue}\index{moSolContinue@{moSolContinue}} +Class that describes a stop criterion for a solution-based heuristic. + + +{\tt \#include $<$mo\-Sol\-Continue.h$>$} + +Inheritance diagram for mo\-Sol\-Continue$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_sol_continue} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void {\bf init} ()=0 +\begin{CompactList}\small\item\em Procedure which initialises all that the stop criterion needs. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class mo\-Sol\-Continue$<$ EOT $>$} + +Class that describes a stop criterion for a solution-based heuristic. + +It allows to add an initialisation procedure to an object that is a unary function (eo\-UF). + + + +Definition at line 22 of file mo\-Sol\-Continue.h. + +\subsection{Member Function Documentation} +\index{moSolContinue@{mo\-Sol\-Continue}!init@{init}} +\index{init@{init}!moSolContinue@{mo\-Sol\-Continue}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ virtual void {\bf mo\-Sol\-Continue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7} + + +Procedure which initialises all that the stop criterion needs. + +Generally, it allocates some data structures or initialises some counters. + +Implemented in {\bf mo\-Gen\-Sol\-Continue$<$ EOT $>$} \doxyref{}{p.}{classmo_gen_sol_continue_6c5db8182157584b56507cc9075602d4}. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Sol\-Continue.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s.eps new file mode 100644 index 000000000..7f23b6aef --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 268.456 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.8625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moTS< M >) cw +(moAlgo< M::EOType >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moTS< M >) 0 0 box + (moAlgo< M::EOType >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s.tex new file mode 100644 index 000000000..8cf3ec796 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s.tex @@ -0,0 +1,130 @@ +\section{mo\-TS$<$ M $>$ Class Template Reference} +\label{classmo_t_s}\index{moTS@{moTS}} +Tabu Search (TS). + + +{\tt \#include $<$mo\-TS.h$>$} + +Inheritance diagram for mo\-TS$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmo_t_s} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-TS} ({\bf mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Tabu\-List}$<$ M $>$ \&\_\-\_\-tabu\_\-list, {\bf mo\-Aspir\-Crit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, eo\-Eval\-Func$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em Constructor of a \doxyref{mo\-TS}{p.}{classmo_t_s} specifying all the boxes. \item\end{CompactList}\item +{\bf mo\-TS} ({\bf mo\-Move\-Expl}$<$ M $>$ \&\_\-\_\-move\_\-expl, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \&\_\-\_\-cont, eo\-Eval\-Func$<$ {\bf EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em Constructor with less parameters. \item\end{CompactList}\item +bool {\bf operator()} ({\bf EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Function which launchs the Tabu Search. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType {\bf EOT}\label{classmo_t_s_90d19d468c12ab5bd796948ce1ce79b1} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef EOT::Fitness {\bf Fitness}\label{classmo_t_s_aa0eefbb17111422e495d1255f876fca} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +{\bf mo\-Move\-Expl}$<$ M $>$ \& {\bf move\_\-expl}\label{classmo_t_s_06914ddc90ca96e9158c8dbe182a7865} + +\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item +{\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\bf cont}\label{classmo_t_s_969371cd2202f3d29cbb426f57ac7d3a} + +\begin{CompactList}\small\item\em Stop criterion. \item\end{CompactList}\item +eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\bf full\_\-eval}\label{classmo_t_s_fb67eddae5d0bfca4ed881995523231e} + +\begin{CompactList}\small\item\em Full evaluation function. \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Private Attributes} +\begin{CompactItemize} +\item +static bool {\bf first\_\-time}\label{classmo_t_s_564bc1969548ccbd9bb7e76f92898de0} + +\begin{CompactList}\small\item\em Boolean allowing to initialise the ptread\_\-mutex\_\-t in the constructor. \item\end{CompactList}\item +static pthread\_\-mutex\_\-t {\bf mutex}\label{classmo_t_s_688f9ba42eb33cae6431f4f4eb65b9e9} + +\begin{CompactList}\small\item\em The lock. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-TS$<$ M $>$} + +Tabu Search (TS). + +Generic algorithm that describes a tabu search. + + + +Definition at line 30 of file mo\-TS.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moTS@{mo\-TS}!moTS@{moTS}} +\index{moTS@{moTS}!moTS@{mo\-TS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-TS}$<$ M $>$::{\bf mo\-TS} ({\bf mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Tabu\-List}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, {\bf mo\-Aspir\-Crit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_2be23f4524733ee6f37b71310d76407e} + + +Constructor of a \doxyref{mo\-TS}{p.}{classmo_t_s} specifying all the boxes. + +In this constructor, a \doxyref{mo\-TSMove\-Loop\-Expl}{p.}{classmo_t_s_move_loop_expl} is instanciated. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-init}]move initialisation \item[{\em \_\-\_\-next\_\-move}]neighborhood explorer \item[{\em \_\-\_\-incr\_\-eval}]efficient evaluation \item[{\em \_\-\_\-tabu\_\-list}]tabu list \item[{\em \_\-\_\-aspir\_\-crit}]aspiration criterion \item[{\em \_\-\_\-cont}]stop criterion \item[{\em \_\-\_\-full\_\-eval}]full evaluation function \end{description} +\end{Desc} + + +Definition at line 59 of file mo\-TS.h. + +References mo\-TS$<$ M $>$::first\_\-time, and mo\-TS$<$ M $>$::mutex.\index{moTS@{mo\-TS}!moTS@{moTS}} +\index{moTS@{moTS}!moTS@{mo\-TS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-TS}$<$ M $>$::{\bf mo\-TS} ({\bf mo\-Move\-Expl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, {\bf mo\-Sol\-Continue}$<$ {\bf EOT} $>$ \& {\em \_\-\_\-cont}, eo\-Eval\-Func$<$ {\bf EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_508e675c4232cf2ca06dded931c90bab} + + +Constructor with less parameters. + +The explorer is given in the parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-expl}]the explorer (generally different that a \doxyref{mo\-TSMove\-Loop\-Expl}{p.}{classmo_t_s_move_loop_expl}) \item[{\em \_\-\_\-cont}]stop criterion \item[{\em \_\-\_\-full\_\-eval}]full evaluation function \end{description} +\end{Desc} + + +Definition at line 81 of file mo\-TS.h. + +References mo\-TS$<$ M $>$::first\_\-time, and mo\-TS$<$ M $>$::mutex. + +\subsection{Member Function Documentation} +\index{moTS@{mo\-TS}!operator()@{operator()}} +\index{operator()@{operator()}!moTS@{mo\-TS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool {\bf mo\-TS}$<$ M $>$::operator() ({\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_94d25a76fe1bc9ef0bbd0358ff55aceb} + + +Function which launchs the Tabu Search. + +Algorithm of the tabu search. As a \doxyref{mo\-SA}{p.}{classmo_s_a} or a \doxyref{mo\-HC}{p.}{classmo_h_c}, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread\_\-mutex\_\-t) is closed during the algorithm. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]a solution to improve. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE. \end{Desc} + + +Definition at line 104 of file mo\-TS.h. + +References mo\-TS$<$ M $>$::cont, mo\-TS$<$ M $>$::full\_\-eval, mo\-TS$<$ M $>$::move\_\-expl, and mo\-TS$<$ M $>$::mutex. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-TS.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s_move_loop_expl.eps b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s_move_loop_expl.eps new file mode 100644 index 000000000..d8324527a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s_move_loop_expl.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 352.941 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.41667 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moTSMoveLoopExpl< M >) cw +(moMoveLoopExpl< M >) cw +(moMoveExpl< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moTSMoveLoopExpl< M >) 0 0 box + (moMoveLoopExpl< M >) 0 1 box + (moMoveExpl< M >) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s_move_loop_expl.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s_move_loop_expl.tex new file mode 100644 index 000000000..5f7327560 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_t_s_move_loop_expl.tex @@ -0,0 +1,106 @@ +\section{mo\-TSMove\-Loop\-Expl$<$ M $>$ Class Template Reference} +\label{classmo_t_s_move_loop_expl}\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}} +Explorer for a Tabu Search algorithm. + + +{\tt \#include $<$mo\-TSMove\-Loop\-Expl.h$>$} + +Inheritance diagram for mo\-TSMove\-Loop\-Expl$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_t_s_move_loop_expl} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +{\bf mo\-TSMove\-Loop\-Expl} ({\bf mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, {\bf mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, {\bf mo\-Tabu\-List}$<$ M $>$ \&\_\-\_\-tabu\_\-list, {\bf mo\-Aspir\-Crit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit) +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item +void {\bf operator()} (const {\bf EOT} \&\_\-\_\-old\_\-sol, {\bf EOT} \&\_\-\_\-new\_\-sol) +\begin{CompactList}\small\item\em Procedure which lauches the exploration. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType {\bf EOT}\label{classmo_t_s_move_loop_expl_47f42225e2ed096374b818bdb848a527} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef M::EOType::Fitness {\bf Fitness}\label{classmo_t_s_move_loop_expl_a1ba36c937b195ca2f7d1a24adaa7018} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +{\bf mo\-Move\-Init}$<$ M $>$ \& {\bf move\_\-init}\label{classmo_t_s_move_loop_expl_6b23f99648902fb72ed17a4a6fa4e400} + +\begin{CompactList}\small\item\em Move initialisation. \item\end{CompactList}\item +{\bf mo\-Next\-Move}$<$ M $>$ \& {\bf next\_\-move}\label{classmo_t_s_move_loop_expl_aeeff6666d26ff5c67acd9c153a5ae49} + +\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item +{\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\bf incr\_\-eval}\label{classmo_t_s_move_loop_expl_ee4443fc8e45d840697619678628c26c} + +\begin{CompactList}\small\item\em Efficient evaluation. \item\end{CompactList}\item +{\bf mo\-Best\-Impr\-Select}$<$ M $>$ {\bf move\_\-select}\label{classmo_t_s_move_loop_expl_35a3f3035fb8df875c281d9838904bf1} + +\begin{CompactList}\small\item\em Move selector. \item\end{CompactList}\item +{\bf mo\-Tabu\-List}$<$ M $>$ \& {\bf tabu\_\-list}\label{classmo_t_s_move_loop_expl_0e5988a940ba218e87c53b7e56d79790} + +\begin{CompactList}\small\item\em Tabu list. \item\end{CompactList}\item +{\bf mo\-Aspir\-Crit}$<$ M $>$ \& {\bf aspir\_\-crit}\label{classmo_t_s_move_loop_expl_6786cf5422d17cbf872b07ae74ca6b0f} + +\begin{CompactList}\small\item\em Aspiration criterion. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-TSMove\-Loop\-Expl$<$ M $>$} + +Explorer for a Tabu Search algorithm. + +It is used by a \doxyref{mo\-TS}{p.}{classmo_t_s}. + + + +Definition at line 30 of file mo\-TSMove\-Loop\-Expl.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}!moTSMoveLoopExpl@{moTSMoveLoopExpl}} +\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}!moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ {\bf mo\-TSMove\-Loop\-Expl}$<$ M $>$::{\bf mo\-TSMove\-Loop\-Expl} ({\bf mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, {\bf mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, {\bf mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, {\bf mo\-Tabu\-List}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, {\bf mo\-Aspir\-Crit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_move_loop_expl_43306dae9df150a8d9dc0dec9cd6a381} + + +Constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-init}]move initialisation \item[{\em \_\-\_\-next\_\-move}]neighborhood explorer \item[{\em \_\-\_\-incr\_\-eval}]efficient evaluation \item[{\em \_\-\_\-tabu\_\-list}]tabu list \item[{\em \_\-\_\-aspir\_\-crit}]aspiration criterion \end{description} +\end{Desc} + + +Definition at line 49 of file mo\-TSMove\-Loop\-Expl.h. + +References mo\-TSMove\-Loop\-Expl$<$ M $>$::aspir\_\-crit, and mo\-TSMove\-Loop\-Expl$<$ M $>$::tabu\_\-list. + +\subsection{Member Function Documentation} +\index{moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}!operator()@{operator()}} +\index{operator()@{operator()}!moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void {\bf mo\-TSMove\-Loop\-Expl}$<$ M $>$::operator() (const {\bf EOT} \& {\em \_\-\_\-old\_\-sol}, {\bf EOT} \& {\em \_\-\_\-new\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_move_loop_expl_f601bbd0ccc41d6fbe3df9fcd87ad9e7} + + +Procedure which lauches the exploration. + +The exploration continues while the chosen move is not in the tabu list or the aspiration criterion is true. If these 2 conditions are not true, the exploration stops if the move selector update function returns false. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-old\_\-sol}]the initial solution \item[{\em \_\-\_\-new\_\-sol}]the new solution \end{description} +\end{Desc} + + +Definition at line 69 of file mo\-TSMove\-Loop\-Expl.h. + +References mo\-TSMove\-Loop\-Expl$<$ M $>$::aspir\_\-crit, mo\-TSMove\-Loop\-Expl$<$ M $>$::incr\_\-eval, mo\-TSMove\-Loop\-Expl$<$ M $>$::move\_\-init, mo\-TSMove\-Loop\-Expl$<$ M $>$::move\_\-select, mo\-TSMove\-Loop\-Expl$<$ M $>$::next\_\-move, and mo\-TSMove\-Loop\-Expl$<$ M $>$::tabu\_\-list. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-TSMove\-Loop\-Expl.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/classmo_tabu_list.tex b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_tabu_list.tex new file mode 100644 index 000000000..5341527b7 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/classmo_tabu_list.tex @@ -0,0 +1,69 @@ +\section{mo\-Tabu\-List$<$ M $>$ Class Template Reference} +\label{classmo_tabu_list}\index{moTabuList@{moTabuList}} +Class describing a tabu list that a \doxyref{mo\-TS}{p.}{classmo_t_s} uses. + + +{\tt \#include $<$mo\-Tabu\-List.h$>$} + +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType {\bf EOT}\label{classmo_tabu_list_e219715cc3fdd5626764bc50ce6357df} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void {\bf add} (const M \&\_\-\_\-move, const {\bf EOT} \&\_\-\_\-sol)=0 +\begin{CompactList}\small\item\em Procedure to add a move in the tabu list. \item\end{CompactList}\item +virtual void {\bf update} ()=0 +\begin{CompactList}\small\item\em Procedure that updates the tabu list content. \item\end{CompactList}\item +virtual void {\bf init} ()=0 +\begin{CompactList}\small\item\em Procedure which initialises the tabu list. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Tabu\-List$<$ M $>$} + +Class describing a tabu list that a \doxyref{mo\-TS}{p.}{classmo_t_s} uses. + +It is only a description, does nothing... A new object that herits from this class has to be defined in order to be used in a \doxyref{mo\-TS}{p.}{classmo_t_s}. + + + +Definition at line 22 of file mo\-Tabu\-List.h. + +\subsection{Member Function Documentation} +\index{moTabuList@{mo\-Tabu\-List}!add@{add}} +\index{add@{add}!moTabuList@{mo\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf mo\-Tabu\-List}$<$ M $>$::add (const M \& {\em \_\-\_\-move}, const {\bf EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_d279d72cb486d812da1ad3d24a69c286} + + +Procedure to add a move in the tabu list. + +The two parameters have not to be modified so they are constant parameters + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a new tabu move \item[{\em \_\-\_\-sol}]the solution associated to this move \end{description} +\end{Desc} +\index{moTabuList@{mo\-Tabu\-List}!update@{update}} +\index{update@{update}!moTabuList@{mo\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf mo\-Tabu\-List}$<$ M $>$::update ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_a2e5d1132f064093c8ed57046405f5ca} + + +Procedure that updates the tabu list content. + +Generally, a counter associated to each saved move is decreased by one. \index{moTabuList@{mo\-Tabu\-List}!init@{init}} +\index{init@{init}!moTabuList@{mo\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void {\bf mo\-Tabu\-List}$<$ M $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_0a06c459d56e8e2b408a8f3c6aec4e57} + + +Procedure which initialises the tabu list. + +Can be useful if the data structure needs to be allocated before being used. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Tabu\-List.h\end{CompactItemize} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/doxygen.sty b/trunk/paradiseo-mo/tutorial/docs/latex/doxygen.sty new file mode 100644 index 000000000..94f46e468 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/doxygen.sty @@ -0,0 +1,78 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} +\RequirePackage{calc} +\RequirePackage{array} +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Mon Dec 18 15:12:36 2006 for PARADISEO-MO by Doxygen }} +\cfoot{} +\newenvironment{Code} +{\footnotesize} +{\normalsize} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DocInclude} +{\footnotesize} +{\normalsize} +\newenvironment{VerbInclude} +{\footnotesize} +{\normalsize} +\newenvironment{Image} +{\begin{figure}[H]} +{\end{figure}} +\newenvironment{ImageNoCaption}{}{} +\newenvironment{CompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{CompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{tabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{tabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{1} +\sloppy +\usepackage[T1]{fontenc} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/hierarchy.tex b/trunk/paradiseo-mo/tutorial/docs/latex/hierarchy.tex new file mode 100644 index 000000000..e9cef1278 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/hierarchy.tex @@ -0,0 +1,48 @@ +\section{PARADISEO-MO Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList} +\item \contentsline{section}{Empty\-Selection}{\pageref{class_empty_selection}}{} +\item \contentsline{section}{mo\-Algo$<$ EOT $>$}{\pageref{classmo_algo}}{} +\item \contentsline{section}{mo\-Algo$<$ M::EOType $>$}{\pageref{classmo_algo}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-HC$<$ M $>$}{\pageref{classmo_h_c}}{} +\item \contentsline{section}{mo\-SA$<$ M $>$}{\pageref{classmo_s_a}}{} +\item \contentsline{section}{mo\-TS$<$ M $>$}{\pageref{classmo_t_s}}{} +\end{CompactList} +\item \contentsline{section}{mo\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_aspir_crit}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_impr_best_fit_aspir_crit}}{} +\item \contentsline{section}{mo\-No\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_no_aspir_crit}}{} +\end{CompactList} +\item \contentsline{section}{mo\-Cool\-Sched}{\pageref{classmo_cool_sched}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Easy\-Cool\-Sched}{\pageref{classmo_easy_cool_sched}}{} +\end{CompactList} +\item \contentsline{section}{mo\-LSCheck\-Point$<$ M $>$}{\pageref{classmo_l_s_check_point}}{} +\item \contentsline{section}{mo\-Move$<$ EOT $>$}{\pageref{classmo_move}}{} +\item \contentsline{section}{mo\-Move\-Expl$<$ M $>$}{\pageref{classmo_move_expl}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Move\-Loop\-Expl$<$ M $>$}{\pageref{classmo_move_loop_expl}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-HCMove\-Loop\-Expl$<$ M $>$}{\pageref{classmo_h_c_move_loop_expl}}{} +\item \contentsline{section}{mo\-TSMove\-Loop\-Expl$<$ M $>$}{\pageref{classmo_t_s_move_loop_expl}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{mo\-Move\-Incr\-Eval$<$ M $>$}{\pageref{classmo_move_incr_eval}}{} +\item \contentsline{section}{mo\-Move\-Init$<$ M $>$}{\pageref{classmo_move_init}}{} +\item \contentsline{section}{mo\-Move\-Select$<$ M $>$}{\pageref{classmo_move_select}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Best\-Impr\-Select$<$ M $>$}{\pageref{classmo_best_impr_select}}{} +\item \contentsline{section}{mo\-First\-Impr\-Select$<$ M $>$}{\pageref{classmo_first_impr_select}}{} +\item \contentsline{section}{mo\-Rand\-Impr\-Select$<$ M $>$}{\pageref{classmo_rand_impr_select}}{} +\end{CompactList} +\item \contentsline{section}{mo\-Next\-Move$<$ M $>$}{\pageref{classmo_next_move}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-It\-Rand\-Next\-Move$<$ M $>$}{\pageref{classmo_it_rand_next_move}}{} +\end{CompactList} +\item \contentsline{section}{mo\-Rand\-Move$<$ M $>$}{\pageref{classmo_rand_move}}{} +\item \contentsline{section}{mo\-Sol\-Continue$<$ EOT $>$}{\pageref{classmo_sol_continue}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Gen\-Sol\-Continue$<$ EOT $>$}{\pageref{classmo_gen_sol_continue}}{} +\end{CompactList} +\item \contentsline{section}{mo\-Tabu\-List$<$ M $>$}{\pageref{classmo_tabu_list}}{} +\end{CompactList} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/main.tex b/trunk/paradiseo-mo/tutorial/docs/latex/main.tex new file mode 100644 index 000000000..3ce1b6114 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/main.tex @@ -0,0 +1,5 @@ +\section{Introduction}\label{main_intro} +MO is an extension of the ANSI-C++ compliant evolutionary computation library EO. \par + It contains classes for almost any kind of one solution based heuristics.\section{Tutorial}\label{main_tutorial} +\section{Installation}\label{main_install} +The installation procedure of the package is detailed in the {\tt README} file in the top-directory of the source-tree.\section{Overall Design}\label{main_design} diff --git a/trunk/paradiseo-mo/tutorial/docs/latex/refman.tex b/trunk/paradiseo-mo/tutorial/docs/latex/refman.tex new file mode 100644 index 000000000..bcb07df38 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/latex/refman.tex @@ -0,0 +1,66 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large PARADISEO-MO Reference Manual\\[1ex]\large 0.1 }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.5.1}\\ +\vspace*{0.5cm} +{\small Mon Dec 18 15:12:36 2006}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\chapter{Welcome to PARADISEO-Moving Objects } +\label{index}\input{main} +\chapter{PARADISEO-MO Hierarchical Index} +\input{hierarchy} +\chapter{PARADISEO-MO Class Index} +\input{annotated} +\chapter{PARADISEO-MO Class Documentation} +\input{class_empty_selection} +\include{classmo_algo} +\include{classmo_aspir_crit} +\include{classmo_best_impr_select} +\include{classmo_cool_sched} +\include{classmo_easy_cool_sched} +\include{classmo_first_impr_select} +\include{classmo_gen_sol_continue} +\include{classmo_h_c} +\include{classmo_h_c_move_loop_expl} +\include{classmo_impr_best_fit_aspir_crit} +\include{classmo_it_rand_next_move} +\include{classmo_l_s_check_point} +\include{classmo_move} +\include{classmo_move_expl} +\include{classmo_move_incr_eval} +\include{classmo_move_init} +\include{classmo_move_loop_expl} +\include{classmo_move_select} +\include{classmo_next_move} +\include{classmo_no_aspir_crit} +\include{classmo_rand_impr_select} +\include{classmo_rand_move} +\include{classmo_s_a} +\include{classmo_sol_continue} +\include{classmo_tabu_list} +\include{classmo_t_s} +\include{classmo_t_s_move_loop_expl} +\printindex +\end{document} diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/EmptySelection.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/EmptySelection.3 new file mode 100644 index 000000000..726462db3 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/EmptySelection.3 @@ -0,0 +1,23 @@ +.TH "EmptySelection" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +EmptySelection \- Special class that describes the case of no selection. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SH "Detailed Description" +.PP +Special class that describes the case of no selection. + +This class is used as an exception that can be thrown if a solution selector has completly failed. +.PP +Definition at line 21 of file moMoveSelect.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moAlgo.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moAlgo.3 new file mode 100644 index 000000000..173c15672 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moAlgo.3 @@ -0,0 +1,25 @@ +.TH "moAlgo" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moAlgo \- Description of an algorithm of the mo library. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SH "Detailed Description" +.PP + +.SS "template class moAlgo< EOT >" +Description of an algorithm of the mo library. + +\fBmoHC\fP, \fBmoTS\fP and \fBmoSA\fP are 3 examples of algorithm of the mo library. +.PP +Definition at line 21 of file moAlgo.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moAspirCrit.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moAspirCrit.3 new file mode 100644 index 000000000..d81e22783 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moAspirCrit.3 @@ -0,0 +1,44 @@ +.TH "moAspirCrit" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moAspirCrit \- Description of the conditions in which a tabu move could be accepted. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBmoImprBestFitAspirCrit< M >\fP, and \fBmoNoAspirCrit< M >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBinit\fP ()=0" +.br +.RI "\fIProcedure which initialises all that needs a aspiration criterion. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moAspirCrit< M >" +Description of the conditions in which a tabu move could be accepted. + +It is only a description... An object that herits from this class is needed to be used in a \fBmoTS\fP. See moNoAspriCrit for example. +.PP +Definition at line 22 of file moAspirCrit.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoAspirCrit\fP< M >::init ()\fC [pure virtual]\fP" +.PP +Procedure which initialises all that needs a aspiration criterion. +.PP +It can be possible that this procedure do nothing... +.PP +Implemented in \fBmoImprBestFitAspirCrit< M >\fP, and \fBmoNoAspirCrit< M >\fP. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moBestImprSelect.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moBestImprSelect.3 new file mode 100644 index 000000000..3dc5272f0 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moBestImprSelect.3 @@ -0,0 +1,115 @@ +.TH "moBestImprSelect" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moBestImprSelect \- One of the possible \fBmoMoveSelect\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveSelect< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBinit\fP (const \fBFitness\fP &__fit)" +.br +.RI "\fIProcedure which initialise the exploration. \fP" +.ti -1c +.RI "bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)" +.br +.RI "\fIFunction that indicates if the current move has not improved the fitness. \fP" +.ti -1c +.RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" +.br +.RI "\fIProcedure which saved the best move and fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "bool \fBfirst_time\fP" +.br +.RI "\fIAllowing to know if at least one move has been generated. \fP" +.ti -1c +.RI "M \fBbest_move\fP" +.br +.RI "\fIThe best move. \fP" +.ti -1c +.RI "\fBFitness\fP \fBbest_fit\fP" +.br +.RI "\fIThe best fitness. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moBestImprSelect< M >" +One of the possible \fBmoMoveSelect\fP. + +All neighbors are considered, and the movement which enables the best improvement is selected. +.PP +Definition at line 22 of file moBestImprSelect.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoBestImprSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" +.PP +Function that indicates if the current move has not improved the fitness. +.PP +If the given fitness enables an improvment, the move (\fBmoMove\fP) and the fitness linked to this move are saved. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__fit\fP a fitness linked to the move. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE if the move does not improve the fitness. +.RE +.PP + +.PP +Implements \fBmoMoveSelect< M >\fP. +.PP +Definition at line 47 of file moBestImprSelect.h. +.PP +References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. +.SS "template void \fBmoBestImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline]\fP" +.PP +Procedure which saved the best move and fitness. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP the current move (result of the procedure). +.br +\fI__fit\fP the current fitness (result of the procedure). +.RE +.PP +\fBExceptions:\fP +.RS 4 +\fI\fBEmptySelection\fP\fP if no move has improved the fitness. +.RE +.PP + +.PP +Definition at line 68 of file moBestImprSelect.h. +.PP +References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moCoolSched.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moCoolSched.3 new file mode 100644 index 000000000..2964b2b5b --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moCoolSched.3 @@ -0,0 +1,25 @@ +.TH "moCoolSched" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moCoolSched \- This class gives the description of a cooling schedule. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBmoEasyCoolSched\fP. +.PP +.SH "Detailed Description" +.PP +This class gives the description of a cooling schedule. + +It is only a description... An object that herits from this class is needed to be used in a \fBmoSA\fP. See \fBmoEasyCoolSched\fP for example. +.PP +Definition at line 22 of file moCoolSched.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moEasyCoolSched.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moEasyCoolSched.3 new file mode 100644 index 000000000..98feaefe6 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moEasyCoolSched.3 @@ -0,0 +1,88 @@ +.TH "moEasyCoolSched" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moEasyCoolSched \- One of the possible \fBmoCoolSched\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoCoolSched\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoEasyCoolSched\fP (double __threshold, double __ratio)" +.br +.RI "\fISimple constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (double &__temp)" +.br +.RI "\fIFunction which proceeds to the cooling. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "double \fBthreshold\fP" +.br +.RI "\fIThe temperature threhold. \fP" +.ti -1c +.RI "double \fBratio\fP" +.br +.RI "\fIThe decreasing factor of the temperature. \fP" +.in -1c +.SH "Detailed Description" +.PP +One of the possible \fBmoCoolSched\fP. + +The simpliest, the temperature decrease according to a ratio until it greater than a threshold. +.PP +Definition at line 22 of file moEasyCoolSched.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "moEasyCoolSched::moEasyCoolSched (double __threshold, double __ratio)\fC [inline]\fP" +.PP +Simple constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI__threshold\fP the threshold. +.br +\fI__ratio\fP the ratio used to descrease the temperature. +.RE +.PP + +.PP +Definition at line 31 of file moEasyCoolSched.h. +.SH "Member Function Documentation" +.PP +.SS "bool moEasyCoolSched::operator() (double & __temp)\fC [inline]\fP" +.PP +Function which proceeds to the cooling. +.PP +Decrease the temperature and indicates if it is greater than the threshold. +.PP +\fBParameters:\fP +.RS 4 +\fI__temp\fP the current temperature. +.RE +.PP +\fBReturns:\fP +.RS 4 +if the new temperature (current temperature * ratio) is greater than the threshold. +.RE +.PP + +.PP +Definition at line 44 of file moEasyCoolSched.h. +.PP +References ratio, and threshold. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moFirstImprSelect.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moFirstImprSelect.3 new file mode 100644 index 000000000..34ff0fa09 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moFirstImprSelect.3 @@ -0,0 +1,128 @@ +.TH "moFirstImprSelect" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moFirstImprSelect \- One possible \fBmoMoveSelect\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveSelect< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBinit\fP (const \fBFitness\fP &__fit)" +.br +.RI "\fIProcedure which initialise the exploration. \fP" +.ti -1c +.RI "bool \fBupdate\fP (const M &__move, const typename M::EOType::Fitness &__fit)" +.br +.RI "\fIFunction that indicates if the current move has not improved the fitness. \fP" +.ti -1c +.RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" +.br +.RI "\fIProcedure which saved the best move and fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "bool \fBvalid\fP" +.br +.RI "\fIAllow to know if at least one move has improved the solution. \fP" +.ti -1c +.RI "M \fBbest_move\fP" +.br +.RI "\fIBest stored movement. \fP" +.ti -1c +.RI "\fBFitness\fP \fBinit_fit\fP" +.br +.RI "\fIInitial fitness. \fP" +.ti -1c +.RI "\fBFitness\fP \fBbest_fit\fP" +.br +.RI "\fIBest stored fitness. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moFirstImprSelect< M >" +One possible \fBmoMoveSelect\fP. + +The neighborhood is explored until a move enables an improvment of the current solution. +.PP +Definition at line 23 of file moFirstImprSelect.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoFirstImprSelect\fP< M >::init (const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" +.PP +Procedure which initialise the exploration. +.PP +It save the current fitness as the initial value for the fitness. +.PP +Implements \fBmoMoveSelect< M >\fP. +.PP +Definition at line 35 of file moFirstImprSelect.h. +.PP +References moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. +.SS "template bool \fBmoFirstImprSelect\fP< M >::update (const M & __move, const typename M::EOType::Fitness & __fit)\fC [inline]\fP" +.PP +Function that indicates if the current move has not improved the fitness. +.PP +If the given fitness enables an improvment, the move (\fBmoMove\fP) should be applied to the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__fit\fP a fitness linked to the move. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE if the move does not improve the fitness. +.RE +.PP + +.PP +Definition at line 52 of file moFirstImprSelect.h. +.PP +References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. +.SS "template void \fBmoFirstImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline]\fP" +.PP +Procedure which saved the best move and fitness. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP the current move (result of the procedure). +.br +\fI__fit\fP the current fitness (result of the procedure). +.RE +.PP +\fBExceptions:\fP +.RS 4 +\fI\fBEmptySelection\fP\fP if no move has improved the fitness. +.RE +.PP + +.PP +Definition at line 76 of file moFirstImprSelect.h. +.PP +References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, and moFirstImprSelect< M >::valid. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moGenSolContinue.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moGenSolContinue.3 new file mode 100644 index 000000000..1fa2a536a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moGenSolContinue.3 @@ -0,0 +1,103 @@ +.TH "moGenSolContinue" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moGenSolContinue \- One possible stop criterion for a solution-based heuristic. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoSolContinue< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoGenSolContinue\fP (unsigned __maxNumGen)" +.br +.RI "\fISimple constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const EOT &__sol)" +.br +.RI "\fIFunction that activates the stop criterion. \fP" +.ti -1c +.RI "void \fBinit\fP ()" +.br +.RI "\fIProcedure which allows to initialise the generation counter. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "unsigned \fBmaxNumGen\fP" +.br +.RI "\fIIteration maximum number. \fP" +.ti -1c +.RI "unsigned \fBnumGen\fP" +.br +.RI "\fIIteration current number. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moGenSolContinue< EOT >" +One possible stop criterion for a solution-based heuristic. + +The stop criterion corresponds to a maximum number of iteration. +.PP +Definition at line 21 of file moGenSolContinue.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoGenSolContinue\fP< EOT >::\fBmoGenSolContinue\fP (unsigned __maxNumGen)\fC [inline]\fP" +.PP +Simple constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI__maxNumGen\fP the maximum number of generation. +.RE +.PP + +.PP +Definition at line 30 of file moGenSolContinue.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoGenSolContinue\fP< EOT >::operator() (const EOT & __sol)\fC [inline]\fP" +.PP +Function that activates the stop criterion. +.PP +Increments the counter and returns TRUE if the current number of iteration is lower than the given maximum number of iterations. +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP the current solution. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE or FALSE according to the current generation number. +.RE +.PP + +.PP +Definition at line 44 of file moGenSolContinue.h. +.PP +References moGenSolContinue< EOT >::maxNumGen, and moGenSolContinue< EOT >::numGen. +.SS "template void \fBmoGenSolContinue\fP< EOT >::init ()\fC [inline, virtual]\fP" +.PP +Procedure which allows to initialise the generation counter. +.PP +It can also be used to reset the iteration counter. +.PP +Implements \fBmoSolContinue< EOT >\fP. +.PP +Definition at line 54 of file moGenSolContinue.h. +.PP +References moGenSolContinue< EOT >::numGen. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moHC.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moHC.3 new file mode 100644 index 000000000..d8c42bfdb --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moHC.3 @@ -0,0 +1,130 @@ +.TH "moHC" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moHC \- Hill Climbing (HC). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAlgo< M::EOType >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoHC\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoMoveSelect\fP< M > &__move_select, eoEvalFunc< \fBEOT\fP > &__full_eval)" +.br +.RI "\fIFull constructor. \fP" +.ti -1c +.RI "\fBmoHC\fP (\fBmoMoveExpl\fP< M > &__move_expl, eoEvalFunc< \fBEOT\fP > &__full_eval)" +.br +.RI "\fILight constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (\fBEOT\fP &__sol)" +.br +.RI "\fIFunction which launches the HC. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef EOT::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoMoveExpl\fP< M > & \fBmove_expl\fP" +.br +.RI "\fIComplete exploration of the neighborhood. \fP" +.ti -1c +.RI "eoEvalFunc< \fBEOT\fP > & \fBfull_eval\fP" +.br +.RI "\fIA full evaluation function. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moHC< M >" +Hill Climbing (HC). + +Class which describes the algorithm for a hill climbing. +.PP +Definition at line 26 of file moHC.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoHC\fP< M >::\fBmoHC\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoMoveSelect\fP< M > & __move_select, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +Full constructor. +.PP +All the boxes are given in order the HC to use a \fBmoHCMoveLoopExpl\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_init\fP a move initialiser. +.br +\fI__next_move\fP a neighborhood explorer. +.br +\fI__incr_eval\fP a (generally) efficient evaluation function. +.br +\fI__move_select\fP a move selector. +.br +\fI__full_eval\fP a full evaluation function. +.RE +.PP + +.PP +Definition at line 53 of file moHC.h. +.SS "template \fBmoHC\fP< M >::\fBmoHC\fP (\fBmoMoveExpl\fP< M > & __move_expl, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +Light constructor. +.PP +This constructor allow to use another \fBmoMoveExpl\fP (generally not a \fBmoHCMoveLoopExpl\fP). +.PP +\fBParameters:\fP +.RS 4 +\fI__move_expl\fP a complete explorer. +.br +\fI__full_eval\fP a full evaluation function. +.RE +.PP + +.PP +Definition at line 67 of file moHC.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoHC\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline]\fP" +.PP +Function which launches the HC. +.PP +The HC has to improve a current solution. As the \fBmoSA\fP and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm. +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP a current solution to improve. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE. +.RE +.PP + +.PP +Definition at line 82 of file moHC.h. +.PP +References moHC< M >::full_eval, and moHC< M >::move_expl. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moHCMoveLoopExpl.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moHCMoveLoopExpl.3 new file mode 100644 index 000000000..ee0c18b89 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moHCMoveLoopExpl.3 @@ -0,0 +1,111 @@ +.TH "moHCMoveLoopExpl" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moHCMoveLoopExpl \- Iterative explorer used by a \fBmoHC\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveLoopExpl< M >< M >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoHCMoveLoopExpl\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoMoveSelect\fP< M > &__move_select)" +.br +.RI "\fIConstructor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (const \fBEOT\fP &__old_sol, \fBEOT\fP &__new_sol)" +.br +.RI "\fIProcedure which launches the explorer. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoMoveInit\fP< M > & \fBmove_init\fP" +.br +.RI "\fIMove initialiser. \fP" +.ti -1c +.RI "\fBmoNextMove\fP< M > & \fBnext_move\fP" +.br +.RI "\fINeighborhood explorer. \fP" +.ti -1c +.RI "\fBmoMoveIncrEval\fP< M > & \fBincr_eval\fP" +.br +.RI "\fI(generally) Efficient evaluation. \fP" +.ti -1c +.RI "\fBmoMoveSelect\fP< M > & \fBmove_select\fP" +.br +.RI "\fIMove selector. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moHCMoveLoopExpl< M >" +Iterative explorer used by a \fBmoHC\fP. +.PP +Definition at line 23 of file moHCMoveLoopExpl.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoHCMoveLoopExpl\fP< M >::\fBmoHCMoveLoopExpl\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoMoveSelect\fP< M > & __move_select)\fC [inline]\fP" +.PP +Constructor. +.PP +All the boxes have to be specified. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_init\fP the move initialiser. +.br +\fI__next_move\fP the neighborhood explorer. +.br +\fI__incr_eval\fP (generally) efficient evaluation function. +.br +\fI__move_select\fP the move selector. +.RE +.PP + +.PP +Definition at line 43 of file moHCMoveLoopExpl.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoHCMoveLoopExpl\fP< M >::operator() (const \fBEOT\fP & __old_sol, \fBEOT\fP & __new_sol)\fC [inline]\fP" +.PP +Procedure which launches the explorer. +.PP +The exploration starts from an old solution and provides a new solution. +.PP +\fBParameters:\fP +.RS 4 +\fI__old_sol\fP the current solution. +.br +\fI__new_sol\fP the new_sol (result of the procedure). +.RE +.PP + +.PP +Definition at line 59 of file moHCMoveLoopExpl.h. +.PP +References moHCMoveLoopExpl< M >::incr_eval, moHCMoveLoopExpl< M >::move_init, moHCMoveLoopExpl< M >::move_select, and moHCMoveLoopExpl< M >::next_move. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moImprBestFitAspirCrit.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moImprBestFitAspirCrit.3 new file mode 100644 index 000000000..0f3d5069e --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moImprBestFitAspirCrit.3 @@ -0,0 +1,88 @@ +.TH "moImprBestFitAspirCrit" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moImprBestFitAspirCrit \- One of the possible \fBmoAspirCrit\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAspirCrit< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoImprBestFitAspirCrit\fP ()" +.br +.RI "\fIContructor. \fP" +.ti -1c +.RI "void \fBinit\fP ()" +.br +.RI "\fIInitialisation procedure. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const M &__move, const \fBFitness\fP &__fit)" +.br +.RI "\fIFunction that indicates if the fit is better that the already saved fit. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBFitness\fP \fBbest_fit\fP" +.br +.RI "\fIBest fitness found until now. \fP" +.ti -1c +.RI "bool \fBfirst_time\fP" +.br +.RI "\fIIndicates that a fitness has been already saved or not. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moImprBestFitAspirCrit< M >" +One of the possible \fBmoAspirCrit\fP. + +This criterion is satisfied when a given fitness is the best ever considered. +.PP +Definition at line 22 of file moImprBestFitAspirCrit.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoImprBestFitAspirCrit\fP< M >::operator() (const M & __move, const \fBFitness\fP & __fit)\fC [inline]\fP" +.PP +Function that indicates if the fit is better that the already saved fit. +.PP +The first time, the function only saved the current move and fitness. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__fit\fP a fitnes linked to the move. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE the first time and if __fit > best_fit, else FALSE. +.RE +.PP + +.PP +Definition at line 52 of file moImprBestFitAspirCrit.h. +.PP +References moImprBestFitAspirCrit< M >::best_fit, and moImprBestFitAspirCrit< M >::first_time. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moItRandNextMove.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moItRandNextMove.3 new file mode 100644 index 000000000..26beb995d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moItRandNextMove.3 @@ -0,0 +1,106 @@ +.TH "moItRandNextMove" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moItRandNextMove \- One of the possible \fBmoNextMove\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoNextMove< M >< M >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoItRandNextMove\fP (\fBmoRandMove\fP< M > &__rand_move, unsigned __max_iter)" +.br +.RI "\fIThe constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (M &__move, const \fBEOT\fP &__sol)" +.br +.RI "\fIGeneration of a new move. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoRandMove\fP< M > & \fBrand_move\fP" +.br +.RI "\fIA move generator (generally randomly). \fP" +.ti -1c +.RI "unsigned \fBmax_iter\fP" +.br +.RI "\fIIteration maximum number. \fP" +.ti -1c +.RI "unsigned \fBnum_iter\fP" +.br +.RI "\fIIteration current number. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moItRandNextMove< M >" +One of the possible \fBmoNextMove\fP. + +This class is a move (\fBmoMove\fP) generator with a bound for the maximum number of iterations. +.PP +Definition at line 22 of file moItRandNextMove.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoItRandNextMove\fP< M >::\fBmoItRandNextMove\fP (\fBmoRandMove\fP< M > & __rand_move, unsigned __max_iter)\fC [inline]\fP" +.PP +The constructor. +.PP +Parameters only for initialising the attributes. +.PP +\fBParameters:\fP +.RS 4 +\fI__rand_move\fP the random move generator. +.br +\fI__max_iter\fP the iteration maximum number. +.RE +.PP + +.PP +Definition at line 37 of file moItRandNextMove.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoItRandNextMove\fP< M >::operator() (M & __move, const \fBEOT\fP & __sol)\fC [inline]\fP" +.PP +Generation of a new move. +.PP +If the maximum number is not already reached, the current move is forgotten and remplaced by another one. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP the current move. +.br +\fI__sol\fP the current solution. +.RE +.PP +\fBReturns:\fP +.RS 4 +FALSE if the maximum number of iteration is reached, else TRUE. +.RE +.PP + +.PP +Definition at line 52 of file moItRandNextMove.h. +.PP +References moItRandNextMove< M >::max_iter, moItRandNextMove< M >::num_iter, and moItRandNextMove< M >::rand_move. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moLSCheckPoint.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moLSCheckPoint.3 new file mode 100644 index 000000000..c54e24fec --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moLSCheckPoint.3 @@ -0,0 +1,81 @@ +.TH "moLSCheckPoint" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moLSCheckPoint \- Class which allows a checkpointing system. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (const M &__move, const typename M::EOType &__sol)" +.br +.RI "\fIFunction which launches the checkpointing. \fP" +.ti -1c +.RI "void \fBadd\fP (eoBF< const M &, const typename M::EOType &, void > &__f)" +.br +.RI "\fIProcedure which add a new function to the function vector. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "std::vector< eoBF< const M &, const typename M::EOType &, void > * > \fBfunc\fP" +.br +.RI "\fIvector of function \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moLSCheckPoint< M >" +Class which allows a checkpointing system. + +Thanks to this class, at each iteration, additionnal function can be used (and not only one). +.PP +Definition at line 21 of file moLSCheckPoint.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoLSCheckPoint\fP< M >::operator() (const M & __move, const typename M::EOType & __sol)\fC [inline]\fP" +.PP +Function which launches the checkpointing. +.PP +Each saved function is used on the current move and the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__sol\fP a solution. +.RE +.PP + +.PP +Definition at line 34 of file moLSCheckPoint.h. +.PP +References moLSCheckPoint< M >::func. +.SS "template void \fBmoLSCheckPoint\fP< M >::add (eoBF< const M &, const typename M::EOType &, void > & __f)\fC [inline]\fP" +.PP +Procedure which add a new function to the function vector. +.PP +The new function is added at the end of the vector. +.PP +\fBParameters:\fP +.RS 4 +\fI__f\fP a new function to add. +.RE +.PP + +.PP +Definition at line 49 of file moLSCheckPoint.h. +.PP +References moLSCheckPoint< M >::func. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moMove.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMove.3 new file mode 100644 index 000000000..022132e50 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMove.3 @@ -0,0 +1,33 @@ +.TH "moMove" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMove \- Definition of a move. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef EOT \fBEOType\fP" +.br +.RI "\fIAlias for the type. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moMove< EOT >" +Definition of a move. + +A move transforms a solution to another close solution. It describes how a solution can be modified to another one. +.PP +Definition at line 23 of file moMove.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveExpl.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveExpl.3 new file mode 100644 index 000000000..ecde871cc --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveExpl.3 @@ -0,0 +1,27 @@ +.TH "moMoveExpl" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveExpl \- Description of a move (\fBmoMove\fP) explorer. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBmoMoveLoopExpl< M >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moMoveExpl< M >" +Description of a move (\fBmoMove\fP) explorer. + +Only a description...See \fBmoMoveLoopExpl\fP. +.PP +Definition at line 21 of file moMoveExpl.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveIncrEval.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveIncrEval.3 new file mode 100644 index 000000000..f998787e0 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveIncrEval.3 @@ -0,0 +1,25 @@ +.TH "moMoveIncrEval" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveIncrEval \- (generally) Efficient evaluation function based a move and a solution. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SH "Detailed Description" +.PP + +.SS "template class moMoveIncrEval< M >" +(generally) Efficient evaluation function based a move and a solution. + +From a move and a solution, it computes a new fitness that could be associated to the solution if this one is updated. +.PP +Definition at line 24 of file moMoveIncrEval.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveInit.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveInit.3 new file mode 100644 index 000000000..6221051be --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveInit.3 @@ -0,0 +1,25 @@ +.TH "moMoveInit" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveInit \- Move (\fBmoMove\fP) initializer. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SH "Detailed Description" +.PP + +.SS "template class moMoveInit< M >" +Move (\fBmoMove\fP) initializer. + +Class which allows to initiase a move. Only a description... An object that herits from this class needs to be designed to be used. +.PP +Definition at line 22 of file moMoveInit.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveLoopExpl.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveLoopExpl.3 new file mode 100644 index 000000000..d6eb5fb19 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveLoopExpl.3 @@ -0,0 +1,29 @@ +.TH "moMoveLoopExpl" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveLoopExpl \- Class which describes an iterative explorer. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveExpl< M >< M >\fP. +.PP +Inherited by \fBmoHCMoveLoopExpl< M >\fP, and \fBmoTSMoveLoopExpl< M >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moMoveLoopExpl< M >" +Class which describes an iterative explorer. + +Only a description... \fBmoHCMoveLoopExpl\fP and \fBmoTSMoveLoopExpl\fP are exemples of class that are a \fBmoMoveLoopExpl\fP. +.PP +Definition at line 21 of file moMoveLoopExpl.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveSelect.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveSelect.3 new file mode 100644 index 000000000..67f1eefd4 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moMoveSelect.3 @@ -0,0 +1,82 @@ +.TH "moMoveSelect" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveSelect \- Class that describes a move selector (\fBmoMove\fP). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBmoBestImprSelect< M >\fP, \fBmoFirstImprSelect< M >\fP, and \fBmoRandImprSelect< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBinit\fP (const \fBFitness\fP &__fit)=0" +.br +.RI "\fIProcedure which initialises all that the move selector needs including the initial fitness. \fP" +.ti -1c +.RI "virtual bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)=0" +.br +.RI "\fIFunction which updates the best solutions. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moMoveSelect< M >" +Class that describes a move selector (\fBmoMove\fP). + +It iteratively considers some moves (\fBmoMove\fP) and their associated fitnesses. The best move is so regularly updated. At any time, it could be accessed. +.PP +Definition at line 32 of file moMoveSelect.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoMoveSelect\fP< M >::init (const \fBFitness\fP & __fit)\fC [pure virtual]\fP" +.PP +Procedure which initialises all that the move selector needs including the initial fitness. +.PP +In order to know the fitness of the solution, for which the neighborhood will be soon explored +.PP +\fBParameters:\fP +.RS 4 +\fI__fit\fP the current fitness. +.RE +.PP + +.PP +Implemented in \fBmoBestImprSelect< M >\fP, \fBmoFirstImprSelect< M >\fP, and \fBmoRandImprSelect< M >\fP. +.SS "template virtual bool \fBmoMoveSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [pure virtual]\fP" +.PP +Function which updates the best solutions. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a new move. +.br +\fI__fit\fP a fitness linked to the new move. +.RE +.PP +\fBReturns:\fP +.RS 4 +a boolean that expresses the need to resume the exploration. +.RE +.PP + +.PP +Implemented in \fBmoBestImprSelect< M >\fP, and \fBmoRandImprSelect< M >\fP. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moNextMove.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moNextMove.3 new file mode 100644 index 000000000..7af40fe0b --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moNextMove.3 @@ -0,0 +1,27 @@ +.TH "moNextMove" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moNextMove \- Class which allows to generate a new move (\fBmoMove\fP). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBmoItRandNextMove< M >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moNextMove< M >" +Class which allows to generate a new move (\fBmoMove\fP). + +Useful for the explorer (for \fBmoTS\fP or \fBmoHC\fP). Does nothing... An object that herits from this class needs to be designed for being used. +.PP +Definition at line 22 of file moNextMove.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moNoAspirCrit.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moNoAspirCrit.3 new file mode 100644 index 000000000..30b0dfd62 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moNoAspirCrit.3 @@ -0,0 +1,71 @@ +.TH "moNoAspirCrit" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moNoAspirCrit \- One of the possible aspiration criterion (\fBmoAspirCrit\fP). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAspirCrit< M >< M >\fP. +.PP +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "bool \fBoperator()\fP (const M &__move, const typename M::EOType::Fitness &__sol)" +.br +.RI "\fIFunction which describes the aspiration criterion behaviour. \fP" +.ti -1c +.RI "void \fBinit\fP ()" +.br +.RI "\fIProcedure which initialises all that needs a \fBmoNoAspirCrit\fP. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moNoAspirCrit< M >" +One of the possible aspiration criterion (\fBmoAspirCrit\fP). + +The simplest : never satisfied. +.PP +Definition at line 21 of file moNoAspirCrit.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoNoAspirCrit\fP< M >::operator() (const M & __move, const typename M::EOType::Fitness & __sol)\fC [inline, private]\fP" +.PP +Function which describes the aspiration criterion behaviour. +.PP +Does nothing. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__sol\fP a fitness. +.RE +.PP +\fBReturns:\fP +.RS 4 +FALSE. +.RE +.PP + +.PP +Definition at line 32 of file moNoAspirCrit.h. +.SS "template void \fBmoNoAspirCrit\fP< M >::init ()\fC [inline, private, virtual]\fP" +.PP +Procedure which initialises all that needs a \fBmoNoAspirCrit\fP. +.PP +Nothing... +.PP +Implements \fBmoAspirCrit< M >\fP. +.PP +Definition at line 43 of file moNoAspirCrit.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moRandImprSelect.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moRandImprSelect.3 new file mode 100644 index 000000000..c84d3590f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moRandImprSelect.3 @@ -0,0 +1,135 @@ +.TH "moRandImprSelect" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moRandImprSelect \- One of the possible \fBmoMove\fP selector (\fBmoMoveSelect\fP). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveSelect< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBinit\fP (const \fBFitness\fP &__fit)" +.br +.RI "\fIProcedure which all that needs a \fBmoRandImprSelect\fP. \fP" +.ti -1c +.RI "bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)" +.br +.RI "\fIFunction that updates the fitness and move vectors. \fP" +.ti -1c +.RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" +.br +.RI "\fIThe move selection. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBFitness\fP \fBinit_fit\fP" +.br +.RI "\fIFitness of the current solution. \fP" +.ti -1c +.RI "std::vector< \fBFitness\fP > \fBvect_better_fit\fP" +.br +.RI "\fICandidate fitnesse vector. \fP" +.ti -1c +.RI "std::vector< M > \fBvect_better_moves\fP" +.br +.RI "\fICandidate move vector. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moRandImprSelect< M >" +One of the possible \fBmoMove\fP selector (\fBmoMoveSelect\fP). + +All the neighbors are considered. One of them that enables an improvment of the objective function is choosen. +.PP +Definition at line 25 of file moRandImprSelect.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoRandImprSelect\fP< M >::init (const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" +.PP +Procedure which all that needs a \fBmoRandImprSelect\fP. +.PP +Give a value to the initialise fitness. Clean the move and fitness vectors. +.PP +\fBParameters:\fP +.RS 4 +\fI__fit\fP the current best fitness +.RE +.PP + +.PP +Implements \fBmoMoveSelect< M >\fP. +.PP +Definition at line 40 of file moRandImprSelect.h. +.PP +References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +.SS "template bool \fBmoRandImprSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" +.PP +Function that updates the fitness and move vectors. +.PP +if a move give a better fitness than the initial fitness, it is saved and the fitness too. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a new move. +.br +\fI__fit\fP a new fitness associated to the new move. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE. +.RE +.PP + +.PP +Implements \fBmoMoveSelect< M >\fP. +.PP +Definition at line 56 of file moRandImprSelect.h. +.PP +References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +.SS "template void \fBmoRandImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline]\fP" +.PP +The move selection. +.PP +One the saved move is randomly chosen. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP the reference of the move that can be initialised by the function. +.br +\fI__fit\fP the reference of the fitness that can be initialised by the function. +.RE +.PP +\fBExceptions:\fP +.RS 4 +\fI\fBEmptySelection\fP\fP If no move which improves the current fitness are found. +.RE +.PP + +.PP +Definition at line 77 of file moRandImprSelect.h. +.PP +References moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moRandMove.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moRandMove.3 new file mode 100644 index 000000000..c465c0d78 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moRandMove.3 @@ -0,0 +1,25 @@ +.TH "moRandMove" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moRandMove \- Random move generator. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SH "Detailed Description" +.PP + +.SS "template class moRandMove< M >" +Random move generator. + +Only a description... An object that herits from this class needs to be designed in order to use a \fBmoSA\fP. +.PP +Definition at line 21 of file moRandMove.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moSA.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moSA.3 new file mode 100644 index 000000000..65477d525 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moSA.3 @@ -0,0 +1,128 @@ +.TH "moSA" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moSA \- Simulated Annealing (SA). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAlgo< M::EOType >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoSA\fP (\fBmoRandMove\fP< M > &__move_rand, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, double __init_temp, \fBmoCoolSched\fP &__cool_sched, eoEvalFunc< \fBEOT\fP > &__full_eval)" +.br +.RI "\fISA constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (\fBEOT\fP &__sol)" +.br +.RI "\fIfunction that launches the SA algorithm. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef EOT::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoRandMove\fP< M > & \fBmove_rand\fP" +.br +.RI "\fIA move generator (generally randomly). \fP" +.ti -1c +.RI "\fBmoMoveIncrEval\fP< M > & \fBincr_eval\fP" +.br +.RI "\fIA (generally) efficient evaluation function. \fP" +.ti -1c +.RI "\fBmoSolContinue\fP< \fBEOT\fP > & \fBcont\fP" +.br +.RI "\fIStopping criterion before temperature update. \fP" +.ti -1c +.RI "double \fBinit_temp\fP" +.br +.RI "\fIInitial temperature. \fP" +.ti -1c +.RI "\fBmoCoolSched\fP & \fBcool_sched\fP" +.br +.RI "\fIThe cooling schedule. \fP" +.ti -1c +.RI "eoEvalFunc< \fBEOT\fP > & \fBfull_eval\fP" +.br +.RI "\fIA full evaluation function. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moSA< M >" +Simulated Annealing (SA). + +Class that describes a Simulated Annealing algorithm. +.PP +Definition at line 32 of file moSA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoSA\fP< M >::\fBmoSA\fP (\fBmoRandMove\fP< M > & __move_rand, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, double __init_temp, \fBmoCoolSched\fP & __cool_sched, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +SA constructor. +.PP +All the boxes used by a SA need to be given. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_rand\fP a move generator (generally randomly). +.br +\fI__incr_eval\fP a (generaly) efficient evaluation function +.br +\fI__cont\fP a stopping criterion. +.br +\fI__init_temp\fP the initial temperature. +.br +\fI__cool_sched\fP a cooling schedule, describes how the temperature is modified. +.br +\fI__full_eval\fP a full evaluation function. +.RE +.PP + +.PP +Definition at line 60 of file moSA.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoSA\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline]\fP" +.PP +function that launches the SA algorithm. +.PP +As a \fBmoTS\fP or a \fBmoHC\fP, the SA can be used for HYBRIDATION in an evolutionary algorithm. +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP a solution to improve. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE. +.RE +.PP + +.PP +Definition at line 82 of file moSA.h. +.PP +References moSA< M >::cont, moSA< M >::cool_sched, moSA< M >::full_eval, moSA< M >::incr_eval, moSA< M >::init_temp, and moSA< M >::move_rand. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moSolContinue.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moSolContinue.3 new file mode 100644 index 000000000..69931d0a5 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moSolContinue.3 @@ -0,0 +1,44 @@ +.TH "moSolContinue" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moSolContinue \- Class that describes a stop criterion for a solution-based heuristic. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBmoGenSolContinue< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBinit\fP ()=0" +.br +.RI "\fIProcedure which initialises all that the stop criterion needs. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moSolContinue< EOT >" +Class that describes a stop criterion for a solution-based heuristic. + +It allows to add an initialisation procedure to an object that is a unary function (eoUF). +.PP +Definition at line 22 of file moSolContinue.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoSolContinue\fP< EOT >::init ()\fC [pure virtual]\fP" +.PP +Procedure which initialises all that the stop criterion needs. +.PP +Generally, it allocates some data structures or initialises some counters. +.PP +Implemented in \fBmoGenSolContinue< EOT >\fP. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moTS.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moTS.3 new file mode 100644 index 000000000..3c48d5950 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moTS.3 @@ -0,0 +1,156 @@ +.TH "moTS" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moTS \- Tabu Search (TS). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAlgo< M::EOType >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoTS\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoTabuList\fP< M > &__tabu_list, \fBmoAspirCrit\fP< M > &__aspir_crit, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, eoEvalFunc< \fBEOT\fP > &__full_eval)" +.br +.RI "\fIConstructor of a \fBmoTS\fP specifying all the boxes. \fP" +.ti -1c +.RI "\fBmoTS\fP (\fBmoMoveExpl\fP< M > &__move_expl, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, eoEvalFunc< \fBEOT\fP > &__full_eval)" +.br +.RI "\fIConstructor with less parameters. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (\fBEOT\fP &__sol)" +.br +.RI "\fIFunction which launchs the Tabu Search. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef EOT::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoMoveExpl\fP< M > & \fBmove_expl\fP" +.br +.RI "\fINeighborhood explorer. \fP" +.ti -1c +.RI "\fBmoSolContinue\fP< \fBEOT\fP > & \fBcont\fP" +.br +.RI "\fIStop criterion. \fP" +.ti -1c +.RI "eoEvalFunc< \fBEOT\fP > & \fBfull_eval\fP" +.br +.RI "\fIFull evaluation function. \fP" +.in -1c +.SS "Static Private Attributes" + +.in +1c +.ti -1c +.RI "static bool \fBfirst_time\fP" +.br +.RI "\fIBoolean allowing to initialise the ptread_mutex_t in the constructor. \fP" +.ti -1c +.RI "static pthread_mutex_t \fBmutex\fP" +.br +.RI "\fIThe lock. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moTS< M >" +Tabu Search (TS). + +Generic algorithm that describes a tabu search. +.PP +Definition at line 30 of file moTS.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoTS\fP< M >::\fBmoTS\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoTabuList\fP< M > & __tabu_list, \fBmoAspirCrit\fP< M > & __aspir_crit, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +Constructor of a \fBmoTS\fP specifying all the boxes. +.PP +In this constructor, a \fBmoTSMoveLoopExpl\fP is instanciated. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_init\fP move initialisation +.br +\fI__next_move\fP neighborhood explorer +.br +\fI__incr_eval\fP efficient evaluation +.br +\fI__tabu_list\fP tabu list +.br +\fI__aspir_crit\fP aspiration criterion +.br +\fI__cont\fP stop criterion +.br +\fI__full_eval\fP full evaluation function +.RE +.PP + +.PP +Definition at line 59 of file moTS.h. +.PP +References moTS< M >::first_time, and moTS< M >::mutex. +.SS "template \fBmoTS\fP< M >::\fBmoTS\fP (\fBmoMoveExpl\fP< M > & __move_expl, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, eoEvalFunc< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +Constructor with less parameters. +.PP +The explorer is given in the parameters. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_expl\fP the explorer (generally different that a \fBmoTSMoveLoopExpl\fP) +.br +\fI__cont\fP stop criterion +.br +\fI__full_eval\fP full evaluation function +.RE +.PP + +.PP +Definition at line 81 of file moTS.h. +.PP +References moTS< M >::first_time, and moTS< M >::mutex. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoTS\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline]\fP" +.PP +Function which launchs the Tabu Search. +.PP +Algorithm of the tabu search. As a \fBmoSA\fP or a \fBmoHC\fP, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread_mutex_t) is closed during the algorithm. +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP a solution to improve. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE. +.RE +.PP + +.PP +Definition at line 104 of file moTS.h. +.PP +References moTS< M >::cont, moTS< M >::full_eval, moTS< M >::move_expl, and moTS< M >::mutex. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moTSMoveLoopExpl.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moTSMoveLoopExpl.3 new file mode 100644 index 000000000..b1678df56 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moTSMoveLoopExpl.3 @@ -0,0 +1,123 @@ +.TH "moTSMoveLoopExpl" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moTSMoveLoopExpl \- Explorer for a Tabu Search algorithm. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveLoopExpl< M >< M >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoTSMoveLoopExpl\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoTabuList\fP< M > &__tabu_list, \fBmoAspirCrit\fP< M > &__aspir_crit)" +.br +.RI "\fIConstructor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (const \fBEOT\fP &__old_sol, \fBEOT\fP &__new_sol)" +.br +.RI "\fIProcedure which lauches the exploration. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoMoveInit\fP< M > & \fBmove_init\fP" +.br +.RI "\fIMove initialisation. \fP" +.ti -1c +.RI "\fBmoNextMove\fP< M > & \fBnext_move\fP" +.br +.RI "\fINeighborhood explorer. \fP" +.ti -1c +.RI "\fBmoMoveIncrEval\fP< M > & \fBincr_eval\fP" +.br +.RI "\fIEfficient evaluation. \fP" +.ti -1c +.RI "\fBmoBestImprSelect\fP< M > \fBmove_select\fP" +.br +.RI "\fIMove selector. \fP" +.ti -1c +.RI "\fBmoTabuList\fP< M > & \fBtabu_list\fP" +.br +.RI "\fITabu list. \fP" +.ti -1c +.RI "\fBmoAspirCrit\fP< M > & \fBaspir_crit\fP" +.br +.RI "\fIAspiration criterion. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moTSMoveLoopExpl< M >" +Explorer for a Tabu Search algorithm. + +It is used by a \fBmoTS\fP. +.PP +Definition at line 30 of file moTSMoveLoopExpl.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoTSMoveLoopExpl\fP< M >::\fBmoTSMoveLoopExpl\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoTabuList\fP< M > & __tabu_list, \fBmoAspirCrit\fP< M > & __aspir_crit)\fC [inline]\fP" +.PP +Constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_init\fP move initialisation +.br +\fI__next_move\fP neighborhood explorer +.br +\fI__incr_eval\fP efficient evaluation +.br +\fI__tabu_list\fP tabu list +.br +\fI__aspir_crit\fP aspiration criterion +.RE +.PP + +.PP +Definition at line 49 of file moTSMoveLoopExpl.h. +.PP +References moTSMoveLoopExpl< M >::aspir_crit, and moTSMoveLoopExpl< M >::tabu_list. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoTSMoveLoopExpl\fP< M >::operator() (const \fBEOT\fP & __old_sol, \fBEOT\fP & __new_sol)\fC [inline]\fP" +.PP +Procedure which lauches the exploration. +.PP +The exploration continues while the chosen move is not in the tabu list or the aspiration criterion is true. If these 2 conditions are not true, the exploration stops if the move selector update function returns false. +.PP +\fBParameters:\fP +.RS 4 +\fI__old_sol\fP the initial solution +.br +\fI__new_sol\fP the new solution +.RE +.PP + +.PP +Definition at line 69 of file moTSMoveLoopExpl.h. +.PP +References moTSMoveLoopExpl< M >::aspir_crit, moTSMoveLoopExpl< M >::incr_eval, moTSMoveLoopExpl< M >::move_init, moTSMoveLoopExpl< M >::move_select, moTSMoveLoopExpl< M >::next_move, and moTSMoveLoopExpl< M >::tabu_list. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/man/man3/moTabuList.3 b/trunk/paradiseo-mo/tutorial/docs/man/man3/moTabuList.3 new file mode 100644 index 000000000..0c5ed0876 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/man/man3/moTabuList.3 @@ -0,0 +1,75 @@ +.TH "moTabuList" 3 "18 Dec 2006" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moTabuList \- Class describing a tabu list that a \fBmoTS\fP uses. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBadd\fP (const M &__move, const \fBEOT\fP &__sol)=0" +.br +.RI "\fIProcedure to add a move in the tabu list. \fP" +.ti -1c +.RI "virtual void \fBupdate\fP ()=0" +.br +.RI "\fIProcedure that updates the tabu list content. \fP" +.ti -1c +.RI "virtual void \fBinit\fP ()=0" +.br +.RI "\fIProcedure which initialises the tabu list. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moTabuList< M >" +Class describing a tabu list that a \fBmoTS\fP uses. + +It is only a description, does nothing... A new object that herits from this class has to be defined in order to be used in a \fBmoTS\fP. +.PP +Definition at line 22 of file moTabuList.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoTabuList\fP< M >::add (const M & __move, const \fBEOT\fP & __sol)\fC [pure virtual]\fP" +.PP +Procedure to add a move in the tabu list. +.PP +The two parameters have not to be modified so they are constant parameters +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a new tabu move +.br +\fI__sol\fP the solution associated to this move +.RE +.PP + +.SS "template virtual void \fBmoTabuList\fP< M >::update ()\fC [pure virtual]\fP" +.PP +Procedure that updates the tabu list content. +.PP +Generally, a counter associated to each saved move is decreased by one. +.SS "template virtual void \fBmoTabuList\fP< M >::init ()\fC [pure virtual]\fP" +.PP +Procedure which initialises the tabu list. +.PP +Can be useful if the data structure needs to be allocated before being used. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/trunk/paradiseo-mo/tutorial/docs/mo.doxytag b/trunk/paradiseo-mo/tutorial/docs/mo.doxytag new file mode 100644 index 000000000..f7c6666c2 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/docs/mo.doxytag @@ -0,0 +1,884 @@ + + + + main + Welcome to PARADISEO-Moving Objects + main + intro + tutorial + install + design + + + EmptySelection + class_empty_selection.html + + + moAlgo + classmo_algo.html + EOT + + + moAspirCrit + classmo_aspir_crit.html + M + + virtual void + init + classmo_aspir_crit.html + a8ce84510a5ec7c9078381e542c6d140 + ()=0 + + + + moBestImprSelect + classmo_best_impr_select.html + M + moMoveSelect + + M::EOType::Fitness + Fitness + classmo_best_impr_select.html + c4ae17435221fb0a8e8acd285210cfcb + + + + void + init + classmo_best_impr_select.html + 2d2abf9aa17dc77cbb4f41810ab7b956 + (const Fitness &__fit) + + + bool + update + classmo_best_impr_select.html + d10e3e6f8a0277731e95ef506d064d6d + (const M &__move, const Fitness &__fit) + + + void + operator() + classmo_best_impr_select.html + 169773d4d127acd782cf379f758222da + (M &__move, Fitness &__fit) + + + bool + first_time + classmo_best_impr_select.html + 352b14d206b0772eb9f40efb7beb0f13 + + + + M + best_move + classmo_best_impr_select.html + bd86f70519f954c07ff0d8a2a3a8ff6a + + + + Fitness + best_fit + classmo_best_impr_select.html + dcac897424b5805f146bb1dbb429f2fe + + + + + moCoolSched + classmo_cool_sched.html + + + moEasyCoolSched + classmo_easy_cool_sched.html + moCoolSched + + + moEasyCoolSched + classmo_easy_cool_sched.html + c556b41343700293bb17e3b20d81e0f2 + (double __threshold, double __ratio) + + + bool + operator() + classmo_easy_cool_sched.html + ca08df878417ef1124e6933a9c2d7a0b + (double &__temp) + + + double + threshold + classmo_easy_cool_sched.html + 3dd53700390b7bb6428db80e01626c83 + + + + double + ratio + classmo_easy_cool_sched.html + 1f84deff87defafd927e8c323b188f38 + + + + + moFirstImprSelect + classmo_first_impr_select.html + M + moMoveSelect + + M::EOType::Fitness + Fitness + classmo_first_impr_select.html + 64763ce3e6d2873266624382b407fa5a + + + + virtual void + init + classmo_first_impr_select.html + 4c5ce18ede46247a439c68f6954a4055 + (const Fitness &__fit) + + + bool + update + classmo_first_impr_select.html + 7ba0882728daedc75c249647c070ccf0 + (const M &__move, const typename M::EOType::Fitness &__fit) + + + void + operator() + classmo_first_impr_select.html + 3be12cf4cbaed00df7c4fa735b2c0a95 + (M &__move, Fitness &__fit) + + + bool + valid + classmo_first_impr_select.html + a99c0586ba07449234705c17a258d58c + + + + M + best_move + classmo_first_impr_select.html + dfed419a608dd7c41f07fa1f1279cb8c + + + + Fitness + init_fit + classmo_first_impr_select.html + ce7ba63e8cc3a9164f4e546477e98ca8 + + + + Fitness + best_fit + classmo_first_impr_select.html + e1190347b76ec6fe717be32354b4a9a9 + + + + + moGenSolContinue + classmo_gen_sol_continue.html + EOT + moSolContinue + + + moGenSolContinue + classmo_gen_sol_continue.html + 6b6cab23a23bd8904ea52ef5141d8d0a + (unsigned __maxNumGen) + + + bool + operator() + classmo_gen_sol_continue.html + 457257cd73b474d6f7783d84d02c2e61 + (const EOT &__sol) + + + void + init + classmo_gen_sol_continue.html + 6c5db8182157584b56507cc9075602d4 + () + + + unsigned + maxNumGen + classmo_gen_sol_continue.html + 6d7674fc51d17423e8ee28693a08b5af + + + + unsigned + numGen + classmo_gen_sol_continue.html + a18ebfd270f96517b4edaa2cad3eb9e0 + + + + + moHC + classmo_h_c.html + M + moAlgo< M::EOType > + + + moHC + classmo_h_c.html + 6cafe093f86a80c225827884cb9dc5b7 + (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select, eoEvalFunc< EOT > &__full_eval) + + + + moHC + classmo_h_c.html + 45f27309792e584a27fa6dcb86ccda65 + (moMoveExpl< M > &__move_expl, eoEvalFunc< EOT > &__full_eval) + + + bool + operator() + classmo_h_c.html + ed4e273c420efa6386c5975a696a5010 + (EOT &__sol) + + + M::EOType + EOT + classmo_h_c.html + d219296ede03c679646bce2fe8ff96cb + + + + EOT::Fitness + Fitness + classmo_h_c.html + 56487c97a7cf0c423cc879d1bbd45027 + + + + moMoveExpl< M > & + move_expl + classmo_h_c.html + f6bfb4553fb699f1e08f7d9c37d06103 + + + + eoEvalFunc< EOT > & + full_eval + classmo_h_c.html + 4b0d5cc70fc3d83f59a48b2bdea65736 + + + + + moHCMoveLoopExpl + classmo_h_c_move_loop_expl.html + M + moMoveLoopExpl + + + moHCMoveLoopExpl + classmo_h_c_move_loop_expl.html + 11410d648d79746253e9dc249c4ec7b5 + (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select) + + + void + operator() + classmo_h_c_move_loop_expl.html + f48d5379caac7f6a165e9fe8840e6ccb + (const EOT &__old_sol, EOT &__new_sol) + + + M::EOType + EOT + classmo_h_c_move_loop_expl.html + 077befd4106c201eafd3ea22bcea2fe9 + + + + M::EOType::Fitness + Fitness + classmo_h_c_move_loop_expl.html + f24871224316d5549b9013a2d27ab465 + + + + moMoveInit< M > & + move_init + classmo_h_c_move_loop_expl.html + 6776fc51331c1b452d026b92448b4ffc + + + + moNextMove< M > & + next_move + classmo_h_c_move_loop_expl.html + f716c5271e0eba9275c585dc52768443 + + + + moMoveIncrEval< M > & + incr_eval + classmo_h_c_move_loop_expl.html + 84a8fccba05ab30414281469bc8ee779 + + + + moMoveSelect< M > & + move_select + classmo_h_c_move_loop_expl.html + 13bcd1322b2b97fd665be2f60c532fbb + + + + + moImprBestFitAspirCrit + classmo_impr_best_fit_aspir_crit.html + M + moAspirCrit + + M::EOType::Fitness + Fitness + classmo_impr_best_fit_aspir_crit.html + 0bc1a8c9af99781e662570c04750cca8 + + + + + moImprBestFitAspirCrit + classmo_impr_best_fit_aspir_crit.html + e2c697a5cf3a7696e38bb52b6694a340 + () + + + void + init + classmo_impr_best_fit_aspir_crit.html + ffa451a14ff4ea86fb8bd9fdbc348630 + () + + + bool + operator() + classmo_impr_best_fit_aspir_crit.html + 53f62fb56dcae3051a741f1fddb0204b + (const M &__move, const Fitness &__fit) + + + Fitness + best_fit + classmo_impr_best_fit_aspir_crit.html + 9e52383f0af8013b4aff0942325e1bf3 + + + + bool + first_time + classmo_impr_best_fit_aspir_crit.html + 2d5226c7dd661b33011402dbbbe78265 + + + + + moItRandNextMove + classmo_it_rand_next_move.html + M + moNextMove + + + moItRandNextMove + classmo_it_rand_next_move.html + 95ed13e1178f4e44cab7184b040b83d7 + (moRandMove< M > &__rand_move, unsigned __max_iter) + + + bool + operator() + classmo_it_rand_next_move.html + 92a2fbbc02a20853b9a309e99018a102 + (M &__move, const EOT &__sol) + + + M::EOType + EOT + classmo_it_rand_next_move.html + ee666007fc494bf4a5f0cd065e5671cf + + + + moRandMove< M > & + rand_move + classmo_it_rand_next_move.html + ef9410ec5e7dfa7f002e05967931c459 + + + + unsigned + max_iter + classmo_it_rand_next_move.html + 3c476f7cc089b171493c52965f920542 + + + + unsigned + num_iter + classmo_it_rand_next_move.html + c3551d7910cf351d63f0f3427fc18504 + + + + + moLSCheckPoint + classmo_l_s_check_point.html + M + + void + operator() + classmo_l_s_check_point.html + 2f9c1250279e3f49ec77a66c10029f1e + (const M &__move, const typename M::EOType &__sol) + + + void + add + classmo_l_s_check_point.html + 66be5fe2944bcdd752f1e58105e969a6 + (eoBF< const M &, const typename M::EOType &, void > &__f) + + + std::vector< eoBF< const M &, const typename M::EOType &, void > * > + func + classmo_l_s_check_point.html + ff2a31ee5689a804bd9a572c51a36ca4 + + + + + moMove + classmo_move.html + EOT + + EOT + EOType + classmo_move.html + 7fb853a91ba1319530529e515380bbba + + + + + moMoveExpl + classmo_move_expl.html + M + + + moMoveIncrEval + classmo_move_incr_eval.html + M + + + moMoveInit + classmo_move_init.html + M + + + moMoveLoopExpl + classmo_move_loop_expl.html + M + moMoveExpl + + + moMoveSelect + classmo_move_select.html + M + + M::EOType::Fitness + Fitness + classmo_move_select.html + 8148ccc0e6fbd209c3fe6829559895c8 + + + + virtual void + init + classmo_move_select.html + bca4c43f13d26eca7163aeb272a4a52e + (const Fitness &__fit)=0 + + + virtual bool + update + classmo_move_select.html + 7c157b6e64fd417acf6e900059204eb1 + (const M &__move, const Fitness &__fit)=0 + + + + moNextMove + classmo_next_move.html + M + + + moNoAspirCrit + classmo_no_aspir_crit.html + M + moAspirCrit + + bool + operator() + classmo_no_aspir_crit.html + 8a7180a8d5c25bfb6727d0b59551b0f8 + (const M &__move, const typename M::EOType::Fitness &__sol) + + + void + init + classmo_no_aspir_crit.html + f3a286fc4c2d36bd390ba9a3074f3037 + () + + + + moRandImprSelect + classmo_rand_impr_select.html + M + moMoveSelect + + M::EOType::Fitness + Fitness + classmo_rand_impr_select.html + 3bff2fdb963297430543c82ffb567a5c + + + + void + init + classmo_rand_impr_select.html + a19726a1509cff874801615d63a3b5d9 + (const Fitness &__fit) + + + bool + update + classmo_rand_impr_select.html + 60ae5548560caee7e28d5ed2446186c9 + (const M &__move, const Fitness &__fit) + + + void + operator() + classmo_rand_impr_select.html + 5ee57f77a450c0a9ce50bfccf3ad2a55 + (M &__move, Fitness &__fit) + + + Fitness + init_fit + classmo_rand_impr_select.html + d153c277a0a2ea95ac484210d445b40e + + + + std::vector< Fitness > + vect_better_fit + classmo_rand_impr_select.html + 05c7c3b858e8a25632f2f5c86b0c97a3 + + + + std::vector< M > + vect_better_moves + classmo_rand_impr_select.html + 2ace12bd179144fa71d56324694201f5 + + + + + moRandMove + classmo_rand_move.html + M + + + moSA + classmo_s_a.html + M + moAlgo< M::EOType > + + + moSA + classmo_s_a.html + ef9ffb0d95c599e0a06c78db5f2f4b12 + (moRandMove< M > &__move_rand, moMoveIncrEval< M > &__incr_eval, moSolContinue< EOT > &__cont, double __init_temp, moCoolSched &__cool_sched, eoEvalFunc< EOT > &__full_eval) + + + bool + operator() + classmo_s_a.html + 0e4c54b57bc13fcbd4763883b8f719e5 + (EOT &__sol) + + + M::EOType + EOT + classmo_s_a.html + d5d64a8797bdedc7b3af7893aded0bd5 + + + + EOT::Fitness + Fitness + classmo_s_a.html + 97f1a40d5ab5a0b3f878d0347b34804b + + + + moRandMove< M > & + move_rand + classmo_s_a.html + 71c49935b63a202d25888a5f86121fec + + + + moMoveIncrEval< M > & + incr_eval + classmo_s_a.html + 4c3be32e9832e465b24e6d33559356bc + + + + moSolContinue< EOT > & + cont + classmo_s_a.html + 54484c8a514866ea496e0058c2e09716 + + + + double + init_temp + classmo_s_a.html + f1af7636b52aa5f6b381f8187b667bd4 + + + + moCoolSched & + cool_sched + classmo_s_a.html + c7aaf7424aa1b9f889d2ba9c959e5a1d + + + + eoEvalFunc< EOT > & + full_eval + classmo_s_a.html + bcd6a940046f23dd741444c0b85edf2c + + + + + moSolContinue + classmo_sol_continue.html + EOT + + virtual void + init + classmo_sol_continue.html + 064dc966a210f4ffb9515be3f03ca4c7 + ()=0 + + + + moTabuList + classmo_tabu_list.html + M + + M::EOType + EOT + classmo_tabu_list.html + e219715cc3fdd5626764bc50ce6357df + + + + virtual void + add + classmo_tabu_list.html + d279d72cb486d812da1ad3d24a69c286 + (const M &__move, const EOT &__sol)=0 + + + virtual void + update + classmo_tabu_list.html + a2e5d1132f064093c8ed57046405f5ca + ()=0 + + + virtual void + init + classmo_tabu_list.html + 0a06c459d56e8e2b408a8f3c6aec4e57 + ()=0 + + + + moTS + classmo_t_s.html + M + moAlgo< M::EOType > + + + moTS + classmo_t_s.html + 2be23f4524733ee6f37b71310d76407e + (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval) + + + + moTS + classmo_t_s.html + 508e675c4232cf2ca06dded931c90bab + (moMoveExpl< M > &__move_expl, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval) + + + bool + operator() + classmo_t_s.html + 94d25a76fe1bc9ef0bbd0358ff55aceb + (EOT &__sol) + + + M::EOType + EOT + classmo_t_s.html + 90d19d468c12ab5bd796948ce1ce79b1 + + + + EOT::Fitness + Fitness + classmo_t_s.html + aa0eefbb17111422e495d1255f876fca + + + + moMoveExpl< M > & + move_expl + classmo_t_s.html + 06914ddc90ca96e9158c8dbe182a7865 + + + + moSolContinue< EOT > & + cont + classmo_t_s.html + 969371cd2202f3d29cbb426f57ac7d3a + + + + eoEvalFunc< EOT > & + full_eval + classmo_t_s.html + fb67eddae5d0bfca4ed881995523231e + + + + static bool + first_time + classmo_t_s.html + 564bc1969548ccbd9bb7e76f92898de0 + + + + static pthread_mutex_t + mutex + classmo_t_s.html + 688f9ba42eb33cae6431f4f4eb65b9e9 + + + + + moTSMoveLoopExpl + classmo_t_s_move_loop_expl.html + M + moMoveLoopExpl + + + moTSMoveLoopExpl + classmo_t_s_move_loop_expl.html + 43306dae9df150a8d9dc0dec9cd6a381 + (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit) + + + void + operator() + classmo_t_s_move_loop_expl.html + f601bbd0ccc41d6fbe3df9fcd87ad9e7 + (const EOT &__old_sol, EOT &__new_sol) + + + M::EOType + EOT + classmo_t_s_move_loop_expl.html + 47f42225e2ed096374b818bdb848a527 + + + + M::EOType::Fitness + Fitness + classmo_t_s_move_loop_expl.html + a1ba36c937b195ca2f7d1a24adaa7018 + + + + moMoveInit< M > & + move_init + classmo_t_s_move_loop_expl.html + 6b23f99648902fb72ed17a4a6fa4e400 + + + + moNextMove< M > & + next_move + classmo_t_s_move_loop_expl.html + aeeff6666d26ff5c67acd9c153a5ae49 + + + + moMoveIncrEval< M > & + incr_eval + classmo_t_s_move_loop_expl.html + ee4443fc8e45d840697619678628c26c + + + + moBestImprSelect< M > + move_select + classmo_t_s_move_loop_expl.html + 35a3f3035fb8df875c281d9838904bf1 + + + + moTabuList< M > & + tabu_list + classmo_t_s_move_loop_expl.html + 0e5988a940ba218e87c53b7e56d79790 + + + + moAspirCrit< M > & + aspir_crit + classmo_t_s_move_loop_expl.html + 6786cf5422d17cbf872b07ae74ca6b0f + + + + diff --git a/trunk/paradiseo-mo/tutorial/src/Makefile.am b/trunk/paradiseo-mo/tutorial/src/Makefile.am new file mode 100644 index 000000000..ae1e51b3c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/Makefile.am @@ -0,0 +1 @@ +# Nothing to compile ! diff --git a/trunk/paradiseo-mo/tutorial/src/index.h b/trunk/paradiseo-mo/tutorial/src/index.h new file mode 100644 index 000000000..10ac58f88 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/index.h @@ -0,0 +1,26 @@ +/** @mainpage Welcome to PARADISEO-Moving Objects + +@section intro Introduction + +MO is an extension of the ANSI-C++ compliant evolutionary computation library EO. +
+It contains classes for almost any kind of one solution based heuristics. + +@section tutorial Tutorial + + +@section install Installation + +The installation procedure of the package is detailed in the +README file in the top-directory of the source-tree. + +@section design Overall Design + +*/ + + +// coding: iso-8859-1 +// mode: C++ +// c-file-style: "Stroustrup" +// fill-column: 80 +// End: diff --git a/trunk/paradiseo-mo/tutorial/src/mo b/trunk/paradiseo-mo/tutorial/src/mo new file mode 100644 index 000000000..81c9fea9f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/mo @@ -0,0 +1,6 @@ +#ifndef __mo +#define __mo + +#include "mo.h" + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/mo.h b/trunk/paradiseo-mo/tutorial/src/mo.h new file mode 100644 index 000000000..25e95cae5 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/mo.h @@ -0,0 +1,43 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "mo.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __mo_h +#define __mo_h + +#include "moAspirCrit.h" +#include "moAlgo.h" +#include "moBestImprSelect.h" +#include "moCoolSched.h" +#include "moEasyCoolSched.h" +#include "moFirstImprSelect.h" +#include "moGenSolContinue.h" +#include "moHC.h" +#include "moHCMoveLoopExpl.h" +#include "moImprBestFitAspirCrit.h" +#include "moItRandNextMove.h" +#include "moLSCheckPoint.h" +#include "moMoveExpl.h" +#include "moMove.h" +#include "moMoveIncrEval.h" +#include "moMoveInit.h" +#include "moMoveLoopExpl.h" +#include "moMoveSelect.h" +#include "moNextMove.h" +#include "moNoAspirCrit.h" +#include "moRandImprSelect.h" +#include "moRandMove.h" +#include "moSA.h" +#include "moSolContinue.h" +#include "moTabuList.h" +#include "moTS.h" +#include "moTSMoveLoopExpl.h" + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moAlgo.h b/trunk/paradiseo-mo/tutorial/src/moAlgo.h new file mode 100644 index 000000000..4e55c23e7 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moAlgo.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moAlgo.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moAlgo_h +#define __moAlgo_h + +#include + +//! Description of an algorithm of the mo library +/*! + moHC, moTS and moSA are 3 examples of algorithm of the mo library. + */ +template < class EOT > class moAlgo:public eoMonOp < EOT > +{ + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moAspirCrit.h b/trunk/paradiseo-mo/tutorial/src/moAspirCrit.h new file mode 100644 index 000000000..99c92727b --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moAspirCrit.h @@ -0,0 +1,37 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moAspirCrit.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moAspirCrit_h +#define __moAspirCrit_h + +#include + +//! Description of the conditions in which a tabu move could be accepted +/*! + It is only a description... An object that herits from this class is needed to be used in a moTS. + See moNoAspriCrit for example. + */ +template < class M > class moAspirCrit:public eoBF < const M &, const typename + M::EOType::Fitness &, + bool > +{ + +public: + //! Procedure which initialises all that needs a aspiration criterion. + /*! + It can be possible that this procedure do nothing... + */ + virtual void + init () = 0; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moBestImprSelect.h b/trunk/paradiseo-mo/tutorial/src/moBestImprSelect.h new file mode 100644 index 000000000..30c846236 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moBestImprSelect.h @@ -0,0 +1,93 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moBestImprSelect.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moBestImprSelect_h +#define __moBestImprSelect_h + +#include "moMoveSelect.h" + +//! One of the possible moMoveSelect. +/*! + All neighbors are considered, and the movement + which enables the best improvement is selected. +*/ +template < class M > class moBestImprSelect:public moMoveSelect < M > +{ + +public: + + //! Alias for the fitness. + typedef typename M::EOType::Fitness Fitness; + + //! Procedure which initialise the exploration + void init (const Fitness & __fit) + { + + first_time = true; + } + + + //!Function that indicates if the current move has not improved the fitness. + /*! + If the given fitness enables an improvment, + the move (moMove) and the fitness linked to this move are saved. + + \param __move a move. + \param __fit a fitness linked to the move. + \return TRUE if the move does not improve the fitness. + */ + bool update (const M & __move, const Fitness & __fit) + { + + if (first_time || __fit > best_fit) + { + + best_fit = __fit; + best_move = __move; + + first_time = false; + } + + return true; + } + + //! Procedure which saved the best move and fitness. + /*! + \param __move the current move (result of the procedure). + \param __fit the current fitness (result of the procedure). + \throws EmptySelection if no move has improved the fitness. + */ + void operator () (M & __move, Fitness & __fit) throw (EmptySelection) + { + + if (!first_time) + { + __move = best_move; + __fit = best_fit; + } + else + throw EmptySelection (); + } + +private: + + //! Allowing to know if at least one move has been generated. + bool first_time; + + //! The best move. + M best_move; + + //! The best fitness. + Fitness best_fit; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moCoolSched.h b/trunk/paradiseo-mo/tutorial/src/moCoolSched.h new file mode 100644 index 000000000..9ce2d40b3 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moCoolSched.h @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moCoolSched.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moCoolSched_h +#define __moCoolSched_h + +#include + +//! This class gives the description of a cooling schedule. +/*! + It is only a description... An object that herits from this class is needed to be used in a moSA. + See moEasyCoolSched for example. +*/ +class moCoolSched:public eoUF < double &, bool > +{ + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moEasyCoolSched.h b/trunk/paradiseo-mo/tutorial/src/moEasyCoolSched.h new file mode 100644 index 000000000..90baecc22 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moEasyCoolSched.h @@ -0,0 +1,60 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moEasyCoolSched.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moEasyCoolSched_h +#define __moEasyCoolSched_h + +#include "moCoolSched.h" + +//! One of the possible moCoolSched +/*! + The simpliest, the temperature decrease according to a ratio until + it greater than a threshold. + */ +class moEasyCoolSched:public moCoolSched +{ + +public: + //! Simple constructor + /*! + \param __threshold the threshold. + \param __ratio the ratio used to descrease the temperature. + */ + moEasyCoolSched (double __threshold, + double __ratio):threshold (__threshold), ratio (__ratio) + { + + } + + //! Function which proceeds to the cooling. + /*! + Decrease the temperature and indicates if it is greater than the threshold. + + \param __temp the current temperature. + \return if the new temperature (current temperature * ratio) is greater than the threshold. + */ + bool operator () (double &__temp) + { + + return (__temp *= ratio) > threshold; + } + +private: + + //! The temperature threhold. + double threshold; + + //! The decreasing factor of the temperature. + double ratio; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moFirstImprSelect.h b/trunk/paradiseo-mo/tutorial/src/moFirstImprSelect.h new file mode 100644 index 000000000..6656d5a95 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moFirstImprSelect.h @@ -0,0 +1,104 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moFirstImprSelect.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moFirstImprSelect_h +#define __moFirstImprSelect_h + +#include "moMoveSelect.h" + +//! One possible moMoveSelect. +/*! + The neighborhood is explored until + a move enables an improvment of the + current solution. +*/ +template < class M > class moFirstImprSelect:public moMoveSelect < M > +{ + +public: + + //! Alias for the fitness. + typedef typename M::EOType::Fitness Fitness; + + //! Procedure which initialise the exploration. + /*! + It save the current fitness as the initial value for the fitness. + */ + virtual void init (const Fitness & __fit) + { + + valid = false; + init_fit = __fit; + } + + + //!Function that indicates if the current move has not improved the fitness. + /*! + If the given fitness enables an improvment, + the move (moMove) should be applied to the current solution. + + \param __move a move. + \param __fit a fitness linked to the move. + \return TRUE if the move does not improve the fitness. + */ + bool update (const M & __move, const typename M::EOType::Fitness & __fit) + { + + if (__fit > init_fit) + { + + best_fit = __fit; + best_move = __move; + valid = true; + + return false; + } + else + { + return true; + } + } + + //! Procedure which saved the best move and fitness. + /*! + \param __move the current move (result of the procedure). + \param __fit the current fitness (result of the procedure). + \throws EmptySelection if no move has improved the fitness. + */ + void operator () (M & __move, Fitness & __fit) throw (EmptySelection) + { + + if (valid) + { + __move = best_move; + __fit = best_fit; + } + else + throw EmptySelection (); + } + +private: + + //! Allow to know if at least one move has improved the solution. + bool valid; + + //! Best stored movement. + M best_move; + + //! Initial fitness. + Fitness init_fit; + + //! Best stored fitness. + Fitness best_fit; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moGenSolContinue.h b/trunk/paradiseo-mo/tutorial/src/moGenSolContinue.h new file mode 100644 index 000000000..79921a627 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moGenSolContinue.h @@ -0,0 +1,69 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "eoGenSolContinue.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moGenSolContinue_h +#define __moGenSolContinue_h + +#include "moSolContinue.h" + +//! One possible stop criterion for a solution-based heuristic. +/*! + The stop criterion corresponds to a maximum number of iteration. + */ +template < class EOT > class moGenSolContinue:public moSolContinue < EOT > +{ + +public: + + //! Simple constructor. + /*! + \param __maxNumGen the maximum number of generation. + */ + moGenSolContinue (unsigned __maxNumGen):maxNumGen (__maxNumGen), numGen (0) + { + + } + + //! Function that activates the stop criterion. + /*! + Increments the counter and returns TRUE if the + current number of iteration is lower than the given + maximum number of iterations. + + \param __sol the current solution. + \return TRUE or FALSE according to the current generation number. + */ + bool operator () (const EOT & __sol) + { + + return (++numGen < maxNumGen); + } + + //! Procedure which allows to initialise the generation counter. + /*! + It can also be used to reset the iteration counter. + */ + void init () + { + + numGen = 0; + } + +private: + + //! Iteration maximum number. + unsigned maxNumGen; + + //! Iteration current number. + unsigned numGen; +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moHC.h b/trunk/paradiseo-mo/tutorial/src/moHC.h new file mode 100644 index 000000000..30d82ed00 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moHC.h @@ -0,0 +1,133 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moHC.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moHC_h +#define __moHC_h + +#include +#include + +#include "moAlgo.h" +#include "moMoveExpl.h" +#include "moHCMoveLoopExpl.h" + +//! Hill Climbing (HC) +/*! + Class which describes the algorithm for a hill climbing. + */ +template < class M > class moHC:public moAlgo < typename M::EOType > +{ + + //! Alias for the type. + typedef + typename + M::EOType + EOT; + + //! Alias for the fitness. + typedef + typename + EOT::Fitness + Fitness; + +public: + + //! Full constructor. + /*! + All the boxes are given in order the HC to use a moHCMoveLoopExpl. + + \param __move_init a move initialiser. + \param __next_move a neighborhood explorer. + \param __incr_eval a (generally) efficient evaluation function. + \param __move_select a move selector. + \param __full_eval a full evaluation function. + */ +moHC (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moMoveSelect < M > &__move_select, eoEvalFunc < EOT > &__full_eval):move_expl (*new moHCMoveLoopExpl < M > + (__move_init, __next_move, __incr_eval, __move_select)), + full_eval (__full_eval) + { + + } + + //! Light constructor. + /*! + This constructor allow to use another moMoveExpl (generally not a moHCMoveLoopExpl). + + \param __move_expl a complete explorer. + \param __full_eval a full evaluation function. + */ +moHC (moMoveExpl < M > &__move_expl, eoEvalFunc < EOT > &__full_eval):move_expl (__move_expl), + full_eval + (__full_eval) + { + + } + + //! Function which launches the HC + /*! + The HC has to improve a current solution. + As the moSA and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm. + + \param __sol a current solution to improve. + \return TRUE. + */ + bool operator ()(EOT & __sol) + { + + if (__sol.invalid ()) + { + full_eval (__sol); + } + + EOT new_sol; + + do + { + + new_sol = __sol; + + try + { + + move_expl (__sol, new_sol); + + } + catch (EmptySelection & __ex) + { + + break; + } + + if (new_sol.fitness () > __sol.fitness ()) + { + __sol = new_sol; + } + else + { + break; + } + + } + while (true); + + return true; + } + +private: + + //! Complete exploration of the neighborhood. + moMoveExpl < M > &move_expl; + + //! A full evaluation function. + eoEvalFunc < EOT > &full_eval; +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moHCMoveLoopExpl.h b/trunk/paradiseo-mo/tutorial/src/moHCMoveLoopExpl.h new file mode 100644 index 000000000..f9ff78bea --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moHCMoveLoopExpl.h @@ -0,0 +1,108 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moHCMoveLoopExpl.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moHCMoveLoopExpl_h +#define __moHCMoveLoopExpl_h + +#include "moMoveLoopExpl.h" + +#include "moMoveInit.h" +#include "moNextMove.h" +#include "moMoveIncrEval.h" +#include "moMoveSelect.h" + +//! Iterative explorer used by a moHC. +template < class M > class moHCMoveLoopExpl:public moMoveLoopExpl < M > +{ + + //! Alias for the type. + typedef typename M::EOType EOT; + + //! Alias for the fitness. + typedef typename M::EOType::Fitness Fitness; + +public: + + //! Constructor. + /*! + All the boxes have to be specified. + + \param __move_init the move initialiser. + \param __next_move the neighborhood explorer. + \param __incr_eval (generally) efficient evaluation function. + \param __move_select the move selector. + */ +moHCMoveLoopExpl (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moMoveSelect < M > &__move_select): + + move_init (__move_init), + next_move (__next_move), + incr_eval (__incr_eval), move_select (__move_select) + { + + } + + //! Procedure which launches the explorer. + /*! + The exploration starts from an old solution and provides a new solution. + + \param __old_sol the current solution. + \param __new_sol the new_sol (result of the procedure). + */ + void operator () (const EOT & __old_sol, EOT & __new_sol) + { + + M move; + + // + move_init (move, __old_sol); /* Restarting the exploration of + of the neighborhood ! */ + + move_select.init (__old_sol.fitness ()); + + while (move_select.update (move, incr_eval (move, __old_sol)) + && next_move (move, __old_sol)); + + try + { + + M best_move; + + Fitness best_move_fit; + + move_select (best_move, best_move_fit); + __new_sol.fitness (best_move_fit); + best_move (__new_sol); + + } + catch (EmptySelection & __ex) + { + + // ? + } + } + +private: + + //! Move initialiser. + moMoveInit < M > &move_init; + + //! Neighborhood explorer. + moNextMove < M > &next_move; + + //! (generally) Efficient evaluation. + moMoveIncrEval < M > &incr_eval; + + //! Move selector. + moMoveSelect < M > &move_select; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moImprBestFitAspirCrit.h b/trunk/paradiseo-mo/tutorial/src/moImprBestFitAspirCrit.h new file mode 100644 index 000000000..d0cf06486 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moImprBestFitAspirCrit.h @@ -0,0 +1,84 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moImprAspirCrit.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moImprBestFitAspirCrit_h +#define __moImprBestFitAspirCrit_h + +#include "moAspirCrit.h" + +//! One of the possible moAspirCrit +/*! + This criterion is satisfied when a given fitness + is the best ever considered. +*/ +template < class M > class moImprBestFitAspirCrit:public moAspirCrit < M > +{ + +public: + + //! Alias for the fitness + typedef typename M::EOType::Fitness Fitness; + + //! Contructor + moImprBestFitAspirCrit () + { + + first_time = true; + } + + //! Initialisation procedure + void init () + { + + first_time = true; + } + + //! Function that indicates if the fit is better that the already saved fit + /*! + The first time, the function only saved the current move and fitness. + + \param __move a move. + \param __fit a fitnes linked to the move. + \return TRUE the first time and if __fit > best_fit, else FALSE. + */ + bool operator () (const M & __move, const Fitness & __fit) + { + + if (first_time) + { + + best_fit = __fit; + first_time = false; + + return true; + } + else if (__fit < best_fit) + return false; + + else + { + + best_fit = __fit; + + return true; + } + } + +private: + + //! Best fitness found until now + Fitness best_fit; + + //! Indicates that a fitness has been already saved or not + bool first_time; +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moItRandNextMove.h b/trunk/paradiseo-mo/tutorial/src/moItRandNextMove.h new file mode 100644 index 000000000..5f24bed39 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moItRandNextMove.h @@ -0,0 +1,84 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moNextMove.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moItRandNextMove_h +#define __moItRandNextMove_h + +#include "moNextMove.h" +#include "moRandMove.h" + +//! One of the possible moNextMove. +/*! + This class is a move (moMove) generator with a bound for the maximum number of iterations. +*/ +template < class M > class moItRandNextMove:public moNextMove < M > +{ + + //! Alias for the type. + typedef typename M::EOType EOT; + +public: + + //! The constructor. + /*! + Parameters only for initialising the attributes. + + \param __rand_move the random move generator. + \param __max_iter the iteration maximum number. + */ + moItRandNextMove (moRandMove < M > &__rand_move, + unsigned __max_iter):rand_move (__rand_move), + max_iter (__max_iter), num_iter (0) + { + + } + + //! Generation of a new move + /*! + If the maximum number is not already reached, the current move is forgotten and remplaced by another one. + + \param __move the current move. + \param __sol the current solution. + \return FALSE if the maximum number of iteration is reached, else TRUE. + */ + bool operator () (M & __move, const EOT & __sol) + { + + if (num_iter++ > max_iter) + { + + num_iter = 0; + return false; + } + else + { + + /* The given solution is discarded here */ + rand_move (__move); + num_iter++; + return true; + } + } + +private: + + //! A move generator (generally randomly). + moRandMove < M > &rand_move; + + //! Iteration maximum number. + unsigned max_iter; + + //! Iteration current number. + unsigned num_iter; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moLSCheckPoint.h b/trunk/paradiseo-mo/tutorial/src/moLSCheckPoint.h new file mode 100644 index 000000000..78a8e3e52 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moLSCheckPoint.h @@ -0,0 +1,66 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moLSCheckPoint.h" + +// (c) OPAC Team, LIFL, 2003 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moSolUpdater_h +#define __moSolUpdater_h + +#include + +//! Class which allows a checkpointing system. +/*! + Thanks to this class, at each iteration, additionnal function can be used (and not only one). +*/ +template < class M > class moLSCheckPoint:public eoBF < const M &, const typename + M::EOType &, void > +{ + +public: + //! Function which launches the checkpointing + /*! + Each saved function is used on the current move and the current solution. + + \param __move a move. + \param __sol a solution. + */ + void + operator () (const M & __move, const typename M::EOType & __sol) + { + + for (unsigned i = 0; i < func.size (); i++) + { + func[i]->operator ()(__move, __sol); + } + } + + //! Procedure which add a new function to the function vector + /*! + The new function is added at the end of the vector. + \param __f a new function to add. + */ + void + add (eoBF < const M &, const typename M::EOType &, void >&__f) + { + + func.push_back (&__f); + } + +private: + + //! vector of function + std::vector < eoBF < const + M &, const + typename + M::EOType &, void >*> + func; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moMove.h b/trunk/paradiseo-mo/tutorial/src/moMove.h new file mode 100644 index 000000000..5c7f41818 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moMove.h @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moMove.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMove_h +#define __moMove_h + +#include + +//! Definition of a move. + +/*! + A move transforms a solution to another close solution. + It describes how a solution can be modified to another one. +*/ +template < class EOT > class moMove:public eoUF < EOT &, void > +{ + +public: + //! Alias for the type + typedef EOT EOType; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moMoveExpl.h b/trunk/paradiseo-mo/tutorial/src/moMoveExpl.h new file mode 100644 index 000000000..0905e3186 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moMoveExpl.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "eoMoveExpl.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveExpl_h +#define __moMoveExpl_h + +#include + +//! Description of a move (moMove) explorer +/*! + Only a description...See moMoveLoopExpl. + */ +template < class M > class moMoveExpl:public eoBF < const typename + M::EOType &, + typename +M::EOType &, void > +{ + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moMoveIncrEval.h b/trunk/paradiseo-mo/tutorial/src/moMoveIncrEval.h new file mode 100644 index 000000000..7dd633141 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moMoveIncrEval.h @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "eoMoveIncrEval.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveIncrEval_h +#define __moMoveIncrEval_h + +#include + +//! (generally) Efficient evaluation function based a move and a solution. + +/*! + From a move and a solution, it computes + a new fitness that could be associated to + the solution if this one is updated. +*/ +template < class M > class moMoveIncrEval:public eoBF < const M &, const typename + M::EOType &, + typename + M::EOType::Fitness > +{ + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moMoveInit.h b/trunk/paradiseo-mo/tutorial/src/moMoveInit.h new file mode 100644 index 000000000..dfba59661 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moMoveInit.h @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moMoveInit.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveInit_h +#define __moMoveInit_h + +#include + +//! Move (moMove) initializer +/*! + Class which allows to initiase a move. + Only a description... An object that herits from this class needs to be designed to be used. + */ +template < class M > class moMoveInit:public eoBF < M &, const typename +M::EOType &, void > +{ + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moMoveLoopExpl.h b/trunk/paradiseo-mo/tutorial/src/moMoveLoopExpl.h new file mode 100644 index 000000000..5d35e8aac --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moMoveLoopExpl.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moMoveLoopExpl.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveLoopExpl_h +#define __moMoveLoopExpl_h + +#include "moMoveExpl.h" + +//! Class which describes an iterative explorer +/*! + Only a description... moHCMoveLoopExpl and moTSMoveLoopExpl are exemples of class that are a moMoveLoopExpl. + */ +template < class M > class moMoveLoopExpl:public moMoveExpl < M > +{ + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moMoveSelect.h b/trunk/paradiseo-mo/tutorial/src/moMoveSelect.h new file mode 100644 index 000000000..7595ba61d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moMoveSelect.h @@ -0,0 +1,65 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moMoveSelect.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveSelect_h +#define __moMoveSelect_h + +#include + +//! Special class that describes the case of no selection. +/*! + This class is used as an exception that can be thrown if a solution selector has completly failed. + */ +class EmptySelection +{ + +}; + +//! Class that describes a move selector (moMove). +/*! + It iteratively considers some moves (moMove) and their + associated fitnesses. The best move is so regularly updated. + At any time, it could be accessed. +*/ +template < class M > class moMoveSelect:public eoBF < M &, typename M::EOType::Fitness &, + void > +{ +public: + //! Alias for the fitness + typedef + typename + M::EOType::Fitness + Fitness; + + //! Procedure which initialises all that the move selector needs including the initial fitness. + /*! + In order to know the fitness of the solution, + for which the neighborhood will + be soon explored + + \param __fit the current fitness. + */ + virtual void + init (const Fitness & __fit) = 0; + + //! Function which updates the best solutions. + /*! + \param __move a new move. + \param __fit a fitness linked to the new move. + \return a boolean that expresses the need to resume the exploration. + */ + virtual + bool + update (const M & __move, const Fitness & __fit) = 0; + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moNextMove.h b/trunk/paradiseo-mo/tutorial/src/moNextMove.h new file mode 100644 index 000000000..93748fe74 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moNextMove.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moNextMove.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moNextMove_h +#define __moNextMove_h + +#include + +//! Class which allows to generate a new move (moMove). +/*! + Useful for the explorer (for moTS or moHC). + Does nothing... An object that herits from this class needs to be designed for being used. + */ +template < class M > class moNextMove:public eoBF < M &, const typename + M::EOType &, + bool > +{ + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moNoAspirCrit.h b/trunk/paradiseo-mo/tutorial/src/moNoAspirCrit.h new file mode 100644 index 000000000..a5e499ccb --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moNoAspirCrit.h @@ -0,0 +1,48 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "eoNoAspirCrit.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moNoAspirCrit_h +#define __moNoAspirCrit_h + +#include "moAspirCrit.h" + +//! One of the possible aspiration criterion (moAspirCrit) +/*! + The simplest : never satisfied. + */ +template < class M > class moNoAspirCrit:public moAspirCrit < M > +{ + + //! Function which describes the aspiration criterion behaviour + /*! + Does nothing. + + \param __move a move. + \param __sol a fitness. + \return FALSE. + */ + bool operator () (const M & __move, + const typename M::EOType::Fitness & __sol) + { + + return false; + } + + //! Procedure which initialises all that needs a moNoAspirCrit + /*! + Nothing... + */ + void init () + { + } +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moRandImprSelect.h b/trunk/paradiseo-mo/tutorial/src/moRandImprSelect.h new file mode 100644 index 000000000..4d60e794a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moRandImprSelect.h @@ -0,0 +1,104 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moRandImprSelect.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moRandImprSelect_h +#define __moRandImprSelect_h + +#include + +#include +#include "moMoveSelect.h" + +//! One of the possible moMove selector (moMoveSelect) +/*! + All the neighbors are considered. + One of them that enables an improvment of the objective function is choosen. +*/ +template < class M > class moRandImprSelect:public moMoveSelect < M > +{ + +public: + + //! Alias for the fitness + typedef typename M::EOType::Fitness Fitness; + + //!Procedure which all that needs a moRandImprSelect + /*! + Give a value to the initialise fitness. + Clean the move and fitness vectors. + + \param __fit the current best fitness + */ + void init (const Fitness & __fit) + { + init_fit = __fit; + vect_better_fit.clear (); + vect_better_moves.clear (); + } + + //! Function that updates the fitness and move vectors + /*! + if a move give a better fitness than the initial fitness, + it is saved and the fitness too. + + \param __move a new move. + \param __fit a new fitness associated to the new move. + \return TRUE. + */ + bool update (const M & __move, const Fitness & __fit) + { + + if (__fit > init_fit) + { + + vect_better_fit.push_back (__fit); + vect_better_moves.push_back (__move); + } + + return true; + } + + //! The move selection + /*! + One the saved move is randomly chosen. + + \param __move the reference of the move that can be initialised by the function. + \param __fit the reference of the fitness that can be initialised by the function. + \throws EmptySelection If no move which improves the current fitness are found. + */ + void operator () (M & __move, Fitness & __fit) throw (EmptySelection) + { + + if (!vect_better_fit.empty ()) + { + + unsigned n = rng.random (vect_better_fit.size ()); + + __move = vect_better_moves[n]; + __fit = vect_better_fit[n]; + } + else + throw EmptySelection (); + } + +private: + + //! Fitness of the current solution. + Fitness init_fit; + + //! Candidate fitnesse vector. + std::vector < Fitness > vect_better_fit; + + //! Candidate move vector. + std::vector < M > vect_better_moves; +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moRandMove.h b/trunk/paradiseo-mo/tutorial/src/moRandMove.h new file mode 100644 index 000000000..b17de3868 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moRandMove.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moRandMove.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moRandMove_h +#define __moRandMove_h + +#include + +//! Random move generator +/*! + Only a description... An object that herits from this class needs to be designed in order to use a moSA. + */ +template < class M > class moRandMove:public eoUF < M &, void > +{ + +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moSA.h b/trunk/paradiseo-mo/tutorial/src/moSA.h new file mode 100644 index 000000000..c3e3de263 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moSA.h @@ -0,0 +1,153 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moSA.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moSA_h +#define __moSA_h + +#include + +#include +#include + +#include "moAlgo.h" +#include "moRandMove.h" +#include "moMoveIncrEval.h" +#include "moCoolSched.h" +#include "moSolContinue.h" + +#include + +//! Simulated Annealing (SA) +/*! + Class that describes a Simulated Annealing algorithm. +*/ +template < class M > class moSA:public moAlgo < typename M::EOType > +{ + + //! Alias for the type + typedef + typename + M::EOType + EOT; + + //! Alias for the fitness + typedef + typename + EOT::Fitness + Fitness; + +public: + + //! SA constructor + /*! + All the boxes used by a SA need to be given. + + \param __move_rand a move generator (generally randomly). + \param __incr_eval a (generaly) efficient evaluation function + \param __cont a stopping criterion. + \param __init_temp the initial temperature. + \param __cool_sched a cooling schedule, describes how the temperature is modified. + \param __full_eval a full evaluation function. + */ + moSA (moRandMove < M > &__move_rand, + moMoveIncrEval < M > &__incr_eval, + moSolContinue < EOT > &__cont, + double __init_temp, + moCoolSched & __cool_sched, eoEvalFunc < EOT > &__full_eval): + move_rand (__move_rand), + incr_eval (__incr_eval), + cont (__cont), + init_temp (__init_temp), + cool_sched (__cool_sched), + full_eval (__full_eval) + { + + } + + //! function that launches the SA algorithm. + /*! + As a moTS or a moHC, the SA can be used for HYBRIDATION in an evolutionary algorithm. + + \param __sol a solution to improve. + \return TRUE. + */ + bool operator ()(EOT & __sol) + { + + if (__sol.invalid ()) + { + full_eval (__sol); + } + + double + temp = init_temp; + + M move; + + EOT best_sol = __sol; + + do + { + + cont.init (); + do + { + + move_rand (move); + + Fitness delta_fit = incr_eval (move, __sol) - __sol.fitness (); + + if (delta_fit > 0 || rng.uniform () < exp (delta_fit / temp)) + { + + __sol.fitness (incr_eval (move, __sol)); + move (__sol); + + /* Updating the best solution found + until now ? */ + if (__sol.fitness () > best_sol.fitness ()) + best_sol = __sol; + } + + } + while (cont (__sol)); + + } + while (cool_sched (temp)); + + __sol = best_sol; + + return true; + } + +private: + + //! A move generator (generally randomly) + moRandMove < M > &move_rand; + + //! A (generally) efficient evaluation function. + moMoveIncrEval < M > &incr_eval; + + //! Stopping criterion before temperature update + moSolContinue < EOT > &cont; + + //! Initial temperature + double + init_temp; + + //! The cooling schedule + moCoolSched & cool_sched; + + //! A full evaluation function. + eoEvalFunc < EOT > &full_eval; // Full evaluator. +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moSolContinue.h b/trunk/paradiseo-mo/tutorial/src/moSolContinue.h new file mode 100644 index 000000000..44efdd969 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moSolContinue.h @@ -0,0 +1,33 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moSolContinue.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moSolContinue_h +#define __moSolContinue_h + +#include + +//! Class that describes a stop criterion for a solution-based heuristic + +/*! + It allows to add an initialisation procedure to an object that is a unary function (eoUF). +*/ +template < class EOT > class moSolContinue:public eoUF < const EOT &, bool > +{ + +public: + //! Procedure which initialises all that the stop criterion needs + /*! + Generally, it allocates some data structures or initialises some counters. + */ + virtual void init () = 0; +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moTS.h b/trunk/paradiseo-mo/tutorial/src/moTS.h new file mode 100644 index 000000000..aae975b31 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moTS.h @@ -0,0 +1,184 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moTS.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moTS_h +#define __moTS_h + +#include +#include + +#include "moAlgo.h" +#include "moSolContinue.h" + +#include "moMoveExpl.h" +#include "moTSMoveLoopExpl.h" + +#include + +//! Tabu Search (TS) +/*! + Generic algorithm that describes a tabu search. + */ +template < class M > class moTS:public moAlgo < typename M::EOType > +{ + + //!Alias for the type + typedef + typename + M::EOType + EOT; + + //!Alias for the fitness + typedef + typename + EOT::Fitness + Fitness; + +public: + + //!Constructor of a moTS specifying all the boxes + /*! + In this constructor, a moTSMoveLoopExpl is instanciated. + + \param __move_init move initialisation + \param __next_move neighborhood explorer + \param __incr_eval efficient evaluation + \param __tabu_list tabu list + \param __aspir_crit aspiration criterion + \param __cont stop criterion + \param __full_eval full evaluation function + */ +moTS (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moTabuList < M > &__tabu_list, moAspirCrit < M > &__aspir_crit, moSolContinue < EOT > &__cont, eoEvalFunc < EOT > &__full_eval):move_expl (*new moTSMoveLoopExpl < M > + (__move_init, __next_move, __incr_eval, __tabu_list, + __aspir_crit)), cont (__cont), full_eval (__full_eval) + { + + if (first_time) + { + + pthread_mutex_init (&mutex, 0); + + first_time = false; + } + } + + //! Constructor with less parameters + /*! + The explorer is given in the parameters. + + \param __move_expl the explorer (generally different that a moTSMoveLoopExpl) + \param __cont stop criterion + \param __full_eval full evaluation function + */ +moTS (moMoveExpl < M > &__move_expl, moSolContinue < EOT > &__cont, eoEvalFunc < EOT > &__full_eval):move_expl (__move_expl), + cont (__cont), + full_eval (__full_eval) + { + + if (first_time) + { + + pthread_mutex_init (&mutex, 0); + + first_time = false; + } + } + + //! Function which launchs the Tabu Search + /*! + Algorithm of the tabu search. + As a moSA or a moHC, it can be used for HYBRIDATION in an evolutionary algorithm. + For security a lock (pthread_mutex_t) is closed during the algorithm. + + \param __sol a solution to improve. + \return TRUE. + */ + bool operator ()(EOT & __sol) + { + + pthread_mutex_lock (&mutex); + + if (__sol.invalid ()) + { + full_eval (__sol); + } + + M move; + + EOT best_sol = __sol, new_sol; + + cont.init (); + + do + { + + new_sol = __sol; + + try + { + + move_expl (__sol, new_sol); + + } + catch (EmptySelection & __ex) + { + + break; + } + + /* Updating the best solution + found until now ? */ + if (new_sol.fitness () > __sol.fitness ()) + { + best_sol = new_sol; + } + + __sol = new_sol; + + } + while (cont (__sol)); + + __sol = best_sol; + + pthread_mutex_unlock (&mutex); + + return true; + } + +private: + + //! Boolean allowing to initialise the ptread_mutex_t in the constructor + static + bool + first_time; + + //! The lock + static + pthread_mutex_t + mutex; + + //! Neighborhood explorer + moMoveExpl < M > &move_expl; + + //! Stop criterion + moSolContinue < EOT > &cont; + + //! Full evaluation function + eoEvalFunc < EOT > &full_eval; +}; + +//! declaration of the mutex variable +template < class EOT > pthread_mutex_t moTS < EOT >::mutex; + +//! by default, first_time must have the value true +template < class EOT > bool moTS < EOT >::first_time = true; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moTSMoveLoopExpl.h b/trunk/paradiseo-mo/tutorial/src/moTSMoveLoopExpl.h new file mode 100644 index 000000000..53ed30a74 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moTSMoveLoopExpl.h @@ -0,0 +1,132 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moTSMoveLoopExpl.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moTSMoveLoopExpl_h +#define __moTSMoveLoopExpl_h + +#include "moMoveLoopExpl.h" + +#include "moMoveInit.h" +#include "moNextMove.h" +#include "moMoveIncrEval.h" +#include "moMoveSelect.h" + +#include "moTabuList.h" +#include "moAspirCrit.h" +#include "moBestImprSelect.h" + +//! Explorer for a Tabu Search algorithm +/*! + It is used by a moTS. + */ +template < class M > class moTSMoveLoopExpl:public moMoveLoopExpl < M > +{ + + //!Alias for the type + typedef typename M::EOType EOT; + + //!Alias for the fitness + typedef typename M::EOType::Fitness Fitness; + +public: + + //!Constructor + /*! + \param __move_init move initialisation + \param __next_move neighborhood explorer + \param __incr_eval efficient evaluation + \param __tabu_list tabu list + \param __aspir_crit aspiration criterion + */ +moTSMoveLoopExpl (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moTabuList < M > &__tabu_list, moAspirCrit < M > &__aspir_crit): + move_init (__move_init), + next_move (__next_move), + incr_eval (__incr_eval), + tabu_list (__tabu_list), aspir_crit (__aspir_crit) + { + + tabu_list.init (); + aspir_crit.init (); + } + + //!Procedure which lauches the exploration + /*! + The exploration continues while the chosen move is not in the tabu list + or the aspiration criterion is true. If these 2 conditions are not true, the + exploration stops if the move selector update function returns false. + + \param __old_sol the initial solution + \param __new_sol the new solution + */ + void operator () (const EOT & __old_sol, EOT & __new_sol) + { + + M move; + + + move_init (move, __old_sol); /* Restarting the exploration of + of the neighborhood ! */ + + move_select.init (__old_sol.fitness ()); + + do + { + + Fitness fit = incr_eval (move, __old_sol); + + if (!tabu_list (move, __old_sol) || aspir_crit (move, fit)) + { + if (!move_select.update (move, fit)) + break; + } + + } + while (next_move (move, __old_sol)); + + M best_move; + + Fitness best_move_fit; + + move_select (best_move, best_move_fit); + + __new_sol.fitness (best_move_fit); + best_move (__new_sol); + + /* Removing moves that are + no more tabu */ + tabu_list.update (); + + // Updating the tabu list + tabu_list.add (best_move, __new_sol); + } + +private: + + //!Move initialisation + moMoveInit < M > &move_init; + + //!Neighborhood explorer + moNextMove < M > &next_move; + + //!Efficient evaluation + moMoveIncrEval < M > &incr_eval; + + //!Move selector + moBestImprSelect < M > move_select; + + //!Tabu list + moTabuList < M > &tabu_list; + + //!Aspiration criterion + moAspirCrit < M > &aspir_crit; +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/src/moTabuList.h b/trunk/paradiseo-mo/tutorial/src/moTabuList.h new file mode 100644 index 000000000..d9d7445ae --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/src/moTabuList.h @@ -0,0 +1,60 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moTabuList.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moTabuList_h +#define __moTabuList_h + +#include + +//! Class describing a tabu list that a moTS uses +/*! + It is only a description, does nothing... A new object that herits from this class has to be defined in order + to be used in a moTS. + */ +template < class M > class moTabuList:public eoBF < const M &, const typename + M::EOType &, + bool > +{ + +public: + //! Alias for the type + typedef + typename + M::EOType + EOT; + + + //! Procedure to add a move in the tabu list + /*! + The two parameters have not to be modified so they are constant parameters + + \param __move a new tabu move + \param __sol the solution associated to this move + */ + virtual void + add (const M & __move, const EOT & __sol) = 0; + + //! Procedure that updates the tabu list content + /*! + Generally, a counter associated to each saved move is decreased by one. + */ + virtual void + update () = 0; + + //! Procedure which initialises the tabu list + /*! + Can be useful if the data structure needs to be allocated before being used. + */ + virtual void + init () = 0; +}; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/Makefile.am b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/Makefile.am new file mode 100644 index 000000000..84bcda58d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/Makefile.am @@ -0,0 +1,20 @@ +INCLUDES = -I${EO_DIR}/src/ -I ../../src/ -I ../examples/tsp/src/ + +AM_CXXFLAGS =\ + -Wall\ + -Werror\ + -Wno-deprecated\ + -ansi\ + -pedantic + +bin_PROGRAMS = hill_climbing + +############################## +hill_climbing_SOURCES = hill_climbing.cpp + +hill_climbing_LDFLAGS = + +hill_climbing_LDADD = \ + ${EO_DIR}/src/libeo.a\ + ${EO_DIR}/src/utils/libeoutils.a\ + ../examples/tsp/src/libtsp.a diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/ali535.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/ali535.tsp new file mode 100644 index 000000000..7fec4bf14 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/ali535.tsp @@ -0,0 +1,536 @@ +535 +36.49 7.49 +57.06 9.51 +30.22 48.14 +5.15 -3.56 +34.59 -106.37 +57.12 -2.12 +16.45 -99.45 +5.36 -0.1 +28.56 -13.36 +8.59 38.48 +12.5 45.02 +-34.48 138.38 +30.23 -9.33 +56.18 12.51 +36.4 -4.3 +40.38 8.17 +35.11 -3.5 +41.55 8.48 +-37.01 174.47 +38.17 -0.34 +36.42 3.13 +36.11 37.14 +35.14 -101.42 +31.58 35.59 +52.18 4.46 +61.1 -149.59 +39.57 32.41 +51.11 4.28 +17.08 -61.47 +43.37 13.22 +29.38 35.01 +59.39 17.55 +15.18 38.55 +-25.14 -57.31 +23.58 32.47 +37.54 23.44 +33.46 -84.31 +12.3 -70.01 +24.26 54.28 +36.55 30.48 +26.16 50.38 +40.29 50.01 +39.11 -76.4 +10.48 -74.52 +-16.11 -52.3 +10.25 45.01 +41.18 2.05 +32.22 -64.42 +41.56 -72.41 +40.39 17.57 +44.49 20.19 +9.21 34.31 +32.06 20.16 +52.29 13.24 +48.27 -4.25 +-19.48 3.45 +33.49 35.29 +54.39 -6.14 +35.48 -101.22 +4.24 18.31 +13.04 -59.3 +60.17 5.13 +44.48 -68.5 +33.14 44.14 +45.4 9.24 +33.34 -86.45 +52.27 -1.45 +42.33 9.29 +45.48 -108.37 +43.28 -1.32 +13.21 -16.4 +-3.19 29.19 +13.55 100.36 +12.38 -8.02 +55.44 9.09 +44.32 11.18 +12.57 77.4 +-15.41 34.58 +27.13 56.22 +-27.25 153.05 +44.5 -0.43 +4.42 -74.09 +50.47 -1.51 +19.05 72.52 +67.16 14.22 +42.22 -71 +53.03 8.48 +41.08 16.47 +46.55 7.3 +51.31 -2.35 +50.54 4.29 +-15.52 -47.55 +47.35 7.32 +48.1 16.13 +47.27 19.15 +-34.49 -58.32 +42.55 -78.38 +44.3 26.06 +49.27 2.07 +-4.15 15.15 +39.15 9.04 +30.08 31.24 +23.11 113.16 +33.33 -7.4 +-11.54 22.45 +4.49 -52.22 +52.13 0.11 +-35.19 149.12 +10.36 -66.59 +22.39 88.27 +52.5 -1.19 +49.01 2.33 +43.33 6.57 +45.4 -0.19 +39.37 19.55 +50.52 7.09 +41.59 -87.54 +41.48 12.36 +9.34 -13.37 +41.25 -81.51 +3.26 -76.25 +42.31 8.48 +-28.02 145.37 +7.11 79.53 +40.04 -83.04 +33.22 -7.35 +48.07 7.22 +44.22 28.29 +45.4 -0.19 +6.21 2.23 +55.37 12.39 +-33.58 18.36 +37.28 15.04 +10.27 -75.31 +-26.25 146.14 +39 17.05 +12.12 -68.57 +39.09 -84.2 +39.03 -84.2 +51.24 -3.12 +29.11 -81.03 +23.46 90.23 +14.45 42.59 +32.5 -96.51 +33.25 36.31 +-6.53 39.12 +42.34 18.16 +-29.58 30.57 +38.51 -77.02 +28.34 77.07 +39.46 -104.53 +32.46 -96.24 +26.16 50.1 +47.16 5.05 +33.52 10.47 +14.45 -17.3 +4.01 9.43 +19.08 30.26 +25.16 51.34 +49.22 0.1 +-8.45 115.1 +51.08 13.46 +-12.25 130.52 +42.14 -83.32 +42.13 -83.21 +53.26 -6.15 +51.17 6.45 +25.15 55.2 +0.03 32.26 +45.32 4.18 +55.57 -3.22 +51.27 5.23 +31.48 -106.16 +52.5 -1.19 +48.19 6.04 +40.07 33 +40.09 82.4 +40.42 -74.1 +50.44 -3.25 +-34.49 -58.32 +64.49 -147.51 +37.01 -7.58 +-11.35 27.31 +59.54 10.37 +41.49 12.15 +14.35 -61 +33.56 45.8 +-4.23 15.26 +43.49 11.12 +8.37 -13.12 +41.26 15.32 +50.02 8.34 +44.12 12.04 +-21.13 27.29 +28.27 -13.52 +53.29 -1 +-19.27 29.52 +54.23 18.28 +60.12 11.05 +24.57 10.1 +-22.5 -43.15 +55.52 -4.26 +45.22 5.2 +7.09 41.43 +44.25 8.5 +57.4 18.18 +41.54 2.46 +37.11 -3.47 +47 15.26 +51.09 -0.11 +14.34 -90.32 +46.14 6.07 +-2.09 -79.53 +52.28 9.42 +53.38 10 +60.19 24.58 +35.2 25.11 +30.2 120.51 +22.19 114.12 +31.4 6.09 +35.33 139.46 +21.2 -157.55 +29.59 -95.28 +38.57 -77.27 +43.06 -78.57 +38.52 1.22 +47.34 -97.27 +50.21 30.55 +-25.44 -54.28 +39.44 -86.17 +40.59 28.49 +38.17 27.1 +21.3 39.12 +49.13 -2.12 +40.38 -73.46 +11.33 43.1 +-6.09 106.51 +-26.08 28.15 +-3.22 36.38 +45.28 -73.44 +12.03 8.31 +34.34 69.12 +63.59 -22.37 +-1.58 30.08 +22.34 120.17 +24.54 67.09 +-6.18 155.43 +17.56 -76.48 +50.05 19.47 +15.36 32.33 +27.42 85.22 +3.08 101.33 +29.13 47.58 +-8.51 13.14 +10.36 -66.59 +36.04 -115.09 +33.56 -118.24 +53.52 -1.39 +48.58 2.27 +0.27 9.25 +34.52 33.38 +43.11 0 +59.49 30.17 +36.51 -2.22 +51.24 12.25 +51.25 12.14 +6.1 1.15 +40.46 -73.52 +33.57 -118.24 +50.38 5.27 +51.09 -0.11 +51.28 -0.27 +50.34 3.05 +-12.01 -77.07 +45.27 9.16 +38.46 -9.08 +46.13 14.28 +35.3 12.37 +48.14 14.11 +51.28 -0.27 +6.35 3.2 +27.56 -15.23 +-16.3 -68.11 +53.21 -2.53 +6.1 1.15 +51.53 -0.22 +-25.55 32.34 +-15.2 28.27 +4.27 114 +49.37 6.12 +-17.49 25.49 +25.41 32.43 +45.44 4.56 +13 80.11 +40.29 -3.34 +31.52 -4.13 +53.21 -2.16 +-3.04 -60 +10.34 -71.44 +-4.02 39.36 +46.22 15.47 +39.18 -94.44 +28.32 -81.2 +23.36 58.17 +44.25 8.5 +-37.44 144.54 +24.31 39.42 +-37.41 144.51 +19.26 -99.04 +12.07 -86.11 +2.01 45.19 +25.48 -80.17 +20.56 -89.41 +45.27 9.16 +35.45 10.45 +39.07 -94.36 +35.52 14.29 +4.11 73.32 +47.45 7.26 +55.33 13.22 +54.31 -1.25 +14.31 121.01 +55.58 37.25 +43.35 3.58 +-25.55 32.34 +-8.58 125.13 +43.26 5.13 +-20.26 57.41 +51.21 1.21 +44.53 -93.13 +53.52 27.33 +50.55 5.47 +29.59 -90.16 +-26.31 31.19 +48.08 11.42 +-34.5 -56.02 +45.38 8.43 +49.05 6.08 +-17.45 177.27 +40.53 14.18 +25.02 -77.28 +-1.19 36.56 +43.4 7.13 +55.02 -1.41 +45.56 6.06 +12.08 15.02 +32.56 129.56 +35.09 36.17 +13.29 2.1 +18.06 -15.57 +-13 28.39 +58.35 16.15 +35.45 140.23 +47.09 -1.36 +49.3 11.05 +52.41 1.17 +40.38 -73.46 +55.28 10.2 +46.26 30.41 +26.21 127.46 +35.26 -97.46 +40.54 9.31 +41.07 -95.55 +41.14 -8.41 +41.59 -87.54 +51.5 -8.29 +28.26 -81.19 +35.38 -0.37 +48.43 2.23 +34.47 135.27 +60.12 11.05 +51.12 2.52 +44.34 26.06 +12.21 -1.31 +43.26 -5.5 +18.34 -72.17 +48.43 2.23 +40.05 116.36 +-31.56 115.58 +4.52 7.02 +37.08 -76.3 +39.52 -75.15 +33.26 -112.01 +55.52 -4.26 +46.35 0.18 +40.3 -80.14 +-5.15 39.49 +39.33 2.44 +38.1 13.06 +11.33 104.51 +36.49 11.58 +-9.27 147.13 +10.36 -61.21 +9.05 -79.23 +50.06 14.16 +43.41 10.24 +42.26 14.11 +16.16 -61.32 +9.03 -79.24 +43.23 -0.25 +45.39 12.12 +31.37 -8.03 +34.03 -6.45 +-8.08 -34.55 +38.04 15.39 +64.08 -21.57 +16.54 96.09 +49.19 4.03 +36.23 28.07 +-29.43 -53.42 +-22.5 -43.15 +45.13 14.35 +44.01 12.37 +48.04 -1.44 +6.14 -10.22 +41.49 12.15 +14.1 145.15 +-32.55 -60.47 +51.57 4.26 +24.42 46.44 +33.37 73.06 +6.3 -58.15 +15.29 44.13 +13.42 -89.07 +32.44 -117.11 +-23 -47.08 +29.32 -98.28 +-17.56 31.06 +48.31 -24.8 +-33.23 -70.47 +42.54 -8.25 +33.14 44.14 +18.26 -69.4 +47.27 -122.18 +27 14.27 +37.33 126.48 +51.34 0.42 +-4.4 55.31 +37.37 -122.23 +31.12 121.2 +25.21 55.24 +16.45 -22.57 +1.21 103.54 +37.22 -121.56 +43.49 18.2 +9.58 -84.16 +9.59 -84.12 +18.26 -66.01 +40.31 22.58 +41.58 21.38 +40.53 -111.57 +36.58 -25.1 +52.42 -8.55 +42.42 23.24 +43.32 16.18 +-12.54 -38.2 +38.45 -90.22 +51.33 0.14 +59.39 17.55 +48.41 9.13 +38.54 16.15 +58.53 5.38 +55.58 37.25 +37.26 -5.54 +48.32 7.38 +52.22 13.3 +-33.56 151.1 +29.33 52.36 +47.48 13 +40.31 17.24 +41.19 69.24 +28.29 -16.2 +38.31 -28.43 +43.11 0 +28.29 -16.2 +14.02 -87.14 +52.29 13.24 +35.41 51.19 +41.2 19.47 +32.4 13.09 +43.37 1.23 +32.01 34.53 +22.49 5.27 +0.23 6.43 +35.43 -5.55 +-18.48 47.29 +33.56 8.06 +-24.42 -53.42 +25.04 121.33 +37.55 12.29 +51.23 -2.43 +45.12 7.39 +45.5 13.28 +45.39 12.12 +47.26 0.43 +36.18 -95.52 +36.51 10.14 +52.34 13.18 +35.33 139.46 +35.54 -83.53 +40.62 13.11 +-0.08 -78.29 +12.41 101.01 +13.45 -60.57 +44.55 4.58 +43.14 27.49 +45.3 12.21 +-23 -47.08 +48.07 16.33 +39.29 -0.29 +41.42 -4.51 +45.24 10.53 +38.57 -77.27 +52.1 20.58 +36.45 -6.04 +53.19 -113.35 +44.53 -63.31 +45.41 -74.02 +45.19 -75.4 +46.48 -71.24 +42.16 -82.58 +48.57 -54.34 +45.28 -73.44 +49.11 -123.1 +49.55 -97.14 +51.07 -114.01 +47.37 -52.45 +43.41 -79.38 +44.06 15.21 +45.45 16.04 +41.4 -1.03 +-6.13 39.13 +47.28 8.33 +51.33 0.14 +24.58 91.53 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/eil101.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/eil101.tsp new file mode 100644 index 000000000..f12903349 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/eil101.tsp @@ -0,0 +1,102 @@ +101 +41 49 +35 17 +55 45 +55 20 +15 30 +25 30 +20 50 +10 43 +55 60 +30 60 +20 65 +50 35 +30 25 +15 10 +30 5 +10 20 +5 30 +20 40 +15 60 +45 65 +45 20 +45 10 +55 5 +65 35 +65 20 +45 30 +35 40 +41 37 +64 42 +40 60 +31 52 +35 69 +53 52 +65 55 +63 65 +2 60 +20 20 +5 5 +60 12 +40 25 +42 7 +24 12 +23 3 +11 14 +6 38 +2 48 +8 56 +13 52 +6 68 +47 47 +49 58 +27 43 +37 31 +57 29 +63 23 +53 12 +32 12 +36 26 +21 24 +17 34 +12 24 +24 58 +27 69 +15 77 +62 77 +49 73 +67 5 +56 39 +37 47 +37 56 +57 68 +47 16 +44 17 +46 13 +49 11 +49 42 +53 43 +61 52 +57 48 +56 37 +55 54 +15 47 +14 37 +11 31 +16 22 +4 18 +28 18 +26 52 +26 35 +31 67 +15 19 +22 22 +18 24 +26 27 +25 24 +22 27 +25 21 +19 21 +20 26 +18 18 +35 35 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/pr2392.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/pr2392.tsp new file mode 100644 index 000000000..010a2c7ec --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/pr2392.tsp @@ -0,0 +1,2393 @@ +2392 +1639 2156 +1875 2925 +2150 2925 +2425 2925 +2525 2675 +2525 2575 +2525 2375 +2525 2275 +2525 2175 +2786 2148 +2786 2249 +2786 2352 +2785 2451 +2785 2552 +2787 2651 +2925 2925 +3198 2925 +3475 2925 +3725 2925 +3675 2675 +3675 2575 +3675 2375 +3675 2275 +3675 2175 +4189 2156 +4190 2256 +4190 2355 +4189 2456 +4189 2556 +4190 2656 +4275 2975 +4425 2925 +4700 2925 +4975 2925 +5075 2675 +5075 2575 +5075 2375 +5075 2275 +5075 2175 +5336 2148 +5336 2249 +5336 2352 +5335 2451 +5335 2552 +5337 2651 +5475 2925 +5748 2925 +6025 2925 +6275 2925 +6225 2675 +6225 2575 +6225 2375 +6225 2275 +6225 2175 +6739 2156 +6740 2256 +6740 2355 +6739 2456 +6739 2556 +6740 2656 +6825 2975 +6975 2925 +7250 2925 +7525 2925 +7625 2675 +7625 2575 +7625 2375 +7625 2275 +7625 2175 +7886 2148 +7886 2249 +7886 2352 +7885 2451 +7885 2552 +7887 2651 +8025 2925 +8298 2925 +8575 2925 +8825 2925 +8775 2675 +8775 2575 +8775 2375 +8775 2275 +8775 2175 +9289 2156 +9290 2256 +9290 2355 +9289 2456 +9289 2556 +9290 2656 +9375 2975 +9525 2925 +9800 2925 +10075 2925 +10175 2675 +10175 2575 +10175 2375 +10175 2275 +10175 2175 +10436 2148 +10436 2249 +10436 2352 +10435 2451 +10435 2552 +10437 2651 +10575 2925 +10848 2925 +11125 2925 +11325 2175 +11325 2275 +11325 2375 +11325 2575 +11325 2675 +11375 2925 +11375 3125 +11400 3225 +11400 3325 +11400 3475 +11400 3625 +11300 3825 +11125 3825 +11125 3925 +11025 3975 +10925 3975 +10925 3875 +10550 3925 +10550 3725 +10550 3325 +10100 3325 +10100 3725 +10100 3925 +9725 3875 +9725 3975 +9625 3975 +9550 3875 +9425 3875 +9275 3900 +9250 3700 +9250 3575 +9250 3475 +9250 3375 +9250 3275 +8825 3125 +8850 3225 +8850 3325 +8850 3475 +8850 3625 +8750 3825 +8575 3825 +8575 3925 +8475 3975 +8375 3875 +8375 3975 +8400 4125 +8300 4175 +8400 4275 +8500 4175 +8675 4325 +8775 4425 +8825 4325 +9275 4275 +9375 4275 +9325 4375 +9400 4450 +9400 4550 +9325 4500 +9215 4560 +9215 4710 +9375 4775 +9215 4860 +9215 5010 +9215 5160 +9215 5310 +9215 5460 +9215 5610 +9475 5675 +9475 5525 +9475 5425 +9475 5275 +9475 5025 +9575 5075 +9725 5075 +9675 4975 +9575 4925 +9525 4775 +9600 4675 +9625 4775 +9775 4775 +9975 4600 +9875 4600 +9800 4525 +9700 4525 +9700 4425 +9800 4425 +9800 4325 +9700 4275 +9600 4175 +9700 4125 +9800 4175 +9875 4275 +9975 4275 +10075 4175 +10275 4175 +10375 4175 +10575 4175 +10675 4275 +10775 4275 +10850 4325 +10850 4425 +10850 4525 +10775 4575 +10675 4575 +10875 4775 +11025 4775 +11175 4725 +11050 4675 +10950 4500 +10950 4400 +10950 4275 +10850 4175 +10950 4125 +11050 4175 +11225 4325 +11375 4325 +11325 4425 +11325 4575 +11325 4675 +11325 4775 +11325 4925 +11450 4925 +11450 5075 +11422 5204 +11425 5325 +11325 5275 +11325 5375 +11175 5375 +11175 5275 +11125 5175 +11100 5025 +10975 4975 +10925 5075 +10950 5175 +10900 5275 +10900 5375 +10800 5175 +10525 5175 +10325 5175 +10325 5025 +10425 5075 +10475 4975 +10325 4875 +10175 4975 +10225 5075 +10125 5175 +9975 5175 +10050 5250 +10050 5350 +10025 5450 +10175 5450 +10325 5450 +10475 5450 +10575 5450 +10675 5450 +10525 6025 +10525 6125 +10675 6125 +10825 6025 +11025 6050 +11224 5908 +11400 5975 +11400 6375 +11400 6575 +11175 6575 +11025 6450 +10975 6675 +11075 6775 +10975 6875 +11175 6975 +11375 6975 +11325 7075 +11400 7150 +11125 7150 +10975 7150 +10875 7325 +10925 7425 +11075 7425 +11175 7475 +11075 7575 +11175 7625 +11175 7725 +11025 7725 +11025 7825 +11175 7825 +11325 7875 +11425 7925 +11425 8075 +11325 8075 +11275 8175 +11425 8225 +11425 8375 +11275 8325 +11175 8325 +11075 8225 +10975 8225 +10925 7975 +10775 7825 +10825 7600 +10725 7575 +10775 7425 +10675 7425 +10525 7425 +10525 7575 +10450 7750 +10300 7750 +10425 7875 +10525 7925 +10575 7825 +10625 7975 +10725 7975 +10725 8075 +10625 8125 +10525 8075 +10425 8025 +10425 8125 +10250 8225 +10150 8225 +10225 8125 +10275 7975 +10125 7975 +10000 7875 +10000 7775 +9825 7825 +9625 7725 +9475 7725 +9425 7625 +9575 7625 +9625 7475 +9725 7575 +9825 7475 +10025 7525 +9975 7425 +9925 7275 +9825 7075 +9625 7075 +9725 6975 +9875 6775 +9725 6775 +9575 6825 +9575 6675 +9725 6425 +9625 6200 +9725 6025 +9625 6000 +9225 6375 +9225 6525 +9375 6525 +9375 6675 +9225 6675 +9225 6875 +9225 7075 +9226 7259 +9225 7260 +9226 7409 +9225 7410 +9225 7560 +9226 7560 +9225 7710 +9225 7711 +9325 7825 +9225 7875 +9225 7975 +9225 8075 +9225 8175 +9225 8275 +9225 8375 +9225 8475 +9275 8825 +9475 8825 +9578 8820 +9847 8703 +9875 8825 +10025 8725 +10075 8825 +10175 8725 +10100 8575 +10250 8375 +10250 8475 +10250 8625 +10475 8775 +10575 8775 +10675 8775 +10775 8775 +10925 8775 +10875 8625 +10875 8525 +10975 8575 +11175 8475 +11275 8425 +11350 8575 +11450 8675 +11350 8775 +11325 9325 +11325 9425 +11325 9525 +11325 9725 +11325 9825 +11125 10075 +11375 10075 +11375 10275 +11400 10375 +11400 10475 +11400 10625 +11400 10775 +11300 10975 +11125 10975 +11125 11075 +11025 11125 +10925 11125 +10925 11025 +10550 10875 +10550 11075 +10275 11325 +10375 11325 +10575 11325 +10675 11425 +10775 11425 +10850 11475 +10850 11575 +10850 11675 +10775 11725 +10675 11725 +10875 11925 +11025 11925 +11175 11875 +11050 11825 +10950 11650 +10950 11550 +10950 11425 +10850 11325 +10950 11275 +11050 11325 +11225 11475 +11375 11475 +11325 11575 +11325 11725 +11325 11825 +11325 11925 +11325 12075 +11450 12075 +11450 12225 +11422 12354 +11425 12475 +11325 12425 +11325 12525 +11175 12525 +11175 12425 +11125 12325 +11100 12175 +10975 12125 +10925 12225 +10950 12325 +10900 12425 +10900 12525 +10800 12325 +10525 12325 +10425 12225 +10475 12125 +10325 12025 +10175 12125 +10225 12225 +10325 12175 +10325 12325 +10125 12325 +9975 12325 +10050 12400 +10050 12500 +10025 12600 +10175 12600 +10325 12600 +10475 12600 +10575 12600 +10675 12600 +10525 13175 +10525 13275 +10675 13275 +10825 13175 +11025 13200 +11224 13058 +11400 13125 +11400 13525 +11400 13725 +11175 13725 +11025 13600 +10975 13825 +11075 13925 +10975 14025 +11175 14125 +11375 14125 +11325 14225 +11400 14300 +11125 14300 +10975 14300 +10875 14475 +10925 14575 +10825 14750 +10725 14725 +10775 14575 +10675 14575 +10525 14575 +10525 14725 +10450 14900 +10300 14900 +10425 15025 +10425 15175 +10425 15275 +10525 15225 +10625 15275 +10725 15225 +10725 15125 +10625 15125 +10525 15075 +10575 14975 +10775 14975 +10925 15125 +11025 14975 +11025 14875 +11075 14725 +11075 14575 +11175 14625 +11175 14775 +11175 14875 +11175 14975 +11325 15025 +11425 15075 +11425 15225 +11325 15225 +11275 15325 +11425 15375 +11425 15525 +11350 15725 +11450 15825 +11350 15925 +11175 15625 +11275 15575 +11275 15475 +11175 15475 +11075 15375 +10975 15375 +10875 15675 +10975 15725 +10875 15775 +10925 15925 +10775 15925 +10675 15925 +10575 15925 +10475 15925 +10250 15775 +10175 15875 +10075 15975 +9875 15975 +9847 15853 +10025 15875 +10100 15725 +10250 15625 +10250 15525 +10250 15375 +10150 15375 +10225 15275 +10275 15125 +10125 15125 +10000 15025 +10000 14925 +9825 14975 +9625 14875 +9475 14875 +9425 14775 +9575 14775 +9625 14625 +9725 14725 +9825 14625 +10025 14675 +9975 14575 +9925 14425 +9825 14225 +9625 14225 +9725 14125 +9875 13925 +9725 13925 +9575 13975 +9575 13825 +9725 13575 +9625 13350 +9725 13175 +9625 13150 +9225 13525 +9225 13675 +9375 13675 +9375 13825 +9225 13825 +9225 14025 +9225 14225 +9226 14409 +9225 14410 +9226 14559 +9225 14560 +9225 14710 +9226 14710 +9225 14860 +9225 14861 +9325 14975 +9225 15025 +9225 15125 +9225 15225 +9225 15325 +9225 15425 +9225 15525 +9225 15625 +9578 15970 +9475 15975 +9275 15975 +8900 15825 +8800 15925 +8800 15725 +8725 15575 +8625 15625 +8425 15725 +8325 15675 +8325 15775 +8375 15925 +8225 15925 +8125 15925 +8025 15925 +7925 15925 +7700 15775 +7700 15625 +7700 15525 +7550 15725 +7625 15875 +7525 15975 +7475 15875 +7325 15975 +7297 15853 +7028 15970 +6925 15975 +6725 15975 +6675 15625 +6675 15525 +6675 15425 +6675 15325 +6675 15225 +6675 15125 +6675 15025 +6775 14975 +6675 14861 +6675 14860 +6676 14710 +6675 14710 +6675 14560 +6676 14559 +6675 14410 +6676 14409 +6675 14225 +6675 14025 +6675 13825 +6825 13825 +6825 13675 +6675 13675 +6675 13525 +7075 13150 +7175 13175 +7075 13350 +7175 13575 +7025 13825 +7025 13975 +7175 13925 +7325 13925 +7175 14125 +7075 14225 +7275 14225 +7375 14425 +7425 14575 +7475 14675 +7275 14625 +7175 14725 +7075 14625 +7025 14775 +6875 14775 +6925 14875 +7075 14875 +7275 14975 +7450 14925 +7450 15025 +7575 15125 +7725 15125 +7675 15275 +7600 15375 +7700 15375 +7875 15275 +7875 15175 +7975 15225 +8075 15275 +8175 15225 +8175 15125 +8075 15125 +8025 14975 +7975 15075 +7875 15025 +7750 14900 +7900 14900 +7975 14725 +7975 14575 +8125 14575 +8225 14575 +8175 14725 +8275 14750 +8225 14975 +8375 15125 +8425 15375 +8525 15375 +8625 15475 +8725 15475 +8875 15525 +8875 15375 +8725 15325 +8775 15225 +8875 15225 +8875 15075 +8775 15025 +8625 14975 +8475 14975 +8475 14875 +8625 14875 +8625 14775 +8525 14725 +8625 14625 +8525 14575 +8375 14575 +8325 14475 +8425 14300 +8575 14300 +8850 14300 +8775 14225 +8825 14125 +8625 14125 +8425 14025 +8525 13925 +8425 13825 +8475 13600 +8625 13725 +8850 13725 +8850 13525 +8850 13125 +8674 13058 +8475 13200 +8275 13175 +8125 13275 +7975 13275 +7975 13175 +8125 12600 +8025 12600 +7925 12600 +7775 12600 +7625 12600 +7475 12600 +7500 12500 +7500 12400 +7425 12325 +7575 12325 +7675 12225 +7625 12125 +7775 12025 +7925 12125 +7875 12225 +7775 12175 +7775 12325 +7975 12325 +8250 12325 +8350 12525 +8350 12425 +8400 12325 +8375 12225 +8425 12125 +8550 12175 +8575 12325 +8625 12425 +8625 12525 +8775 12525 +8775 12425 +8875 12475 +8872 12354 +8900 12225 +8900 12075 +8775 12075 +8775 11925 +8775 11825 +8775 11725 +8775 11575 +8825 11475 +8675 11475 +8500 11325 +8400 11275 +8300 11325 +8400 11425 +8400 11550 +8400 11650 +8500 11825 +8625 11875 +8475 11925 +8325 11925 +8125 11725 +8225 11725 +8300 11675 +8300 11575 +8300 11475 +8225 11425 +8125 11425 +8025 11325 +7825 11325 +7725 11325 +7525 11325 +7425 11425 +7325 11425 +7250 11325 +7150 11275 +7050 11325 +7150 11425 +7250 11475 +7250 11575 +7150 11575 +7150 11675 +7250 11675 +7325 11750 +7425 11750 +7225 11925 +7075 11925 +7050 11825 +6975 11925 +7025 12075 +7125 12125 +7175 12225 +7025 12225 +6925 12175 +6925 12425 +6925 12575 +6925 12675 +6925 12825 +6665 12760 +6665 12610 +6665 12460 +6665 12310 +6665 12160 +6665 12010 +6825 11925 +6665 11860 +6665 11710 +6775 11650 +6850 11700 +6850 11600 +6775 11525 +6825 11425 +6725 11425 +6275 11475 +6225 11575 +6125 11475 +5950 11325 +5850 11425 +5750 11325 +5850 11275 +5825 11125 +5825 11025 +5925 11125 +6025 11075 +6025 10975 +6200 10975 +6300 10775 +6300 10625 +6300 10475 +6300 10375 +6275 10275 +6700 10425 +6700 10525 +6700 10625 +6700 10725 +6700 10850 +6725 11050 +6875 11025 +7000 11025 +7075 11125 +7175 11125 +7175 11025 +7550 11075 +7550 10875 +7550 10475 +8000 10475 +8000 10875 +8000 11075 +8375 11025 +8375 11125 +8475 11125 +8575 11075 +8575 10975 +8750 10975 +8850 10775 +8850 10625 +8850 10475 +8850 10375 +8825 10275 +9250 10425 +9250 10525 +9250 10625 +9250 10725 +9250 10850 +9275 11050 +9425 11025 +9550 11025 +9625 11125 +9725 11025 +9725 11125 +9700 11275 +9800 11325 +9700 11425 +9600 11325 +9375 11425 +9275 11425 +9325 11525 +9400 11600 +9400 11700 +9325 11650 +9215 11710 +9215 11860 +9375 11925 +9215 12010 +9215 12160 +9215 12310 +9215 12460 +9215 12610 +9215 12760 +9475 12825 +9475 12675 +9475 12575 +9475 12425 +9475 12175 +9575 12225 +9725 12225 +9675 12125 +9575 12075 +9525 11925 +9600 11825 +9625 11925 +9775 11925 +9975 11750 +9875 11750 +9800 11675 +9700 11675 +9700 11575 +9800 11575 +9800 11475 +9875 11425 +9975 11425 +10075 11325 +10100 11075 +10100 10875 +10100 10475 +10550 10475 +10848 10075 +10575 10075 +10437 9801 +10435 9702 +10435 9601 +10436 9502 +10436 9399 +10436 9298 +10175 9325 +10175 9425 +10175 9525 +10175 9725 +10175 9825 +10075 10075 +9800 10075 +9525 10075 +9375 10125 +9290 9806 +9289 9706 +9289 9606 +9290 9505 +9290 9406 +9289 9306 +8775 9325 +8775 9425 +8775 9525 +8775 9725 +8775 9825 +8825 10075 +8575 10075 +8298 10075 +8025 10075 +7887 9801 +7885 9702 +7885 9601 +7886 9502 +7886 9399 +7886 9298 +7625 9325 +7625 9425 +7625 9525 +7625 9725 +7625 9825 +7525 10075 +7250 10075 +6975 10075 +6825 10125 +6740 9806 +6739 9706 +6739 9606 +6740 9505 +6740 9406 +6739 9306 +7028 8820 +6925 8825 +6725 8825 +6675 8475 +6675 8375 +6675 8275 +6675 8175 +6675 8075 +6675 7975 +6675 7875 +6775 7825 +6675 7711 +6675 7710 +6676 7560 +6675 7560 +6675 7410 +6676 7409 +6675 7260 +6676 7259 +6675 7075 +6675 6875 +6675 6675 +6825 6675 +6825 6525 +6675 6525 +6675 6375 +7075 6000 +7175 6025 +7075 6200 +7175 6425 +7025 6675 +7025 6825 +7175 6775 +7325 6775 +7175 6975 +7075 7075 +7275 7075 +7375 7275 +7425 7425 +7475 7525 +7275 7475 +7175 7575 +7075 7475 +7025 7625 +6875 7625 +6925 7725 +7075 7725 +7275 7825 +7450 7775 +7450 7875 +7575 7975 +7725 7975 +7675 8125 +7600 8225 +7700 8225 +7700 8375 +7700 8475 +7550 8575 +7475 8725 +7297 8703 +7325 8825 +7525 8825 +7625 8725 +7700 8625 +7925 8775 +8025 8775 +8125 8775 +8225 8775 +8375 8775 +8325 8625 +8425 8575 +8325 8525 +8425 8225 +8525 8225 +8625 8325 +8725 8325 +8725 8425 +8625 8475 +8800 8775 +8900 8675 +8800 8575 +8875 8375 +8875 8225 +8725 8175 +8775 8075 +8875 8075 +8875 7925 +8775 7875 +8625 7825 +8625 7725 +8625 7625 +8625 7475 +8525 7425 +8525 7575 +8475 7725 +8475 7825 +8375 7975 +8225 7825 +8025 7825 +7975 7925 +8075 7975 +8175 7975 +8175 8075 +8075 8125 +7975 8075 +7875 8125 +7875 8025 +7875 7875 +7750 7750 +7900 7750 +7975 7575 +7975 7425 +8125 7425 +8225 7425 +8175 7575 +8275 7600 +8375 7425 +8325 7325 +8425 7150 +8575 7150 +8850 7150 +8775 7075 +8825 6975 +8625 6975 +8425 6875 +8525 6775 +8425 6675 +8475 6450 +8625 6575 +8850 6575 +8850 6375 +8850 5975 +8674 5908 +8475 6050 +8275 6025 +8125 6125 +7975 6125 +7975 6025 +8125 5450 +8025 5450 +7925 5450 +7775 5450 +7625 5450 +7475 5450 +7500 5350 +7500 5250 +7425 5175 +7575 5175 +7675 5075 +7625 4975 +7775 4875 +7925 4975 +7875 5075 +7775 5025 +7775 5175 +7975 5175 +8250 5175 +8350 5375 +8350 5275 +8400 5175 +8375 5075 +8425 4975 +8550 5025 +8575 5175 +8625 5275 +8625 5375 +8775 5375 +8775 5275 +8875 5325 +8872 5204 +8900 5075 +8900 4925 +8775 4925 +8775 4775 +8775 4675 +8775 4575 +8625 4725 +8500 4675 +8475 4775 +8325 4775 +8125 4575 +8225 4575 +8300 4525 +8400 4500 +8400 4400 +8300 4425 +8300 4325 +8225 4275 +8125 4275 +8025 4175 +8000 3925 +8000 3725 +8000 3325 +7550 3325 +7550 3725 +7550 3925 +7825 4175 +7725 4175 +7525 4175 +7425 4275 +7325 4275 +7250 4325 +7250 4425 +7150 4425 +7150 4525 +7250 4525 +7325 4600 +7425 4600 +7225 4775 +7075 4775 +7050 4675 +6975 4775 +7025 4925 +7125 4975 +7175 5075 +7025 5075 +6925 5025 +6925 5275 +6925 5425 +6925 5525 +6925 5675 +6665 5610 +6665 5460 +6665 5310 +6665 5160 +6665 5010 +6665 4860 +6825 4775 +6665 4710 +6665 4560 +6775 4500 +6850 4550 +6850 4450 +6775 4375 +6725 4275 +6825 4275 +7050 4175 +7150 4275 +7250 4175 +7150 4125 +7175 3975 +7175 3875 +7075 3975 +7000 3875 +6875 3875 +6725 3900 +6700 3700 +6700 3575 +6700 3475 +6700 3375 +6700 3275 +6275 3125 +6300 3225 +6300 3325 +6300 3475 +6300 3625 +6200 3825 +6025 3825 +6025 3925 +5925 3975 +5825 3975 +5825 3875 +5450 3925 +5450 3725 +5450 3325 +5000 3325 +5000 3725 +5000 3925 +4625 3875 +4625 3975 +4525 3975 +4450 3875 +4325 3875 +4175 3900 +4150 3700 +4150 3575 +4150 3475 +4150 3375 +4150 3275 +3725 3125 +3750 3225 +3750 3325 +3750 3475 +3750 3625 +3650 3825 +3475 3825 +3475 3925 +3375 3975 +3275 3875 +3275 3975 +3300 4125 +3200 4175 +3300 4275 +3400 4175 +3575 4325 +3675 4425 +3725 4325 +4175 4275 +4275 4275 +4225 4375 +4300 4450 +4300 4550 +4225 4500 +4115 4560 +4115 4710 +4275 4775 +4115 4860 +4115 5010 +4115 5160 +4115 5310 +4115 5460 +4115 5610 +4375 5675 +4375 5525 +4375 5425 +4375 5275 +4375 5025 +4475 5075 +4625 5075 +4575 4975 +4475 4925 +4425 4775 +4500 4675 +4525 4775 +4675 4775 +4875 4600 +4775 4600 +4700 4525 +4600 4525 +4600 4425 +4700 4425 +4700 4325 +4600 4275 +4500 4175 +4600 4125 +4700 4175 +4775 4275 +4875 4275 +4975 4175 +5175 4175 +5275 4175 +5475 4175 +5575 4275 +5675 4275 +5750 4325 +5750 4425 +5750 4525 +5675 4575 +5575 4575 +5775 4775 +5925 4775 +6075 4725 +5950 4675 +5850 4500 +5850 4400 +5850 4275 +5750 4175 +5850 4125 +5950 4175 +6125 4325 +6275 4325 +6225 4425 +6225 4575 +6225 4675 +6225 4775 +6225 4925 +6350 4925 +6350 5075 +6322 5204 +6325 5325 +6225 5275 +6225 5375 +6075 5375 +6075 5275 +6025 5175 +6000 5025 +5875 4975 +5825 5075 +5850 5175 +5800 5275 +5800 5375 +5700 5175 +5425 5175 +5325 5075 +5375 4975 +5225 4875 +5075 4975 +5125 5075 +5225 5025 +5225 5175 +5025 5175 +4875 5175 +4950 5250 +4950 5350 +4925 5450 +5075 5450 +5225 5450 +5375 5450 +5475 5450 +5575 5450 +5425 6025 +5425 6125 +5575 6125 +5725 6025 +5925 6050 +6124 5908 +6300 5975 +6300 6375 +6300 6575 +6075 6575 +5925 6450 +5875 6675 +5975 6775 +5875 6875 +6075 6975 +6275 6975 +6225 7075 +6300 7150 +6025 7150 +5875 7150 +5775 7325 +5825 7425 +5975 7425 +6075 7475 +5975 7575 +6075 7625 +6075 7725 +5925 7725 +5925 7825 +6075 7825 +6225 7875 +6325 7925 +6325 8075 +6225 8075 +6175 8175 +6325 8225 +6325 8375 +6175 8325 +6075 8325 +5975 8225 +5875 8225 +5825 7975 +5675 7825 +5725 7600 +5625 7575 +5675 7425 +5575 7425 +5425 7425 +5425 7575 +5350 7750 +5200 7750 +5325 7875 +5475 7825 +5425 7925 +5525 7975 +5625 7975 +5625 8075 +5525 8125 +5425 8075 +5325 8025 +5325 8125 +5150 8225 +5050 8225 +5125 8125 +5175 7975 +5025 7975 +4900 7875 +4900 7775 +4725 7825 +4525 7725 +4375 7725 +4325 7625 +4475 7625 +4525 7475 +4625 7575 +4725 7475 +4925 7525 +4875 7425 +4825 7275 +4725 7075 +4525 7075 +4625 6975 +4775 6775 +4625 6775 +4475 6825 +4475 6675 +4625 6425 +4525 6200 +4625 6025 +4525 6000 +4125 6375 +4125 6525 +4275 6525 +4275 6675 +4125 6675 +4125 6875 +4125 7075 +4126 7259 +4125 7260 +4126 7409 +4125 7410 +4125 7560 +4126 7560 +4125 7710 +4125 7711 +4225 7825 +4125 7875 +4125 7975 +4125 8075 +4125 8175 +4125 8275 +4125 8375 +4125 8475 +4175 8825 +4375 8825 +4478 8820 +4747 8703 +4775 8825 +4925 8725 +4975 8825 +5075 8725 +5000 8575 +5150 8375 +5150 8475 +5150 8625 +5375 8775 +5475 8775 +5575 8775 +5675 8775 +5825 8775 +5775 8625 +5775 8525 +5875 8575 +6075 8475 +6175 8425 +6250 8575 +6350 8675 +6250 8775 +6225 9325 +6225 9425 +6225 9525 +6225 9725 +6225 9825 +6275 10075 +6025 10075 +5748 10075 +5475 10075 +5337 9801 +5335 9702 +5335 9601 +5336 9502 +5336 9399 +5336 9298 +5075 9325 +5075 9425 +5075 9525 +5075 9725 +5075 9825 +4975 10075 +4700 10075 +4425 10075 +4275 10125 +4190 9806 +4189 9706 +4189 9606 +4190 9505 +4190 9406 +4189 9306 +3675 9325 +3675 9425 +3675 9525 +3675 9725 +3675 9825 +3725 10075 +3475 10075 +3198 10075 +2925 10075 +2787 9801 +2785 9702 +2785 9601 +2786 9502 +2786 9399 +2786 9298 +2525 9325 +2525 9425 +2525 9525 +2525 9725 +2525 9825 +2425 10075 +2150 10075 +2450 10475 +2900 10475 +2900 10875 +2900 11075 +3275 11025 +3275 11125 +3375 11125 +3475 11075 +3475 10975 +3650 10975 +3750 10775 +3750 10625 +3750 10475 +3750 10375 +3725 10275 +4150 10425 +4150 10525 +4150 10625 +4150 10725 +4150 10850 +4175 11050 +4325 11025 +4450 11025 +4525 11125 +4625 11025 +4625 11125 +4600 11275 +4700 11325 +4600 11425 +4500 11325 +4275 11425 +4175 11425 +4225 11525 +4300 11600 +4300 11700 +4225 11650 +4115 11710 +4115 11860 +4275 11925 +4115 12010 +4115 12160 +4115 12310 +4115 12460 +4115 12610 +4115 12760 +4375 12825 +4375 12675 +4375 12575 +4375 12425 +4375 12175 +4475 12225 +4625 12225 +4575 12125 +4475 12075 +4425 11925 +4500 11825 +4525 11925 +4675 11925 +4875 11750 +4775 11750 +4700 11675 +4600 11675 +4600 11575 +4700 11575 +4700 11475 +4775 11425 +4875 11425 +4975 11325 +5175 11325 +5275 11325 +5000 11075 +5000 10875 +5000 10475 +5450 10475 +5450 10875 +5450 11075 +5475 11325 +5575 11425 +5675 11425 +5750 11475 +5750 11575 +5850 11550 +5850 11650 +5750 11675 +5675 11725 +5575 11725 +5775 11925 +5925 11925 +5950 11825 +6075 11875 +6225 11725 +6225 11825 +6225 11925 +6225 12075 +6350 12075 +6350 12225 +6322 12354 +6325 12475 +6225 12425 +6225 12525 +6075 12525 +6075 12425 +6025 12325 +6000 12175 +5875 12125 +5825 12225 +5850 12325 +5800 12425 +5800 12525 +5700 12325 +5425 12325 +5325 12225 +5375 12125 +5225 12025 +5075 12125 +5125 12225 +5225 12175 +5225 12325 +5025 12325 +4875 12325 +4950 12400 +4950 12500 +4925 12600 +5075 12600 +5225 12600 +5375 12600 +5475 12600 +5575 12600 +5425 13175 +5425 13275 +5575 13275 +5725 13175 +5925 13200 +6124 13058 +6300 13125 +6300 13525 +6300 13725 +6075 13725 +5925 13600 +5875 13825 +5975 13925 +5875 14025 +6075 14125 +6275 14125 +6225 14225 +6300 14300 +6025 14300 +5875 14300 +5775 14475 +5825 14575 +5725 14750 +5625 14725 +5675 14575 +5575 14575 +5425 14575 +5425 14725 +5350 14900 +5200 14900 +5325 15025 +5325 15175 +5325 15275 +5425 15225 +5525 15275 +5625 15225 +5625 15125 +5525 15125 +5425 15075 +5475 14975 +5675 14975 +5825 15125 +5925 14975 +5925 14875 +5975 14725 +5975 14575 +6075 14625 +6075 14775 +6075 14875 +6075 14975 +6225 15025 +6325 15075 +6325 15225 +6225 15225 +6175 15325 +6325 15375 +6325 15525 +6250 15725 +6350 15825 +6250 15925 +6075 15625 +6175 15575 +6175 15475 +6075 15475 +5975 15375 +5875 15375 +5775 15675 +5875 15725 +5775 15775 +5825 15925 +5675 15925 +5575 15925 +5475 15925 +5375 15925 +5150 15775 +5075 15875 +4975 15975 +4775 15975 +4747 15853 +4925 15875 +5000 15725 +5150 15625 +5150 15525 +5150 15375 +5050 15375 +5125 15275 +5175 15125 +5025 15125 +4900 15025 +4900 14925 +4725 14975 +4525 14875 +4375 14875 +4325 14775 +4475 14775 +4525 14625 +4625 14725 +4725 14625 +4925 14675 +4875 14575 +4825 14425 +4725 14225 +4525 14225 +4625 14125 +4775 13925 +4625 13925 +4475 13975 +4475 13825 +4625 13575 +4525 13350 +4625 13175 +4525 13150 +4125 13525 +4125 13675 +4275 13675 +4275 13825 +4125 13825 +4125 14025 +4125 14225 +4126 14409 +4125 14410 +4126 14559 +4125 14560 +4125 14710 +4126 14710 +4125 14860 +4125 14861 +4225 14975 +4125 15025 +4125 15125 +4125 15225 +4125 15325 +4125 15425 +4125 15525 +4125 15625 +4478 15970 +4375 15975 +4175 15975 +3800 15825 +3700 15925 +3700 15725 +3625 15575 +3525 15625 +3325 15725 +3225 15675 +3225 15775 +3275 15925 +3125 15925 +3025 15925 +2925 15925 +2825 15925 +2600 15775 +2600 15625 +2600 15525 +2450 15725 +2525 15875 +2425 15975 +2375 15875 +2225 15975 +2197 15853 +1928 15970 +1825 15975 +1625 15975 +1575 15625 +1575 15525 +1575 15425 +1575 15325 +1575 15225 +1575 15125 +1575 15025 +1675 14975 +1575 14861 +1575 14860 +1575 14710 +1576 14710 +1575 14560 +1576 14559 +1575 14410 +1576 14409 +1575 14225 +1575 14025 +1575 13825 +1725 13825 +1725 13675 +1575 13675 +1575 13525 +1975 13150 +2075 13175 +1975 13350 +2075 13575 +1925 13825 +1925 13975 +2075 13925 +2225 13925 +2075 14125 +1975 14225 +2175 14225 +2275 14425 +2325 14575 +2375 14675 +2175 14625 +2075 14725 +1975 14625 +1925 14775 +1775 14775 +1825 14875 +1975 14875 +2175 14975 +2350 14925 +2350 15025 +2475 15125 +2625 15125 +2575 15275 +2500 15375 +2600 15375 +2775 15275 +2775 15175 +2875 15225 +2975 15275 +3075 15225 +3075 15125 +2975 15125 +2925 14975 +2875 15075 +2775 15025 +2650 14900 +2800 14900 +2875 14725 +2875 14575 +3025 14575 +3125 14575 +3075 14725 +3175 14750 +3125 14975 +3275 15125 +3325 15375 +3425 15375 +3525 15475 +3625 15475 +3775 15525 +3775 15375 +3625 15325 +3675 15225 +3775 15225 +3775 15075 +3675 15025 +3525 14975 +3375 14975 +3375 14875 +3525 14875 +3525 14775 +3425 14725 +3525 14625 +3425 14575 +3275 14575 +3225 14475 +3325 14300 +3475 14300 +3750 14300 +3675 14225 +3725 14125 +3525 14125 +3325 14025 +3425 13925 +3325 13825 +3375 13600 +3525 13725 +3750 13725 +3750 13525 +3750 13125 +3574 13058 +3375 13200 +3175 13175 +3025 13275 +2875 13275 +2875 13175 +3025 12600 +2925 12600 +2825 12600 +2675 12600 +2525 12600 +2375 12600 +2400 12500 +2400 12400 +2325 12325 +2475 12325 +2575 12225 +2525 12125 +2675 12025 +2825 12125 +2775 12225 +2675 12175 +2675 12325 +2875 12325 +3150 12325 +3250 12525 +3250 12425 +3300 12325 +3275 12225 +3325 12125 +3450 12175 +3475 12325 +3525 12425 +3525 12525 +3675 12525 +3675 12425 +3775 12475 +3772 12354 +3800 12225 +3800 12075 +3675 12075 +3675 11925 +3675 11825 +3675 11725 +3675 11575 +3725 11475 +3575 11475 +3400 11325 +3300 11275 +3200 11325 +3300 11425 +3300 11550 +3300 11650 +3400 11825 +3525 11875 +3375 11925 +3225 11925 +3025 11725 +3125 11725 +3200 11675 +3200 11575 +3200 11475 +3125 11425 +3025 11425 +2925 11325 +2725 11325 +2625 11325 +2450 10875 +2450 11075 +2425 11325 +2325 11425 +2225 11425 +2150 11475 +2150 11575 +2050 11575 +2050 11675 +2150 11675 +2225 11750 +2325 11750 +2125 11925 +1975 11925 +1950 11825 +1875 11925 +1925 12075 +2025 12125 +2075 12225 +1925 12225 +1825 12175 +1825 12425 +1825 12575 +1825 12675 +1825 12825 +1565 12760 +1565 12610 +1565 12460 +1565 12310 +1565 12160 +1565 12010 +1725 11925 +1565 11860 +1565 11710 +1675 11650 +1750 11700 +1750 11600 +1675 11525 +1625 11425 +1725 11425 +1950 11325 +2050 11425 +2150 11325 +2050 11275 +2075 11125 +2075 11025 +1975 11125 +1900 11025 +1775 11025 +1625 11050 +1600 10850 +1600 10725 +1600 10625 +1600 10525 +1600 10425 +1725 10125 +1875 10075 +1640 9806 +1639 9706 +1639 9606 +1640 9505 +1640 9406 +1639 9306 +1928 8820 +1825 8825 +1625 8825 +1575 8475 +1575 8375 +1575 8275 +1575 8175 +1575 8075 +1575 7975 +1575 7875 +1675 7825 +1575 7711 +1575 7710 +1576 7560 +1575 7560 +1575 7410 +1576 7409 +1575 7260 +1576 7259 +1575 7075 +1575 6875 +1575 6675 +1725 6675 +1725 6525 +1575 6525 +1575 6375 +1975 6000 +2075 6025 +1975 6200 +2075 6425 +1925 6675 +1925 6825 +2075 6775 +2225 6775 +2075 6975 +1975 7075 +2175 7075 +2275 7275 +2325 7425 +2375 7525 +2175 7475 +2075 7575 +1975 7475 +1925 7625 +1775 7625 +1825 7725 +1975 7725 +2175 7825 +2350 7775 +2350 7875 +2475 7975 +2625 7975 +2575 8125 +2500 8225 +2600 8225 +2600 8375 +2600 8475 +2450 8575 +2375 8725 +2197 8703 +2225 8825 +2425 8825 +2525 8725 +2600 8625 +2825 8775 +2925 8775 +3025 8775 +3125 8775 +3275 8775 +3225 8625 +3325 8575 +3225 8525 +3325 8225 +3425 8225 +3525 8325 +3625 8325 +3625 8425 +3525 8475 +3700 8775 +3800 8675 +3700 8575 +3775 8375 +3775 8225 +3625 8175 +3675 8075 +3775 8075 +3775 7925 +3675 7875 +3525 7825 +3525 7725 +3525 7625 +3525 7475 +3425 7425 +3425 7575 +3375 7725 +3375 7825 +3275 7975 +3125 7825 +2925 7825 +2875 7925 +2975 7975 +3075 7975 +3075 8075 +2975 8125 +2875 8075 +2775 8125 +2775 8025 +2775 7875 +2650 7750 +2800 7750 +2875 7575 +2875 7425 +3025 7425 +3125 7425 +3075 7575 +3175 7600 +3275 7425 +3225 7325 +3325 7150 +3475 7150 +3750 7150 +3675 7075 +3725 6975 +3525 6975 +3325 6875 +3425 6775 +3325 6675 +3375 6450 +3525 6575 +3750 6575 +3750 6375 +3750 5975 +3574 5908 +3375 6050 +3175 6025 +3025 6125 +2875 6125 +2875 6025 +3025 5450 +2925 5450 +2825 5450 +2675 5450 +2525 5450 +2375 5450 +2400 5350 +2400 5250 +2325 5175 +2475 5175 +2575 5075 +2525 4975 +2675 4875 +2825 4975 +2775 5075 +2675 5025 +2675 5175 +2875 5175 +3150 5175 +3250 5375 +3250 5275 +3300 5175 +3275 5075 +3325 4975 +3450 5025 +3475 5175 +3525 5275 +3525 5375 +3675 5375 +3675 5275 +3775 5325 +3772 5204 +3800 5075 +3800 4925 +3675 4925 +3675 4775 +3675 4675 +3675 4575 +3525 4725 +3400 4675 +3375 4775 +3225 4775 +3025 4575 +3125 4575 +3200 4525 +3300 4500 +3300 4400 +3200 4425 +3200 4325 +3125 4275 +3025 4275 +2925 4175 +2900 3925 +2900 3725 +2900 3325 +2450 3325 +2450 3725 +2450 3925 +2725 4175 +2625 4175 +2425 4175 +2325 4275 +2225 4275 +2150 4325 +2150 4425 +2050 4425 +2050 4525 +2150 4525 +2225 4600 +2325 4600 +2125 4775 +1975 4775 +1950 4675 +1875 4775 +1925 4925 +2025 4975 +2075 5075 +1925 5075 +1825 5025 +1825 5275 +1825 5425 +1825 5525 +1825 5675 +1565 5610 +1565 5460 +1565 5310 +1565 5160 +1565 5010 +1565 4860 +1725 4775 +1565 4710 +1565 4560 +1675 4500 +1750 4550 +1750 4450 +1675 4375 +1625 4275 +1725 4275 +1950 4175 +2050 4275 +2150 4175 +2050 4125 +2075 3975 +2075 3875 +1975 3975 +1900 3875 +1775 3875 +1625 3900 +1600 3700 +1600 3575 +1600 3475 +1600 3375 +1600 3275 +1725 2975 +1640 2656 +1639 2556 +1639 2456 +1640 2355 +1640 2256 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/readme b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/readme new file mode 100644 index 000000000..7203e5789 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/readme @@ -0,0 +1,35 @@ +NAME : eil101 +COMMENT : 101-city problem (Christofides/Eilon) +TYPE : TSP +DIMENSION : 101 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME: ali535 +TYPE: TSP +COMMENT: 535 Airports around the globe (Padberg/Rinaldi) +DIMENSION: 535 +EDGE_WEIGHT_TYPE: GEO +DISPLAY_DATA_TYPE: COORD_DISPLAY + +NAME : pr2392 +COMMENT : 2392-city problem (Padberg/Rinaldi) +TYPE : TSP +DIMENSION : 2392 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : rl5915 +COMMENT : 5915-city TSP (Reinelt) +TYPE : TSP +DIMENSION : 5915 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : usa13509 +COMMENT : Cities with population at least 500 in the continental US. +COMMENT : Contributed by David Applegate and Andre Rohe, based on the +COMMENT : data set "US.lat-long" from the ftp site ftp.cs.toronto.edu. +COMMENT : The file US.lat-long.Z can be found in the directory /doc/geography. +TYPE : TSP +DIMENSION : 13509 +EDGE_WEIGHT_TYPE : EUC_2D + + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/rl5915.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/rl5915.tsp new file mode 100644 index 000000000..9eda5f662 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/rl5915.tsp @@ -0,0 +1,5916 @@ +5915 +18192 8954 +18192 9856 +18192 11319 +18272 8624 +18416 7348 +18416 8294 +1200 7370 +1200 8184 +1200 10912 +1200 11440 +17904 572 +17904 2684 +17904 6908 +17904 7348 +17904 8624 +8272 308 +8272 2068 +8272 2508 +8272 3080 +8272 3608 +8272 5302 +8336 7260 +8464 7260 +8496 9548 +8496 10582 +8496 11440 +15888 9064 +15888 9504 +15888 10252 +15888 11000 +15936 8184 +16048 8184 +16208 8184 +16336 572 +16336 1012 +16336 1452 +16336 2992 +16336 4818 +16336 6028 +16336 7348 +1040 7370 +1040 8184 +1040 10912 +1040 11440 +4464 308 +4640 308 +4816 308 +4944 308 +5168 308 +5440 308 +5616 308 +5728 308 +5808 3080 +5808 3608 +5808 4664 +5808 5368 +5808 6072 +5808 7128 +5936 9658 +5936 11286 +16848 572 +16848 1452 +16848 2992 +16848 4708 +16848 6028 +16848 7348 +16848 8514 +16848 9284 +16848 9922 +16848 11198 +8240 7480 +8400 9548 +8400 10582 +8400 11440 +1520 9152 +1520 10912 +1520 11440 +1584 6446 +1584 7590 +1584 8294 +5168 11440 +5280 11440 +5456 11440 +5584 11440 +5712 11440 +2672 6336 +2784 6556 +2976 6556 +3104 6556 +3264 6556 +3360 6556 +3600 6556 +3856 6556 +3920 6556 +4016 6556 +4144 6556 +4208 6556 +4352 6556 +4464 6556 +4560 6556 +4688 6556 +4720 7260 +4720 8140 +4720 9702 +4720 10582 +4720 11132 +17008 572 +17008 1452 +17008 2992 +17008 5874 +17008 7348 +17072 8096 +17136 8096 +17280 8096 +17456 8096 +17520 8404 +17520 8954 +17520 10142 +17520 11319 +880 7370 +880 8184 +880 11440 +4144 4840 +4144 7700 +4304 8360 +4416 8360 +4576 8360 +4656 8360 +4864 8360 +5040 8360 +5296 8360 +5456 8844 +5456 9812 +5520 3608 +5520 4664 +5520 5368 +5520 5918 +5520 6930 +16560 8954 +16560 9922 +16592 572 +16592 1452 +16592 2992 +16592 4818 +16592 6138 +16592 7348 +7728 7744 +7728 9548 +7728 10846 +7792 7040 +7856 7040 +7952 7040 +8016 308 +8016 2068 +8016 2508 +8016 3080 +8016 3608 +8016 4268 +8016 5852 +16272 9064 +16272 9504 +16272 9922 +16272 11000 +16640 8844 +16720 8844 +16784 6028 +16784 7348 +16784 8514 +464 11440 +528 8184 +640 8184 +784 7370 +784 7964 +7664 6446 +7664 8074 +7664 9548 +7664 10846 +7728 308 +7728 2068 +7728 2508 +7728 3080 +7728 3608 +7728 4048 +7728 4488 +5232 3608 +5232 4664 +5232 5368 +5232 5918 +5232 6776 +5520 7920 +3856 7480 +3920 7920 +4016 7920 +4176 9152 +4176 9922 +4176 10472 +4176 10912 +4176 11440 +5984 748 +6096 3080 +6096 3608 +6096 4664 +6160 5368 +6224 5368 +6320 5368 +6496 5368 +6608 5698 +6608 6336 +6608 7502 +6608 9064 +6608 10142 +6608 11022 +17200 5874 +17200 7348 +17200 9284 +17200 9922 +17200 11198 +17296 5192 +17440 5192 +17568 5192 +17616 572 +17616 2992 +7248 10362 +7248 11286 +7376 308 +7376 968 +7376 2068 +7376 2508 +7376 3080 +7376 3608 +7376 4488 +7376 5588 +7376 6556 +7376 7744 +1808 6446 +1840 7436 +1840 8404 +1840 9042 +1840 10912 +1840 11440 +12272 9878 +12464 9064 +12592 9064 +12736 9064 +12848 902 +12848 1980 +12848 2640 +12848 3168 +12848 3608 +12848 4158 +12848 5368 +12848 6556 +12848 6996 +12848 8008 +12848 8844 +1648 8404 +1648 9152 +1648 10912 +1648 11440 +1680 6446 +1680 7590 +6256 9658 +6256 11022 +16976 8514 +16976 9284 +16976 9922 +16976 11198 +17072 5720 +17136 5720 +17440 5720 +17600 5720 +11600 572 +11600 1760 +11600 3388 +11600 5258 +11600 6556 +11600 6996 +11600 7898 +11632 8602 +11632 9284 +11632 10208 +17376 10142 +17728 10142 +18416 10142 +18608 10142 +18704 10142 +18864 10142 +18992 10142 +19088 10142 +6224 968 +6224 3080 +6224 3608 +6224 4664 +6400 10912 +6768 10912 +6864 11286 +1936 6336 +1936 7436 +1968 8404 +1968 9152 +1968 10912 +1968 11440 +3984 8712 +4304 8932 +4416 8932 +4496 10802 +15440 1232 +15440 3608 +15440 4180 +15440 4818 +15536 5808 +15648 5808 +15760 5808 +15840 5808 +15936 5808 +16048 5808 +16208 5808 +5584 10252 +5728 10252 +6000 10252 +6064 10252 +6160 10252 +6320 968 +6320 3080 +6320 3608 +6320 4664 +6384 9548 +6384 10472 +16720 11198 +17088 11198 +17376 11198 +17728 11198 +18416 11198 +18608 11198 +18704 11198 +18848 11198 +15280 572 +15280 1232 +15280 3608 +15280 4180 +15280 4818 +15280 6138 +15280 7348 +15280 8228 +15280 9064 +15280 9504 +15280 10252 +15280 11000 +3472 7920 +3472 8712 +3472 9372 +3472 10472 +3472 10912 +3472 11440 +208 11440 +432 7964 +944 7964 +1104 7370 +1424 6446 +1424 7370 +1424 8294 +10096 4378 +10096 5478 +10096 6556 +10096 7480 +10096 8008 +10096 8602 +10096 9284 +10096 10318 +10096 11440 +10256 3608 +10336 3608 +10448 3608 +10544 3608 +10608 3608 +10672 3608 +10752 3608 +10864 3608 +10992 3608 +11088 3608 +11168 3608 +11280 3608 +11408 3608 +688 7370 +688 11440 +6160 968 +6496 968 +6592 968 +6736 968 +6848 968 +6944 968 +7104 968 +7232 968 +7552 968 +7600 308 +7600 2068 +7600 2508 +7600 3080 +7600 3608 +7600 4048 +7600 4488 +7632 5148 +7792 5148 +7856 5148 +7920 5148 +8112 5148 +8384 5148 +8464 5148 +8624 5148 +8800 5148 +8912 5148 +9216 5148 +9504 5148 +9616 5148 +9744 5148 +9888 5148 +9936 6556 +9936 7480 +9936 8382 +9936 9284 +9936 11440 +10032 572 +10032 1452 +10032 2728 +6496 7084 +6736 7084 +6768 9064 +6768 10142 +9936 572 +9936 1452 +5200 10032 +7408 10362 +7568 10692 +7856 10692 +7936 10692 +8032 10692 +8144 10692 +8224 10692 +8320 10692 +8784 10692 +8976 10692 +9408 10692 +10288 10692 +10400 10692 +10560 10692 +10704 10692 +10864 10692 +10960 10692 +11136 10692 +11264 10692 +11392 10692 +11472 10692 +11568 10692 +4880 9218 +4880 10032 +4880 10582 +4880 11132 +4944 3608 +4944 4664 +4944 5368 +4944 5918 +4944 6776 +4944 7436 +6944 308 +7104 308 +7232 308 +7792 308 +7856 308 +7920 308 +8128 308 +8384 308 +8464 308 +8528 308 +8592 308 +8688 308 +8800 308 +8912 308 +9008 308 +9104 308 +9200 308 +9232 1452 +9232 2288 +9232 3388 +9344 7260 +9456 8602 +9456 11440 +3568 7920 +3664 7920 +3728 7920 +8240 9548 +8240 11440 +9376 6776 +9776 572 +9776 1452 +9776 2508 +9776 3388 +6992 7854 +6992 9174 +6992 9812 +6992 10362 +7056 2068 +7056 3080 +7056 3608 +7056 4664 +7056 5588 +7056 6556 +14512 682 +14640 3608 +14640 4048 +14640 4598 +14640 6138 +14640 7568 +14640 8228 +14640 9064 +14640 9504 +14640 10252 +14640 11000 +14768 1012 +14848 1012 +14960 1012 +15376 1012 +15536 1012 +15664 1012 +15760 1012 +15840 1012 +15936 1012 +16048 1012 +16208 1012 +16464 1012 +16528 572 +14736 6138 +14736 7568 +14736 8228 +14736 9064 +14736 9504 +14736 10252 +14736 10890 +14768 4928 +14880 4928 +14976 4928 +15376 4928 +15536 4928 +15648 4928 +15760 4928 +15840 4928 +15936 4928 +16048 4928 +16208 4928 +16464 4928 +16704 4928 +13808 6028 +13808 6776 +13808 7788 +13808 8228 +13808 9504 +13808 10362 +13808 11110 +14032 4708 +14144 4708 +14320 4708 +14464 4708 +16944 4708 +3664 8712 +3728 9284 +3760 9702 +3760 10472 +3760 10912 +3760 11440 +3600 8712 +3600 9482 +4048 9812 +4336 9812 +4576 9812 +4656 9812 +4976 8844 +8976 8118 +8976 9394 +8976 11440 +10176 6556 +10304 6556 +10448 6556 +10576 6556 +10736 6556 +10832 6556 +10896 6556 +10976 6556 +11088 6556 +11168 6556 +11264 6556 +11424 6556 +11536 6556 +11664 6556 +11728 6556 +11792 6556 +11872 6556 +11968 6556 +12112 6556 +12272 6556 +12448 6556 +12608 6556 +12736 6556 +13008 6556 +13072 1012 +13072 1980 +13072 2640 +13072 3608 +13072 4268 +13072 5368 +13168 572 +13264 572 +13408 572 +13568 572 +13696 572 +14016 572 +14160 572 +14320 572 +15120 572 +15376 572 +10480 572 +10480 1452 +10480 6006 +7120 2508 +7120 3080 +7120 3608 +7120 4664 +7120 5588 +7120 6556 +7120 7744 +7120 9064 +7120 9812 +7120 10362 +7120 11286 +3728 8712 +4016 10472 +4016 10912 +4016 11440 +6480 9064 +6896 9064 +7248 2068 +7248 2508 +7248 3080 +7248 3608 +7248 4664 +7248 5588 +7248 6556 +7248 7480 +3920 8712 +5056 9372 +3536 9372 +3536 10472 +3536 10912 +3536 11440 +8784 8448 +10304 8448 +10560 8448 +10704 8448 +10768 8448 +10848 8448 +10976 8448 +11120 8448 +11264 8448 +11552 8448 +11760 8448 +11888 8448 +12080 8448 +12240 8448 +12720 572 +12720 1980 +12720 3718 +12720 5368 +12720 6996 +2800 7326 +2928 7700 +2992 7700 +3104 7700 +3264 7700 +4208 7700 +8112 2068 +8112 2508 +8112 3080 +8112 3608 +8112 4268 +8112 7480 +9584 2728 +9584 3388 +9840 2288 +11440 2288 +11728 2288 +11824 2288 +11984 2288 +12112 2288 +12256 2288 +12384 2288 +12464 2288 +12496 572 +12496 1232 +12608 1012 +5584 7920 +5680 7920 +5760 7920 +6896 7920 +7568 7920 +8144 7920 +8208 7920 +9136 7590 +10544 6116 +11088 6116 +11168 6116 +11264 6116 +11312 572 +11312 1496 +11312 5258 +10768 572 +10768 1342 +10768 4488 +10768 5038 +10768 5588 +10768 6996 +10768 9284 +10768 9878 +5584 8844 +5616 3080 +6160 3080 +6496 3080 +6608 3080 +6736 3080 +6848 3080 +6944 3080 +7792 3080 +7856 3080 +7920 3080 +8384 3080 +8464 3080 +8560 3080 +8688 3080 +8800 3080 +8912 3080 +9008 3080 +8688 2288 +8464 6116 +8528 2068 +8528 2508 +8528 3608 +8464 2068 +8464 2508 +8464 3608 +17456 572 +17456 2992 +17456 7238 +11728 2948 +11824 2948 +11984 2948 +12112 2948 +12256 2948 +12384 2948 +12464 2948 +12560 572 +12560 1980 +12560 2728 +17552 7238 +17632 8184 +17776 8184 +18080 8184 +18256 9064 +10448 10032 +10560 10032 +10704 10032 +10864 10032 +10976 10032 +11136 10032 +11760 10032 +11888 10032 +12032 10032 +12144 10032 +12880 10032 +13008 10032 +13168 10032 +13312 10032 +13472 10032 +13584 10032 +13680 3608 +13680 4268 +13680 6028 +13680 6776 +13680 8008 +13680 9504 +17760 6908 +18048 6908 +18128 7348 +12640 3388 +12784 2640 +12784 3168 +10976 8008 +11088 8008 +11264 8008 +11664 8008 +11728 8008 +11792 8008 +11888 8008 +12912 8008 +13008 8008 +13184 8008 +13328 8008 +13456 8008 +13568 8008 +8400 2068 +8400 2508 +8400 3608 +9328 1452 +9520 1452 +9632 1452 +9840 1452 +10160 1452 +10256 1452 +10336 1452 +10544 1452 +10608 1452 +10672 1452 +10864 1452 +10992 1452 +11088 1452 +11168 1452 +12304 572 +14864 3608 +14864 4048 +14864 6138 +14864 7568 +14864 8228 +14864 9064 +14864 9504 +14864 10252 +14864 10890 +7792 2068 +7792 2508 +7792 3608 +7792 4048 +7792 4488 +7792 6446 +15376 3608 +15376 4180 +15376 6138 +15376 7348 +6864 2068 +6864 3608 +6864 4774 +6928 5368 +10544 5368 +10672 5368 +10704 9284 +12464 11000 +12592 11000 +12736 11000 +12880 11000 +13008 11000 +13168 11000 +13312 11000 +13456 11000 +13584 11000 +14144 11000 +14224 11000 +14336 11000 +14416 11000 +14992 11000 +15440 11000 +15632 11000 +15760 11000 +15824 11000 +16160 11000 +16464 11000 +15952 572 +15952 1452 +16048 2992 +16208 2992 +16464 2992 +16704 2992 +17072 2992 +17136 2992 +17296 2992 +15664 572 +15664 3608 +15664 4180 +15664 7348 +15664 7788 +15664 9064 +15664 9504 +15664 10252 +16432 1452 +8144 9548 +8144 11440 +9616 572 +12112 572 +12112 3938 +12112 5258 +8304 9548 +8304 11440 +12912 8844 +13008 8844 +13184 8844 +13328 8844 +13456 8844 +13552 3608 +13552 4378 +13552 5368 +13552 6028 +13552 6776 +11920 6996 +11920 9284 +11952 572 +11952 3938 +11952 5258 +10320 572 +10448 11440 +11824 572 +11824 3938 +11824 5258 +12656 5368 +5008 10692 +5008 11132 +13168 1980 +13168 2640 +13168 3608 +13168 4378 +13168 5478 +13232 6028 +13376 6028 +13488 6028 +14032 6028 +14144 6028 +14224 6028 +14320 6028 +14464 6028 +14976 6028 +16704 6028 +3280 10912 +3280 11440 +6736 308 +6736 2068 +6736 3608 +6736 4774 +6736 5698 +6736 6336 +8784 11440 +10288 11440 +10512 11440 +11792 6996 +8720 4158 +6800 5808 +6800 6336 +6912 6556 +7856 6556 +8896 6556 +8944 2288 +8944 3608 +7568 9504 +7856 9504 +8784 9504 +14144 8228 +14224 8228 +14336 8228 +14416 8228 +14480 8228 +15440 8228 +15504 8228 +15536 3608 +15536 4180 +15536 7348 +15568 572 +15760 572 +15840 572 +16048 572 +16208 572 +16704 572 +17104 572 +17296 572 +18000 572 +18080 572 +11728 572 +11728 3938 +11728 5258 +11728 6996 +11760 9284 +12272 3938 +12272 5258 +10512 9284 +7856 4048 +7920 4048 +8784 2288 +8784 3608 +8784 4268 +7920 2068 +7920 2508 +7920 3608 +7920 4488 +8880 4268 +10544 572 +10544 6996 +10608 4488 +9008 2288 +9312 2288 +11440 572 +11440 5258 +11440 6996 +11536 6996 +15824 7348 +15824 7788 +15824 9064 +15824 9504 +15824 10252 +6608 2068 +6608 3608 +6608 4664 +6896 5808 +112 11198 +10672 4488 +10832 4488 +10864 572 +10864 5038 +11088 6996 +9520 572 +9520 2068 +12240 6996 +3280 8712 +3280 9152 +3632 10472 +3632 10912 +3632 11440 +11568 9284 +14128 10472 +14160 1342 +14160 3608 +14160 4048 +14160 6776 +14160 7678 +14160 9504 +4080 10472 +4336 10472 +4576 10472 +4976 10032 +528 7370 +16016 1452 +16016 7348 +16016 9064 +16016 9504 +16160 9922 +16464 9922 +16640 9922 +16720 9922 +17088 9922 +1744 10912 +2112 10912 +2368 10912 +2544 10912 +2944 10912 +3056 8712 +3056 9152 +3088 10912 +4080 10912 +4336 10912 +4432 10912 +13456 9504 +14224 7788 +14336 7788 +14416 7788 +14448 1342 +14448 3608 +14448 4048 +1280 8404 +1744 8404 +1904 8404 +2160 8404 +2224 8404 +2368 8404 +2544 8404 +2704 7546 +14032 1342 +14032 3608 +14032 6776 +14976 7568 +14320 4048 +14768 4048 +13392 1980 +13392 3608 +13392 4378 +13392 5368 +16688 1452 +13360 6776 +16208 1452 +16208 7348 +1504 6336 +2064 6336 +2160 6336 +2224 6336 +2384 6336 +2544 6336 +4560 7370 +4304 7260 +4384 7260 +4464 7260 +4816 7260 +4880 7260 +14352 1342 +14352 3608 +14352 9504 +14352 10252 +5744 8844 +4336 11440 +6160 3608 +6160 4664 +6160 11132 +6512 3608 +6512 4664 +6928 2068 +6928 3608 +6928 4664 +11280 6996 +12592 6996 +13488 3608 +14768 3608 +14960 3608 +15760 3608 +15840 3608 +15920 7348 +12368 572 +12368 1232 +12368 3938 +12368 5258 +11664 6996 +17776 2684 +12464 3938 +13488 4268 +13232 6666 +10192 572 +944 7370 +10848 9284 +17088 9284 +17344 9284 +4592 4840 +4592 6028 +11024 572 +11024 5038 +2384 7436 +2384 9152 +2384 11440 +2928 8712 +2928 9152 +2928 11440 +2544 7546 +2544 9152 +2544 11440 +9648 7480 +2048 7172 +2160 7172 +2224 7172 +3440 7172 +1744 9042 +1744 11440 +2096 9152 +2096 11440 +3056 11440 +10960 6996 +2992 8712 +2992 9152 +10896 6996 +4080 11440 +16144 9064 +16144 9504 +14224 6776 +14224 9504 +14224 10252 +17104 8624 +17136 7348 +15440 9064 +15440 9504 +15440 10252 +15760 7788 +15856 1452 +4208 4840 +18320 7348 +15760 4180 +9712 7480 +17072 1452 +17072 7348 +16464 9504 +7856 2068 +7856 2508 +7856 3608 +7856 4488 +16720 7348 +15504 9064 +4368 4840 +6000 11132 +6064 11132 +4688 5808 +4816 5808 +4880 5808 +9008 3608 +15760 9064 +17424 9064 +18512 8294 +4880 4664 +4880 5368 +4880 6776 +4688 4488 +4752 4488 +4816 4488 +18608 8866 +14416 9504 +14416 10252 +15760 7348 +18224 7348 +13424 6776 +18704 8866 +11088 4928 +11168 4928 +12464 5368 +15760 1452 +15760 9504 +15760 10252 +432 7480 +11168 6996 +13488 6776 +13584 9504 +13488 5368 +11184 572 +4464 4840 +4528 4840 +4816 5368 +4816 6776 +11088 572 +10672 572 +10256 572 +9840 572 +18192 10670 +18379 8624 +18416 3619 +18416 7766 +1200 3575 +1200 9658 +17904 231 +17904 1628 +17904 4796 +17904 7766 +17904 9438 +17940 9570 +18224 10670 +8272 1188 +8272 7029 +8416 7260 +8496 8866 +15888 8503 +15888 9878 +15888 10626 +15888 11429 +15984 8184 +16128 8184 +16299 8184 +16336 2222 +16336 3850 +16336 5368 +16336 6798 +16336 7887 +1040 3575 +1040 9658 +4432 220 +4496 308 +4784 308 +4848 308 +5040 308 +5296 308 +5584 308 +5648 308 +5808 220 +5808 2024 +5808 4048 +5936 8382 +5936 10802 +16848 1012 +16848 2222 +16848 3850 +16848 5368 +16848 6688 +16848 7876 +16848 10560 +16848 11528 +8240 1188 +8240 7018 +8260 7700 +8400 8756 +1520 10032 +1552 8932 +1584 3113 +1584 7018 +1584 8789 +5136 11528 +5200 11440 +5360 11440 +5552 11528 +5616 11440 +5808 11440 +5968 11528 +2672 3113 +2736 6556 +2880 6556 +3024 6556 +3200 6556 +3312 6556 +3408 6556 +3808 6556 +3888 6556 +3952 6556 +4096 6556 +4176 6556 +4256 6556 +4432 6556 +4496 6556 +4640 6556 +4720 7590 +4720 8866 +4720 11495 +17008 1012 +17008 2222 +17008 4356 +17008 6688 +17008 7843 +17028 8096 +17104 8096 +17168 8096 +17408 8096 +17499 8096 +17520 9603 +17520 10670 +880 3575 +880 9922 +4144 2365 +4144 5434 +4144 6908 +4272 8360 +4336 8360 +4512 8360 +4624 8360 +4688 8360 +4784 8360 +4944 8360 +5136 8360 +5488 7304 +5456 8481 +5456 10692 +5520 2178 +5520 4048 +5520 6402 +16560 10890 +16576 8184 +16592 1012 +16592 2222 +16592 3850 +16592 5478 +16592 6798 +16592 7887 +7728 8756 +7748 7040 +7824 7040 +7888 7040 +8016 1188 +8016 4818 +8016 6919 +16272 10461 +16272 11429 +16432 8844 +16592 8844 +16688 8844 +16763 8844 +16784 1012 +16784 2222 +16784 3850 +16784 5478 +16784 6688 +16784 7876 +464 9691 +484 8184 +560 8184 +747 8184 +784 3575 +7664 6908 +7664 8756 +7728 1188 +7728 4818 +5232 2178 +5232 4048 +5232 6402 +5232 7315 +5499 7612 +5520 8382 +5520 10692 +3856 2959 +3856 6908 +3876 7920 +3952 7920 +4096 7920 +4784 748 +4848 748 +5040 748 +5296 748 +5584 748 +5648 748 +5872 748 +6096 264 +6096 2024 +6096 4048 +6096 5225 +6116 5368 +6192 5368 +6256 5368 +6416 5368 +6571 5368 +6096 594 +6608 8646 +6608 9438 +6608 11495 +17200 5335 +17200 6688 +17200 7722 +17200 10560 +17200 11528 +17392 5192 +17504 5192 +17616 231 +17616 1782 +17616 4213 +7248 10802 +7376 638 +7376 1518 +7376 4048 +7376 4928 +7376 8756 +1808 3113 +1824 6864 +1840 8052 +1840 10032 +12272 11165 +12384 9064 +12528 9064 +12656 9064 +12827 9064 +12848 1606 +12848 2310 +12848 4708 +12848 6072 +12848 7392 +12848 8536 +1648 8778 +1648 10032 +1664 8184 +1680 3113 +1680 7018 +1680 8063 +4784 528 +4848 528 +5040 528 +5296 528 +5584 528 +5648 528 +5872 528 +5936 330 +5936 2024 +5936 4048 +5936 5324 +6096 6556 +6192 6556 +6256 8382 +6256 11495 +16976 6688 +16976 7876 +16976 10560 +16976 11528 +17040 5720 +17104 5720 +17168 5720 +17392 5720 +17504 5720 +17680 231 +17680 1782 +17680 4246 +11600 231 +11600 902 +11600 4488 +11600 6072 +11600 7392 +11616 8228 +11632 11275 +17264 10549 +17264 11528 +17284 10142 +17472 10142 +17552 10142 +17920 10142 +18368 10142 +18512 10142 +18656 10142 +18784 10142 +18928 10142 +19024 10142 +6224 429 +6224 2024 +6224 4048 +6224 8382 +6224 10813 +6352 10912 +6464 10912 +6672 10912 +6843 10912 +1936 3113 +1936 6754 +1936 8063 +1952 8184 +1968 8778 +1968 10032 +816 3575 +816 9922 +3984 2959 +3984 6908 +4128 8932 +4272 8932 +4336 8932 +4496 9031 +4496 11495 +15440 583 +15440 2530 +15440 5489 +15460 5808 +15600 5808 +15712 5808 +15792 5808 +15888 5808 +15984 5808 +16128 5808 +16288 5808 +16400 6798 +16400 7876 +16400 10461 +16400 11429 +5360 2178 +5360 4048 +5360 7194 +5552 10252 +5632 10252 +5808 10252 +5968 10252 +6032 10252 +6112 10252 +6192 10252 +6304 8536 +6288 11495 +6320 429 +6320 2024 +6320 4048 +1168 9658 +1232 3575 +1232 7843 +6352 429 +6352 2024 +6352 4048 +6352 8657 +6368 8844 +6384 11495 +16688 11407 +16784 11198 +16912 11198 +17040 11198 +17136 11198 +17296 11198 +17472 11198 +17552 11198 +17920 11198 +18368 11198 +18512 11198 +18656 11198 +18768 11198 +18928 11198 +15280 2530 +15280 5478 +15280 6798 +15280 7788 +15280 8646 +15280 9878 +15280 10626 +15280 11429 +3472 10032 +3488 7480 +3504 3113 +3504 7139 +208 9581 +308 7964 +480 7964 +560 7964 +736 7964 +848 7964 +912 7964 +976 7964 +1083 7964 +1104 3575 +1104 7843 +1392 2904 +1392 5852 +1408 6028 +1424 8778 +1424 10032 +10224 3608 +10288 3608 +10384 3608 +10512 3608 +10576 3608 +10640 3608 +10704 3608 +10800 3608 +10928 3608 +11056 3608 +11120 3608 +11216 3608 +11344 3608 +11488 3608 +11664 902 +688 3575 +688 9922 +5872 968 +6128 968 +6192 968 +6256 968 +6416 968 +6544 968 +6672 968 +6784 968 +6896 968 +7008 968 +7184 968 +7312 968 +7504 968 +7600 759 +7600 1397 +7600 4939 +7664 5148 +7760 5148 +7824 5148 +7888 5148 +7952 5148 +8048 5148 +8176 5148 +8336 5148 +8432 5148 +8496 5148 +8752 5148 +8848 5148 +8992 5148 +9440 5148 +9552 5148 +9680 5148 +9824 5148 +10011 5148 +10032 231 +10032 1012 +10032 1760 +5488 2178 +5488 4048 +5488 6402 +5648 7084 +5936 7084 +6096 7084 +6192 7084 +6416 7084 +6544 7084 +6672 7084 +6768 7161 +6768 8646 +6768 9438 +9936 231 +9936 1012 +9936 1760 +5200 2178 +5200 4048 +5200 6402 +5200 7458 +5200 10593 +7408 638 +7408 1518 +7408 4048 +7408 4928 +7408 8756 +7536 10692 +7600 10692 +7696 10692 +7824 10692 +7888 10692 +7984 10692 +8096 10692 +8176 10692 +8272 10692 +8368 10692 +8432 10692 +8720 10692 +8848 10692 +9104 10692 +9728 10692 +10032 10692 +10256 10692 +10320 10692 +10480 10692 +10656 10692 +10768 10692 +10928 10692 +11024 10692 +11216 10692 +11328 10692 +11440 10692 +11520 10692 +11600 10692 +11707 10692 +11728 11330 +11728 10868 +4880 11495 +4944 2178 +4944 4048 +4944 6402 +6896 220 +7008 308 +7184 308 +7312 308 +7504 308 +7664 308 +7760 308 +7824 308 +7888 308 +7952 308 +8048 308 +8208 308 +8336 308 +8432 308 +8496 308 +8560 308 +8624 308 +8752 308 +8848 308 +8976 308 +9040 308 +9168 308 +9232 220 +9232 759 +9232 1760 +9232 2948 +9232 7029 +3440 10032 +3504 7920 +3632 7920 +3696 7920 +3760 3113 +3760 6908 +8240 8899 +8272 8756 +8304 1188 +8304 6908 +8304 8613 +9296 6897 +9296 9878 +9456 6776 +9552 6776 +9680 6776 +9776 231 +9776 1012 +9776 1760 +6992 8646 +6992 10802 +7024 7260 +7056 638 +7056 1518 +7056 2574 +7056 4048 +7056 7139 +14640 2530 +14640 5368 +14640 6798 +14640 8646 +14640 9878 +14640 11539 +14736 1012 +14800 1012 +14912 1012 +15120 1012 +15328 1012 +15408 1012 +15472 1012 +15600 1012 +15728 1012 +15792 1012 +15888 1012 +15984 1012 +16128 1012 +16272 1012 +16400 1012 +16528 913 +14704 2530 +14720 4928 +14736 5357 +14736 6798 +14736 8646 +14736 9878 +14736 11429 +14816 4928 +14928 4928 +15136 4928 +15328 4928 +15408 4928 +15472 4928 +15600 4928 +15712 4928 +15792 4928 +15888 4928 +15984 4928 +16128 4928 +16288 4928 +16400 4928 +16544 4928 +16656 4928 +16752 4928 +16816 1012 +16816 2222 +16816 3850 +13808 5137 +13808 7282 +13808 8866 +13808 9878 +13808 11539 +13908 4708 +14080 4708 +14224 4708 +14400 4708 +14512 4708 +14736 4708 +14816 4708 +14928 4708 +15136 4708 +15328 4708 +15408 4708 +15472 4708 +15600 4708 +15712 4708 +15792 4708 +15888 4708 +15984 4708 +16128 4708 +16288 4708 +16400 4708 +16544 4708 +16656 4708 +16752 4708 +16912 4708 +16976 1012 +16976 2222 +16976 3971 +3664 3113 +3664 7018 +3664 9119 +3684 9284 +3760 10142 +3600 3113 +3600 7128 +3600 9042 +3712 9812 +3888 9812 +4128 9812 +4272 9812 +4400 9812 +4528 9812 +4624 9812 +4688 9812 +4795 9812 +4955 9152 +4816 11495 +4976 2178 +4976 4048 +4976 6402 +8976 6897 +8976 9878 +8996 6556 +9296 6556 +9456 6556 +9552 6556 +9680 6556 +9808 6556 +10016 6556 +10128 6556 +10224 6556 +10384 6556 +10512 6556 +10656 6556 +10800 6556 +10864 6556 +10928 6556 +11040 6556 +11120 6556 +11216 6556 +11328 6556 +11504 6556 +11568 6556 +11632 6556 +11696 6556 +11760 6556 +11824 6556 +11920 6556 +12032 6556 +12176 6556 +12384 6556 +12512 6556 +12688 6556 +12800 6556 +12912 6556 +13072 484 +13072 1606 +13072 2310 +13072 3124 +13072 3938 +13072 4708 +13072 6193 +13108 572 +13200 572 +13344 572 +13488 572 +13632 572 +13856 572 +14096 572 +14224 572 +14400 572 +14640 572 +14736 572 +14800 572 +14912 572 +15040 572 +15200 572 +15328 572 +15408 484 +10016 6776 +10128 6776 +10224 6776 +10384 6776 +10480 231 +10480 1012 +10480 1760 +7120 638 +7120 1518 +7120 4048 +7120 8536 +7120 10802 +3728 3113 +3728 6908 +3899 9592 +4016 10142 +5776 10802 +5796 9064 +5968 9064 +6032 9064 +6112 9064 +6192 9064 +6352 9064 +6432 9064 +6512 9064 +6672 9064 +6864 9064 +6928 9064 +7024 9064 +7211 9064 +7248 638 +7248 1518 +7248 4048 +7248 7128 +7248 8767 +3920 2959 +3920 6908 +3920 9163 +3972 9372 +4128 9372 +4272 9372 +4528 9372 +4624 9372 +4688 9372 +4784 9372 +4960 9372 +5136 9372 +5552 9372 +5632 9372 +5808 9372 +5968 9372 +6032 9372 +6112 9372 +6192 9372 +6352 9372 +6432 9372 +6512 9471 +6512 11495 +16368 2222 +16368 3850 +16368 5368 +16368 6798 +16368 7876 +16368 10461 +16368 11429 +3536 3113 +3536 7128 +3536 10032 +8464 8745 +8720 8448 +8848 8448 +9104 8448 +9728 8448 +10000 8448 +10256 8448 +10352 8448 +10464 8448 +10656 8448 +10736 8448 +10800 8448 +10912 8448 +11040 8448 +11200 8448 +11344 8448 +11504 8448 +11600 8448 +11712 8448 +11792 8448 +11984 8448 +12192 8448 +12272 8448 +12384 8448 +12528 8448 +12656 8448 +12720 1606 +12720 2574 +12720 4708 +12720 6072 +12720 7392 +12816 792 +12944 792 +13120 792 +13200 792 +13344 792 +13488 792 +13632 792 +13856 792 +14096 792 +14224 792 +14400 792 +14640 792 +14736 792 +14800 792 +14912 792 +15051 792 +2800 3113 +2800 6864 +2852 7700 +2960 7700 +3024 7700 +3200 7700 +3312 7700 +3424 7700 +3504 7700 +3632 7700 +3696 7700 +3808 7700 +3888 7700 +3952 7700 +4096 7700 +4176 7700 +4240 7799 +8048 8756 +8080 7700 +8112 1188 +8112 4818 +8112 7018 +1328 3223 +1328 6919 +1456 8778 +1456 10032 +9680 2288 +9808 2288 +9872 2288 +10000 2288 +10096 2288 +10224 2288 +10288 2288 +10384 2288 +10512 2288 +10576 2288 +10640 2288 +10704 2288 +10800 2288 +10928 2288 +11056 2288 +11120 2288 +11216 2288 +11344 2288 +11408 2288 +11488 2288 +11696 2288 +11760 2288 +11904 2288 +12048 2288 +12176 2288 +12336 2288 +12432 2288 +12496 913 +12496 1606 +12516 1012 +12688 1012 +12816 1012 +12944 1012 +13120 1012 +13200 1012 +13344 1012 +13488 1012 +13632 1012 +13867 1012 +5232 10472 +5488 7920 +5552 7920 +5632 7920 +5712 7920 +5808 7920 +5968 7920 +6096 7920 +6192 7920 +6416 7920 +6544 7920 +6672 7920 +6864 7920 +6928 7920 +7040 7920 +7184 7920 +7536 7920 +7600 7920 +7696 7920 +7760 7920 +7824 7920 +7888 7920 +8096 7920 +8176 7920 +8256 7920 +8448 7920 +8720 7920 +8848 7920 +9115 7920 +9136 1188 +9136 2948 +9136 5962 +9136 7018 +9444 6116 +9552 6116 +9680 6116 +9808 6116 +10016 6116 +10144 6116 +10224 6116 +10384 6116 +10512 6116 +10576 6116 +10656 6116 +10800 6116 +10864 6116 +10928 6116 +11056 6116 +11120 6116 +11216 6116 +11312 231 +11312 902 +11312 4488 +11312 5973 +9008 9878 +9104 1188 +9104 2948 +9104 5962 +9104 7029 +5648 10681 +5808 10472 +5968 10472 +6032 10472 +6112 10472 +6192 10472 +6352 10472 +6464 10472 +6672 10472 +6848 10472 +7024 10472 +7200 10472 +7376 10472 +7536 10472 +7600 10472 +7696 10472 +7824 10472 +7888 10472 +7984 10472 +8096 10472 +8176 10472 +8272 10472 +8368 10472 +8432 10472 +8720 10472 +8848 10472 +9104 10472 +9728 10472 +10032 10472 +10256 10472 +10320 10472 +10480 10472 +10656 10472 +10747 10472 +10768 231 +10768 902 +10768 1760 +10768 7392 +10768 10373 +10016 9064 +10064 231 +10064 1012 +10064 1760 +5584 3223 +5584 4048 +5584 6402 +5584 8382 +5584 10692 +5664 3080 +5872 3080 +6128 3080 +6192 3080 +6256 3080 +6416 3080 +6560 3080 +6672 3080 +6784 3080 +6896 3080 +7008 3080 +7088 3080 +7184 3080 +7312 3080 +7504 3080 +7664 3080 +7760 3080 +7824 3080 +7888 3080 +7952 3080 +8048 3080 +8208 3080 +8336 3080 +8432 3080 +8496 3080 +8624 3080 +8752 3080 +8848 3080 +8976 3080 +9051 3080 +9072 1188 +9072 2915 +8624 5962 +8624 8866 +8688 1188 +8592 8866 +8656 1188 +8656 5962 +7952 8756 +8048 6116 +8176 6116 +8432 6116 +8507 6116 +8528 1188 +8528 5973 +8464 1188 +8656 8866 +7056 10802 +7195 8844 +7216 638 +7216 1518 +7216 4048 +7216 7128 +7216 8657 +17456 1782 +17456 4092 +17456 6578 +17456 7722 +17456 8745 +17476 8844 +17552 8844 +17712 9603 +17712 10670 +9428 2948 +9680 2948 +9808 2948 +9872 2948 +10000 2948 +10096 2948 +10224 2948 +10288 2948 +10384 2948 +10512 2948 +10576 2948 +10640 2948 +10704 2948 +10800 2948 +10928 2948 +11056 2948 +11120 2948 +11216 2948 +11344 2948 +11488 2948 +11696 2948 +11760 2948 +11904 2948 +12048 2948 +12176 2948 +12336 2948 +12432 2948 +12523 2948 +12560 1606 +12560 2354 +17552 1782 +17552 4092 +17552 6578 +17552 7887 +17712 8184 +17856 8184 +17968 8184 +18192 8184 +18256 9427 +18256 10670 +9728 10032 +10032 10032 +10256 10032 +10320 10032 +10416 10032 +10480 10032 +10656 10032 +10736 10032 +10800 10032 +10928 10032 +11040 10032 +11216 10032 +11312 10032 +11440 10032 +11520 10032 +11600 10032 +11712 10032 +11792 10032 +11984 10032 +12080 10032 +12208 10032 +12384 10032 +12528 10032 +12656 10032 +12816 10032 +12944 10032 +13088 10032 +13232 10032 +13408 10032 +13536 10032 +13643 10032 +13680 2530 +13680 5148 +13680 7282 +13680 8866 +13680 9889 +17712 231 +17712 1782 +17712 4246 +17712 6325 +17840 6908 +17968 6908 +18128 7007 +18128 7766 +18128 10670 +9072 3487 +9072 5962 +9072 6908 +9072 9878 +9440 3388 +9520 3388 +9680 3388 +9840 3388 +10000 3388 +10096 3388 +10224 3388 +10288 3388 +10384 3388 +10512 3388 +10576 3388 +10640 3388 +10704 3388 +10800 3388 +10928 3388 +11056 3388 +11120 3388 +11216 3388 +11344 3388 +11488 3388 +11696 3388 +11760 3388 +11904 3388 +12048 3388 +12176 3388 +12336 3388 +12432 3388 +12544 3388 +12688 3388 +12763 3388 +12784 1606 +12784 2310 +9232 8107 +9232 9878 +9648 8008 +9744 8008 +9904 8008 +10016 8008 +10192 8008 +10256 8008 +10384 8008 +10496 8008 +10656 8008 +10816 8008 +10928 8008 +11040 8008 +11120 8008 +11216 8008 +11328 8008 +11504 8008 +11568 8008 +11632 8008 +11696 8008 +11760 8008 +11824 8008 +11968 8008 +12192 8008 +12272 8008 +12384 8008 +12528 8008 +12656 8008 +12800 8008 +12880 8008 +12944 8008 +13088 8008 +13264 8008 +13392 8008 +13520 8008 +13632 8008 +13712 2530 +13712 5148 +13712 7282 +8400 1188 +8400 6919 +8420 7040 +8507 7040 +8528 7139 +8528 8866 +9168 1639 +9168 2948 +9168 5962 +9168 7018 +9168 8074 +9168 9878 +9264 1452 +9424 1452 +9584 1452 +9680 1452 +9808 1452 +9872 1452 +10000 1452 +10096 1452 +10224 1452 +10288 1452 +10384 1452 +10512 1452 +10576 1452 +10640 1452 +10704 1452 +10800 1452 +10928 1452 +11056 1452 +11120 1452 +11216 1452 +11344 1452 +11488 1452 +11696 1452 +11760 1452 +11904 1452 +12048 1452 +12176 1452 +12304 902 +9360 2827 +9412 2728 +9680 2728 +9808 2728 +9872 2728 +10000 2728 +10096 2728 +10224 2728 +10288 2728 +10384 2728 +10512 2728 +10576 2728 +10640 2728 +10704 2728 +10800 2728 +10928 2728 +11056 2728 +11120 2728 +11216 2728 +11344 2728 +11488 2728 +11696 2728 +11760 2728 +11904 2728 +12048 2728 +12176 2728 +12336 2728 +12432 2728 +12512 2728 +12592 1606 +12592 2475 +14864 2530 +14864 4378 +14864 5478 +14864 6798 +14864 8646 +14864 9878 +14864 11429 +7760 8745 +7776 8448 +7792 1188 +7792 4818 +15312 7887 +15312 8646 +15312 9878 +15312 10626 +15312 11429 +15344 7788 +15376 2530 +15376 5478 +15376 6798 +15376 7689 +6864 429 +6864 1518 +6864 2574 +6864 4048 +7008 5368 +7088 5368 +7184 5368 +7328 5368 +7584 5368 +7664 5368 +7760 5368 +7824 5368 +7888 5368 +7952 5368 +8048 5368 +8176 5368 +8336 5368 +8432 5368 +8496 5368 +8752 5368 +8848 5368 +8992 5368 +9440 5368 +9552 5368 +9680 5368 +9824 5368 +10016 5368 +10160 5368 +10224 5368 +10288 5368 +10384 5368 +10512 5368 +10608 5368 +10704 7392 +10704 11495 +12400 11484 +12528 11000 +12656 11000 +12816 11000 +12944 11000 +13088 11000 +13232 11000 +13392 11000 +13536 11000 +13696 11000 +13968 11000 +14192 11000 +14272 11000 +14384 11000 +14448 11000 +12400 11176 +14576 2530 +14576 5368 +14576 6798 +14576 8646 +14576 9878 +14704 11000 +14784 11000 +14960 11000 +15120 11000 +15392 11000 +15520 11000 +15712 11000 +15792 11000 +15856 11000 +16048 11000 +16224 11000 +16432 11000 +16496 11484 +16496 11176 +7088 8536 +7088 10802 +7152 638 +7152 1518 +7152 4048 +7152 7139 +15952 2343 +15972 2992 +16128 2992 +16272 2992 +16400 2992 +16544 2992 +16656 2992 +16752 2992 +16912 2992 +17040 2992 +17104 2992 +17184 2992 +17392 2992 +17504 2992 +17744 4125 +17744 6204 +17744 7766 +17744 8734 +17744 9603 +17744 10670 +15664 2530 +15664 5368 +15664 6798 +15664 8426 +15664 9878 +15664 10626 +15664 11429 +17584 231 +17584 1782 +17584 4092 +17584 6578 +17584 7766 +17584 9603 +17584 10670 +16432 2222 +16432 3850 +16432 5478 +16432 6798 +16432 7887 +16528 10890 +8144 1188 +8144 4818 +8144 7018 +8144 8756 +9616 231 +9616 1012 +9616 1760 +9616 7139 +12112 902 +12112 4488 +12112 5962 +12112 7392 +8368 1188 +8368 6908 +8368 8767 +12784 11429 +12804 8844 +12880 8844 +12944 8844 +13088 8844 +13264 8844 +13392 8844 +13531 8844 +13552 2530 +13552 3938 +13552 4928 +13552 7282 +13552 8657 +18864 10846 +18864 11528 +18916 9086 +19024 9086 +11920 7392 +11920 11165 +11936 6776 +11952 902 +11952 4488 +11952 6072 +10320 231 +10320 1012 +10320 1760 +10320 7392 +10427 9504 +11824 902 +11824 4488 +11824 6083 +11840 6336 +11856 7392 +11856 11165 +12656 1606 +12656 2574 +12656 4708 +12656 6072 +12672 6776 +12688 7392 +12688 11429 +5008 11495 +5072 2178 +5072 4048 +5072 6402 +5072 7194 +13168 1606 +13168 2310 +13168 3124 +13168 3938 +13168 4928 +13168 5929 +13296 6028 +13456 6028 +13520 6028 +13632 6028 +13760 6028 +13920 6028 +14080 6028 +14192 6028 +14256 6028 +14400 6028 +14512 6028 +14704 6028 +14816 6028 +14928 6028 +15136 6028 +15328 6028 +15440 6028 +15600 6028 +15712 6028 +15792 6028 +15888 6028 +15984 6028 +16128 6028 +16288 6028 +16544 6028 +16656 6028 +16752 6028 +16816 6028 +16912 6028 +17040 6028 +17104 6028 +17168 6028 +17392 6028 +17504 6028 +17680 6457 +17680 7766 +17680 9603 +17680 10670 +3312 10692 +3344 3113 +3344 6864 +3344 10153 +14544 2530 +14544 5368 +14544 6798 +14544 8646 +14544 9878 +14544 11539 +6736 638 +6736 1518 +6736 2574 +6736 4048 +6736 8646 +6736 9438 +6832 11440 +7024 11440 +7200 11440 +7440 11440 +7536 11440 +7600 11440 +7696 11440 +7824 11440 +7888 11440 +8096 11440 +8176 11440 +8272 11440 +8368 11440 +8432 11440 +8720 11440 +8848 11440 +9104 11440 +9728 11440 +10032 11440 +10256 11440 +10320 11440 +10480 11440 +10544 11528 +11792 902 +11792 4488 +11792 6072 +11792 7392 +11808 8228 +11824 11165 +8720 1188 +8720 5962 +8848 7700 +9104 7700 +9232 7700 +6064 319 +6064 2024 +6064 4048 +6064 5335 +6100 5588 +6192 5588 +6256 5588 +6416 5588 +6560 5588 +6672 5588 +6779 5588 +6800 7128 +6800 8646 +6800 9438 +6864 6556 +6992 6556 +7088 6556 +7184 6556 +7328 6556 +7616 6556 +7744 6556 +7824 6556 +7888 6556 +8048 6556 +8176 6556 +8432 6556 +8512 6556 +8832 6556 +8944 1188 +8944 5962 +8944 6897 +8944 9878 +5968 319 +5968 2024 +5968 4048 +5968 5324 +6096 7700 +6192 7700 +6416 7700 +6544 7700 +6672 7700 +6864 7700 +6928 7700 +7040 7700 +7152 8536 +7152 10802 +7204 9504 +7536 9504 +7600 9504 +7696 9504 +7824 9504 +7904 9504 +8096 9504 +8176 9504 +8272 9504 +8368 9504 +8432 9504 +8720 9504 +8864 9504 +9104 9504 +9728 9504 +9968 231 +9968 1012 +9968 1760 +11952 11165 +11972 8228 +12192 8228 +12272 8228 +12384 8228 +12528 8228 +12656 8228 +12800 8228 +12880 8228 +12944 8228 +13088 8228 +13264 8228 +13392 8228 +13520 8228 +13632 8228 +13744 8228 +13968 8228 +14192 8228 +14272 8228 +14384 8228 +14448 8228 +14512 8228 +14704 8228 +14784 8228 +15120 8228 +15392 8228 +15472 8228 +15536 484 +15536 671 +15536 2530 +15536 5368 +15536 6798 +15600 572 +15728 572 +15792 572 +15888 572 +15984 572 +16128 572 +16272 572 +16400 572 +16560 572 +16656 572 +16752 572 +16912 572 +17040 572 +17184 572 +17392 572 +17504 572 +17824 572 +17968 572 +18032 572 +18128 352 +7568 8756 +7600 6116 +7632 1188 +7632 4818 +11728 902 +11728 4488 +11728 6072 +11728 7392 +11744 8228 +11760 11165 +19024 11528 +12272 902 +12272 4488 +12272 5962 +12384 6776 +12496 7392 +12496 11429 +10656 8228 +10736 231 +10736 902 +10736 1760 +10736 7392 +7504 8756 +7568 638 +7568 1518 +7568 3949 +7568 4147 +7568 4939 +7664 4048 +7760 4048 +7824 4048 +7888 4048 +7952 4048 +8048 4048 +8208 4048 +8336 4048 +8432 4048 +8496 4048 +8688 4048 +8763 4048 +8784 1188 +8784 3949 +8784 8866 +7888 9064 +7920 1188 +7920 4818 +7920 8767 +7940 4268 +8048 4268 +8208 4268 +8336 4268 +8432 4268 +8496 4268 +8688 4268 +8752 4268 +8848 4268 +8912 4268 +8992 4268 +9440 4268 +9552 4268 +9680 4268 +9824 4268 +9936 4268 +10000 4268 +10224 4268 +10288 4268 +10384 4268 +10523 4268 +10544 231 +10544 1012 +10544 1760 +10544 7392 +10656 11132 +10768 11132 +10928 11132 +10992 11550 +10992 11308 +8208 7018 +8208 8756 +8336 4708 +8432 4708 +8496 4708 +8752 4708 +8848 4708 +8992 4708 +9440 4708 +9552 4708 +9680 4708 +9824 4708 +9936 4708 +10000 4708 +10224 4708 +10288 4708 +10384 4708 +10512 4708 +10587 4708 +10608 231 +10608 902 +10608 1760 +11984 902 +11984 4488 +11984 6072 +12000 6776 +12016 7392 +12016 11165 +8560 5962 +8560 7018 +8560 8866 +8624 2288 +8752 2288 +8848 2288 +8976 2288 +9040 2288 +9264 2288 +9360 671 +9360 1760 +11376 11385 +11440 231 +11440 902 +11440 4488 +11440 6072 +11440 7392 +10256 8228 +10352 231 +10352 1012 +10352 1760 +10352 7392 +11472 7392 +11472 11275 +11492 6336 +11568 231 +11568 902 +11568 4488 +11568 6083 +11184 11385 +11204 9064 +11344 9064 +11515 9064 +11536 231 +11536 902 +11536 4488 +11536 5962 +11536 7392 +656 3575 +656 9922 +15824 5368 +15824 6798 +15824 8426 +15824 9878 +15824 10626 +15824 11429 +15888 4488 +15984 4488 +16128 4488 +16283 4488 +16304 2222 +16304 3861 +6608 429 +6608 1518 +6608 2574 +6608 4048 +6660 5060 +6784 5060 +6896 7128 +6896 8646 +6896 10802 +12048 7392 +12048 11165 +12187 6776 +12208 902 +12208 4488 +12208 5962 +155 11198 +8912 5962 +8912 7018 +8912 9878 +8992 4488 +9440 4488 +9552 4488 +9680 4488 +9824 4488 +9936 4488 +10000 4488 +10224 4488 +10288 4488 +10384 4488 +10512 4488 +10576 4488 +10640 4488 +10704 4488 +10800 4488 +10864 231 +10864 902 +10864 1760 +10864 4389 +10864 4587 +10928 5896 +11067 5896 +11088 7392 +11088 11385 +9264 6908 +9264 9878 +9440 3168 +9520 231 +9520 1012 +9520 1760 +12240 902 +12240 4488 +12240 5962 +12240 7392 +12240 11165 +7312 8756 +7312 10802 +7536 638 +7536 1518 +7536 4048 +7536 4818 +3280 3113 +3280 6864 +3300 9372 +3504 9372 +3568 9372 +3632 10142 +11376 231 +11376 902 +11376 4488 +11376 6072 +11376 7392 +11504 8228 +11568 11275 +11280 11385 +11316 10472 +11440 10472 +11520 10472 +11600 10472 +11712 10472 +11792 10472 +11984 10472 +12080 10472 +12208 10472 +12384 10472 +12528 10472 +12656 10472 +12816 10472 +12944 10472 +13088 10472 +13232 10472 +13392 10472 +13536 10472 +13696 10472 +13968 10472 +14160 2530 +14160 5258 +14160 7172 +14160 8866 +14160 9878 +3152 3113 +3152 6864 +3188 7920 +3312 7920 +3408 10153 +3408 10571 +3504 10472 +3584 10472 +3712 10472 +3888 10472 +4048 10472 +4128 10472 +4272 10472 +4400 10472 +4528 10472 +4624 10472 +4688 10472 +4784 10472 +4955 10472 +4976 10373 +4992 9812 +4976 11495 +5008 2178 +5008 4048 +5008 6402 +528 3575 +528 9812 +16016 2222 +16016 3740 +16016 5368 +16016 6798 +16016 7766 +16016 8624 +16016 9834 +16068 9922 +16208 9922 +16432 9922 +16496 9922 +16592 9922 +16688 9922 +16784 9922 +16912 9922 +17040 9922 +17136 9922 +17280 9922 +17360 10670 +17360 11528 +5872 8382 +5872 10802 +5888 5060 +5904 209 +5904 2024 +5904 4048 +976 11055 +1104 10912 +1232 10912 +1584 10912 +1712 10912 +1776 10912 +1904 10912 +2064 10912 +2240 10912 +2464 10912 +2736 10912 +3019 10912 +3056 3113 +3056 6864 +3056 10153 +3168 10912 +3344 10912 +3504 10912 +3584 10912 +3712 10912 +3888 10912 +4048 10912 +4128 10912 +4272 10912 +4400 10912 +4464 10912 +4528 10912 +4624 10912 +4688 11495 +13456 8536 +13456 9174 +13456 11429 +13520 7788 +13632 7788 +13760 7788 +13968 7788 +14192 7788 +14272 7788 +14384 7788 +14448 2530 +14448 5368 +14448 6798 +14512 7788 +14704 7788 +14816 7788 +14928 7887 +14928 8646 +14928 9878 +14928 11429 +16048 2222 +16048 3740 +16048 5368 +16048 6798 +16048 7766 +16128 8404 +16304 8404 +16432 8404 +16592 8404 +16688 8404 +16752 8404 +16816 8404 +16912 8404 +17008 10560 +17008 11528 +560 9801 +752 8404 +912 8404 +976 8404 +1104 8404 +1232 8404 +1328 8404 +1536 8404 +1616 8404 +1696 8404 +1776 8404 +1872 8404 +1936 8404 +2112 8404 +2192 8404 +2288 8404 +2464 8404 +2635 8404 +2704 3113 +2704 6864 +2804 8140 +2960 8140 +3024 8140 +3168 8140 +3312 8140 +3504 8140 +3632 8140 +3696 8140 +3824 8140 +3952 8140 +4096 8140 +4272 8140 +4336 8140 +2704 8250 +4432 11495 +14032 2530 +14032 5258 +14032 7293 +14068 7568 +14192 7568 +14272 7568 +14384 7568 +14512 7568 +14704 7568 +14816 7568 +14928 7568 +15131 7568 +15248 7777 +15248 8646 +15248 9878 +15248 10626 +15248 11429 +13584 2530 +13584 3949 +13620 4048 +13872 4048 +14096 4048 +14224 4048 +14400 4048 +14512 4048 +14736 4048 +14800 4048 +14896 4257 +14896 5478 +14896 6798 +14896 8646 +14896 9878 +14896 11429 +14608 2530 +14608 5368 +14608 6798 +14608 8646 +14608 9878 +14608 11539 +13392 1606 +13392 2794 +13392 3938 +13392 4928 +13456 6248 +13520 6248 +13632 6248 +13760 6248 +13920 6248 +14080 6248 +14192 6248 +14256 6248 +14400 6248 +14512 6248 +14704 6248 +14816 6248 +14928 6248 +15136 6248 +15328 6248 +15440 6248 +15600 6248 +15712 6248 +15792 6248 +15888 6248 +15984 6248 +16128 6248 +16288 6248 +16544 6248 +16656 6677 +16656 7876 +16656 10890 +16672 6248 +16688 1012 +16688 2222 +16688 3850 +16688 5478 +12752 1606 +12752 2431 +12816 2640 +12944 2640 +13120 2640 +13339 2640 +13360 3003 +13360 3938 +13360 4928 +13360 6402 +13360 7392 +13360 8536 +13360 9174 +13360 11429 +16208 2222 +16208 3740 +16208 5368 +16208 6798 +16208 7766 +16283 8624 +16304 10461 +16304 11429 +1392 8778 +1392 10032 +1456 6336 +1552 6336 +1648 6336 +1760 6336 +1872 6336 +2000 6336 +2112 6336 +2192 6336 +2288 6336 +2480 6336 +2608 6336 +2736 6336 +2880 6336 +3024 6336 +3200 6336 +3312 6336 +3408 3058 +3408 6160 +3808 6336 +3888 6336 +3952 6336 +4096 6336 +4176 6336 +4256 6336 +4432 6336 +4496 6336 +4560 7810 +4560 8866 +4560 11495 +3696 3113 +3696 7029 +3808 7260 +3888 7260 +3952 7260 +4096 7260 +4176 7260 +4256 7260 +4336 7260 +4432 7260 +4496 7260 +4640 7260 +4768 7260 +4848 7260 +4912 7260 +5040 11495 +4912 11495 +5104 2178 +5104 4048 +5104 6402 +5104 7315 +14352 2530 +14352 5368 +14352 6908 +14352 8866 +14352 9878 +14352 11539 +5328 6391 +5328 7194 +5328 10582 +5392 2178 +5392 4048 +5744 10802 +5760 8624 +5776 2024 +5776 4048 +5776 8393 +1488 3113 +1488 6908 +1488 8778 +1488 10032 +4016 2959 +4016 6908 +4128 9152 +4272 9152 +7984 1188 +7984 4818 +7984 8756 +6160 429 +6160 2024 +6160 4048 +6160 8382 +6160 10802 +6160 11495 +5264 2178 +5264 4048 +5264 6402 +5264 7194 +5552 9812 +5632 9812 +5808 9812 +5968 9812 +6032 9812 +6112 9812 +6192 9812 +6352 9812 +6448 9812 +6672 9812 +6848 9812 +6928 9812 +7024 9812 +7216 9812 +7536 9812 +7600 9812 +7696 9812 +7824 9812 +7904 9812 +8096 9812 +8176 9812 +8272 9812 +8368 9812 +8432 9812 +8720 9812 +8859 9812 +8880 9911 +9200 7018 +9200 8074 +9200 9878 +9296 671 +9296 1760 +9296 2838 +6512 429 +6512 2024 +6512 4048 +6512 8657 +6528 8844 +6544 9438 +6544 11495 +9904 231 +9904 1012 +9904 1760 +6928 638 +6928 1518 +6928 2574 +6928 4048 +6928 7139 +6944 7260 +6960 8646 +6960 10802 +10896 10362 +10896 11495 +10916 9504 +11040 9504 +11216 9504 +11280 231 +11280 902 +11280 4488 +11280 7392 +7408 10912 +7440 638 +7440 1518 +7440 4048 +7440 4928 +7440 8756 +12592 4708 +12592 6072 +12592 7392 +12592 11429 +12608 3608 +12624 1606 +12624 2574 +12688 3608 +12784 3608 +12928 3608 +13120 3608 +13328 3608 +13456 3608 +13520 3608 +13632 3608 +13872 3608 +14096 3608 +14224 3608 +14400 3608 +14512 3608 +14736 3608 +14800 3608 +14912 3608 +15120 3608 +15328 3608 +15408 3608 +15472 3608 +15600 3608 +15712 3608 +15792 3608 +15899 3608 +15920 3927 +15920 5368 +15920 6798 +15920 7766 +15920 8624 +15920 9878 +15920 10626 +15920 11429 +12336 7392 +12336 11165 +12352 6116 +12368 902 +12368 1606 +12368 4488 +12368 5973 +17616 6578 +17616 7766 +17616 9603 +17616 10670 +17835 5500 +17872 231 +17872 1628 +17872 4213 +11632 902 +11632 4488 +11632 6083 +11648 6336 +11664 7392 +11664 11275 +14480 2530 +14480 5368 +14480 6798 +14480 8866 +14480 9878 +14480 11539 +17648 231 +17648 1782 +17648 4246 +17648 6578 +17648 7766 +17648 9603 +17648 10670 +624 3575 +624 9922 +12400 902 +12400 1606 +12400 4488 +12400 5973 +12416 6116 +12432 7392 +12432 11429 +12080 902 +12080 4488 +12080 5962 +12080 7392 +12096 9504 +12112 11165 +17776 231 +17776 1628 +17776 4092 +17776 6204 +17776 7766 +17776 8734 +17776 9603 +17776 10670 +12464 902 +12464 1606 +12516 4268 +12688 4268 +12800 4268 +12912 4268 +13120 4268 +13328 4268 +13456 4268 +13520 4268 +13616 4268 +13872 4268 +14091 4268 +14128 5258 +14128 7172 +14128 8866 +14128 9878 +14128 11539 +17744 231 +17744 1749 +17824 2684 +17979 2684 +18000 4675 +18000 7766 +18000 10670 +16624 1012 +16624 2222 +16624 3850 +16624 5478 +16624 6798 +16624 7876 +16624 10890 +13232 1606 +13232 2310 +13232 3124 +13232 3938 +13232 4928 +13232 7282 +13232 8536 +13232 9185 +13248 9284 +13264 11429 +10192 231 +10192 1012 +10192 1760 +18416 10670 +18500 9438 +18656 9438 +18784 9438 +18928 9438 +19024 9438 +912 3410 +912 6864 +928 7040 +944 9922 +14320 2530 +14320 5368 +14320 6908 +14320 8866 +14320 9878 +14320 11539 +7696 1188 +7696 4818 +7696 6908 +7760 7700 +7824 7700 +7888 7700 +8016 8756 +18832 10725 +18832 11528 +18928 10494 +19024 10494 +14768 2530 +14768 5478 +14768 6798 +14800 8008 +14832 8646 +14832 9878 +14832 11429 +6640 220 +6676 308 +6795 308 +6832 220 +6832 517 +6832 1518 +6832 2574 +6832 4048 +6832 5434 +6832 7128 +6832 8646 +6852 9284 +6928 9284 +7024 9284 +7216 9284 +7536 9284 +7600 9284 +7696 9284 +7824 9284 +7904 9284 +8096 9284 +8176 9284 +8272 9284 +8368 9284 +8432 9284 +8720 9284 +8864 9284 +9104 9284 +9728 9284 +10032 9284 +10256 9284 +10448 9284 +10656 9284 +10736 9284 +10800 9284 +10912 9284 +11040 9284 +11216 9284 +11344 9284 +11520 9284 +11600 9284 +11712 9284 +11792 9284 +11984 9284 +12128 9284 +12208 9284 +12384 9284 +12528 9284 +12656 9284 +12843 9284 +12880 11429 +7344 8756 +7344 10802 +7600 7260 +7760 7260 +7824 7260 +7888 7260 +8043 7260 +8080 1188 +8080 4818 +8080 7029 +10128 231 +10128 1012 +10128 1760 +10148 5896 +10224 5896 +10384 5896 +10512 5896 +10587 5896 +10608 7392 +10608 11495 +16496 2222 +16496 3850 +16496 5478 +16496 6798 +16496 7766 +16592 9284 +16688 9284 +16784 9284 +16912 9284 +17040 9284 +17136 9284 +17280 9284 +17392 9592 +17392 10670 +17392 11528 +4592 2684 +4592 5434 +4592 7810 +4592 8866 +4592 11495 +10576 7392 +10576 11495 +10656 6336 +10800 6336 +10864 6336 +10928 6336 +11024 231 +11024 902 +11024 1760 +11024 4488 +2384 3113 +2384 6644 +2384 10032 +2928 10032 +2944 6952 +2960 3113 +2960 6875 +5168 2178 +5168 4048 +5168 6402 +5168 7458 +5168 10582 +2544 3113 +2544 6754 +2544 10032 +9648 231 +9648 1012 +9648 1760 +9648 7128 +9664 7788 +1808 8052 +1808 10032 +1872 7172 +1984 7172 +2112 7172 +2192 7172 +2288 7172 +2464 7172 +2624 7172 +2736 7172 +2864 7172 +2960 7172 +3024 7172 +3200 7172 +3312 7172 +3408 7172 +3472 3113 +3472 6985 +9488 231 +9488 1012 +9488 1760 +9488 7128 +2000 8041 +2000 8778 +2000 10032 +2112 7920 +2192 7920 +2288 7920 +2464 7920 +2624 7920 +2816 7920 +2960 7920 +3024 7920 +3120 3113 +3120 6864 +8752 8866 +8816 1188 +8816 3938 +8816 5973 +1008 3575 +1008 9658 +1296 7821 +1296 9658 +1316 7700 +1536 7700 +1648 7700 +1760 7700 +1872 7700 +1984 7700 +2112 7700 +2192 7700 +2288 7700 +2464 7700 +2624 7700 +2747 7700 +2768 3113 +2768 6864 +1360 3223 +1360 8778 +1360 10032 +2032 8778 +2032 10032 +2112 6952 +2192 6952 +2288 6952 +2416 3113 +2416 6765 +560 3410 +560 6864 +576 7040 +592 9922 +1712 3113 +1712 7018 +1712 8063 +1728 8184 +1744 10032 +5104 10582 +5104 11495 +5120 7920 +5136 2178 +5136 4048 +5136 6402 +5136 7469 +2064 3113 +2064 6644 +2064 8789 +2080 8932 +2096 10032 +3072 11220 +3088 3113 +3088 6864 +3088 10032 +3248 3113 +3248 6864 +3248 10032 +10960 231 +10960 902 +10960 1760 +10960 4488 +10960 7392 +10960 10362 +10960 11495 +2976 10692 +2992 3113 +2992 6864 +2992 10043 +10832 10362 +10832 11495 +10896 231 +10896 902 +10896 1760 +10896 4488 +10896 7392 +10832 231 +10832 902 +10832 1760 +10848 6776 +10864 7392 +10864 10362 +10864 11495 +17968 10670 +18368 9790 +18512 9790 +18656 9790 +18784 9790 +18928 9790 +19024 9790 +3376 3113 +3376 6864 +3504 9592 +3568 9592 +3664 10142 +2224 3113 +2224 6644 +2276 8712 +2464 8712 +2736 8712 +2960 8712 +3024 8712 +3168 8712 +3312 8712 +3504 8712 +3632 8712 +3696 8712 +3824 8712 +3952 8712 +8848 9064 +8880 1188 +8880 3938 +8880 5962 +8880 7018 +16080 2222 +16080 3740 +16080 5368 +16080 6798 +16080 7766 +16080 8745 +16112 8844 +16144 10626 +16144 11429 +13296 1606 +13296 2310 +13296 3124 +13296 3938 +13296 4928 +13456 5808 +13520 5808 +13632 5808 +13760 5808 +13920 5808 +14080 5808 +14203 5808 +14224 7172 +14224 8866 +14224 9878 +14224 11539 +14160 11539 +14180 10780 +14272 10780 +14384 10780 +14448 10780 +14704 10780 +14784 10780 +14960 2530 +14960 4158 +14960 5478 +14960 6798 +14960 7898 +14960 8646 +14960 9878 +14960 10637 +17104 10560 +17104 11528 +17120 8404 +17136 1782 +17136 4356 +17136 6688 +17136 7722 +15440 8646 +15440 9878 +15440 10626 +15440 11429 +15460 7788 +15600 7788 +15712 7788 +15792 7788 +15856 2530 +15856 4048 +15856 5368 +15856 6798 +15856 7689 +15344 8646 +15344 9878 +15344 10626 +15344 11429 +15380 8008 +15472 8008 +15568 2530 +15568 5368 +15568 6798 +4208 2365 +4208 5434 +4208 6908 +18320 3619 +18320 7876 +18320 9427 +18320 10670 +12144 902 +12144 4488 +12144 5962 +12144 7392 +12160 9064 +12176 11165 +14992 4323 +14992 5478 +14992 6798 +14992 7898 +14992 8646 +14992 9878 +14992 10626 +14992 11429 +15124 4180 +15328 4180 +15408 4180 +15472 4180 +15600 4180 +15712 4180 +15803 4180 +15824 2530 +15824 4015 +16336 10461 +16336 11429 +16432 8624 +16592 8624 +16688 8624 +16752 8624 +16816 8624 +16912 8624 +17040 8624 +17136 8624 +17243 8624 +17264 1782 +17264 4092 +17264 6688 +17264 7722 +17264 8481 +9712 231 +9712 1012 +9712 1760 +9712 7128 +17072 1012 +17072 2222 +17072 4356 +17072 6688 +17072 7722 +17072 10560 +17072 11528 +13552 11418 +13696 11220 +13968 11220 +14192 11220 +14272 11220 +14384 11220 +14448 11220 +14576 11220 +14672 2530 +14672 5368 +14672 6798 +14672 8646 +14672 9878 +14688 11220 +14704 11418 +16464 2222 +16464 3850 +16464 5478 +16464 6798 +16464 7766 +16464 10461 +16464 11429 +144 11528 +320 11440 +496 11440 +752 11440 +912 11440 +1104 11440 +1232 11440 +1584 11440 +1712 11440 +1776 11440 +1904 11440 +2064 11440 +2251 11440 +2352 3113 +2352 6644 +2352 10032 +2352 11297 +2464 11440 +2736 11440 +3008 11440 +3152 11440 +3344 11440 +3504 11440 +3584 11440 +3712 11440 +3888 11440 +4048 11440 +4128 11440 +4272 11440 +4368 11528 +13168 7282 +13168 8536 +13168 9174 +13168 11429 +13264 1606 +13264 2310 +13264 3124 +13264 3938 +13264 4928 +13264 6413 +7792 8899 +7824 8756 +7856 1188 +7856 4818 +7856 8613 +16720 1012 +16720 2222 +16720 3850 +16720 5478 +16720 6688 +16720 7876 +16720 10560 +16720 11528 +19056 11528 +12976 3938 +12976 4708 +12976 6072 +12976 7282 +12976 8536 +12976 9174 +12976 11429 +13040 473 +13040 1606 +13040 2310 +15920 2497 +15936 3300 +15952 3773 +15952 5368 +15952 6798 +15952 7766 +15952 8624 +15952 9878 +15952 10626 +15952 11429 +5296 6402 +5296 7194 +5296 10582 +5312 5588 +5328 2178 +5328 4048 +11856 902 +11856 4488 +11856 5929 +11872 6028 +11888 6171 +11888 7392 +11888 11165 +15504 583 +15504 2530 +15504 5368 +15504 6798 +15504 8646 +15552 9284 +15600 9878 +15600 10626 +15600 11429 +5840 209 +5840 2024 +5840 4048 +5840 8382 +5840 10802 +4368 2365 +4368 5434 +4368 7810 +4388 11132 +4464 11132 +4528 11132 +4624 11132 +4784 11132 +4944 11132 +5136 11132 +5200 11132 +5360 11132 +5552 11132 +5616 11132 +5808 11132 +5968 11132 +6032 11132 +6112 11132 +6208 11132 +6352 11132 +6464 11132 +6672 11132 +6832 11132 +7024 11132 +7200 11132 +7440 11132 +7536 11132 +7600 11132 +7696 11132 +7824 11132 +7888 11132 +6288 429 +6288 2024 +6288 4048 +6416 8228 +6544 8228 +6672 8228 +6864 8228 +6928 8228 +7040 8228 +7184 8228 +7536 8228 +7600 8228 +7696 8228 +7760 8228 +7824 8228 +7888 8228 +8096 8228 +8176 8228 +8256 8228 +8448 8228 +8720 8228 +8848 8228 +9115 8228 +9136 9878 +4624 2684 +4624 5445 +4644 5808 +4752 5808 +4848 5808 +4912 5808 +5040 5808 +5328 5808 +5664 5808 +6096 5808 +6192 5808 +6256 5808 +6416 5808 +6560 5808 +6672 5808 +6768 5808 +6864 5808 +6992 5808 +7088 5808 +7184 5808 +7328 5808 +7584 5808 +7664 5808 +7760 5808 +7824 5808 +7888 5808 +7952 5808 +8048 5808 +8176 5808 +8336 6908 +8336 8646 +9008 1188 +9440 3828 +9552 3828 +9680 3828 +9824 3828 +9936 3828 +10000 3828 +10224 3828 +10288 3828 +10384 3828 +10512 3828 +10576 3828 +10640 3828 +10704 3828 +10800 3828 +10928 3828 +11056 3828 +11120 3828 +11216 3828 +11344 3828 +11488 3828 +11680 3828 +11760 3828 +11904 3828 +12048 3828 +12176 3828 +12336 3828 +12432 3828 +12528 3828 +12624 3828 +12688 3828 +12752 4708 +12752 6072 +12752 7392 +12752 8646 +12752 11429 +14512 9163 +14512 9878 +14512 11539 +14704 9064 +14784 9064 +15120 9064 +15392 9064 +15472 9064 +15568 9064 +15712 9064 +15792 9064 +15856 9064 +15984 9064 +16080 9064 +16208 9064 +16432 9064 +16592 9064 +16688 9064 +16784 9064 +16912 9064 +17040 9064 +17136 9064 +17280 9064 +17392 9064 +17472 9064 +17552 9064 +17952 9064 +18224 9064 +18427 9064 +18512 4037 +18512 8855 +6480 429 +6480 2024 +6480 4048 +6480 8646 +6672 10252 +6848 10252 +7024 10252 +7200 10252 +7376 10252 +7536 10252 +7600 10252 +7696 10252 +7824 10252 +7888 10252 +7984 10252 +8096 10252 +8176 10252 +8272 10252 +8368 10252 +8432 10252 +8720 10252 +8848 10252 +9104 10252 +9728 10252 +10032 10252 +10256 10252 +10320 10252 +7472 638 +7472 1518 +7472 4048 +7472 4928 +7472 8756 +7536 10912 +7600 10912 +7696 10912 +7824 10912 +7888 10912 +7984 10912 +8096 10912 +8176 10912 +8272 10912 +8368 10912 +8432 10912 +8720 10912 +8848 10912 +9104 10912 +9728 10912 +10032 10912 +10256 10912 +10320 10912 +10480 10912 +10656 10912 +10768 10912 +10928 10912 +11024 10912 +11216 10912 +11328 10912 +11440 11440 +11440 11088 +4848 7755 +4848 11495 +4864 7612 +4880 2618 +4880 6402 +8912 1188 +8912 3949 +8992 4048 +9440 4048 +9552 4048 +9680 4048 +9824 4048 +9936 4048 +10000 4048 +10224 4048 +10288 4048 +10384 4048 +10512 4048 +10576 4048 +10640 4048 +10704 4048 +10800 4048 +10928 4048 +11056 4048 +11120 4048 +11216 4048 +11344 4048 +11488 4048 +11680 4048 +11760 4048 +11904 4048 +12048 4048 +12176 4048 +12336 4048 +12432 4048 +12528 4048 +12624 4708 +12624 6072 +12624 7392 +12624 11429 +12688 4048 +12800 4048 +12880 1606 +12880 2310 +12880 3949 +4656 2629 +4720 4488 +4784 4488 +4848 4488 +4912 4488 +5040 4488 +5296 4488 +5664 4488 +5872 4488 +6128 4488 +6192 4488 +6256 4488 +6416 4488 +6560 4488 +6672 4488 +6784 4488 +6896 4488 +7008 4488 +7088 4488 +7184 4488 +7312 4488 +7504 4488 +7664 4488 +7760 4488 +7824 4488 +7888 4488 +7952 4488 +8048 4488 +8208 4488 +8336 4488 +8432 4488 +8496 4488 +8688 5962 +8688 8866 +12016 902 +12016 4488 +12016 6083 +12036 6336 +12176 6336 +12384 6336 +12523 6336 +12560 7392 +12560 11429 +17456 11528 +17476 11440 +17552 11440 +17920 11440 +18368 11440 +18523 11440 +18608 4037 +18608 8525 +18608 10670 +18608 11528 +14416 8866 +14416 9878 +14416 11539 +14512 7348 +14704 7348 +14816 7348 +14928 7348 +15136 7348 +15328 7348 +15440 7348 +15600 7348 +15712 7348 +15792 7348 +15888 7348 +15984 7348 +16128 7348 +16288 7348 +16544 7348 +16688 7348 +16752 7348 +16816 7348 +16912 7348 +17040 7348 +17104 7348 +17168 7348 +17408 7348 +17504 7348 +17712 7348 +17856 7348 +17968 7348 +18192 7348 +18256 7348 +18384 7348 +18448 3564 +18448 7172 +8592 1188 +8592 5962 +8592 6875 +8816 7095 +8836 8756 +9104 8756 +9728 8756 +10000 8756 +10256 8756 +10352 8756 +10464 8756 +10656 8756 +10736 8756 +10800 8756 +10912 8756 +11040 8756 +11200 8756 +11344 8756 +11504 8756 +11600 8756 +11712 8756 +11792 8756 +11984 8756 +12192 8756 +12272 8756 +12384 8756 +12528 8756 +12656 8756 +12720 11429 +4912 2299 +5040 3608 +5296 3608 +5664 3608 +5872 3608 +6128 3608 +6192 3608 +6256 3608 +6416 3608 +6560 3608 +6672 3608 +6784 3608 +6896 3608 +7008 3608 +7088 3608 +7184 3608 +7312 3608 +7504 3608 +7664 3608 +7760 3608 +7824 3608 +7888 3608 +7952 3608 +8048 3608 +8208 3608 +8336 3608 +8432 3608 +8496 3608 +8624 3608 +8752 3608 +8848 3608 +8976 3608 +9040 5962 +9040 6908 +9040 9878 +9328 671 +9328 1760 +9328 2838 +9728 9724 +10032 9724 +10256 9724 +10320 9724 +10416 9724 +10480 9724 +10656 9724 +10736 9724 +10800 9724 +10928 9724 +11040 9724 +11216 9724 +11312 9724 +11440 9724 +11520 9724 +11600 9724 +11712 9724 +11792 9724 +11984 9724 +12080 9724 +12208 9724 +12384 9724 +12528 9724 +12656 9724 +12827 9724 +12848 11429 +12944 9724 +13088 9724 +13232 9724 +13403 9724 +13424 1606 +13424 2794 +13424 3938 +13424 4928 +13424 7392 +13424 8536 +13424 9174 +16880 1012 +16880 2222 +16880 3850 +16880 5368 +16880 6688 +16880 7876 +16880 10560 +16880 11528 +18576 4037 +18576 8646 +18656 8866 +18859 8866 +18992 10846 +18992 11528 +8176 1188 +8176 4829 +8336 4928 +8432 4928 +8496 4928 +8752 4928 +8848 4928 +8992 4928 +9440 4928 +9552 4928 +9680 4928 +9824 4928 +9936 4928 +10000 4928 +10224 4928 +10288 4928 +10384 4928 +10512 4928 +10608 4928 +10704 4928 +10800 4928 +10928 4928 +11056 4928 +11120 4928 +11216 4928 +11344 4928 +11488 4928 +11680 4928 +11760 4928 +11904 4928 +12048 4928 +12176 4928 +12336 4928 +12443 4928 +12464 5962 +12464 7392 +12464 11429 +6000 10802 +6000 11495 +6016 8624 +6032 319 +6032 2024 +6032 4048 +6032 5324 +7088 638 +7088 1518 +7088 2409 +7184 2508 +7312 2508 +7504 2508 +7664 2508 +7760 2508 +7824 2508 +7888 2508 +7952 2508 +8048 2508 +8208 2508 +8336 2508 +8432 2508 +8496 2508 +8624 2508 +8752 2508 +8848 2508 +8976 2508 +9040 2508 +9264 2508 +9408 2508 +9680 2508 +9808 2508 +9872 2508 +10000 2508 +10096 2508 +10224 2508 +10288 2508 +10384 2508 +10512 2508 +10576 2508 +10640 2508 +10704 2508 +10800 2508 +10928 2508 +11056 2508 +11120 2508 +11216 2508 +11344 2508 +11408 4488 +11408 6072 +11408 7392 +11408 11385 +15760 2530 +15760 5368 +15760 6798 +15760 8426 +15760 9878 +15760 10626 +15760 11429 +112 9218 +112 11528 +260 7480 +480 7480 +560 7480 +736 7480 +848 7480 +912 7480 +976 7480 +1072 7480 +1152 7480 +1312 7480 +1536 7480 +1648 7480 +1760 7480 +1872 7480 +1984 7480 +2112 7480 +2192 7480 +2288 7480 +2464 7480 +2624 7480 +2736 7480 +2864 7480 +2960 7480 +3024 7480 +3200 7480 +3312 7480 +3419 7480 +3440 3113 +3440 6864 +5616 1914 +5616 4048 +5652 6336 +6096 6336 +6192 6336 +6256 6336 +6416 6336 +6544 6336 +6672 6336 +6768 6336 +6864 6336 +6992 6336 +7088 6336 +7184 6336 +7328 6336 +7616 6336 +7744 6336 +7824 6336 +7888 6336 +8048 6336 +8176 6336 +8432 6336 +8512 6336 +8832 6336 +8992 6336 +9296 6336 +9456 6336 +9552 6336 +9680 6336 +9808 6336 +10016 6336 +10139 6336 +16944 1012 +16944 2222 +16944 3850 +16944 5368 +16944 6688 +16944 7876 +16944 10560 +16944 11528 +9744 231 +9744 1012 +9744 1760 +9764 6996 +10016 6996 +10128 6996 +10224 6996 +10384 6996 +10496 6996 +10656 6996 +10816 6996 +10928 6996 +11040 6996 +11120 6996 +11216 6996 +11328 6996 +11504 6996 +11568 6996 +11632 6996 +11696 6996 +11760 6996 +11824 6996 +11968 6996 +12192 6996 +12272 6996 +12384 6996 +12528 6996 +12656 6996 +12800 6996 +12891 6996 +12912 7271 +12912 8536 +12912 9174 +12912 11429 +12933 6776 +13088 6776 +13280 6776 +13392 6776 +13456 6776 +13520 6776 +13632 6776 +13760 6776 +13920 6776 +14080 6776 +14192 6776 +14267 6776 +12912 6908 +14288 2530 +14288 5368 +14288 6633 +13904 11528 +13920 11440 +13936 11528 +13952 11440 +13968 11528 +6576 429 +6576 1639 +6672 2068 +6784 2068 +6896 2068 +7008 2068 +7184 2068 +7312 2068 +7504 2068 +7664 2068 +7760 2068 +7824 2068 +7888 2068 +7952 2068 +8048 2068 +8208 2068 +8336 2068 +8432 2068 +8496 2068 +8560 2068 +8624 2068 +8752 2068 +8848 2068 +8976 2068 +9040 2068 +9264 2068 +9424 2068 +9584 2068 +9680 2068 +9808 2068 +9872 2068 +10000 2068 +10096 2068 +10224 2068 +10288 2068 +10384 2068 +10512 2068 +10576 2068 +10640 2068 +10704 2068 +10800 2068 +10928 2068 +11056 2068 +11120 2068 +11227 2068 +11248 4488 +11248 7392 +11248 11385 +5552 2178 +5552 4048 +5552 6402 +5552 7403 +5648 7480 +5936 7480 +6096 7480 +6192 7480 +6416 7480 +6544 7480 +6672 7480 +6864 7480 +6928 7480 +7040 7480 +7168 7480 +7312 7480 +7600 7480 +7760 7480 +7824 7480 +7888 7480 +8048 7480 +8176 7480 +8272 7480 +8416 7480 +8656 7480 +8848 7480 +9104 7480 +9232 7480 +9616 7480 +9680 7480 +9760 7480 +10016 7480 +10128 7480 +10224 7623 +10160 231 +10160 1012 +10160 1760 +10224 5148 +10288 5148 +10384 5148 +10512 5148 +10608 5148 +10704 5148 +10800 5148 +10928 5148 +11056 5148 +11120 5148 +11216 5148 +11344 5148 +11488 5148 +11680 5148 +11760 5148 +11904 5148 +12048 5148 +12176 5148 +12336 5148 +12432 5148 +12528 5148 +12688 5148 +12800 5148 +12912 5148 +13115 5148 +13136 6182 +13136 7282 +13136 8536 +13136 9174 +13136 11429 +13328 4488 +13456 4488 +13520 4488 +13616 4488 +13872 4488 +14080 4488 +14224 4488 +14400 4488 +14512 4488 +14736 4488 +14811 4488 +13136 4840 +14832 2530 +14832 4389 +6000 319 +6000 2024 +6000 4048 +6000 5324 +6000 8239 +6064 8459 +6064 10802 +6064 11495 +17168 10560 +17168 11528 +17232 1782 +17232 4092 +17232 6688 +17232 7722 +4688 2508 +4688 5324 +4688 7711 +4752 8866 +4752 11495 +17232 10560 +17232 11528 +17264 8844 +17296 1782 +17296 4092 +17296 6688 +17296 7722 +17296 8591 +10416 231 +10416 1012 +10416 1760 +10416 7392 +3632 3113 +3632 7139 +3696 7480 +3808 7480 +3888 7480 +3952 7480 +4096 7480 +4176 7480 +4256 7480 +4336 7480 +4432 7480 +4496 7480 +4635 7480 +4656 7689 +4656 8866 +4656 11495 +10576 231 +10576 1023 +10640 1232 +10704 1232 +10800 1232 +10928 1232 +11056 1232 +11120 1232 +11216 1232 +11344 1232 +11488 1232 +11696 1232 +11760 1232 +11904 1232 +12048 1232 +12176 1232 +12336 1232 +12432 1232 +12528 1232 +12688 1232 +12816 1232 +12944 1232 +13120 1232 +13200 1485 +13200 2310 +13200 3124 +13200 3938 +13200 4928 +13200 7282 +13200 8536 +13200 9174 +13200 11429 +13344 1232 +13488 1232 +13632 1232 +13872 1232 +14096 1232 +14224 1232 +14400 1232 +14512 1232 +14736 1232 +14800 1232 +14912 1232 +15120 1232 +15328 1232 +15408 1232 +15472 1232 +15600 1232 +12144 11165 +12208 9504 +12384 9504 +12528 9504 +12656 9504 +12832 9504 +12944 9504 +13088 9504 +13232 9504 +13392 9504 +13536 9504 +13632 9504 +13744 9504 +13968 9504 +14192 9504 +14272 9504 +14384 9504 +14448 9504 +14704 9504 +14784 9504 +15120 9504 +15392 9504 +15520 9504 +15712 9504 +15792 9504 +15856 9504 +15984 9504 +16080 9504 +16208 9504 +16432 9504 +16496 9504 +16592 9504 +16688 9504 +16784 9504 +16912 9504 +17040 9504 +17136 9504 +17280 9504 +17360 1782 +17360 4092 +17360 6688 +17360 7722 +17360 8580 +10992 231 +10992 902 +10992 1760 +10992 4488 +10992 7392 +11028 10252 +11216 10252 +11312 10252 +11440 10252 +11520 10252 +11600 10252 +11712 10252 +11792 10252 +11984 10252 +12080 10252 +12208 10252 +12384 10252 +12528 10252 +12656 10252 +12816 10252 +12944 10252 +13088 10252 +13232 10252 +13403 10252 +13424 11429 +13536 10252 +13696 10252 +13968 10252 +14192 10252 +14272 10252 +14384 10252 +14448 10252 +14704 10252 +14784 10252 +15120 10252 +15392 10252 +15520 10252 +15712 10252 +15792 10252 +15856 10252 +16048 10252 +16219 10252 +16240 2222 +16240 3740 +16240 5368 +16240 6798 +16240 7766 +10448 231 +10448 1012 +10448 1760 +10448 7392 +5712 8459 +5712 10802 +5728 8316 +5744 2024 +5744 4048 +5744 8239 +17424 1782 +17424 4092 +17424 6699 +17504 7128 +17712 7128 +17808 7766 +17808 8734 +17808 9603 +17808 10670 +9520 7128 +9536 3608 +9552 231 +9552 1012 +9552 1760 +17328 1782 +17328 4092 +17328 6688 +17328 7722 +17328 8580 +17328 10670 +17328 11528 +19088 11528 +11408 231 +11408 902 +11488 1980 +11696 1980 +11760 1980 +11904 1980 +12048 1980 +12176 1980 +12336 1980 +12432 1980 +12528 1980 +12688 1980 +12816 1980 +12944 1980 +13120 1980 +13344 1980 +13467 1980 +13488 2673 +13488 3938 +13488 4928 +13488 7282 +13488 8536 +13488 9174 +13488 11429 +13509 1452 +13632 1452 +13872 1452 +14096 1452 +14224 1452 +14400 1452 +14512 1452 +14736 1452 +14800 1452 +14912 1452 +15120 1452 +15328 1452 +15408 1452 +15472 1452 +15600 1452 +15712 1452 +15792 1452 +15888 1452 +15984 1452 +16128 1452 +16272 1452 +16400 1452 +16544 1452 +16656 1452 +16752 1452 +16912 1452 +17040 1452 +13488 1738 +17104 1133 +11120 11385 +11184 231 +11184 902 +11184 1760 +11184 4488 +11184 7392 +5680 8382 +5680 10802 +5696 7700 +5712 2024 +5712 4048 +4304 2365 +4304 5434 +4304 6908 +4304 7810 +2128 10032 +2144 8932 +2160 3113 +2160 6644 +2160 8789 +5424 7183 +5424 10692 +5440 6996 +5456 2178 +5456 4048 +5456 6402 +11152 231 +11152 902 +11152 1760 +11152 4488 +11152 7392 +11152 11385 +15632 2530 +15632 5368 +15632 6798 +15632 8426 +15632 9878 +15632 10626 +15632 11429 +16176 2222 +16176 3740 +16176 5368 +16176 6798 +16176 7766 +16176 8734 +16176 10626 +16176 11429 +5392 7194 +5392 10692 +5408 6556 +5424 2178 +5424 4048 +5424 6413 +4464 2574 +4464 5434 +4464 7920 +4528 10692 +4624 10692 +4688 10692 +4784 10692 +4944 10692 +5072 10791 +5072 11495 +18352 3619 +18352 7887 +18372 8184 +18464 8184 +18667 8184 +18704 8404 +18704 10670 +18704 11528 +4528 2574 +4528 5434 +4528 7931 +4624 8140 +4688 8140 +4784 8140 +4944 8140 +5136 8140 +5488 8371 +5488 10692 +1680 10032 +1700 8932 +1776 8932 +1883 8932 +1904 3113 +1904 6754 +1904 8052 +1904 8789 +19120 11528 +19122 8030 +18256 3454 +18256 6952 +18272 7128 +18288 7876 +18288 9427 +18288 10670 +4752 2618 +4752 5225 +4772 5368 +4848 5368 +4912 5368 +5040 5368 +5296 5368 +5664 5368 +5904 5467 +5904 8382 +5904 10802 +1264 6787 +1264 7832 +1264 9658 +1284 6556 +1456 6556 +1552 6556 +1648 6556 +1760 6556 +1840 3113 +17872 9603 +17872 10670 +17952 8844 +18224 3619 +18224 7766 +4816 2618 +4816 6402 +4816 7700 +4816 8723 +4944 8844 +5136 8844 +5552 8844 +5632 8844 +5792 8844 +5968 8844 +6032 8844 +6112 8844 +6192 8844 +6320 11495 +848 9922 +912 8184 +976 8184 +1104 8184 +1232 8184 +1328 8184 +1536 8184 +1616 3113 +1616 7018 +1616 8063 +17840 8723 +17840 9603 +17840 10670 +17860 8624 +17936 231 +17936 1628 +17936 4796 +17936 7766 +18000 231 +18000 1595 +18016 2376 +18032 4521 +18032 7766 +18032 10670 +17424 8613 +17424 9603 +17424 10670 +17424 11528 +17488 8404 +17552 8404 +17712 8404 +17856 8404 +17968 8404 +18192 8404 +18368 8404 +18464 8404 +18544 4037 +432 9702 +468 7260 +560 7260 +736 7260 +848 7260 +912 7260 +976 7260 +1072 7260 +1152 7260 +1312 7260 +1520 3113 +1520 7029 +11248 231 +11248 902 +11344 1760 +11488 1760 +11696 1760 +11760 1760 +11904 1760 +12048 1760 +12176 1760 +12304 4488 +12304 5962 +12304 7392 +12304 11165 +18160 3619 +18160 7766 +18160 10670 +18096 231 +18096 3740 +18096 7766 +18096 10670 +11088 231 +11088 902 +11088 1760 +11088 4488 +11108 5368 +11216 5368 +11344 5368 +11488 5368 +11680 5368 +11760 5368 +11904 5368 +12048 5368 +12176 5368 +12336 5368 +12432 5368 +12528 5368 +12688 5368 +12800 5368 +12912 5368 +13104 5368 +13328 5368 +13456 5368 +13520 5368 +13584 5467 +13584 7282 +13584 8866 +13584 11539 +10672 231 +10672 902 +10672 1760 +10800 5588 +10928 5588 +11088 5588 +11216 5588 +11344 5588 +11488 5588 +11680 5588 +11760 5588 +11904 5588 +12048 5588 +12176 5588 +12336 5588 +12432 5588 +12528 5588 +12688 5588 +12800 5588 +12912 5588 +13104 5588 +13328 6402 +13328 7392 +13328 8536 +13328 9174 +13328 11429 +3792 2904 +3792 5852 +3813 6028 +3888 6028 +3952 6028 +4096 6028 +4176 6028 +4256 6028 +4432 6028 +4496 6028 +4560 6028 +4640 6028 +4752 6028 +4848 6028 +4912 6028 +5040 6028 +5328 6028 +5664 6028 +6096 6028 +6192 6028 +6256 6028 +6416 6028 +6555 6028 +6576 8646 +6576 9438 +6576 11495 +4048 2959 +4048 6908 +4128 10032 +4272 10032 +4400 10032 +4528 10032 +4624 10032 +4688 10032 +4784 10032 +4944 10032 +5008 10032 +5136 10032 +5264 10032 +5552 10032 +5632 10032 +5808 10032 +5968 10032 +6032 10032 +6112 10032 +6192 10032 +6352 10032 +6448 10032 +6672 10032 +6848 10032 +6928 10802 +4400 2365 +4400 5434 +4400 7810 +4528 9592 +4624 9592 +4688 9592 +4784 9592 +4960 9592 +5136 9592 +5552 9592 +5632 9592 +5808 9592 +5968 9592 +6032 9592 +6112 9592 +6192 9592 +6352 9592 +6416 11495 +10256 231 +10256 1012 +10256 1760 +10256 7513 +10384 7788 +10496 7788 +10656 7788 +10816 7788 +10928 7788 +11040 7788 +11120 7788 +11216 7788 +11328 7788 +11504 7788 +11568 7788 +11632 7788 +11696 7788 +11760 7788 +11824 7788 +11968 7788 +12192 7788 +12272 7788 +12384 7788 +12528 7788 +12656 7788 +12800 7788 +12880 7788 +12944 7788 +13088 7788 +13275 7788 +13296 8536 +13296 9174 +13296 11429 +9840 231 +9840 1012 +9840 1760 +9860 3168 +10000 3168 +10096 3168 +10224 3168 +10288 3168 +10384 3168 +10512 3168 +10576 3168 +10640 3168 +10704 3168 +10800 3168 +10928 3168 +11056 3168 +11120 3168 +11216 3168 +11344 3168 +11488 3168 +11696 3168 +11760 3168 +11904 3168 +12048 3168 +12176 3168 +12336 3168 +12432 3168 +12544 3168 +12688 3168 +12752 3168 +12816 3168 +12928 3168 +13040 3267 +13040 3938 +13040 4708 +13040 6072 +13040 7282 +13040 8536 +13040 9174 +13040 11429 +4080 2310 +4080 4664 +4101 4840 +4176 4840 +4256 4840 +4432 4840 +4496 4840 +4560 4840 +4656 4840 +4720 4840 +4784 4840 +4848 4840 +4912 4840 +5040 4840 +5296 4840 +5664 4840 +5872 4840 +6128 4840 +6192 4840 +6256 4840 +6416 4840 +6560 4840 +6672 4840 +6784 4840 +6896 4840 +7008 4840 +7088 4840 +7184 4840 +7280 4983 +7280 7128 +7280 8756 +7280 10802 +4336 2365 +4336 5434 +4432 6776 +4496 6776 +4640 6776 +4768 6776 +4848 6776 +4912 6776 +5040 6776 +5424 6776 +5648 6776 +5936 6776 +6096 6776 +6192 6776 +6416 6776 +6544 6776 +6672 6776 +6768 6776 +6864 6776 +6992 6776 +7088 6776 +7184 6776 +7328 6776 +7611 6776 +7632 6897 +7632 8756 +18064 231 +18064 3740 +18064 7766 +18064 10670 +6960 638 +6960 1518 +6960 2574 +6960 4048 +6996 5588 +7088 5588 +7184 5588 +7328 5588 +7584 5588 +7664 5588 +7760 5588 +7824 5588 +7888 5588 +7952 5588 +8048 5588 +8176 5588 +8336 5588 +8432 5588 +8496 5588 +8752 5588 +8848 5588 +8992 5588 +9440 5588 +9552 5588 +9680 5588 +9824 5588 +10016 5588 +10160 5588 +10224 5588 +10288 7392 +9200 880 +9200 1760 +9200 2948 +9440 5808 +9552 5808 +9680 5808 +9819 5808 +1328 9911 +1584 9152 +1712 9152 +1776 9152 +1904 9152 +2064 9152 +2240 9152 +2464 9152 +2736 9152 +2960 9152 +3024 9152 +3168 9152 +3312 9152 +3504 9152 +3568 3113 +3568 7128 +3568 9053 +9424 352 +9444 572 +9584 572 +9680 572 +9808 572 +9872 572 +10000 572 +10096 572 +10224 572 +10288 572 +10384 572 +10512 572 +10640 572 +10704 572 +10800 572 +10928 572 +11056 572 +11120 572 +11216 572 +11344 572 +11488 572 +11696 572 +11760 572 +11904 572 +12048 572 +12176 572 +12336 572 +12432 572 +12528 572 +12688 572 +12816 572 +12955 572 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/usa13509.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/usa13509.tsp new file mode 100644 index 000000000..7fc018324 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/benchs/usa13509.tsp @@ -0,0 +1,13510 @@ +13509 +245553 817828 +247133 810906 +247206 810189 +249239 806281 +250111 805153 +254475 804794 +254683 804778 +254950 804294 +255622 803825 +255803 803469 +255972 803808 +256047 803539 +256147 803108 +256311 803692 +256789 803175 +256933 801631 +257072 802936 +257072 803258 +257211 802686 +257264 803556 +257544 803275 +257631 802964 +257739 801939 +257903 801303 +258100 803025 +258219 802897 +258403 803267 +258458 801542 +258550 801933 +258572 802783 +258628 801931 +258647 803247 +258703 802992 +258781 801258 +258822 801808 +258872 801314 +258897 801869 +258914 801272 +259014 974972 +259019 802506 +259306 803286 +259328 801628 +259403 802458 +259481 801508 +259503 801231 +259619 801769 +259647 801225 +259647 802417 +259722 817292 +259808 801486 +259869 802325 +259875 801750 +260028 802242 +260108 801497 +260519 801442 +260569 802719 +260644 802322 +260714 974761 +260731 972083 +260883 817264 +260919 979569 +261000 982628 +261006 972900 +261033 971644 +261219 801436 +261272 802333 +261322 976308 +261400 802136 +261417 817950 +261494 979133 +261586 978236 +261592 979906 +261600 801392 +261661 802086 +261700 980517 +261833 981228 +261903 976958 +261917 800967 +261944 981833 +262022 800942 +262031 982297 +262156 983250 +262189 817919 +262256 977578 +262350 975817 +262375 801250 +262442 802067 +262467 984811 +262483 977336 +262564 978247 +262614 818094 +262825 801072 +262869 983131 +262931 979928 +262936 800792 +262936 979603 +262983 979283 +263014 981631 +263181 801000 +263306 818269 +263394 817789 +263583 800833 +263728 979714 +263794 988200 +263992 800658 +264047 990156 +264119 977894 +264183 814175 +264422 980136 +264486 820225 +264517 819483 +264611 800731 +264669 818017 +265250 800667 +265267 800486 +265625 819497 +265661 800536 +265864 800522 +265886 800389 +266156 800572 +266233 801256 +266250 816250 +266403 818725 +266450 800761 +266636 807164 +266669 818803 +266744 818153 +266842 806678 +266908 801203 +267053 800367 +267089 817461 +267150 800536 +267372 809511 +267539 809339 +267600 800739 +267614 814386 +267750 800583 +267778 800358 +268000 800667 +268172 800822 +268197 806656 +268328 810933 +268417 810964 +268794 800536 +268833 822903 +269069 992711 +269097 820542 +269139 823272 +269294 820456 +269339 800944 +269467 820261 +269581 820672 +269614 819842 +269758 820908 +270269 804858 +270500 822500 +270528 824244 +270567 823786 +270592 801367 +270728 824078 +270994 824544 +271189 824444 +271300 824533 +271439 802008 +271675 802664 +271958 824906 +271972 802531 +272156 818586 +272172 802700 +272192 802394 +272217 824981 +272267 981439 +272436 808300 +272517 808142 +272542 802300 +272836 824808 +272928 813631 +273064 986781 +273294 824578 +273361 825308 +273603 981233 +274097 825694 +274122 826592 +274242 825803 +274250 825906 +274464 803258 +274472 825464 +274667 827042 +274689 826864 +274692 825417 +274931 817961 +274953 814411 +274972 827092 +274986 825750 +275061 995072 +275119 826322 +275156 978558 +275211 825725 +275214 825278 +275308 827336 +275356 825614 +275428 804025 +275469 818117 +275858 977989 +275956 815064 +275986 984078 +276381 818242 +276383 803975 +276742 977483 +276750 804094 +277122 822992 +277164 803844 +277206 824333 +277456 815308 +277481 804364 +277481 827036 +277519 818019 +277519 980694 +277547 827378 +277636 982386 +277675 806017 +277689 827692 +277814 979083 +277900 976686 +277950 819806 +277978 827975 +278003 973961 +278083 828114 +278139 827783 +278158 828208 +278258 828292 +278336 970608 +278356 804933 +278425 826997 +278625 828486 +278750 828514 +278769 973236 +278775 972114 +278803 805006 +278825 986175 +278950 819736 +278961 818433 +279011 815861 +279092 827875 +279092 971497 +279142 827056 +279211 828172 +279219 972897 +279228 828433 +279356 828064 +279375 822861 +279456 818006 +279472 824586 +279503 975819 +279525 817272 +279564 979367 +279650 818781 +279656 828003 +279675 819736 +279781 817567 +279786 816142 +279786 973983 +279906 826933 +279936 816903 +279939 822197 +279944 817383 +280033 805658 +280083 819078 +280183 821131 +280194 827719 +280203 970542 +280219 817331 +280222 816194 +280314 820150 +280339 826653 +280342 805889 +280350 823894 +280364 975089 +280408 993542 +280442 816281 +280611 970408 +280650 817889 +280681 805606 +280714 806536 +280719 806803 +280778 827639 +280786 806028 +280850 806667 +280892 805658 +280917 817236 +280942 978278 +281139 816181 +281144 819739 +281206 820233 +281356 806719 +281458 827569 +281486 805886 +281508 824617 +281611 816019 +281758 805903 +281822 818242 +281875 827397 +282164 827225 +282333 821814 +282381 973197 +282439 827194 +282586 814567 +282714 827197 +282917 814078 +283050 972750 +283197 806078 +283322 981172 +283358 822747 +283506 807256 +283644 821961 +283858 807422 +284006 977481 +284056 806050 +284150 967133 +284319 807603 +284367 992347 +284569 813917 +284581 813594 +284600 981822 +284656 821722 +284717 813681 +284858 813725 +284953 815350 +285025 813308 +285072 821706 +285217 998603 +285381 813794 +285381 814606 +285408 813008 +285492 817731 +285544 811067 +285547 816333 +285550 823881 +285578 818514 +285650 815864 +285689 815442 +285731 995683 +285742 817464 +285781 818869 +285908 813944 +285997 813394 +286097 820553 +286119 808078 +286144 813808 +286147 966258 +286192 814428 +286417 811236 +286475 968922 +286489 813514 +286497 819928 +286608 813658 +286614 814192 +286617 815097 +286647 821131 +286650 808450 +286672 991703 +286681 973881 +286697 812083 +286772 998278 +286775 813281 +286794 965600 +286803 815097 +286986 813083 +287078 962172 +287089 1.00499e+06 +287094 817331 +287308 816014 +287394 811153 +287500 822969 +287556 820950 +287586 813181 +287811 826153 +287994 820703 +288003 812733 +288022 816447 +288039 817258 +288106 818781 +288189 978483 +288356 823306 +288403 817689 +288525 816856 +288611 819067 +288617 987061 +288650 820392 +288831 977128 +288847 979006 +288919 990947 +289003 812639 +289006 823747 +289022 825928 +289172 819231 +289178 985461 +289292 816658 +289408 998494 +289442 952886 +289486 812989 +289539 953594 +289600 960650 +289669 984783 +289783 966458 +289806 812336 +289808 975025 +289825 959692 +289825 980172 +289886 809025 +290028 953317 +290175 958892 +290244 953986 +290256 809272 +290256 809722 +290297 827161 +290300 826689 +290336 954342 +290386 956983 +290403 965133 +290403 985678 +290442 955689 +290489 824611 +290550 820625 +290558 954097 +290694 980817 +290936 972889 +290961 809372 +291192 813517 +291333 981558 +291383 830353 +291397 989050 +291436 956450 +291656 810047 +291692 954317 +291758 809831 +291869 821403 +291894 988622 +291964 962694 +292094 997858 +292106 810231 +292261 986575 +292281 953447 +292367 979597 +292392 814658 +292433 810378 +292672 977642 +292856 810561 +292875 971517 +292947 952786 +293103 1.00418e+06 +293106 988097 +293114 961025 +293172 994661 +293472 991411 +293481 950158 +293489 810667 +293556 988783 +293561 981153 +293625 1.00896e+06 +293664 821975 +293789 902600 +293836 949025 +293872 824469 +293992 958375 +294236 952439 +294239 984933 +294289 971703 +294300 815108 +294383 905953 +294419 902992 +294436 969408 +294475 826425 +294506 959944 +294569 946394 +294606 950511 +294625 953578 +294631 983853 +294658 812581 +294747 811272 +294747 984506 +294786 984872 +294803 896939 +294822 954153 +294831 949219 +294847 984656 +294878 985514 +294950 986183 +295000 815917 +295014 974522 +295044 822800 +295067 949922 +295072 950947 +295153 983800 +295178 983158 +295231 985161 +295292 952008 +295297 825192 +295308 960708 +295375 907200 +295425 903381 +295425 950203 +295472 950319 +295478 982908 +295519 982694 +295533 906022 +295569 958083 +295606 1.04372e+06 +295614 982267 +295633 952858 +295639 950253 +295686 979644 +295711 981400 +295722 903817 +295747 971425 +295819 957606 +295822 984906 +295847 985522 +295894 963333 +295917 820875 +295919 980331 +295956 907194 +296003 984869 +296131 828178 +296158 955575 +296183 955375 +296194 956347 +296200 950097 +296236 818906 +296311 960650 +296342 831253 +296458 905392 +296461 826067 +296483 816378 +296514 823250 +296581 815986 +296622 948900 +296628 952353 +296656 950192 +296661 911019 +296667 901083 +296692 1.00012e+06 +296792 959769 +296803 976472 +296817 969028 +296875 971083 +296894 912708 +296897 958994 +296908 952089 +296931 913019 +296944 912189 +296992 912067 +297028 967803 +297028 981242 +297050 951236 +297056 954586 +297058 954367 +297064 965394 +297178 815083 +297178 954336 +297231 901236 +297256 849833 +297264 990733 +297272 905989 +297353 949772 +297364 848786 +297486 966008 +297597 955169 +297631 953631 +297672 952336 +297672 955297 +297703 954953 +297728 946825 +297758 951144 +297772 955169 +297781 951717 +297806 961569 +297856 958242 +297858 820317 +297858 959508 +297894 821675 +297897 943831 +297928 961006 +297944 987317 +297956 824944 +297956 908228 +297958 915014 +297975 933250 +298186 950558 +298200 943839 +298236 904750 +298267 825969 +298372 909561 +298378 915442 +298475 948906 +298531 846644 +298547 899906 +298678 951281 +298797 950628 +298831 979411 +298847 976697 +298875 955628 +298956 898978 +298986 939286 +298992 901003 +299022 955022 +299033 900772 +299053 968764 +299058 901422 +299061 903561 +299100 900325 +299108 916633 +299117 950619 +299144 900539 +299175 939242 +299183 902108 +299319 903664 +299322 953800 +299361 906786 +299403 902031 +299403 910247 +299425 899633 +299428 903517 +299439 821100 +299478 854181 +299481 919886 +299481 939169 +299500 962569 +299542 900053 +299544 900750 +299581 920358 +299589 829283 +299650 912031 +299675 989047 +299742 939922 +299764 904089 +299778 903878 +299794 818106 +299839 901528 +299889 978769 +299911 939583 +299917 816783 +299939 902417 +299978 922847 +299989 904122 +300033 918186 +300108 907194 +300156 1.00205e+06 +300206 938456 +300225 823397 +300258 925083 +300272 945914 +300356 944242 +300403 906989 +300439 820719 +300464 948850 +300472 906897 +300472 991400 +300478 943356 +300528 831750 +300536 905517 +300558 906192 +300564 917369 +300564 959267 +300664 904800 +300772 992400 +300806 926714 +300819 937581 +300850 978400 +300858 941017 +300928 937364 +300931 959875 +300972 960781 +300978 984211 +300994 919900 +301008 909928 +301025 940517 +301089 948581 +301103 973150 +301125 852006 +301131 946428 +301172 835819 +301217 924981 +301308 856033 +301314 940153 +301400 944108 +301422 1.02394e+06 +301469 919611 +301522 947389 +301528 855700 +301586 856603 +301658 817067 +301667 963975 +301686 933758 +301697 911469 +301708 856253 +301758 843753 +301764 858056 +301806 924642 +301817 932736 +301825 969361 +301842 908592 +301894 826394 +301897 925825 +301906 935811 +301922 826147 +302008 856269 +302139 923744 +302142 918319 +302172 910961 +302222 926569 +302239 920197 +302256 978033 +302264 932172 +302328 951608 +302347 922683 +302356 920944 +302356 921853 +302358 928225 +302364 933772 +302367 930136 +302383 909200 +302419 932506 +302453 856483 +302458 877008 +302500 1.0325e+06 +302531 941897 +302669 977428 +302733 918992 +302750 897811 +302750 988717 +302767 977908 +302767 984117 +302772 912236 +302819 821222 +302867 893761 +302889 912342 +302892 856406 +302944 813933 +302950 907950 +302975 937433 +302978 978017 +303025 819756 +303025 931906 +303078 1.04019e+06 +303086 892869 +303117 813967 +303117 954558 +303131 917903 +303133 899431 +303139 842475 +303156 892475 +303169 920489 +303294 827592 +303311 924956 +303319 816558 +303342 813989 +303406 975567 +303458 965281 +303489 941778 +303494 973700 +303503 891528 +303536 912653 +303547 940725 +303569 871639 +303581 900656 +303583 1.03661e+06 +303586 905861 +303656 885561 +303672 890928 +303678 979914 +303714 943122 +303758 843008 +303758 897483 +303839 872750 +303856 886117 +303878 960875 +303933 864958 +303942 912536 +303958 888853 +303975 919314 +304028 922150 +304031 882483 +304042 901569 +304056 866189 +304064 876836 +304097 866631 +304108 817081 +304108 914336 +304111 888278 +304111 920683 +304114 885344 +304189 970114 +304208 873075 +304211 872169 +304247 954797 +304250 872519 +304261 888908 +304264 872797 +304303 888422 +304319 849758 +304381 842808 +304386 904414 +304392 976197 +304403 885436 +304408 866136 +304428 872225 +304433 850453 +304439 856886 +304503 934331 +304506 911544 +304519 912100 +304556 866383 +304614 873150 +304686 872361 +304692 834131 +304692 836303 +304703 919783 +304739 879192 +304753 901008 +304761 883422 +304783 900375 +304811 926956 +304850 925958 +304853 928506 +304867 909561 +304875 876997 +304892 997717 +304911 915194 +304942 924175 +304978 949964 +304981 861361 +305019 907478 +305042 904611 +305042 905822 +305050 978200 +305081 976786 +305100 872125 +305181 829483 +305183 921847 +305186 872728 +305228 879033 +305253 896794 +305333 920814 +305367 917528 +305375 954831 +305425 975464 +305450 838703 +305453 877517 +305475 881753 +305536 877119 +305589 915558 +305600 919539 +305619 818308 +305667 1.00643e+06 +305692 847433 +305706 974092 +305772 904831 +305781 982725 +305786 978528 +305814 872914 +305869 845833 +305881 911681 +305900 881708 +305903 972967 +305922 951292 +305958 916164 +305986 870311 +305992 871611 +306033 879036 +306039 830981 +306136 972053 +306161 920569 +306169 846600 +306181 877531 +306200 927625 +306228 857122 +306236 844147 +306278 963342 +306317 816067 +306322 870397 +306325 976769 +306336 924192 +306353 905008 +306483 911564 +306581 984403 +306603 938925 +306694 814628 +306878 922714 +306908 819175 +306928 917439 +306936 853922 +306942 880431 +307014 914361 +307050 848431 +307075 849244 +307100 1.012e+06 +307108 949328 +307122 850203 +307172 911414 +307175 974425 +307214 861156 +307233 955506 +307239 873142 +307383 915942 +307386 880789 +307436 980553 +307472 832208 +307489 844839 +307542 935403 +307581 982281 +307592 986747 +307619 865706 +307636 880747 +307647 905117 +307731 858142 +307742 852269 +307750 944153 +307817 855386 +307836 924253 +307847 835600 +307908 898486 +307917 837900 +307917 856797 +307947 974253 +307969 853767 +307997 816900 +308158 926603 +308206 880706 +308231 883614 +308303 820100 +308306 906717 +308325 832786 +308372 912175 +308400 895342 +308411 977933 +308461 932889 +308469 901531 +308483 937572 +308531 880561 +308531 969767 +308558 820211 +308600 1.00601e+06 +308656 910156 +308700 851619 +308772 842014 +308781 974014 +308783 965928 +308828 843239 +308828 877731 +308917 880397 +308939 1.02879e+06 +309036 845756 +309078 944219 +309139 1.01898e+06 +309175 997861 +309197 932822 +309200 911156 +309200 939964 +309250 885900 +309381 905089 +309450 953753 +309469 975383 +309497 959114 +309528 871514 +309531 921825 +309567 855167 +309575 851622 +309597 837381 +309636 817228 +309656 864597 +309736 840531 +309764 925850 +309778 966736 +309814 863075 +309833 918000 +309839 920533 +309842 1.03744e+06 +309911 833728 +309967 948269 +310000 872608 +310011 894522 +310050 863281 +310067 904722 +310103 863497 +310111 838664 +310147 922872 +310236 874939 +310258 964850 +310294 961144 +310328 858639 +310344 919756 +310364 827472 +310397 1.0483e+06 +310403 848792 +310408 830753 +310486 853050 +310547 951256 +310558 974642 +310578 920489 +310594 921211 +310636 981814 +310681 836239 +310722 840892 +310728 969783 +310744 831994 +310786 976053 +310894 910683 +310906 882281 +310931 870628 +310944 924003 +310981 973425 +311022 856969 +311044 912994 +311050 870722 +311081 855944 +311086 888272 +311128 860461 +311147 932714 +311158 901419 +311169 977275 +311239 979028 +311267 954453 +311275 841519 +311278 920661 +311358 1.02224e+06 +311369 834236 +311392 855192 +311431 894097 +311431 904586 +311433 932608 +311497 814917 +311556 885578 +311583 944261 +311650 966767 +311692 889200 +311711 847333 +311797 837892 +311808 821350 +311828 852364 +311869 947808 +311914 1.0146e+06 +311956 987178 +311972 910217 +312022 890347 +312033 970364 +312042 819814 +312067 973025 +312072 832503 +312133 823542 +312158 861711 +312161 998453 +312169 983931 +312228 904603 +312231 853906 +312311 842106 +312356 857228 +312436 904531 +312478 939742 +312517 898375 +312617 1.00817e+06 +312689 836872 +312714 834650 +312775 945764 +312794 863256 +312822 892756 +312825 862556 +312836 904683 +312925 851117 +312975 828525 +312989 853444 +312989 870225 +313058 822422 +313061 968978 +313081 973611 +313100 857131 +313111 924450 +313114 855531 +313128 843358 +313181 954564 +313189 854939 +313194 839172 +313222 924342 +313269 892903 +313381 947289 +313392 1.02851e+06 +313403 1.10934e+06 +313406 830461 +313406 938467 +313408 835936 +313444 1.09545e+06 +313464 892600 +313511 853422 +313528 865392 +313569 1.09561e+06 +313614 961439 +313644 893061 +313700 814342 +313775 849342 +313794 841611 +313850 832231 +313856 859294 +313864 972153 +313903 926692 +313903 976842 +313972 1.0235e+06 +314128 833292 +314144 860678 +314153 924117 +314172 895422 +314217 853378 +314228 1.03493e+06 +314333 874014 +314350 977436 +314394 835194 +314397 847250 +314436 934572 +314439 974089 +314481 1.09928e+06 +314497 985706 +314503 835086 +314589 856406 +314611 1.03393e+06 +314622 971956 +314628 908500 +314636 1.00437e+06 +314650 882544 +314675 971144 +314717 836469 +314722 908967 +314747 969231 +314856 845139 +314861 820172 +314917 954783 +315022 1.06158e+06 +315044 910689 +315086 828500 +315089 878944 +315128 837878 +315172 826350 +315189 927067 +315214 971536 +315242 965336 +315278 873247 +315297 941058 +315306 838356 +315342 974428 +315392 824625 +315394 1.10756e+06 +315422 867150 +315422 968333 +315492 971464 +315536 901072 +315544 1.10303e+06 +315581 847383 +315603 914031 +315653 914258 +315686 934839 +315700 1.03001e+06 +315717 852506 +315783 841558 +315789 904406 +315811 925328 +315828 1.0292e+06 +315847 958489 +315850 1.06272e+06 +315922 1.06224e+06 +315939 971086 +315942 832506 +315942 1.02892e+06 +315972 1.00182e+06 +315983 898669 +316000 857189 +316033 946553 +316039 891956 +316072 818856 +316089 850472 +316250 828869 +316250 955792 +316264 918181 +316269 962836 +316278 1.10333e+06 +316292 971025 +316300 915544 +316314 936439 +316339 883133 +316369 867419 +316453 895553 +316503 950725 +316528 932019 +316592 974719 +316672 928906 +316747 886461 +316753 930444 +316797 964819 +316831 921336 +316925 1.06207e+06 +316939 891306 +317011 903975 +317036 981236 +317058 836533 +317078 817425 +317086 856106 +317086 877772 +317114 910606 +317128 1.10067e+06 +317147 832528 +317164 862639 +317169 991322 +317200 858161 +317225 915431 +317244 961650 +317319 841708 +317333 872047 +317381 999469 +317419 989453 +317511 1.03159e+06 +317539 966497 +317561 846153 +317586 1.06486e+06 +317606 930861 +317711 847894 +317719 918214 +317733 844467 +317739 816328 +317781 823486 +317822 975764 +317833 855558 +317839 816078 +317864 890322 +317878 964622 +317883 877272 +317958 951500 +318022 970914 +318086 859700 +318144 948403 +318192 923297 +318197 935142 +318214 930294 +318242 944908 +318272 994261 +318294 866178 +318308 843644 +318361 1.00984e+06 +318456 1.02367e+06 +318464 916561 +318467 815961 +318575 1.03092e+06 +318600 886994 +318603 903958 +318636 922958 +318736 897336 +318781 854497 +318867 889839 +318872 1.00291e+06 +318911 851456 +318922 1.00484e+06 +318933 931181 +318939 967144 +318972 986033 +319003 842519 +319028 922431 +319036 943950 +319119 1.11881e+06 +319133 877358 +319231 976564 +319253 926394 +319292 826797 +319364 819286 +319381 813036 +319436 942439 +319508 834564 +319564 999619 +319608 909839 +319617 898700 +319633 837825 +319636 952703 +319656 940536 +319678 1.10294e+06 +319753 939978 +319789 892872 +319808 916556 +319828 980333 +319844 865786 +319872 903569 +319894 832003 +319908 872906 +319919 833069 +319972 1.02078e+06 +320000 808458 +320039 1.06605e+06 +320108 971297 +320147 933419 +320167 929092 +320172 830628 +320217 937142 +320264 921389 +320333 810500 +320333 895222 +320339 843928 +320356 825083 +320375 937000 +320400 887281 +320492 916581 +320497 921092 +320525 955061 +320678 829008 +320722 842328 +320725 912408 +320736 829147 +320800 968064 +320833 811000 +320850 983417 +320853 932200 +320867 821181 +320878 846675 +320883 954717 +320894 882219 +320914 837956 +320919 967156 +320953 964686 +320958 989633 +320961 902942 +321094 906233 +321100 835011 +321142 811542 +321153 812472 +321244 969450 +321261 991650 +321292 1.01788e+06 +321322 812992 +321331 962275 +321358 816222 +321397 953200 +321439 960908 +321442 857150 +321444 951203 +321469 827781 +321489 811633 +321531 947992 +321533 901311 +321558 819339 +321572 943372 +321594 971497 +321614 819042 +321631 917206 +321686 882825 +321694 960122 +321811 821092 +321839 865803 +321839 968844 +321872 825658 +321975 831778 +321994 1.10968e+06 +322019 839086 +322042 823219 +322047 958553 +322094 997964 +322136 986703 +322161 807528 +322175 824136 +322206 982019 +322217 1.10926e+06 +322253 950575 +322267 952253 +322333 973742 +322344 977550 +322369 808606 +322381 843092 +322386 949403 +322411 927158 +322417 854164 +322428 944553 +322503 1.01478e+06 +322528 1.09831e+06 +322592 904225 +322614 837367 +322664 876253 +322686 1.07758e+06 +322700 1.068e+06 +322731 899858 +322744 949783 +322767 927233 +322783 957494 +322817 938239 +322836 834722 +322861 1.04095e+06 +322869 810808 +322936 840611 +322958 812356 +322964 1.01306e+06 +322986 901847 +323050 840275 +323053 847728 +323061 877981 +323061 924503 +323069 960064 +323078 954797 +323089 917747 +323094 901389 +323122 1.06778e+06 +323128 897983 +323131 970114 +323158 945164 +323175 890256 +323186 1.02545e+06 +323189 845172 +323203 962128 +323211 891633 +323283 932797 +323292 966250 +323300 906056 +323344 961511 +323361 813917 +323414 903217 +323431 893286 +323475 973864 +323492 904600 +323503 1.08708e+06 +323511 953008 +323525 908778 +323536 896544 +323642 887036 +323644 894742 +323664 961006 +323667 863000 +323694 841881 +323717 1.1286e+06 +323769 825925 +323789 806928 +323794 816633 +323808 1.06479e+06 +323864 968481 +323867 833547 +323881 989789 +323881 1.00864e+06 +323939 993939 +323967 973236 +323969 820603 +323969 908564 +324014 988172 +324058 994933 +324064 972114 +324067 887772 +324072 870211 +324083 911867 +324111 1.00712e+06 +324172 886478 +324206 1.04228e+06 +324239 856917 +324283 901322 +324311 966675 +324314 806700 +324322 830614 +324333 971022 +324339 866547 +324356 807242 +324367 1.11225e+06 +324372 1.03159e+06 +324389 891083 +324419 822153 +324419 977939 +324425 962297 +324453 949483 +324458 1.00538e+06 +324486 817833 +324486 997328 +324489 975264 +324494 875142 +324561 839403 +324575 914931 +324575 998711 +324581 837317 +324608 849878 +324614 973878 +324617 901153 +324639 864597 +324697 986786 +324706 1.00012e+06 +324708 850008 +324708 1.00406e+06 +324772 917547 +324786 940594 +324797 863619 +324806 809806 +324822 969942 +324861 882964 +324956 849919 +325006 947403 +325042 945739 +325092 921192 +325117 863767 +325156 954092 +325158 921917 +325158 937319 +325175 878364 +325175 968042 +325183 921475 +325231 926378 +325247 956369 +325250 937500 +325264 968861 +325275 927139 +325294 949028 +325300 925142 +325306 825894 +325325 935039 +325339 966653 +325344 927883 +325356 934108 +325358 858933 +325381 819325 +325403 829039 +325419 973206 +325431 903092 +325436 862119 +325439 930528 +325447 943672 +325481 828719 +325489 929200 +325497 858700 +325519 984978 +325536 838875 +325564 958631 +325569 842383 +325597 840964 +325606 856725 +325631 971414 +325789 973622 +325808 938925 +325828 821553 +325836 951086 +325839 1.17112e+06 +325842 881872 +325883 952039 +325883 965083 +325889 963086 +325889 966850 +325897 968567 +325908 926478 +325919 967558 +325936 948553 +325964 1.14709e+06 +325972 823339 +325997 1.1063e+06 +326039 914778 +326056 832456 +326097 854808 +326108 1.1077e+06 +326119 998139 +326125 900367 +326153 932867 +326208 836000 +326278 964556 +326308 972889 +326322 873192 +326353 860344 +326394 965381 +326400 1.17083e+06 +326408 903647 +326453 853783 +326467 972256 +326492 967128 +326517 969081 +326536 837597 +326550 799406 +326592 836189 +326631 954881 +326653 1.07152e+06 +326728 1.14146e+06 +326731 974603 +326733 957092 +326775 845394 +326781 1.17098e+06 +326789 1.15498e+06 +326833 847383 +326858 1.17182e+06 +326875 833467 +326875 939608 +326900 808508 +326947 937417 +326958 976019 +326961 920858 +326981 958850 +326989 926567 +326992 1.08131e+06 +327025 1.03136e+06 +327028 971550 +327044 875958 +327092 960081 +327142 971561 +327153 1.17156e+06 +327169 1.16875e+06 +327189 1.02644e+06 +327214 1.09105e+06 +327217 840133 +327225 1.1064e+06 +327233 992969 +327253 973206 +327253 1.14624e+06 +327286 949422 +327286 966225 +327292 827200 +327308 1.15529e+06 +327342 802419 +327358 962750 +327361 968867 +327375 1.01951e+06 +327425 1.17031e+06 +327439 939714 +327447 974133 +327458 969975 +327481 964717 +327503 816369 +327547 812422 +327556 989019 +327558 1.11554e+06 +327564 998958 +327572 943450 +327572 974106 +327578 848750 +327592 977969 +327594 974581 +327617 1.0813e+06 +327631 802503 +327675 886508 +327678 1.17022e+06 +327700 1.0828e+06 +327714 891167 +327733 924056 +327750 917925 +327764 799311 +327786 919142 +327794 1.0815e+06 +327833 968000 +327853 800353 +327872 845619 +327883 868717 +327889 851450 +327917 930556 +327919 1.15562e+06 +327928 956342 +327931 1.1569e+06 +327939 798628 +327947 1.16962e+06 +327958 954508 +327961 851839 +327964 965606 +327994 972689 +328000 947206 +328003 856536 +328039 819494 +328042 911700 +328047 974447 +328058 974028 +328083 981125 +328111 831728 +328111 1.15379e+06 +328139 969486 +328158 972278 +328189 822350 +328192 934175 +328203 851722 +328219 926578 +328233 971703 +328267 830794 +328281 884764 +328311 857636 +328339 1.09707e+06 +328342 972286 +328344 852297 +328364 964747 +328383 1.16973e+06 +328386 866294 +328403 851833 +328406 836325 +328406 878875 +328422 1.04403e+06 +328439 971428 +328467 852100 +328475 1.15569e+06 +328492 1.09759e+06 +328503 810794 +328517 800367 +328519 1.00465e+06 +328544 799750 +328550 904056 +328564 973386 +328572 1.16921e+06 +328578 972544 +328597 846200 +328600 973636 +328667 824042 +328678 843306 +328686 851906 +328708 811097 +328714 939872 +328744 957653 +328764 877425 +328778 851833 +328794 1.11757e+06 +328808 971547 +328819 833325 +328833 816583 +328836 899714 +328847 1.00126e+06 +328881 843267 +328928 934483 +328936 960292 +328950 975456 +328961 1.09827e+06 +328997 854011 +328997 945561 +329014 922419 +329028 965636 +329050 806669 +329050 936967 +329064 908781 +329103 961353 +329156 867158 +329183 800222 +329192 916769 +329253 811875 +329264 968958 +329311 964594 +329328 843494 +329342 970778 +329344 972514 +329358 828117 +329372 871647 +329411 971339 +329439 859539 +329439 1.03348e+06 +329442 1.02564e+06 +329444 871386 +329453 998025 +329478 1.12716e+06 +329481 967294 +329536 968900 +329544 970147 +329572 952900 +329572 1.05742e+06 +329589 812367 +329594 1.17264e+06 +329597 867467 +329617 968289 +329619 931400 +329628 1.17035e+06 +329636 1.01832e+06 +329644 1.02829e+06 +329689 934506 +329700 899122 +329719 1.10776e+06 +329739 908244 +329750 817578 +329750 963322 +329761 965950 +329778 1.05941e+06 +329778 1.11517e+06 +329783 885700 +329786 1.15529e+06 +329808 800328 +329814 828103 +329836 845828 +329856 801100 +329875 1.1077e+06 +329911 1.1727e+06 +329922 890661 +329950 975425 +329953 949656 +329975 876300 +329983 946306 +330014 824114 +330039 972256 +330047 1.10785e+06 +330067 801556 +330078 813086 +330122 943653 +330136 927250 +330144 970967 +330150 966128 +330161 927242 +330183 801758 +330197 966986 +330203 1.17202e+06 +330308 850611 +330314 1.11387e+06 +330317 947217 +330342 839383 +330369 1.17291e+06 +330372 1.15621e+06 +330392 850314 +330394 921825 +330483 1.1663e+06 +330508 1.09296e+06 +330544 841558 +330569 1.1091e+06 +330572 915733 +330575 895875 +330606 954719 +330656 860533 +330656 962275 +330678 1.09359e+06 +330681 1.17302e+06 +330739 1.06018e+06 +330750 898544 +330767 1.11739e+06 +330786 868817 +330786 1.09365e+06 +330786 1.16601e+06 +330800 832322 +330847 972958 +330897 820158 +330917 970464 +330956 803156 +330981 936547 +331003 934608 +331006 868642 +331028 867536 +331031 966703 +331053 885608 +331075 923347 +331094 912619 +331131 900531 +331136 941642 +331150 1.04326e+06 +331181 871250 +331192 970253 +331192 1.17086e+06 +331211 971831 +331214 855664 +331236 890550 +331256 1.15513e+06 +331281 919611 +331283 1.07252e+06 +331294 881514 +331333 1.00227e+06 +331372 958392 +331386 1.10124e+06 +331408 919939 +331433 1.17165e+06 +331481 959511 +331486 941500 +331506 968233 +331511 853722 +331575 997333 +331575 1.05774e+06 +331581 1.1735e+06 +331611 983853 +331633 963597 +331650 970292 +331656 919414 +331667 1.01793e+06 +331689 908539 +331731 849150 +331731 862517 +331781 866072 +331786 991772 +331800 964978 +331806 947439 +331811 1.02274e+06 +331828 902228 +331842 904892 +331844 998933 +331886 952211 +331908 1.01378e+06 +331939 987383 +331958 800133 +331958 1.17379e+06 +331972 1.04372e+06 +331975 966150 +332000 1.17242e+06 +332031 946800 +332075 823919 +332075 926661 +332097 875692 +332100 847444 +332100 977544 +332144 804481 +332183 981583 +332183 1.17033e+06 +332281 917975 +332289 875772 +332333 825956 +332342 864836 +332342 975858 +332344 885822 +332347 848358 +332361 968008 +332378 915114 +332400 1.15518e+06 +332436 842289 +332442 868164 +332447 813589 +332467 842642 +332469 958997 +332481 1.00573e+06 +332511 808158 +332558 1.16374e+06 +332569 1.03317e+06 +332611 938853 +332614 972378 +332619 905922 +332653 842817 +332667 892908 +332669 932392 +332697 908797 +332736 858361 +332756 829764 +332775 850981 +332781 863550 +332858 965725 +332939 1.11096e+06 +332942 961944 +332944 839661 +332958 977986 +332961 868436 +332969 810350 +332975 914936 +333022 845539 +333042 969858 +333047 836833 +333061 1.11841e+06 +333089 854847 +333100 891728 +333106 857544 +333139 820969 +333158 926628 +333200 879028 +333208 902322 +333225 804139 +333225 811425 +333244 967842 +333267 833886 +333286 912817 +333289 925383 +333289 1.05604e+06 +333317 1.05672e+06 +333319 897411 +333328 943425 +333369 1.02206e+06 +333428 1.18327e+06 +333439 864381 +333453 1.10452e+06 +333458 841092 +333478 932097 +333486 806831 +333489 965483 +333506 847767 +333514 932956 +333528 1.11788e+06 +333536 905925 +333578 812708 +333583 935775 +333583 976944 +333625 951044 +333631 971736 +333647 927247 +333653 934950 +333703 1.12583e+06 +333706 960686 +333706 987525 +333708 1.11962e+06 +333733 956881 +333764 1.1725e+06 +333767 792947 +333783 880153 +333794 962472 +333806 847997 +333869 842831 +333942 1.04522e+06 +333942 1.10786e+06 +333944 803475 +333964 969603 +333967 845958 +333992 1.10868e+06 +334017 869544 +334025 814203 +334053 908975 +334069 826622 +334100 910617 +334111 930694 +334111 1.10842e+06 +334131 823853 +334144 823128 +334147 1.11909e+06 +334150 1.11549e+06 +334153 886439 +334181 998186 +334208 821622 +334214 816858 +334214 965769 +334222 1.11822e+06 +334247 959461 +334250 940475 +334256 869267 +334267 941061 +334269 1.17611e+06 +334306 963383 +334336 841489 +334342 869472 +334353 1.12297e+06 +334353 1.12358e+06 +334356 1.12349e+06 +334358 861058 +334372 1.01643e+06 +334417 940375 +334433 895717 +334472 841469 +334483 1.12073e+06 +334486 844550 +334486 867878 +334492 996225 +334500 905056 +334500 1.12259e+06 +334503 821983 +334503 888183 +334508 906550 +334511 795611 +334511 869967 +334517 811256 +334539 910072 +334561 1.02489e+06 +334597 944153 +334614 869089 +334636 1.17678e+06 +334661 942883 +334667 820167 +334667 969181 +334669 1.17697e+06 +334672 995242 +334706 825047 +334706 952136 +334750 804867 +334764 1.00855e+06 +334819 897281 +334917 808558 +334933 1.12357e+06 +334936 1.17148e+06 +334939 849139 +334950 903197 +334956 884272 +334967 812794 +334967 818922 +335006 1.17742e+06 +335017 819653 +335017 1.17662e+06 +335044 818692 +335058 1.02009e+06 +335086 946161 +335086 966119 +335092 1.11898e+06 +335128 963922 +335172 820758 +335178 818442 +335181 899206 +335200 964836 +335206 868025 +335214 798789 +335214 843539 +335225 1.17707e+06 +335253 914358 +335261 953156 +335308 805722 +335308 819450 +335311 1.11942e+06 +335317 811233 +335358 869972 +335378 852533 +335378 924697 +335381 867072 +335386 1.12185e+06 +335400 891242 +335406 892669 +335422 1.17782e+06 +335442 842339 +335453 1.05572e+06 +335461 957256 +335481 865444 +335508 790417 +335508 818042 +335519 947808 +335539 828961 +335553 890847 +335575 807147 +335589 978483 +335603 817197 +335606 1.17157e+06 +335614 969108 +335633 880814 +335636 818081 +335656 813036 +335669 845811 +335700 868964 +335717 1.16076e+06 +335725 844133 +335750 838939 +335756 831825 +335772 961781 +335772 962731 +335778 1.01855e+06 +335806 1.12237e+06 +335808 799892 +335831 843394 +335833 867728 +335833 959097 +335844 928342 +335861 862861 +335869 845425 +335869 879844 +335872 1.02378e+06 +335908 864908 +335939 1.12302e+06 +335942 992600 +335956 834681 +335956 986253 +335967 838603 +335975 1.12271e+06 +335992 797444 +335992 963664 +336000 1.17671e+06 +336008 869561 +336017 907736 +336047 867939 +336058 789733 +336064 843353 +336075 886503 +336078 927400 +336081 803514 +336086 912067 +336103 964106 +336103 1.14596e+06 +336106 950525 +336106 1.14573e+06 +336125 920644 +336125 1.17712e+06 +336131 859611 +336131 1.12324e+06 +336142 858350 +336156 811022 +336189 838675 +336189 1.17928e+06 +336197 866089 +336206 869714 +336214 858442 +336219 843692 +336258 836125 +336258 1.17693e+06 +336261 859189 +336289 913994 +336289 917908 +336289 919314 +336306 1.12332e+06 +336331 897111 +336356 966086 +336358 972225 +336386 1.17343e+06 +336411 1.17918e+06 +336417 1.05877e+06 +336417 1.1729e+06 +336447 843258 +336456 859125 +336489 855875 +336517 973761 +336522 813614 +336533 844494 +336561 837183 +336561 969067 +336597 858317 +336597 876000 +336600 844103 +336600 868128 +336600 1.01238e+06 +336603 1.17998e+06 +336608 955553 +336614 952664 +336614 953856 +336647 791028 +336664 1.01682e+06 +336669 935914 +336675 798308 +336675 840178 +336694 1.17822e+06 +336706 1.01535e+06 +336742 941311 +336742 1.01387e+06 +336772 863967 +336794 844394 +336803 1.16173e+06 +336833 789986 +336844 878308 +336861 864750 +336889 788869 +336889 1.01998e+06 +336939 817672 +336950 802111 +336986 858397 +337039 907264 +337067 840317 +337072 842719 +337092 1.17196e+06 +337092 1.17953e+06 +337122 841053 +337133 873886 +337206 1.16215e+06 +337211 851456 +337214 1.16388e+06 +337244 926156 +337258 905514 +337286 870903 +337306 872844 +337319 849192 +337367 827394 +337369 850325 +337372 1.01836e+06 +337381 810981 +337397 1.16412e+06 +337414 1.18104e+06 +337431 1.17108e+06 +337444 852881 +337444 861558 +337456 1.17867e+06 +337458 1.17174e+06 +337458 1.17825e+06 +337475 1.16971e+06 +337481 868086 +337489 843881 +337519 858114 +337536 794478 +337547 842675 +337556 965364 +337569 881089 +337569 1.18353e+06 +337592 966692 +337592 1.18006e+06 +337597 871833 +337669 1.18188e+06 +337689 898083 +337714 842672 +337733 868139 +337739 1.17941e+06 +337747 842964 +337750 864717 +337786 907214 +337789 924917 +337797 1.16464e+06 +337803 843361 +337825 1.17228e+06 +337833 860025 +337839 1.16958e+06 +337856 1.18084e+06 +337867 977256 +337878 1.17852e+06 +337878 1.18357e+06 +337894 819297 +337897 842642 +337903 843061 +337914 908569 +337922 824792 +337922 1.18314e+06 +337936 842061 +337939 846606 +337947 837133 +338006 1.18389e+06 +338014 1.17145e+06 +338025 851886 +338025 933808 +338025 1.17992e+06 +338031 1.18072e+06 +338081 841703 +338094 842397 +338094 905264 +338111 1.02163e+06 +338125 846344 +338136 857614 +338136 924128 +338142 868094 +338144 1.17812e+06 +338161 986947 +338169 811011 +338169 1.18036e+06 +338172 981950 +338178 794494 +338181 867428 +338186 845825 +338200 1.16389e+06 +338247 870861 +338250 885436 +338303 1.16544e+06 +338311 872775 +338314 1.18072e+06 +338314 1.18281e+06 +338319 818011 +338322 1.01842e+06 +338333 1.1195e+06 +338353 1.17914e+06 +338358 790481 +338358 1.1834e+06 +338369 1.09964e+06 +338389 839008 +338389 907261 +338453 816619 +338464 1.18046e+06 +338492 1.18388e+06 +338531 965022 +338533 910278 +338536 1.18133e+06 +338544 842172 +338553 893114 +338556 892844 +338572 840200 +338575 1.15486e+06 +338594 846839 +338622 1.18399e+06 +338628 834089 +338650 843367 +338658 1.18082e+06 +338675 827414 +338675 1.17997e+06 +338694 1.01597e+06 +338703 1.17924e+06 +338708 797556 +338722 1.17869e+06 +338753 1.17566e+06 +338756 847622 +338756 891772 +338767 806931 +338781 907272 +338781 1.1752e+06 +338817 1.18116e+06 +338839 845144 +338847 1.1841e+06 +338869 914917 +338883 1.18308e+06 +338886 1.17812e+06 +338894 1.18159e+06 +338900 841431 +338906 800186 +338917 875261 +338919 842989 +338956 948261 +338958 1.18219e+06 +338967 979361 +338981 842833 +338983 889992 +339017 881344 +339022 1.18081e+06 +339056 914989 +339078 815475 +339103 811047 +339108 811358 +339133 822936 +339136 984931 +339164 815136 +339164 845447 +339164 1.18352e+06 +339167 928481 +339167 1.17899e+06 +339172 1.02324e+06 +339172 1.18011e+06 +339175 797442 +339192 1.18416e+06 +339203 803417 +339203 1.17278e+06 +339208 931539 +339214 780206 +339236 848408 +339242 843786 +339244 860225 +339256 1.16876e+06 +339289 878172 +339294 1.16976e+06 +339303 1.18211e+06 +339319 1.17945e+06 +339344 964283 +339353 799328 +339369 971164 +339381 1.18352e+06 +339383 943569 +339397 862017 +339400 1.17243e+06 +339400 1.18132e+06 +339411 842136 +339428 918433 +339442 909450 +339456 938469 +339461 843347 +339472 903442 +339472 1.18084e+06 +339481 864728 +339492 835347 +339508 907678 +339514 986683 +339533 1.17395e+06 +339547 860419 +339561 839881 +339583 921900 +339606 1.18184e+06 +339608 833781 +339608 1.1795e+06 +339608 1.18041e+06 +339611 1.16501e+06 +339617 1.18352e+06 +339650 835967 +339653 1.18151e+06 +339656 810742 +339656 879147 +339669 832783 +339672 941683 +339681 1.18224e+06 +339686 1.12729e+06 +339725 1.16976e+06 +339731 783861 +339761 1.17904e+06 +339767 896756 +339775 1.18186e+06 +339792 1.18032e+06 +339814 812364 +339817 1.18224e+06 +339831 1.18096e+06 +339839 997244 +339842 884881 +339844 1.01337e+06 +339850 915608 +339867 1.18184e+06 +339875 802083 +339875 822981 +339886 838981 +339897 834258 +339911 963739 +339919 893489 +339925 837203 +339925 1.17516e+06 +339933 810742 +339958 795703 +339961 1.17405e+06 +339967 779075 +339981 858664 +339986 967194 +339997 791997 +340006 810350 +340014 817722 +340017 887553 +340022 950936 +340025 850417 +340028 841447 +340067 900567 +340094 1.18104e+06 +340106 955094 +340117 1.17484e+06 +340119 1.00822e+06 +340122 1.00302e+06 +340122 1.17688e+06 +340131 982319 +340136 838278 +340142 860067 +340144 867469 +340147 904317 +340172 961425 +340186 952661 +340192 809900 +340194 1.1849e+06 +340200 979572 +340200 1.17949e+06 +340203 1.17864e+06 +340211 1.18396e+06 +340217 860886 +340231 843617 +340233 846156 +340239 1.18171e+06 +340253 877583 +340261 863261 +340272 958689 +340292 947389 +340292 989186 +340336 1.17042e+06 +340339 1.17313e+06 +340350 778939 +340378 943411 +340444 907447 +340453 1.17943e+06 +340456 850561 +340469 875497 +340469 1.1658e+06 +340483 1.1726e+06 +340514 840714 +340519 1.18046e+06 +340522 1.18243e+06 +340536 809614 +340536 852550 +340553 1.17751e+06 +340561 788906 +340583 1.06891e+06 +340600 800717 +340600 950031 +340606 867675 +340622 936897 +340625 1.18089e+06 +340625 1.18122e+06 +340633 1.1765e+06 +340636 831256 +340639 809583 +340642 1.01843e+06 +340658 846769 +340678 1.02524e+06 +340681 981903 +340686 1.17938e+06 +340686 1.18027e+06 +340700 883911 +340703 1.17395e+06 +340722 860333 +340736 1.09856e+06 +340736 1.18399e+06 +340739 1.17313e+06 +340750 925553 +340753 842942 +340806 1.18072e+06 +340808 844114 +340814 865911 +340853 1.1796e+06 +340858 811833 +340889 886222 +340900 1.17889e+06 +340900 1.18361e+06 +340903 967714 +340922 825958 +340922 1.17434e+06 +340953 1.18126e+06 +340961 1.18105e+06 +340967 1.17719e+06 +340975 1.17648e+06 +340978 985703 +341008 1.17767e+06 +341014 845194 +341031 1.17845e+06 +341067 1.17806e+06 +341069 1.17934e+06 +341072 1.18057e+06 +341111 828672 +341111 1.09291e+06 +341161 887117 +341161 1.18149e+06 +341167 1.07243e+06 +341172 913764 +341192 940164 +341192 1.16445e+06 +341206 840044 +341208 930536 +341214 1.17302e+06 +341214 1.18106e+06 +341244 1.01441e+06 +341258 1.09937e+06 +341267 962631 +341283 1.17208e+06 +341333 1.09285e+06 +341336 1.17907e+06 +341344 778819 +341347 799400 +341347 1.16312e+06 +341356 1.16053e+06 +341361 1.17864e+06 +341394 1.17976e+06 +341397 1.18034e+06 +341422 879886 +341464 874022 +341469 1.1797e+06 +341478 1.18144e+06 +341478 1.19194e+06 +341481 1.17998e+06 +341486 788769 +341500 1.14288e+06 +341514 896314 +341519 856789 +341542 1.17343e+06 +341544 992647 +341544 1.09973e+06 +341603 1.18651e+06 +341617 1.18052e+06 +341650 848000 +341669 979972 +341686 800628 +341706 1.18837e+06 +341733 901375 +341739 845014 +341742 971433 +341747 868436 +341750 820242 +341753 972625 +341781 794008 +341781 823792 +341783 975922 +341792 778478 +341833 1.02134e+06 +341850 839253 +341858 968803 +341861 1.03334e+06 +341867 851747 +341872 969842 +341897 1.1813e+06 +341942 887197 +341953 797628 +341953 821619 +341975 1.19176e+06 +342000 905708 +342006 861664 +342017 902833 +342022 871814 +342039 834572 +342047 830308 +342056 792547 +342072 841403 +342083 777967 +342092 778439 +342092 815333 +342103 778869 +342117 1.0169e+06 +342133 886644 +342164 1.19037e+06 +342178 905419 +342181 802486 +342200 856078 +342256 779450 +342264 876214 +342264 1.02723e+06 +342272 806894 +342275 838844 +342283 920031 +342283 986842 +342308 1.11324e+06 +342311 956200 +342322 1.19172e+06 +342331 974875 +342331 1.0241e+06 +342336 791489 +342361 966783 +342367 844908 +342369 849442 +342408 990753 +342419 853358 +342419 1.17285e+06 +342464 806072 +342478 889986 +342483 1.17188e+06 +342528 835617 +342542 1.10029e+06 +342564 902719 +342564 995164 +342569 851647 +342575 887033 +342639 858606 +342647 934608 +342675 862089 +342719 982356 +342722 778189 +342739 884092 +342739 920908 +342744 816189 +342772 878286 +342819 1.18438e+06 +342828 847453 +342847 831444 +342856 1.18881e+06 +342869 831103 +342883 779214 +342928 913378 +342978 838242 +342978 997400 +342997 798764 +343047 819831 +343064 826639 +343069 924011 +343083 908519 +343114 899442 +343133 790375 +343144 971425 +343181 864958 +343189 785003 +343192 918472 +343206 784022 +343219 788272 +343242 884911 +343267 935506 +343333 823881 +343336 834992 +343367 850714 +343369 794314 +343381 843767 +343386 787033 +343456 791658 +343461 831100 +343508 877064 +343514 860008 +343528 829322 +343531 890231 +343542 1.19058e+06 +343556 779003 +343581 862947 +343597 983075 +343608 1.17632e+06 +343617 810856 +343622 928128 +343661 1.01057e+06 +343664 1.01748e+06 +343683 869086 +343686 849342 +343689 979636 +343694 906389 +343714 1.19306e+06 +343739 800736 +343764 886817 +343806 810867 +343819 843711 +343847 1.1853e+06 +343850 1.02115e+06 +343858 961281 +343875 836664 +343886 1.03051e+06 +343919 990181 +343925 1.00897e+06 +343936 800697 +343983 822469 +343989 1.19518e+06 +343992 1.18917e+06 +344000 1.19299e+06 +344047 1.03205e+06 +344147 818114 +344153 1.18793e+06 +344164 793714 +344219 917061 +344233 1.19703e+06 +344244 930950 +344264 1.00204e+06 +344264 1.173e+06 +344303 1.03632e+06 +344319 902208 +344358 831069 +344361 847000 +344397 881408 +344433 869353 +344436 1.18609e+06 +344442 857197 +344450 921831 +344464 823917 +344467 859042 +344481 1.19242e+06 +344550 936800 +344600 976736 +344650 1.10091e+06 +344667 960531 +344672 835739 +344678 844292 +344689 802561 +344706 826708 +344717 1.04245e+06 +344719 996478 +344725 818808 +344742 1.01304e+06 +344750 782025 +344806 853478 +344811 872933 +344811 983828 +344839 1.14322e+06 +344847 854764 +344872 786564 +344917 835375 +344942 858478 +344942 890078 +344967 791144 +344989 820144 +345003 915525 +345008 1.17185e+06 +345014 926364 +345022 979575 +345025 849511 +345025 901986 +345028 816117 +345028 991406 +345033 826503 +345036 930550 +345044 971192 +345078 877286 +345078 969681 +345094 886353 +345106 899397 +345114 835272 +345125 798511 +345133 1.10078e+06 +345136 1.02882e+06 +345186 835008 +345203 1.06241e+06 +345228 824944 +345231 869703 +345250 868947 +345286 862533 +345325 839850 +345358 1.01758e+06 +345361 1.1729e+06 +345364 792917 +345381 962183 +345386 787878 +345400 1.12468e+06 +345439 853106 +345442 919689 +345486 994219 +345506 906417 +345508 1.02311e+06 +345517 805839 +345519 779264 +345556 909128 +345567 936339 +345622 858125 +345636 1.11854e+06 +345644 925867 +345650 835453 +345689 856150 +345719 931731 +345750 809022 +345772 833325 +345794 795467 +345794 1.18116e+06 +345811 1.13204e+06 +345828 1.17408e+06 +345861 942394 +345894 953525 +345931 806756 +345958 911997 +345958 1.20137e+06 +345969 837633 +346017 1.05208e+06 +346047 964239 +346058 869833 +346081 821136 +346086 983900 +346100 1.12315e+06 +346125 835250 +346136 1.20192e+06 +346144 1.20079e+06 +346172 796850 +346175 899686 +346181 790089 +346183 824781 +346200 923953 +346228 973961 +346275 968406 +346278 862744 +346292 786056 +346294 986283 +346350 857672 +346378 978172 +346381 993336 +346392 1.20457e+06 +346403 784842 +346417 1.02724e+06 +346433 971642 +346447 824703 +346453 1.18217e+06 +346461 893053 +346481 979578 +346500 803892 +346517 827839 +346525 965258 +346564 819653 +346581 885667 +346589 989514 +346628 1.06776e+06 +346647 830967 +346686 795456 +346708 890264 +346719 929986 +346722 860342 +346778 769511 +346781 829317 +346800 791953 +346811 874061 +346833 828375 +346844 903828 +346856 829533 +346875 771194 +346883 999117 +346889 821958 +346931 913136 +346950 765597 +346972 989492 +346975 798836 +346981 1.18136e+06 +346989 767406 +347008 875289 +347017 863758 +347022 824647 +347047 812144 +347047 852819 +347142 856808 +347181 766642 +347203 807711 +347206 958989 +347228 767264 +347242 827814 +347247 1.00534e+06 +347297 889506 +347303 865861 +347311 877025 +347339 824439 +347350 793492 +347356 779956 +347358 800883 +347369 822544 +347394 820372 +347400 972219 +347436 1.01854e+06 +347447 876675 +347464 922894 +347503 981714 +347514 950478 +347539 774306 +347569 879728 +347575 1.12453e+06 +347583 1.06055e+06 +347589 796108 +347600 827539 +347647 830642 +347650 876986 +347658 847700 +347694 922669 +347697 849703 +347711 794439 +347711 1.12057e+06 +347731 803919 +347736 907575 +347739 794631 +347744 966781 +347781 923489 +347786 823103 +347794 993350 +347803 982919 +347808 915808 +347825 979567 +347831 917464 +347839 918997 +347861 783944 +347864 768594 +347878 826925 +347967 969592 +347997 876772 +348000 824244 +348028 869717 +348061 1.06733e+06 +348117 881900 +348150 791833 +348150 922242 +348150 1.02397e+06 +348172 974056 +348228 1.18944e+06 +348231 982439 +348239 899936 +348247 824194 +348253 1.06838e+06 +348256 872947 +348258 774597 +348267 972589 +348289 958436 +348297 826017 +348347 976022 +348406 850428 +348406 883147 +348422 826447 +348450 955572 +348481 1.14613e+06 +348514 865722 +348525 823942 +348544 955819 +348561 1.00213e+06 +348611 966653 +348614 824317 +348628 875375 +348639 800014 +348639 843242 +348642 1.18162e+06 +348661 921100 +348686 858394 +348697 1.1176e+06 +348711 852908 +348719 855092 +348719 995039 +348722 896906 +348761 839583 +348767 1.17103e+06 +348778 824242 +348781 834011 +348789 769017 +348789 964122 +348794 819664 +348833 827075 +348847 796944 +348853 824561 +348878 793664 +348878 911944 +348892 946006 +348906 809567 +348936 983656 +348964 982003 +348983 940906 +348989 817619 +349022 1.10158e+06 +349025 790119 +349047 772317 +349050 1.16819e+06 +349069 1.0668e+06 +349106 818531 +349128 911100 +349147 977783 +349158 851092 +349181 797628 +349181 833856 +349181 973142 +349186 953089 +349203 822964 +349225 817428 +349236 777742 +349239 819331 +349244 807436 +349278 957156 +349283 820992 +349319 981400 +349322 865719 +349331 837772 +349331 838472 +349333 957694 +349364 818794 +349378 821453 +349378 1.00888e+06 +349386 822272 +349386 1.04682e+06 +349392 797742 +349431 797872 +349447 818378 +349475 857144 +349481 821275 +349492 904714 +349494 819322 +349508 821061 +349508 950800 +349511 946369 +349528 785089 +349531 1.20435e+06 +349569 924272 +349581 819908 +349581 852233 +349594 967525 +349611 819675 +349617 898294 +349622 779625 +349622 993803 +349672 947244 +349675 799847 +349675 824436 +349681 800769 +349692 873711 +349703 789456 +349717 1.20571e+06 +349722 909025 +349744 920164 +349769 914950 +349775 853578 +349808 792244 +349831 852861 +349842 804494 +349842 819267 +349853 805497 +349861 843714 +349883 803672 +349894 969233 +349894 992492 +349900 1.06049e+06 +349919 818350 +349919 868467 +349919 868469 +349936 802647 +349942 812422 +349942 853494 +349958 792264 +349978 783236 +349992 780914 +349994 1.17649e+06 +350025 809800 +350047 928025 +350072 809453 +350075 802011 +350081 907897 +350081 912511 +350122 857044 +350131 907225 +350133 786942 +350136 973608 +350142 852519 +350147 973353 +350153 785033 +350158 819750 +350167 818042 +350169 1.17835e+06 +350228 943811 +350242 810281 +350242 1.10697e+06 +350294 990928 +350308 766933 +350319 787950 +350322 932231 +350414 821044 +350419 896644 +350428 1.20475e+06 +350450 896217 +350456 853097 +350469 820903 +350478 856719 +350511 862697 +350522 868886 +350525 788786 +350525 831969 +350525 979361 +350525 1.18173e+06 +350531 850503 +350536 946233 +350539 933933 +350550 777467 +350553 871575 +350561 884353 +350589 1.194e+06 +350594 942525 +350644 888908 +350706 918794 +350711 797617 +350717 816500 +350725 982433 +350742 856261 +350767 806694 +350778 874397 +350800 816331 +350803 963989 +350822 942631 +350831 808925 +350833 980875 +350839 922078 +350844 1.06651e+06 +350872 973347 +350875 840347 +350886 770353 +350886 924419 +350906 806864 +350931 934483 +350950 789558 +350964 787842 +350975 987461 +350978 984353 +350989 1.20611e+06 +351036 986033 +351044 801094 +351056 830967 +351083 770444 +351097 794725 +351111 812267 +351117 1.01363e+06 +351128 918222 +351136 851381 +351161 781364 +351167 807239 +351186 1.2059e+06 +351211 815161 +351217 1.2062e+06 +351225 853439 +351228 953708 +351258 1.17985e+06 +351303 967756 +351314 794297 +351322 1.18448e+06 +351347 1.19455e+06 +351347 1.19472e+06 +351378 976578 +351392 973944 +351400 939214 +351411 848722 +351425 1.19456e+06 +351428 767706 +351428 1.2064e+06 +351436 828214 +351447 768025 +351461 966697 +351464 901844 +351483 818611 +351494 900489 +351497 949706 +351508 927439 +351508 938067 +351519 865706 +351522 1.07842e+06 +351536 781056 +351544 1.19455e+06 +351578 991750 +351586 964931 +351594 848767 +351600 926406 +351608 848578 +351619 1.06642e+06 +351644 860106 +351647 853014 +351672 946722 +351678 789731 +351697 1.0789e+06 +351700 885922 +351717 1.03724e+06 +351739 793925 +351742 846536 +351742 877378 +351744 814500 +351750 821894 +351794 806475 +351858 861122 +351864 947856 +351872 773211 +351883 982603 +351894 854858 +351894 1.14052e+06 +351903 944108 +351958 851847 +351981 1.11651e+06 +351997 870308 +352006 1.06701e+06 +352014 855192 +352017 838242 +352031 859211 +352036 1.01106e+06 +352044 898739 +352086 851269 +352092 1.18828e+06 +352097 860794 +352144 901964 +352153 998661 +352192 812058 +352219 1.01831e+06 +352225 974392 +352231 931578 +352244 907867 +352244 966703 +352247 882492 +352250 903250 +352256 803292 +352269 808433 +352303 810428 +352311 944778 +352317 916675 +352325 1.00599e+06 +352333 827344 +352336 886064 +352339 923875 +352353 815147 +352358 883906 +352361 823494 +352361 851986 +352369 974061 +352375 962414 +352378 1.06606e+06 +352381 1.18914e+06 +352386 810753 +352386 1.06667e+06 +352392 944258 +352400 858397 +352411 946197 +352422 873347 +352428 1.02428e+06 +352436 893500 +352450 813414 +352464 929364 +352472 975994 +352481 930489 +352494 1.1219e+06 +352506 917361 +352531 821972 +352536 951228 +352542 827003 +352556 793725 +352556 949214 +352561 792825 +352561 889878 +352561 912000 +352569 783525 +352578 969364 +352592 810756 +352597 804256 +352597 1.18913e+06 +352603 857361 +352606 971194 +352619 811875 +352625 775819 +352633 905711 +352678 811031 +352700 916397 +352706 861281 +352722 810483 +352747 812103 +352750 904667 +352767 991347 +352783 931336 +352800 824222 +352822 913653 +352828 1.20659e+06 +352831 863742 +352847 812842 +352861 811306 +352872 955822 +352889 811450 +352908 978119 +352911 996397 +352919 937297 +352922 815358 +352928 936344 +352950 797456 +352964 847481 +352969 940361 +352981 810161 +352983 824833 +353000 1.06551e+06 +353053 767889 +353061 786092 +353067 777883 +353083 771544 +353089 983417 +353097 915678 +353106 818589 +353111 824442 +353128 979442 +353164 811764 +353186 824611 +353194 877622 +353228 838075 +353233 845250 +353236 806561 +353236 873036 +353256 943014 +353258 896161 +353264 891494 +353267 786764 +353272 969250 +353289 817589 +353289 932528 +353339 818653 +353356 961361 +353361 941731 +353375 857042 +353394 974864 +353414 898972 +353425 779089 +353458 794172 +353464 824722 +353489 991700 +353500 802003 +353511 855678 +353544 944339 +353561 952653 +353575 780061 +353583 798947 +353589 810972 +353597 797800 +353600 819294 +353614 868397 +353619 862094 +353628 842942 +353653 1.0341e+06 +353658 1.20849e+06 +353692 819569 +353694 824931 +353714 853906 +353725 774378 +353733 1.19018e+06 +353736 832261 +353781 987817 +353786 813792 +353797 902578 +353819 785489 +353833 1.19109e+06 +353842 922156 +353842 977242 +353847 779931 +353858 943983 +353869 879953 +353878 805958 +353917 979411 +353992 788161 +354006 1.19469e+06 +354014 931142 +354019 797844 +354019 907531 +354019 974811 +354025 812025 +354025 1.08223e+06 +354058 801169 +354061 945986 +354078 786722 +354106 808431 +354117 902783 +354119 994039 +354131 787358 +354133 780711 +354175 816431 +354197 1.1902e+06 +354211 945144 +354219 992792 +354231 914558 +354244 844875 +354267 918367 +354286 794933 +354289 815017 +354294 857231 +354303 942314 +354308 834475 +354325 936153 +354325 963047 +354339 795872 +354339 1.06446e+06 +354342 806208 +354353 1.01172e+06 +354358 970911 +354364 1.00805e+06 +354367 943481 +354372 936728 +354392 886414 +354397 959817 +354406 933878 +354411 897781 +354419 974406 +354428 845931 +354428 1.20891e+06 +354447 784272 +354453 1.00271e+06 +354469 850844 +354492 867889 +354492 898150 +354494 973964 +354581 959411 +354603 947872 +354622 894019 +354639 815219 +354658 781608 +354667 856542 +354675 975161 +354686 830042 +354700 955228 +354714 934664 +354714 983553 +354725 774158 +354736 812547 +354778 942217 +354797 791806 +354817 860886 +354833 864603 +354867 808603 +354867 966847 +354869 938275 +354872 806219 +354886 829889 +354894 971633 +354894 1.2067e+06 +354900 903586 +354911 973228 +354914 920311 +354922 941375 +354939 850125 +354942 953053 +354969 779822 +354975 972686 +354983 949694 +354992 808489 +355006 940514 +355033 969025 +355042 974458 +355067 977622 +355069 787394 +355078 901469 +355083 783397 +355125 771008 +355133 845453 +355147 847903 +355147 1.06365e+06 +355150 882453 +355156 989669 +355186 976319 +355197 843636 +355225 976186 +355228 973769 +355261 987072 +355272 863336 +355281 1.08742e+06 +355289 774014 +355297 806683 +355322 979547 +355325 770328 +355328 828375 +355328 904206 +355333 829108 +355336 825286 +355361 1.00959e+06 +355364 782847 +355400 766233 +355453 779750 +355456 806111 +355464 770525 +355478 875519 +355494 985778 +355497 826503 +355508 975486 +355511 804067 +355608 975511 +355642 896464 +355642 907167 +355642 1.2108e+06 +355658 972867 +355692 805819 +355742 1.05674e+06 +355753 1.01184e+06 +355756 812119 +355778 989642 +355842 788003 +355842 881194 +355847 808103 +355869 804631 +355881 1.18491e+06 +355900 842419 +355914 924603 +355942 1.1934e+06 +355961 781244 +355978 824000 +356008 825542 +356014 844611 +356028 859197 +356056 851889 +356067 778236 +356075 958600 +356081 968208 +356092 1.18483e+06 +356111 773731 +356111 903297 +356122 804469 +356139 996711 +356139 1.06725e+06 +356144 888139 +356150 870353 +356172 878394 +356178 823214 +356203 908983 +356225 1.1767e+06 +356233 959603 +356289 821808 +356311 983169 +356328 993814 +356333 801161 +356333 825822 +356350 779333 +356356 941672 +356361 833778 +356383 912650 +356397 1.01603e+06 +356419 977461 +356442 823031 +356453 780100 +356486 956558 +356497 881267 +356497 910739 +356506 784567 +356508 883933 +356508 1.17661e+06 +356528 974778 +356578 820256 +356611 841722 +356617 971953 +356650 988828 +356678 1.01397e+06 +356697 812217 +356708 804744 +356728 895733 +356736 905072 +356744 900997 +356781 1.08151e+06 +356781 1.19228e+06 +356806 1.09052e+06 +356817 804325 +356839 820094 +356842 819919 +356869 1.05937e+06 +356914 1.00638e+06 +356919 848608 +356922 804350 +356942 970631 +356969 825608 +357006 808883 +357017 914414 +357017 968806 +357044 820361 +357047 967650 +357050 899694 +357064 812189 +357069 1.18455e+06 +357072 810758 +357078 798139 +357111 786144 +357111 890875 +357139 814222 +357142 835103 +357144 811464 +357200 791775 +357233 794625 +357258 979761 +357272 814708 +357289 814000 +357289 817794 +357292 1.18549e+06 +357306 911983 +357319 1.05151e+06 +357325 788506 +357328 843339 +357331 806772 +357333 796528 +357406 815633 +357422 905622 +357425 960700 +357436 796925 +357442 987472 +357444 1.09076e+06 +357453 816850 +357453 895297 +357472 854667 +357478 953694 +357486 966578 +357519 776703 +357547 1.18424e+06 +357561 899281 +357564 839706 +357578 816044 +357581 903222 +357603 841358 +357636 1.05932e+06 +357689 1.19246e+06 +357697 916408 +357719 786389 +357719 877839 +357739 814314 +357758 889900 +357808 783700 +357825 808875 +357847 891172 +357875 784808 +357883 776381 +357883 835544 +357894 839739 +357900 782042 +357914 787814 +357950 839319 +357964 814308 +357967 1.19107e+06 +357972 826842 +357972 842561 +357975 952503 +357981 976783 +358028 887747 +358028 965058 +358064 778636 +358083 970125 +358103 805561 +358111 768969 +358144 946283 +358147 892256 +358161 904342 +358178 798033 +358197 889158 +358203 956739 +358217 911283 +358239 772556 +358239 802536 +358242 783150 +358264 825494 +358269 1.01442e+06 +358275 839408 +358275 860717 +358303 925578 +358306 963908 +358383 894061 +358422 907042 +358425 756389 +358447 984128 +358456 863903 +358483 814961 +358506 953181 +358544 770558 +358589 1.08761e+06 +358614 979314 +358656 846850 +358656 1.01973e+06 +358667 767489 +358669 778294 +358681 835619 +358683 921175 +358708 955222 +358728 917539 +358756 893961 +358764 960608 +358778 766156 +358789 974250 +358800 901669 +358808 845086 +358825 800822 +358842 1.19271e+06 +358894 775325 +358906 903442 +358922 828292 +358922 904525 +358939 805617 +358967 775361 +359000 905819 +359028 802572 +359081 756761 +359089 926311 +359092 848781 +359100 790756 +359128 1.00382e+06 +359139 815392 +359153 820647 +359153 949697 +359175 762525 +359197 887589 +359217 811767 +359242 941883 +359250 868689 +359258 854642 +359272 899189 +359325 951411 +359339 845525 +359358 902578 +359381 777908 +359417 915483 +359419 958831 +359444 772100 +359447 960650 +359489 850269 +359494 944233 +359517 956506 +359525 975944 +359553 960086 +359556 800056 +359572 756244 +359594 953692 +359597 899719 +359606 839208 +359606 858142 +359608 782539 +359619 797625 +359625 1.19043e+06 +359669 831878 +359686 1.19291e+06 +359731 886781 +359739 970333 +359744 779658 +359758 943175 +359786 1.14832e+06 +359797 785100 +359806 889414 +359814 979108 +359819 841139 +359850 967667 +359883 966008 +359911 1.0608e+06 +359925 945678 +359939 788989 +359942 799356 +359942 941750 +359983 769464 +359986 961139 +360006 884281 +360014 940081 +360025 1.0593e+06 +360042 1.20128e+06 +360081 931864 +360083 1.19961e+06 +360103 842697 +360111 778578 +360114 886228 +360153 834150 +360156 865819 +360167 1.01824e+06 +360211 879669 +360214 803822 +360222 1.06958e+06 +360228 959681 +360317 840281 +360344 893856 +360358 894797 +360364 788236 +360381 882444 +360381 882736 +360397 1.14981e+06 +360417 901139 +360419 942469 +360444 843444 +360469 902928 +360489 777494 +360503 909750 +360508 902386 +360525 957906 +360533 873125 +360536 985881 +360583 905000 +360589 880978 +360594 919083 +360594 1.02513e+06 +360594 1.19311e+06 +360606 766094 +360625 941572 +360653 1.19016e+06 +360667 889939 +360689 794008 +360719 841333 +360725 797922 +360753 791000 +360764 888100 +360769 873878 +360775 860333 +360839 877947 +360839 898292 +360844 965833 +360861 937411 +360872 819275 +360914 793644 +360944 1.15041e+06 +360956 794381 +360958 792672 +360958 844425 +360967 811825 +360969 804194 +360981 1.19559e+06 +360989 783014 +360997 802444 +361006 870511 +361017 784583 +361019 871150 +361028 795069 +361033 841319 +361039 835528 +361047 845972 +361053 777131 +361056 795425 +361072 796589 +361075 832869 +361075 872208 +361078 876331 +361083 910972 +361092 978983 +361128 892617 +361131 794767 +361142 966989 +361156 970581 +361161 983167 +361169 867664 +361194 921358 +361197 800739 +361219 794292 +361222 786864 +361222 834925 +361275 889858 +361294 774206 +361306 824247 +361319 787569 +361325 885186 +361342 901597 +361344 806597 +361350 816778 +361350 1.11239e+06 +361397 961086 +361397 1.20359e+06 +361450 824169 +361456 1.1906e+06 +361458 811608 +361475 852683 +361481 989239 +361497 992978 +361511 955092 +361533 888006 +361536 856436 +361539 959925 +361542 837042 +361544 1.09552e+06 +361572 819783 +361583 811478 +361628 855017 +361631 818717 +361631 828311 +361661 948544 +361714 811942 +361725 859297 +361750 1.15136e+06 +361772 873397 +361778 942333 +361808 776669 +361858 953428 +361867 941286 +361869 903831 +361881 945403 +361889 957456 +361894 829586 +361900 764664 +361931 896556 +361956 840681 +361958 854486 +361961 820706 +361983 811531 +361983 1.01192e+06 +361989 1.15117e+06 +362000 865186 +362000 951675 +362022 802811 +362022 890122 +362025 911744 +362028 1.20102e+06 +362031 891908 +362031 1.19087e+06 +362061 942342 +362078 1.19346e+06 +362086 799050 +362128 1.21125e+06 +362136 886125 +362139 832950 +362164 805128 +362167 816747 +362178 841547 +362189 764642 +362211 919292 +362239 916083 +362261 926847 +362272 808336 +362294 771144 +362297 931075 +362325 807083 +362333 888244 +362336 897494 +362339 897694 +362361 900556 +362369 799797 +362381 963164 +362392 808447 +362403 802936 +362419 859519 +362419 959756 +362442 808486 +362506 837975 +362522 859517 +362553 941306 +362569 830861 +362586 831953 +362589 891917 +362614 909711 +362631 902925 +362633 894878 +362642 946928 +362650 1.01406e+06 +362675 944844 +362689 984794 +362694 958544 +362711 925353 +362739 772847 +362742 870642 +362758 998808 +362789 925969 +362803 978978 +362806 803594 +362808 835150 +362831 924939 +362842 821728 +362867 769850 +362894 972878 +362914 887081 +362928 951531 +362942 824736 +362953 801419 +362961 1.19141e+06 +362972 959911 +362972 970078 +362978 1.19206e+06 +362989 842233 +363008 1.19782e+06 +363019 762236 +363019 883267 +363047 866200 +363064 821933 +363075 975861 +363081 784069 +363100 964639 +363106 785911 +363119 877733 +363125 956158 +363133 823536 +363156 997572 +363158 914825 +363158 1.19708e+06 +363183 876947 +363200 906019 +363208 1.21243e+06 +363231 867133 +363275 1.19645e+06 +363294 783994 +363300 841839 +363303 1.19291e+06 +363314 772131 +363319 941183 +363353 934358 +363358 944606 +363361 1.02072e+06 +363378 968036 +363386 891639 +363417 783903 +363433 888503 +363486 822108 +363511 1.19419e+06 +363528 1.09617e+06 +363547 796647 +363556 856589 +363586 1.05609e+06 +363611 1.04595e+06 +363628 907536 +363644 958386 +363647 935678 +363683 960011 +363722 822258 +363728 942086 +363783 894719 +363808 848844 +363828 841200 +363828 901906 +363833 853231 +363839 925814 +363853 799597 +363864 804697 +363872 1.19217e+06 +363875 980894 +363883 864467 +363908 861672 +363911 950464 +363922 824117 +363936 789831 +363950 867794 +363956 769322 +363956 807228 +363956 978781 +363983 781556 +363992 900236 +364000 1.00802e+06 +364011 937378 +364036 814931 +364039 793364 +364053 984403 +364072 830056 +364072 1.05572e+06 +364078 905797 +364122 799672 +364142 963950 +364158 776033 +364169 1.09228e+06 +364181 826239 +364197 824767 +364203 814736 +364211 947967 +364219 944533 +364242 890569 +364247 1.21325e+06 +364253 896994 +364269 775958 +364333 1.19686e+06 +364336 993900 +364339 1.00141e+06 +364344 779122 +364356 978686 +364367 952711 +364369 772292 +364369 975853 +364392 992044 +364394 824558 +364422 770989 +364425 835997 +364442 883344 +364456 781986 +364508 775592 +364511 776797 +364517 899669 +364517 1.03184e+06 +364519 899192 +364533 1.00537e+06 +364542 835694 +364614 776544 +364639 950475 +364644 929200 +364664 799072 +364703 866514 +364708 828519 +364742 822611 +364744 818050 +364761 1.19442e+06 +364778 825933 +364797 1.21731e+06 +364850 825033 +364878 878383 +364883 797669 +364900 774417 +364933 900750 +364956 915406 +364981 845128 +364992 806075 +365003 776453 +365003 806267 +365008 888753 +365042 888742 +365050 1.01782e+06 +365053 811211 +365067 1.21443e+06 +365092 868850 +365108 1.04915e+06 +365139 1.19553e+06 +365147 946111 +365189 896125 +365211 860264 +365222 827136 +365225 939394 +365233 1.19286e+06 +365244 915381 +365289 974436 +365297 832175 +365297 873594 +365303 959233 +365331 823269 +365333 858500 +365356 954322 +365428 1.19832e+06 +365433 1.14446e+06 +365433 1.19386e+06 +365450 1.19286e+06 +365456 944850 +365461 963269 +365461 982697 +365483 824558 +365483 825619 +365486 866961 +365500 855053 +365556 824681 +365569 899664 +365619 862481 +365619 961614 +365681 896006 +365708 1.19611e+06 +365711 891861 +365736 967039 +365736 995719 +365744 851289 +365753 906039 +365769 825678 +365789 984619 +365817 865164 +365822 870656 +365822 988794 +365831 772003 +365844 824894 +365858 793953 +365864 895278 +365878 841269 +365886 793664 +365914 825736 +365922 896153 +365933 1.21834e+06 +365936 947689 +365944 943839 +365950 821889 +365953 1.01636e+06 +365958 902472 +365964 821886 +365964 1.19449e+06 +366003 1.21894e+06 +366031 924281 +366061 1.18062e+06 +366067 1.20188e+06 +366103 883147 +366111 1.21851e+06 +366117 1.19526e+06 +366136 898164 +366208 908233 +366211 932153 +366222 811511 +366244 1.19313e+06 +366283 799511 +366306 1.19678e+06 +366336 817839 +366378 825811 +366386 951539 +366408 802658 +366422 887389 +366436 932183 +366483 871664 +366503 1.1979e+06 +366506 944433 +366508 844386 +366592 1.19593e+06 +366611 809242 +366672 889933 +366675 868519 +366678 963369 +366689 899686 +366692 978008 +366722 939408 +366769 938686 +366775 769228 +366778 1.21654e+06 +366783 973097 +366828 1.01481e+06 +366844 1.21801e+06 +366850 931197 +366858 775428 +366889 831111 +366906 975561 +366908 851347 +366914 798728 +366936 949628 +366942 913992 +366986 789017 +366989 844775 +367000 781000 +367000 799389 +367006 956378 +367022 856917 +367039 1.05594e+06 +367069 970853 +367081 1.19555e+06 +367097 819775 +367097 998931 +367106 1.19758e+06 +367111 1.07984e+06 +367133 788289 +367150 799156 +367161 770683 +367161 809789 +367222 865772 +367233 844706 +367236 1.20059e+06 +367264 781292 +367278 1.10254e+06 +367281 765839 +367281 918522 +367281 1.08218e+06 +367286 809992 +367294 1.02513e+06 +367342 1.08359e+06 +367417 886367 +367417 943989 +367433 841597 +367472 959806 +367478 1.19771e+06 +367511 948472 +367533 861906 +367536 1.20381e+06 +367544 983564 +367569 903928 +367575 778472 +367583 830272 +367592 799906 +367592 895867 +367619 836950 +367625 807350 +367628 940558 +367647 882953 +367658 789286 +367658 1.21757e+06 +367758 873556 +367786 956392 +367797 893856 +367819 966608 +367856 1.08686e+06 +367892 815822 +367903 853706 +367911 817714 +367958 899578 +367958 959353 +367983 816825 +367992 784586 +368044 972825 +368050 986661 +368069 977333 +368083 767444 +368097 1.02255e+06 +368100 871542 +368125 898614 +368142 774686 +368161 1.00519e+06 +368172 939206 +368222 1.07992e+06 +368253 1.19702e+06 +368256 793983 +368347 815150 +368353 762986 +368356 996300 +368406 763106 +368414 946108 +368431 833219 +368453 868872 +368456 1.21537e+06 +368467 762856 +368472 896853 +368486 832192 +368519 833542 +368525 1.21401e+06 +368528 759783 +368572 883503 +368589 1.20455e+06 +368600 1.01213e+06 +368642 867103 +368650 878353 +368656 874886 +368658 831906 +368664 838889 +368672 814236 +368689 943678 +368706 890097 +368736 950956 +368744 948772 +368767 895878 +368817 827472 +368822 970531 +368833 979217 +368858 899292 +368900 822797 +368914 895383 +368936 812761 +368942 817769 +368975 959258 +369008 820803 +369031 1.06579e+06 +369033 1.04439e+06 +369042 1.21748e+06 +369053 935714 +369067 827819 +369069 1.00539e+06 +369086 1.11473e+06 +369094 894525 +369103 1.21756e+06 +369172 948794 +369192 942550 +369208 893506 +369289 939275 +369333 826292 +369333 948728 +369336 1.06998e+06 +369353 1.21772e+06 +369367 1.21864e+06 +369439 824642 +369444 940042 +369456 1.12526e+06 +369483 810850 +369486 840969 +369497 901583 +369519 926603 +369536 793592 +369542 1.01065e+06 +369544 947878 +369606 840933 +369608 1.21963e+06 +369614 1.2006e+06 +369619 781253 +369639 937956 +369647 829486 +369647 890892 +369661 829225 +369683 1.21899e+06 +369708 937178 +369742 1.2203e+06 +369753 1.21952e+06 +369758 825758 +369772 1.21898e+06 +369781 829886 +369783 822978 +369786 764283 +369800 856122 +369847 850631 +369861 1.20626e+06 +369869 948306 +369881 1.21956e+06 +369889 846000 +369903 864436 +369911 914925 +369922 919697 +369928 786014 +369944 956200 +369947 782275 +369953 917036 +369953 943158 +369956 910144 +369958 859119 +369975 798922 +370011 930814 +370031 936372 +370053 891764 +370058 1.21567e+06 +370081 1.0189e+06 +370097 913233 +370114 959350 +370161 819744 +370172 984850 +370175 885314 +370208 932058 +370236 898197 +370297 763456 +370303 934728 +370322 976067 +370333 883500 +370358 770956 +370369 944967 +370372 950897 +370372 956161 +370403 784836 +370406 944725 +370431 1.00921e+06 +370433 932942 +370436 896103 +370475 1.12526e+06 +370478 807800 +370478 874850 +370500 789444 +370511 1.22014e+06 +370514 1.22072e+06 +370517 890467 +370525 862078 +370561 850886 +370564 786386 +370583 1.20849e+06 +370589 881325 +370597 953592 +370619 970381 +370625 817519 +370667 766767 +370675 935519 +370692 941164 +370758 946394 +370767 889736 +370767 944592 +370803 779975 +370833 886000 +370836 944133 +370842 945131 +370850 896553 +370850 1.21609e+06 +370853 891625 +370869 818553 +370892 1.22085e+06 +370919 846042 +370925 792967 +370931 817939 +370939 860464 +370944 880803 +371028 853064 +371036 938183 +371042 965000 +371042 1.13583e+06 +371044 899106 +371056 806856 +371067 925806 +371092 878819 +371117 792858 +371142 891978 +371147 815197 +371150 1.07632e+06 +371156 933700 +371169 930556 +371183 828269 +371200 934800 +371222 763461 +371231 1.20259e+06 +371236 826014 +371236 886303 +371239 921011 +371261 1.22121e+06 +371267 961867 +371289 840833 +371297 804092 +371306 922633 +371306 1.13508e+06 +371306 1.21653e+06 +371331 1.13653e+06 +371367 859569 +371389 884033 +371425 945106 +371464 927686 +371464 944628 +371492 944428 +371500 824561 +371506 913575 +371511 887319 +371533 980308 +371536 837619 +371544 906956 +371575 929406 +371658 872475 +371672 876925 +371675 951097 +371686 1.13679e+06 +371692 948439 +371694 1.045e+06 +371731 781236 +371733 826311 +371742 1.05937e+06 +371753 1.01349e+06 +371753 1.13289e+06 +371764 943100 +371767 945653 +371769 846358 +371792 916567 +371794 859069 +371800 896550 +371836 873836 +371875 782017 +371883 944700 +371886 997653 +371903 952969 +371908 874528 +371967 897361 +372008 1.05423e+06 +372011 871789 +372011 1.13269e+06 +372014 994836 +372064 888447 +372075 826719 +372081 880567 +372147 938397 +372153 932981 +372167 895244 +372175 870489 +372197 895089 +372242 957081 +372256 866836 +372256 1.07598e+06 +372267 1.21974e+06 +372275 800131 +372278 774022 +372303 774778 +372322 820992 +372350 892700 +372364 1.21991e+06 +372367 874753 +372369 871592 +372397 969953 +372400 774303 +372414 982264 +372417 909686 +372422 784600 +372494 831933 +372508 925103 +372525 812714 +372539 764972 +372578 1.20998e+06 +372583 1.05904e+06 +372608 854989 +372639 1.22022e+06 +372653 973714 +372658 977653 +372678 760178 +372683 931169 +372689 993264 +372694 1.07009e+06 +372697 812225 +372703 955522 +372706 767078 +372708 799417 +372722 858911 +372742 875119 +372742 971686 +372750 1.0596e+06 +372753 1.07879e+06 +372769 891833 +372775 948247 +372778 820992 +372808 798972 +372811 985800 +372856 1.0034e+06 +372867 980256 +372872 1.21949e+06 +372894 759717 +372908 1.20318e+06 +372936 889753 +372939 871233 +372992 862286 +373003 899811 +373011 816911 +373019 783922 +373022 1.20482e+06 +373039 823511 +373050 934283 +373058 895181 +373058 899703 +373100 947717 +373125 812600 +373128 967539 +373139 1.2102e+06 +373153 935850 +373194 806392 +373206 792578 +373231 1.22031e+06 +373250 813119 +373261 919558 +373264 807353 +373281 874989 +373281 1.19648e+06 +373314 808114 +373325 827211 +373328 880811 +373339 869961 +373342 795233 +373353 1.21894e+06 +373358 814367 +373358 829806 +373361 943011 +373386 929069 +373403 952608 +373411 799433 +373433 853419 +373442 867547 +373450 1.08289e+06 +373458 948086 +373475 1.21268e+06 +373489 1.08585e+06 +373539 812528 +373567 774419 +373569 788256 +373603 963036 +373611 891658 +373636 815503 +373636 1.18394e+06 +373661 811028 +373661 1.21826e+06 +373672 884864 +373689 1.22035e+06 +373783 798072 +373797 1.22136e+06 +373819 869225 +373822 808228 +373822 896661 +373839 931511 +373842 1.22234e+06 +373856 939531 +373856 1.00195e+06 +373861 1.02278e+06 +373869 1.20722e+06 +373875 971139 +373894 1.20612e+06 +373903 976419 +373931 940936 +373939 972808 +373972 807994 +374019 868758 +374028 1.04653e+06 +374042 844139 +374083 1.02614e+06 +374108 947047 +374111 935494 +374136 791425 +374153 888978 +374153 938408 +374158 872656 +374183 956800 +374200 812433 +374208 814403 +374217 774378 +374222 810164 +374236 883461 +374242 864883 +374256 815069 +374283 1.21906e+06 +374300 1.22253e+06 +374303 839981 +374308 791233 +374322 1.20778e+06 +374328 815847 +374372 1.01972e+06 +374419 1.22142e+06 +374433 1.00015e+06 +374450 828053 +374450 871439 +374511 869092 +374517 892681 +374539 1.22181e+06 +374556 912094 +374556 946889 +374603 892469 +374614 1.22197e+06 +374636 1.22428e+06 +374644 818139 +374644 845067 +374650 858933 +374689 1.2214e+06 +374694 1.05869e+06 +374703 962633 +374717 1.21129e+06 +374739 1.08504e+06 +374744 972436 +374747 758586 +374767 878200 +374783 816536 +374792 825189 +374800 862939 +374817 1.00843e+06 +374850 1.19965e+06 +374861 1.22233e+06 +374931 871319 +374931 954700 +374947 1.20846e+06 +374950 942764 +374953 862214 +374994 918569 +375019 928208 +375028 975042 +375028 1.22468e+06 +375050 1.05007e+06 +375111 948378 +375178 876903 +375203 1.22275e+06 +375239 956611 +375264 1.20796e+06 +375272 796800 +375275 1.22512e+06 +375297 1.22039e+06 +375311 846619 +375314 767967 +375314 892533 +375317 758233 +375339 958264 +375389 872583 +375422 1.22515e+06 +375428 784575 +375439 947000 +375456 972686 +375458 773281 +375467 879839 +375472 996339 +375536 774606 +375544 889722 +375547 763372 +375569 946217 +375581 945197 +375583 971347 +375586 1.2227e+06 +375597 902939 +375631 1.22324e+06 +375658 973539 +375686 842964 +375697 852528 +375717 837069 +375728 827528 +375739 857400 +375742 1.22378e+06 +375792 1.06148e+06 +375808 774072 +375814 1.01355e+06 +375831 813806 +375831 815372 +375842 1.22365e+06 +375850 790517 +375867 847939 +375881 906289 +375900 775567 +375914 805439 +375950 1.20957e+06 +375958 816361 +375958 1.00443e+06 +375969 1.20865e+06 +375972 906272 +375986 1.22386e+06 +376028 992922 +376036 774917 +376069 875286 +376075 774772 +376133 779050 +376142 818667 +376144 934103 +376150 1.14511e+06 +376194 845781 +376194 888367 +376194 991061 +376211 906403 +376219 821633 +376242 1.0478e+06 +376242 1.09478e+06 +376264 894978 +376300 977822 +376306 1.2241e+06 +376339 794506 +376353 854008 +376361 867175 +376375 765747 +376414 1.20759e+06 +376439 930922 +376439 984308 +376439 987372 +376453 836489 +376456 847722 +376456 915358 +376458 981133 +376486 1.18971e+06 +376547 1.22407e+06 +376578 855911 +376583 976833 +376597 975750 +376614 764194 +376625 1.21874e+06 +376656 827717 +376658 775067 +376719 822842 +376739 808894 +376742 822775 +376775 1.13061e+06 +376789 812106 +376789 1.06353e+06 +376792 954569 +376806 926636 +376808 1.22399e+06 +376811 1.22123e+06 +376819 1.21767e+06 +376831 868714 +376833 879167 +376844 839531 +376853 852222 +376867 979764 +376881 972633 +376903 967819 +376908 757164 +376919 816242 +376922 973372 +376939 858592 +376942 1.22085e+06 +376947 1.22113e+06 +376989 937958 +377006 839739 +377022 1.21935e+06 +377033 822811 +377075 812508 +377103 763800 +377106 821842 +377117 757494 +377131 881867 +377139 971361 +377153 911350 +377194 756658 +377203 1.22526e+06 +377242 898611 +377250 1.22155e+06 +377258 806422 +377272 892167 +377306 818381 +377306 889331 +377339 883433 +377342 793542 +377347 812997 +377361 1.20934e+06 +377383 885406 +377397 818778 +377397 1.21424e+06 +377406 812308 +377417 1.21123e+06 +377431 811231 +377433 877039 +377478 842947 +377497 804631 +377519 890678 +377525 830689 +377528 1.00017e+06 +377531 1.06108e+06 +377533 847667 +377583 812128 +377589 774803 +377600 890772 +377622 848433 +377644 893350 +377661 1.08905e+06 +377667 1.20846e+06 +377692 906247 +377703 1.11601e+06 +377708 812086 +377733 1.13024e+06 +377739 890264 +377742 871133 +377750 1.22418e+06 +377753 879306 +377781 811883 +377792 964669 +377792 975361 +377800 864606 +377800 980194 +377800 1.21977e+06 +377806 804572 +377808 904217 +377814 891192 +377819 756539 +377831 812661 +377839 794431 +377889 971083 +377906 976292 +377931 819878 +377933 799942 +377944 935778 +377964 802978 +377975 797914 +377975 969994 +377975 1.20996e+06 +377975 1.21215e+06 +377992 882611 +378000 973181 +378017 804458 +378031 890275 +378044 1.2227e+06 +378067 1.00348e+06 +378092 854669 +378100 859814 +378106 954367 +378119 1.07664e+06 +378133 820247 +378136 884381 +378144 828072 +378158 811525 +378161 798247 +378172 968619 +378175 892278 +378206 889275 +378217 1.21999e+06 +378228 1.12435e+06 +378228 1.21276e+06 +378239 962889 +378242 820597 +378244 1.22231e+06 +378261 759919 +378286 922006 +378314 1.22284e+06 +378331 891428 +378333 866328 +378344 857319 +378347 973731 +378361 811350 +378361 875900 +378364 812019 +378367 905328 +378392 943544 +378397 947081 +378403 859492 +378406 886092 +378422 1.12827e+06 +378436 824094 +378456 838583 +378486 819936 +378492 1.06926e+06 +378500 997564 +378503 904986 +378503 1.22031e+06 +378511 905206 +378567 924050 +378589 808544 +378592 839186 +378592 1.22484e+06 +378619 846617 +378667 819867 +378672 905931 +378686 976647 +378714 1.09342e+06 +378717 1.22272e+06 +378728 905278 +378736 1.22456e+06 +378769 891144 +378772 1.22179e+06 +378803 862839 +378806 845731 +378811 957331 +378831 870494 +378858 1.22117e+06 +378869 1.22297e+06 +378883 894947 +378967 981783 +378978 889314 +378989 977825 +378994 890519 +379000 867550 +379061 1.22544e+06 +379064 1.22064e+06 +379086 881292 +379094 1.22685e+06 +379100 892358 +379103 853167 +379106 1.22279e+06 +379114 867444 +379136 898219 +379142 919025 +379161 951700 +379167 974222 +379169 952989 +379175 887622 +379214 832597 +379231 905553 +379231 994094 +379236 953458 +379244 953997 +379253 768594 +379256 1.22526e+06 +379331 753792 +379358 1.22347e+06 +379361 992522 +379364 907878 +379369 859917 +379369 869022 +379375 1.07812e+06 +379389 970194 +379403 918808 +379406 1.01254e+06 +379444 874053 +379481 1.2206e+06 +379489 922636 +379508 836258 +379514 867678 +379514 917711 +379533 1.20422e+06 +379578 1.2129e+06 +379586 767583 +379622 986003 +379622 1.22344e+06 +379631 806897 +379647 971472 +379681 913547 +379686 807672 +379717 1.00872e+06 +379725 890533 +379736 820175 +379736 838419 +379736 1.21694e+06 +379736 1.2253e+06 +379747 758342 +379747 815292 +379747 875558 +379747 1.22561e+06 +379772 1.22294e+06 +379781 1.2203e+06 +379797 1.01133e+06 +379806 1.01752e+06 +379811 883292 +379831 890161 +379833 758542 +379839 895894 +379842 1.20381e+06 +379850 1.03543e+06 +379861 1.00989e+06 +379872 1.22588e+06 +379883 857158 +379900 841797 +379917 920936 +379942 838878 +379953 867978 +379967 889200 +379969 1.03531e+06 +379975 1.21711e+06 +379978 1.20269e+06 +379989 861694 +379994 859436 +380014 975083 +380044 1.22298e+06 +380050 1.21805e+06 +380072 896583 +380081 927444 +380128 1.22644e+06 +380144 1.03628e+06 +380147 870364 +380150 1.21639e+06 +380153 890425 +380164 896186 +380172 1.22288e+06 +380228 1.07671e+06 +380239 976694 +380250 780044 +380269 1.21936e+06 +380281 979400 +380281 1.21884e+06 +380292 784769 +380300 790339 +380317 853425 +380331 1.22266e+06 +380372 848967 +380397 1.20232e+06 +380467 937042 +380467 973447 +380492 872742 +380494 773469 +380494 1.22158e+06 +380500 855458 +380522 1.02122e+06 +380525 847300 +380528 811042 +380564 839433 +380608 979294 +380628 914033 +380633 785028 +380639 1.0231e+06 +380667 1.03222e+06 +380669 818194 +380672 1.17229e+06 +380683 788897 +380694 787008 +380722 973453 +380756 755683 +380786 793833 +380803 893819 +380808 818342 +380831 900958 +380839 956342 +380844 998931 +380864 831264 +380872 1.0262e+06 +380875 1.06094e+06 +380903 899383 +380903 922925 +380908 881586 +380917 890503 +380933 885356 +380989 813242 +380992 875789 +380994 883375 +381042 1.22256e+06 +381050 857589 +381075 1.22569e+06 +381089 788578 +381111 858703 +381142 826033 +381161 825958 +381169 784419 +381200 869142 +381231 897017 +381236 857197 +381292 1.04023e+06 +381297 879350 +381303 1.21271e+06 +381344 977697 +381356 961356 +381361 810997 +381372 781881 +381375 1.20459e+06 +381378 892300 +381383 974311 +381400 937267 +381411 856878 +381428 948133 +381450 841114 +381472 980833 +381494 790719 +381503 926178 +381506 812875 +381522 1.21242e+06 +381542 1.213e+06 +381547 912439 +381558 1.2169e+06 +381597 855878 +381597 874483 +381600 856597 +381617 880653 +381619 834289 +381619 1.21611e+06 +381636 1.21149e+06 +381683 811950 +381689 869900 +381694 971064 +381700 877831 +381769 753931 +381778 947111 +381783 857097 +381803 813286 +381806 990983 +381811 813072 +381864 896056 +381867 919469 +381869 813656 +381875 877103 +381906 940292 +381942 855644 +381944 957425 +381950 856519 +381961 872967 +381961 1.20679e+06 +381969 856633 +381981 886844 +382000 858228 +382008 848733 +382019 790086 +382028 756928 +382031 975189 +382039 857253 +382050 875742 +382081 911603 +382097 842531 +382100 813842 +382100 982067 +382117 899942 +382119 852236 +382119 861219 +382119 896825 +382125 857403 +382142 856139 +382142 1.12923e+06 +382153 814247 +382181 814431 +382181 1.03756e+06 +382183 1.08568e+06 +382206 903958 +382211 903789 +382214 824425 +382225 853553 +382233 800947 +382239 868622 +382247 805333 +382289 856775 +382319 815378 +382319 977731 +382322 905628 +382325 1.22636e+06 +382369 859858 +382383 1.22039e+06 +382403 855242 +382431 933817 +382444 969278 +382453 781111 +382453 815672 +382456 870361 +382494 1.22039e+06 +382500 897500 +382511 875811 +382522 855922 +382542 857594 +382544 769639 +382544 1.04609e+06 +382547 856314 +382547 1.21299e+06 +382567 856017 +382575 879936 +382586 943303 +382614 856292 +382667 764542 +382667 855331 +382672 788261 +382678 856717 +382683 903800 +382694 1.08547e+06 +382717 846864 +382719 876878 +382722 855836 +382731 856231 +382739 856344 +382750 856150 +382769 1.1264e+06 +382786 821031 +382794 856500 +382806 952417 +382811 808528 +382825 855744 +382833 855911 +382833 903950 +382856 821958 +382856 858242 +382858 917203 +382911 766361 +382919 1.22457e+06 +382944 903158 +382972 856033 +382972 1.22284e+06 +382978 1.22491e+06 +382989 869550 +383000 831742 +383003 765078 +383017 916328 +383019 841475 +383028 855961 +383050 899942 +383056 856964 +383083 959556 +383106 854875 +383119 840275 +383139 1.22481e+06 +383150 919225 +383167 866958 +383172 889031 +383175 815211 +383219 756206 +383225 752181 +383239 774686 +383239 1.21821e+06 +383264 898769 +383269 1.22706e+06 +383294 891908 +383306 806533 +383308 887258 +383322 874453 +383325 829486 +383336 856536 +383344 864642 +383358 901497 +383364 750853 +383386 873450 +383397 1.227e+06 +383422 862761 +383436 893806 +383450 856156 +383450 982014 +383453 885878 +383456 915014 +383483 925814 +383483 970169 +383489 1.20773e+06 +383497 816328 +383500 947611 +383517 859417 +383519 972042 +383528 1.20932e+06 +383550 983492 +383553 875675 +383556 985806 +383567 1.21987e+06 +383606 755997 +383606 817375 +383642 1.22523e+06 +383644 987644 +383683 816997 +383700 851806 +383708 976639 +383722 965425 +383756 863447 +383775 880561 +383819 789769 +383819 975372 +383822 872128 +383861 974278 +383903 842942 +383903 1.05118e+06 +383908 933344 +383911 753489 +383914 869311 +383931 1.20801e+06 +383939 956028 +383953 754133 +383964 825589 +383969 1.1301e+06 +383975 943514 +383981 857550 +383981 980117 +383989 825783 +383997 913306 +384000 1.05217e+06 +384017 1.2236e+06 +384028 942536 +384039 961814 +384047 826006 +384069 875856 +384075 853789 +384078 786239 +384078 861100 +384086 899919 +384089 1.21371e+06 +384094 805581 +384094 822947 +384108 877614 +384147 789389 +384147 818442 +384167 958528 +384178 825864 +384192 824453 +384200 756881 +384200 820556 +384222 837339 +384275 899136 +384278 824572 +384292 1.05219e+06 +384314 928408 +384325 820203 +384328 903775 +384333 851697 +384342 895503 +384344 821325 +384364 1.22869e+06 +384369 823772 +384392 891628 +384406 1.22713e+06 +384408 929917 +384417 892742 +384428 814806 +384436 902011 +384456 910056 +384494 788692 +384528 999061 +384531 856703 +384558 755778 +384564 755775 +384597 940006 +384600 932025 +384603 752211 +384603 810853 +384614 900917 +384656 1.23008e+06 +384697 1.01752e+06 +384722 818144 +384731 779969 +384783 826381 +384783 1.07876e+06 +384794 946083 +384797 1.01358e+06 +384806 1.02781e+06 +384808 767783 +384817 943542 +384819 907414 +384819 1.00467e+06 +384819 1.20844e+06 +384825 1.00907e+06 +384850 786253 +384858 918503 +384886 813483 +384889 921742 +384897 766825 +384903 816475 +384903 897931 +384903 904869 +384919 872786 +384925 826903 +384961 1.21408e+06 +384972 949503 +385019 1.22995e+06 +385025 906278 +385033 826472 +385069 962617 +385086 906025 +385089 891406 +385094 818400 +385131 904358 +385158 884375 +385161 902103 +385172 752353 +385172 826978 +385181 987778 +385200 899839 +385208 880047 +385222 772939 +385225 827172 +385247 1.18624e+06 +385250 891333 +385250 985333 +385250 1.2197e+06 +385267 877097 +385314 993083 +385322 935219 +385325 767842 +385333 902869 +385339 899889 +385347 1.05998e+06 +385364 848419 +385364 859286 +385367 826831 +385369 903797 +385375 819325 +385386 903350 +385389 904072 +385400 827286 +385403 765847 +385411 902800 +385417 857678 +385419 902328 +385425 757197 +385433 896122 +385450 1.21739e+06 +385458 1.06925e+06 +385467 773369 +385489 866200 +385492 904925 +385503 827781 +385506 903331 +385531 903094 +385536 895383 +385542 903450 +385556 978333 +385561 864683 +385564 755717 +385569 903817 +385581 910119 +385594 835761 +385611 941911 +385614 898972 +385631 760792 +385672 866283 +385675 773283 +385708 901900 +385722 948789 +385731 828303 +385733 1.09549e+06 +385736 976742 +385753 771558 +385753 785028 +385758 1.22449e+06 +385767 921733 +385789 1.22579e+06 +385806 1.21529e+06 +385817 1.21493e+06 +385831 936944 +385833 901250 +385833 904067 +385869 984108 +385892 1.21302e+06 +385897 901200 +385903 769406 +385903 903367 +385908 822831 +385914 752917 +385922 899111 +385925 853178 +385925 903572 +385925 905869 +385950 905461 +385969 905092 +385992 833189 +386000 771625 +386008 904328 +386039 898072 +386050 1.07982e+06 +386056 894358 +386056 896819 +386067 896075 +386067 1.21266e+06 +386072 903833 +386075 903783 +386083 912189 +386086 771408 +386103 893725 +386106 895269 +386106 1.22868e+06 +386122 904633 +386125 903244 +386131 787992 +386153 873544 +386156 891142 +386156 952675 +386158 838086 +386172 890522 +386172 1.21327e+06 +386175 819819 +386175 903492 +386183 905892 +386194 946806 +386242 758547 +386244 769394 +386269 770733 +386269 889456 +386275 925664 +386283 910575 +386286 903194 +386300 1.1212e+06 +386339 958256 +386350 900928 +386356 756103 +386356 904150 +386367 900256 +386369 773114 +386381 845606 +386389 787742 +386403 921222 +386411 756114 +386411 837444 +386425 903236 +386450 828489 +386478 786717 +386497 900931 +386497 903806 +386514 862611 +386533 943486 +386556 837611 +386556 927797 +386581 772500 +386592 871728 +386608 904225 +386611 964917 +386617 864264 +386636 873094 +386644 807100 +386653 784597 +386653 903758 +386658 1.20925e+06 +386664 867911 +386675 770286 +386689 884856 +386703 899844 +386711 969422 +386722 901697 +386728 902992 +386731 807750 +386753 917694 +386764 1.21335e+06 +386767 843303 +386769 869142 +386772 875286 +386772 1.23134e+06 +386781 1.21175e+06 +386786 1.21225e+06 +386800 930928 +386808 851794 +386819 845900 +386822 1.047e+06 +386825 840658 +386825 901569 +386828 1.12148e+06 +386833 902839 +386833 903078 +386858 903239 +386858 1.21371e+06 +386861 765350 +386864 761719 +386886 883542 +386900 753858 +386900 903425 +386906 902872 +386911 1.21448e+06 +386922 1.22016e+06 +386931 902822 +386942 757739 +386947 902783 +386947 1.20814e+06 +386953 903139 +386967 768481 +386975 882236 +387000 902922 +387008 903497 +387011 903622 +387014 901486 +387019 903169 +387025 903433 +387042 772281 +387042 902817 +387042 914372 +387044 932281 +387058 877600 +387072 765314 +387072 1.2128e+06 +387078 770864 +387083 902928 +387106 902981 +387111 981569 +387131 904297 +387133 777956 +387142 854736 +387142 939911 +387144 903672 +387169 878614 +387175 902656 +387183 902922 +387183 950814 +387192 902603 +387192 944583 +387203 920911 +387208 750764 +387208 829583 +387208 902747 +387236 853694 +387236 899558 +387239 770100 +387253 902967 +387264 903586 +387275 903108 +387292 876817 +387292 898831 +387297 1.20798e+06 +387303 828556 +387306 982278 +387308 880853 +387314 799703 +387317 829978 +387317 900803 +387328 763939 +387358 853800 +387358 903639 +387383 771853 +387394 896711 +387400 903264 +387403 902264 +387422 1.08068e+06 +387425 756047 +387431 948253 +387442 903061 +387456 838450 +387458 786425 +387467 1.05178e+06 +387469 902400 +387475 770833 +387478 850672 +387483 899831 +387494 902856 +387508 774756 +387517 769789 +387522 829369 +387544 903311 +387547 828689 +387553 890953 +387553 950022 +387583 830292 +387583 858081 +387594 874156 +387614 1.20586e+06 +387628 937358 +387647 903136 +387647 950078 +387650 768986 +387650 935564 +387714 903708 +387717 840058 +387722 885025 +387725 772214 +387725 1.12083e+06 +387733 888467 +387742 760767 +387742 873078 +387744 751397 +387744 922569 +387750 951861 +387764 765556 +387775 753103 +387800 895981 +387806 955569 +387817 957383 +387819 771467 +387828 846053 +387833 849017 +387839 774700 +387861 829792 +387864 843697 +387864 897775 +387875 942692 +387878 902158 +387892 903225 +387908 1.21235e+06 +387931 774481 +387933 772719 +387933 902672 +387944 835453 +387956 967356 +387997 1.07719e+06 +388006 858417 +388019 813511 +388019 944525 +388033 769900 +388039 769069 +388042 772050 +388047 770472 +388061 871522 +388069 755917 +388072 753972 +388094 769983 +388097 822025 +388106 906997 +388108 949269 +388114 899531 +388114 908528 +388114 911414 +388119 945317 +388133 827269 +388139 769458 +388158 767500 +388183 771436 +388186 817108 +388186 956889 +388189 769989 +388208 785661 +388214 1.02353e+06 +388214 1.21192e+06 +388250 861700 +388250 984750 +388275 910200 +388278 895400 +388283 1.0797e+06 +388294 900628 +388300 768917 +388303 771967 +388328 769597 +388333 769519 +388336 821383 +388339 1.04821e+06 +388342 887722 +388389 774278 +388389 840964 +388403 976111 +388417 765125 +388422 1.06131e+06 +388428 869914 +388444 821372 +388450 768753 +388461 773067 +388467 919478 +388483 900761 +388517 943436 +388528 991472 +388533 913058 +388536 772597 +388561 806550 +388575 768897 +388589 961089 +388597 1.04917e+06 +388611 864872 +388611 900975 +388683 1.07591e+06 +388689 1.17921e+06 +388697 1.06987e+06 +388703 769214 +388711 874414 +388719 771556 +388747 929114 +388783 870858 +388789 860419 +388792 993264 +388794 823806 +388794 829969 +388803 901111 +388808 773011 +388814 948189 +388844 758275 +388850 769161 +388858 945328 +388875 765122 +388878 900847 +388883 897314 +388889 898453 +388906 901842 +388917 1.21292e+06 +388922 894131 +388933 772219 +388942 774314 +388950 770367 +388950 772119 +388953 988594 +388961 769069 +388964 871867 +388967 1.21076e+06 +388975 768306 +388978 1.01752e+06 +388983 900067 +389008 769158 +389008 865253 +389011 772656 +389017 1.07926e+06 +389028 971167 +389061 958158 +389092 900406 +389103 914481 +389106 1.22609e+06 +389125 754283 +389128 772011 +389144 900858 +389172 972136 +389178 839833 +389181 781947 +389186 772314 +389194 973708 +389206 886614 +389208 768719 +389222 1.11933e+06 +389231 942439 +389233 810961 +389236 755781 +389236 768803 +389250 892689 +389258 798469 +389281 769161 +389292 768619 +389314 898389 +389331 769461 +389339 768969 +389342 771778 +389342 808378 +389350 749064 +389350 1.05016e+06 +389378 764603 +389381 769486 +389381 995603 +389386 749422 +389392 769342 +389400 764953 +389414 769653 +389419 835725 +389431 768925 +389431 769569 +389431 845442 +389433 950983 +389453 769519 +389458 846806 +389458 1.1997e+06 +389467 769314 +389478 758847 +389481 817611 +389486 842800 +389489 834058 +389494 848539 +389517 923339 +389519 765783 +389536 947333 +389558 769458 +389561 903597 +389578 1.11859e+06 +389581 762106 +389592 858903 +389592 989683 +389606 890936 +389636 769911 +389636 934147 +389658 770964 +389667 946167 +389683 874056 +389686 773414 +389686 777358 +389689 1.12323e+06 +389694 773864 +389697 768803 +389700 904314 +389703 769422 +389711 770767 +389711 819144 +389717 952350 +389722 970222 +389736 758053 +389736 927431 +389747 748339 +389775 915047 +389778 770078 +389781 1.22838e+06 +389783 764925 +389786 799497 +389792 949683 +389794 765308 +389794 909806 +389806 749083 +389806 769372 +389806 771006 +389819 749583 +389822 946706 +389833 935683 +389858 1.19162e+06 +389864 819736 +389886 769817 +389886 783589 +389892 870822 +389906 770264 +389908 881625 +389917 748153 +389925 791242 +389939 769108 +389939 802322 +389939 1.05056e+06 +389953 1.10161e+06 +389958 889528 +389972 907383 +389975 819742 +389975 844964 +389981 772886 +389989 846267 +389989 895736 +389992 939533 +390006 747997 +390011 1.21021e+06 +390017 766878 +390017 820489 +390019 879089 +390031 769722 +390036 774008 +390036 876128 +390039 819892 +390044 768758 +390053 877392 +390061 856236 +390061 1.11861e+06 +390067 767794 +390078 838086 +390086 944633 +390089 754661 +390100 1.21422e+06 +390122 897911 +390125 846047 +390131 1.047e+06 +390144 748819 +390150 941983 +390167 846008 +390167 962889 +390169 942814 +390172 927372 +390175 1.22057e+06 +390178 850589 +390178 946167 +390181 918969 +390203 1.20817e+06 +390217 820292 +390217 844400 +390222 946317 +390236 946933 +390242 1.22674e+06 +390250 799358 +390250 998792 +390253 844175 +390253 885697 +390256 770767 +390264 769744 +390272 845850 +390275 820339 +390275 839197 +390278 946556 +390283 842178 +390286 749389 +390286 968311 +390294 895242 +390297 843664 +390303 770728 +390306 975939 +390319 765031 +390331 844519 +390344 843903 +390347 769078 +390347 871658 +390356 845692 +390356 1.04297e+06 +390375 946319 +390381 770933 +390383 804675 +390397 769933 +390397 901406 +390406 946167 +390417 760667 +390428 899517 +390431 1.08552e+06 +390431 1.22915e+06 +390444 953944 +390453 821306 +390483 956778 +390508 747583 +390514 845817 +390517 845342 +390536 765694 +390542 840531 +390561 985361 +390569 849014 +390575 769361 +390594 845475 +390597 948833 +390611 948194 +390619 883797 +390619 887481 +390622 789697 +390633 813953 +390639 1.0855e+06 +390644 1.09181e+06 +390681 830144 +390694 872600 +390694 1.00232e+06 +390703 765456 +390708 898561 +390714 845322 +390719 844728 +390719 852519 +390719 915700 +390722 897272 +390725 937169 +390750 844472 +390756 770022 +390758 953931 +390761 769581 +390769 841769 +390775 846031 +390794 770733 +390825 748242 +390833 782183 +390836 845086 +390839 767006 +390839 771531 +390892 893906 +390908 848500 +390911 944153 +390914 844958 +390917 1.04872e+06 +390919 768181 +390919 1.08448e+06 +390925 845475 +390928 846128 +390928 898039 +390936 1.11132e+06 +390953 874058 +390956 1.21551e+06 +390964 796811 +390992 768486 +390997 945783 +391008 1.20952e+06 +391011 747181 +391042 958583 +391064 844789 +391069 764853 +391072 765714 +391081 769981 +391094 876564 +391097 944444 +391097 950875 +391103 1.0835e+06 +391111 769328 +391111 967058 +391128 844728 +391133 755422 +391133 850881 +391136 826114 +391142 946272 +391156 775639 +391175 900442 +391178 772528 +391181 755592 +391200 885433 +391200 903283 +391211 846064 +391211 851314 +391219 977064 +391222 1.04917e+06 +391231 931967 +391233 825331 +391244 843617 +391247 852892 +391250 869794 +391253 1.11818e+06 +391278 1.2155e+06 +391297 898194 +391300 945619 +391308 894919 +391308 1.23165e+06 +391317 755253 +391319 755328 +391325 941983 +391331 884719 +391333 1.00863e+06 +391342 939825 +391350 858133 +391361 959514 +391361 1.03469e+06 +391367 777150 +391367 847092 +391369 766986 +391394 765481 +391397 771756 +391406 1.21616e+06 +391417 949383 +391433 772017 +391444 891086 +391450 843744 +391453 771444 +391458 774172 +391458 926836 +391458 1.2159e+06 +391489 794983 +391489 1.21666e+06 +391492 767756 +391503 1.23207e+06 +391517 779825 +391522 800406 +391525 847481 +391531 770672 +391531 846372 +391533 746933 +391542 945467 +391547 1.22148e+06 +391553 1.11818e+06 +391567 906178 +391569 846133 +391581 755247 +391589 1.08728e+06 +391592 843072 +391597 825269 +391597 1.21748e+06 +391611 803522 +391611 894936 +391617 847492 +391619 844569 +391625 766250 +391631 871992 +391639 1.19766e+06 +391642 894636 +391653 865264 +391667 765083 +391667 907808 +391697 918828 +391744 901431 +391753 842944 +391758 855731 +391772 767433 +391783 873936 +391792 987889 +391831 766406 +391831 945925 +391836 965714 +391847 938797 +391856 781636 +391864 873017 +391872 844464 +391872 844881 +391889 955694 +391908 843636 +391908 990283 +391911 1.06817e+06 +391928 844006 +391950 946819 +391958 952081 +391964 755492 +392008 804044 +392014 859214 +392019 963047 +392022 836117 +392025 944922 +392039 945544 +392047 760517 +392047 844281 +392053 843947 +392058 894044 +392089 760669 +392094 810519 +392094 935175 +392103 921378 +392106 843672 +392122 1.11019e+06 +392128 941225 +392133 970053 +392144 1.22008e+06 +392150 844556 +392153 953125 +392172 766375 +392181 930689 +392183 845508 +392192 1.2106e+06 +392214 944511 +392217 817975 +392231 845869 +392272 928464 +392272 1.11053e+06 +392275 822025 +392281 843542 +392283 766167 +392300 1.21076e+06 +392311 844658 +392319 843783 +392336 845458 +392339 866250 +392342 922806 +392347 992978 +392353 816314 +392369 850947 +392378 946958 +392378 1.20026e+06 +392403 768397 +392417 748156 +392419 764483 +392425 916453 +392458 750356 +392464 824786 +392464 845836 +392475 1.14888e+06 +392478 881633 +392478 957061 +392483 888622 +392486 873819 +392486 949000 +392506 765208 +392508 803125 +392508 1.06292e+06 +392519 844703 +392544 767003 +392561 844181 +392564 893481 +392567 802925 +392581 758375 +392617 1.21015e+06 +392619 848200 +392631 886297 +392633 803200 +392636 816294 +392639 1.03692e+06 +392667 815617 +392672 767986 +392681 844133 +392681 845231 +392683 1.11636e+06 +392692 803125 +392708 938342 +392719 767322 +392725 776369 +392725 915744 +392728 793647 +392736 882436 +392739 815731 +392739 977717 +392775 745750 +392786 939767 +392797 898817 +392806 803447 +392850 809686 +392864 802564 +392867 867625 +392869 844853 +392883 772042 +392886 803061 +392889 778600 +392903 766125 +392906 756347 +392931 839889 +392931 1.03067e+06 +392950 778608 +392958 859508 +392964 807772 +392964 1.19775e+06 +392989 968306 +392992 879925 +392997 756050 +392997 842633 +393000 852222 +393011 892850 +393022 904069 +393025 936772 +393039 857714 +393047 925125 +393061 1.02269e+06 +393078 1.23798e+06 +393092 764753 +393092 772975 +393108 914883 +393111 949222 +393122 846506 +393142 745253 +393142 776281 +393175 745950 +393183 843689 +393194 884528 +393194 895719 +393200 765158 +393222 952667 +393233 777531 +393236 836911 +393267 1.10964e+06 +393269 815486 +393278 745039 +393281 1.20182e+06 +393292 821014 +393331 829825 +393342 764397 +393356 878819 +393372 854836 +393383 764800 +393392 942258 +393397 852044 +393403 744778 +393406 767225 +393408 800192 +393419 787569 +393419 911950 +393433 954600 +393436 902125 +393450 835531 +393483 796711 +393483 974458 +393489 1.10851e+06 +393508 866669 +393508 1.0171e+06 +393519 833828 +393522 1.12576e+06 +393544 841272 +393567 978408 +393575 1.00441e+06 +393578 780403 +393583 934956 +393597 1.11586e+06 +393600 843100 +393603 1.04596e+06 +393633 765208 +393639 1.21692e+06 +393642 744233 +393647 998417 +393672 767956 +393678 943619 +393689 821325 +393689 1.07032e+06 +393703 947822 +393706 909050 +393708 842133 +393714 862611 +393722 1.04856e+06 +393736 769681 +393739 803486 +393742 767228 +393761 771550 +393772 765400 +393794 812586 +393817 752203 +393869 945808 +393878 889606 +393889 890800 +393914 876936 +393917 797486 +393931 793733 +393939 964133 +393942 765239 +393950 865625 +393956 803003 +393958 1.01052e+06 +393978 821294 +393983 793819 +394014 766022 +394022 1.07211e+06 +394036 769506 +394039 758678 +394050 1.14778e+06 +394064 887900 +394097 1.23354e+06 +394100 743650 +394111 949014 +394119 747428 +394125 764639 +394125 1.21712e+06 +394142 774108 +394153 814550 +394167 953333 +394175 766214 +394183 924381 +394186 775039 +394194 767806 +394200 894556 +394228 765850 +394231 850128 +394233 931303 +394239 928014 +394272 752344 +394278 864283 +394283 744961 +394300 778044 +394311 916750 +394344 929381 +394347 845369 +394356 1.21537e+06 +394369 904031 +394381 992647 +394383 942039 +394389 986944 +394406 925450 +394408 789742 +394408 885947 +394433 896517 +394453 838286 +394456 795467 +394458 1.23804e+06 +394464 897808 +394486 764181 +394489 910514 +394494 757167 +394522 747281 +394561 779642 +394561 981058 +394564 879961 +394575 777492 +394586 822319 +394619 821819 +394625 802183 +394650 874500 +394653 957361 +394667 874139 +394694 762047 +394694 768297 +394717 796836 +394728 765233 +394733 827394 +394736 814792 +394736 922097 +394736 1.18776e+06 +394739 829108 +394783 745756 +394800 845519 +394808 844578 +394808 920011 +394811 766442 +394817 1.06038e+06 +394825 1.11495e+06 +394831 883728 +394839 903714 +394847 820792 +394850 801428 +394853 790450 +394861 750261 +394861 773522 +394886 836369 +394889 961697 +394919 872672 +394922 809039 +394950 798153 +394961 881761 +394967 1.21551e+06 +395008 851864 +395008 897678 +395022 985464 +395031 787689 +395031 820847 +395036 801669 +395050 946331 +395069 847453 +395081 915286 +395106 797986 +395114 821636 +395125 984333 +395128 802492 +395136 749250 +395139 1.21555e+06 +395144 764114 +395147 867939 +395161 843764 +395203 890489 +395206 744861 +395208 861678 +395214 857769 +395219 947697 +395222 954006 +395225 887536 +395236 871250 +395244 1.22192e+06 +395250 1.1159e+06 +395258 871125 +395286 746483 +395297 801169 +395297 840867 +395297 1.19813e+06 +395306 790178 +395308 758078 +395308 803436 +395331 773150 +395331 880222 +395347 1.07782e+06 +395350 1.19752e+06 +395358 763486 +395367 871058 +395381 897631 +395392 863692 +395400 824072 +395419 771083 +395425 1.10735e+06 +395464 750253 +395469 1.11455e+06 +395478 816397 +395483 817931 +395483 943297 +395486 1.07656e+06 +395489 892944 +395492 760919 +395500 860797 +395506 1.07324e+06 +395514 1.10387e+06 +395522 797981 +395522 842333 +395522 940406 +395528 879394 +395539 832569 +395581 801819 +395581 860953 +395589 843042 +395592 742436 +395600 760717 +395608 753628 +395631 951214 +395642 809961 +395656 896572 +395656 944478 +395658 789806 +395672 972783 +395675 848161 +395689 771772 +395708 976622 +395717 754675 +395728 1.07536e+06 +395731 742319 +395744 1.06097e+06 +395753 769961 +395778 755892 +395778 822378 +395853 914008 +395856 902519 +395864 1.0643e+06 +395869 937958 +395886 894144 +395900 789500 +395911 973986 +395917 895803 +395917 897464 +395917 899528 +395928 788336 +395950 751706 +395956 748819 +395994 886078 +395994 1.1081e+06 +396000 759417 +396006 778208 +396006 829461 +396011 1.05032e+06 +396019 748431 +396025 820883 +396028 809369 +396031 743406 +396036 933422 +396044 764781 +396047 761156 +396047 768503 +396047 822117 +396047 828292 +396050 833956 +396067 758336 +396078 908050 +396089 777047 +396092 854464 +396108 945992 +396111 876961 +396117 799047 +396128 863742 +396133 1.05016e+06 +396144 787753 +396172 1.0495e+06 +396203 900439 +396206 777592 +396228 872833 +396236 774111 +396247 890189 +396264 1.11439e+06 +396283 1.05049e+06 +396289 902189 +396294 799561 +396297 904561 +396300 1.11634e+06 +396314 1.06522e+06 +396325 787847 +396333 1.05317e+06 +396344 799700 +396356 840708 +396356 849311 +396364 748028 +396375 1.06061e+06 +396400 891928 +396403 852622 +396403 1.06374e+06 +396414 787747 +396417 777203 +396417 1.04959e+06 +396428 741808 +396428 842867 +396442 775861 +396444 808578 +396444 868647 +396456 887381 +396458 799875 +396469 1.05025e+06 +396469 1.06951e+06 +396478 845272 +396478 1.04987e+06 +396486 818533 +396492 818622 +396494 827444 +396511 776911 +396514 753286 +396525 788972 +396528 787628 +396528 837869 +396533 755169 +396536 835639 +396536 917344 +396539 880261 +396547 775731 +396553 1.06828e+06 +396572 893894 +396578 771747 +396581 789286 +396581 837350 +396583 799867 +396600 750925 +396606 955261 +396611 768853 +396617 995700 +396619 741656 +396619 755667 +396636 794056 +396669 757272 +396697 742322 +396700 861314 +396714 981533 +396717 842528 +396733 856986 +396756 898467 +396761 897044 +396764 1.2024e+06 +396794 844292 +396803 874175 +396819 966594 +396831 776964 +396836 757500 +396842 1.10854e+06 +396847 839297 +396847 883064 +396861 749956 +396867 755847 +396883 1.23482e+06 +396892 865225 +396894 841689 +396911 967472 +396928 777450 +396928 787931 +396939 920428 +396942 910389 +396953 742592 +396956 788800 +396978 760631 +396989 781800 +397011 891231 +397017 824269 +397028 751122 +397044 773272 +397047 1.05081e+06 +397056 964167 +397061 842194 +397061 1.05697e+06 +397069 912067 +397083 913583 +397086 902281 +397089 907244 +397103 1.11836e+06 +397111 754706 +397119 888044 +397119 929481 +397128 889969 +397136 756097 +397136 825994 +397147 884722 +397156 756411 +397156 829531 +397156 886325 +397161 838778 +397183 829869 +397194 832653 +397211 822989 +397219 858892 +397253 899106 +397269 763269 +397278 764522 +397286 1.21836e+06 +397294 754683 +397294 1.04831e+06 +397322 748814 +397328 751319 +397339 902289 +397367 775353 +397378 767017 +397383 855719 +397383 1.04323e+06 +397389 798989 +397392 752244 +397392 755983 +397392 1.04984e+06 +397419 922583 +397422 924725 +397425 1.05013e+06 +397428 1.22012e+06 +397436 775542 +397436 939981 +397442 838086 +397444 770883 +397444 845322 +397453 843850 +397458 755469 +397469 925639 +397475 753108 +397475 1.22195e+06 +397478 815167 +397500 755000 +397508 944964 +397508 1.01532e+06 +397519 905350 +397528 790811 +397531 742233 +397531 1.05064e+06 +397536 765917 +397556 948722 +397556 1.05221e+06 +397558 775781 +397561 993236 +397572 896536 +397575 741067 +397589 841917 +397589 1.04427e+06 +397592 949494 +397606 865264 +397611 799817 +397611 868119 +397622 938042 +397625 811156 +397625 872292 +397656 808714 +397658 903989 +397661 755097 +397661 892617 +397661 1.05077e+06 +397669 990314 +397675 896806 +397683 861581 +397686 766800 +397689 820922 +397714 888742 +397761 859572 +397769 896792 +397792 987847 +397811 769636 +397817 928900 +397819 860503 +397831 950897 +397842 749925 +397844 930733 +397850 857694 +397853 759792 +397872 982097 +397894 769983 +397903 777281 +397911 749294 +397914 741956 +397928 873708 +397931 767306 +397931 1.23247e+06 +397942 915231 +397944 751492 +397953 935522 +397956 855264 +397969 885917 +397972 843114 +397975 842536 +397986 879858 +397989 827011 +397992 882831 +397994 884622 +398006 754600 +398017 896436 +398022 750644 +398022 862672 +398028 828064 +398028 1.05087e+06 +398031 798081 +398036 876736 +398058 920414 +398064 838869 +398067 1.01042e+06 +398069 822972 +398072 770117 +398072 820714 +398078 874950 +398089 755492 +398092 754869 +398094 893972 +398097 825222 +398097 863225 +398106 1.20468e+06 +398114 749833 +398119 771375 +398122 852089 +398125 851717 +398128 793569 +398136 790250 +398161 1.11855e+06 +398169 751556 +398169 912422 +398181 970506 +398183 1.00528e+06 +398192 754189 +398200 750067 +398208 840194 +398219 758278 +398222 1.04933e+06 +398231 787183 +398242 749981 +398244 976322 +398247 797547 +398253 836344 +398267 750158 +398269 805667 +398275 754147 +398278 779036 +398289 848903 +398303 752408 +398308 772314 +398311 905594 +398314 757578 +398339 998911 +398342 960639 +398367 844114 +398367 1.04959e+06 +398367 1.05037e+06 +398381 749653 +398381 751531 +398383 854389 +398386 860253 +398394 750739 +398403 825461 +398403 889547 +398411 966469 +398428 828047 +398433 863978 +398439 750231 +398439 841247 +398442 775586 +398442 895394 +398453 826008 +398461 845397 +398467 757119 +398467 799000 +398481 861725 +398483 810369 +398489 868022 +398494 753561 +398514 1.04998e+06 +398522 750683 +398525 894086 +398525 955356 +398528 894633 +398536 831831 +398536 892419 +398539 890839 +398539 891661 +398556 767078 +398556 767689 +398569 847933 +398583 748033 +398597 866425 +398600 753447 +398600 808156 +398611 819069 +398631 790583 +398636 770561 +398639 864669 +398647 750556 +398653 776128 +398658 751792 +398664 750286 +398675 750950 +398681 1.04971e+06 +398692 753828 +398728 899211 +398744 768661 +398769 870444 +398772 750650 +398772 797022 +398775 843022 +398781 751211 +398781 839369 +398783 750931 +398783 799250 +398789 829508 +398811 753242 +398814 830931 +398831 767108 +398842 827536 +398842 874086 +398850 906558 +398856 1.04987e+06 +398864 769850 +398878 900078 +398892 840267 +398892 943617 +398900 754758 +398900 861572 +398906 841989 +398906 887281 +398908 750733 +398908 752842 +398911 749222 +398914 750381 +398917 751167 +398917 753000 +398919 855769 +398922 747025 +398922 997067 +398925 797472 +398936 896047 +398939 968792 +398956 876519 +398964 801794 +398964 824203 +398967 799747 +398969 761639 +398975 830869 +398978 843064 +398992 820064 +398994 766406 +399000 752894 +399000 825342 +399008 750850 +399017 753289 +399019 753503 +399019 846750 +399022 958006 +399033 844856 +399044 844017 +399064 752719 +399089 766372 +399097 753239 +399097 878211 +399111 851617 +399117 752775 +399122 752542 +399136 868011 +399144 939619 +399147 882733 +399161 765847 +399167 753881 +399175 797175 +399181 750717 +399183 752594 +399203 807433 +399206 789581 +399206 1.05086e+06 +399214 752883 +399219 885719 +399231 772989 +399242 838089 +399258 751200 +399267 740775 +399267 741342 +399278 1.22178e+06 +399283 752742 +399286 749442 +399289 853703 +399292 752967 +399303 772483 +399322 858481 +399325 779992 +399325 889511 +399328 890619 +399336 824725 +399356 914097 +399358 741714 +399361 840256 +399375 776614 +399381 752722 +399386 888656 +399389 741933 +399389 752558 +399403 820133 +399417 948300 +399419 741503 +399419 742047 +399425 745444 +399442 740733 +399444 899372 +399453 799958 +399456 752617 +399472 750669 +399478 810575 +399481 743611 +399486 741375 +399486 874597 +399492 759739 +399508 862619 +399511 902122 +399522 751642 +399525 767517 +399531 1.119e+06 +399536 741983 +399542 895486 +399542 1.12119e+06 +399547 759972 +399547 828122 +399556 849175 +399556 860139 +399569 858053 +399583 841722 +399586 759197 +399594 825958 +399606 756058 +399608 897239 +399611 829989 +399614 1.0551e+06 +399617 824914 +399625 746792 +399625 767281 +399625 843281 +399633 752506 +399667 758000 +399667 828856 +399675 872775 +399678 847092 +399681 753417 +399686 891622 +399689 829378 +399697 815367 +399700 812994 +399703 740692 +399708 807508 +399719 746833 +399719 765203 +399742 758203 +399747 938008 +399756 1.11784e+06 +399778 796147 +399778 1.05131e+06 +399781 767333 +399783 861181 +399786 820036 +399814 740667 +399819 888228 +399825 772497 +399831 758242 +399831 761844 +399836 768228 +399853 1.0482e+06 +399861 882589 +399867 830617 +399869 951447 +399872 907633 +399881 807317 +399881 811767 +399928 747881 +399936 817342 +399936 1.05089e+06 +399947 844081 +399956 826744 +399958 866200 +399964 1.11842e+06 +399967 749931 +399967 795861 +399969 767069 +399975 857467 +399978 763544 +400017 768506 +400025 799983 +400064 757036 +400069 881581 +400083 752608 +400083 790783 +400089 771158 +400103 799011 +400108 892822 +400114 750153 +400114 783736 +400144 743117 +400150 1.0527e+06 +400158 741453 +400161 810728 +400175 904242 +400178 795897 +400181 807344 +400186 785042 +400192 828794 +400208 980697 +400214 1.22099e+06 +400217 767283 +400228 824447 +400242 798908 +400247 801003 +400250 880733 +400272 808153 +400278 748694 +400278 885733 +400289 756211 +400292 810392 +400297 746189 +400314 909606 +400322 859125 +400331 796617 +400333 831583 +400336 765047 +400347 879581 +400361 746183 +400361 755142 +400364 889569 +400375 1.07912e+06 +400378 763058 +400392 764311 +400392 910692 +400394 842033 +400411 868744 +400419 754767 +400422 876386 +400428 914975 +400444 1.11731e+06 +400456 860086 +400456 878306 +400467 941356 +400469 796547 +400481 901550 +400483 864692 +400492 1.01532e+06 +400497 849397 +400503 1.05049e+06 +400506 749539 +400506 775206 +400514 874333 +400514 945239 +400525 806286 +400531 1.11673e+06 +400547 882517 +400553 840261 +400569 765525 +400581 824014 +400589 1.06388e+06 +400608 956017 +400614 876381 +400631 767042 +400639 807211 +400650 877019 +400653 749194 +400653 800239 +400675 745311 +400681 749011 +400681 825197 +400683 858483 +400692 807839 +400697 753167 +400706 807611 +400711 748653 +400717 740547 +400736 1.04642e+06 +400756 798983 +400758 1.02223e+06 +400764 829439 +400789 936164 +400792 753019 +400794 798658 +400811 750900 +400819 830253 +400831 897381 +400833 798483 +400847 1.04812e+06 +400847 1.04939e+06 +400861 918131 +400861 1.05939e+06 +400869 797508 +400875 805706 +400875 870597 +400878 1.0881e+06 +400883 912836 +400886 829167 +400889 985192 +400911 740483 +400911 795878 +400931 830181 +400942 759117 +400953 876475 +400958 751256 +400958 807247 +400961 989522 +400975 993617 +400978 742181 +400992 1.04937e+06 +401003 795872 +401003 798408 +401003 895908 +401006 748522 +401011 800675 +401017 760856 +401028 846331 +401036 798694 +401053 856803 +401072 808414 +401075 832675 +401078 740569 +401083 837525 +401083 961542 +401083 1.04519e+06 +401092 910175 +401097 765036 +401100 867719 +401106 882072 +401108 767161 +401108 770353 +401119 800175 +401125 855969 +401125 1.04936e+06 +401131 872625 +401139 878731 +401139 879561 +401150 1.11654e+06 +401161 877783 +401164 882433 +401167 800086 +401172 821194 +401172 843539 +401178 804106 +401183 771903 +401189 788183 +401203 1.23822e+06 +401211 887453 +401211 905631 +401214 753403 +401214 820108 +401222 886453 +401222 966622 +401222 1.02725e+06 +401236 876533 +401239 860133 +401244 798800 +401244 876300 +401250 798667 +401250 916250 +401261 740497 +401261 829292 +401292 798683 +401292 994550 +401300 765708 +401303 755153 +401303 1.11578e+06 +401311 952314 +401314 750678 +401319 740350 +401322 844308 +401350 862206 +401364 747292 +401372 971803 +401375 998292 +401378 798983 +401392 748150 +401394 966589 +401408 977225 +401411 806883 +401417 873947 +401447 842425 +401461 747122 +401469 789122 +401483 798881 +401483 893647 +401489 1.02962e+06 +401494 810664 +401497 754022 +401497 771286 +401500 742139 +401503 740314 +401511 762514 +401511 799078 +401519 749169 +401528 766031 +401533 740286 +401536 826853 +401536 889644 +401539 797414 +401544 752219 +401544 807106 +401567 758331 +401567 762025 +401572 760508 +401572 763072 +401597 790667 +401606 1.03214e+06 +401614 790292 +401633 763953 +401633 1.10402e+06 +401639 959447 +401653 1.1161e+06 +401664 975856 +401667 807000 +401669 749181 +401672 1.05101e+06 +401675 921725 +401697 805939 +401708 740278 +401719 849814 +401733 798578 +401736 802378 +401736 854942 +401742 751072 +401744 749231 +401756 1.01012e+06 +401758 860217 +401767 755481 +401778 745839 +401783 740222 +401783 751289 +401786 834356 +401786 1.22235e+06 +401794 1.18472e+06 +401797 761792 +401808 754294 +401825 806914 +401831 798244 +401842 755383 +401856 754519 +401872 767303 +401878 851275 +401881 869039 +401889 852042 +401906 747028 +401917 852689 +401922 740164 +401933 853864 +401933 863606 +401944 1.10061e+06 +401947 925831 +401950 779833 +401950 866672 +401953 884042 +401964 762014 +401964 807753 +401989 754767 +401994 848053 +402000 740283 +402014 771892 +402017 980675 +402019 848092 +402019 1.00625e+06 +402022 740125 +402022 896981 +402022 931250 +402031 799264 +402053 742142 +402056 805569 +402067 751000 +402078 750731 +402078 799472 +402089 789839 +402097 797672 +402106 812664 +402108 752786 +402108 767914 +402114 761236 +402114 885061 +402144 846369 +402150 750111 +402150 1.04822e+06 +402153 782447 +402153 860264 +402169 747433 +402178 945381 +402186 808731 +402192 796097 +402200 744736 +402203 740125 +402203 889619 +402225 844844 +402228 857789 +402231 835575 +402233 769539 +402247 1.05271e+06 +402264 806517 +402269 789367 +402275 903594 +402297 1.00838e+06 +402300 909500 +402306 1.04072e+06 +402314 756344 +402319 927083 +402322 768850 +402331 761375 +402333 740161 +402333 910625 +402339 1.11658e+06 +402344 1.00417e+06 +402353 768417 +402361 740011 +402389 891231 +402394 756514 +402397 769203 +402397 788353 +402403 795769 +402411 760567 +402411 768944 +402414 752842 +402417 881842 +402419 743017 +402428 778933 +402431 740011 +402431 792378 +402433 886425 +402436 788492 +402450 755956 +402453 756500 +402456 748464 +402464 802117 +402469 867250 +402472 796775 +402483 996331 +402497 788492 +402503 1.03799e+06 +402525 756778 +402561 754642 +402589 768322 +402589 1.03623e+06 +402594 892333 +402600 742742 +402625 801875 +402628 769142 +402628 856758 +402639 744917 +402644 758044 +402647 806264 +402653 767086 +402681 967467 +402686 929531 +402692 798900 +402694 745236 +402694 857281 +402700 873867 +402708 798994 +402708 807817 +402719 806097 +402719 818597 +402722 816061 +402728 809969 +402736 764064 +402736 768847 +402750 769158 +402750 1.06958e+06 +402753 768483 +402753 817511 +402761 748494 +402769 858419 +402783 795450 +402794 753875 +402794 865108 +402808 742517 +402819 1.00165e+06 +402819 1.04777e+06 +402822 860411 +402842 841556 +402858 759847 +402858 766506 +402872 788897 +402883 752094 +402883 872939 +402892 850289 +402903 740181 +402908 788692 +402911 795472 +402917 793894 +402917 909189 +402922 798819 +402942 872489 +402942 904278 +402961 740514 +402967 784500 +402969 1.11694e+06 +402972 743586 +402986 830681 +402986 894850 +402989 751814 +402989 788925 +402992 839689 +402994 1.09988e+06 +403000 900608 +403008 852419 +403014 795392 +403031 969886 +403042 739928 +403042 741008 +403042 999000 +403044 826964 +403050 878006 +403056 896028 +403058 880211 +403064 1.21231e+06 +403078 759658 +403083 881558 +403083 1.05081e+06 +403089 765936 +403106 759397 +403106 789389 +403111 783244 +403117 753256 +403119 839158 +403133 889736 +403139 855006 +403144 891697 +403147 883500 +403156 798314 +403161 745142 +403172 746203 +403181 740156 +403200 756106 +403211 793797 +403217 806100 +403219 753283 +403231 793128 +403244 797014 +403247 798925 +403247 805778 +403253 809014 +403272 760114 +403275 805961 +403278 906069 +403281 758911 +403281 796156 +403283 747911 +403289 796414 +403294 759656 +403294 765156 +403294 1.04855e+06 +403300 760808 +403303 739819 +403325 984483 +403336 756378 +403336 759478 +403353 820069 +403356 759272 +403358 783911 +403358 798700 +403367 740475 +403367 754694 +403369 1.04912e+06 +403372 764758 +403375 759800 +403375 797136 +403386 856444 +403386 953931 +403392 767258 +403403 853508 +403408 764117 +403433 1.1172e+06 +403444 866653 +403453 756333 +403456 763903 +403461 742883 +403461 948722 +403469 925689 +403478 798644 +403486 746594 +403486 788839 +403489 851500 +403489 1.04701e+06 +403494 762136 +403506 798864 +403514 843739 +403514 903244 +403517 761347 +403519 887642 +403525 744406 +403539 753053 +403553 800497 +403561 801103 +403583 814344 +403592 914344 +403606 740386 +403611 837597 +403614 739744 +403617 761844 +403642 749517 +403642 1.11738e+06 +403647 800225 +403650 804142 +403658 749433 +403667 961958 +403672 769314 +403672 787917 +403678 810056 +403697 806342 +403706 799750 +403708 802350 +403717 752019 +403719 739994 +403719 752931 +403722 979711 +403725 895472 +403733 756294 +403742 867689 +403753 807039 +403756 823972 +403764 1.04692e+06 +403767 744250 +403769 1.11795e+06 +403772 1.05521e+06 +403781 939367 +403789 745469 +403792 876686 +403794 860886 +403803 790756 +403814 798600 +403817 824925 +403819 803931 +403831 798067 +403844 778825 +403856 797592 +403858 1.2228e+06 +403875 1.04561e+06 +403881 759183 +403886 786725 +403886 854994 +403908 754925 +403908 798103 +403917 743989 +403917 1.1185e+06 +403922 799003 +403922 800911 +403928 958386 +403931 813467 +403931 843761 +403931 901547 +403933 813339 +403933 824858 +403936 779414 +403936 797864 +403936 969225 +403939 799122 +403944 841728 +403947 814072 +403956 798389 +403958 800333 +403958 810850 +403964 913389 +403969 791519 +403969 888706 +403972 913847 +403978 1.05074e+06 +403981 770233 +403983 798900 +403986 794222 +403989 798411 +403997 746347 +404008 935803 +404019 835453 +404022 755875 +404031 797783 +404036 739919 +404058 798253 +404058 799122 +404064 755022 +404075 896428 +404078 740347 +404078 749786 +404086 759219 +404086 798392 +404086 800836 +404089 829556 +404092 925675 +404106 753786 +404125 798794 +404128 847764 +404131 795706 +404142 790203 +404142 799881 +404142 822411 +404147 742300 +404147 743658 +404153 856506 +404156 741914 +404164 1.20652e+06 +404167 868750 +404169 865947 +404172 798653 +404175 862714 +404183 1.01371e+06 +404189 805897 +404197 798503 +404203 917194 +404208 745611 +404208 894144 +404233 784342 +404233 1.04709e+06 +404236 798831 +404256 800942 +404258 786203 +404258 869081 +404258 897792 +404264 832969 +404264 907925 +404267 885261 +404272 783892 +404272 861256 +404311 792611 +404317 981056 +404331 742000 +404333 807719 +404336 893131 +404339 830739 +404344 800825 +404344 849778 +404347 892178 +404350 800664 +404369 843797 +404378 813733 +404383 798433 +404400 816992 +404403 953775 +404403 993694 +404406 799961 +404417 741303 +404417 753419 +404417 798822 +404456 950658 +404461 800678 +404464 741786 +404464 743864 +404469 759667 +404483 1.22297e+06 +404503 831886 +404511 853700 +404514 743083 +404533 1.11777e+06 +404539 758183 +404556 1.09528e+06 +404567 742469 +404578 921711 +404592 743614 +404592 906717 +404592 963772 +404597 785919 +404597 795233 +404603 880953 +404608 799511 +404614 836700 +404642 806011 +404650 878964 +404656 800658 +404672 876683 +404678 841806 +404681 769322 +404700 753208 +404711 838928 +404742 957333 +404756 854944 +404769 930031 +404772 1.09586e+06 +404775 1.04901e+06 +404778 742911 +404781 785411 +404781 859667 +404783 991264 +404792 792000 +404797 846283 +404797 856278 +404800 799786 +404803 863947 +404814 789189 +404814 969603 +404819 757581 +404822 785519 +404842 889936 +404847 780106 +404850 787250 +404850 1.06831e+06 +404861 744522 +404864 794517 +404864 861336 +404872 856131 +404875 944108 +404897 814458 +404897 1.11938e+06 +404906 870964 +404914 799050 +404919 1.07257e+06 +404933 798608 +404936 843147 +404944 896517 +404950 819847 +404967 806069 +404986 989475 +404992 743994 +405006 828936 +405008 759703 +405008 800678 +405031 786306 +405033 757017 +405042 799492 +405064 798433 +405067 742658 +405067 837481 +405083 858256 +405083 868417 +405100 800947 +405108 756033 +405114 753908 +405122 748597 +405122 1.11474e+06 +405142 889906 +405153 1.07546e+06 +405158 755556 +405169 1.01643e+06 +405183 801669 +405186 783950 +405194 808842 +405197 872478 +405206 814742 +405208 925278 +405211 873783 +405217 980550 +405219 1.11938e+06 +405222 800344 +405247 1.11863e+06 +405261 750619 +405267 996333 +405269 975956 +405275 894925 +405289 794617 +405294 891772 +405303 1.04711e+06 +405308 1.12298e+06 +405317 801692 +405322 914147 +405344 835206 +405364 801847 +405369 893575 +405394 754972 +405394 769611 +405408 745881 +405417 797994 +405431 743636 +405433 787881 +405433 791625 +405489 768122 +405489 784294 +405489 845703 +405492 828275 +405500 913847 +405508 948192 +405511 801931 +405528 905061 +405531 797575 +405533 745319 +405539 852775 +405544 819181 +405544 1.23182e+06 +405556 759822 +405561 908658 +405575 828625 +405581 900350 +405589 791514 +405622 1.11929e+06 +405631 802086 +405639 888989 +405644 871069 +405647 878931 +405667 767008 +405669 886164 +405675 882478 +405675 896406 +405678 841936 +405683 745389 +405686 750950 +405694 746333 +405694 774031 +405697 773972 +405697 797650 +405717 807267 +405719 857692 +405725 744931 +405725 898133 +405728 810858 +405733 766917 +405736 802358 +405742 746103 +405747 769894 +405764 1.24263e+06 +405772 742286 +405789 861903 +405792 744119 +405794 753411 +405800 797669 +405814 795667 +405825 1.04731e+06 +405833 909692 +405844 1.02302e+06 +405853 1.05084e+06 +405861 795317 +405861 983881 +405867 1.22391e+06 +405875 866750 +405883 736583 +405883 824250 +405886 831286 +405889 737294 +405892 744722 +405892 765528 +405892 802253 +405900 985058 +405903 998606 +405917 1.11883e+06 +405942 751947 +405947 815269 +405961 795558 +405969 880381 +405981 795614 +405983 760936 +405983 1.24156e+06 +406000 1.12464e+06 +406006 839753 +406011 813614 +406014 753956 +406014 797600 +406028 787089 +406028 795650 +406028 806492 +406028 868672 +406033 783250 +406042 736558 +406044 956575 +406050 777258 +406056 978589 +406058 889872 +406081 742781 +406081 797414 +406086 865400 +406097 1.11938e+06 +406111 1.11899e+06 +406114 798372 +406117 767189 +406128 894592 +406131 805631 +406150 896222 +406156 737300 +406167 873208 +406172 855047 +406175 896003 +406183 806044 +406186 805775 +406189 980969 +406197 1.11809e+06 +406200 825108 +406200 966289 +406211 904619 +406211 986572 +406214 791528 +406219 742450 +406225 808381 +406228 737247 +406228 939339 +406239 737089 +406256 1.03207e+06 +406264 753461 +406267 761931 +406283 763875 +406283 876961 +406297 892747 +406297 913150 +406300 744278 +406300 893325 +406300 1.00515e+06 +406306 761714 +406308 929244 +406319 737131 +406336 744078 +406350 802283 +406353 822333 +406356 1.04755e+06 +406358 782961 +406361 736819 +406361 911672 +406364 829692 +406367 791444 +406367 802403 +406369 975850 +406378 744514 +406386 736406 +406386 775689 +406386 1.11938e+06 +406403 917428 +406408 743111 +406408 743839 +406408 748817 +406411 1.02626e+06 +406414 887833 +406417 748364 +406419 736700 +406422 798511 +406425 742858 +406428 787731 +406428 915644 +406431 736961 +406431 775808 +406431 1.1128e+06 +406442 974500 +406444 804164 +406458 805981 +406461 1.11497e+06 +406469 836097 +406472 895911 +406472 971131 +406500 814522 +406503 896519 +406511 812992 +406531 815811 +406536 972858 +406539 750869 +406542 841508 +406547 736722 +406547 754750 +406547 761011 +406553 743903 +406572 961861 +406575 735836 +406578 849519 +406583 743000 +406586 736417 +406589 743478 +406594 743233 +406597 754772 +406597 802394 +406600 1.11996e+06 +406608 862419 +406625 787803 +406628 735519 +406631 868694 +406639 742111 +406639 775961 +406642 737089 +406642 742636 +406642 904347 +406644 742647 +406658 734886 +406661 806233 +406661 895800 +406669 751578 +406669 947211 +406669 1.11887e+06 +406672 813550 +406678 1.11938e+06 +406686 735275 +406686 741147 +406689 1.11824e+06 +406700 754958 +406706 782389 +406722 743578 +406733 805767 +406733 845189 +406733 921619 +406739 857214 +406764 742911 +406767 818706 +406767 958589 +406786 735894 +406786 752372 +406789 734175 +406789 736744 +406789 910728 +406792 804950 +406800 965061 +406800 1.22351e+06 +406803 734556 +406806 734747 +406806 1.2237e+06 +406814 734003 +406814 820219 +406825 931208 +406828 854272 +406833 744431 +406836 735106 +406842 746361 +406844 803292 +406844 896800 +406850 737022 +406856 761958 +406858 926772 +406861 754972 +406867 733739 +406867 841378 +406872 802717 +406875 802542 +406911 735636 +406914 735339 +406917 811814 +406917 897950 +406925 896278 +406928 837856 +406933 735081 +406936 751906 +406936 895889 +406953 803050 +406956 733261 +406958 800119 +406964 761692 +406967 749411 +406975 734256 +406983 744019 +406994 990811 +407000 802683 +407000 1.1181e+06 +407003 735933 +407008 734625 +407008 737133 +407011 742306 +407022 802867 +407036 894072 +407039 1.05008e+06 +407044 963872 +407047 736506 +407061 733067 +407061 838439 +407064 839214 +407064 933650 +407069 749564 +407069 815983 +407072 736764 +407086 732817 +407089 843536 +407092 1.12101e+06 +407106 902661 +407139 775908 +407139 1.16103e+06 +407142 733819 +407142 737006 +407142 740064 +407147 942350 +407150 880061 +407164 733222 +407167 914500 +407172 734842 +407181 733547 +407186 745697 +407189 1.11888e+06 +407192 736889 +407194 748361 +407194 761161 +407194 993717 +407206 734406 +407208 740178 +407214 892728 +407219 954806 +407236 737053 +407242 737156 +407244 815222 +407250 732458 +407256 753944 +407258 735147 +407264 788069 +407267 736347 +407278 730981 +407281 740781 +407294 760858 +407297 732108 +407297 811056 +407303 803103 +407303 919622 +407311 948994 +407311 1.22941e+06 +407317 1.06283e+06 +407319 731861 +407322 906644 +407336 778858 +407336 827900 +407350 736883 +407356 741728 +407358 730825 +407361 732631 +407372 1.14037e+06 +407383 730511 +407386 851717 +407386 995372 +407392 890164 +407394 743044 +407394 803294 +407397 937475 +407403 753100 +407408 736631 +407408 743842 +407408 752575 +407414 743600 +407417 887197 +407419 950381 +407431 731931 +407433 888814 +407439 740328 +407442 734825 +407453 867647 +407464 741567 +407469 909039 +407472 731703 +407472 885147 +407472 895739 +407478 785347 +407483 741622 +407483 756122 +407483 956472 +407483 988444 +407486 847911 +407492 736411 +407494 868717 +407503 786711 +407517 763364 +407517 818394 +407517 924147 +407519 803194 +407519 884111 +407525 736108 +407536 860689 +407536 882919 +407539 733608 +407539 752625 +407539 798103 +407542 755992 +407544 863567 +407553 736672 +407564 736453 +407567 881911 +407569 729397 +407569 933186 +407581 870417 +407583 736353 +407583 825156 +407589 735700 +407594 825903 +407597 744175 +407608 871508 +407608 1.1189e+06 +407617 733297 +407625 734536 +407631 769397 +407633 872936 +407656 730156 +407656 953719 +407664 894678 +407667 728525 +407667 879922 +407669 729967 +407672 742053 +407683 735256 +407683 741458 +407692 731156 +407692 800631 +407692 875639 +407694 740208 +407694 838228 +407700 1.24142e+06 +407703 874453 +407706 737181 +407706 742331 +407714 846156 +407719 983692 +407733 736436 +407739 742739 +407742 729433 +407744 785536 +407744 970503 +407756 777928 +407758 746011 +407761 877364 +407764 734678 +407775 929436 +407778 899664 +407786 900147 +407794 740242 +407797 978119 +407800 803386 +407808 736769 +407808 997411 +407811 732467 +407811 737250 +407811 766733 +407839 762306 +407842 746972 +407858 747806 +407861 737142 +407867 737269 +407869 730094 +407869 737372 +407872 812828 +407875 827367 +407878 740147 +407878 743886 +407883 741336 +407886 736000 +407886 736478 +407886 842039 +407889 765592 +407892 836433 +407894 740569 +407906 732022 +407906 893606 +407914 762839 +407919 740042 +407933 734156 +407933 764728 +407933 778603 +407936 736275 +407936 741506 +407942 736608 +407942 737489 +407944 801369 +407953 814736 +407958 743153 +407961 891972 +407972 759697 +407978 737000 +407978 858206 +407981 783975 +407986 736803 +407986 742394 +407989 768625 +407989 813786 +407989 816956 +407994 762128 +407994 780544 +407997 736514 +407997 756622 +407997 764281 +408000 966667 +408003 727903 +408006 737289 +408014 756106 +408017 835106 +408019 728414 +408022 1.24162e+06 +408025 737047 +408031 726150 +408031 749900 +408042 740125 +408042 763408 +408042 764653 +408042 821958 +408044 904017 +408050 819353 +408053 742042 +408067 737039 +408067 741858 +408072 736817 +408075 911128 +408083 829756 +408103 795297 +408106 778186 +408119 741247 +408122 730789 +408125 761419 +408153 730456 +408161 736978 +408164 736375 +408164 795222 +408167 964300 +408175 730006 +408178 800144 +408192 831306 +408197 737356 +408203 762011 +408203 879778 +408206 742942 +408206 985997 +408214 739881 +408217 744814 +408222 741603 +408231 726100 +408236 733992 +408236 759806 +408239 735481 +408244 726667 +408244 742850 +408250 783514 +408250 911564 +408256 732031 +408256 736986 +408258 742094 +408261 735025 +408264 741072 +408269 739761 +408272 832814 +408275 762072 +408292 853356 +408297 742406 +408297 750781 +408311 730300 +408317 758828 +408317 768361 +408325 1.15762e+06 +408336 757142 +408336 953081 +408339 740975 +408339 805406 +408342 740092 +408342 803225 +408347 736958 +408350 731317 +408356 803997 +408375 796322 +408381 857303 +408386 735656 +408389 898864 +408397 742769 +408403 740911 +408406 725819 +408408 743022 +408411 740456 +408417 962933 +408419 1.01725e+06 +408428 732933 +408431 737153 +408436 817642 +408447 737022 +408450 806147 +408453 733356 +408456 740883 +408475 776864 +408481 739981 +408481 752919 +408483 799622 +408486 768200 +408486 1.11906e+06 +408489 736453 +408500 782708 +408508 739706 +408517 737192 +408519 731544 +408528 731156 +408528 740425 +408531 741142 +408533 734119 +408539 748294 +408542 1.06965e+06 +408556 1.11892e+06 +408558 732011 +408561 731878 +408567 734700 +408567 741289 +408569 740219 +408581 740811 +408583 731000 +408583 741642 +408589 934972 +408597 999869 +408611 798956 +408614 739886 +408617 896786 +408622 736342 +408625 767947 +408625 856017 +408639 802592 +408644 758114 +408644 765528 +408644 864997 +408644 913144 +408656 735325 +408656 752069 +408658 907483 +408661 860775 +408664 730361 +408664 873636 +408667 1.24082e+06 +408672 980039 +408678 868789 +408681 734261 +408681 777469 +408681 975917 +408686 730019 +408686 752553 +408686 823183 +408689 725181 +408689 733656 +408689 742086 +408694 845842 +408700 961403 +408708 735114 +408711 747344 +408711 984678 +408714 734572 +408717 1.11891e+06 +408728 787244 +408758 745428 +408758 757328 +408758 814025 +408761 735769 +408761 740303 +408767 733250 +408772 807556 +408778 798467 +408778 882692 +408781 888611 +408789 769872 +408794 751842 +408803 879550 +408806 752150 +408806 851664 +408814 741136 +408814 826619 +408817 945617 +408822 740836 +408825 1.2166e+06 +408831 854975 +408831 895025 +408831 1.23983e+06 +408839 745625 +408842 723900 +408842 729378 +408853 739528 +408858 740439 +408858 782211 +408861 732578 +408869 735556 +408881 803383 +408883 738286 +408883 806942 +408894 1.1188e+06 +408897 741953 +408897 782286 +408897 815978 +408908 724642 +408908 774769 +408908 928150 +408917 767978 +408928 739731 +408931 745822 +408939 1.11901e+06 +408947 744333 +408953 736014 +408953 738075 +408953 838889 +408975 740164 +408983 956711 +408989 740931 +408989 747069 +408994 973992 +408997 734153 +409003 807642 +409008 733436 +409011 745147 +409022 817342 +409025 740622 +409025 744075 +409028 747094 +409033 731583 +409033 734603 +409039 741189 +409044 890344 +409050 742103 +409064 842967 +409069 970986 +409072 740756 +409083 902847 +409097 738083 +409100 759917 +409106 735625 +409114 737828 +409114 906472 +409117 859244 +409117 871553 +409125 733014 +409133 759669 +409133 777786 +409153 811061 +409167 741722 +409167 847028 +409169 726625 +409175 770481 +409175 965281 +409178 1.11399e+06 +409181 1.11871e+06 +409186 922228 +409192 892911 +409194 840569 +409222 894861 +409225 900144 +409228 810192 +409231 750969 +409231 809939 +409250 983417 +409253 730478 +409253 739633 +409253 742769 +409256 731414 +409258 746353 +409269 913994 +409275 739978 +409278 733603 +409278 737522 +409281 759150 +409286 740403 +409294 1.0016e+06 +409297 897575 +409297 949758 +409311 738992 +409319 909469 +409322 843389 +409328 724147 +409328 746597 +409328 803636 +409350 740194 +409353 879344 +409356 741867 +409367 871508 +409378 723014 +409381 738325 +409403 741322 +409406 739972 +409414 739597 +409417 777853 +409436 789711 +409444 740758 +409461 874533 +409464 730697 +409467 1.24099e+06 +409469 730300 +409478 903100 +409478 903711 +409481 797431 +409481 839611 +409486 737331 +409492 741542 +409494 725819 +409508 730844 +409519 764600 +409525 833825 +409550 741864 +409558 739317 +409561 729683 +409567 744983 +409572 729081 +409572 739639 +409583 759750 +409586 740372 +409586 759964 +409589 768994 +409597 729967 +409597 730683 +409597 731300 +409608 739906 +409622 828544 +409625 853733 +409628 741333 +409628 964408 +409633 711833 +409633 766131 +409636 813314 +409636 915578 +409644 768847 +409689 737131 +409700 816967 +409714 821100 +409731 739619 +409731 1.17735e+06 +409736 721442 +409747 848683 +409756 785253 +409761 740267 +409778 803453 +409781 817822 +409792 741169 +409806 736842 +409806 1.11887e+06 +409817 951039 +409819 931983 +409828 841994 +409836 739803 +409853 868794 +409858 747425 +409858 796133 +409867 751950 +409869 818939 +409883 1.02264e+06 +409892 741411 +409900 752167 +409900 887292 +409900 947406 +409911 725347 +409911 740331 +409919 760569 +409939 743039 +409942 921672 +409953 740125 +409956 723417 +409964 741017 +409978 722931 +409978 961619 +409981 739622 +409994 751817 +410006 857686 +410011 986072 +410017 736661 +410017 743675 +410017 793317 +410025 784636 +410028 738792 +410028 955850 +410031 879081 +410036 743419 +410036 885253 +410042 923736 +410050 737850 +410053 742911 +410061 764103 +410064 739494 +410081 911639 +410086 919625 +410094 741733 +410097 952253 +410100 818625 +410106 738442 +410106 739917 +410106 741183 +410114 958819 +410128 723133 +410128 816053 +410139 933064 +410144 738731 +410144 763814 +410161 721597 +410167 742061 +410167 758975 +410167 1.11498e+06 +410172 954019 +410186 864133 +410186 957989 +410189 737986 +410192 840472 +410208 814361 +410219 739478 +410233 740669 +410242 806150 +410242 806631 +410247 894111 +410250 807611 +410253 902797 +410256 817300 +410261 989122 +410264 819333 +410267 928056 +410275 941978 +410286 894383 +410289 840792 +410300 825158 +410308 779497 +410317 741025 +410322 1.11901e+06 +410333 820122 +410339 737633 +410339 937653 +410353 805367 +410353 1.11938e+06 +410358 719550 +410375 740411 +410381 742944 +410383 860281 +410389 738656 +410392 963681 +410414 741294 +410414 795033 +410417 939492 +410419 739186 +410442 836500 +410458 762825 +410464 813981 +410467 740233 +410469 957422 +410478 724636 +410492 880978 +410503 788225 +410514 866031 +410519 762211 +410519 830150 +410525 806081 +410525 890503 +410531 827264 +410533 735392 +410544 762336 +410547 797269 +410550 738206 +410572 741414 +410572 966444 +410581 747531 +410583 740989 +410586 943611 +410589 740222 +410603 1.1197e+06 +410606 757744 +410614 1.02074e+06 +410617 897731 +410619 762228 +410633 905558 +410639 800567 +410647 724267 +410647 828878 +410647 862158 +410681 723392 +410706 850144 +410722 858917 +410722 902253 +410758 775889 +410767 818964 +410775 847272 +410781 764147 +410783 805994 +410786 734697 +410797 878114 +410806 868919 +410811 1.11919e+06 +410814 815192 +410817 745928 +410819 961342 +410831 739206 +410844 768642 +410847 856281 +410856 738589 +410886 740139 +410892 906381 +410894 1.12064e+06 +410906 739183 +410928 1.0247e+06 +410936 898647 +410944 884250 +410958 796828 +410961 912575 +410964 739733 +410969 788889 +410972 1.04814e+06 +410983 839847 +410994 909425 +410997 806497 +411000 813467 +411003 821233 +411003 842664 +411014 814419 +411017 807647 +411019 767714 +411033 723597 +411039 826119 +411069 739206 +411072 737964 +411072 774847 +411075 837928 +411078 787714 +411083 835169 +411108 1.12025e+06 +411111 740689 +411114 893564 +411117 1.14964e+06 +411133 742458 +411142 975986 +411144 831781 +411147 741500 +411147 901644 +411158 980014 +411161 791869 +411169 809836 +411175 734083 +411181 739558 +411183 1.12083e+06 +411192 787603 +411200 878611 +411203 765303 +411208 888353 +411219 753650 +411219 830158 +411222 803331 +411231 914411 +411233 737794 +411239 741697 +411239 1.00765e+06 +411242 1.01356e+06 +411247 774300 +411253 848533 +411264 737144 +411264 774719 +411281 1.01719e+06 +411306 851289 +411325 1.11929e+06 +411333 1.04817e+06 +411339 814847 +411358 929039 +411364 740828 +411364 1.1203e+06 +411367 800094 +411367 958906 +411369 774472 +411381 845806 +411383 818639 +411408 962394 +411414 733583 +411417 878750 +411419 878611 +411428 890600 +411428 1.02978e+06 +411444 814400 +411450 788047 +411456 738242 +411458 774217 +411464 747528 +411472 916606 +411475 739897 +411506 739458 +411531 761506 +411533 745767 +411536 813581 +411539 807017 +411544 741933 +411544 960419 +411550 759786 +411564 805694 +411569 834169 +411569 1.01126e+06 +411572 854883 +411575 812422 +411578 800889 +411586 1.01002e+06 +411589 814544 +411594 814406 +411606 926311 +411611 790833 +411617 1.12026e+06 +411628 738619 +411656 808578 +411667 876628 +411669 732053 +411669 740436 +411675 900425 +411689 822181 +411703 909967 +411725 835564 +411725 923086 +411728 882767 +411728 1.11976e+06 +411733 860347 +411742 804536 +411747 918194 +411750 760750 +411769 1.12003e+06 +411772 744692 +411772 797081 +411772 896575 +411789 903158 +411797 975472 +411814 847406 +411814 911853 +411817 743825 +411819 1.04069e+06 +411822 937286 +411828 807656 +411828 836783 +411847 773142 +411856 883097 +411856 919928 +411883 809783 +411917 903800 +411919 1.11971e+06 +411922 974250 +411967 908803 +411969 759286 +411975 739650 +411992 798731 +411997 907492 +412003 857056 +412022 793278 +412031 905869 +412042 737275 +412044 928825 +412053 760053 +412053 960422 +412056 767858 +412069 830553 +412075 838992 +412083 738917 +412094 739858 +412094 1.06789e+06 +412097 746081 +412103 758969 +412108 849669 +412111 805381 +412114 966200 +412122 804969 +412125 924353 +412147 793856 +412150 867758 +412158 890667 +412189 864231 +412197 1.22274e+06 +412219 932411 +412222 730569 +412222 758633 +412225 742947 +412225 770372 +412231 1.11973e+06 +412269 802400 +412269 882647 +412272 858219 +412278 964875 +412283 851725 +412292 840342 +412306 853194 +412319 769994 +412325 956128 +412331 804936 +412339 805697 +412344 795375 +412350 810494 +412350 951372 +412358 1.03662e+06 +412367 954178 +412369 888314 +412375 808186 +412381 818419 +412381 858531 +412392 813461 +412397 816383 +412400 814408 +412400 836433 +412403 759450 +412411 767242 +412411 770014 +412411 815528 +412414 884194 +412425 826158 +412428 732011 +412450 759311 +412450 963969 +412456 899247 +412458 758817 +412464 832358 +412489 841331 +412492 787997 +412503 794597 +412506 878314 +412528 971297 +412539 836044 +412542 769208 +412542 893422 +412542 947681 +412544 823997 +412556 734353 +412558 1.22138e+06 +412561 830517 +412564 743603 +412586 959375 +412592 804722 +412597 906078 +412608 1.11769e+06 +412611 892275 +412611 961317 +412619 739386 +412619 958608 +412647 815133 +412650 882122 +412683 1.10962e+06 +412694 759167 +412706 729475 +412708 737781 +412725 820547 +412736 828417 +412753 758506 +412756 989664 +412761 728689 +412769 926794 +412781 758975 +412783 730261 +412786 725281 +412789 758786 +412794 725989 +412794 728156 +412797 767133 +412800 759125 +412800 913606 +412814 734986 +412814 1.11988e+06 +412833 701000 +412839 812242 +412842 810967 +412844 843558 +412853 723994 +412853 724481 +412861 804278 +412864 962342 +412872 845536 +412878 882856 +412878 993814 +412886 882517 +412889 726822 +412889 758058 +412889 915522 +412897 945614 +412900 739208 +412906 959178 +412917 723767 +412917 758750 +412917 934422 +412919 999222 +412922 895061 +412931 847619 +412939 822175 +412939 902919 +412942 882711 +412953 890594 +412956 861164 +412958 897903 +412964 926442 +412975 826056 +412981 1.12085e+06 +412992 916928 +413036 901928 +413042 829753 +413053 944611 +413072 1.11959e+06 +413078 881467 +413081 729286 +413083 741450 +413089 820058 +413097 742294 +413100 721458 +413100 1.22309e+06 +413111 886097 +413114 1.05591e+06 +413117 758378 +413125 811439 +413125 814403 +413128 963458 +413136 817247 +413139 816853 +413144 818358 +413164 730936 +413167 870258 +413175 868914 +413186 872003 +413189 905058 +413197 758464 +413197 816269 +413206 730894 +413206 758194 +413208 931092 +413217 802589 +413231 777486 +413242 834386 +413250 757458 +413253 721936 +413253 824933 +413256 856978 +413258 757897 +413261 896789 +413264 777511 +413269 757736 +413275 757933 +413275 891289 +413275 891997 +413275 1.10292e+06 +413278 719911 +413278 831322 +413297 906703 +413303 807256 +413306 741872 +413308 887081 +413308 940136 +413317 741214 +413317 743572 +413319 858500 +413322 877853 +413333 922044 +413336 888781 +413358 719064 +413361 759636 +413367 755189 +413392 801053 +413397 757367 +413406 876214 +413436 863097 +413439 757389 +413447 837972 +413450 720253 +413450 815286 +413456 888425 +413458 813953 +413461 730794 +413469 741267 +413486 800825 +413494 851356 +413500 720789 +413503 831219 +413506 719825 +413533 723911 +413533 757386 +413542 719669 +413547 903814 +413556 721000 +413558 822539 +413572 884211 +413578 891761 +413581 935572 +413583 897372 +413614 818131 +413625 742717 +413633 979689 +413639 919536 +413647 961575 +413650 958578 +413653 895839 +413656 815614 +413658 852389 +413661 818544 +413669 799294 +413669 850589 +413681 894647 +413683 821078 +413692 739667 +413711 734144 +413714 839419 +413722 737339 +413747 836514 +413750 746931 +413750 819083 +413772 718342 +413775 718278 +413825 892189 +413833 760250 +413844 833206 +413856 724361 +413858 932692 +413889 705139 +413897 814414 +413900 817597 +413906 809736 +413908 728600 +413914 739564 +413922 841253 +413931 815367 +413947 734544 +413947 757069 +413953 816764 +413969 966111 +413972 736175 +413972 899044 +413978 822225 +413983 818047 +413989 717475 +414000 747236 +414000 828086 +414014 923544 +414019 743247 +414019 996389 +414031 724514 +414036 950136 +414039 881117 +414047 817231 +414050 1.02344e+06 +414061 736331 +414081 929161 +414089 756628 +414092 741956 +414092 1.12035e+06 +414097 797119 +414108 834611 +414119 838644 +414139 733039 +414153 815661 +414156 819236 +414169 815275 +414169 816061 +414169 873653 +414181 864858 +414189 832214 +414197 756328 +414200 877417 +414203 787289 +414208 900150 +414211 820964 +414214 798814 +414219 823647 +414225 879858 +414225 1.00193e+06 +414228 1.22385e+06 +414233 717861 +414244 739469 +414253 816883 +414269 892133 +414278 741664 +414278 857525 +414286 904608 +414294 882286 +414297 720825 +414297 813908 +414297 848714 +414297 973681 +414306 868983 +414314 813656 +414322 714569 +414333 964978 +414344 721103 +414347 815258 +414350 815364 +414353 816575 +414392 740456 +414392 907175 +414397 817356 +414414 818644 +414414 852650 +414428 860014 +414433 840089 +414442 744003 +414444 876314 +414453 947644 +414458 744233 +414464 861481 +414472 970592 +414478 814278 +414481 901542 +414486 847481 +414486 977303 +414489 827081 +414489 956153 +414500 816636 +414506 834875 +414514 756122 +414517 820356 +414525 963508 +414528 821825 +414531 905719 +414542 705625 +414542 706042 +414542 740581 +414550 1.06806e+06 +414553 819181 +414553 882617 +414558 960261 +414564 907233 +414569 728236 +414569 1.22894e+06 +414594 934047 +414614 736714 +414619 810739 +414619 967794 +414622 814808 +414642 918381 +414644 815089 +414647 837061 +414658 855875 +414667 864831 +414683 756033 +414686 755625 +414689 796911 +414700 876364 +414700 926511 +414706 811453 +414714 756081 +414731 870611 +414731 903575 +414733 745389 +414739 815372 +414747 845525 +414756 818394 +414756 936786 +414758 751825 +414761 832958 +414767 740242 +414767 953378 +414775 952217 +414783 814639 +414803 715231 +414806 866917 +414808 755950 +414808 876378 +414814 743606 +414817 726817 +414819 817983 +414828 873328 +414831 917058 +414839 742181 +414839 903531 +414844 877033 +414847 819222 +414858 730511 +414872 1.20541e+06 +414875 821017 +414881 914258 +414883 875675 +414886 757089 +414892 814019 +414900 713133 +414914 876744 +414919 941239 +414928 757000 +414942 875217 +414947 755372 +414947 903906 +414953 794561 +414958 878486 +414961 853767 +414969 713678 +414969 725575 +414978 815375 +414989 729011 +414994 816956 +415003 858281 +415006 874614 +415006 946433 +415008 837183 +415008 904442 +415008 934908 +415028 724506 +415033 740108 +415033 943183 +415036 844142 +415039 877131 +415047 739700 +415053 820283 +415061 876356 +415061 881144 +415064 875917 +415067 905150 +415075 717167 +415089 907658 +415094 905786 +415103 1.12015e+06 +415119 829378 +415119 879656 +415122 782353 +415122 904150 +415133 876742 +415139 920761 +415161 954500 +415175 814036 +415183 942261 +415189 838039 +415192 814581 +415200 800486 +415200 814889 +415200 815564 +415200 882017 +415214 843072 +415217 739269 +415222 813381 +415222 931017 +415231 815186 +415236 905775 +415242 720764 +415242 764011 +415244 862733 +415244 905156 +415250 880817 +415256 741533 +415258 853667 +415261 878892 +415264 706736 +415264 875386 +415272 850656 +415275 742372 +415283 874236 +415286 1.09466e+06 +415300 886797 +415306 739781 +415308 755458 +415317 940094 +415319 939539 +415322 872550 +415331 815792 +415342 757364 +415342 864272 +415347 740153 +415350 740706 +415350 808683 +415356 738994 +415356 878475 +415369 885833 +415381 728075 +415386 759469 +415392 855397 +415397 740986 +415414 869006 +415425 816264 +415425 876022 +415428 876847 +415439 738686 +415444 732094 +415444 961247 +415472 891175 +415475 865822 +415486 985308 +415486 987306 +415492 841417 +415511 1.12109e+06 +415514 706153 +415519 814786 +415528 815103 +415542 915347 +415547 880986 +415558 904092 +415564 847689 +415564 958875 +415569 836272 +415572 876656 +415575 894608 +415581 730519 +415583 872744 +415600 740036 +415619 736031 +415622 726511 +415644 875125 +415647 875389 +415661 834247 +415681 876081 +415681 877203 +415689 1.11837e+06 +415700 912636 +415717 876944 +415728 726411 +415733 877844 +415736 755022 +415736 840053 +415736 876464 +415750 872389 +415756 723325 +415758 725031 +415758 871761 +415767 744875 +415767 752592 +415769 734089 +415772 937111 +415783 705592 +415783 928447 +415803 754086 +415817 903433 +415833 875000 +415839 738092 +415839 935197 +415847 907719 +415853 878431 +415858 925272 +415861 844350 +415869 712839 +415875 1.09202e+06 +415878 834933 +415886 838911 +415889 910167 +415894 880578 +415894 889219 +415894 941958 +415908 948753 +415917 950597 +415931 815269 +415933 730858 +415933 873464 +415964 739114 +415978 937081 +415983 814186 +415994 932350 +415997 909106 +416006 936089 +416008 876069 +416028 877439 +416031 937239 +416033 803056 +416033 989258 +416056 739719 +416056 741844 +416061 738733 +416064 903353 +416067 719814 +416067 805725 +416078 1.22839e+06 +416097 835644 +416100 876467 +416106 867225 +416106 965478 +416111 876347 +416117 938850 +416125 887994 +416136 901728 +416142 760469 +416142 811492 +416144 940172 +416147 1.12126e+06 +416156 870742 +416156 875294 +416186 813842 +416217 837117 +416228 738711 +416239 813072 +416253 877175 +416258 712139 +416258 871903 +416261 757808 +416267 937119 +416269 796739 +416269 882039 +416283 703875 +416289 813617 +416303 878539 +416303 897861 +416311 780917 +416314 724603 +416317 876608 +416331 754708 +416331 814689 +416336 886811 +416342 1.11851e+06 +416347 849994 +416353 727692 +416361 709347 +416378 859217 +416386 1.11933e+06 +416386 1.12079e+06 +416389 875567 +416389 876072 +416392 874547 +416397 732089 +416397 814067 +416406 993708 +416411 884472 +416414 801517 +416417 854167 +416431 957886 +416436 834869 +416439 877036 +416442 934644 +416458 886217 +416475 880894 +416500 702417 +416514 754669 +416525 797272 +416528 702833 +416531 953253 +416539 814506 +416556 738753 +416556 746897 +416561 804242 +416564 768536 +416564 900792 +416572 876800 +416581 905844 +416583 701292 +416583 708167 +416603 808608 +416611 727800 +416611 877525 +416611 915300 +416611 920089 +416619 861586 +416628 788114 +416628 876606 +416628 885369 +416639 835553 +416642 836433 +416644 701733 +416650 860758 +416653 1.03099e+06 +416658 814433 +416658 1.11181e+06 +416661 813397 +416667 701853 +416667 966656 +416672 878303 +416681 762622 +416681 877964 +416686 933575 +416689 877386 +416714 899361 +416714 913464 +416717 729497 +416731 936975 +416731 1.07979e+06 +416733 843269 +416736 880017 +416747 903403 +416750 712711 +416750 733522 +416764 719156 +416764 915803 +416772 945031 +416778 932450 +416781 730114 +416794 721708 +416794 770642 +416797 874944 +416800 845531 +416803 903189 +416811 699917 +416817 1.11822e+06 +416819 699603 +416819 859767 +416819 869603 +416828 883514 +416833 862500 +416842 877003 +416844 939608 +416861 700764 +416883 937908 +416889 889811 +416889 983631 +416897 877972 +416908 980033 +416917 943628 +416917 974842 +416919 713792 +416925 869775 +416947 740517 +416967 878169 +416972 862450 +416975 905825 +416978 727242 +416983 868592 +416986 880683 +416994 840703 +416997 930478 +417000 703000 +417000 707633 +417003 739214 +417003 865094 +417006 934619 +417014 711556 +417014 877792 +417019 702500 +417039 790358 +417050 813606 +417053 972378 +417061 715236 +417064 1.11816e+06 +417075 868950 +417092 746289 +417103 865342 +417106 722086 +417106 745747 +417117 839097 +417119 1.12165e+06 +417122 726086 +417128 718814 +417142 726531 +417142 893286 +417161 862525 +417169 743961 +417175 899258 +417181 929072 +417181 949322 +417183 738531 +417189 801478 +417189 837131 +417194 842181 +417206 877017 +417208 739606 +417208 877542 +417211 968825 +417214 858175 +417217 1.11821e+06 +417233 917903 +417244 732367 +417244 812458 +417250 970025 +417256 786386 +417256 878250 +417267 971219 +417278 844189 +417283 1.22527e+06 +417297 936056 +417306 883458 +417308 849328 +417317 922978 +417331 776422 +417336 924453 +417344 877314 +417356 1.11834e+06 +417356 1.22633e+06 +417383 957025 +417406 713092 +417408 878603 +417411 705994 +417411 735769 +417411 1.12161e+06 +417417 706583 +417431 927222 +417439 743719 +417444 878378 +417453 706186 +417456 868508 +417472 731892 +417475 740872 +417486 773008 +417489 879183 +417492 915978 +417500 878042 +417500 977750 +417550 1.03324e+06 +417561 1.24201e+06 +417578 803681 +417589 704944 +417600 700833 +417603 811411 +417606 883200 +417611 938242 +417619 727425 +417619 1.08966e+06 +417625 707222 +417628 878000 +417636 726856 +417653 721986 +417658 836281 +417675 764431 +417681 888769 +417689 878578 +417689 886408 +417694 711292 +417694 1.11804e+06 +417697 911278 +417700 705289 +417703 879022 +417711 730603 +417711 810500 +417714 937128 +417717 887736 +417747 742986 +417747 780208 +417750 1.07112e+06 +417756 954172 +417758 725219 +417783 962208 +417794 1.10538e+06 +417797 714378 +417797 896889 +417800 790933 +417808 749342 +417817 991328 +417822 726125 +417828 878781 +417850 736944 +417858 881472 +417881 902561 +417886 896961 +417894 902192 +417897 699903 +417897 707608 +417911 1.07238e+06 +417925 1.10537e+06 +417939 867439 +417956 860808 +417958 879756 +417967 718978 +417975 879547 +417981 856433 +417981 864992 +417981 920706 +417986 866106 +417989 1.11818e+06 +417992 854192 +418006 731217 +418006 803692 +418008 879369 +418011 747469 +418011 880747 +418019 810492 +418025 718864 +418036 800567 +418061 883272 +418069 834425 +418072 770778 +418072 914939 +418083 722500 +418086 877933 +418089 880111 +418094 1.03503e+06 +418097 728311 +418097 879006 +418097 899650 +418108 782800 +418111 784450 +418128 729206 +418133 878181 +418136 713706 +418178 881733 +418214 877828 +418233 905381 +418239 714133 +418239 878517 +418242 906478 +418244 728942 +418258 1.0366e+06 +418261 931514 +418272 863611 +418281 866925 +418283 974547 +418289 740689 +418297 862542 +418317 908381 +418325 838625 +418328 879289 +418347 878617 +418350 878228 +418358 964667 +418383 1.11832e+06 +418386 941069 +418389 894794 +418394 847481 +418411 856686 +418417 893003 +418417 967083 +418428 878231 +418439 791453 +418444 901886 +418456 877539 +418456 916928 +418458 709500 +418472 853186 +418475 1.03661e+06 +418492 735572 +418500 876500 +418500 879644 +418500 883125 +418506 877936 +418506 878819 +418519 945581 +418525 726442 +418544 956003 +418550 843539 +418569 939217 +418575 909281 +418594 809542 +418617 881608 +418628 1.1199e+06 +418639 711250 +418639 878533 +418650 699917 +418650 807900 +418661 881069 +418661 892211 +418667 1.03667e+06 +418672 901594 +418700 1.06561e+06 +418708 786617 +418708 946772 +418711 715525 +418722 851947 +418725 757275 +418728 807731 +418731 728586 +418742 791525 +418742 801319 +418758 728017 +418767 938231 +418775 880669 +418778 879028 +418778 936783 +418786 713831 +418789 927892 +418792 878431 +418800 880078 +418814 878831 +418822 729775 +418847 882039 +418850 877844 +418875 883053 +418889 837789 +418889 879033 +418889 910564 +418897 879889 +418897 952319 +418906 713928 +418908 806764 +418919 933994 +418922 884722 +418931 911506 +418956 1.06204e+06 +418969 922781 +418975 840372 +418978 878139 +418983 935289 +418994 798456 +418994 879403 +419000 710903 +419003 748286 +419006 878567 +419011 837150 +419028 919214 +419039 777622 +419044 912544 +419050 803439 +419053 739767 +419056 878836 +419058 806906 +419067 713911 +419075 885992 +419086 727606 +419086 771333 +419092 950647 +419094 920842 +419103 880717 +419117 860100 +419125 881347 +419150 719094 +419164 833978 +419172 878956 +419172 1.04039e+06 +419183 834306 +419192 775392 +419194 917808 +419200 846306 +419200 886886 +419203 796406 +419203 1.12049e+06 +419211 730606 +419211 878092 +419211 913853 +419219 914167 +419228 1.11813e+06 +419233 855283 +419236 710528 +419239 890686 +419244 740617 +419258 878358 +419267 739131 +419269 739978 +419289 954936 +419292 726278 +419294 887503 +419297 888608 +419300 968114 +419308 889644 +419311 833269 +419317 879889 +419353 878656 +419375 964769 +419386 761361 +419389 719600 +419403 850006 +419403 1.03808e+06 +419414 931031 +419439 856325 +419442 848839 +419444 712861 +419464 863389 +419475 805544 +419503 972236 +419508 882422 +419511 890644 +419536 735111 +419539 727892 +419539 752808 +419539 860647 +419542 723028 +419550 879400 +419556 717028 +419558 786442 +419558 878708 +419561 1.21476e+06 +419572 765183 +419572 836597 +419575 864856 +419575 880808 +419578 783856 +419583 706678 +419583 853250 +419589 900992 +419611 757436 +419633 878272 +419633 879789 +419633 897744 +419633 1.03926e+06 +419636 781911 +419639 908175 +419656 716750 +419667 711875 +419667 925767 +419672 878075 +419675 1.21917e+06 +419708 845258 +419717 757436 +419750 880072 +419758 1.11856e+06 +419761 725922 +419767 714592 +419789 765158 +419797 736564 +419817 726511 +419825 793389 +419833 980833 +419836 909561 +419842 846619 +419842 861086 +419847 880797 +419850 862997 +419853 724467 +419856 718992 +419856 739886 +419861 773111 +419861 895792 +419864 843472 +419867 838311 +419872 725453 +419872 969139 +419889 886867 +419903 709756 +419942 882922 +419944 707250 +419950 881856 +419956 919675 +419956 925767 +419969 918619 +419972 741053 +419975 765375 +419981 911414 +419983 921972 +419994 881450 +419994 975981 +420003 803183 +420022 906069 +420028 715153 +420036 798111 +420039 839450 +420039 879703 +420044 877300 +420061 841900 +420064 854500 +420069 927753 +420075 962494 +420083 916439 +420086 920908 +420111 878406 +420128 965725 +420128 1.21408e+06 +420133 898906 +420144 865194 +420147 893322 +420153 943772 +420161 767272 +420167 740767 +420167 931633 +420178 933150 +420178 953550 +420181 740153 +420189 878028 +420225 945450 +420228 934522 +420231 706833 +420236 719503 +420253 1.21599e+06 +420256 881783 +420258 858156 +420267 960969 +420272 733297 +420317 942406 +420333 712194 +420333 877333 +420333 878833 +420333 880833 +420342 915975 +420347 936197 +420358 916819 +420372 882811 +420386 783411 +420392 940275 +420406 877825 +420411 876900 +420417 706728 +420428 880797 +420428 1.01042e+06 +420431 733456 +420436 739478 +420439 847575 +420456 802700 +420472 978336 +420494 929078 +420500 718806 +420500 725833 +420503 894311 +420503 904139 +420528 1.24283e+06 +420533 1.24266e+06 +420544 791583 +420544 1.04952e+06 +420569 947286 +420583 701792 +420583 739097 +420592 833908 +420592 910072 +420594 914425 +420597 938800 +420600 754281 +420639 832611 +420650 864950 +420650 1.04181e+06 +420658 948667 +420661 917953 +420664 879372 +420667 851361 +420683 955914 +420689 906656 +420694 761550 +420700 843306 +420708 832467 +420711 901739 +420711 916667 +420719 839717 +420722 717139 +420722 877228 +420750 708806 +420750 720339 +420750 794833 +420758 756408 +420775 739533 +420775 784300 +420781 768456 +420825 1.10954e+06 +420833 710189 +420833 713972 +420842 880131 +420853 836825 +420858 877175 +420864 779225 +420867 714750 +420869 864558 +420886 852347 +420897 768081 +420900 784944 +420914 881217 +420917 707061 +420925 888511 +420931 707931 +420933 849858 +420936 926756 +420942 883025 +420944 901567 +420944 918692 +420950 831897 +420950 899781 +420953 879375 +420964 1.11876e+06 +420969 792356 +420972 886928 +420978 885303 +420983 760497 +420986 759183 +420997 877808 +421014 725903 +421022 898333 +421028 772339 +421033 762625 +421042 723194 +421042 793333 +421058 842483 +421069 726208 +421069 936494 +421072 891792 +421081 859744 +421081 877358 +421083 720792 +421083 912850 +421094 792833 +421103 880342 +421111 716667 +421125 929883 +421128 760214 +421142 856378 +421142 967069 +421156 759592 +421161 721139 +421167 864542 +421181 880961 +421186 791986 +421200 855328 +421211 882578 +421217 770375 +421236 711792 +421236 724319 +421250 727500 +421256 894036 +421261 895792 +421269 892556 +421275 878289 +421275 961492 +421286 980294 +421292 800853 +421297 768211 +421306 715417 +421311 864072 +421333 758967 +421350 877581 +421372 769372 +421389 832417 +421392 879289 +421394 831783 +421397 715167 +421403 800153 +421417 712500 +421428 770550 +421458 707403 +421458 848089 +421461 771119 +421483 964881 +421486 726083 +421486 746486 +421503 840378 +421514 879597 +421519 944742 +421539 881361 +421547 897397 +421550 710092 +421564 777958 +421578 787153 +421583 723292 +421592 795956 +421606 842461 +421608 880814 +421611 932969 +421619 770944 +421619 789756 +421625 710417 +421625 834031 +421631 1.23647e+06 +421653 954367 +421656 882942 +421658 957928 +421664 935017 +421667 837817 +421669 768208 +421672 858469 +421675 878969 +421681 884281 +421686 920233 +421694 751297 +421706 880478 +421711 878444 +421717 923061 +421728 789481 +421778 846431 +421783 879978 +421811 723611 +421817 878003 +421817 883303 +421817 949767 +421861 863083 +421867 862606 +421872 935956 +421875 713069 +421878 927150 +421889 1.20345e+06 +421908 917850 +421917 1.1225e+06 +421933 843911 +421933 878664 +421936 924653 +421944 712000 +421944 719064 +421947 1.22708e+06 +421956 741342 +421958 707264 +421958 733625 +421969 880933 +421986 765528 +421992 975264 +421997 878092 +422008 882144 +422011 855800 +422039 915239 +422042 726167 +422047 834853 +422050 845528 +422064 781378 +422067 861667 +422069 1.21736e+06 +422075 880556 +422078 881406 +422094 857844 +422097 764936 +422119 882381 +422122 862719 +422125 721917 +422125 723458 +422125 881525 +422136 742192 +422139 721028 +422139 831939 +422156 798344 +422169 880494 +422172 738650 +422175 782756 +422178 858911 +422189 707861 +422192 860514 +422194 879794 +422208 709403 +422208 863694 +422222 710000 +422222 833967 +422231 780347 +422236 761836 +422242 918742 +422247 928744 +422250 1.21781e+06 +422272 1.114e+06 +422278 720472 +422281 755269 +422286 715231 +422306 970175 +422328 763428 +422328 962278 +422331 843272 +422339 738828 +422347 889489 +422353 721417 +422358 964722 +422383 853350 +422383 911869 +422408 832697 +422411 836131 +422411 883161 +422417 708903 +422417 711667 +422425 882019 +422431 847531 +422433 1.13881e+06 +422439 719928 +422444 831458 +422456 930644 +422458 712833 +422458 844014 +422458 1.22788e+06 +422464 882428 +422483 736536 +422486 886083 +422500 710667 +422506 831786 +422508 842131 +422525 788058 +422528 710028 +422528 737914 +422539 795047 +422542 733667 +422542 777908 +422564 725167 +422564 902794 +422575 832111 +422578 983461 +422583 845997 +422586 904228 +422589 881392 +422597 722403 +422603 738100 +422614 940683 +422625 718028 +422631 880039 +422639 792589 +422639 888442 +422653 898258 +422661 892411 +422667 720833 +422669 797108 +422675 947336 +422689 715244 +422692 968647 +422694 716167 +422697 1.04741e+06 +422703 776061 +422703 945483 +422711 890939 +422711 950928 +422714 939269 +422722 849633 +422733 831344 +422750 786731 +422756 1.22817e+06 +422761 881919 +422769 724014 +422781 749164 +422786 967264 +422789 878342 +422792 714167 +422806 942906 +422808 915303 +422814 833864 +422825 831753 +422831 879531 +422833 712333 +422833 837458 +422861 737392 +422867 917806 +422875 733208 +422886 772186 +422886 854181 +422900 882247 +422917 855872 +422933 754797 +422942 833100 +422944 791000 +422964 712931 +422967 896211 +422986 910147 +422989 739989 +423019 709083 +423031 855503 +423042 732486 +423056 933000 +423067 780161 +423083 852192 +423122 952503 +423125 722083 +423125 861131 +423136 1.22966e+06 +423139 893592 +423147 753919 +423147 884486 +423150 921919 +423153 934342 +423156 955983 +423178 902214 +423181 840206 +423189 851425 +423189 882581 +423194 716417 +423200 890581 +423208 713647 +423211 851797 +423217 964892 +423217 1.03072e+06 +423222 777386 +423222 795783 +423222 831764 +423222 1.11297e+06 +423236 925992 +423242 834003 +423250 726417 +423253 753128 +423256 833311 +423256 878411 +423267 1.22874e+06 +423278 776614 +423281 855697 +423286 881989 +423289 759681 +423292 757703 +423292 788683 +423314 830458 +423364 853522 +423367 767889 +423369 712097 +423369 773181 +423369 784583 +423369 832733 +423383 838886 +423403 725056 +423428 879981 +423428 890519 +423439 912483 +423442 793097 +423444 880417 +423447 882739 +423450 954714 +423458 715528 +423461 776617 +423472 768456 +423483 878842 +423497 900067 +423497 977917 +423508 738033 +423533 880933 +423564 732853 +423569 880767 +423583 710603 +423600 940519 +423600 975964 +423608 858794 +423608 930994 +423617 927683 +423636 878447 +423642 735953 +423642 790558 +423683 833528 +423683 882925 +423694 719486 +423703 879019 +423708 711833 +423708 725986 +423717 880900 +423736 725208 +423750 709833 +423758 829375 +423758 896331 +423764 712361 +423783 846986 +423786 973567 +423794 898222 +423800 881042 +423806 768736 +423811 881397 +423828 859569 +423861 829119 +423875 711000 +423883 958664 +423886 794414 +423886 895261 +423917 710333 +423917 715667 +423928 830497 +423933 883403 +423944 776969 +423944 917608 +423953 736983 +423953 946336 +423958 711792 +423967 881836 +423972 751739 +423986 880525 +423997 887403 +424031 862736 +424039 963583 +424067 924553 +424072 746147 +424075 1.24421e+06 +424078 772239 +424081 881317 +424083 710125 +424083 710542 +424086 882064 +424092 828919 +424094 774217 +424103 725314 +424106 880261 +424133 736736 +424133 890092 +424153 711569 +424156 964181 +424161 922147 +424167 716833 +424167 904289 +424169 880739 +424183 711067 +424222 886136 +424222 949894 +424228 721056 +424233 781575 +424247 941500 +424250 710667 +424264 709194 +424286 879239 +424286 1.12124e+06 +424292 764953 +424294 970894 +424297 913308 +424311 834833 +424331 829242 +424333 714500 +424361 1.23171e+06 +424364 893319 +424367 828769 +424375 1.22858e+06 +424392 1.23327e+06 +424394 837439 +424400 793319 +424400 856489 +424406 764969 +424408 736614 +424414 849242 +424417 760325 +424428 910061 +424433 850181 +424436 829069 +424444 716875 +424450 909319 +424461 878328 +424472 712250 +424500 732458 +424511 841806 +424514 844325 +424522 711375 +424528 750642 +424567 839464 +424578 986472 +424583 710667 +424583 713958 +424592 929383 +424594 764869 +424606 831347 +424606 836517 +424606 856964 +424614 777772 +424614 951517 +424625 831042 +424631 789361 +424642 926281 +424644 833764 +424647 710106 +424661 781153 +424667 709500 +424667 979058 +424669 922564 +424683 738167 +424683 791772 +424683 829556 +424683 896439 +424686 918892 +424689 922194 +424692 922808 +424694 938158 +424706 939933 +424708 709181 +424711 831422 +424717 884322 +424728 1.22802e+06 +424733 832219 +424733 917342 +424739 964133 +424750 957853 +424756 920636 +424772 726083 +424772 880956 +424775 830278 +424789 878236 +424792 711528 +424794 793342 +424800 711000 +424806 831669 +424806 834756 +424817 912722 +424842 914553 +424844 911228 +424850 830278 +424858 831053 +424889 960722 +424892 784811 +424892 955447 +424894 831447 +424908 762975 +424922 906428 +424928 923428 +424931 890367 +424947 1.07827e+06 +424964 832228 +424964 899894 +424969 828889 +424972 829372 +424975 941678 +424983 883297 +424994 975417 +425000 708583 +425000 952928 +425000 964000 +425006 906644 +425022 775075 +425025 887289 +425031 831836 +425047 711961 +425061 972033 +425064 710733 +425083 890317 +425092 846558 +425144 907514 +425158 736106 +425158 832733 +425183 737517 +425194 708972 +425203 933758 +425222 833061 +425225 932511 +425233 769769 +425247 835364 +425250 717603 +425256 710958 +425272 964828 +425278 709292 +425278 924453 +425292 712286 +425292 858553 +425294 837803 +425297 1.14305e+06 +425300 784731 +425311 755239 +425311 882481 +425311 885994 +425314 989778 +425328 904344 +425333 831464 +425339 784233 +425339 1.14364e+06 +425347 881436 +425358 1.13792e+06 +425364 997003 +425378 834811 +425381 883508 +425383 1.10114e+06 +425389 710486 +425392 829494 +425422 766664 +425436 716500 +425442 791669 +425458 714750 +425464 711742 +425467 832114 +425486 752456 +425489 748214 +425500 998622 +425511 946836 +425536 882944 +425536 1.10109e+06 +425542 930531 +425567 834739 +425578 888650 +425583 708806 +425586 1.13763e+06 +425608 776964 +425611 715903 +425631 1.1446e+06 +425636 848358 +425669 926219 +425678 775900 +425697 903806 +425700 921603 +425703 1.14607e+06 +425733 902308 +425750 709306 +425750 719986 +425761 1.1173e+06 +425775 881050 +425775 927867 +425778 1.21865e+06 +425781 885408 +425794 779428 +425803 830303 +425814 948458 +425819 724931 +425822 762094 +425833 718028 +425836 832456 +425842 886325 +425842 928842 +425847 878211 +425858 995375 +425875 726000 +425878 763672 +425883 959672 +425903 723103 +425906 749456 +425936 835994 +425939 861017 +425944 717250 +425953 789414 +425958 722272 +425961 760936 +425969 980333 +425972 828781 +425986 916419 +425989 976453 +425992 991422 +425992 1.14759e+06 +426011 761808 +426011 896383 +426017 887075 +426025 965589 +426028 850931 +426042 725569 +426042 727397 +426056 904297 +426056 950025 +426072 839294 +426081 833439 +426081 1.13782e+06 +426083 720764 +426103 719394 +426111 715750 +426114 833286 +426122 884822 +426144 941458 +426153 770925 +426153 774028 +426158 706625 +426169 767253 +426183 825311 +426183 893761 +426192 1.13676e+06 +426208 919000 +426214 951731 +426219 738331 +426225 972642 +426236 857603 +426242 731181 +426242 753319 +426242 790672 +426261 830336 +426272 905919 +426275 892531 +426278 962914 +426289 780547 +426289 850242 +426292 847389 +426319 707833 +426331 886436 +426333 713167 +426339 735542 +426342 745644 +426369 761792 +426375 709500 +426383 790281 +426389 832911 +426392 920469 +426406 845153 +426411 952094 +426425 737433 +426433 736092 +426444 914011 +426456 846489 +426461 924628 +426506 1.12192e+06 +426525 737567 +426539 739292 +426544 1.11604e+06 +426550 862019 +426567 935008 +426583 711375 +426606 780858 +426606 840731 +426608 770542 +426611 709972 +426642 939042 +426653 715736 +426658 715889 +426658 743100 +426667 717056 +426669 841742 +426708 892089 +426714 923372 +426728 885444 +426733 919133 +426736 952903 +426739 856447 +426764 768233 +426778 744858 +426781 754989 +426781 882761 +426792 708417 +426806 831339 +426811 827369 +426822 768689 +426828 890186 +426831 901175 +426831 1.03412e+06 +426833 966833 +426836 915339 +426839 1.02689e+06 +426856 787769 +426861 720444 +426881 880514 +426889 842831 +426894 907119 +426903 735650 +426911 738692 +426919 737250 +426950 738075 +426958 724533 +426981 878944 +427006 740342 +427006 749247 +427008 731092 +427011 898669 +427022 834028 +427022 922253 +427047 737553 +427069 711636 +427078 894369 +427103 925828 +427119 732042 +427125 764219 +427128 954364 +427131 854619 +427144 909906 +427156 780058 +427167 708792 +427178 738339 +427183 1.02464e+06 +427194 824922 +427197 962483 +427200 942000 +427203 1.11885e+06 +427208 942150 +427222 844275 +427242 1.14518e+06 +427250 1.10931e+06 +427256 778744 +427258 924753 +427261 877828 +427283 736922 +427289 974953 +427294 944475 +427300 737017 +427317 937328 +427325 845556 +427342 904783 +427356 946689 +427358 834189 +427361 903342 +427364 1.23422e+06 +427369 844839 +427400 781331 +427414 882242 +427419 932022 +427442 736919 +427456 895947 +427458 1.24496e+06 +427469 737594 +427469 844011 +427494 955514 +427519 929753 +427528 927950 +427533 847464 +427539 767028 +427583 758847 +427597 1.05382e+06 +427600 772267 +427622 848964 +427622 849925 +427625 1.04452e+06 +427631 882142 +427647 714403 +427653 714681 +427672 718128 +427675 787442 +427678 786136 +427703 832642 +427733 723836 +427739 918822 +427742 737006 +427756 889439 +427758 1.14703e+06 +427761 710778 +427794 969289 +427797 738461 +427803 892992 +427819 949483 +427844 832397 +427844 877661 +427847 851383 +427847 926675 +427853 884050 +427858 910994 +427861 724869 +427861 1.12854e+06 +427875 861089 +427892 855167 +427914 838464 +427919 836278 +427925 736817 +427942 961653 +427956 747536 +427958 746175 +427958 778172 +427964 1.12253e+06 +427972 788236 +427978 837050 +427981 761097 +428028 830131 +428047 1.02203e+06 +428081 922581 +428092 827558 +428103 898619 +428122 1.14898e+06 +428125 708778 +428125 860186 +428128 945267 +428139 720236 +428142 739400 +428144 837825 +428144 896350 +428147 959731 +428208 824861 +428214 776689 +428228 839444 +428239 721817 +428247 832647 +428256 788236 +428258 958072 +428264 739647 +428264 780900 +428264 842194 +428269 755450 +428289 965592 +428294 1.03e+06 +428297 786364 +428331 1.0873e+06 +428336 887322 +428353 716494 +428353 890675 +428386 841783 +428397 766936 +428406 1.06365e+06 +428408 856636 +428417 708611 +428419 918019 +428433 717356 +428442 828844 +428461 936139 +428467 948517 +428475 907106 +428475 920914 +428508 725583 +428522 834431 +428533 749858 +428536 893703 +428539 914053 +428542 978969 +428558 726036 +428583 709306 +428597 895381 +428600 1.06268e+06 +428614 1.05872e+06 +428642 782806 +428667 883333 +428667 1.06312e+06 +428667 1.0986e+06 +428686 773358 +428686 912358 +428689 769781 +428692 849031 +428694 856447 +428706 719522 +428708 858650 +428711 973969 +428714 1.12445e+06 +428728 1.00551e+06 +428739 987011 +428744 740469 +428778 885861 +428781 731972 +428786 840639 +428792 752514 +428794 884742 +428806 713278 +428814 882067 +428836 1.24072e+06 +428853 751936 +428853 909233 +428858 878631 +428864 788786 +428903 843514 +428906 785781 +428933 787942 +428933 932150 +428933 951508 +428944 739283 +428950 774350 +428958 928022 +428964 827689 +428986 756406 +429000 735858 +429000 784922 +429000 904308 +429006 786706 +429011 733519 +429022 774200 +429028 736878 +429033 735631 +429039 786925 +429042 722083 +429047 768631 +429047 776117 +429056 745722 +429058 881389 +429061 1.08583e+06 +429072 857919 +429086 765406 +429097 857631 +429106 767969 +429106 878606 +429108 745744 +429114 988489 +429119 777458 +429119 839847 +429125 824869 +429133 857053 +429169 835064 +429169 892178 +429189 767267 +429206 830450 +429208 1.12465e+06 +429261 893844 +429275 836300 +429275 1.2328e+06 +429289 888369 +429294 847986 +429294 852131 +429300 758531 +429303 732431 +429314 746231 +429317 765664 +429336 722786 +429336 853419 +429344 884053 +429347 746139 +429361 1.14405e+06 +429375 708394 +429375 880486 +429378 937931 +429386 737903 +429386 741886 +429386 919500 +429389 1.14712e+06 +429392 754614 +429392 840294 +429406 879958 +429411 856100 +429414 832892 +429442 1.12838e+06 +429461 831239 +429469 764294 +429478 743708 +429511 1.23363e+06 +429522 775906 +429528 925361 +429544 743769 +429550 1.153e+06 +429553 742856 +429558 772211 +429569 944408 +429572 838306 +429575 770578 +429575 916306 +429583 742333 +429597 878614 +429600 784058 +429603 901300 +429614 880125 +429617 771403 +429628 918081 +429639 787381 +429644 825231 +429647 786778 +429653 921994 +429658 788703 +429697 772306 +429708 824250 +429717 904331 +429731 778531 +429742 954972 +429744 741514 +429747 963181 +429764 881083 +429783 779844 +429792 956878 +429814 709483 +429819 841178 +429819 849469 +429825 774092 +429828 763408 +429836 906553 +429853 931917 +429856 839283 +429872 850711 +429875 960103 +429908 895331 +429933 978625 +429956 714553 +429958 849425 +429958 964850 +429978 841767 +429981 781878 +430008 738494 +430014 857681 +430017 847397 +430019 759772 +430022 899903 +430036 890164 +430036 916522 +430044 883767 +430050 980594 +430056 888072 +430058 843717 +430067 743681 +430069 936028 +430072 960581 +430078 842847 +430086 897383 +430106 786378 +430114 750044 +430117 882314 +430125 829281 +430125 836875 +430125 879725 +430125 892897 +430142 884725 +430150 750358 +430156 898953 +430167 880069 +430183 911825 +430203 788806 +430203 1.23292e+06 +430208 784956 +430214 966306 +430247 830778 +430250 1.08379e+06 +430256 749864 +430256 1.02556e+06 +430258 777456 +430281 733817 +430297 760047 +430333 710747 +430344 764483 +430344 766242 +430347 835181 +430361 711839 +430386 788644 +430386 856700 +430389 750708 +430389 879064 +430392 763044 +430431 880789 +430433 748600 +430444 911781 +430450 758669 +430467 770956 +430467 903797 +430472 762389 +430475 762208 +430481 761478 +430483 753789 +430486 765631 +430494 880075 +430514 833189 +430517 911411 +430517 913892 +430519 890756 +430522 929483 +430528 743442 +430581 762078 +430586 741969 +430592 923175 +430606 881064 +430608 884036 +430619 944267 +430622 893339 +430631 838511 +430631 862283 +430639 772336 +430639 859347 +430642 769906 +430650 1.24138e+06 +430653 760789 +430653 764733 +430656 952836 +430658 782700 +430664 926722 +430692 772992 +430700 942328 +430706 921500 +430717 707631 +430719 959042 +430731 894011 +430733 752881 +430736 755986 +430747 731544 +430753 757072 +430761 760011 +430761 887742 +430761 891994 +430769 861969 +430772 781872 +430775 894456 +430794 755397 +430794 757511 +430797 961753 +430797 982928 +430806 882611 +430806 967733 +430814 889117 +430825 756339 +430831 737850 +430831 971603 +430842 768697 +430844 862203 +430847 915681 +430853 779425 +430853 908831 +430858 706975 +430869 956269 +430881 707367 +430883 939900 +430886 843869 +430892 878875 +430906 734992 +430906 775153 +430922 753800 +430925 756517 +430944 790569 +430967 714656 +430972 895042 +430978 761456 +430978 852289 +430978 884022 +430978 938017 +430986 774422 +431000 735822 +431008 747733 +431008 752331 +431025 936017 +431044 742653 +431044 884592 +431047 846919 +431050 883419 +431053 752917 +431058 880694 +431064 762181 +431081 707781 +431086 774878 +431117 883922 +431117 884992 +431128 752714 +431128 946828 +431133 879000 +431144 896556 +431153 761461 +431167 839700 +431183 893794 +431186 836950 +431192 1.24407e+06 +431194 969611 +431200 855600 +431219 752919 +431225 1.23411e+06 +431264 934775 +431292 948989 +431306 714536 +431319 861547 +431331 1.1569e+06 +431333 724444 +431339 709269 +431339 882219 +431344 907053 +431347 761303 +431372 897467 +431378 725103 +431381 755711 +431414 951442 +431428 930042 +431433 771894 +431461 881661 +431464 917644 +431467 883067 +431497 977172 +431500 786969 +431536 932008 +431547 776158 +431564 985411 +431567 834106 +431572 753331 +431575 879017 +431586 763331 +431600 953272 +431606 1.23367e+06 +431608 857100 +431633 879644 +431636 730728 +431661 835244 +431683 890667 +431689 862639 +431703 970811 +431706 786906 +431722 733281 +431725 790361 +431725 1.01732e+06 +431742 879242 +431753 900678 +431767 838928 +431767 897947 +431769 730575 +431769 848464 +431772 1.24186e+06 +431775 837342 +431775 852528 +431789 881172 +431797 718228 +431800 954767 +431806 879006 +431811 958558 +431817 956553 +431819 903244 +431825 992917 +431836 892136 +431836 918639 +431839 889883 +431847 841150 +431850 904431 +431864 778042 +431867 844744 +431886 961333 +431906 1.12344e+06 +431911 960056 +431919 894556 +431947 887289 +431972 766547 +431975 942194 +431978 708742 +431992 785764 +432011 862389 +432053 962947 +432081 715381 +432097 776933 +432122 774303 +432122 829897 +432122 850736 +432136 779394 +432167 1.23341e+06 +432200 783872 +432200 857511 +432206 768153 +432219 717144 +432233 855514 +432239 771864 +432256 750617 +432256 979656 +432264 780269 +432294 831967 +432311 763011 +432322 994300 +432342 862483 +432344 708100 +432358 1.0811e+06 +432361 708208 +432364 879844 +432369 940411 +432375 879786 +432378 770617 +432378 947511 +432381 761411 +432386 724250 +432386 789100 +432397 975775 +432403 758842 +432417 752572 +432444 738328 +432464 781939 +432467 924358 +432472 767239 +432472 790503 +432478 760006 +432489 705997 +432506 895014 +432508 837942 +432547 861097 +432561 862675 +432586 828175 +432617 708658 +432625 936369 +432658 708650 +432669 735850 +432681 825308 +432694 914756 +432708 897219 +432717 769894 +432756 826211 +432789 900436 +432794 962325 +432814 835297 +432842 928108 +432867 761464 +432867 787106 +432869 897239 +432872 932019 +432881 777936 +432917 846075 +432925 850814 +432928 942178 +432947 945114 +432967 879875 +432983 724828 +432992 736356 +433000 736844 +433006 735864 +433008 965925 +433011 1.03825e+06 +433033 917856 +433036 707339 +433044 709761 +433050 888447 +433058 713247 +433058 1.00658e+06 +433072 964317 +433094 736444 +433097 788264 +433103 885181 +433139 895264 +433175 908447 +433178 883789 +433186 983464 +433197 879533 +433211 765792 +433228 764175 +433239 881667 +433247 951497 +433267 783892 +433269 751872 +433269 830803 +433300 785550 +433317 837381 +433336 882861 +433344 757483 +433347 903867 +433361 858108 +433369 833525 +433378 787150 +433381 890153 +433439 960019 +433525 974369 +433542 968917 +433561 1.24204e+06 +433617 704772 +433622 912164 +433636 1.24192e+06 +433639 925539 +433653 721739 +433681 1.24216e+06 +433714 937733 +433719 835833 +433767 723472 +433767 998586 +433789 846597 +433814 921139 +433814 1.12122e+06 +433817 879406 +433839 705453 +433844 890450 +433858 939464 +433864 951481 +433869 988442 +433872 878756 +433897 710656 +433903 894028 +433903 1.23311e+06 +433953 907742 +433956 854678 +433958 727011 +433961 944781 +433975 971361 +433981 764778 +433989 979833 +433992 957517 +433997 885325 +434017 948325 +434056 887050 +434061 761261 +434067 1.24223e+06 +434078 732600 +434081 844750 +434081 850386 +434097 843289 +434100 863486 +434114 1.06279e+06 +434131 1.06249e+06 +434139 719856 +434142 734881 +434147 842306 +434161 955344 +434167 863569 +434194 839508 +434194 935331 +434197 858000 +434203 828297 +434222 951019 +434222 1.23297e+06 +434231 972603 +434253 881833 +434253 984069 +434261 737128 +434269 826714 +434272 961756 +434308 825425 +434314 966969 +434317 880464 +434317 1.03474e+06 +434361 927822 +434392 707747 +434442 716478 +434442 932208 +434464 968356 +434478 892397 +434506 836964 +434514 886311 +434536 964339 +434553 765108 +434556 953206 +434578 888372 +434586 839303 +434594 762292 +434597 898683 +434636 1.1426e+06 +434667 707942 +434667 1.12033e+06 +434675 859419 +434697 1.11966e+06 +434706 879506 +434711 897442 +434717 729778 +434744 897703 +434764 839206 +434800 1.10762e+06 +434836 753369 +434908 854439 +434911 833969 +434919 1.16419e+06 +434925 704539 +434942 885447 +434958 893083 +434967 737767 +434967 912894 +434997 878503 +435008 704433 +435050 940878 +435053 929439 +435061 906681 +435072 863475 +435097 925036 +435169 732367 +435172 703781 +435172 884511 +435181 960181 +435197 1.14314e+06 +435206 917694 +435208 882289 +435236 835433 +435244 846947 +435250 841228 +435264 1.11932e+06 +435267 827353 +435278 714708 +435281 963583 +435325 900025 +435336 946314 +435336 1.0963e+06 +435364 937119 +435378 893000 +435392 890067 +435392 894625 +435408 1.16562e+06 +435422 891072 +435456 1.16812e+06 +435500 967000 +435503 857719 +435517 975072 +435522 879617 +435553 920100 +435556 734042 +435569 908886 +435592 863456 +435611 916358 +435642 1.1908e+06 +435653 927192 +435656 889064 +435669 761281 +435681 835142 +435681 1.00745e+06 +435689 860394 +435697 878233 +435725 932811 +435758 1.24174e+06 +435781 703222 +435825 964675 +435831 753456 +435839 712078 +435864 1.19053e+06 +435911 717372 +435914 884436 +435931 730456 +435944 838889 +435947 732661 +435964 1.11963e+06 +435978 882789 +435978 972903 +435986 1.23282e+06 +436008 831747 +436011 897936 +436033 840697 +436086 863639 +436106 729731 +436122 1.16391e+06 +436153 838419 +436156 842472 +436178 1.16933e+06 +436192 879519 +436200 955961 +436208 949883 +436222 1.16237e+06 +436228 877944 +436231 969422 +436242 725189 +436253 753675 +436275 897708 +436319 1.11773e+06 +436333 887294 +436347 914967 +436350 959325 +436367 1.13299e+06 +436375 941019 +436406 721444 +436414 702414 +436422 722522 +436433 760689 +436442 760864 +436461 1.08211e+06 +436481 933681 +436489 723197 +436522 903439 +436522 944608 +436522 947267 +436528 902233 +436536 834661 +436536 977825 +436542 962125 +436569 908542 +436575 715008 +436583 880069 +436589 1.23318e+06 +436614 702558 +436619 912183 +436631 1.16686e+06 +436647 968106 +436667 929744 +436669 946192 +436703 920831 +436703 935758 +436714 1.16815e+06 +436725 1.11914e+06 +436728 723092 +436728 843806 +436767 1.16911e+06 +436769 703717 +436775 951714 +436794 704447 +436808 1.14363e+06 +436861 885464 +436869 923889 +436936 883608 +436953 716311 +436958 1.1201e+06 +436972 1.14351e+06 +436981 854836 +436983 863639 +436986 954683 +437022 722900 +437022 910131 +437025 1.24096e+06 +437058 925719 +437067 730286 +437069 1.16619e+06 +437072 889900 +437094 980294 +437097 929694 +437100 749747 +437100 829317 +437156 984847 +437175 965025 +437208 919767 +437208 1.11989e+06 +437233 1.11111e+06 +437242 973886 +437292 878106 +437322 834511 +437347 702083 +437353 887811 +437403 928692 +437408 902722 +437419 907792 +437461 937286 +437467 989581 +437467 1.22461e+06 +437486 879769 +437508 877144 +437567 845858 +437569 716886 +437594 913464 +437614 967400 +437622 947069 +437633 915683 +437639 933289 +437667 1.03598e+06 +437678 941656 +437731 884469 +437817 864331 +437853 1.16942e+06 +437861 969272 +437867 754922 +437914 893197 +437950 953200 +437964 702594 +437972 900772 +437978 1.23058e+06 +437981 730881 +438006 701872 +438014 912394 +438019 830008 +438067 917914 +438078 886747 +438083 917528 +438108 993303 +438114 884833 +438194 831808 +438194 847686 +438261 967058 +438261 1.11789e+06 +438264 882461 +438278 944369 +438300 832700 +438306 906214 +438333 726344 +438333 880178 +438339 878200 +438339 1.01509e+06 +438342 704389 +438350 848669 +438419 938317 +438422 888358 +438442 889600 +438447 826514 +438456 921889 +438486 734239 +438500 963983 +438508 891217 +438522 696286 +438536 839650 +438547 1.04204e+06 +438556 924883 +438569 701036 +438600 760058 +438664 951167 +438667 930508 +438706 956000 +438725 961283 +438728 933011 +438731 1.11748e+06 +438736 1.16498e+06 +438750 855100 +438769 1.16994e+06 +438792 901653 +438822 844847 +438836 894933 +438844 912350 +438867 1.11677e+06 +438881 941564 +438883 1.00712e+06 +438906 928475 +438931 909903 +438933 756739 +438939 934936 +438958 753928 +438992 910811 +439006 852581 +439011 858517 +439097 1.00058e+06 +439106 698211 +439125 880356 +439144 699658 +439147 1.13612e+06 +439147 1.16197e+06 +439150 877472 +439181 1.23023e+06 +439186 1.22782e+06 +439225 902714 +439250 726664 +439275 699764 +439289 939558 +439325 1.03575e+06 +439389 949294 +439394 829969 +439411 832714 +439442 908128 +439461 761194 +439500 880842 +439547 862800 +439553 864525 +439583 947944 +439633 912561 +439681 889433 +439700 1.16818e+06 +439706 898167 +439742 756156 +439747 759111 +439781 756097 +439786 905039 +439792 711208 +439808 844864 +439822 1.17237e+06 +439825 968142 +439828 1.24099e+06 +439831 839589 +439844 918692 +439878 957556 +439883 922283 +439925 721294 +439925 1.02241e+06 +439961 700611 +440006 963172 +440011 759667 +440047 940656 +440056 914419 +440061 971136 +440078 760447 +440078 1.16916e+06 +440108 975264 +440125 757947 +440153 731678 +440164 709811 +440169 1.07955e+06 +440192 847994 +440217 924697 +440247 885425 +440261 900739 +440267 1.16962e+06 +440275 917697 +440281 928544 +440289 881628 +440300 927506 +440328 926453 +440394 887442 +440394 1.01665e+06 +440419 890983 +440422 954358 +440444 929975 +440461 829942 +440464 1.23021e+06 +440483 734603 +440486 836958 +440489 1.2335e+06 +440494 965950 +440500 916392 +440508 944181 +440522 1.23086e+06 +440536 711289 +440536 982753 +440547 707133 +440583 1.21314e+06 +440625 916956 +440661 878842 +440669 761306 +440692 927556 +440717 882989 +440717 1.11448e+06 +440747 892878 +440758 885250 +440778 935072 +440783 1.16933e+06 +440789 691822 +440792 985692 +440806 1.03231e+06 +440817 913489 +440839 932258 +440872 697994 +440881 758075 +440886 876575 +440953 693761 +440978 702317 +440978 918167 +440997 1.04628e+06 +441003 702153 +441025 851469 +441036 691094 +441036 1.2313e+06 +441058 942186 +441103 949044 +441108 887125 +441117 703922 +441125 1.03068e+06 +441161 937078 +441197 701081 +441278 763333 +441303 922514 +441306 909981 +441319 917186 +441333 730794 +441372 1.23065e+06 +441403 881639 +441447 878214 +441511 726569 +441511 1.03308e+06 +441522 720378 +441536 879567 +441536 928994 +441539 875692 +441544 757092 +441572 1.08871e+06 +441597 750319 +441636 939992 +441650 921714 +441650 938811 +441661 925347 +441672 732544 +441733 940336 +441742 932461 +441769 725061 +441772 880642 +441839 734361 +441858 884625 +441936 852133 +441969 725025 +441992 756072 +441994 877214 +442014 926461 +442022 884464 +442044 938153 +442097 690653 +442097 951283 +442133 719114 +442139 705453 +442139 894922 +442153 757975 +442189 935678 +442194 1.23204e+06 +442231 954692 +442236 705139 +442272 934444 +442275 918350 +442300 697758 +442303 697672 +442311 952639 +442333 956189 +442333 958719 +442361 964808 +442389 949756 +442392 876411 +442394 760861 +442444 697719 +442444 862961 +442444 863242 +442511 1.16968e+06 +442519 854011 +442528 915014 +442597 888647 +442600 725758 +442611 962872 +442619 884153 +442633 1.0495e+06 +442658 883142 +442694 835147 +442722 883389 +442722 929853 +442728 1.21173e+06 +442731 925447 +442742 1.23169e+06 +442761 941872 +442764 842386 +442781 724269 +442781 882719 +442783 961344 +442794 739803 +442794 834903 +442797 683256 +442800 883183 +442842 966853 +442858 697914 +442911 1.05502e+06 +442911 1.21548e+06 +442925 939647 +442942 926689 +442944 912350 +442947 908514 +442950 932686 +442972 947239 +443044 927903 +443050 699775 +443061 717706 +443106 697800 +443114 967981 +443125 899042 +443125 944603 +443147 847647 +443200 919147 +443214 889336 +443236 969261 +443244 752514 +443256 938375 +443258 881628 +443294 741317 +443347 886381 +443353 852150 +443358 759181 +443367 754633 +443378 727567 +443478 878272 +443483 1.06698e+06 +443508 898653 +443514 1.17266e+06 +443522 1.03765e+06 +443536 1.00373e+06 +443569 914203 +443581 890858 +443633 982139 +443636 862050 +443636 973769 +443644 971328 +443675 913164 +443683 1.00351e+06 +443731 716106 +443767 1.03729e+06 +443800 1.08038e+06 +443836 898172 +443839 920328 +443842 1.23109e+06 +443875 682044 +443875 975500 +443878 711736 +443894 937300 +443897 1.18949e+06 +443928 887397 +443936 1.22984e+06 +443978 1.22735e+06 +444006 926236 +444019 952556 +444053 729933 +444064 1.04375e+06 +444078 740875 +444097 1.03509e+06 +444108 833322 +444108 853989 +444161 1.18952e+06 +444169 949253 +444178 1.19112e+06 +444203 833308 +444214 841167 +444239 897803 +444258 690069 +444269 1.24068e+06 +444389 935811 +444392 901244 +444411 921478 +444447 885789 +444467 943950 +444469 957881 +444489 880603 +444494 922667 +444508 892847 +444511 908411 +444564 895439 +444583 689247 +444583 875031 +444583 931614 +444611 1.03638e+06 +444633 962469 +444633 1.18709e+06 +444644 889197 +444653 726850 +444669 731714 +444686 711856 +444753 701886 +444758 732125 +444775 884506 +444803 934283 +444814 702000 +444822 899639 +444889 715697 +444892 1.08056e+06 +444906 731114 +444908 1.03859e+06 +444914 731861 +444936 895586 +444983 845919 +445047 723686 +445047 1.14231e+06 +445050 734806 +445069 929053 +445072 964239 +445081 891306 +445150 883303 +445164 1.16041e+06 +445183 989881 +445192 880197 +445194 895458 +445214 994411 +445236 895744 +445258 1.21212e+06 +445264 1.09056e+06 +445283 939075 +445292 947206 +445328 675989 +445336 720036 +445339 704564 +445339 945261 +445367 1.22906e+06 +445386 877039 +445394 951167 +445403 697225 +445403 1.23366e+06 +445431 943661 +445433 684200 +445433 935758 +445469 696217 +445497 913925 +445514 949842 +445519 696322 +445531 942203 +445536 705514 +445600 905961 +445608 705458 +445617 725989 +445625 925336 +445647 1.23261e+06 +445678 916708 +445722 912272 +445736 687961 +445747 969019 +445758 914700 +445856 924503 +445883 695992 +445908 897672 +445928 702286 +445956 751694 +445986 715117 +446003 909628 +446083 940803 +446089 874325 +446089 956739 +446181 754075 +446194 862264 +446206 887622 +446217 1.23937e+06 +446228 937683 +446264 919656 +446269 900075 +446278 893086 +446292 921922 +446336 862344 +446336 1.21128e+06 +446356 726808 +446367 1.23105e+06 +446369 1.24052e+06 +446378 688456 +446378 695036 +446397 731108 +446403 931433 +446497 932425 +446531 1.23101e+06 +446564 832947 +446614 847147 +446622 1.11103e+06 +446689 901717 +446697 749817 +446706 701517 +446714 1.03852e+06 +446722 882425 +446803 911197 +446811 1.2306e+06 +446931 735625 +446942 754867 +446994 734533 +447050 1.22848e+06 +447081 1.00059e+06 +447089 962761 +447131 697911 +447133 934225 +447147 1.0342e+06 +447150 674619 +447197 1.23009e+06 +447214 737242 +447219 1.23919e+06 +447228 970297 +447300 1.16437e+06 +447319 932175 +447319 943500 +447322 924872 +447342 851758 +447369 904958 +447372 946167 +447394 931256 +447403 884447 +447408 890631 +447433 928522 +447439 947153 +447444 688375 +447458 966806 +447481 721767 +447489 928019 +447514 749947 +447539 1.08757e+06 +447542 1.22477e+06 +447578 902967 +447631 856206 +447636 912769 +447636 936256 +447650 697197 +447675 948953 +447678 932775 +447681 939272 +447692 941514 +447717 937811 +447747 1.22614e+06 +447764 949894 +447783 1.17828e+06 +447811 921458 +447822 886089 +447825 693839 +447828 939133 +447869 953514 +447892 952114 +447894 936019 +447906 958083 +447919 950969 +447931 897031 +447964 1.08506e+06 +447967 687619 +447972 1.06956e+06 +447975 698803 +447981 935267 +448008 749914 +448008 1.22793e+06 +448011 687783 +448011 900792 +448047 914431 +448086 1.24062e+06 +448100 955453 +448114 914983 +448117 722036 +448125 920714 +448147 718808 +448272 891694 +448278 929436 +448297 1.22793e+06 +448303 745139 +448342 873769 +448353 692744 +448375 1.08389e+06 +448386 687058 +448408 932981 +448411 1.2287e+06 +448433 1.22952e+06 +448481 930425 +448486 742953 +448486 1.23233e+06 +448508 937867 +448514 1.23186e+06 +448531 887881 +448547 934706 +448586 936614 +448614 926236 +448622 935306 +448644 752044 +448664 930003 +448664 1.23435e+06 +448731 916908 +448739 881428 +448753 1.07262e+06 +448756 919192 +448758 985183 +448778 977328 +448831 686725 +448833 694481 +448833 932828 +448836 931381 +448839 940414 +448872 878644 +448872 896200 +448878 943694 +448897 933497 +448900 883072 +448944 714964 +448956 854164 +448994 971147 +449008 935889 +449022 850608 +449028 927833 +449033 935661 +449033 941953 +449061 669906 +449069 728069 +449086 935928 +449089 1.07163e+06 +449097 896044 +449100 903156 +449111 1.16098e+06 +449133 935031 +449150 935531 +449181 731247 +449194 1.23316e+06 +449250 934625 +449264 913008 +449272 899633 +449281 748922 +449297 935222 +449328 960542 +449339 951872 +449342 686458 +449353 936319 +449361 946964 +449364 722056 +449367 936658 +449369 913928 +449397 935764 +449425 957233 +449431 1.23034e+06 +449461 686444 +449481 911506 +449508 929764 +449511 880467 +449519 910347 +449531 922911 +449531 929950 +449550 953661 +449564 905975 +449564 927656 +449583 1.24017e+06 +449592 896300 +449600 909369 +449611 907997 +449633 735878 +449636 938469 +449639 940472 +449667 923742 +449694 935139 +449714 936042 +449714 1.16283e+06 +449747 927567 +449767 856506 +449789 924356 +449800 932636 +449803 852111 +449808 888308 +449839 925558 +449861 1.22982e+06 +449864 734469 +449867 935714 +449903 1.23025e+06 +449917 931661 +449931 927567 +449939 733653 +449944 724003 +449958 928792 +449969 726717 +449975 917269 +449983 1.20215e+06 +449986 932056 +449992 883719 +450031 903356 +450050 720994 +450053 1.22782e+06 +450061 931564 +450072 936556 +450097 933489 +450097 961956 +450106 934553 +450117 999553 +450158 952383 +450214 927808 +450231 1.02036e+06 +450239 692903 +450269 930875 +450275 846747 +450314 927928 +450322 933383 +450328 933600 +450331 900739 +450350 991236 +450381 933864 +450408 932628 +450419 937889 +450436 920408 +450475 1.01601e+06 +450503 931564 +450533 932472 +450542 929564 +450544 877492 +450564 928058 +450575 930736 +450586 698828 +450586 921722 +450608 940731 +450617 834328 +450650 880342 +450650 939108 +450656 932017 +450681 1.22799e+06 +450697 929514 +450700 852644 +450725 934556 +450758 941897 +450761 933325 +450789 1.23485e+06 +450792 931469 +450817 943067 +450847 930097 +450861 932631 +450883 937342 +450900 929722 +450942 933561 +450953 935472 +450994 1.23394e+06 +451000 876306 +451003 914886 +451028 930789 +451050 932083 +451078 876142 +451078 932378 +451083 1.22896e+06 +451158 1.23206e+06 +451194 934022 +451200 932875 +451219 950431 +451231 925364 +451244 926733 +451272 945278 +451314 856167 +451386 903400 +451389 947778 +451403 891522 +451428 846603 +451439 1.22854e+06 +451475 1.22576e+06 +451486 931514 +451506 946828 +451558 936661 +451569 674053 +451581 851242 +451600 929931 +451603 930886 +451608 932347 +451672 911492 +451689 693850 +451719 938744 +451758 1.13895e+06 +451806 896833 +451825 1.22807e+06 +451833 692275 +451858 1.09246e+06 +451872 871208 +451889 672792 +451889 933972 +451931 953203 +451969 960194 +451978 933869 +452086 1.17864e+06 +452103 1.23198e+06 +452164 1.12637e+06 +452167 850139 +452192 966353 +452208 1.23075e+06 +452292 940017 +452311 1.22755e+06 +452325 880075 +452331 949397 +452333 932911 +452344 1.20184e+06 +452378 936542 +452386 686642 +452436 997767 +452439 935147 +452444 1.23114e+06 +452519 922711 +452536 689864 +452628 941242 +452631 1.22691e+06 +452661 932342 +452783 1.2301e+06 +452789 929850 +452897 1.22332e+06 +452917 964625 +452944 1.23175e+06 +452958 1.08913e+06 +453000 1.22772e+06 +453003 1.22972e+06 +453011 949439 +453039 935669 +453047 964444 +453056 937939 +453069 923619 +453142 916508 +453144 1.07362e+06 +453150 955997 +453153 944083 +453175 902083 +453181 852583 +453194 932022 +453206 927047 +453247 1.18087e+06 +453261 945458 +453319 973047 +453322 975197 +453325 937458 +453364 929969 +453417 1.23186e+06 +453489 1.11729e+06 +453533 1.19557e+06 +453544 1.17229e+06 +453561 926333 +453567 1.22839e+06 +453575 842239 +453575 1.22606e+06 +453622 685056 +453658 1.22611e+06 +453708 879522 +453733 849553 +453736 928897 +453806 947117 +453808 1.22594e+06 +453842 1.22763e+06 +453894 928478 +453933 938767 +453944 921422 +453975 1.2226e+06 +453981 929872 +454014 918489 +454019 926522 +454022 1.22752e+06 +454086 917439 +454086 968575 +454153 876075 +454169 920328 +454208 1.22669e+06 +454214 838183 +454222 1.16314e+06 +454264 1.17278e+06 +454314 1.2277e+06 +454317 849919 +454439 1.05407e+06 +454442 847867 +454444 990289 +454464 1.22638e+06 +454467 1.22758e+06 +454469 1.22529e+06 +454475 980983 +454514 925539 +454522 924544 +454531 996536 +454533 1.21129e+06 +454542 945181 +454556 1.12196e+06 +454558 944286 +454564 1.23843e+06 +454569 912731 +454594 695911 +454603 964333 +454631 911039 +454647 984861 +454686 1.22608e+06 +454711 897297 +454719 943406 +454833 1.18829e+06 +454836 1.22754e+06 +454853 929617 +454853 1.0897e+06 +454872 1.22802e+06 +454903 932475 +454944 1.22866e+06 +454975 957964 +454983 1.2243e+06 +454989 1.22763e+06 +455011 951242 +455042 1.22536e+06 +455050 1.22797e+06 +455061 917381 +455064 1.00032e+06 +455114 929800 +455200 1.23059e+06 +455200 1.23109e+06 +455228 1.23888e+06 +455231 1.22989e+06 +455236 1.22675e+06 +455261 925083 +455322 920192 +455344 1.22418e+06 +455372 1.00428e+06 +455394 1.22386e+06 +455461 902864 +455528 847839 +455572 942239 +455597 1.22559e+06 +455650 1.17916e+06 +455692 964342 +455700 935814 +455703 1.17527e+06 +455717 961731 +455719 889028 +455728 932242 +455761 924825 +455828 1.22352e+06 +455861 959136 +455864 929744 +455872 1.22398e+06 +455919 941658 +455953 968331 +455972 1.22992e+06 +456092 944514 +456136 1.23942e+06 +456144 955308 +456217 942067 +456275 685750 +456300 945697 +456367 894119 +456367 1.09251e+06 +456389 1.2266e+06 +456469 844744 +456503 953894 +456572 687103 +456592 924669 +456625 1.1056e+06 +456628 946897 +456647 939094 +456647 970494 +456667 1.2256e+06 +456692 1.08771e+06 +456700 1.21889e+06 +456717 1.22662e+06 +456722 1.18788e+06 +456747 948072 +456797 1.11038e+06 +456856 929653 +456967 904003 +457056 1.2152e+06 +457150 1.21463e+06 +457169 1.202e+06 +457228 931706 +457228 989406 +457278 1.21485e+06 +457311 944697 +457325 1.07611e+06 +457375 949522 +457394 919253 +457425 1.19194e+06 +457453 870644 +457544 1.22876e+06 +457558 936542 +457575 929622 +457694 996192 +457714 879947 +457761 1.11176e+06 +457764 926825 +457806 1.19216e+06 +457811 1.22532e+06 +457833 1.085e+06 +457839 847278 +457858 923808 +457869 879036 +457917 977506 +457950 880719 +458044 964989 +458086 961431 +458119 1.18489e+06 +458139 1.18424e+06 +458144 1.0081e+06 +458153 1.22741e+06 +458203 880658 +458208 1.20821e+06 +458225 918892 +458261 929683 +458294 957917 +458300 942933 +458347 1.00069e+06 +458350 1.09955e+06 +458400 1.19699e+06 +458406 1.19288e+06 +458406 1.22841e+06 +458528 870217 +458567 1.11332e+06 +458589 1.23192e+06 +458661 1.22405e+06 +458669 951519 +458708 1.12097e+06 +458769 932936 +458775 923672 +458842 1.06623e+06 +458853 953772 +458889 1.04552e+06 +458903 1.22806e+06 +458919 1.2396e+06 +458958 1.1949e+06 +459047 1.22743e+06 +459172 892442 +459175 1.19341e+06 +459267 1.16121e+06 +459344 904414 +459408 1.02159e+06 +459578 862461 +459747 948653 +459764 943622 +459817 941044 +459933 1.23921e+06 +459942 959764 +459964 684467 +460014 1.02636e+06 +460028 985267 +460042 956825 +460086 1.22843e+06 +460114 929442 +460131 914844 +460228 1.14177e+06 +460244 1.2391e+06 +460314 993786 +460342 1.12535e+06 +460494 1.18387e+06 +460522 1.18402e+06 +460642 886314 +460647 1.18342e+06 +460697 969014 +460706 936675 +460756 971514 +460811 886269 +460858 948656 +460892 1.22935e+06 +460911 945033 +460922 1.00629e+06 +460928 886422 +460981 883339 +460994 918247 +461014 1.23206e+06 +461078 976361 +461261 678408 +461303 949483 +461311 928672 +461336 1.00161e+06 +461381 934706 +461383 1.22937e+06 +461386 980900 +461450 1.15977e+06 +461469 1.22907e+06 +461531 953286 +461644 1.2294e+06 +461650 950389 +461653 1.23922e+06 +461831 1.03394e+06 +461875 1.22904e+06 +461881 1.2383e+06 +462003 1.2395e+06 +462033 1.23382e+06 +462069 1.19768e+06 +462114 1.19136e+06 +462150 1.19996e+06 +462258 976622 +462272 1.16028e+06 +462286 1.19099e+06 +462350 1.1624e+06 +462367 1.1212e+06 +462414 1.16466e+06 +462469 1.14159e+06 +462511 1.19901e+06 +462592 974558 +462633 1.19487e+06 +462636 965878 +462653 966056 +462664 1.06677e+06 +462667 950625 +462667 971319 +462667 1.00232e+06 +462706 1.18152e+06 +462753 1.22906e+06 +462806 957133 +462811 874408 +462831 960772 +462858 1.19283e+06 +463011 989542 +463044 1.1936e+06 +463192 1.1152e+06 +463217 954450 +463256 906608 +463322 1.13293e+06 +463394 1.17047e+06 +463422 1.20186e+06 +463433 942864 +463525 1.24053e+06 +463533 918222 +463550 855094 +463556 947919 +463572 982942 +463581 942006 +463592 987153 +463669 1.04284e+06 +463725 1.02327e+06 +463761 1.15937e+06 +463775 1.20308e+06 +463958 1.12729e+06 +463983 950144 +464022 1.20261e+06 +464039 1.01846e+06 +464050 1.16804e+06 +464081 943556 +464083 1.0584e+06 +464111 866478 +464164 1.17044e+06 +464167 1.17017e+06 +464281 902458 +464356 1.09834e+06 +464400 1.22846e+06 +464417 976808 +464425 951358 +464453 1.08541e+06 +464478 1.20419e+06 +464497 901864 +464542 927617 +464547 901708 +464736 938986 +464750 1.17602e+06 +464753 899397 +464775 939775 +464794 1.16254e+06 +464814 900528 +464822 939575 +464856 943603 +464886 876675 +464911 1.15798e+06 +464914 1.22937e+06 +464947 873542 +464992 876117 +465083 997708 +465100 1.14092e+06 +465150 916997 +465181 953758 +465206 942883 +465331 937100 +465392 1.02868e+06 +465436 873953 +465483 1.10901e+06 +465508 1.16924e+06 +465539 1.20382e+06 +465567 874372 +465575 1.20474e+06 +465586 1.22274e+06 +465622 921472 +465706 1.23296e+06 +465708 960828 +465747 1.22907e+06 +465789 1.16705e+06 +465839 917989 +465897 1.11915e+06 +465925 908836 +465928 1.12035e+06 +465944 955722 +466022 1.20505e+06 +466031 943092 +466064 1.20439e+06 +466181 1.20552e+06 +466231 976011 +466300 950886 +466486 970167 +466522 964194 +466542 1.20529e+06 +466622 1.22963e+06 +466636 1.1886e+06 +466639 924247 +466733 908947 +466811 680164 +466867 1.23732e+06 +467022 1.20754e+06 +467067 924281 +467164 1.22953e+06 +467181 944039 +467208 921039 +467217 924592 +467281 957006 +467311 939578 +467311 1.20698e+06 +467314 1.17179e+06 +467325 1.16999e+06 +467353 1.22988e+06 +467369 1.16769e+06 +467472 922253 +467539 895839 +467539 950978 +467567 884528 +467589 1.1408e+06 +467722 678344 +467786 884889 +467833 921064 +467900 681581 +467911 1.17249e+06 +467931 1.05312e+06 +467992 1.22869e+06 +467994 1.16555e+06 +468083 1.00783e+06 +468108 908181 +468150 1.01829e+06 +468172 958450 +468261 1.19174e+06 +468267 1.00889e+06 +468406 1.23231e+06 +468450 1.01411e+06 +468547 999156 +468569 1.22852e+06 +468606 680125 +468633 1.14048e+06 +468675 1.22265e+06 +468708 1.13944e+06 +468711 893139 +468722 1.13993e+06 +468739 967672 +468750 969000 +468753 965786 +468767 967031 +468772 967894 +468792 1.02789e+06 +468803 1.17363e+06 +468808 963164 +468839 1.02315e+06 +468853 1.03199e+06 +468864 960942 +468883 1.22687e+06 +468903 1.24103e+06 +468939 992994 +469006 972108 +469006 1.02045e+06 +469011 1.19629e+06 +469086 678264 +469103 1.17075e+06 +469106 987081 +469181 1.04004e+06 +469217 1.16897e+06 +469222 950583 +469233 980028 +469292 929194 +469422 1.22605e+06 +469556 1.23772e+06 +469631 1.24164e+06 +469678 1.19039e+06 +469722 1.18614e+06 +469736 1.23691e+06 +469811 1.23888e+06 +469814 1.23601e+06 +469833 1.20416e+06 +469850 1.04188e+06 +469933 935983 +469967 1.20547e+06 +470036 1.23408e+06 +470075 1.22908e+06 +470081 1.1714e+06 +470228 916706 +470344 1.22822e+06 +470381 1.22899e+06 +470533 1.23264e+06 +470625 1.09428e+06 +470700 886431 +470789 962586 +470969 1.2263e+06 +470981 1.22203e+06 +471014 945869 +471042 1.22433e+06 +471053 1.04712e+06 +471164 1.01299e+06 +471219 885689 +471269 885808 +471275 1.18379e+06 +471303 1.19277e+06 +471536 1.10218e+06 +471556 1.22433e+06 +471572 679358 +471586 1.00783e+06 +471633 1.22026e+06 +471700 1.22601e+06 +471733 884292 +471772 1.22185e+06 +471911 1.22289e+06 +471917 1.14891e+06 +471942 884072 +471956 1.20938e+06 +472033 1.22239e+06 +472044 1.2199e+06 +472156 1.23096e+06 +472233 1.17071e+06 +472236 1.20992e+06 +472283 934889 +472344 1.19851e+06 +472358 1.22549e+06 +472361 1.17369e+06 +472372 935300 +472375 884431 +472394 1.22356e+06 +472397 1.22515e+06 +472467 884539 +472483 1.22312e+06 +472531 1.22443e+06 +472586 685900 +472603 962586 +472633 1.01778e+06 +472647 1.22249e+06 +472711 1.117e+06 +472792 1.22251e+06 +472864 1.01922e+06 +472889 934275 +472892 1.01029e+06 +472944 912572 +472944 1.01622e+06 +472956 934186 +472994 1.22507e+06 +472997 965150 +473075 1.22227e+06 +473089 1.22002e+06 +473153 959683 +473178 1.19552e+06 +473206 932983 +473211 1.01381e+06 +473294 1.22579e+06 +473331 937925 +473333 1.1869e+06 +473353 1.16888e+06 +473458 1.05592e+06 +473517 968283 +473719 1.02754e+06 +473794 946039 +473803 931681 +473811 1.22234e+06 +473853 1.17171e+06 +473861 1.10925e+06 +473894 1.19489e+06 +473997 930722 +474019 1.22323e+06 +474039 970617 +474158 1.20292e+06 +474236 1.20309e+06 +474364 1.22339e+06 +474444 981236 +474497 991258 +474564 1.01137e+06 +474603 1.14882e+06 +474625 925397 +474703 1.15801e+06 +474706 1.22346e+06 +474736 948800 +474742 1.15927e+06 +474742 1.2226e+06 +474811 1.18253e+06 +474831 1.22216e+06 +474844 1.22293e+06 +474858 1.00443e+06 +474875 1.17575e+06 +474889 924647 +474892 928836 +474936 927778 +474958 1.21786e+06 +474981 973242 +474983 973700 +475000 1.113e+06 +475061 1.15998e+06 +475142 978356 +475197 921383 +475200 1.0089e+06 +475217 953981 +475225 1.20469e+06 +475233 925364 +475236 1.22623e+06 +475289 1.14101e+06 +475289 1.21824e+06 +475300 922369 +475303 1.22031e+06 +475325 926233 +475331 923400 +475361 962800 +475383 1.16118e+06 +475406 1.22635e+06 +475411 1.22175e+06 +475428 1.16181e+06 +475536 1.22663e+06 +475606 1.11545e+06 +475669 1.22157e+06 +475675 1.22631e+06 +475708 1.22221e+06 +475731 1.17681e+06 +475764 957511 +475831 1.22707e+06 +475850 1.22598e+06 +475964 1.2066e+06 +475972 1.15343e+06 +476000 1.22692e+06 +476064 1.22331e+06 +476092 1.14668e+06 +476092 1.22654e+06 +476106 1.22199e+06 +476114 1.19291e+06 +476147 1.11979e+06 +476211 1.22226e+06 +476225 1.22067e+06 +476247 1.2252e+06 +476319 1.22217e+06 +476369 958861 +476397 974531 +476447 1.17592e+06 +476464 1.22216e+06 +476472 1.2007e+06 +476481 1.21913e+06 +476483 1.17091e+06 +476492 996289 +476522 1.01415e+06 +476542 1.18149e+06 +476569 1.17195e+06 +476569 1.17282e+06 +476575 1.17239e+06 +476589 1.17425e+06 +476675 960097 +476742 1.2212e+06 +476778 1.16779e+06 +476800 991375 +476814 1.17282e+06 +476817 1.22208e+06 +476919 954308 +476936 1.14162e+06 +477033 1.22206e+06 +477086 919444 +477167 1.04156e+06 +477181 1.16951e+06 +477297 1.16769e+06 +477314 1.22551e+06 +477331 945483 +477342 975664 +477361 1.22645e+06 +477425 1.21984e+06 +477506 903342 +477569 1.2228e+06 +477575 1.22243e+06 +477589 1.18704e+06 +477600 1.22204e+06 +477614 1.22345e+06 +477639 981769 +477661 1.16786e+06 +477697 999350 +477736 971094 +477742 966078 +477847 1.22273e+06 +477883 1.22308e+06 +477964 1.22382e+06 +478022 1.03283e+06 +478056 922744 +478108 1.22376e+06 +478125 1.16896e+06 +478139 1.12679e+06 +478200 1.10672e+06 +478211 1.22314e+06 +478222 1.22281e+06 +478392 958542 +478411 1.20015e+06 +478525 926894 +478556 1.2197e+06 +478564 1.04044e+06 +478569 1.21696e+06 +478628 1.21815e+06 +478822 962739 +479033 918669 +479067 976264 +479131 1.22097e+06 +479189 973647 +479253 970325 +479300 970242 +479325 1.19037e+06 +479417 1.19002e+06 +479447 1.22303e+06 +479506 1.24384e+06 +479533 1.02134e+06 +479625 995297 +479656 1.18975e+06 +479664 1.16868e+06 +479772 1.02496e+06 +479792 1.22201e+06 +480083 1.1967e+06 +480403 1.22405e+06 +480428 983358 +480511 1.19902e+06 +480519 1.22176e+06 +480561 1.00929e+06 +480633 1.14072e+06 +480797 1.23101e+06 +480842 1.21968e+06 +480906 1.0564e+06 +480961 1.19779e+06 +480981 1.09048e+06 +481128 988647 +481131 1.05198e+06 +481172 1.22759e+06 +481183 1.23429e+06 +481192 961808 +481333 1.03633e+06 +481444 1.04516e+06 +481703 1.11945e+06 +481786 1.10111e+06 +481808 1.17036e+06 +481958 1.14312e+06 +481967 967725 +481969 1.06636e+06 +481989 1.22124e+06 +482200 1.22685e+06 +482258 1.14275e+06 +482325 1.01296e+06 +482364 1.01133e+06 +482414 1.22369e+06 +482556 1.216e+06 +482753 1.01428e+06 +482764 1.17714e+06 +482767 1.16552e+06 +482889 994372 +482917 973711 +482933 1.22642e+06 +483078 1.12249e+06 +483172 1.0239e+06 +483328 968206 +483444 1.03165e+06 +483458 1.00405e+06 +483597 1.07874e+06 +483614 1.19582e+06 +483636 1.20121e+06 +483689 999958 +483725 1.14181e+06 +483883 1.15555e+06 +483925 1.22494e+06 +483972 1.02938e+06 +483986 977408 +483989 935556 +484111 1.14337e+06 +484111 1.19526e+06 +484122 974103 +484214 1.22333e+06 +484500 968722 +484633 1.15889e+06 +484758 1.22324e+06 +484867 992094 +485039 1.22236e+06 +485053 1.11856e+06 +485106 1.10967e+06 +485128 1.22611e+06 +485333 1.08783e+06 +485344 1.23016e+06 +485394 1.21745e+06 +485467 1.17904e+06 +485500 1.09683e+06 +485569 1.13012e+06 +485711 971775 +485775 965203 +485867 933989 +485900 1.09231e+06 +486011 934108 +486108 1.18055e+06 +486331 1.12325e+06 +486483 1.18737e+06 +486608 998411 +486747 1.02082e+06 +486914 1.16315e+06 +487006 961814 +487053 1.19438e+06 +487125 945997 +487411 1.17416e+06 +487458 1.22401e+06 +487597 1.22487e+06 +487600 983678 +487633 1.01513e+06 +487744 969461 +487747 1.04562e+06 +487925 1.0542e+06 +487939 976219 +488031 1.02246e+06 +488131 1.00061e+06 +488272 1.00445e+06 +488392 997444 +488461 957625 +488467 1.2259e+06 +488578 996175 +488800 1.15052e+06 +489053 953142 +489094 1.0102e+06 +489142 1.03294e+06 +489203 1.22341e+06 +489233 979178 +489392 1.19434e+06 +489467 1.22451e+06 +489664 972433 +489939 1.22746e+06 +490000 1.22264e+06 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/hill_climbing b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/hill_climbing new file mode 100755 index 0000000000000000000000000000000000000000..9f8c5081f4f9a87192871db14e99ba13338c0287 GIT binary patch literal 471391 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∓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

-Hm*3 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 O;nX6`KNq2`r2hw>rVG*l literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/hill_climbing.cpp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/hill_climbing.cpp new file mode 100644 index 000000000..3cc29c540 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson1/hill_climbing.cpp @@ -0,0 +1,71 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "hill_climbing.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + + + +int main (int __argc, char * __argv []) { + + if (__argc != 2) { + + std :: cerr << "Usage : ./hill_climbing [instance]" << std :: endl ; + return 1 ; + } + + srand (1000) ; + + Graph :: load (__argv [1]) ; // Instance + + Route route ; // Solution + + RouteInit init ; // Sol. Random Init. + init (route) ; + + RouteEval full_eval ; // Full. Eval. + full_eval (route) ; + + std :: cout << "[From] " << route << std :: endl ; + + /* Tools for an efficient (? :-)) + local search ! */ + + TwoOptInit two_opt_init ; // Init. + + TwoOptNext two_opt_next ; // Explorer. + + TwoOptIncrEval two_opt_incr_eval ; // Eff. eval. + + //moFirstImprSelect two_opt_select ; + moBestImprSelect two_opt_select ; + //moRandImprSelect two_opt_select ; + + moHC hill_climb (two_opt_init, two_opt_next, two_opt_incr_eval, two_opt_select, full_eval) ; + hill_climb (route) ; + + std :: cout << "[To] " << route << std :: endl ; + + return 0 ; +} + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/Makefile.am b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/Makefile.am new file mode 100644 index 000000000..1a169aa1d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/Makefile.am @@ -0,0 +1,20 @@ +INCLUDES = -I${EO_DIR}/src/ -I ../../src/ -I ../examples/tsp/src/ + +AM_CXXFLAGS =\ + -Wall\ + -Werror\ + -Wno-deprecated\ + -ansi\ + -pedantic + +bin_PROGRAMS = tabu_search + +############################## +tabu_search_SOURCES = tabu_search.cpp + +tabu_search_LDFLAGS = + +tabu_search_LDADD = \ + ${EO_DIR}/src/libeo.a\ + ${EO_DIR}/src/utils/libeoutils.a\ + ../examples/tsp/src/libtsp.a diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/ali535.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/ali535.tsp new file mode 100644 index 000000000..7fec4bf14 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/ali535.tsp @@ -0,0 +1,536 @@ +535 +36.49 7.49 +57.06 9.51 +30.22 48.14 +5.15 -3.56 +34.59 -106.37 +57.12 -2.12 +16.45 -99.45 +5.36 -0.1 +28.56 -13.36 +8.59 38.48 +12.5 45.02 +-34.48 138.38 +30.23 -9.33 +56.18 12.51 +36.4 -4.3 +40.38 8.17 +35.11 -3.5 +41.55 8.48 +-37.01 174.47 +38.17 -0.34 +36.42 3.13 +36.11 37.14 +35.14 -101.42 +31.58 35.59 +52.18 4.46 +61.1 -149.59 +39.57 32.41 +51.11 4.28 +17.08 -61.47 +43.37 13.22 +29.38 35.01 +59.39 17.55 +15.18 38.55 +-25.14 -57.31 +23.58 32.47 +37.54 23.44 +33.46 -84.31 +12.3 -70.01 +24.26 54.28 +36.55 30.48 +26.16 50.38 +40.29 50.01 +39.11 -76.4 +10.48 -74.52 +-16.11 -52.3 +10.25 45.01 +41.18 2.05 +32.22 -64.42 +41.56 -72.41 +40.39 17.57 +44.49 20.19 +9.21 34.31 +32.06 20.16 +52.29 13.24 +48.27 -4.25 +-19.48 3.45 +33.49 35.29 +54.39 -6.14 +35.48 -101.22 +4.24 18.31 +13.04 -59.3 +60.17 5.13 +44.48 -68.5 +33.14 44.14 +45.4 9.24 +33.34 -86.45 +52.27 -1.45 +42.33 9.29 +45.48 -108.37 +43.28 -1.32 +13.21 -16.4 +-3.19 29.19 +13.55 100.36 +12.38 -8.02 +55.44 9.09 +44.32 11.18 +12.57 77.4 +-15.41 34.58 +27.13 56.22 +-27.25 153.05 +44.5 -0.43 +4.42 -74.09 +50.47 -1.51 +19.05 72.52 +67.16 14.22 +42.22 -71 +53.03 8.48 +41.08 16.47 +46.55 7.3 +51.31 -2.35 +50.54 4.29 +-15.52 -47.55 +47.35 7.32 +48.1 16.13 +47.27 19.15 +-34.49 -58.32 +42.55 -78.38 +44.3 26.06 +49.27 2.07 +-4.15 15.15 +39.15 9.04 +30.08 31.24 +23.11 113.16 +33.33 -7.4 +-11.54 22.45 +4.49 -52.22 +52.13 0.11 +-35.19 149.12 +10.36 -66.59 +22.39 88.27 +52.5 -1.19 +49.01 2.33 +43.33 6.57 +45.4 -0.19 +39.37 19.55 +50.52 7.09 +41.59 -87.54 +41.48 12.36 +9.34 -13.37 +41.25 -81.51 +3.26 -76.25 +42.31 8.48 +-28.02 145.37 +7.11 79.53 +40.04 -83.04 +33.22 -7.35 +48.07 7.22 +44.22 28.29 +45.4 -0.19 +6.21 2.23 +55.37 12.39 +-33.58 18.36 +37.28 15.04 +10.27 -75.31 +-26.25 146.14 +39 17.05 +12.12 -68.57 +39.09 -84.2 +39.03 -84.2 +51.24 -3.12 +29.11 -81.03 +23.46 90.23 +14.45 42.59 +32.5 -96.51 +33.25 36.31 +-6.53 39.12 +42.34 18.16 +-29.58 30.57 +38.51 -77.02 +28.34 77.07 +39.46 -104.53 +32.46 -96.24 +26.16 50.1 +47.16 5.05 +33.52 10.47 +14.45 -17.3 +4.01 9.43 +19.08 30.26 +25.16 51.34 +49.22 0.1 +-8.45 115.1 +51.08 13.46 +-12.25 130.52 +42.14 -83.32 +42.13 -83.21 +53.26 -6.15 +51.17 6.45 +25.15 55.2 +0.03 32.26 +45.32 4.18 +55.57 -3.22 +51.27 5.23 +31.48 -106.16 +52.5 -1.19 +48.19 6.04 +40.07 33 +40.09 82.4 +40.42 -74.1 +50.44 -3.25 +-34.49 -58.32 +64.49 -147.51 +37.01 -7.58 +-11.35 27.31 +59.54 10.37 +41.49 12.15 +14.35 -61 +33.56 45.8 +-4.23 15.26 +43.49 11.12 +8.37 -13.12 +41.26 15.32 +50.02 8.34 +44.12 12.04 +-21.13 27.29 +28.27 -13.52 +53.29 -1 +-19.27 29.52 +54.23 18.28 +60.12 11.05 +24.57 10.1 +-22.5 -43.15 +55.52 -4.26 +45.22 5.2 +7.09 41.43 +44.25 8.5 +57.4 18.18 +41.54 2.46 +37.11 -3.47 +47 15.26 +51.09 -0.11 +14.34 -90.32 +46.14 6.07 +-2.09 -79.53 +52.28 9.42 +53.38 10 +60.19 24.58 +35.2 25.11 +30.2 120.51 +22.19 114.12 +31.4 6.09 +35.33 139.46 +21.2 -157.55 +29.59 -95.28 +38.57 -77.27 +43.06 -78.57 +38.52 1.22 +47.34 -97.27 +50.21 30.55 +-25.44 -54.28 +39.44 -86.17 +40.59 28.49 +38.17 27.1 +21.3 39.12 +49.13 -2.12 +40.38 -73.46 +11.33 43.1 +-6.09 106.51 +-26.08 28.15 +-3.22 36.38 +45.28 -73.44 +12.03 8.31 +34.34 69.12 +63.59 -22.37 +-1.58 30.08 +22.34 120.17 +24.54 67.09 +-6.18 155.43 +17.56 -76.48 +50.05 19.47 +15.36 32.33 +27.42 85.22 +3.08 101.33 +29.13 47.58 +-8.51 13.14 +10.36 -66.59 +36.04 -115.09 +33.56 -118.24 +53.52 -1.39 +48.58 2.27 +0.27 9.25 +34.52 33.38 +43.11 0 +59.49 30.17 +36.51 -2.22 +51.24 12.25 +51.25 12.14 +6.1 1.15 +40.46 -73.52 +33.57 -118.24 +50.38 5.27 +51.09 -0.11 +51.28 -0.27 +50.34 3.05 +-12.01 -77.07 +45.27 9.16 +38.46 -9.08 +46.13 14.28 +35.3 12.37 +48.14 14.11 +51.28 -0.27 +6.35 3.2 +27.56 -15.23 +-16.3 -68.11 +53.21 -2.53 +6.1 1.15 +51.53 -0.22 +-25.55 32.34 +-15.2 28.27 +4.27 114 +49.37 6.12 +-17.49 25.49 +25.41 32.43 +45.44 4.56 +13 80.11 +40.29 -3.34 +31.52 -4.13 +53.21 -2.16 +-3.04 -60 +10.34 -71.44 +-4.02 39.36 +46.22 15.47 +39.18 -94.44 +28.32 -81.2 +23.36 58.17 +44.25 8.5 +-37.44 144.54 +24.31 39.42 +-37.41 144.51 +19.26 -99.04 +12.07 -86.11 +2.01 45.19 +25.48 -80.17 +20.56 -89.41 +45.27 9.16 +35.45 10.45 +39.07 -94.36 +35.52 14.29 +4.11 73.32 +47.45 7.26 +55.33 13.22 +54.31 -1.25 +14.31 121.01 +55.58 37.25 +43.35 3.58 +-25.55 32.34 +-8.58 125.13 +43.26 5.13 +-20.26 57.41 +51.21 1.21 +44.53 -93.13 +53.52 27.33 +50.55 5.47 +29.59 -90.16 +-26.31 31.19 +48.08 11.42 +-34.5 -56.02 +45.38 8.43 +49.05 6.08 +-17.45 177.27 +40.53 14.18 +25.02 -77.28 +-1.19 36.56 +43.4 7.13 +55.02 -1.41 +45.56 6.06 +12.08 15.02 +32.56 129.56 +35.09 36.17 +13.29 2.1 +18.06 -15.57 +-13 28.39 +58.35 16.15 +35.45 140.23 +47.09 -1.36 +49.3 11.05 +52.41 1.17 +40.38 -73.46 +55.28 10.2 +46.26 30.41 +26.21 127.46 +35.26 -97.46 +40.54 9.31 +41.07 -95.55 +41.14 -8.41 +41.59 -87.54 +51.5 -8.29 +28.26 -81.19 +35.38 -0.37 +48.43 2.23 +34.47 135.27 +60.12 11.05 +51.12 2.52 +44.34 26.06 +12.21 -1.31 +43.26 -5.5 +18.34 -72.17 +48.43 2.23 +40.05 116.36 +-31.56 115.58 +4.52 7.02 +37.08 -76.3 +39.52 -75.15 +33.26 -112.01 +55.52 -4.26 +46.35 0.18 +40.3 -80.14 +-5.15 39.49 +39.33 2.44 +38.1 13.06 +11.33 104.51 +36.49 11.58 +-9.27 147.13 +10.36 -61.21 +9.05 -79.23 +50.06 14.16 +43.41 10.24 +42.26 14.11 +16.16 -61.32 +9.03 -79.24 +43.23 -0.25 +45.39 12.12 +31.37 -8.03 +34.03 -6.45 +-8.08 -34.55 +38.04 15.39 +64.08 -21.57 +16.54 96.09 +49.19 4.03 +36.23 28.07 +-29.43 -53.42 +-22.5 -43.15 +45.13 14.35 +44.01 12.37 +48.04 -1.44 +6.14 -10.22 +41.49 12.15 +14.1 145.15 +-32.55 -60.47 +51.57 4.26 +24.42 46.44 +33.37 73.06 +6.3 -58.15 +15.29 44.13 +13.42 -89.07 +32.44 -117.11 +-23 -47.08 +29.32 -98.28 +-17.56 31.06 +48.31 -24.8 +-33.23 -70.47 +42.54 -8.25 +33.14 44.14 +18.26 -69.4 +47.27 -122.18 +27 14.27 +37.33 126.48 +51.34 0.42 +-4.4 55.31 +37.37 -122.23 +31.12 121.2 +25.21 55.24 +16.45 -22.57 +1.21 103.54 +37.22 -121.56 +43.49 18.2 +9.58 -84.16 +9.59 -84.12 +18.26 -66.01 +40.31 22.58 +41.58 21.38 +40.53 -111.57 +36.58 -25.1 +52.42 -8.55 +42.42 23.24 +43.32 16.18 +-12.54 -38.2 +38.45 -90.22 +51.33 0.14 +59.39 17.55 +48.41 9.13 +38.54 16.15 +58.53 5.38 +55.58 37.25 +37.26 -5.54 +48.32 7.38 +52.22 13.3 +-33.56 151.1 +29.33 52.36 +47.48 13 +40.31 17.24 +41.19 69.24 +28.29 -16.2 +38.31 -28.43 +43.11 0 +28.29 -16.2 +14.02 -87.14 +52.29 13.24 +35.41 51.19 +41.2 19.47 +32.4 13.09 +43.37 1.23 +32.01 34.53 +22.49 5.27 +0.23 6.43 +35.43 -5.55 +-18.48 47.29 +33.56 8.06 +-24.42 -53.42 +25.04 121.33 +37.55 12.29 +51.23 -2.43 +45.12 7.39 +45.5 13.28 +45.39 12.12 +47.26 0.43 +36.18 -95.52 +36.51 10.14 +52.34 13.18 +35.33 139.46 +35.54 -83.53 +40.62 13.11 +-0.08 -78.29 +12.41 101.01 +13.45 -60.57 +44.55 4.58 +43.14 27.49 +45.3 12.21 +-23 -47.08 +48.07 16.33 +39.29 -0.29 +41.42 -4.51 +45.24 10.53 +38.57 -77.27 +52.1 20.58 +36.45 -6.04 +53.19 -113.35 +44.53 -63.31 +45.41 -74.02 +45.19 -75.4 +46.48 -71.24 +42.16 -82.58 +48.57 -54.34 +45.28 -73.44 +49.11 -123.1 +49.55 -97.14 +51.07 -114.01 +47.37 -52.45 +43.41 -79.38 +44.06 15.21 +45.45 16.04 +41.4 -1.03 +-6.13 39.13 +47.28 8.33 +51.33 0.14 +24.58 91.53 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/eil101.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/eil101.tsp new file mode 100644 index 000000000..f12903349 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/eil101.tsp @@ -0,0 +1,102 @@ +101 +41 49 +35 17 +55 45 +55 20 +15 30 +25 30 +20 50 +10 43 +55 60 +30 60 +20 65 +50 35 +30 25 +15 10 +30 5 +10 20 +5 30 +20 40 +15 60 +45 65 +45 20 +45 10 +55 5 +65 35 +65 20 +45 30 +35 40 +41 37 +64 42 +40 60 +31 52 +35 69 +53 52 +65 55 +63 65 +2 60 +20 20 +5 5 +60 12 +40 25 +42 7 +24 12 +23 3 +11 14 +6 38 +2 48 +8 56 +13 52 +6 68 +47 47 +49 58 +27 43 +37 31 +57 29 +63 23 +53 12 +32 12 +36 26 +21 24 +17 34 +12 24 +24 58 +27 69 +15 77 +62 77 +49 73 +67 5 +56 39 +37 47 +37 56 +57 68 +47 16 +44 17 +46 13 +49 11 +49 42 +53 43 +61 52 +57 48 +56 37 +55 54 +15 47 +14 37 +11 31 +16 22 +4 18 +28 18 +26 52 +26 35 +31 67 +15 19 +22 22 +18 24 +26 27 +25 24 +22 27 +25 21 +19 21 +20 26 +18 18 +35 35 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/pr2392.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/pr2392.tsp new file mode 100644 index 000000000..010a2c7ec --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/pr2392.tsp @@ -0,0 +1,2393 @@ +2392 +1639 2156 +1875 2925 +2150 2925 +2425 2925 +2525 2675 +2525 2575 +2525 2375 +2525 2275 +2525 2175 +2786 2148 +2786 2249 +2786 2352 +2785 2451 +2785 2552 +2787 2651 +2925 2925 +3198 2925 +3475 2925 +3725 2925 +3675 2675 +3675 2575 +3675 2375 +3675 2275 +3675 2175 +4189 2156 +4190 2256 +4190 2355 +4189 2456 +4189 2556 +4190 2656 +4275 2975 +4425 2925 +4700 2925 +4975 2925 +5075 2675 +5075 2575 +5075 2375 +5075 2275 +5075 2175 +5336 2148 +5336 2249 +5336 2352 +5335 2451 +5335 2552 +5337 2651 +5475 2925 +5748 2925 +6025 2925 +6275 2925 +6225 2675 +6225 2575 +6225 2375 +6225 2275 +6225 2175 +6739 2156 +6740 2256 +6740 2355 +6739 2456 +6739 2556 +6740 2656 +6825 2975 +6975 2925 +7250 2925 +7525 2925 +7625 2675 +7625 2575 +7625 2375 +7625 2275 +7625 2175 +7886 2148 +7886 2249 +7886 2352 +7885 2451 +7885 2552 +7887 2651 +8025 2925 +8298 2925 +8575 2925 +8825 2925 +8775 2675 +8775 2575 +8775 2375 +8775 2275 +8775 2175 +9289 2156 +9290 2256 +9290 2355 +9289 2456 +9289 2556 +9290 2656 +9375 2975 +9525 2925 +9800 2925 +10075 2925 +10175 2675 +10175 2575 +10175 2375 +10175 2275 +10175 2175 +10436 2148 +10436 2249 +10436 2352 +10435 2451 +10435 2552 +10437 2651 +10575 2925 +10848 2925 +11125 2925 +11325 2175 +11325 2275 +11325 2375 +11325 2575 +11325 2675 +11375 2925 +11375 3125 +11400 3225 +11400 3325 +11400 3475 +11400 3625 +11300 3825 +11125 3825 +11125 3925 +11025 3975 +10925 3975 +10925 3875 +10550 3925 +10550 3725 +10550 3325 +10100 3325 +10100 3725 +10100 3925 +9725 3875 +9725 3975 +9625 3975 +9550 3875 +9425 3875 +9275 3900 +9250 3700 +9250 3575 +9250 3475 +9250 3375 +9250 3275 +8825 3125 +8850 3225 +8850 3325 +8850 3475 +8850 3625 +8750 3825 +8575 3825 +8575 3925 +8475 3975 +8375 3875 +8375 3975 +8400 4125 +8300 4175 +8400 4275 +8500 4175 +8675 4325 +8775 4425 +8825 4325 +9275 4275 +9375 4275 +9325 4375 +9400 4450 +9400 4550 +9325 4500 +9215 4560 +9215 4710 +9375 4775 +9215 4860 +9215 5010 +9215 5160 +9215 5310 +9215 5460 +9215 5610 +9475 5675 +9475 5525 +9475 5425 +9475 5275 +9475 5025 +9575 5075 +9725 5075 +9675 4975 +9575 4925 +9525 4775 +9600 4675 +9625 4775 +9775 4775 +9975 4600 +9875 4600 +9800 4525 +9700 4525 +9700 4425 +9800 4425 +9800 4325 +9700 4275 +9600 4175 +9700 4125 +9800 4175 +9875 4275 +9975 4275 +10075 4175 +10275 4175 +10375 4175 +10575 4175 +10675 4275 +10775 4275 +10850 4325 +10850 4425 +10850 4525 +10775 4575 +10675 4575 +10875 4775 +11025 4775 +11175 4725 +11050 4675 +10950 4500 +10950 4400 +10950 4275 +10850 4175 +10950 4125 +11050 4175 +11225 4325 +11375 4325 +11325 4425 +11325 4575 +11325 4675 +11325 4775 +11325 4925 +11450 4925 +11450 5075 +11422 5204 +11425 5325 +11325 5275 +11325 5375 +11175 5375 +11175 5275 +11125 5175 +11100 5025 +10975 4975 +10925 5075 +10950 5175 +10900 5275 +10900 5375 +10800 5175 +10525 5175 +10325 5175 +10325 5025 +10425 5075 +10475 4975 +10325 4875 +10175 4975 +10225 5075 +10125 5175 +9975 5175 +10050 5250 +10050 5350 +10025 5450 +10175 5450 +10325 5450 +10475 5450 +10575 5450 +10675 5450 +10525 6025 +10525 6125 +10675 6125 +10825 6025 +11025 6050 +11224 5908 +11400 5975 +11400 6375 +11400 6575 +11175 6575 +11025 6450 +10975 6675 +11075 6775 +10975 6875 +11175 6975 +11375 6975 +11325 7075 +11400 7150 +11125 7150 +10975 7150 +10875 7325 +10925 7425 +11075 7425 +11175 7475 +11075 7575 +11175 7625 +11175 7725 +11025 7725 +11025 7825 +11175 7825 +11325 7875 +11425 7925 +11425 8075 +11325 8075 +11275 8175 +11425 8225 +11425 8375 +11275 8325 +11175 8325 +11075 8225 +10975 8225 +10925 7975 +10775 7825 +10825 7600 +10725 7575 +10775 7425 +10675 7425 +10525 7425 +10525 7575 +10450 7750 +10300 7750 +10425 7875 +10525 7925 +10575 7825 +10625 7975 +10725 7975 +10725 8075 +10625 8125 +10525 8075 +10425 8025 +10425 8125 +10250 8225 +10150 8225 +10225 8125 +10275 7975 +10125 7975 +10000 7875 +10000 7775 +9825 7825 +9625 7725 +9475 7725 +9425 7625 +9575 7625 +9625 7475 +9725 7575 +9825 7475 +10025 7525 +9975 7425 +9925 7275 +9825 7075 +9625 7075 +9725 6975 +9875 6775 +9725 6775 +9575 6825 +9575 6675 +9725 6425 +9625 6200 +9725 6025 +9625 6000 +9225 6375 +9225 6525 +9375 6525 +9375 6675 +9225 6675 +9225 6875 +9225 7075 +9226 7259 +9225 7260 +9226 7409 +9225 7410 +9225 7560 +9226 7560 +9225 7710 +9225 7711 +9325 7825 +9225 7875 +9225 7975 +9225 8075 +9225 8175 +9225 8275 +9225 8375 +9225 8475 +9275 8825 +9475 8825 +9578 8820 +9847 8703 +9875 8825 +10025 8725 +10075 8825 +10175 8725 +10100 8575 +10250 8375 +10250 8475 +10250 8625 +10475 8775 +10575 8775 +10675 8775 +10775 8775 +10925 8775 +10875 8625 +10875 8525 +10975 8575 +11175 8475 +11275 8425 +11350 8575 +11450 8675 +11350 8775 +11325 9325 +11325 9425 +11325 9525 +11325 9725 +11325 9825 +11125 10075 +11375 10075 +11375 10275 +11400 10375 +11400 10475 +11400 10625 +11400 10775 +11300 10975 +11125 10975 +11125 11075 +11025 11125 +10925 11125 +10925 11025 +10550 10875 +10550 11075 +10275 11325 +10375 11325 +10575 11325 +10675 11425 +10775 11425 +10850 11475 +10850 11575 +10850 11675 +10775 11725 +10675 11725 +10875 11925 +11025 11925 +11175 11875 +11050 11825 +10950 11650 +10950 11550 +10950 11425 +10850 11325 +10950 11275 +11050 11325 +11225 11475 +11375 11475 +11325 11575 +11325 11725 +11325 11825 +11325 11925 +11325 12075 +11450 12075 +11450 12225 +11422 12354 +11425 12475 +11325 12425 +11325 12525 +11175 12525 +11175 12425 +11125 12325 +11100 12175 +10975 12125 +10925 12225 +10950 12325 +10900 12425 +10900 12525 +10800 12325 +10525 12325 +10425 12225 +10475 12125 +10325 12025 +10175 12125 +10225 12225 +10325 12175 +10325 12325 +10125 12325 +9975 12325 +10050 12400 +10050 12500 +10025 12600 +10175 12600 +10325 12600 +10475 12600 +10575 12600 +10675 12600 +10525 13175 +10525 13275 +10675 13275 +10825 13175 +11025 13200 +11224 13058 +11400 13125 +11400 13525 +11400 13725 +11175 13725 +11025 13600 +10975 13825 +11075 13925 +10975 14025 +11175 14125 +11375 14125 +11325 14225 +11400 14300 +11125 14300 +10975 14300 +10875 14475 +10925 14575 +10825 14750 +10725 14725 +10775 14575 +10675 14575 +10525 14575 +10525 14725 +10450 14900 +10300 14900 +10425 15025 +10425 15175 +10425 15275 +10525 15225 +10625 15275 +10725 15225 +10725 15125 +10625 15125 +10525 15075 +10575 14975 +10775 14975 +10925 15125 +11025 14975 +11025 14875 +11075 14725 +11075 14575 +11175 14625 +11175 14775 +11175 14875 +11175 14975 +11325 15025 +11425 15075 +11425 15225 +11325 15225 +11275 15325 +11425 15375 +11425 15525 +11350 15725 +11450 15825 +11350 15925 +11175 15625 +11275 15575 +11275 15475 +11175 15475 +11075 15375 +10975 15375 +10875 15675 +10975 15725 +10875 15775 +10925 15925 +10775 15925 +10675 15925 +10575 15925 +10475 15925 +10250 15775 +10175 15875 +10075 15975 +9875 15975 +9847 15853 +10025 15875 +10100 15725 +10250 15625 +10250 15525 +10250 15375 +10150 15375 +10225 15275 +10275 15125 +10125 15125 +10000 15025 +10000 14925 +9825 14975 +9625 14875 +9475 14875 +9425 14775 +9575 14775 +9625 14625 +9725 14725 +9825 14625 +10025 14675 +9975 14575 +9925 14425 +9825 14225 +9625 14225 +9725 14125 +9875 13925 +9725 13925 +9575 13975 +9575 13825 +9725 13575 +9625 13350 +9725 13175 +9625 13150 +9225 13525 +9225 13675 +9375 13675 +9375 13825 +9225 13825 +9225 14025 +9225 14225 +9226 14409 +9225 14410 +9226 14559 +9225 14560 +9225 14710 +9226 14710 +9225 14860 +9225 14861 +9325 14975 +9225 15025 +9225 15125 +9225 15225 +9225 15325 +9225 15425 +9225 15525 +9225 15625 +9578 15970 +9475 15975 +9275 15975 +8900 15825 +8800 15925 +8800 15725 +8725 15575 +8625 15625 +8425 15725 +8325 15675 +8325 15775 +8375 15925 +8225 15925 +8125 15925 +8025 15925 +7925 15925 +7700 15775 +7700 15625 +7700 15525 +7550 15725 +7625 15875 +7525 15975 +7475 15875 +7325 15975 +7297 15853 +7028 15970 +6925 15975 +6725 15975 +6675 15625 +6675 15525 +6675 15425 +6675 15325 +6675 15225 +6675 15125 +6675 15025 +6775 14975 +6675 14861 +6675 14860 +6676 14710 +6675 14710 +6675 14560 +6676 14559 +6675 14410 +6676 14409 +6675 14225 +6675 14025 +6675 13825 +6825 13825 +6825 13675 +6675 13675 +6675 13525 +7075 13150 +7175 13175 +7075 13350 +7175 13575 +7025 13825 +7025 13975 +7175 13925 +7325 13925 +7175 14125 +7075 14225 +7275 14225 +7375 14425 +7425 14575 +7475 14675 +7275 14625 +7175 14725 +7075 14625 +7025 14775 +6875 14775 +6925 14875 +7075 14875 +7275 14975 +7450 14925 +7450 15025 +7575 15125 +7725 15125 +7675 15275 +7600 15375 +7700 15375 +7875 15275 +7875 15175 +7975 15225 +8075 15275 +8175 15225 +8175 15125 +8075 15125 +8025 14975 +7975 15075 +7875 15025 +7750 14900 +7900 14900 +7975 14725 +7975 14575 +8125 14575 +8225 14575 +8175 14725 +8275 14750 +8225 14975 +8375 15125 +8425 15375 +8525 15375 +8625 15475 +8725 15475 +8875 15525 +8875 15375 +8725 15325 +8775 15225 +8875 15225 +8875 15075 +8775 15025 +8625 14975 +8475 14975 +8475 14875 +8625 14875 +8625 14775 +8525 14725 +8625 14625 +8525 14575 +8375 14575 +8325 14475 +8425 14300 +8575 14300 +8850 14300 +8775 14225 +8825 14125 +8625 14125 +8425 14025 +8525 13925 +8425 13825 +8475 13600 +8625 13725 +8850 13725 +8850 13525 +8850 13125 +8674 13058 +8475 13200 +8275 13175 +8125 13275 +7975 13275 +7975 13175 +8125 12600 +8025 12600 +7925 12600 +7775 12600 +7625 12600 +7475 12600 +7500 12500 +7500 12400 +7425 12325 +7575 12325 +7675 12225 +7625 12125 +7775 12025 +7925 12125 +7875 12225 +7775 12175 +7775 12325 +7975 12325 +8250 12325 +8350 12525 +8350 12425 +8400 12325 +8375 12225 +8425 12125 +8550 12175 +8575 12325 +8625 12425 +8625 12525 +8775 12525 +8775 12425 +8875 12475 +8872 12354 +8900 12225 +8900 12075 +8775 12075 +8775 11925 +8775 11825 +8775 11725 +8775 11575 +8825 11475 +8675 11475 +8500 11325 +8400 11275 +8300 11325 +8400 11425 +8400 11550 +8400 11650 +8500 11825 +8625 11875 +8475 11925 +8325 11925 +8125 11725 +8225 11725 +8300 11675 +8300 11575 +8300 11475 +8225 11425 +8125 11425 +8025 11325 +7825 11325 +7725 11325 +7525 11325 +7425 11425 +7325 11425 +7250 11325 +7150 11275 +7050 11325 +7150 11425 +7250 11475 +7250 11575 +7150 11575 +7150 11675 +7250 11675 +7325 11750 +7425 11750 +7225 11925 +7075 11925 +7050 11825 +6975 11925 +7025 12075 +7125 12125 +7175 12225 +7025 12225 +6925 12175 +6925 12425 +6925 12575 +6925 12675 +6925 12825 +6665 12760 +6665 12610 +6665 12460 +6665 12310 +6665 12160 +6665 12010 +6825 11925 +6665 11860 +6665 11710 +6775 11650 +6850 11700 +6850 11600 +6775 11525 +6825 11425 +6725 11425 +6275 11475 +6225 11575 +6125 11475 +5950 11325 +5850 11425 +5750 11325 +5850 11275 +5825 11125 +5825 11025 +5925 11125 +6025 11075 +6025 10975 +6200 10975 +6300 10775 +6300 10625 +6300 10475 +6300 10375 +6275 10275 +6700 10425 +6700 10525 +6700 10625 +6700 10725 +6700 10850 +6725 11050 +6875 11025 +7000 11025 +7075 11125 +7175 11125 +7175 11025 +7550 11075 +7550 10875 +7550 10475 +8000 10475 +8000 10875 +8000 11075 +8375 11025 +8375 11125 +8475 11125 +8575 11075 +8575 10975 +8750 10975 +8850 10775 +8850 10625 +8850 10475 +8850 10375 +8825 10275 +9250 10425 +9250 10525 +9250 10625 +9250 10725 +9250 10850 +9275 11050 +9425 11025 +9550 11025 +9625 11125 +9725 11025 +9725 11125 +9700 11275 +9800 11325 +9700 11425 +9600 11325 +9375 11425 +9275 11425 +9325 11525 +9400 11600 +9400 11700 +9325 11650 +9215 11710 +9215 11860 +9375 11925 +9215 12010 +9215 12160 +9215 12310 +9215 12460 +9215 12610 +9215 12760 +9475 12825 +9475 12675 +9475 12575 +9475 12425 +9475 12175 +9575 12225 +9725 12225 +9675 12125 +9575 12075 +9525 11925 +9600 11825 +9625 11925 +9775 11925 +9975 11750 +9875 11750 +9800 11675 +9700 11675 +9700 11575 +9800 11575 +9800 11475 +9875 11425 +9975 11425 +10075 11325 +10100 11075 +10100 10875 +10100 10475 +10550 10475 +10848 10075 +10575 10075 +10437 9801 +10435 9702 +10435 9601 +10436 9502 +10436 9399 +10436 9298 +10175 9325 +10175 9425 +10175 9525 +10175 9725 +10175 9825 +10075 10075 +9800 10075 +9525 10075 +9375 10125 +9290 9806 +9289 9706 +9289 9606 +9290 9505 +9290 9406 +9289 9306 +8775 9325 +8775 9425 +8775 9525 +8775 9725 +8775 9825 +8825 10075 +8575 10075 +8298 10075 +8025 10075 +7887 9801 +7885 9702 +7885 9601 +7886 9502 +7886 9399 +7886 9298 +7625 9325 +7625 9425 +7625 9525 +7625 9725 +7625 9825 +7525 10075 +7250 10075 +6975 10075 +6825 10125 +6740 9806 +6739 9706 +6739 9606 +6740 9505 +6740 9406 +6739 9306 +7028 8820 +6925 8825 +6725 8825 +6675 8475 +6675 8375 +6675 8275 +6675 8175 +6675 8075 +6675 7975 +6675 7875 +6775 7825 +6675 7711 +6675 7710 +6676 7560 +6675 7560 +6675 7410 +6676 7409 +6675 7260 +6676 7259 +6675 7075 +6675 6875 +6675 6675 +6825 6675 +6825 6525 +6675 6525 +6675 6375 +7075 6000 +7175 6025 +7075 6200 +7175 6425 +7025 6675 +7025 6825 +7175 6775 +7325 6775 +7175 6975 +7075 7075 +7275 7075 +7375 7275 +7425 7425 +7475 7525 +7275 7475 +7175 7575 +7075 7475 +7025 7625 +6875 7625 +6925 7725 +7075 7725 +7275 7825 +7450 7775 +7450 7875 +7575 7975 +7725 7975 +7675 8125 +7600 8225 +7700 8225 +7700 8375 +7700 8475 +7550 8575 +7475 8725 +7297 8703 +7325 8825 +7525 8825 +7625 8725 +7700 8625 +7925 8775 +8025 8775 +8125 8775 +8225 8775 +8375 8775 +8325 8625 +8425 8575 +8325 8525 +8425 8225 +8525 8225 +8625 8325 +8725 8325 +8725 8425 +8625 8475 +8800 8775 +8900 8675 +8800 8575 +8875 8375 +8875 8225 +8725 8175 +8775 8075 +8875 8075 +8875 7925 +8775 7875 +8625 7825 +8625 7725 +8625 7625 +8625 7475 +8525 7425 +8525 7575 +8475 7725 +8475 7825 +8375 7975 +8225 7825 +8025 7825 +7975 7925 +8075 7975 +8175 7975 +8175 8075 +8075 8125 +7975 8075 +7875 8125 +7875 8025 +7875 7875 +7750 7750 +7900 7750 +7975 7575 +7975 7425 +8125 7425 +8225 7425 +8175 7575 +8275 7600 +8375 7425 +8325 7325 +8425 7150 +8575 7150 +8850 7150 +8775 7075 +8825 6975 +8625 6975 +8425 6875 +8525 6775 +8425 6675 +8475 6450 +8625 6575 +8850 6575 +8850 6375 +8850 5975 +8674 5908 +8475 6050 +8275 6025 +8125 6125 +7975 6125 +7975 6025 +8125 5450 +8025 5450 +7925 5450 +7775 5450 +7625 5450 +7475 5450 +7500 5350 +7500 5250 +7425 5175 +7575 5175 +7675 5075 +7625 4975 +7775 4875 +7925 4975 +7875 5075 +7775 5025 +7775 5175 +7975 5175 +8250 5175 +8350 5375 +8350 5275 +8400 5175 +8375 5075 +8425 4975 +8550 5025 +8575 5175 +8625 5275 +8625 5375 +8775 5375 +8775 5275 +8875 5325 +8872 5204 +8900 5075 +8900 4925 +8775 4925 +8775 4775 +8775 4675 +8775 4575 +8625 4725 +8500 4675 +8475 4775 +8325 4775 +8125 4575 +8225 4575 +8300 4525 +8400 4500 +8400 4400 +8300 4425 +8300 4325 +8225 4275 +8125 4275 +8025 4175 +8000 3925 +8000 3725 +8000 3325 +7550 3325 +7550 3725 +7550 3925 +7825 4175 +7725 4175 +7525 4175 +7425 4275 +7325 4275 +7250 4325 +7250 4425 +7150 4425 +7150 4525 +7250 4525 +7325 4600 +7425 4600 +7225 4775 +7075 4775 +7050 4675 +6975 4775 +7025 4925 +7125 4975 +7175 5075 +7025 5075 +6925 5025 +6925 5275 +6925 5425 +6925 5525 +6925 5675 +6665 5610 +6665 5460 +6665 5310 +6665 5160 +6665 5010 +6665 4860 +6825 4775 +6665 4710 +6665 4560 +6775 4500 +6850 4550 +6850 4450 +6775 4375 +6725 4275 +6825 4275 +7050 4175 +7150 4275 +7250 4175 +7150 4125 +7175 3975 +7175 3875 +7075 3975 +7000 3875 +6875 3875 +6725 3900 +6700 3700 +6700 3575 +6700 3475 +6700 3375 +6700 3275 +6275 3125 +6300 3225 +6300 3325 +6300 3475 +6300 3625 +6200 3825 +6025 3825 +6025 3925 +5925 3975 +5825 3975 +5825 3875 +5450 3925 +5450 3725 +5450 3325 +5000 3325 +5000 3725 +5000 3925 +4625 3875 +4625 3975 +4525 3975 +4450 3875 +4325 3875 +4175 3900 +4150 3700 +4150 3575 +4150 3475 +4150 3375 +4150 3275 +3725 3125 +3750 3225 +3750 3325 +3750 3475 +3750 3625 +3650 3825 +3475 3825 +3475 3925 +3375 3975 +3275 3875 +3275 3975 +3300 4125 +3200 4175 +3300 4275 +3400 4175 +3575 4325 +3675 4425 +3725 4325 +4175 4275 +4275 4275 +4225 4375 +4300 4450 +4300 4550 +4225 4500 +4115 4560 +4115 4710 +4275 4775 +4115 4860 +4115 5010 +4115 5160 +4115 5310 +4115 5460 +4115 5610 +4375 5675 +4375 5525 +4375 5425 +4375 5275 +4375 5025 +4475 5075 +4625 5075 +4575 4975 +4475 4925 +4425 4775 +4500 4675 +4525 4775 +4675 4775 +4875 4600 +4775 4600 +4700 4525 +4600 4525 +4600 4425 +4700 4425 +4700 4325 +4600 4275 +4500 4175 +4600 4125 +4700 4175 +4775 4275 +4875 4275 +4975 4175 +5175 4175 +5275 4175 +5475 4175 +5575 4275 +5675 4275 +5750 4325 +5750 4425 +5750 4525 +5675 4575 +5575 4575 +5775 4775 +5925 4775 +6075 4725 +5950 4675 +5850 4500 +5850 4400 +5850 4275 +5750 4175 +5850 4125 +5950 4175 +6125 4325 +6275 4325 +6225 4425 +6225 4575 +6225 4675 +6225 4775 +6225 4925 +6350 4925 +6350 5075 +6322 5204 +6325 5325 +6225 5275 +6225 5375 +6075 5375 +6075 5275 +6025 5175 +6000 5025 +5875 4975 +5825 5075 +5850 5175 +5800 5275 +5800 5375 +5700 5175 +5425 5175 +5325 5075 +5375 4975 +5225 4875 +5075 4975 +5125 5075 +5225 5025 +5225 5175 +5025 5175 +4875 5175 +4950 5250 +4950 5350 +4925 5450 +5075 5450 +5225 5450 +5375 5450 +5475 5450 +5575 5450 +5425 6025 +5425 6125 +5575 6125 +5725 6025 +5925 6050 +6124 5908 +6300 5975 +6300 6375 +6300 6575 +6075 6575 +5925 6450 +5875 6675 +5975 6775 +5875 6875 +6075 6975 +6275 6975 +6225 7075 +6300 7150 +6025 7150 +5875 7150 +5775 7325 +5825 7425 +5975 7425 +6075 7475 +5975 7575 +6075 7625 +6075 7725 +5925 7725 +5925 7825 +6075 7825 +6225 7875 +6325 7925 +6325 8075 +6225 8075 +6175 8175 +6325 8225 +6325 8375 +6175 8325 +6075 8325 +5975 8225 +5875 8225 +5825 7975 +5675 7825 +5725 7600 +5625 7575 +5675 7425 +5575 7425 +5425 7425 +5425 7575 +5350 7750 +5200 7750 +5325 7875 +5475 7825 +5425 7925 +5525 7975 +5625 7975 +5625 8075 +5525 8125 +5425 8075 +5325 8025 +5325 8125 +5150 8225 +5050 8225 +5125 8125 +5175 7975 +5025 7975 +4900 7875 +4900 7775 +4725 7825 +4525 7725 +4375 7725 +4325 7625 +4475 7625 +4525 7475 +4625 7575 +4725 7475 +4925 7525 +4875 7425 +4825 7275 +4725 7075 +4525 7075 +4625 6975 +4775 6775 +4625 6775 +4475 6825 +4475 6675 +4625 6425 +4525 6200 +4625 6025 +4525 6000 +4125 6375 +4125 6525 +4275 6525 +4275 6675 +4125 6675 +4125 6875 +4125 7075 +4126 7259 +4125 7260 +4126 7409 +4125 7410 +4125 7560 +4126 7560 +4125 7710 +4125 7711 +4225 7825 +4125 7875 +4125 7975 +4125 8075 +4125 8175 +4125 8275 +4125 8375 +4125 8475 +4175 8825 +4375 8825 +4478 8820 +4747 8703 +4775 8825 +4925 8725 +4975 8825 +5075 8725 +5000 8575 +5150 8375 +5150 8475 +5150 8625 +5375 8775 +5475 8775 +5575 8775 +5675 8775 +5825 8775 +5775 8625 +5775 8525 +5875 8575 +6075 8475 +6175 8425 +6250 8575 +6350 8675 +6250 8775 +6225 9325 +6225 9425 +6225 9525 +6225 9725 +6225 9825 +6275 10075 +6025 10075 +5748 10075 +5475 10075 +5337 9801 +5335 9702 +5335 9601 +5336 9502 +5336 9399 +5336 9298 +5075 9325 +5075 9425 +5075 9525 +5075 9725 +5075 9825 +4975 10075 +4700 10075 +4425 10075 +4275 10125 +4190 9806 +4189 9706 +4189 9606 +4190 9505 +4190 9406 +4189 9306 +3675 9325 +3675 9425 +3675 9525 +3675 9725 +3675 9825 +3725 10075 +3475 10075 +3198 10075 +2925 10075 +2787 9801 +2785 9702 +2785 9601 +2786 9502 +2786 9399 +2786 9298 +2525 9325 +2525 9425 +2525 9525 +2525 9725 +2525 9825 +2425 10075 +2150 10075 +2450 10475 +2900 10475 +2900 10875 +2900 11075 +3275 11025 +3275 11125 +3375 11125 +3475 11075 +3475 10975 +3650 10975 +3750 10775 +3750 10625 +3750 10475 +3750 10375 +3725 10275 +4150 10425 +4150 10525 +4150 10625 +4150 10725 +4150 10850 +4175 11050 +4325 11025 +4450 11025 +4525 11125 +4625 11025 +4625 11125 +4600 11275 +4700 11325 +4600 11425 +4500 11325 +4275 11425 +4175 11425 +4225 11525 +4300 11600 +4300 11700 +4225 11650 +4115 11710 +4115 11860 +4275 11925 +4115 12010 +4115 12160 +4115 12310 +4115 12460 +4115 12610 +4115 12760 +4375 12825 +4375 12675 +4375 12575 +4375 12425 +4375 12175 +4475 12225 +4625 12225 +4575 12125 +4475 12075 +4425 11925 +4500 11825 +4525 11925 +4675 11925 +4875 11750 +4775 11750 +4700 11675 +4600 11675 +4600 11575 +4700 11575 +4700 11475 +4775 11425 +4875 11425 +4975 11325 +5175 11325 +5275 11325 +5000 11075 +5000 10875 +5000 10475 +5450 10475 +5450 10875 +5450 11075 +5475 11325 +5575 11425 +5675 11425 +5750 11475 +5750 11575 +5850 11550 +5850 11650 +5750 11675 +5675 11725 +5575 11725 +5775 11925 +5925 11925 +5950 11825 +6075 11875 +6225 11725 +6225 11825 +6225 11925 +6225 12075 +6350 12075 +6350 12225 +6322 12354 +6325 12475 +6225 12425 +6225 12525 +6075 12525 +6075 12425 +6025 12325 +6000 12175 +5875 12125 +5825 12225 +5850 12325 +5800 12425 +5800 12525 +5700 12325 +5425 12325 +5325 12225 +5375 12125 +5225 12025 +5075 12125 +5125 12225 +5225 12175 +5225 12325 +5025 12325 +4875 12325 +4950 12400 +4950 12500 +4925 12600 +5075 12600 +5225 12600 +5375 12600 +5475 12600 +5575 12600 +5425 13175 +5425 13275 +5575 13275 +5725 13175 +5925 13200 +6124 13058 +6300 13125 +6300 13525 +6300 13725 +6075 13725 +5925 13600 +5875 13825 +5975 13925 +5875 14025 +6075 14125 +6275 14125 +6225 14225 +6300 14300 +6025 14300 +5875 14300 +5775 14475 +5825 14575 +5725 14750 +5625 14725 +5675 14575 +5575 14575 +5425 14575 +5425 14725 +5350 14900 +5200 14900 +5325 15025 +5325 15175 +5325 15275 +5425 15225 +5525 15275 +5625 15225 +5625 15125 +5525 15125 +5425 15075 +5475 14975 +5675 14975 +5825 15125 +5925 14975 +5925 14875 +5975 14725 +5975 14575 +6075 14625 +6075 14775 +6075 14875 +6075 14975 +6225 15025 +6325 15075 +6325 15225 +6225 15225 +6175 15325 +6325 15375 +6325 15525 +6250 15725 +6350 15825 +6250 15925 +6075 15625 +6175 15575 +6175 15475 +6075 15475 +5975 15375 +5875 15375 +5775 15675 +5875 15725 +5775 15775 +5825 15925 +5675 15925 +5575 15925 +5475 15925 +5375 15925 +5150 15775 +5075 15875 +4975 15975 +4775 15975 +4747 15853 +4925 15875 +5000 15725 +5150 15625 +5150 15525 +5150 15375 +5050 15375 +5125 15275 +5175 15125 +5025 15125 +4900 15025 +4900 14925 +4725 14975 +4525 14875 +4375 14875 +4325 14775 +4475 14775 +4525 14625 +4625 14725 +4725 14625 +4925 14675 +4875 14575 +4825 14425 +4725 14225 +4525 14225 +4625 14125 +4775 13925 +4625 13925 +4475 13975 +4475 13825 +4625 13575 +4525 13350 +4625 13175 +4525 13150 +4125 13525 +4125 13675 +4275 13675 +4275 13825 +4125 13825 +4125 14025 +4125 14225 +4126 14409 +4125 14410 +4126 14559 +4125 14560 +4125 14710 +4126 14710 +4125 14860 +4125 14861 +4225 14975 +4125 15025 +4125 15125 +4125 15225 +4125 15325 +4125 15425 +4125 15525 +4125 15625 +4478 15970 +4375 15975 +4175 15975 +3800 15825 +3700 15925 +3700 15725 +3625 15575 +3525 15625 +3325 15725 +3225 15675 +3225 15775 +3275 15925 +3125 15925 +3025 15925 +2925 15925 +2825 15925 +2600 15775 +2600 15625 +2600 15525 +2450 15725 +2525 15875 +2425 15975 +2375 15875 +2225 15975 +2197 15853 +1928 15970 +1825 15975 +1625 15975 +1575 15625 +1575 15525 +1575 15425 +1575 15325 +1575 15225 +1575 15125 +1575 15025 +1675 14975 +1575 14861 +1575 14860 +1575 14710 +1576 14710 +1575 14560 +1576 14559 +1575 14410 +1576 14409 +1575 14225 +1575 14025 +1575 13825 +1725 13825 +1725 13675 +1575 13675 +1575 13525 +1975 13150 +2075 13175 +1975 13350 +2075 13575 +1925 13825 +1925 13975 +2075 13925 +2225 13925 +2075 14125 +1975 14225 +2175 14225 +2275 14425 +2325 14575 +2375 14675 +2175 14625 +2075 14725 +1975 14625 +1925 14775 +1775 14775 +1825 14875 +1975 14875 +2175 14975 +2350 14925 +2350 15025 +2475 15125 +2625 15125 +2575 15275 +2500 15375 +2600 15375 +2775 15275 +2775 15175 +2875 15225 +2975 15275 +3075 15225 +3075 15125 +2975 15125 +2925 14975 +2875 15075 +2775 15025 +2650 14900 +2800 14900 +2875 14725 +2875 14575 +3025 14575 +3125 14575 +3075 14725 +3175 14750 +3125 14975 +3275 15125 +3325 15375 +3425 15375 +3525 15475 +3625 15475 +3775 15525 +3775 15375 +3625 15325 +3675 15225 +3775 15225 +3775 15075 +3675 15025 +3525 14975 +3375 14975 +3375 14875 +3525 14875 +3525 14775 +3425 14725 +3525 14625 +3425 14575 +3275 14575 +3225 14475 +3325 14300 +3475 14300 +3750 14300 +3675 14225 +3725 14125 +3525 14125 +3325 14025 +3425 13925 +3325 13825 +3375 13600 +3525 13725 +3750 13725 +3750 13525 +3750 13125 +3574 13058 +3375 13200 +3175 13175 +3025 13275 +2875 13275 +2875 13175 +3025 12600 +2925 12600 +2825 12600 +2675 12600 +2525 12600 +2375 12600 +2400 12500 +2400 12400 +2325 12325 +2475 12325 +2575 12225 +2525 12125 +2675 12025 +2825 12125 +2775 12225 +2675 12175 +2675 12325 +2875 12325 +3150 12325 +3250 12525 +3250 12425 +3300 12325 +3275 12225 +3325 12125 +3450 12175 +3475 12325 +3525 12425 +3525 12525 +3675 12525 +3675 12425 +3775 12475 +3772 12354 +3800 12225 +3800 12075 +3675 12075 +3675 11925 +3675 11825 +3675 11725 +3675 11575 +3725 11475 +3575 11475 +3400 11325 +3300 11275 +3200 11325 +3300 11425 +3300 11550 +3300 11650 +3400 11825 +3525 11875 +3375 11925 +3225 11925 +3025 11725 +3125 11725 +3200 11675 +3200 11575 +3200 11475 +3125 11425 +3025 11425 +2925 11325 +2725 11325 +2625 11325 +2450 10875 +2450 11075 +2425 11325 +2325 11425 +2225 11425 +2150 11475 +2150 11575 +2050 11575 +2050 11675 +2150 11675 +2225 11750 +2325 11750 +2125 11925 +1975 11925 +1950 11825 +1875 11925 +1925 12075 +2025 12125 +2075 12225 +1925 12225 +1825 12175 +1825 12425 +1825 12575 +1825 12675 +1825 12825 +1565 12760 +1565 12610 +1565 12460 +1565 12310 +1565 12160 +1565 12010 +1725 11925 +1565 11860 +1565 11710 +1675 11650 +1750 11700 +1750 11600 +1675 11525 +1625 11425 +1725 11425 +1950 11325 +2050 11425 +2150 11325 +2050 11275 +2075 11125 +2075 11025 +1975 11125 +1900 11025 +1775 11025 +1625 11050 +1600 10850 +1600 10725 +1600 10625 +1600 10525 +1600 10425 +1725 10125 +1875 10075 +1640 9806 +1639 9706 +1639 9606 +1640 9505 +1640 9406 +1639 9306 +1928 8820 +1825 8825 +1625 8825 +1575 8475 +1575 8375 +1575 8275 +1575 8175 +1575 8075 +1575 7975 +1575 7875 +1675 7825 +1575 7711 +1575 7710 +1576 7560 +1575 7560 +1575 7410 +1576 7409 +1575 7260 +1576 7259 +1575 7075 +1575 6875 +1575 6675 +1725 6675 +1725 6525 +1575 6525 +1575 6375 +1975 6000 +2075 6025 +1975 6200 +2075 6425 +1925 6675 +1925 6825 +2075 6775 +2225 6775 +2075 6975 +1975 7075 +2175 7075 +2275 7275 +2325 7425 +2375 7525 +2175 7475 +2075 7575 +1975 7475 +1925 7625 +1775 7625 +1825 7725 +1975 7725 +2175 7825 +2350 7775 +2350 7875 +2475 7975 +2625 7975 +2575 8125 +2500 8225 +2600 8225 +2600 8375 +2600 8475 +2450 8575 +2375 8725 +2197 8703 +2225 8825 +2425 8825 +2525 8725 +2600 8625 +2825 8775 +2925 8775 +3025 8775 +3125 8775 +3275 8775 +3225 8625 +3325 8575 +3225 8525 +3325 8225 +3425 8225 +3525 8325 +3625 8325 +3625 8425 +3525 8475 +3700 8775 +3800 8675 +3700 8575 +3775 8375 +3775 8225 +3625 8175 +3675 8075 +3775 8075 +3775 7925 +3675 7875 +3525 7825 +3525 7725 +3525 7625 +3525 7475 +3425 7425 +3425 7575 +3375 7725 +3375 7825 +3275 7975 +3125 7825 +2925 7825 +2875 7925 +2975 7975 +3075 7975 +3075 8075 +2975 8125 +2875 8075 +2775 8125 +2775 8025 +2775 7875 +2650 7750 +2800 7750 +2875 7575 +2875 7425 +3025 7425 +3125 7425 +3075 7575 +3175 7600 +3275 7425 +3225 7325 +3325 7150 +3475 7150 +3750 7150 +3675 7075 +3725 6975 +3525 6975 +3325 6875 +3425 6775 +3325 6675 +3375 6450 +3525 6575 +3750 6575 +3750 6375 +3750 5975 +3574 5908 +3375 6050 +3175 6025 +3025 6125 +2875 6125 +2875 6025 +3025 5450 +2925 5450 +2825 5450 +2675 5450 +2525 5450 +2375 5450 +2400 5350 +2400 5250 +2325 5175 +2475 5175 +2575 5075 +2525 4975 +2675 4875 +2825 4975 +2775 5075 +2675 5025 +2675 5175 +2875 5175 +3150 5175 +3250 5375 +3250 5275 +3300 5175 +3275 5075 +3325 4975 +3450 5025 +3475 5175 +3525 5275 +3525 5375 +3675 5375 +3675 5275 +3775 5325 +3772 5204 +3800 5075 +3800 4925 +3675 4925 +3675 4775 +3675 4675 +3675 4575 +3525 4725 +3400 4675 +3375 4775 +3225 4775 +3025 4575 +3125 4575 +3200 4525 +3300 4500 +3300 4400 +3200 4425 +3200 4325 +3125 4275 +3025 4275 +2925 4175 +2900 3925 +2900 3725 +2900 3325 +2450 3325 +2450 3725 +2450 3925 +2725 4175 +2625 4175 +2425 4175 +2325 4275 +2225 4275 +2150 4325 +2150 4425 +2050 4425 +2050 4525 +2150 4525 +2225 4600 +2325 4600 +2125 4775 +1975 4775 +1950 4675 +1875 4775 +1925 4925 +2025 4975 +2075 5075 +1925 5075 +1825 5025 +1825 5275 +1825 5425 +1825 5525 +1825 5675 +1565 5610 +1565 5460 +1565 5310 +1565 5160 +1565 5010 +1565 4860 +1725 4775 +1565 4710 +1565 4560 +1675 4500 +1750 4550 +1750 4450 +1675 4375 +1625 4275 +1725 4275 +1950 4175 +2050 4275 +2150 4175 +2050 4125 +2075 3975 +2075 3875 +1975 3975 +1900 3875 +1775 3875 +1625 3900 +1600 3700 +1600 3575 +1600 3475 +1600 3375 +1600 3275 +1725 2975 +1640 2656 +1639 2556 +1639 2456 +1640 2355 +1640 2256 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/readme b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/readme new file mode 100644 index 000000000..7203e5789 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/readme @@ -0,0 +1,35 @@ +NAME : eil101 +COMMENT : 101-city problem (Christofides/Eilon) +TYPE : TSP +DIMENSION : 101 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME: ali535 +TYPE: TSP +COMMENT: 535 Airports around the globe (Padberg/Rinaldi) +DIMENSION: 535 +EDGE_WEIGHT_TYPE: GEO +DISPLAY_DATA_TYPE: COORD_DISPLAY + +NAME : pr2392 +COMMENT : 2392-city problem (Padberg/Rinaldi) +TYPE : TSP +DIMENSION : 2392 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : rl5915 +COMMENT : 5915-city TSP (Reinelt) +TYPE : TSP +DIMENSION : 5915 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : usa13509 +COMMENT : Cities with population at least 500 in the continental US. +COMMENT : Contributed by David Applegate and Andre Rohe, based on the +COMMENT : data set "US.lat-long" from the ftp site ftp.cs.toronto.edu. +COMMENT : The file US.lat-long.Z can be found in the directory /doc/geography. +TYPE : TSP +DIMENSION : 13509 +EDGE_WEIGHT_TYPE : EUC_2D + + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/rl5915.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/rl5915.tsp new file mode 100644 index 000000000..9eda5f662 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/rl5915.tsp @@ -0,0 +1,5916 @@ +5915 +18192 8954 +18192 9856 +18192 11319 +18272 8624 +18416 7348 +18416 8294 +1200 7370 +1200 8184 +1200 10912 +1200 11440 +17904 572 +17904 2684 +17904 6908 +17904 7348 +17904 8624 +8272 308 +8272 2068 +8272 2508 +8272 3080 +8272 3608 +8272 5302 +8336 7260 +8464 7260 +8496 9548 +8496 10582 +8496 11440 +15888 9064 +15888 9504 +15888 10252 +15888 11000 +15936 8184 +16048 8184 +16208 8184 +16336 572 +16336 1012 +16336 1452 +16336 2992 +16336 4818 +16336 6028 +16336 7348 +1040 7370 +1040 8184 +1040 10912 +1040 11440 +4464 308 +4640 308 +4816 308 +4944 308 +5168 308 +5440 308 +5616 308 +5728 308 +5808 3080 +5808 3608 +5808 4664 +5808 5368 +5808 6072 +5808 7128 +5936 9658 +5936 11286 +16848 572 +16848 1452 +16848 2992 +16848 4708 +16848 6028 +16848 7348 +16848 8514 +16848 9284 +16848 9922 +16848 11198 +8240 7480 +8400 9548 +8400 10582 +8400 11440 +1520 9152 +1520 10912 +1520 11440 +1584 6446 +1584 7590 +1584 8294 +5168 11440 +5280 11440 +5456 11440 +5584 11440 +5712 11440 +2672 6336 +2784 6556 +2976 6556 +3104 6556 +3264 6556 +3360 6556 +3600 6556 +3856 6556 +3920 6556 +4016 6556 +4144 6556 +4208 6556 +4352 6556 +4464 6556 +4560 6556 +4688 6556 +4720 7260 +4720 8140 +4720 9702 +4720 10582 +4720 11132 +17008 572 +17008 1452 +17008 2992 +17008 5874 +17008 7348 +17072 8096 +17136 8096 +17280 8096 +17456 8096 +17520 8404 +17520 8954 +17520 10142 +17520 11319 +880 7370 +880 8184 +880 11440 +4144 4840 +4144 7700 +4304 8360 +4416 8360 +4576 8360 +4656 8360 +4864 8360 +5040 8360 +5296 8360 +5456 8844 +5456 9812 +5520 3608 +5520 4664 +5520 5368 +5520 5918 +5520 6930 +16560 8954 +16560 9922 +16592 572 +16592 1452 +16592 2992 +16592 4818 +16592 6138 +16592 7348 +7728 7744 +7728 9548 +7728 10846 +7792 7040 +7856 7040 +7952 7040 +8016 308 +8016 2068 +8016 2508 +8016 3080 +8016 3608 +8016 4268 +8016 5852 +16272 9064 +16272 9504 +16272 9922 +16272 11000 +16640 8844 +16720 8844 +16784 6028 +16784 7348 +16784 8514 +464 11440 +528 8184 +640 8184 +784 7370 +784 7964 +7664 6446 +7664 8074 +7664 9548 +7664 10846 +7728 308 +7728 2068 +7728 2508 +7728 3080 +7728 3608 +7728 4048 +7728 4488 +5232 3608 +5232 4664 +5232 5368 +5232 5918 +5232 6776 +5520 7920 +3856 7480 +3920 7920 +4016 7920 +4176 9152 +4176 9922 +4176 10472 +4176 10912 +4176 11440 +5984 748 +6096 3080 +6096 3608 +6096 4664 +6160 5368 +6224 5368 +6320 5368 +6496 5368 +6608 5698 +6608 6336 +6608 7502 +6608 9064 +6608 10142 +6608 11022 +17200 5874 +17200 7348 +17200 9284 +17200 9922 +17200 11198 +17296 5192 +17440 5192 +17568 5192 +17616 572 +17616 2992 +7248 10362 +7248 11286 +7376 308 +7376 968 +7376 2068 +7376 2508 +7376 3080 +7376 3608 +7376 4488 +7376 5588 +7376 6556 +7376 7744 +1808 6446 +1840 7436 +1840 8404 +1840 9042 +1840 10912 +1840 11440 +12272 9878 +12464 9064 +12592 9064 +12736 9064 +12848 902 +12848 1980 +12848 2640 +12848 3168 +12848 3608 +12848 4158 +12848 5368 +12848 6556 +12848 6996 +12848 8008 +12848 8844 +1648 8404 +1648 9152 +1648 10912 +1648 11440 +1680 6446 +1680 7590 +6256 9658 +6256 11022 +16976 8514 +16976 9284 +16976 9922 +16976 11198 +17072 5720 +17136 5720 +17440 5720 +17600 5720 +11600 572 +11600 1760 +11600 3388 +11600 5258 +11600 6556 +11600 6996 +11600 7898 +11632 8602 +11632 9284 +11632 10208 +17376 10142 +17728 10142 +18416 10142 +18608 10142 +18704 10142 +18864 10142 +18992 10142 +19088 10142 +6224 968 +6224 3080 +6224 3608 +6224 4664 +6400 10912 +6768 10912 +6864 11286 +1936 6336 +1936 7436 +1968 8404 +1968 9152 +1968 10912 +1968 11440 +3984 8712 +4304 8932 +4416 8932 +4496 10802 +15440 1232 +15440 3608 +15440 4180 +15440 4818 +15536 5808 +15648 5808 +15760 5808 +15840 5808 +15936 5808 +16048 5808 +16208 5808 +5584 10252 +5728 10252 +6000 10252 +6064 10252 +6160 10252 +6320 968 +6320 3080 +6320 3608 +6320 4664 +6384 9548 +6384 10472 +16720 11198 +17088 11198 +17376 11198 +17728 11198 +18416 11198 +18608 11198 +18704 11198 +18848 11198 +15280 572 +15280 1232 +15280 3608 +15280 4180 +15280 4818 +15280 6138 +15280 7348 +15280 8228 +15280 9064 +15280 9504 +15280 10252 +15280 11000 +3472 7920 +3472 8712 +3472 9372 +3472 10472 +3472 10912 +3472 11440 +208 11440 +432 7964 +944 7964 +1104 7370 +1424 6446 +1424 7370 +1424 8294 +10096 4378 +10096 5478 +10096 6556 +10096 7480 +10096 8008 +10096 8602 +10096 9284 +10096 10318 +10096 11440 +10256 3608 +10336 3608 +10448 3608 +10544 3608 +10608 3608 +10672 3608 +10752 3608 +10864 3608 +10992 3608 +11088 3608 +11168 3608 +11280 3608 +11408 3608 +688 7370 +688 11440 +6160 968 +6496 968 +6592 968 +6736 968 +6848 968 +6944 968 +7104 968 +7232 968 +7552 968 +7600 308 +7600 2068 +7600 2508 +7600 3080 +7600 3608 +7600 4048 +7600 4488 +7632 5148 +7792 5148 +7856 5148 +7920 5148 +8112 5148 +8384 5148 +8464 5148 +8624 5148 +8800 5148 +8912 5148 +9216 5148 +9504 5148 +9616 5148 +9744 5148 +9888 5148 +9936 6556 +9936 7480 +9936 8382 +9936 9284 +9936 11440 +10032 572 +10032 1452 +10032 2728 +6496 7084 +6736 7084 +6768 9064 +6768 10142 +9936 572 +9936 1452 +5200 10032 +7408 10362 +7568 10692 +7856 10692 +7936 10692 +8032 10692 +8144 10692 +8224 10692 +8320 10692 +8784 10692 +8976 10692 +9408 10692 +10288 10692 +10400 10692 +10560 10692 +10704 10692 +10864 10692 +10960 10692 +11136 10692 +11264 10692 +11392 10692 +11472 10692 +11568 10692 +4880 9218 +4880 10032 +4880 10582 +4880 11132 +4944 3608 +4944 4664 +4944 5368 +4944 5918 +4944 6776 +4944 7436 +6944 308 +7104 308 +7232 308 +7792 308 +7856 308 +7920 308 +8128 308 +8384 308 +8464 308 +8528 308 +8592 308 +8688 308 +8800 308 +8912 308 +9008 308 +9104 308 +9200 308 +9232 1452 +9232 2288 +9232 3388 +9344 7260 +9456 8602 +9456 11440 +3568 7920 +3664 7920 +3728 7920 +8240 9548 +8240 11440 +9376 6776 +9776 572 +9776 1452 +9776 2508 +9776 3388 +6992 7854 +6992 9174 +6992 9812 +6992 10362 +7056 2068 +7056 3080 +7056 3608 +7056 4664 +7056 5588 +7056 6556 +14512 682 +14640 3608 +14640 4048 +14640 4598 +14640 6138 +14640 7568 +14640 8228 +14640 9064 +14640 9504 +14640 10252 +14640 11000 +14768 1012 +14848 1012 +14960 1012 +15376 1012 +15536 1012 +15664 1012 +15760 1012 +15840 1012 +15936 1012 +16048 1012 +16208 1012 +16464 1012 +16528 572 +14736 6138 +14736 7568 +14736 8228 +14736 9064 +14736 9504 +14736 10252 +14736 10890 +14768 4928 +14880 4928 +14976 4928 +15376 4928 +15536 4928 +15648 4928 +15760 4928 +15840 4928 +15936 4928 +16048 4928 +16208 4928 +16464 4928 +16704 4928 +13808 6028 +13808 6776 +13808 7788 +13808 8228 +13808 9504 +13808 10362 +13808 11110 +14032 4708 +14144 4708 +14320 4708 +14464 4708 +16944 4708 +3664 8712 +3728 9284 +3760 9702 +3760 10472 +3760 10912 +3760 11440 +3600 8712 +3600 9482 +4048 9812 +4336 9812 +4576 9812 +4656 9812 +4976 8844 +8976 8118 +8976 9394 +8976 11440 +10176 6556 +10304 6556 +10448 6556 +10576 6556 +10736 6556 +10832 6556 +10896 6556 +10976 6556 +11088 6556 +11168 6556 +11264 6556 +11424 6556 +11536 6556 +11664 6556 +11728 6556 +11792 6556 +11872 6556 +11968 6556 +12112 6556 +12272 6556 +12448 6556 +12608 6556 +12736 6556 +13008 6556 +13072 1012 +13072 1980 +13072 2640 +13072 3608 +13072 4268 +13072 5368 +13168 572 +13264 572 +13408 572 +13568 572 +13696 572 +14016 572 +14160 572 +14320 572 +15120 572 +15376 572 +10480 572 +10480 1452 +10480 6006 +7120 2508 +7120 3080 +7120 3608 +7120 4664 +7120 5588 +7120 6556 +7120 7744 +7120 9064 +7120 9812 +7120 10362 +7120 11286 +3728 8712 +4016 10472 +4016 10912 +4016 11440 +6480 9064 +6896 9064 +7248 2068 +7248 2508 +7248 3080 +7248 3608 +7248 4664 +7248 5588 +7248 6556 +7248 7480 +3920 8712 +5056 9372 +3536 9372 +3536 10472 +3536 10912 +3536 11440 +8784 8448 +10304 8448 +10560 8448 +10704 8448 +10768 8448 +10848 8448 +10976 8448 +11120 8448 +11264 8448 +11552 8448 +11760 8448 +11888 8448 +12080 8448 +12240 8448 +12720 572 +12720 1980 +12720 3718 +12720 5368 +12720 6996 +2800 7326 +2928 7700 +2992 7700 +3104 7700 +3264 7700 +4208 7700 +8112 2068 +8112 2508 +8112 3080 +8112 3608 +8112 4268 +8112 7480 +9584 2728 +9584 3388 +9840 2288 +11440 2288 +11728 2288 +11824 2288 +11984 2288 +12112 2288 +12256 2288 +12384 2288 +12464 2288 +12496 572 +12496 1232 +12608 1012 +5584 7920 +5680 7920 +5760 7920 +6896 7920 +7568 7920 +8144 7920 +8208 7920 +9136 7590 +10544 6116 +11088 6116 +11168 6116 +11264 6116 +11312 572 +11312 1496 +11312 5258 +10768 572 +10768 1342 +10768 4488 +10768 5038 +10768 5588 +10768 6996 +10768 9284 +10768 9878 +5584 8844 +5616 3080 +6160 3080 +6496 3080 +6608 3080 +6736 3080 +6848 3080 +6944 3080 +7792 3080 +7856 3080 +7920 3080 +8384 3080 +8464 3080 +8560 3080 +8688 3080 +8800 3080 +8912 3080 +9008 3080 +8688 2288 +8464 6116 +8528 2068 +8528 2508 +8528 3608 +8464 2068 +8464 2508 +8464 3608 +17456 572 +17456 2992 +17456 7238 +11728 2948 +11824 2948 +11984 2948 +12112 2948 +12256 2948 +12384 2948 +12464 2948 +12560 572 +12560 1980 +12560 2728 +17552 7238 +17632 8184 +17776 8184 +18080 8184 +18256 9064 +10448 10032 +10560 10032 +10704 10032 +10864 10032 +10976 10032 +11136 10032 +11760 10032 +11888 10032 +12032 10032 +12144 10032 +12880 10032 +13008 10032 +13168 10032 +13312 10032 +13472 10032 +13584 10032 +13680 3608 +13680 4268 +13680 6028 +13680 6776 +13680 8008 +13680 9504 +17760 6908 +18048 6908 +18128 7348 +12640 3388 +12784 2640 +12784 3168 +10976 8008 +11088 8008 +11264 8008 +11664 8008 +11728 8008 +11792 8008 +11888 8008 +12912 8008 +13008 8008 +13184 8008 +13328 8008 +13456 8008 +13568 8008 +8400 2068 +8400 2508 +8400 3608 +9328 1452 +9520 1452 +9632 1452 +9840 1452 +10160 1452 +10256 1452 +10336 1452 +10544 1452 +10608 1452 +10672 1452 +10864 1452 +10992 1452 +11088 1452 +11168 1452 +12304 572 +14864 3608 +14864 4048 +14864 6138 +14864 7568 +14864 8228 +14864 9064 +14864 9504 +14864 10252 +14864 10890 +7792 2068 +7792 2508 +7792 3608 +7792 4048 +7792 4488 +7792 6446 +15376 3608 +15376 4180 +15376 6138 +15376 7348 +6864 2068 +6864 3608 +6864 4774 +6928 5368 +10544 5368 +10672 5368 +10704 9284 +12464 11000 +12592 11000 +12736 11000 +12880 11000 +13008 11000 +13168 11000 +13312 11000 +13456 11000 +13584 11000 +14144 11000 +14224 11000 +14336 11000 +14416 11000 +14992 11000 +15440 11000 +15632 11000 +15760 11000 +15824 11000 +16160 11000 +16464 11000 +15952 572 +15952 1452 +16048 2992 +16208 2992 +16464 2992 +16704 2992 +17072 2992 +17136 2992 +17296 2992 +15664 572 +15664 3608 +15664 4180 +15664 7348 +15664 7788 +15664 9064 +15664 9504 +15664 10252 +16432 1452 +8144 9548 +8144 11440 +9616 572 +12112 572 +12112 3938 +12112 5258 +8304 9548 +8304 11440 +12912 8844 +13008 8844 +13184 8844 +13328 8844 +13456 8844 +13552 3608 +13552 4378 +13552 5368 +13552 6028 +13552 6776 +11920 6996 +11920 9284 +11952 572 +11952 3938 +11952 5258 +10320 572 +10448 11440 +11824 572 +11824 3938 +11824 5258 +12656 5368 +5008 10692 +5008 11132 +13168 1980 +13168 2640 +13168 3608 +13168 4378 +13168 5478 +13232 6028 +13376 6028 +13488 6028 +14032 6028 +14144 6028 +14224 6028 +14320 6028 +14464 6028 +14976 6028 +16704 6028 +3280 10912 +3280 11440 +6736 308 +6736 2068 +6736 3608 +6736 4774 +6736 5698 +6736 6336 +8784 11440 +10288 11440 +10512 11440 +11792 6996 +8720 4158 +6800 5808 +6800 6336 +6912 6556 +7856 6556 +8896 6556 +8944 2288 +8944 3608 +7568 9504 +7856 9504 +8784 9504 +14144 8228 +14224 8228 +14336 8228 +14416 8228 +14480 8228 +15440 8228 +15504 8228 +15536 3608 +15536 4180 +15536 7348 +15568 572 +15760 572 +15840 572 +16048 572 +16208 572 +16704 572 +17104 572 +17296 572 +18000 572 +18080 572 +11728 572 +11728 3938 +11728 5258 +11728 6996 +11760 9284 +12272 3938 +12272 5258 +10512 9284 +7856 4048 +7920 4048 +8784 2288 +8784 3608 +8784 4268 +7920 2068 +7920 2508 +7920 3608 +7920 4488 +8880 4268 +10544 572 +10544 6996 +10608 4488 +9008 2288 +9312 2288 +11440 572 +11440 5258 +11440 6996 +11536 6996 +15824 7348 +15824 7788 +15824 9064 +15824 9504 +15824 10252 +6608 2068 +6608 3608 +6608 4664 +6896 5808 +112 11198 +10672 4488 +10832 4488 +10864 572 +10864 5038 +11088 6996 +9520 572 +9520 2068 +12240 6996 +3280 8712 +3280 9152 +3632 10472 +3632 10912 +3632 11440 +11568 9284 +14128 10472 +14160 1342 +14160 3608 +14160 4048 +14160 6776 +14160 7678 +14160 9504 +4080 10472 +4336 10472 +4576 10472 +4976 10032 +528 7370 +16016 1452 +16016 7348 +16016 9064 +16016 9504 +16160 9922 +16464 9922 +16640 9922 +16720 9922 +17088 9922 +1744 10912 +2112 10912 +2368 10912 +2544 10912 +2944 10912 +3056 8712 +3056 9152 +3088 10912 +4080 10912 +4336 10912 +4432 10912 +13456 9504 +14224 7788 +14336 7788 +14416 7788 +14448 1342 +14448 3608 +14448 4048 +1280 8404 +1744 8404 +1904 8404 +2160 8404 +2224 8404 +2368 8404 +2544 8404 +2704 7546 +14032 1342 +14032 3608 +14032 6776 +14976 7568 +14320 4048 +14768 4048 +13392 1980 +13392 3608 +13392 4378 +13392 5368 +16688 1452 +13360 6776 +16208 1452 +16208 7348 +1504 6336 +2064 6336 +2160 6336 +2224 6336 +2384 6336 +2544 6336 +4560 7370 +4304 7260 +4384 7260 +4464 7260 +4816 7260 +4880 7260 +14352 1342 +14352 3608 +14352 9504 +14352 10252 +5744 8844 +4336 11440 +6160 3608 +6160 4664 +6160 11132 +6512 3608 +6512 4664 +6928 2068 +6928 3608 +6928 4664 +11280 6996 +12592 6996 +13488 3608 +14768 3608 +14960 3608 +15760 3608 +15840 3608 +15920 7348 +12368 572 +12368 1232 +12368 3938 +12368 5258 +11664 6996 +17776 2684 +12464 3938 +13488 4268 +13232 6666 +10192 572 +944 7370 +10848 9284 +17088 9284 +17344 9284 +4592 4840 +4592 6028 +11024 572 +11024 5038 +2384 7436 +2384 9152 +2384 11440 +2928 8712 +2928 9152 +2928 11440 +2544 7546 +2544 9152 +2544 11440 +9648 7480 +2048 7172 +2160 7172 +2224 7172 +3440 7172 +1744 9042 +1744 11440 +2096 9152 +2096 11440 +3056 11440 +10960 6996 +2992 8712 +2992 9152 +10896 6996 +4080 11440 +16144 9064 +16144 9504 +14224 6776 +14224 9504 +14224 10252 +17104 8624 +17136 7348 +15440 9064 +15440 9504 +15440 10252 +15760 7788 +15856 1452 +4208 4840 +18320 7348 +15760 4180 +9712 7480 +17072 1452 +17072 7348 +16464 9504 +7856 2068 +7856 2508 +7856 3608 +7856 4488 +16720 7348 +15504 9064 +4368 4840 +6000 11132 +6064 11132 +4688 5808 +4816 5808 +4880 5808 +9008 3608 +15760 9064 +17424 9064 +18512 8294 +4880 4664 +4880 5368 +4880 6776 +4688 4488 +4752 4488 +4816 4488 +18608 8866 +14416 9504 +14416 10252 +15760 7348 +18224 7348 +13424 6776 +18704 8866 +11088 4928 +11168 4928 +12464 5368 +15760 1452 +15760 9504 +15760 10252 +432 7480 +11168 6996 +13488 6776 +13584 9504 +13488 5368 +11184 572 +4464 4840 +4528 4840 +4816 5368 +4816 6776 +11088 572 +10672 572 +10256 572 +9840 572 +18192 10670 +18379 8624 +18416 3619 +18416 7766 +1200 3575 +1200 9658 +17904 231 +17904 1628 +17904 4796 +17904 7766 +17904 9438 +17940 9570 +18224 10670 +8272 1188 +8272 7029 +8416 7260 +8496 8866 +15888 8503 +15888 9878 +15888 10626 +15888 11429 +15984 8184 +16128 8184 +16299 8184 +16336 2222 +16336 3850 +16336 5368 +16336 6798 +16336 7887 +1040 3575 +1040 9658 +4432 220 +4496 308 +4784 308 +4848 308 +5040 308 +5296 308 +5584 308 +5648 308 +5808 220 +5808 2024 +5808 4048 +5936 8382 +5936 10802 +16848 1012 +16848 2222 +16848 3850 +16848 5368 +16848 6688 +16848 7876 +16848 10560 +16848 11528 +8240 1188 +8240 7018 +8260 7700 +8400 8756 +1520 10032 +1552 8932 +1584 3113 +1584 7018 +1584 8789 +5136 11528 +5200 11440 +5360 11440 +5552 11528 +5616 11440 +5808 11440 +5968 11528 +2672 3113 +2736 6556 +2880 6556 +3024 6556 +3200 6556 +3312 6556 +3408 6556 +3808 6556 +3888 6556 +3952 6556 +4096 6556 +4176 6556 +4256 6556 +4432 6556 +4496 6556 +4640 6556 +4720 7590 +4720 8866 +4720 11495 +17008 1012 +17008 2222 +17008 4356 +17008 6688 +17008 7843 +17028 8096 +17104 8096 +17168 8096 +17408 8096 +17499 8096 +17520 9603 +17520 10670 +880 3575 +880 9922 +4144 2365 +4144 5434 +4144 6908 +4272 8360 +4336 8360 +4512 8360 +4624 8360 +4688 8360 +4784 8360 +4944 8360 +5136 8360 +5488 7304 +5456 8481 +5456 10692 +5520 2178 +5520 4048 +5520 6402 +16560 10890 +16576 8184 +16592 1012 +16592 2222 +16592 3850 +16592 5478 +16592 6798 +16592 7887 +7728 8756 +7748 7040 +7824 7040 +7888 7040 +8016 1188 +8016 4818 +8016 6919 +16272 10461 +16272 11429 +16432 8844 +16592 8844 +16688 8844 +16763 8844 +16784 1012 +16784 2222 +16784 3850 +16784 5478 +16784 6688 +16784 7876 +464 9691 +484 8184 +560 8184 +747 8184 +784 3575 +7664 6908 +7664 8756 +7728 1188 +7728 4818 +5232 2178 +5232 4048 +5232 6402 +5232 7315 +5499 7612 +5520 8382 +5520 10692 +3856 2959 +3856 6908 +3876 7920 +3952 7920 +4096 7920 +4784 748 +4848 748 +5040 748 +5296 748 +5584 748 +5648 748 +5872 748 +6096 264 +6096 2024 +6096 4048 +6096 5225 +6116 5368 +6192 5368 +6256 5368 +6416 5368 +6571 5368 +6096 594 +6608 8646 +6608 9438 +6608 11495 +17200 5335 +17200 6688 +17200 7722 +17200 10560 +17200 11528 +17392 5192 +17504 5192 +17616 231 +17616 1782 +17616 4213 +7248 10802 +7376 638 +7376 1518 +7376 4048 +7376 4928 +7376 8756 +1808 3113 +1824 6864 +1840 8052 +1840 10032 +12272 11165 +12384 9064 +12528 9064 +12656 9064 +12827 9064 +12848 1606 +12848 2310 +12848 4708 +12848 6072 +12848 7392 +12848 8536 +1648 8778 +1648 10032 +1664 8184 +1680 3113 +1680 7018 +1680 8063 +4784 528 +4848 528 +5040 528 +5296 528 +5584 528 +5648 528 +5872 528 +5936 330 +5936 2024 +5936 4048 +5936 5324 +6096 6556 +6192 6556 +6256 8382 +6256 11495 +16976 6688 +16976 7876 +16976 10560 +16976 11528 +17040 5720 +17104 5720 +17168 5720 +17392 5720 +17504 5720 +17680 231 +17680 1782 +17680 4246 +11600 231 +11600 902 +11600 4488 +11600 6072 +11600 7392 +11616 8228 +11632 11275 +17264 10549 +17264 11528 +17284 10142 +17472 10142 +17552 10142 +17920 10142 +18368 10142 +18512 10142 +18656 10142 +18784 10142 +18928 10142 +19024 10142 +6224 429 +6224 2024 +6224 4048 +6224 8382 +6224 10813 +6352 10912 +6464 10912 +6672 10912 +6843 10912 +1936 3113 +1936 6754 +1936 8063 +1952 8184 +1968 8778 +1968 10032 +816 3575 +816 9922 +3984 2959 +3984 6908 +4128 8932 +4272 8932 +4336 8932 +4496 9031 +4496 11495 +15440 583 +15440 2530 +15440 5489 +15460 5808 +15600 5808 +15712 5808 +15792 5808 +15888 5808 +15984 5808 +16128 5808 +16288 5808 +16400 6798 +16400 7876 +16400 10461 +16400 11429 +5360 2178 +5360 4048 +5360 7194 +5552 10252 +5632 10252 +5808 10252 +5968 10252 +6032 10252 +6112 10252 +6192 10252 +6304 8536 +6288 11495 +6320 429 +6320 2024 +6320 4048 +1168 9658 +1232 3575 +1232 7843 +6352 429 +6352 2024 +6352 4048 +6352 8657 +6368 8844 +6384 11495 +16688 11407 +16784 11198 +16912 11198 +17040 11198 +17136 11198 +17296 11198 +17472 11198 +17552 11198 +17920 11198 +18368 11198 +18512 11198 +18656 11198 +18768 11198 +18928 11198 +15280 2530 +15280 5478 +15280 6798 +15280 7788 +15280 8646 +15280 9878 +15280 10626 +15280 11429 +3472 10032 +3488 7480 +3504 3113 +3504 7139 +208 9581 +308 7964 +480 7964 +560 7964 +736 7964 +848 7964 +912 7964 +976 7964 +1083 7964 +1104 3575 +1104 7843 +1392 2904 +1392 5852 +1408 6028 +1424 8778 +1424 10032 +10224 3608 +10288 3608 +10384 3608 +10512 3608 +10576 3608 +10640 3608 +10704 3608 +10800 3608 +10928 3608 +11056 3608 +11120 3608 +11216 3608 +11344 3608 +11488 3608 +11664 902 +688 3575 +688 9922 +5872 968 +6128 968 +6192 968 +6256 968 +6416 968 +6544 968 +6672 968 +6784 968 +6896 968 +7008 968 +7184 968 +7312 968 +7504 968 +7600 759 +7600 1397 +7600 4939 +7664 5148 +7760 5148 +7824 5148 +7888 5148 +7952 5148 +8048 5148 +8176 5148 +8336 5148 +8432 5148 +8496 5148 +8752 5148 +8848 5148 +8992 5148 +9440 5148 +9552 5148 +9680 5148 +9824 5148 +10011 5148 +10032 231 +10032 1012 +10032 1760 +5488 2178 +5488 4048 +5488 6402 +5648 7084 +5936 7084 +6096 7084 +6192 7084 +6416 7084 +6544 7084 +6672 7084 +6768 7161 +6768 8646 +6768 9438 +9936 231 +9936 1012 +9936 1760 +5200 2178 +5200 4048 +5200 6402 +5200 7458 +5200 10593 +7408 638 +7408 1518 +7408 4048 +7408 4928 +7408 8756 +7536 10692 +7600 10692 +7696 10692 +7824 10692 +7888 10692 +7984 10692 +8096 10692 +8176 10692 +8272 10692 +8368 10692 +8432 10692 +8720 10692 +8848 10692 +9104 10692 +9728 10692 +10032 10692 +10256 10692 +10320 10692 +10480 10692 +10656 10692 +10768 10692 +10928 10692 +11024 10692 +11216 10692 +11328 10692 +11440 10692 +11520 10692 +11600 10692 +11707 10692 +11728 11330 +11728 10868 +4880 11495 +4944 2178 +4944 4048 +4944 6402 +6896 220 +7008 308 +7184 308 +7312 308 +7504 308 +7664 308 +7760 308 +7824 308 +7888 308 +7952 308 +8048 308 +8208 308 +8336 308 +8432 308 +8496 308 +8560 308 +8624 308 +8752 308 +8848 308 +8976 308 +9040 308 +9168 308 +9232 220 +9232 759 +9232 1760 +9232 2948 +9232 7029 +3440 10032 +3504 7920 +3632 7920 +3696 7920 +3760 3113 +3760 6908 +8240 8899 +8272 8756 +8304 1188 +8304 6908 +8304 8613 +9296 6897 +9296 9878 +9456 6776 +9552 6776 +9680 6776 +9776 231 +9776 1012 +9776 1760 +6992 8646 +6992 10802 +7024 7260 +7056 638 +7056 1518 +7056 2574 +7056 4048 +7056 7139 +14640 2530 +14640 5368 +14640 6798 +14640 8646 +14640 9878 +14640 11539 +14736 1012 +14800 1012 +14912 1012 +15120 1012 +15328 1012 +15408 1012 +15472 1012 +15600 1012 +15728 1012 +15792 1012 +15888 1012 +15984 1012 +16128 1012 +16272 1012 +16400 1012 +16528 913 +14704 2530 +14720 4928 +14736 5357 +14736 6798 +14736 8646 +14736 9878 +14736 11429 +14816 4928 +14928 4928 +15136 4928 +15328 4928 +15408 4928 +15472 4928 +15600 4928 +15712 4928 +15792 4928 +15888 4928 +15984 4928 +16128 4928 +16288 4928 +16400 4928 +16544 4928 +16656 4928 +16752 4928 +16816 1012 +16816 2222 +16816 3850 +13808 5137 +13808 7282 +13808 8866 +13808 9878 +13808 11539 +13908 4708 +14080 4708 +14224 4708 +14400 4708 +14512 4708 +14736 4708 +14816 4708 +14928 4708 +15136 4708 +15328 4708 +15408 4708 +15472 4708 +15600 4708 +15712 4708 +15792 4708 +15888 4708 +15984 4708 +16128 4708 +16288 4708 +16400 4708 +16544 4708 +16656 4708 +16752 4708 +16912 4708 +16976 1012 +16976 2222 +16976 3971 +3664 3113 +3664 7018 +3664 9119 +3684 9284 +3760 10142 +3600 3113 +3600 7128 +3600 9042 +3712 9812 +3888 9812 +4128 9812 +4272 9812 +4400 9812 +4528 9812 +4624 9812 +4688 9812 +4795 9812 +4955 9152 +4816 11495 +4976 2178 +4976 4048 +4976 6402 +8976 6897 +8976 9878 +8996 6556 +9296 6556 +9456 6556 +9552 6556 +9680 6556 +9808 6556 +10016 6556 +10128 6556 +10224 6556 +10384 6556 +10512 6556 +10656 6556 +10800 6556 +10864 6556 +10928 6556 +11040 6556 +11120 6556 +11216 6556 +11328 6556 +11504 6556 +11568 6556 +11632 6556 +11696 6556 +11760 6556 +11824 6556 +11920 6556 +12032 6556 +12176 6556 +12384 6556 +12512 6556 +12688 6556 +12800 6556 +12912 6556 +13072 484 +13072 1606 +13072 2310 +13072 3124 +13072 3938 +13072 4708 +13072 6193 +13108 572 +13200 572 +13344 572 +13488 572 +13632 572 +13856 572 +14096 572 +14224 572 +14400 572 +14640 572 +14736 572 +14800 572 +14912 572 +15040 572 +15200 572 +15328 572 +15408 484 +10016 6776 +10128 6776 +10224 6776 +10384 6776 +10480 231 +10480 1012 +10480 1760 +7120 638 +7120 1518 +7120 4048 +7120 8536 +7120 10802 +3728 3113 +3728 6908 +3899 9592 +4016 10142 +5776 10802 +5796 9064 +5968 9064 +6032 9064 +6112 9064 +6192 9064 +6352 9064 +6432 9064 +6512 9064 +6672 9064 +6864 9064 +6928 9064 +7024 9064 +7211 9064 +7248 638 +7248 1518 +7248 4048 +7248 7128 +7248 8767 +3920 2959 +3920 6908 +3920 9163 +3972 9372 +4128 9372 +4272 9372 +4528 9372 +4624 9372 +4688 9372 +4784 9372 +4960 9372 +5136 9372 +5552 9372 +5632 9372 +5808 9372 +5968 9372 +6032 9372 +6112 9372 +6192 9372 +6352 9372 +6432 9372 +6512 9471 +6512 11495 +16368 2222 +16368 3850 +16368 5368 +16368 6798 +16368 7876 +16368 10461 +16368 11429 +3536 3113 +3536 7128 +3536 10032 +8464 8745 +8720 8448 +8848 8448 +9104 8448 +9728 8448 +10000 8448 +10256 8448 +10352 8448 +10464 8448 +10656 8448 +10736 8448 +10800 8448 +10912 8448 +11040 8448 +11200 8448 +11344 8448 +11504 8448 +11600 8448 +11712 8448 +11792 8448 +11984 8448 +12192 8448 +12272 8448 +12384 8448 +12528 8448 +12656 8448 +12720 1606 +12720 2574 +12720 4708 +12720 6072 +12720 7392 +12816 792 +12944 792 +13120 792 +13200 792 +13344 792 +13488 792 +13632 792 +13856 792 +14096 792 +14224 792 +14400 792 +14640 792 +14736 792 +14800 792 +14912 792 +15051 792 +2800 3113 +2800 6864 +2852 7700 +2960 7700 +3024 7700 +3200 7700 +3312 7700 +3424 7700 +3504 7700 +3632 7700 +3696 7700 +3808 7700 +3888 7700 +3952 7700 +4096 7700 +4176 7700 +4240 7799 +8048 8756 +8080 7700 +8112 1188 +8112 4818 +8112 7018 +1328 3223 +1328 6919 +1456 8778 +1456 10032 +9680 2288 +9808 2288 +9872 2288 +10000 2288 +10096 2288 +10224 2288 +10288 2288 +10384 2288 +10512 2288 +10576 2288 +10640 2288 +10704 2288 +10800 2288 +10928 2288 +11056 2288 +11120 2288 +11216 2288 +11344 2288 +11408 2288 +11488 2288 +11696 2288 +11760 2288 +11904 2288 +12048 2288 +12176 2288 +12336 2288 +12432 2288 +12496 913 +12496 1606 +12516 1012 +12688 1012 +12816 1012 +12944 1012 +13120 1012 +13200 1012 +13344 1012 +13488 1012 +13632 1012 +13867 1012 +5232 10472 +5488 7920 +5552 7920 +5632 7920 +5712 7920 +5808 7920 +5968 7920 +6096 7920 +6192 7920 +6416 7920 +6544 7920 +6672 7920 +6864 7920 +6928 7920 +7040 7920 +7184 7920 +7536 7920 +7600 7920 +7696 7920 +7760 7920 +7824 7920 +7888 7920 +8096 7920 +8176 7920 +8256 7920 +8448 7920 +8720 7920 +8848 7920 +9115 7920 +9136 1188 +9136 2948 +9136 5962 +9136 7018 +9444 6116 +9552 6116 +9680 6116 +9808 6116 +10016 6116 +10144 6116 +10224 6116 +10384 6116 +10512 6116 +10576 6116 +10656 6116 +10800 6116 +10864 6116 +10928 6116 +11056 6116 +11120 6116 +11216 6116 +11312 231 +11312 902 +11312 4488 +11312 5973 +9008 9878 +9104 1188 +9104 2948 +9104 5962 +9104 7029 +5648 10681 +5808 10472 +5968 10472 +6032 10472 +6112 10472 +6192 10472 +6352 10472 +6464 10472 +6672 10472 +6848 10472 +7024 10472 +7200 10472 +7376 10472 +7536 10472 +7600 10472 +7696 10472 +7824 10472 +7888 10472 +7984 10472 +8096 10472 +8176 10472 +8272 10472 +8368 10472 +8432 10472 +8720 10472 +8848 10472 +9104 10472 +9728 10472 +10032 10472 +10256 10472 +10320 10472 +10480 10472 +10656 10472 +10747 10472 +10768 231 +10768 902 +10768 1760 +10768 7392 +10768 10373 +10016 9064 +10064 231 +10064 1012 +10064 1760 +5584 3223 +5584 4048 +5584 6402 +5584 8382 +5584 10692 +5664 3080 +5872 3080 +6128 3080 +6192 3080 +6256 3080 +6416 3080 +6560 3080 +6672 3080 +6784 3080 +6896 3080 +7008 3080 +7088 3080 +7184 3080 +7312 3080 +7504 3080 +7664 3080 +7760 3080 +7824 3080 +7888 3080 +7952 3080 +8048 3080 +8208 3080 +8336 3080 +8432 3080 +8496 3080 +8624 3080 +8752 3080 +8848 3080 +8976 3080 +9051 3080 +9072 1188 +9072 2915 +8624 5962 +8624 8866 +8688 1188 +8592 8866 +8656 1188 +8656 5962 +7952 8756 +8048 6116 +8176 6116 +8432 6116 +8507 6116 +8528 1188 +8528 5973 +8464 1188 +8656 8866 +7056 10802 +7195 8844 +7216 638 +7216 1518 +7216 4048 +7216 7128 +7216 8657 +17456 1782 +17456 4092 +17456 6578 +17456 7722 +17456 8745 +17476 8844 +17552 8844 +17712 9603 +17712 10670 +9428 2948 +9680 2948 +9808 2948 +9872 2948 +10000 2948 +10096 2948 +10224 2948 +10288 2948 +10384 2948 +10512 2948 +10576 2948 +10640 2948 +10704 2948 +10800 2948 +10928 2948 +11056 2948 +11120 2948 +11216 2948 +11344 2948 +11488 2948 +11696 2948 +11760 2948 +11904 2948 +12048 2948 +12176 2948 +12336 2948 +12432 2948 +12523 2948 +12560 1606 +12560 2354 +17552 1782 +17552 4092 +17552 6578 +17552 7887 +17712 8184 +17856 8184 +17968 8184 +18192 8184 +18256 9427 +18256 10670 +9728 10032 +10032 10032 +10256 10032 +10320 10032 +10416 10032 +10480 10032 +10656 10032 +10736 10032 +10800 10032 +10928 10032 +11040 10032 +11216 10032 +11312 10032 +11440 10032 +11520 10032 +11600 10032 +11712 10032 +11792 10032 +11984 10032 +12080 10032 +12208 10032 +12384 10032 +12528 10032 +12656 10032 +12816 10032 +12944 10032 +13088 10032 +13232 10032 +13408 10032 +13536 10032 +13643 10032 +13680 2530 +13680 5148 +13680 7282 +13680 8866 +13680 9889 +17712 231 +17712 1782 +17712 4246 +17712 6325 +17840 6908 +17968 6908 +18128 7007 +18128 7766 +18128 10670 +9072 3487 +9072 5962 +9072 6908 +9072 9878 +9440 3388 +9520 3388 +9680 3388 +9840 3388 +10000 3388 +10096 3388 +10224 3388 +10288 3388 +10384 3388 +10512 3388 +10576 3388 +10640 3388 +10704 3388 +10800 3388 +10928 3388 +11056 3388 +11120 3388 +11216 3388 +11344 3388 +11488 3388 +11696 3388 +11760 3388 +11904 3388 +12048 3388 +12176 3388 +12336 3388 +12432 3388 +12544 3388 +12688 3388 +12763 3388 +12784 1606 +12784 2310 +9232 8107 +9232 9878 +9648 8008 +9744 8008 +9904 8008 +10016 8008 +10192 8008 +10256 8008 +10384 8008 +10496 8008 +10656 8008 +10816 8008 +10928 8008 +11040 8008 +11120 8008 +11216 8008 +11328 8008 +11504 8008 +11568 8008 +11632 8008 +11696 8008 +11760 8008 +11824 8008 +11968 8008 +12192 8008 +12272 8008 +12384 8008 +12528 8008 +12656 8008 +12800 8008 +12880 8008 +12944 8008 +13088 8008 +13264 8008 +13392 8008 +13520 8008 +13632 8008 +13712 2530 +13712 5148 +13712 7282 +8400 1188 +8400 6919 +8420 7040 +8507 7040 +8528 7139 +8528 8866 +9168 1639 +9168 2948 +9168 5962 +9168 7018 +9168 8074 +9168 9878 +9264 1452 +9424 1452 +9584 1452 +9680 1452 +9808 1452 +9872 1452 +10000 1452 +10096 1452 +10224 1452 +10288 1452 +10384 1452 +10512 1452 +10576 1452 +10640 1452 +10704 1452 +10800 1452 +10928 1452 +11056 1452 +11120 1452 +11216 1452 +11344 1452 +11488 1452 +11696 1452 +11760 1452 +11904 1452 +12048 1452 +12176 1452 +12304 902 +9360 2827 +9412 2728 +9680 2728 +9808 2728 +9872 2728 +10000 2728 +10096 2728 +10224 2728 +10288 2728 +10384 2728 +10512 2728 +10576 2728 +10640 2728 +10704 2728 +10800 2728 +10928 2728 +11056 2728 +11120 2728 +11216 2728 +11344 2728 +11488 2728 +11696 2728 +11760 2728 +11904 2728 +12048 2728 +12176 2728 +12336 2728 +12432 2728 +12512 2728 +12592 1606 +12592 2475 +14864 2530 +14864 4378 +14864 5478 +14864 6798 +14864 8646 +14864 9878 +14864 11429 +7760 8745 +7776 8448 +7792 1188 +7792 4818 +15312 7887 +15312 8646 +15312 9878 +15312 10626 +15312 11429 +15344 7788 +15376 2530 +15376 5478 +15376 6798 +15376 7689 +6864 429 +6864 1518 +6864 2574 +6864 4048 +7008 5368 +7088 5368 +7184 5368 +7328 5368 +7584 5368 +7664 5368 +7760 5368 +7824 5368 +7888 5368 +7952 5368 +8048 5368 +8176 5368 +8336 5368 +8432 5368 +8496 5368 +8752 5368 +8848 5368 +8992 5368 +9440 5368 +9552 5368 +9680 5368 +9824 5368 +10016 5368 +10160 5368 +10224 5368 +10288 5368 +10384 5368 +10512 5368 +10608 5368 +10704 7392 +10704 11495 +12400 11484 +12528 11000 +12656 11000 +12816 11000 +12944 11000 +13088 11000 +13232 11000 +13392 11000 +13536 11000 +13696 11000 +13968 11000 +14192 11000 +14272 11000 +14384 11000 +14448 11000 +12400 11176 +14576 2530 +14576 5368 +14576 6798 +14576 8646 +14576 9878 +14704 11000 +14784 11000 +14960 11000 +15120 11000 +15392 11000 +15520 11000 +15712 11000 +15792 11000 +15856 11000 +16048 11000 +16224 11000 +16432 11000 +16496 11484 +16496 11176 +7088 8536 +7088 10802 +7152 638 +7152 1518 +7152 4048 +7152 7139 +15952 2343 +15972 2992 +16128 2992 +16272 2992 +16400 2992 +16544 2992 +16656 2992 +16752 2992 +16912 2992 +17040 2992 +17104 2992 +17184 2992 +17392 2992 +17504 2992 +17744 4125 +17744 6204 +17744 7766 +17744 8734 +17744 9603 +17744 10670 +15664 2530 +15664 5368 +15664 6798 +15664 8426 +15664 9878 +15664 10626 +15664 11429 +17584 231 +17584 1782 +17584 4092 +17584 6578 +17584 7766 +17584 9603 +17584 10670 +16432 2222 +16432 3850 +16432 5478 +16432 6798 +16432 7887 +16528 10890 +8144 1188 +8144 4818 +8144 7018 +8144 8756 +9616 231 +9616 1012 +9616 1760 +9616 7139 +12112 902 +12112 4488 +12112 5962 +12112 7392 +8368 1188 +8368 6908 +8368 8767 +12784 11429 +12804 8844 +12880 8844 +12944 8844 +13088 8844 +13264 8844 +13392 8844 +13531 8844 +13552 2530 +13552 3938 +13552 4928 +13552 7282 +13552 8657 +18864 10846 +18864 11528 +18916 9086 +19024 9086 +11920 7392 +11920 11165 +11936 6776 +11952 902 +11952 4488 +11952 6072 +10320 231 +10320 1012 +10320 1760 +10320 7392 +10427 9504 +11824 902 +11824 4488 +11824 6083 +11840 6336 +11856 7392 +11856 11165 +12656 1606 +12656 2574 +12656 4708 +12656 6072 +12672 6776 +12688 7392 +12688 11429 +5008 11495 +5072 2178 +5072 4048 +5072 6402 +5072 7194 +13168 1606 +13168 2310 +13168 3124 +13168 3938 +13168 4928 +13168 5929 +13296 6028 +13456 6028 +13520 6028 +13632 6028 +13760 6028 +13920 6028 +14080 6028 +14192 6028 +14256 6028 +14400 6028 +14512 6028 +14704 6028 +14816 6028 +14928 6028 +15136 6028 +15328 6028 +15440 6028 +15600 6028 +15712 6028 +15792 6028 +15888 6028 +15984 6028 +16128 6028 +16288 6028 +16544 6028 +16656 6028 +16752 6028 +16816 6028 +16912 6028 +17040 6028 +17104 6028 +17168 6028 +17392 6028 +17504 6028 +17680 6457 +17680 7766 +17680 9603 +17680 10670 +3312 10692 +3344 3113 +3344 6864 +3344 10153 +14544 2530 +14544 5368 +14544 6798 +14544 8646 +14544 9878 +14544 11539 +6736 638 +6736 1518 +6736 2574 +6736 4048 +6736 8646 +6736 9438 +6832 11440 +7024 11440 +7200 11440 +7440 11440 +7536 11440 +7600 11440 +7696 11440 +7824 11440 +7888 11440 +8096 11440 +8176 11440 +8272 11440 +8368 11440 +8432 11440 +8720 11440 +8848 11440 +9104 11440 +9728 11440 +10032 11440 +10256 11440 +10320 11440 +10480 11440 +10544 11528 +11792 902 +11792 4488 +11792 6072 +11792 7392 +11808 8228 +11824 11165 +8720 1188 +8720 5962 +8848 7700 +9104 7700 +9232 7700 +6064 319 +6064 2024 +6064 4048 +6064 5335 +6100 5588 +6192 5588 +6256 5588 +6416 5588 +6560 5588 +6672 5588 +6779 5588 +6800 7128 +6800 8646 +6800 9438 +6864 6556 +6992 6556 +7088 6556 +7184 6556 +7328 6556 +7616 6556 +7744 6556 +7824 6556 +7888 6556 +8048 6556 +8176 6556 +8432 6556 +8512 6556 +8832 6556 +8944 1188 +8944 5962 +8944 6897 +8944 9878 +5968 319 +5968 2024 +5968 4048 +5968 5324 +6096 7700 +6192 7700 +6416 7700 +6544 7700 +6672 7700 +6864 7700 +6928 7700 +7040 7700 +7152 8536 +7152 10802 +7204 9504 +7536 9504 +7600 9504 +7696 9504 +7824 9504 +7904 9504 +8096 9504 +8176 9504 +8272 9504 +8368 9504 +8432 9504 +8720 9504 +8864 9504 +9104 9504 +9728 9504 +9968 231 +9968 1012 +9968 1760 +11952 11165 +11972 8228 +12192 8228 +12272 8228 +12384 8228 +12528 8228 +12656 8228 +12800 8228 +12880 8228 +12944 8228 +13088 8228 +13264 8228 +13392 8228 +13520 8228 +13632 8228 +13744 8228 +13968 8228 +14192 8228 +14272 8228 +14384 8228 +14448 8228 +14512 8228 +14704 8228 +14784 8228 +15120 8228 +15392 8228 +15472 8228 +15536 484 +15536 671 +15536 2530 +15536 5368 +15536 6798 +15600 572 +15728 572 +15792 572 +15888 572 +15984 572 +16128 572 +16272 572 +16400 572 +16560 572 +16656 572 +16752 572 +16912 572 +17040 572 +17184 572 +17392 572 +17504 572 +17824 572 +17968 572 +18032 572 +18128 352 +7568 8756 +7600 6116 +7632 1188 +7632 4818 +11728 902 +11728 4488 +11728 6072 +11728 7392 +11744 8228 +11760 11165 +19024 11528 +12272 902 +12272 4488 +12272 5962 +12384 6776 +12496 7392 +12496 11429 +10656 8228 +10736 231 +10736 902 +10736 1760 +10736 7392 +7504 8756 +7568 638 +7568 1518 +7568 3949 +7568 4147 +7568 4939 +7664 4048 +7760 4048 +7824 4048 +7888 4048 +7952 4048 +8048 4048 +8208 4048 +8336 4048 +8432 4048 +8496 4048 +8688 4048 +8763 4048 +8784 1188 +8784 3949 +8784 8866 +7888 9064 +7920 1188 +7920 4818 +7920 8767 +7940 4268 +8048 4268 +8208 4268 +8336 4268 +8432 4268 +8496 4268 +8688 4268 +8752 4268 +8848 4268 +8912 4268 +8992 4268 +9440 4268 +9552 4268 +9680 4268 +9824 4268 +9936 4268 +10000 4268 +10224 4268 +10288 4268 +10384 4268 +10523 4268 +10544 231 +10544 1012 +10544 1760 +10544 7392 +10656 11132 +10768 11132 +10928 11132 +10992 11550 +10992 11308 +8208 7018 +8208 8756 +8336 4708 +8432 4708 +8496 4708 +8752 4708 +8848 4708 +8992 4708 +9440 4708 +9552 4708 +9680 4708 +9824 4708 +9936 4708 +10000 4708 +10224 4708 +10288 4708 +10384 4708 +10512 4708 +10587 4708 +10608 231 +10608 902 +10608 1760 +11984 902 +11984 4488 +11984 6072 +12000 6776 +12016 7392 +12016 11165 +8560 5962 +8560 7018 +8560 8866 +8624 2288 +8752 2288 +8848 2288 +8976 2288 +9040 2288 +9264 2288 +9360 671 +9360 1760 +11376 11385 +11440 231 +11440 902 +11440 4488 +11440 6072 +11440 7392 +10256 8228 +10352 231 +10352 1012 +10352 1760 +10352 7392 +11472 7392 +11472 11275 +11492 6336 +11568 231 +11568 902 +11568 4488 +11568 6083 +11184 11385 +11204 9064 +11344 9064 +11515 9064 +11536 231 +11536 902 +11536 4488 +11536 5962 +11536 7392 +656 3575 +656 9922 +15824 5368 +15824 6798 +15824 8426 +15824 9878 +15824 10626 +15824 11429 +15888 4488 +15984 4488 +16128 4488 +16283 4488 +16304 2222 +16304 3861 +6608 429 +6608 1518 +6608 2574 +6608 4048 +6660 5060 +6784 5060 +6896 7128 +6896 8646 +6896 10802 +12048 7392 +12048 11165 +12187 6776 +12208 902 +12208 4488 +12208 5962 +155 11198 +8912 5962 +8912 7018 +8912 9878 +8992 4488 +9440 4488 +9552 4488 +9680 4488 +9824 4488 +9936 4488 +10000 4488 +10224 4488 +10288 4488 +10384 4488 +10512 4488 +10576 4488 +10640 4488 +10704 4488 +10800 4488 +10864 231 +10864 902 +10864 1760 +10864 4389 +10864 4587 +10928 5896 +11067 5896 +11088 7392 +11088 11385 +9264 6908 +9264 9878 +9440 3168 +9520 231 +9520 1012 +9520 1760 +12240 902 +12240 4488 +12240 5962 +12240 7392 +12240 11165 +7312 8756 +7312 10802 +7536 638 +7536 1518 +7536 4048 +7536 4818 +3280 3113 +3280 6864 +3300 9372 +3504 9372 +3568 9372 +3632 10142 +11376 231 +11376 902 +11376 4488 +11376 6072 +11376 7392 +11504 8228 +11568 11275 +11280 11385 +11316 10472 +11440 10472 +11520 10472 +11600 10472 +11712 10472 +11792 10472 +11984 10472 +12080 10472 +12208 10472 +12384 10472 +12528 10472 +12656 10472 +12816 10472 +12944 10472 +13088 10472 +13232 10472 +13392 10472 +13536 10472 +13696 10472 +13968 10472 +14160 2530 +14160 5258 +14160 7172 +14160 8866 +14160 9878 +3152 3113 +3152 6864 +3188 7920 +3312 7920 +3408 10153 +3408 10571 +3504 10472 +3584 10472 +3712 10472 +3888 10472 +4048 10472 +4128 10472 +4272 10472 +4400 10472 +4528 10472 +4624 10472 +4688 10472 +4784 10472 +4955 10472 +4976 10373 +4992 9812 +4976 11495 +5008 2178 +5008 4048 +5008 6402 +528 3575 +528 9812 +16016 2222 +16016 3740 +16016 5368 +16016 6798 +16016 7766 +16016 8624 +16016 9834 +16068 9922 +16208 9922 +16432 9922 +16496 9922 +16592 9922 +16688 9922 +16784 9922 +16912 9922 +17040 9922 +17136 9922 +17280 9922 +17360 10670 +17360 11528 +5872 8382 +5872 10802 +5888 5060 +5904 209 +5904 2024 +5904 4048 +976 11055 +1104 10912 +1232 10912 +1584 10912 +1712 10912 +1776 10912 +1904 10912 +2064 10912 +2240 10912 +2464 10912 +2736 10912 +3019 10912 +3056 3113 +3056 6864 +3056 10153 +3168 10912 +3344 10912 +3504 10912 +3584 10912 +3712 10912 +3888 10912 +4048 10912 +4128 10912 +4272 10912 +4400 10912 +4464 10912 +4528 10912 +4624 10912 +4688 11495 +13456 8536 +13456 9174 +13456 11429 +13520 7788 +13632 7788 +13760 7788 +13968 7788 +14192 7788 +14272 7788 +14384 7788 +14448 2530 +14448 5368 +14448 6798 +14512 7788 +14704 7788 +14816 7788 +14928 7887 +14928 8646 +14928 9878 +14928 11429 +16048 2222 +16048 3740 +16048 5368 +16048 6798 +16048 7766 +16128 8404 +16304 8404 +16432 8404 +16592 8404 +16688 8404 +16752 8404 +16816 8404 +16912 8404 +17008 10560 +17008 11528 +560 9801 +752 8404 +912 8404 +976 8404 +1104 8404 +1232 8404 +1328 8404 +1536 8404 +1616 8404 +1696 8404 +1776 8404 +1872 8404 +1936 8404 +2112 8404 +2192 8404 +2288 8404 +2464 8404 +2635 8404 +2704 3113 +2704 6864 +2804 8140 +2960 8140 +3024 8140 +3168 8140 +3312 8140 +3504 8140 +3632 8140 +3696 8140 +3824 8140 +3952 8140 +4096 8140 +4272 8140 +4336 8140 +2704 8250 +4432 11495 +14032 2530 +14032 5258 +14032 7293 +14068 7568 +14192 7568 +14272 7568 +14384 7568 +14512 7568 +14704 7568 +14816 7568 +14928 7568 +15131 7568 +15248 7777 +15248 8646 +15248 9878 +15248 10626 +15248 11429 +13584 2530 +13584 3949 +13620 4048 +13872 4048 +14096 4048 +14224 4048 +14400 4048 +14512 4048 +14736 4048 +14800 4048 +14896 4257 +14896 5478 +14896 6798 +14896 8646 +14896 9878 +14896 11429 +14608 2530 +14608 5368 +14608 6798 +14608 8646 +14608 9878 +14608 11539 +13392 1606 +13392 2794 +13392 3938 +13392 4928 +13456 6248 +13520 6248 +13632 6248 +13760 6248 +13920 6248 +14080 6248 +14192 6248 +14256 6248 +14400 6248 +14512 6248 +14704 6248 +14816 6248 +14928 6248 +15136 6248 +15328 6248 +15440 6248 +15600 6248 +15712 6248 +15792 6248 +15888 6248 +15984 6248 +16128 6248 +16288 6248 +16544 6248 +16656 6677 +16656 7876 +16656 10890 +16672 6248 +16688 1012 +16688 2222 +16688 3850 +16688 5478 +12752 1606 +12752 2431 +12816 2640 +12944 2640 +13120 2640 +13339 2640 +13360 3003 +13360 3938 +13360 4928 +13360 6402 +13360 7392 +13360 8536 +13360 9174 +13360 11429 +16208 2222 +16208 3740 +16208 5368 +16208 6798 +16208 7766 +16283 8624 +16304 10461 +16304 11429 +1392 8778 +1392 10032 +1456 6336 +1552 6336 +1648 6336 +1760 6336 +1872 6336 +2000 6336 +2112 6336 +2192 6336 +2288 6336 +2480 6336 +2608 6336 +2736 6336 +2880 6336 +3024 6336 +3200 6336 +3312 6336 +3408 3058 +3408 6160 +3808 6336 +3888 6336 +3952 6336 +4096 6336 +4176 6336 +4256 6336 +4432 6336 +4496 6336 +4560 7810 +4560 8866 +4560 11495 +3696 3113 +3696 7029 +3808 7260 +3888 7260 +3952 7260 +4096 7260 +4176 7260 +4256 7260 +4336 7260 +4432 7260 +4496 7260 +4640 7260 +4768 7260 +4848 7260 +4912 7260 +5040 11495 +4912 11495 +5104 2178 +5104 4048 +5104 6402 +5104 7315 +14352 2530 +14352 5368 +14352 6908 +14352 8866 +14352 9878 +14352 11539 +5328 6391 +5328 7194 +5328 10582 +5392 2178 +5392 4048 +5744 10802 +5760 8624 +5776 2024 +5776 4048 +5776 8393 +1488 3113 +1488 6908 +1488 8778 +1488 10032 +4016 2959 +4016 6908 +4128 9152 +4272 9152 +7984 1188 +7984 4818 +7984 8756 +6160 429 +6160 2024 +6160 4048 +6160 8382 +6160 10802 +6160 11495 +5264 2178 +5264 4048 +5264 6402 +5264 7194 +5552 9812 +5632 9812 +5808 9812 +5968 9812 +6032 9812 +6112 9812 +6192 9812 +6352 9812 +6448 9812 +6672 9812 +6848 9812 +6928 9812 +7024 9812 +7216 9812 +7536 9812 +7600 9812 +7696 9812 +7824 9812 +7904 9812 +8096 9812 +8176 9812 +8272 9812 +8368 9812 +8432 9812 +8720 9812 +8859 9812 +8880 9911 +9200 7018 +9200 8074 +9200 9878 +9296 671 +9296 1760 +9296 2838 +6512 429 +6512 2024 +6512 4048 +6512 8657 +6528 8844 +6544 9438 +6544 11495 +9904 231 +9904 1012 +9904 1760 +6928 638 +6928 1518 +6928 2574 +6928 4048 +6928 7139 +6944 7260 +6960 8646 +6960 10802 +10896 10362 +10896 11495 +10916 9504 +11040 9504 +11216 9504 +11280 231 +11280 902 +11280 4488 +11280 7392 +7408 10912 +7440 638 +7440 1518 +7440 4048 +7440 4928 +7440 8756 +12592 4708 +12592 6072 +12592 7392 +12592 11429 +12608 3608 +12624 1606 +12624 2574 +12688 3608 +12784 3608 +12928 3608 +13120 3608 +13328 3608 +13456 3608 +13520 3608 +13632 3608 +13872 3608 +14096 3608 +14224 3608 +14400 3608 +14512 3608 +14736 3608 +14800 3608 +14912 3608 +15120 3608 +15328 3608 +15408 3608 +15472 3608 +15600 3608 +15712 3608 +15792 3608 +15899 3608 +15920 3927 +15920 5368 +15920 6798 +15920 7766 +15920 8624 +15920 9878 +15920 10626 +15920 11429 +12336 7392 +12336 11165 +12352 6116 +12368 902 +12368 1606 +12368 4488 +12368 5973 +17616 6578 +17616 7766 +17616 9603 +17616 10670 +17835 5500 +17872 231 +17872 1628 +17872 4213 +11632 902 +11632 4488 +11632 6083 +11648 6336 +11664 7392 +11664 11275 +14480 2530 +14480 5368 +14480 6798 +14480 8866 +14480 9878 +14480 11539 +17648 231 +17648 1782 +17648 4246 +17648 6578 +17648 7766 +17648 9603 +17648 10670 +624 3575 +624 9922 +12400 902 +12400 1606 +12400 4488 +12400 5973 +12416 6116 +12432 7392 +12432 11429 +12080 902 +12080 4488 +12080 5962 +12080 7392 +12096 9504 +12112 11165 +17776 231 +17776 1628 +17776 4092 +17776 6204 +17776 7766 +17776 8734 +17776 9603 +17776 10670 +12464 902 +12464 1606 +12516 4268 +12688 4268 +12800 4268 +12912 4268 +13120 4268 +13328 4268 +13456 4268 +13520 4268 +13616 4268 +13872 4268 +14091 4268 +14128 5258 +14128 7172 +14128 8866 +14128 9878 +14128 11539 +17744 231 +17744 1749 +17824 2684 +17979 2684 +18000 4675 +18000 7766 +18000 10670 +16624 1012 +16624 2222 +16624 3850 +16624 5478 +16624 6798 +16624 7876 +16624 10890 +13232 1606 +13232 2310 +13232 3124 +13232 3938 +13232 4928 +13232 7282 +13232 8536 +13232 9185 +13248 9284 +13264 11429 +10192 231 +10192 1012 +10192 1760 +18416 10670 +18500 9438 +18656 9438 +18784 9438 +18928 9438 +19024 9438 +912 3410 +912 6864 +928 7040 +944 9922 +14320 2530 +14320 5368 +14320 6908 +14320 8866 +14320 9878 +14320 11539 +7696 1188 +7696 4818 +7696 6908 +7760 7700 +7824 7700 +7888 7700 +8016 8756 +18832 10725 +18832 11528 +18928 10494 +19024 10494 +14768 2530 +14768 5478 +14768 6798 +14800 8008 +14832 8646 +14832 9878 +14832 11429 +6640 220 +6676 308 +6795 308 +6832 220 +6832 517 +6832 1518 +6832 2574 +6832 4048 +6832 5434 +6832 7128 +6832 8646 +6852 9284 +6928 9284 +7024 9284 +7216 9284 +7536 9284 +7600 9284 +7696 9284 +7824 9284 +7904 9284 +8096 9284 +8176 9284 +8272 9284 +8368 9284 +8432 9284 +8720 9284 +8864 9284 +9104 9284 +9728 9284 +10032 9284 +10256 9284 +10448 9284 +10656 9284 +10736 9284 +10800 9284 +10912 9284 +11040 9284 +11216 9284 +11344 9284 +11520 9284 +11600 9284 +11712 9284 +11792 9284 +11984 9284 +12128 9284 +12208 9284 +12384 9284 +12528 9284 +12656 9284 +12843 9284 +12880 11429 +7344 8756 +7344 10802 +7600 7260 +7760 7260 +7824 7260 +7888 7260 +8043 7260 +8080 1188 +8080 4818 +8080 7029 +10128 231 +10128 1012 +10128 1760 +10148 5896 +10224 5896 +10384 5896 +10512 5896 +10587 5896 +10608 7392 +10608 11495 +16496 2222 +16496 3850 +16496 5478 +16496 6798 +16496 7766 +16592 9284 +16688 9284 +16784 9284 +16912 9284 +17040 9284 +17136 9284 +17280 9284 +17392 9592 +17392 10670 +17392 11528 +4592 2684 +4592 5434 +4592 7810 +4592 8866 +4592 11495 +10576 7392 +10576 11495 +10656 6336 +10800 6336 +10864 6336 +10928 6336 +11024 231 +11024 902 +11024 1760 +11024 4488 +2384 3113 +2384 6644 +2384 10032 +2928 10032 +2944 6952 +2960 3113 +2960 6875 +5168 2178 +5168 4048 +5168 6402 +5168 7458 +5168 10582 +2544 3113 +2544 6754 +2544 10032 +9648 231 +9648 1012 +9648 1760 +9648 7128 +9664 7788 +1808 8052 +1808 10032 +1872 7172 +1984 7172 +2112 7172 +2192 7172 +2288 7172 +2464 7172 +2624 7172 +2736 7172 +2864 7172 +2960 7172 +3024 7172 +3200 7172 +3312 7172 +3408 7172 +3472 3113 +3472 6985 +9488 231 +9488 1012 +9488 1760 +9488 7128 +2000 8041 +2000 8778 +2000 10032 +2112 7920 +2192 7920 +2288 7920 +2464 7920 +2624 7920 +2816 7920 +2960 7920 +3024 7920 +3120 3113 +3120 6864 +8752 8866 +8816 1188 +8816 3938 +8816 5973 +1008 3575 +1008 9658 +1296 7821 +1296 9658 +1316 7700 +1536 7700 +1648 7700 +1760 7700 +1872 7700 +1984 7700 +2112 7700 +2192 7700 +2288 7700 +2464 7700 +2624 7700 +2747 7700 +2768 3113 +2768 6864 +1360 3223 +1360 8778 +1360 10032 +2032 8778 +2032 10032 +2112 6952 +2192 6952 +2288 6952 +2416 3113 +2416 6765 +560 3410 +560 6864 +576 7040 +592 9922 +1712 3113 +1712 7018 +1712 8063 +1728 8184 +1744 10032 +5104 10582 +5104 11495 +5120 7920 +5136 2178 +5136 4048 +5136 6402 +5136 7469 +2064 3113 +2064 6644 +2064 8789 +2080 8932 +2096 10032 +3072 11220 +3088 3113 +3088 6864 +3088 10032 +3248 3113 +3248 6864 +3248 10032 +10960 231 +10960 902 +10960 1760 +10960 4488 +10960 7392 +10960 10362 +10960 11495 +2976 10692 +2992 3113 +2992 6864 +2992 10043 +10832 10362 +10832 11495 +10896 231 +10896 902 +10896 1760 +10896 4488 +10896 7392 +10832 231 +10832 902 +10832 1760 +10848 6776 +10864 7392 +10864 10362 +10864 11495 +17968 10670 +18368 9790 +18512 9790 +18656 9790 +18784 9790 +18928 9790 +19024 9790 +3376 3113 +3376 6864 +3504 9592 +3568 9592 +3664 10142 +2224 3113 +2224 6644 +2276 8712 +2464 8712 +2736 8712 +2960 8712 +3024 8712 +3168 8712 +3312 8712 +3504 8712 +3632 8712 +3696 8712 +3824 8712 +3952 8712 +8848 9064 +8880 1188 +8880 3938 +8880 5962 +8880 7018 +16080 2222 +16080 3740 +16080 5368 +16080 6798 +16080 7766 +16080 8745 +16112 8844 +16144 10626 +16144 11429 +13296 1606 +13296 2310 +13296 3124 +13296 3938 +13296 4928 +13456 5808 +13520 5808 +13632 5808 +13760 5808 +13920 5808 +14080 5808 +14203 5808 +14224 7172 +14224 8866 +14224 9878 +14224 11539 +14160 11539 +14180 10780 +14272 10780 +14384 10780 +14448 10780 +14704 10780 +14784 10780 +14960 2530 +14960 4158 +14960 5478 +14960 6798 +14960 7898 +14960 8646 +14960 9878 +14960 10637 +17104 10560 +17104 11528 +17120 8404 +17136 1782 +17136 4356 +17136 6688 +17136 7722 +15440 8646 +15440 9878 +15440 10626 +15440 11429 +15460 7788 +15600 7788 +15712 7788 +15792 7788 +15856 2530 +15856 4048 +15856 5368 +15856 6798 +15856 7689 +15344 8646 +15344 9878 +15344 10626 +15344 11429 +15380 8008 +15472 8008 +15568 2530 +15568 5368 +15568 6798 +4208 2365 +4208 5434 +4208 6908 +18320 3619 +18320 7876 +18320 9427 +18320 10670 +12144 902 +12144 4488 +12144 5962 +12144 7392 +12160 9064 +12176 11165 +14992 4323 +14992 5478 +14992 6798 +14992 7898 +14992 8646 +14992 9878 +14992 10626 +14992 11429 +15124 4180 +15328 4180 +15408 4180 +15472 4180 +15600 4180 +15712 4180 +15803 4180 +15824 2530 +15824 4015 +16336 10461 +16336 11429 +16432 8624 +16592 8624 +16688 8624 +16752 8624 +16816 8624 +16912 8624 +17040 8624 +17136 8624 +17243 8624 +17264 1782 +17264 4092 +17264 6688 +17264 7722 +17264 8481 +9712 231 +9712 1012 +9712 1760 +9712 7128 +17072 1012 +17072 2222 +17072 4356 +17072 6688 +17072 7722 +17072 10560 +17072 11528 +13552 11418 +13696 11220 +13968 11220 +14192 11220 +14272 11220 +14384 11220 +14448 11220 +14576 11220 +14672 2530 +14672 5368 +14672 6798 +14672 8646 +14672 9878 +14688 11220 +14704 11418 +16464 2222 +16464 3850 +16464 5478 +16464 6798 +16464 7766 +16464 10461 +16464 11429 +144 11528 +320 11440 +496 11440 +752 11440 +912 11440 +1104 11440 +1232 11440 +1584 11440 +1712 11440 +1776 11440 +1904 11440 +2064 11440 +2251 11440 +2352 3113 +2352 6644 +2352 10032 +2352 11297 +2464 11440 +2736 11440 +3008 11440 +3152 11440 +3344 11440 +3504 11440 +3584 11440 +3712 11440 +3888 11440 +4048 11440 +4128 11440 +4272 11440 +4368 11528 +13168 7282 +13168 8536 +13168 9174 +13168 11429 +13264 1606 +13264 2310 +13264 3124 +13264 3938 +13264 4928 +13264 6413 +7792 8899 +7824 8756 +7856 1188 +7856 4818 +7856 8613 +16720 1012 +16720 2222 +16720 3850 +16720 5478 +16720 6688 +16720 7876 +16720 10560 +16720 11528 +19056 11528 +12976 3938 +12976 4708 +12976 6072 +12976 7282 +12976 8536 +12976 9174 +12976 11429 +13040 473 +13040 1606 +13040 2310 +15920 2497 +15936 3300 +15952 3773 +15952 5368 +15952 6798 +15952 7766 +15952 8624 +15952 9878 +15952 10626 +15952 11429 +5296 6402 +5296 7194 +5296 10582 +5312 5588 +5328 2178 +5328 4048 +11856 902 +11856 4488 +11856 5929 +11872 6028 +11888 6171 +11888 7392 +11888 11165 +15504 583 +15504 2530 +15504 5368 +15504 6798 +15504 8646 +15552 9284 +15600 9878 +15600 10626 +15600 11429 +5840 209 +5840 2024 +5840 4048 +5840 8382 +5840 10802 +4368 2365 +4368 5434 +4368 7810 +4388 11132 +4464 11132 +4528 11132 +4624 11132 +4784 11132 +4944 11132 +5136 11132 +5200 11132 +5360 11132 +5552 11132 +5616 11132 +5808 11132 +5968 11132 +6032 11132 +6112 11132 +6208 11132 +6352 11132 +6464 11132 +6672 11132 +6832 11132 +7024 11132 +7200 11132 +7440 11132 +7536 11132 +7600 11132 +7696 11132 +7824 11132 +7888 11132 +6288 429 +6288 2024 +6288 4048 +6416 8228 +6544 8228 +6672 8228 +6864 8228 +6928 8228 +7040 8228 +7184 8228 +7536 8228 +7600 8228 +7696 8228 +7760 8228 +7824 8228 +7888 8228 +8096 8228 +8176 8228 +8256 8228 +8448 8228 +8720 8228 +8848 8228 +9115 8228 +9136 9878 +4624 2684 +4624 5445 +4644 5808 +4752 5808 +4848 5808 +4912 5808 +5040 5808 +5328 5808 +5664 5808 +6096 5808 +6192 5808 +6256 5808 +6416 5808 +6560 5808 +6672 5808 +6768 5808 +6864 5808 +6992 5808 +7088 5808 +7184 5808 +7328 5808 +7584 5808 +7664 5808 +7760 5808 +7824 5808 +7888 5808 +7952 5808 +8048 5808 +8176 5808 +8336 6908 +8336 8646 +9008 1188 +9440 3828 +9552 3828 +9680 3828 +9824 3828 +9936 3828 +10000 3828 +10224 3828 +10288 3828 +10384 3828 +10512 3828 +10576 3828 +10640 3828 +10704 3828 +10800 3828 +10928 3828 +11056 3828 +11120 3828 +11216 3828 +11344 3828 +11488 3828 +11680 3828 +11760 3828 +11904 3828 +12048 3828 +12176 3828 +12336 3828 +12432 3828 +12528 3828 +12624 3828 +12688 3828 +12752 4708 +12752 6072 +12752 7392 +12752 8646 +12752 11429 +14512 9163 +14512 9878 +14512 11539 +14704 9064 +14784 9064 +15120 9064 +15392 9064 +15472 9064 +15568 9064 +15712 9064 +15792 9064 +15856 9064 +15984 9064 +16080 9064 +16208 9064 +16432 9064 +16592 9064 +16688 9064 +16784 9064 +16912 9064 +17040 9064 +17136 9064 +17280 9064 +17392 9064 +17472 9064 +17552 9064 +17952 9064 +18224 9064 +18427 9064 +18512 4037 +18512 8855 +6480 429 +6480 2024 +6480 4048 +6480 8646 +6672 10252 +6848 10252 +7024 10252 +7200 10252 +7376 10252 +7536 10252 +7600 10252 +7696 10252 +7824 10252 +7888 10252 +7984 10252 +8096 10252 +8176 10252 +8272 10252 +8368 10252 +8432 10252 +8720 10252 +8848 10252 +9104 10252 +9728 10252 +10032 10252 +10256 10252 +10320 10252 +7472 638 +7472 1518 +7472 4048 +7472 4928 +7472 8756 +7536 10912 +7600 10912 +7696 10912 +7824 10912 +7888 10912 +7984 10912 +8096 10912 +8176 10912 +8272 10912 +8368 10912 +8432 10912 +8720 10912 +8848 10912 +9104 10912 +9728 10912 +10032 10912 +10256 10912 +10320 10912 +10480 10912 +10656 10912 +10768 10912 +10928 10912 +11024 10912 +11216 10912 +11328 10912 +11440 11440 +11440 11088 +4848 7755 +4848 11495 +4864 7612 +4880 2618 +4880 6402 +8912 1188 +8912 3949 +8992 4048 +9440 4048 +9552 4048 +9680 4048 +9824 4048 +9936 4048 +10000 4048 +10224 4048 +10288 4048 +10384 4048 +10512 4048 +10576 4048 +10640 4048 +10704 4048 +10800 4048 +10928 4048 +11056 4048 +11120 4048 +11216 4048 +11344 4048 +11488 4048 +11680 4048 +11760 4048 +11904 4048 +12048 4048 +12176 4048 +12336 4048 +12432 4048 +12528 4048 +12624 4708 +12624 6072 +12624 7392 +12624 11429 +12688 4048 +12800 4048 +12880 1606 +12880 2310 +12880 3949 +4656 2629 +4720 4488 +4784 4488 +4848 4488 +4912 4488 +5040 4488 +5296 4488 +5664 4488 +5872 4488 +6128 4488 +6192 4488 +6256 4488 +6416 4488 +6560 4488 +6672 4488 +6784 4488 +6896 4488 +7008 4488 +7088 4488 +7184 4488 +7312 4488 +7504 4488 +7664 4488 +7760 4488 +7824 4488 +7888 4488 +7952 4488 +8048 4488 +8208 4488 +8336 4488 +8432 4488 +8496 4488 +8688 5962 +8688 8866 +12016 902 +12016 4488 +12016 6083 +12036 6336 +12176 6336 +12384 6336 +12523 6336 +12560 7392 +12560 11429 +17456 11528 +17476 11440 +17552 11440 +17920 11440 +18368 11440 +18523 11440 +18608 4037 +18608 8525 +18608 10670 +18608 11528 +14416 8866 +14416 9878 +14416 11539 +14512 7348 +14704 7348 +14816 7348 +14928 7348 +15136 7348 +15328 7348 +15440 7348 +15600 7348 +15712 7348 +15792 7348 +15888 7348 +15984 7348 +16128 7348 +16288 7348 +16544 7348 +16688 7348 +16752 7348 +16816 7348 +16912 7348 +17040 7348 +17104 7348 +17168 7348 +17408 7348 +17504 7348 +17712 7348 +17856 7348 +17968 7348 +18192 7348 +18256 7348 +18384 7348 +18448 3564 +18448 7172 +8592 1188 +8592 5962 +8592 6875 +8816 7095 +8836 8756 +9104 8756 +9728 8756 +10000 8756 +10256 8756 +10352 8756 +10464 8756 +10656 8756 +10736 8756 +10800 8756 +10912 8756 +11040 8756 +11200 8756 +11344 8756 +11504 8756 +11600 8756 +11712 8756 +11792 8756 +11984 8756 +12192 8756 +12272 8756 +12384 8756 +12528 8756 +12656 8756 +12720 11429 +4912 2299 +5040 3608 +5296 3608 +5664 3608 +5872 3608 +6128 3608 +6192 3608 +6256 3608 +6416 3608 +6560 3608 +6672 3608 +6784 3608 +6896 3608 +7008 3608 +7088 3608 +7184 3608 +7312 3608 +7504 3608 +7664 3608 +7760 3608 +7824 3608 +7888 3608 +7952 3608 +8048 3608 +8208 3608 +8336 3608 +8432 3608 +8496 3608 +8624 3608 +8752 3608 +8848 3608 +8976 3608 +9040 5962 +9040 6908 +9040 9878 +9328 671 +9328 1760 +9328 2838 +9728 9724 +10032 9724 +10256 9724 +10320 9724 +10416 9724 +10480 9724 +10656 9724 +10736 9724 +10800 9724 +10928 9724 +11040 9724 +11216 9724 +11312 9724 +11440 9724 +11520 9724 +11600 9724 +11712 9724 +11792 9724 +11984 9724 +12080 9724 +12208 9724 +12384 9724 +12528 9724 +12656 9724 +12827 9724 +12848 11429 +12944 9724 +13088 9724 +13232 9724 +13403 9724 +13424 1606 +13424 2794 +13424 3938 +13424 4928 +13424 7392 +13424 8536 +13424 9174 +16880 1012 +16880 2222 +16880 3850 +16880 5368 +16880 6688 +16880 7876 +16880 10560 +16880 11528 +18576 4037 +18576 8646 +18656 8866 +18859 8866 +18992 10846 +18992 11528 +8176 1188 +8176 4829 +8336 4928 +8432 4928 +8496 4928 +8752 4928 +8848 4928 +8992 4928 +9440 4928 +9552 4928 +9680 4928 +9824 4928 +9936 4928 +10000 4928 +10224 4928 +10288 4928 +10384 4928 +10512 4928 +10608 4928 +10704 4928 +10800 4928 +10928 4928 +11056 4928 +11120 4928 +11216 4928 +11344 4928 +11488 4928 +11680 4928 +11760 4928 +11904 4928 +12048 4928 +12176 4928 +12336 4928 +12443 4928 +12464 5962 +12464 7392 +12464 11429 +6000 10802 +6000 11495 +6016 8624 +6032 319 +6032 2024 +6032 4048 +6032 5324 +7088 638 +7088 1518 +7088 2409 +7184 2508 +7312 2508 +7504 2508 +7664 2508 +7760 2508 +7824 2508 +7888 2508 +7952 2508 +8048 2508 +8208 2508 +8336 2508 +8432 2508 +8496 2508 +8624 2508 +8752 2508 +8848 2508 +8976 2508 +9040 2508 +9264 2508 +9408 2508 +9680 2508 +9808 2508 +9872 2508 +10000 2508 +10096 2508 +10224 2508 +10288 2508 +10384 2508 +10512 2508 +10576 2508 +10640 2508 +10704 2508 +10800 2508 +10928 2508 +11056 2508 +11120 2508 +11216 2508 +11344 2508 +11408 4488 +11408 6072 +11408 7392 +11408 11385 +15760 2530 +15760 5368 +15760 6798 +15760 8426 +15760 9878 +15760 10626 +15760 11429 +112 9218 +112 11528 +260 7480 +480 7480 +560 7480 +736 7480 +848 7480 +912 7480 +976 7480 +1072 7480 +1152 7480 +1312 7480 +1536 7480 +1648 7480 +1760 7480 +1872 7480 +1984 7480 +2112 7480 +2192 7480 +2288 7480 +2464 7480 +2624 7480 +2736 7480 +2864 7480 +2960 7480 +3024 7480 +3200 7480 +3312 7480 +3419 7480 +3440 3113 +3440 6864 +5616 1914 +5616 4048 +5652 6336 +6096 6336 +6192 6336 +6256 6336 +6416 6336 +6544 6336 +6672 6336 +6768 6336 +6864 6336 +6992 6336 +7088 6336 +7184 6336 +7328 6336 +7616 6336 +7744 6336 +7824 6336 +7888 6336 +8048 6336 +8176 6336 +8432 6336 +8512 6336 +8832 6336 +8992 6336 +9296 6336 +9456 6336 +9552 6336 +9680 6336 +9808 6336 +10016 6336 +10139 6336 +16944 1012 +16944 2222 +16944 3850 +16944 5368 +16944 6688 +16944 7876 +16944 10560 +16944 11528 +9744 231 +9744 1012 +9744 1760 +9764 6996 +10016 6996 +10128 6996 +10224 6996 +10384 6996 +10496 6996 +10656 6996 +10816 6996 +10928 6996 +11040 6996 +11120 6996 +11216 6996 +11328 6996 +11504 6996 +11568 6996 +11632 6996 +11696 6996 +11760 6996 +11824 6996 +11968 6996 +12192 6996 +12272 6996 +12384 6996 +12528 6996 +12656 6996 +12800 6996 +12891 6996 +12912 7271 +12912 8536 +12912 9174 +12912 11429 +12933 6776 +13088 6776 +13280 6776 +13392 6776 +13456 6776 +13520 6776 +13632 6776 +13760 6776 +13920 6776 +14080 6776 +14192 6776 +14267 6776 +12912 6908 +14288 2530 +14288 5368 +14288 6633 +13904 11528 +13920 11440 +13936 11528 +13952 11440 +13968 11528 +6576 429 +6576 1639 +6672 2068 +6784 2068 +6896 2068 +7008 2068 +7184 2068 +7312 2068 +7504 2068 +7664 2068 +7760 2068 +7824 2068 +7888 2068 +7952 2068 +8048 2068 +8208 2068 +8336 2068 +8432 2068 +8496 2068 +8560 2068 +8624 2068 +8752 2068 +8848 2068 +8976 2068 +9040 2068 +9264 2068 +9424 2068 +9584 2068 +9680 2068 +9808 2068 +9872 2068 +10000 2068 +10096 2068 +10224 2068 +10288 2068 +10384 2068 +10512 2068 +10576 2068 +10640 2068 +10704 2068 +10800 2068 +10928 2068 +11056 2068 +11120 2068 +11227 2068 +11248 4488 +11248 7392 +11248 11385 +5552 2178 +5552 4048 +5552 6402 +5552 7403 +5648 7480 +5936 7480 +6096 7480 +6192 7480 +6416 7480 +6544 7480 +6672 7480 +6864 7480 +6928 7480 +7040 7480 +7168 7480 +7312 7480 +7600 7480 +7760 7480 +7824 7480 +7888 7480 +8048 7480 +8176 7480 +8272 7480 +8416 7480 +8656 7480 +8848 7480 +9104 7480 +9232 7480 +9616 7480 +9680 7480 +9760 7480 +10016 7480 +10128 7480 +10224 7623 +10160 231 +10160 1012 +10160 1760 +10224 5148 +10288 5148 +10384 5148 +10512 5148 +10608 5148 +10704 5148 +10800 5148 +10928 5148 +11056 5148 +11120 5148 +11216 5148 +11344 5148 +11488 5148 +11680 5148 +11760 5148 +11904 5148 +12048 5148 +12176 5148 +12336 5148 +12432 5148 +12528 5148 +12688 5148 +12800 5148 +12912 5148 +13115 5148 +13136 6182 +13136 7282 +13136 8536 +13136 9174 +13136 11429 +13328 4488 +13456 4488 +13520 4488 +13616 4488 +13872 4488 +14080 4488 +14224 4488 +14400 4488 +14512 4488 +14736 4488 +14811 4488 +13136 4840 +14832 2530 +14832 4389 +6000 319 +6000 2024 +6000 4048 +6000 5324 +6000 8239 +6064 8459 +6064 10802 +6064 11495 +17168 10560 +17168 11528 +17232 1782 +17232 4092 +17232 6688 +17232 7722 +4688 2508 +4688 5324 +4688 7711 +4752 8866 +4752 11495 +17232 10560 +17232 11528 +17264 8844 +17296 1782 +17296 4092 +17296 6688 +17296 7722 +17296 8591 +10416 231 +10416 1012 +10416 1760 +10416 7392 +3632 3113 +3632 7139 +3696 7480 +3808 7480 +3888 7480 +3952 7480 +4096 7480 +4176 7480 +4256 7480 +4336 7480 +4432 7480 +4496 7480 +4635 7480 +4656 7689 +4656 8866 +4656 11495 +10576 231 +10576 1023 +10640 1232 +10704 1232 +10800 1232 +10928 1232 +11056 1232 +11120 1232 +11216 1232 +11344 1232 +11488 1232 +11696 1232 +11760 1232 +11904 1232 +12048 1232 +12176 1232 +12336 1232 +12432 1232 +12528 1232 +12688 1232 +12816 1232 +12944 1232 +13120 1232 +13200 1485 +13200 2310 +13200 3124 +13200 3938 +13200 4928 +13200 7282 +13200 8536 +13200 9174 +13200 11429 +13344 1232 +13488 1232 +13632 1232 +13872 1232 +14096 1232 +14224 1232 +14400 1232 +14512 1232 +14736 1232 +14800 1232 +14912 1232 +15120 1232 +15328 1232 +15408 1232 +15472 1232 +15600 1232 +12144 11165 +12208 9504 +12384 9504 +12528 9504 +12656 9504 +12832 9504 +12944 9504 +13088 9504 +13232 9504 +13392 9504 +13536 9504 +13632 9504 +13744 9504 +13968 9504 +14192 9504 +14272 9504 +14384 9504 +14448 9504 +14704 9504 +14784 9504 +15120 9504 +15392 9504 +15520 9504 +15712 9504 +15792 9504 +15856 9504 +15984 9504 +16080 9504 +16208 9504 +16432 9504 +16496 9504 +16592 9504 +16688 9504 +16784 9504 +16912 9504 +17040 9504 +17136 9504 +17280 9504 +17360 1782 +17360 4092 +17360 6688 +17360 7722 +17360 8580 +10992 231 +10992 902 +10992 1760 +10992 4488 +10992 7392 +11028 10252 +11216 10252 +11312 10252 +11440 10252 +11520 10252 +11600 10252 +11712 10252 +11792 10252 +11984 10252 +12080 10252 +12208 10252 +12384 10252 +12528 10252 +12656 10252 +12816 10252 +12944 10252 +13088 10252 +13232 10252 +13403 10252 +13424 11429 +13536 10252 +13696 10252 +13968 10252 +14192 10252 +14272 10252 +14384 10252 +14448 10252 +14704 10252 +14784 10252 +15120 10252 +15392 10252 +15520 10252 +15712 10252 +15792 10252 +15856 10252 +16048 10252 +16219 10252 +16240 2222 +16240 3740 +16240 5368 +16240 6798 +16240 7766 +10448 231 +10448 1012 +10448 1760 +10448 7392 +5712 8459 +5712 10802 +5728 8316 +5744 2024 +5744 4048 +5744 8239 +17424 1782 +17424 4092 +17424 6699 +17504 7128 +17712 7128 +17808 7766 +17808 8734 +17808 9603 +17808 10670 +9520 7128 +9536 3608 +9552 231 +9552 1012 +9552 1760 +17328 1782 +17328 4092 +17328 6688 +17328 7722 +17328 8580 +17328 10670 +17328 11528 +19088 11528 +11408 231 +11408 902 +11488 1980 +11696 1980 +11760 1980 +11904 1980 +12048 1980 +12176 1980 +12336 1980 +12432 1980 +12528 1980 +12688 1980 +12816 1980 +12944 1980 +13120 1980 +13344 1980 +13467 1980 +13488 2673 +13488 3938 +13488 4928 +13488 7282 +13488 8536 +13488 9174 +13488 11429 +13509 1452 +13632 1452 +13872 1452 +14096 1452 +14224 1452 +14400 1452 +14512 1452 +14736 1452 +14800 1452 +14912 1452 +15120 1452 +15328 1452 +15408 1452 +15472 1452 +15600 1452 +15712 1452 +15792 1452 +15888 1452 +15984 1452 +16128 1452 +16272 1452 +16400 1452 +16544 1452 +16656 1452 +16752 1452 +16912 1452 +17040 1452 +13488 1738 +17104 1133 +11120 11385 +11184 231 +11184 902 +11184 1760 +11184 4488 +11184 7392 +5680 8382 +5680 10802 +5696 7700 +5712 2024 +5712 4048 +4304 2365 +4304 5434 +4304 6908 +4304 7810 +2128 10032 +2144 8932 +2160 3113 +2160 6644 +2160 8789 +5424 7183 +5424 10692 +5440 6996 +5456 2178 +5456 4048 +5456 6402 +11152 231 +11152 902 +11152 1760 +11152 4488 +11152 7392 +11152 11385 +15632 2530 +15632 5368 +15632 6798 +15632 8426 +15632 9878 +15632 10626 +15632 11429 +16176 2222 +16176 3740 +16176 5368 +16176 6798 +16176 7766 +16176 8734 +16176 10626 +16176 11429 +5392 7194 +5392 10692 +5408 6556 +5424 2178 +5424 4048 +5424 6413 +4464 2574 +4464 5434 +4464 7920 +4528 10692 +4624 10692 +4688 10692 +4784 10692 +4944 10692 +5072 10791 +5072 11495 +18352 3619 +18352 7887 +18372 8184 +18464 8184 +18667 8184 +18704 8404 +18704 10670 +18704 11528 +4528 2574 +4528 5434 +4528 7931 +4624 8140 +4688 8140 +4784 8140 +4944 8140 +5136 8140 +5488 8371 +5488 10692 +1680 10032 +1700 8932 +1776 8932 +1883 8932 +1904 3113 +1904 6754 +1904 8052 +1904 8789 +19120 11528 +19122 8030 +18256 3454 +18256 6952 +18272 7128 +18288 7876 +18288 9427 +18288 10670 +4752 2618 +4752 5225 +4772 5368 +4848 5368 +4912 5368 +5040 5368 +5296 5368 +5664 5368 +5904 5467 +5904 8382 +5904 10802 +1264 6787 +1264 7832 +1264 9658 +1284 6556 +1456 6556 +1552 6556 +1648 6556 +1760 6556 +1840 3113 +17872 9603 +17872 10670 +17952 8844 +18224 3619 +18224 7766 +4816 2618 +4816 6402 +4816 7700 +4816 8723 +4944 8844 +5136 8844 +5552 8844 +5632 8844 +5792 8844 +5968 8844 +6032 8844 +6112 8844 +6192 8844 +6320 11495 +848 9922 +912 8184 +976 8184 +1104 8184 +1232 8184 +1328 8184 +1536 8184 +1616 3113 +1616 7018 +1616 8063 +17840 8723 +17840 9603 +17840 10670 +17860 8624 +17936 231 +17936 1628 +17936 4796 +17936 7766 +18000 231 +18000 1595 +18016 2376 +18032 4521 +18032 7766 +18032 10670 +17424 8613 +17424 9603 +17424 10670 +17424 11528 +17488 8404 +17552 8404 +17712 8404 +17856 8404 +17968 8404 +18192 8404 +18368 8404 +18464 8404 +18544 4037 +432 9702 +468 7260 +560 7260 +736 7260 +848 7260 +912 7260 +976 7260 +1072 7260 +1152 7260 +1312 7260 +1520 3113 +1520 7029 +11248 231 +11248 902 +11344 1760 +11488 1760 +11696 1760 +11760 1760 +11904 1760 +12048 1760 +12176 1760 +12304 4488 +12304 5962 +12304 7392 +12304 11165 +18160 3619 +18160 7766 +18160 10670 +18096 231 +18096 3740 +18096 7766 +18096 10670 +11088 231 +11088 902 +11088 1760 +11088 4488 +11108 5368 +11216 5368 +11344 5368 +11488 5368 +11680 5368 +11760 5368 +11904 5368 +12048 5368 +12176 5368 +12336 5368 +12432 5368 +12528 5368 +12688 5368 +12800 5368 +12912 5368 +13104 5368 +13328 5368 +13456 5368 +13520 5368 +13584 5467 +13584 7282 +13584 8866 +13584 11539 +10672 231 +10672 902 +10672 1760 +10800 5588 +10928 5588 +11088 5588 +11216 5588 +11344 5588 +11488 5588 +11680 5588 +11760 5588 +11904 5588 +12048 5588 +12176 5588 +12336 5588 +12432 5588 +12528 5588 +12688 5588 +12800 5588 +12912 5588 +13104 5588 +13328 6402 +13328 7392 +13328 8536 +13328 9174 +13328 11429 +3792 2904 +3792 5852 +3813 6028 +3888 6028 +3952 6028 +4096 6028 +4176 6028 +4256 6028 +4432 6028 +4496 6028 +4560 6028 +4640 6028 +4752 6028 +4848 6028 +4912 6028 +5040 6028 +5328 6028 +5664 6028 +6096 6028 +6192 6028 +6256 6028 +6416 6028 +6555 6028 +6576 8646 +6576 9438 +6576 11495 +4048 2959 +4048 6908 +4128 10032 +4272 10032 +4400 10032 +4528 10032 +4624 10032 +4688 10032 +4784 10032 +4944 10032 +5008 10032 +5136 10032 +5264 10032 +5552 10032 +5632 10032 +5808 10032 +5968 10032 +6032 10032 +6112 10032 +6192 10032 +6352 10032 +6448 10032 +6672 10032 +6848 10032 +6928 10802 +4400 2365 +4400 5434 +4400 7810 +4528 9592 +4624 9592 +4688 9592 +4784 9592 +4960 9592 +5136 9592 +5552 9592 +5632 9592 +5808 9592 +5968 9592 +6032 9592 +6112 9592 +6192 9592 +6352 9592 +6416 11495 +10256 231 +10256 1012 +10256 1760 +10256 7513 +10384 7788 +10496 7788 +10656 7788 +10816 7788 +10928 7788 +11040 7788 +11120 7788 +11216 7788 +11328 7788 +11504 7788 +11568 7788 +11632 7788 +11696 7788 +11760 7788 +11824 7788 +11968 7788 +12192 7788 +12272 7788 +12384 7788 +12528 7788 +12656 7788 +12800 7788 +12880 7788 +12944 7788 +13088 7788 +13275 7788 +13296 8536 +13296 9174 +13296 11429 +9840 231 +9840 1012 +9840 1760 +9860 3168 +10000 3168 +10096 3168 +10224 3168 +10288 3168 +10384 3168 +10512 3168 +10576 3168 +10640 3168 +10704 3168 +10800 3168 +10928 3168 +11056 3168 +11120 3168 +11216 3168 +11344 3168 +11488 3168 +11696 3168 +11760 3168 +11904 3168 +12048 3168 +12176 3168 +12336 3168 +12432 3168 +12544 3168 +12688 3168 +12752 3168 +12816 3168 +12928 3168 +13040 3267 +13040 3938 +13040 4708 +13040 6072 +13040 7282 +13040 8536 +13040 9174 +13040 11429 +4080 2310 +4080 4664 +4101 4840 +4176 4840 +4256 4840 +4432 4840 +4496 4840 +4560 4840 +4656 4840 +4720 4840 +4784 4840 +4848 4840 +4912 4840 +5040 4840 +5296 4840 +5664 4840 +5872 4840 +6128 4840 +6192 4840 +6256 4840 +6416 4840 +6560 4840 +6672 4840 +6784 4840 +6896 4840 +7008 4840 +7088 4840 +7184 4840 +7280 4983 +7280 7128 +7280 8756 +7280 10802 +4336 2365 +4336 5434 +4432 6776 +4496 6776 +4640 6776 +4768 6776 +4848 6776 +4912 6776 +5040 6776 +5424 6776 +5648 6776 +5936 6776 +6096 6776 +6192 6776 +6416 6776 +6544 6776 +6672 6776 +6768 6776 +6864 6776 +6992 6776 +7088 6776 +7184 6776 +7328 6776 +7611 6776 +7632 6897 +7632 8756 +18064 231 +18064 3740 +18064 7766 +18064 10670 +6960 638 +6960 1518 +6960 2574 +6960 4048 +6996 5588 +7088 5588 +7184 5588 +7328 5588 +7584 5588 +7664 5588 +7760 5588 +7824 5588 +7888 5588 +7952 5588 +8048 5588 +8176 5588 +8336 5588 +8432 5588 +8496 5588 +8752 5588 +8848 5588 +8992 5588 +9440 5588 +9552 5588 +9680 5588 +9824 5588 +10016 5588 +10160 5588 +10224 5588 +10288 7392 +9200 880 +9200 1760 +9200 2948 +9440 5808 +9552 5808 +9680 5808 +9819 5808 +1328 9911 +1584 9152 +1712 9152 +1776 9152 +1904 9152 +2064 9152 +2240 9152 +2464 9152 +2736 9152 +2960 9152 +3024 9152 +3168 9152 +3312 9152 +3504 9152 +3568 3113 +3568 7128 +3568 9053 +9424 352 +9444 572 +9584 572 +9680 572 +9808 572 +9872 572 +10000 572 +10096 572 +10224 572 +10288 572 +10384 572 +10512 572 +10640 572 +10704 572 +10800 572 +10928 572 +11056 572 +11120 572 +11216 572 +11344 572 +11488 572 +11696 572 +11760 572 +11904 572 +12048 572 +12176 572 +12336 572 +12432 572 +12528 572 +12688 572 +12816 572 +12955 572 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/usa13509.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/usa13509.tsp new file mode 100644 index 000000000..7fc018324 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/benchs/usa13509.tsp @@ -0,0 +1,13510 @@ +13509 +245553 817828 +247133 810906 +247206 810189 +249239 806281 +250111 805153 +254475 804794 +254683 804778 +254950 804294 +255622 803825 +255803 803469 +255972 803808 +256047 803539 +256147 803108 +256311 803692 +256789 803175 +256933 801631 +257072 802936 +257072 803258 +257211 802686 +257264 803556 +257544 803275 +257631 802964 +257739 801939 +257903 801303 +258100 803025 +258219 802897 +258403 803267 +258458 801542 +258550 801933 +258572 802783 +258628 801931 +258647 803247 +258703 802992 +258781 801258 +258822 801808 +258872 801314 +258897 801869 +258914 801272 +259014 974972 +259019 802506 +259306 803286 +259328 801628 +259403 802458 +259481 801508 +259503 801231 +259619 801769 +259647 801225 +259647 802417 +259722 817292 +259808 801486 +259869 802325 +259875 801750 +260028 802242 +260108 801497 +260519 801442 +260569 802719 +260644 802322 +260714 974761 +260731 972083 +260883 817264 +260919 979569 +261000 982628 +261006 972900 +261033 971644 +261219 801436 +261272 802333 +261322 976308 +261400 802136 +261417 817950 +261494 979133 +261586 978236 +261592 979906 +261600 801392 +261661 802086 +261700 980517 +261833 981228 +261903 976958 +261917 800967 +261944 981833 +262022 800942 +262031 982297 +262156 983250 +262189 817919 +262256 977578 +262350 975817 +262375 801250 +262442 802067 +262467 984811 +262483 977336 +262564 978247 +262614 818094 +262825 801072 +262869 983131 +262931 979928 +262936 800792 +262936 979603 +262983 979283 +263014 981631 +263181 801000 +263306 818269 +263394 817789 +263583 800833 +263728 979714 +263794 988200 +263992 800658 +264047 990156 +264119 977894 +264183 814175 +264422 980136 +264486 820225 +264517 819483 +264611 800731 +264669 818017 +265250 800667 +265267 800486 +265625 819497 +265661 800536 +265864 800522 +265886 800389 +266156 800572 +266233 801256 +266250 816250 +266403 818725 +266450 800761 +266636 807164 +266669 818803 +266744 818153 +266842 806678 +266908 801203 +267053 800367 +267089 817461 +267150 800536 +267372 809511 +267539 809339 +267600 800739 +267614 814386 +267750 800583 +267778 800358 +268000 800667 +268172 800822 +268197 806656 +268328 810933 +268417 810964 +268794 800536 +268833 822903 +269069 992711 +269097 820542 +269139 823272 +269294 820456 +269339 800944 +269467 820261 +269581 820672 +269614 819842 +269758 820908 +270269 804858 +270500 822500 +270528 824244 +270567 823786 +270592 801367 +270728 824078 +270994 824544 +271189 824444 +271300 824533 +271439 802008 +271675 802664 +271958 824906 +271972 802531 +272156 818586 +272172 802700 +272192 802394 +272217 824981 +272267 981439 +272436 808300 +272517 808142 +272542 802300 +272836 824808 +272928 813631 +273064 986781 +273294 824578 +273361 825308 +273603 981233 +274097 825694 +274122 826592 +274242 825803 +274250 825906 +274464 803258 +274472 825464 +274667 827042 +274689 826864 +274692 825417 +274931 817961 +274953 814411 +274972 827092 +274986 825750 +275061 995072 +275119 826322 +275156 978558 +275211 825725 +275214 825278 +275308 827336 +275356 825614 +275428 804025 +275469 818117 +275858 977989 +275956 815064 +275986 984078 +276381 818242 +276383 803975 +276742 977483 +276750 804094 +277122 822992 +277164 803844 +277206 824333 +277456 815308 +277481 804364 +277481 827036 +277519 818019 +277519 980694 +277547 827378 +277636 982386 +277675 806017 +277689 827692 +277814 979083 +277900 976686 +277950 819806 +277978 827975 +278003 973961 +278083 828114 +278139 827783 +278158 828208 +278258 828292 +278336 970608 +278356 804933 +278425 826997 +278625 828486 +278750 828514 +278769 973236 +278775 972114 +278803 805006 +278825 986175 +278950 819736 +278961 818433 +279011 815861 +279092 827875 +279092 971497 +279142 827056 +279211 828172 +279219 972897 +279228 828433 +279356 828064 +279375 822861 +279456 818006 +279472 824586 +279503 975819 +279525 817272 +279564 979367 +279650 818781 +279656 828003 +279675 819736 +279781 817567 +279786 816142 +279786 973983 +279906 826933 +279936 816903 +279939 822197 +279944 817383 +280033 805658 +280083 819078 +280183 821131 +280194 827719 +280203 970542 +280219 817331 +280222 816194 +280314 820150 +280339 826653 +280342 805889 +280350 823894 +280364 975089 +280408 993542 +280442 816281 +280611 970408 +280650 817889 +280681 805606 +280714 806536 +280719 806803 +280778 827639 +280786 806028 +280850 806667 +280892 805658 +280917 817236 +280942 978278 +281139 816181 +281144 819739 +281206 820233 +281356 806719 +281458 827569 +281486 805886 +281508 824617 +281611 816019 +281758 805903 +281822 818242 +281875 827397 +282164 827225 +282333 821814 +282381 973197 +282439 827194 +282586 814567 +282714 827197 +282917 814078 +283050 972750 +283197 806078 +283322 981172 +283358 822747 +283506 807256 +283644 821961 +283858 807422 +284006 977481 +284056 806050 +284150 967133 +284319 807603 +284367 992347 +284569 813917 +284581 813594 +284600 981822 +284656 821722 +284717 813681 +284858 813725 +284953 815350 +285025 813308 +285072 821706 +285217 998603 +285381 813794 +285381 814606 +285408 813008 +285492 817731 +285544 811067 +285547 816333 +285550 823881 +285578 818514 +285650 815864 +285689 815442 +285731 995683 +285742 817464 +285781 818869 +285908 813944 +285997 813394 +286097 820553 +286119 808078 +286144 813808 +286147 966258 +286192 814428 +286417 811236 +286475 968922 +286489 813514 +286497 819928 +286608 813658 +286614 814192 +286617 815097 +286647 821131 +286650 808450 +286672 991703 +286681 973881 +286697 812083 +286772 998278 +286775 813281 +286794 965600 +286803 815097 +286986 813083 +287078 962172 +287089 1.00499e+06 +287094 817331 +287308 816014 +287394 811153 +287500 822969 +287556 820950 +287586 813181 +287811 826153 +287994 820703 +288003 812733 +288022 816447 +288039 817258 +288106 818781 +288189 978483 +288356 823306 +288403 817689 +288525 816856 +288611 819067 +288617 987061 +288650 820392 +288831 977128 +288847 979006 +288919 990947 +289003 812639 +289006 823747 +289022 825928 +289172 819231 +289178 985461 +289292 816658 +289408 998494 +289442 952886 +289486 812989 +289539 953594 +289600 960650 +289669 984783 +289783 966458 +289806 812336 +289808 975025 +289825 959692 +289825 980172 +289886 809025 +290028 953317 +290175 958892 +290244 953986 +290256 809272 +290256 809722 +290297 827161 +290300 826689 +290336 954342 +290386 956983 +290403 965133 +290403 985678 +290442 955689 +290489 824611 +290550 820625 +290558 954097 +290694 980817 +290936 972889 +290961 809372 +291192 813517 +291333 981558 +291383 830353 +291397 989050 +291436 956450 +291656 810047 +291692 954317 +291758 809831 +291869 821403 +291894 988622 +291964 962694 +292094 997858 +292106 810231 +292261 986575 +292281 953447 +292367 979597 +292392 814658 +292433 810378 +292672 977642 +292856 810561 +292875 971517 +292947 952786 +293103 1.00418e+06 +293106 988097 +293114 961025 +293172 994661 +293472 991411 +293481 950158 +293489 810667 +293556 988783 +293561 981153 +293625 1.00896e+06 +293664 821975 +293789 902600 +293836 949025 +293872 824469 +293992 958375 +294236 952439 +294239 984933 +294289 971703 +294300 815108 +294383 905953 +294419 902992 +294436 969408 +294475 826425 +294506 959944 +294569 946394 +294606 950511 +294625 953578 +294631 983853 +294658 812581 +294747 811272 +294747 984506 +294786 984872 +294803 896939 +294822 954153 +294831 949219 +294847 984656 +294878 985514 +294950 986183 +295000 815917 +295014 974522 +295044 822800 +295067 949922 +295072 950947 +295153 983800 +295178 983158 +295231 985161 +295292 952008 +295297 825192 +295308 960708 +295375 907200 +295425 903381 +295425 950203 +295472 950319 +295478 982908 +295519 982694 +295533 906022 +295569 958083 +295606 1.04372e+06 +295614 982267 +295633 952858 +295639 950253 +295686 979644 +295711 981400 +295722 903817 +295747 971425 +295819 957606 +295822 984906 +295847 985522 +295894 963333 +295917 820875 +295919 980331 +295956 907194 +296003 984869 +296131 828178 +296158 955575 +296183 955375 +296194 956347 +296200 950097 +296236 818906 +296311 960650 +296342 831253 +296458 905392 +296461 826067 +296483 816378 +296514 823250 +296581 815986 +296622 948900 +296628 952353 +296656 950192 +296661 911019 +296667 901083 +296692 1.00012e+06 +296792 959769 +296803 976472 +296817 969028 +296875 971083 +296894 912708 +296897 958994 +296908 952089 +296931 913019 +296944 912189 +296992 912067 +297028 967803 +297028 981242 +297050 951236 +297056 954586 +297058 954367 +297064 965394 +297178 815083 +297178 954336 +297231 901236 +297256 849833 +297264 990733 +297272 905989 +297353 949772 +297364 848786 +297486 966008 +297597 955169 +297631 953631 +297672 952336 +297672 955297 +297703 954953 +297728 946825 +297758 951144 +297772 955169 +297781 951717 +297806 961569 +297856 958242 +297858 820317 +297858 959508 +297894 821675 +297897 943831 +297928 961006 +297944 987317 +297956 824944 +297956 908228 +297958 915014 +297975 933250 +298186 950558 +298200 943839 +298236 904750 +298267 825969 +298372 909561 +298378 915442 +298475 948906 +298531 846644 +298547 899906 +298678 951281 +298797 950628 +298831 979411 +298847 976697 +298875 955628 +298956 898978 +298986 939286 +298992 901003 +299022 955022 +299033 900772 +299053 968764 +299058 901422 +299061 903561 +299100 900325 +299108 916633 +299117 950619 +299144 900539 +299175 939242 +299183 902108 +299319 903664 +299322 953800 +299361 906786 +299403 902031 +299403 910247 +299425 899633 +299428 903517 +299439 821100 +299478 854181 +299481 919886 +299481 939169 +299500 962569 +299542 900053 +299544 900750 +299581 920358 +299589 829283 +299650 912031 +299675 989047 +299742 939922 +299764 904089 +299778 903878 +299794 818106 +299839 901528 +299889 978769 +299911 939583 +299917 816783 +299939 902417 +299978 922847 +299989 904122 +300033 918186 +300108 907194 +300156 1.00205e+06 +300206 938456 +300225 823397 +300258 925083 +300272 945914 +300356 944242 +300403 906989 +300439 820719 +300464 948850 +300472 906897 +300472 991400 +300478 943356 +300528 831750 +300536 905517 +300558 906192 +300564 917369 +300564 959267 +300664 904800 +300772 992400 +300806 926714 +300819 937581 +300850 978400 +300858 941017 +300928 937364 +300931 959875 +300972 960781 +300978 984211 +300994 919900 +301008 909928 +301025 940517 +301089 948581 +301103 973150 +301125 852006 +301131 946428 +301172 835819 +301217 924981 +301308 856033 +301314 940153 +301400 944108 +301422 1.02394e+06 +301469 919611 +301522 947389 +301528 855700 +301586 856603 +301658 817067 +301667 963975 +301686 933758 +301697 911469 +301708 856253 +301758 843753 +301764 858056 +301806 924642 +301817 932736 +301825 969361 +301842 908592 +301894 826394 +301897 925825 +301906 935811 +301922 826147 +302008 856269 +302139 923744 +302142 918319 +302172 910961 +302222 926569 +302239 920197 +302256 978033 +302264 932172 +302328 951608 +302347 922683 +302356 920944 +302356 921853 +302358 928225 +302364 933772 +302367 930136 +302383 909200 +302419 932506 +302453 856483 +302458 877008 +302500 1.0325e+06 +302531 941897 +302669 977428 +302733 918992 +302750 897811 +302750 988717 +302767 977908 +302767 984117 +302772 912236 +302819 821222 +302867 893761 +302889 912342 +302892 856406 +302944 813933 +302950 907950 +302975 937433 +302978 978017 +303025 819756 +303025 931906 +303078 1.04019e+06 +303086 892869 +303117 813967 +303117 954558 +303131 917903 +303133 899431 +303139 842475 +303156 892475 +303169 920489 +303294 827592 +303311 924956 +303319 816558 +303342 813989 +303406 975567 +303458 965281 +303489 941778 +303494 973700 +303503 891528 +303536 912653 +303547 940725 +303569 871639 +303581 900656 +303583 1.03661e+06 +303586 905861 +303656 885561 +303672 890928 +303678 979914 +303714 943122 +303758 843008 +303758 897483 +303839 872750 +303856 886117 +303878 960875 +303933 864958 +303942 912536 +303958 888853 +303975 919314 +304028 922150 +304031 882483 +304042 901569 +304056 866189 +304064 876836 +304097 866631 +304108 817081 +304108 914336 +304111 888278 +304111 920683 +304114 885344 +304189 970114 +304208 873075 +304211 872169 +304247 954797 +304250 872519 +304261 888908 +304264 872797 +304303 888422 +304319 849758 +304381 842808 +304386 904414 +304392 976197 +304403 885436 +304408 866136 +304428 872225 +304433 850453 +304439 856886 +304503 934331 +304506 911544 +304519 912100 +304556 866383 +304614 873150 +304686 872361 +304692 834131 +304692 836303 +304703 919783 +304739 879192 +304753 901008 +304761 883422 +304783 900375 +304811 926956 +304850 925958 +304853 928506 +304867 909561 +304875 876997 +304892 997717 +304911 915194 +304942 924175 +304978 949964 +304981 861361 +305019 907478 +305042 904611 +305042 905822 +305050 978200 +305081 976786 +305100 872125 +305181 829483 +305183 921847 +305186 872728 +305228 879033 +305253 896794 +305333 920814 +305367 917528 +305375 954831 +305425 975464 +305450 838703 +305453 877517 +305475 881753 +305536 877119 +305589 915558 +305600 919539 +305619 818308 +305667 1.00643e+06 +305692 847433 +305706 974092 +305772 904831 +305781 982725 +305786 978528 +305814 872914 +305869 845833 +305881 911681 +305900 881708 +305903 972967 +305922 951292 +305958 916164 +305986 870311 +305992 871611 +306033 879036 +306039 830981 +306136 972053 +306161 920569 +306169 846600 +306181 877531 +306200 927625 +306228 857122 +306236 844147 +306278 963342 +306317 816067 +306322 870397 +306325 976769 +306336 924192 +306353 905008 +306483 911564 +306581 984403 +306603 938925 +306694 814628 +306878 922714 +306908 819175 +306928 917439 +306936 853922 +306942 880431 +307014 914361 +307050 848431 +307075 849244 +307100 1.012e+06 +307108 949328 +307122 850203 +307172 911414 +307175 974425 +307214 861156 +307233 955506 +307239 873142 +307383 915942 +307386 880789 +307436 980553 +307472 832208 +307489 844839 +307542 935403 +307581 982281 +307592 986747 +307619 865706 +307636 880747 +307647 905117 +307731 858142 +307742 852269 +307750 944153 +307817 855386 +307836 924253 +307847 835600 +307908 898486 +307917 837900 +307917 856797 +307947 974253 +307969 853767 +307997 816900 +308158 926603 +308206 880706 +308231 883614 +308303 820100 +308306 906717 +308325 832786 +308372 912175 +308400 895342 +308411 977933 +308461 932889 +308469 901531 +308483 937572 +308531 880561 +308531 969767 +308558 820211 +308600 1.00601e+06 +308656 910156 +308700 851619 +308772 842014 +308781 974014 +308783 965928 +308828 843239 +308828 877731 +308917 880397 +308939 1.02879e+06 +309036 845756 +309078 944219 +309139 1.01898e+06 +309175 997861 +309197 932822 +309200 911156 +309200 939964 +309250 885900 +309381 905089 +309450 953753 +309469 975383 +309497 959114 +309528 871514 +309531 921825 +309567 855167 +309575 851622 +309597 837381 +309636 817228 +309656 864597 +309736 840531 +309764 925850 +309778 966736 +309814 863075 +309833 918000 +309839 920533 +309842 1.03744e+06 +309911 833728 +309967 948269 +310000 872608 +310011 894522 +310050 863281 +310067 904722 +310103 863497 +310111 838664 +310147 922872 +310236 874939 +310258 964850 +310294 961144 +310328 858639 +310344 919756 +310364 827472 +310397 1.0483e+06 +310403 848792 +310408 830753 +310486 853050 +310547 951256 +310558 974642 +310578 920489 +310594 921211 +310636 981814 +310681 836239 +310722 840892 +310728 969783 +310744 831994 +310786 976053 +310894 910683 +310906 882281 +310931 870628 +310944 924003 +310981 973425 +311022 856969 +311044 912994 +311050 870722 +311081 855944 +311086 888272 +311128 860461 +311147 932714 +311158 901419 +311169 977275 +311239 979028 +311267 954453 +311275 841519 +311278 920661 +311358 1.02224e+06 +311369 834236 +311392 855192 +311431 894097 +311431 904586 +311433 932608 +311497 814917 +311556 885578 +311583 944261 +311650 966767 +311692 889200 +311711 847333 +311797 837892 +311808 821350 +311828 852364 +311869 947808 +311914 1.0146e+06 +311956 987178 +311972 910217 +312022 890347 +312033 970364 +312042 819814 +312067 973025 +312072 832503 +312133 823542 +312158 861711 +312161 998453 +312169 983931 +312228 904603 +312231 853906 +312311 842106 +312356 857228 +312436 904531 +312478 939742 +312517 898375 +312617 1.00817e+06 +312689 836872 +312714 834650 +312775 945764 +312794 863256 +312822 892756 +312825 862556 +312836 904683 +312925 851117 +312975 828525 +312989 853444 +312989 870225 +313058 822422 +313061 968978 +313081 973611 +313100 857131 +313111 924450 +313114 855531 +313128 843358 +313181 954564 +313189 854939 +313194 839172 +313222 924342 +313269 892903 +313381 947289 +313392 1.02851e+06 +313403 1.10934e+06 +313406 830461 +313406 938467 +313408 835936 +313444 1.09545e+06 +313464 892600 +313511 853422 +313528 865392 +313569 1.09561e+06 +313614 961439 +313644 893061 +313700 814342 +313775 849342 +313794 841611 +313850 832231 +313856 859294 +313864 972153 +313903 926692 +313903 976842 +313972 1.0235e+06 +314128 833292 +314144 860678 +314153 924117 +314172 895422 +314217 853378 +314228 1.03493e+06 +314333 874014 +314350 977436 +314394 835194 +314397 847250 +314436 934572 +314439 974089 +314481 1.09928e+06 +314497 985706 +314503 835086 +314589 856406 +314611 1.03393e+06 +314622 971956 +314628 908500 +314636 1.00437e+06 +314650 882544 +314675 971144 +314717 836469 +314722 908967 +314747 969231 +314856 845139 +314861 820172 +314917 954783 +315022 1.06158e+06 +315044 910689 +315086 828500 +315089 878944 +315128 837878 +315172 826350 +315189 927067 +315214 971536 +315242 965336 +315278 873247 +315297 941058 +315306 838356 +315342 974428 +315392 824625 +315394 1.10756e+06 +315422 867150 +315422 968333 +315492 971464 +315536 901072 +315544 1.10303e+06 +315581 847383 +315603 914031 +315653 914258 +315686 934839 +315700 1.03001e+06 +315717 852506 +315783 841558 +315789 904406 +315811 925328 +315828 1.0292e+06 +315847 958489 +315850 1.06272e+06 +315922 1.06224e+06 +315939 971086 +315942 832506 +315942 1.02892e+06 +315972 1.00182e+06 +315983 898669 +316000 857189 +316033 946553 +316039 891956 +316072 818856 +316089 850472 +316250 828869 +316250 955792 +316264 918181 +316269 962836 +316278 1.10333e+06 +316292 971025 +316300 915544 +316314 936439 +316339 883133 +316369 867419 +316453 895553 +316503 950725 +316528 932019 +316592 974719 +316672 928906 +316747 886461 +316753 930444 +316797 964819 +316831 921336 +316925 1.06207e+06 +316939 891306 +317011 903975 +317036 981236 +317058 836533 +317078 817425 +317086 856106 +317086 877772 +317114 910606 +317128 1.10067e+06 +317147 832528 +317164 862639 +317169 991322 +317200 858161 +317225 915431 +317244 961650 +317319 841708 +317333 872047 +317381 999469 +317419 989453 +317511 1.03159e+06 +317539 966497 +317561 846153 +317586 1.06486e+06 +317606 930861 +317711 847894 +317719 918214 +317733 844467 +317739 816328 +317781 823486 +317822 975764 +317833 855558 +317839 816078 +317864 890322 +317878 964622 +317883 877272 +317958 951500 +318022 970914 +318086 859700 +318144 948403 +318192 923297 +318197 935142 +318214 930294 +318242 944908 +318272 994261 +318294 866178 +318308 843644 +318361 1.00984e+06 +318456 1.02367e+06 +318464 916561 +318467 815961 +318575 1.03092e+06 +318600 886994 +318603 903958 +318636 922958 +318736 897336 +318781 854497 +318867 889839 +318872 1.00291e+06 +318911 851456 +318922 1.00484e+06 +318933 931181 +318939 967144 +318972 986033 +319003 842519 +319028 922431 +319036 943950 +319119 1.11881e+06 +319133 877358 +319231 976564 +319253 926394 +319292 826797 +319364 819286 +319381 813036 +319436 942439 +319508 834564 +319564 999619 +319608 909839 +319617 898700 +319633 837825 +319636 952703 +319656 940536 +319678 1.10294e+06 +319753 939978 +319789 892872 +319808 916556 +319828 980333 +319844 865786 +319872 903569 +319894 832003 +319908 872906 +319919 833069 +319972 1.02078e+06 +320000 808458 +320039 1.06605e+06 +320108 971297 +320147 933419 +320167 929092 +320172 830628 +320217 937142 +320264 921389 +320333 810500 +320333 895222 +320339 843928 +320356 825083 +320375 937000 +320400 887281 +320492 916581 +320497 921092 +320525 955061 +320678 829008 +320722 842328 +320725 912408 +320736 829147 +320800 968064 +320833 811000 +320850 983417 +320853 932200 +320867 821181 +320878 846675 +320883 954717 +320894 882219 +320914 837956 +320919 967156 +320953 964686 +320958 989633 +320961 902942 +321094 906233 +321100 835011 +321142 811542 +321153 812472 +321244 969450 +321261 991650 +321292 1.01788e+06 +321322 812992 +321331 962275 +321358 816222 +321397 953200 +321439 960908 +321442 857150 +321444 951203 +321469 827781 +321489 811633 +321531 947992 +321533 901311 +321558 819339 +321572 943372 +321594 971497 +321614 819042 +321631 917206 +321686 882825 +321694 960122 +321811 821092 +321839 865803 +321839 968844 +321872 825658 +321975 831778 +321994 1.10968e+06 +322019 839086 +322042 823219 +322047 958553 +322094 997964 +322136 986703 +322161 807528 +322175 824136 +322206 982019 +322217 1.10926e+06 +322253 950575 +322267 952253 +322333 973742 +322344 977550 +322369 808606 +322381 843092 +322386 949403 +322411 927158 +322417 854164 +322428 944553 +322503 1.01478e+06 +322528 1.09831e+06 +322592 904225 +322614 837367 +322664 876253 +322686 1.07758e+06 +322700 1.068e+06 +322731 899858 +322744 949783 +322767 927233 +322783 957494 +322817 938239 +322836 834722 +322861 1.04095e+06 +322869 810808 +322936 840611 +322958 812356 +322964 1.01306e+06 +322986 901847 +323050 840275 +323053 847728 +323061 877981 +323061 924503 +323069 960064 +323078 954797 +323089 917747 +323094 901389 +323122 1.06778e+06 +323128 897983 +323131 970114 +323158 945164 +323175 890256 +323186 1.02545e+06 +323189 845172 +323203 962128 +323211 891633 +323283 932797 +323292 966250 +323300 906056 +323344 961511 +323361 813917 +323414 903217 +323431 893286 +323475 973864 +323492 904600 +323503 1.08708e+06 +323511 953008 +323525 908778 +323536 896544 +323642 887036 +323644 894742 +323664 961006 +323667 863000 +323694 841881 +323717 1.1286e+06 +323769 825925 +323789 806928 +323794 816633 +323808 1.06479e+06 +323864 968481 +323867 833547 +323881 989789 +323881 1.00864e+06 +323939 993939 +323967 973236 +323969 820603 +323969 908564 +324014 988172 +324058 994933 +324064 972114 +324067 887772 +324072 870211 +324083 911867 +324111 1.00712e+06 +324172 886478 +324206 1.04228e+06 +324239 856917 +324283 901322 +324311 966675 +324314 806700 +324322 830614 +324333 971022 +324339 866547 +324356 807242 +324367 1.11225e+06 +324372 1.03159e+06 +324389 891083 +324419 822153 +324419 977939 +324425 962297 +324453 949483 +324458 1.00538e+06 +324486 817833 +324486 997328 +324489 975264 +324494 875142 +324561 839403 +324575 914931 +324575 998711 +324581 837317 +324608 849878 +324614 973878 +324617 901153 +324639 864597 +324697 986786 +324706 1.00012e+06 +324708 850008 +324708 1.00406e+06 +324772 917547 +324786 940594 +324797 863619 +324806 809806 +324822 969942 +324861 882964 +324956 849919 +325006 947403 +325042 945739 +325092 921192 +325117 863767 +325156 954092 +325158 921917 +325158 937319 +325175 878364 +325175 968042 +325183 921475 +325231 926378 +325247 956369 +325250 937500 +325264 968861 +325275 927139 +325294 949028 +325300 925142 +325306 825894 +325325 935039 +325339 966653 +325344 927883 +325356 934108 +325358 858933 +325381 819325 +325403 829039 +325419 973206 +325431 903092 +325436 862119 +325439 930528 +325447 943672 +325481 828719 +325489 929200 +325497 858700 +325519 984978 +325536 838875 +325564 958631 +325569 842383 +325597 840964 +325606 856725 +325631 971414 +325789 973622 +325808 938925 +325828 821553 +325836 951086 +325839 1.17112e+06 +325842 881872 +325883 952039 +325883 965083 +325889 963086 +325889 966850 +325897 968567 +325908 926478 +325919 967558 +325936 948553 +325964 1.14709e+06 +325972 823339 +325997 1.1063e+06 +326039 914778 +326056 832456 +326097 854808 +326108 1.1077e+06 +326119 998139 +326125 900367 +326153 932867 +326208 836000 +326278 964556 +326308 972889 +326322 873192 +326353 860344 +326394 965381 +326400 1.17083e+06 +326408 903647 +326453 853783 +326467 972256 +326492 967128 +326517 969081 +326536 837597 +326550 799406 +326592 836189 +326631 954881 +326653 1.07152e+06 +326728 1.14146e+06 +326731 974603 +326733 957092 +326775 845394 +326781 1.17098e+06 +326789 1.15498e+06 +326833 847383 +326858 1.17182e+06 +326875 833467 +326875 939608 +326900 808508 +326947 937417 +326958 976019 +326961 920858 +326981 958850 +326989 926567 +326992 1.08131e+06 +327025 1.03136e+06 +327028 971550 +327044 875958 +327092 960081 +327142 971561 +327153 1.17156e+06 +327169 1.16875e+06 +327189 1.02644e+06 +327214 1.09105e+06 +327217 840133 +327225 1.1064e+06 +327233 992969 +327253 973206 +327253 1.14624e+06 +327286 949422 +327286 966225 +327292 827200 +327308 1.15529e+06 +327342 802419 +327358 962750 +327361 968867 +327375 1.01951e+06 +327425 1.17031e+06 +327439 939714 +327447 974133 +327458 969975 +327481 964717 +327503 816369 +327547 812422 +327556 989019 +327558 1.11554e+06 +327564 998958 +327572 943450 +327572 974106 +327578 848750 +327592 977969 +327594 974581 +327617 1.0813e+06 +327631 802503 +327675 886508 +327678 1.17022e+06 +327700 1.0828e+06 +327714 891167 +327733 924056 +327750 917925 +327764 799311 +327786 919142 +327794 1.0815e+06 +327833 968000 +327853 800353 +327872 845619 +327883 868717 +327889 851450 +327917 930556 +327919 1.15562e+06 +327928 956342 +327931 1.1569e+06 +327939 798628 +327947 1.16962e+06 +327958 954508 +327961 851839 +327964 965606 +327994 972689 +328000 947206 +328003 856536 +328039 819494 +328042 911700 +328047 974447 +328058 974028 +328083 981125 +328111 831728 +328111 1.15379e+06 +328139 969486 +328158 972278 +328189 822350 +328192 934175 +328203 851722 +328219 926578 +328233 971703 +328267 830794 +328281 884764 +328311 857636 +328339 1.09707e+06 +328342 972286 +328344 852297 +328364 964747 +328383 1.16973e+06 +328386 866294 +328403 851833 +328406 836325 +328406 878875 +328422 1.04403e+06 +328439 971428 +328467 852100 +328475 1.15569e+06 +328492 1.09759e+06 +328503 810794 +328517 800367 +328519 1.00465e+06 +328544 799750 +328550 904056 +328564 973386 +328572 1.16921e+06 +328578 972544 +328597 846200 +328600 973636 +328667 824042 +328678 843306 +328686 851906 +328708 811097 +328714 939872 +328744 957653 +328764 877425 +328778 851833 +328794 1.11757e+06 +328808 971547 +328819 833325 +328833 816583 +328836 899714 +328847 1.00126e+06 +328881 843267 +328928 934483 +328936 960292 +328950 975456 +328961 1.09827e+06 +328997 854011 +328997 945561 +329014 922419 +329028 965636 +329050 806669 +329050 936967 +329064 908781 +329103 961353 +329156 867158 +329183 800222 +329192 916769 +329253 811875 +329264 968958 +329311 964594 +329328 843494 +329342 970778 +329344 972514 +329358 828117 +329372 871647 +329411 971339 +329439 859539 +329439 1.03348e+06 +329442 1.02564e+06 +329444 871386 +329453 998025 +329478 1.12716e+06 +329481 967294 +329536 968900 +329544 970147 +329572 952900 +329572 1.05742e+06 +329589 812367 +329594 1.17264e+06 +329597 867467 +329617 968289 +329619 931400 +329628 1.17035e+06 +329636 1.01832e+06 +329644 1.02829e+06 +329689 934506 +329700 899122 +329719 1.10776e+06 +329739 908244 +329750 817578 +329750 963322 +329761 965950 +329778 1.05941e+06 +329778 1.11517e+06 +329783 885700 +329786 1.15529e+06 +329808 800328 +329814 828103 +329836 845828 +329856 801100 +329875 1.1077e+06 +329911 1.1727e+06 +329922 890661 +329950 975425 +329953 949656 +329975 876300 +329983 946306 +330014 824114 +330039 972256 +330047 1.10785e+06 +330067 801556 +330078 813086 +330122 943653 +330136 927250 +330144 970967 +330150 966128 +330161 927242 +330183 801758 +330197 966986 +330203 1.17202e+06 +330308 850611 +330314 1.11387e+06 +330317 947217 +330342 839383 +330369 1.17291e+06 +330372 1.15621e+06 +330392 850314 +330394 921825 +330483 1.1663e+06 +330508 1.09296e+06 +330544 841558 +330569 1.1091e+06 +330572 915733 +330575 895875 +330606 954719 +330656 860533 +330656 962275 +330678 1.09359e+06 +330681 1.17302e+06 +330739 1.06018e+06 +330750 898544 +330767 1.11739e+06 +330786 868817 +330786 1.09365e+06 +330786 1.16601e+06 +330800 832322 +330847 972958 +330897 820158 +330917 970464 +330956 803156 +330981 936547 +331003 934608 +331006 868642 +331028 867536 +331031 966703 +331053 885608 +331075 923347 +331094 912619 +331131 900531 +331136 941642 +331150 1.04326e+06 +331181 871250 +331192 970253 +331192 1.17086e+06 +331211 971831 +331214 855664 +331236 890550 +331256 1.15513e+06 +331281 919611 +331283 1.07252e+06 +331294 881514 +331333 1.00227e+06 +331372 958392 +331386 1.10124e+06 +331408 919939 +331433 1.17165e+06 +331481 959511 +331486 941500 +331506 968233 +331511 853722 +331575 997333 +331575 1.05774e+06 +331581 1.1735e+06 +331611 983853 +331633 963597 +331650 970292 +331656 919414 +331667 1.01793e+06 +331689 908539 +331731 849150 +331731 862517 +331781 866072 +331786 991772 +331800 964978 +331806 947439 +331811 1.02274e+06 +331828 902228 +331842 904892 +331844 998933 +331886 952211 +331908 1.01378e+06 +331939 987383 +331958 800133 +331958 1.17379e+06 +331972 1.04372e+06 +331975 966150 +332000 1.17242e+06 +332031 946800 +332075 823919 +332075 926661 +332097 875692 +332100 847444 +332100 977544 +332144 804481 +332183 981583 +332183 1.17033e+06 +332281 917975 +332289 875772 +332333 825956 +332342 864836 +332342 975858 +332344 885822 +332347 848358 +332361 968008 +332378 915114 +332400 1.15518e+06 +332436 842289 +332442 868164 +332447 813589 +332467 842642 +332469 958997 +332481 1.00573e+06 +332511 808158 +332558 1.16374e+06 +332569 1.03317e+06 +332611 938853 +332614 972378 +332619 905922 +332653 842817 +332667 892908 +332669 932392 +332697 908797 +332736 858361 +332756 829764 +332775 850981 +332781 863550 +332858 965725 +332939 1.11096e+06 +332942 961944 +332944 839661 +332958 977986 +332961 868436 +332969 810350 +332975 914936 +333022 845539 +333042 969858 +333047 836833 +333061 1.11841e+06 +333089 854847 +333100 891728 +333106 857544 +333139 820969 +333158 926628 +333200 879028 +333208 902322 +333225 804139 +333225 811425 +333244 967842 +333267 833886 +333286 912817 +333289 925383 +333289 1.05604e+06 +333317 1.05672e+06 +333319 897411 +333328 943425 +333369 1.02206e+06 +333428 1.18327e+06 +333439 864381 +333453 1.10452e+06 +333458 841092 +333478 932097 +333486 806831 +333489 965483 +333506 847767 +333514 932956 +333528 1.11788e+06 +333536 905925 +333578 812708 +333583 935775 +333583 976944 +333625 951044 +333631 971736 +333647 927247 +333653 934950 +333703 1.12583e+06 +333706 960686 +333706 987525 +333708 1.11962e+06 +333733 956881 +333764 1.1725e+06 +333767 792947 +333783 880153 +333794 962472 +333806 847997 +333869 842831 +333942 1.04522e+06 +333942 1.10786e+06 +333944 803475 +333964 969603 +333967 845958 +333992 1.10868e+06 +334017 869544 +334025 814203 +334053 908975 +334069 826622 +334100 910617 +334111 930694 +334111 1.10842e+06 +334131 823853 +334144 823128 +334147 1.11909e+06 +334150 1.11549e+06 +334153 886439 +334181 998186 +334208 821622 +334214 816858 +334214 965769 +334222 1.11822e+06 +334247 959461 +334250 940475 +334256 869267 +334267 941061 +334269 1.17611e+06 +334306 963383 +334336 841489 +334342 869472 +334353 1.12297e+06 +334353 1.12358e+06 +334356 1.12349e+06 +334358 861058 +334372 1.01643e+06 +334417 940375 +334433 895717 +334472 841469 +334483 1.12073e+06 +334486 844550 +334486 867878 +334492 996225 +334500 905056 +334500 1.12259e+06 +334503 821983 +334503 888183 +334508 906550 +334511 795611 +334511 869967 +334517 811256 +334539 910072 +334561 1.02489e+06 +334597 944153 +334614 869089 +334636 1.17678e+06 +334661 942883 +334667 820167 +334667 969181 +334669 1.17697e+06 +334672 995242 +334706 825047 +334706 952136 +334750 804867 +334764 1.00855e+06 +334819 897281 +334917 808558 +334933 1.12357e+06 +334936 1.17148e+06 +334939 849139 +334950 903197 +334956 884272 +334967 812794 +334967 818922 +335006 1.17742e+06 +335017 819653 +335017 1.17662e+06 +335044 818692 +335058 1.02009e+06 +335086 946161 +335086 966119 +335092 1.11898e+06 +335128 963922 +335172 820758 +335178 818442 +335181 899206 +335200 964836 +335206 868025 +335214 798789 +335214 843539 +335225 1.17707e+06 +335253 914358 +335261 953156 +335308 805722 +335308 819450 +335311 1.11942e+06 +335317 811233 +335358 869972 +335378 852533 +335378 924697 +335381 867072 +335386 1.12185e+06 +335400 891242 +335406 892669 +335422 1.17782e+06 +335442 842339 +335453 1.05572e+06 +335461 957256 +335481 865444 +335508 790417 +335508 818042 +335519 947808 +335539 828961 +335553 890847 +335575 807147 +335589 978483 +335603 817197 +335606 1.17157e+06 +335614 969108 +335633 880814 +335636 818081 +335656 813036 +335669 845811 +335700 868964 +335717 1.16076e+06 +335725 844133 +335750 838939 +335756 831825 +335772 961781 +335772 962731 +335778 1.01855e+06 +335806 1.12237e+06 +335808 799892 +335831 843394 +335833 867728 +335833 959097 +335844 928342 +335861 862861 +335869 845425 +335869 879844 +335872 1.02378e+06 +335908 864908 +335939 1.12302e+06 +335942 992600 +335956 834681 +335956 986253 +335967 838603 +335975 1.12271e+06 +335992 797444 +335992 963664 +336000 1.17671e+06 +336008 869561 +336017 907736 +336047 867939 +336058 789733 +336064 843353 +336075 886503 +336078 927400 +336081 803514 +336086 912067 +336103 964106 +336103 1.14596e+06 +336106 950525 +336106 1.14573e+06 +336125 920644 +336125 1.17712e+06 +336131 859611 +336131 1.12324e+06 +336142 858350 +336156 811022 +336189 838675 +336189 1.17928e+06 +336197 866089 +336206 869714 +336214 858442 +336219 843692 +336258 836125 +336258 1.17693e+06 +336261 859189 +336289 913994 +336289 917908 +336289 919314 +336306 1.12332e+06 +336331 897111 +336356 966086 +336358 972225 +336386 1.17343e+06 +336411 1.17918e+06 +336417 1.05877e+06 +336417 1.1729e+06 +336447 843258 +336456 859125 +336489 855875 +336517 973761 +336522 813614 +336533 844494 +336561 837183 +336561 969067 +336597 858317 +336597 876000 +336600 844103 +336600 868128 +336600 1.01238e+06 +336603 1.17998e+06 +336608 955553 +336614 952664 +336614 953856 +336647 791028 +336664 1.01682e+06 +336669 935914 +336675 798308 +336675 840178 +336694 1.17822e+06 +336706 1.01535e+06 +336742 941311 +336742 1.01387e+06 +336772 863967 +336794 844394 +336803 1.16173e+06 +336833 789986 +336844 878308 +336861 864750 +336889 788869 +336889 1.01998e+06 +336939 817672 +336950 802111 +336986 858397 +337039 907264 +337067 840317 +337072 842719 +337092 1.17196e+06 +337092 1.17953e+06 +337122 841053 +337133 873886 +337206 1.16215e+06 +337211 851456 +337214 1.16388e+06 +337244 926156 +337258 905514 +337286 870903 +337306 872844 +337319 849192 +337367 827394 +337369 850325 +337372 1.01836e+06 +337381 810981 +337397 1.16412e+06 +337414 1.18104e+06 +337431 1.17108e+06 +337444 852881 +337444 861558 +337456 1.17867e+06 +337458 1.17174e+06 +337458 1.17825e+06 +337475 1.16971e+06 +337481 868086 +337489 843881 +337519 858114 +337536 794478 +337547 842675 +337556 965364 +337569 881089 +337569 1.18353e+06 +337592 966692 +337592 1.18006e+06 +337597 871833 +337669 1.18188e+06 +337689 898083 +337714 842672 +337733 868139 +337739 1.17941e+06 +337747 842964 +337750 864717 +337786 907214 +337789 924917 +337797 1.16464e+06 +337803 843361 +337825 1.17228e+06 +337833 860025 +337839 1.16958e+06 +337856 1.18084e+06 +337867 977256 +337878 1.17852e+06 +337878 1.18357e+06 +337894 819297 +337897 842642 +337903 843061 +337914 908569 +337922 824792 +337922 1.18314e+06 +337936 842061 +337939 846606 +337947 837133 +338006 1.18389e+06 +338014 1.17145e+06 +338025 851886 +338025 933808 +338025 1.17992e+06 +338031 1.18072e+06 +338081 841703 +338094 842397 +338094 905264 +338111 1.02163e+06 +338125 846344 +338136 857614 +338136 924128 +338142 868094 +338144 1.17812e+06 +338161 986947 +338169 811011 +338169 1.18036e+06 +338172 981950 +338178 794494 +338181 867428 +338186 845825 +338200 1.16389e+06 +338247 870861 +338250 885436 +338303 1.16544e+06 +338311 872775 +338314 1.18072e+06 +338314 1.18281e+06 +338319 818011 +338322 1.01842e+06 +338333 1.1195e+06 +338353 1.17914e+06 +338358 790481 +338358 1.1834e+06 +338369 1.09964e+06 +338389 839008 +338389 907261 +338453 816619 +338464 1.18046e+06 +338492 1.18388e+06 +338531 965022 +338533 910278 +338536 1.18133e+06 +338544 842172 +338553 893114 +338556 892844 +338572 840200 +338575 1.15486e+06 +338594 846839 +338622 1.18399e+06 +338628 834089 +338650 843367 +338658 1.18082e+06 +338675 827414 +338675 1.17997e+06 +338694 1.01597e+06 +338703 1.17924e+06 +338708 797556 +338722 1.17869e+06 +338753 1.17566e+06 +338756 847622 +338756 891772 +338767 806931 +338781 907272 +338781 1.1752e+06 +338817 1.18116e+06 +338839 845144 +338847 1.1841e+06 +338869 914917 +338883 1.18308e+06 +338886 1.17812e+06 +338894 1.18159e+06 +338900 841431 +338906 800186 +338917 875261 +338919 842989 +338956 948261 +338958 1.18219e+06 +338967 979361 +338981 842833 +338983 889992 +339017 881344 +339022 1.18081e+06 +339056 914989 +339078 815475 +339103 811047 +339108 811358 +339133 822936 +339136 984931 +339164 815136 +339164 845447 +339164 1.18352e+06 +339167 928481 +339167 1.17899e+06 +339172 1.02324e+06 +339172 1.18011e+06 +339175 797442 +339192 1.18416e+06 +339203 803417 +339203 1.17278e+06 +339208 931539 +339214 780206 +339236 848408 +339242 843786 +339244 860225 +339256 1.16876e+06 +339289 878172 +339294 1.16976e+06 +339303 1.18211e+06 +339319 1.17945e+06 +339344 964283 +339353 799328 +339369 971164 +339381 1.18352e+06 +339383 943569 +339397 862017 +339400 1.17243e+06 +339400 1.18132e+06 +339411 842136 +339428 918433 +339442 909450 +339456 938469 +339461 843347 +339472 903442 +339472 1.18084e+06 +339481 864728 +339492 835347 +339508 907678 +339514 986683 +339533 1.17395e+06 +339547 860419 +339561 839881 +339583 921900 +339606 1.18184e+06 +339608 833781 +339608 1.1795e+06 +339608 1.18041e+06 +339611 1.16501e+06 +339617 1.18352e+06 +339650 835967 +339653 1.18151e+06 +339656 810742 +339656 879147 +339669 832783 +339672 941683 +339681 1.18224e+06 +339686 1.12729e+06 +339725 1.16976e+06 +339731 783861 +339761 1.17904e+06 +339767 896756 +339775 1.18186e+06 +339792 1.18032e+06 +339814 812364 +339817 1.18224e+06 +339831 1.18096e+06 +339839 997244 +339842 884881 +339844 1.01337e+06 +339850 915608 +339867 1.18184e+06 +339875 802083 +339875 822981 +339886 838981 +339897 834258 +339911 963739 +339919 893489 +339925 837203 +339925 1.17516e+06 +339933 810742 +339958 795703 +339961 1.17405e+06 +339967 779075 +339981 858664 +339986 967194 +339997 791997 +340006 810350 +340014 817722 +340017 887553 +340022 950936 +340025 850417 +340028 841447 +340067 900567 +340094 1.18104e+06 +340106 955094 +340117 1.17484e+06 +340119 1.00822e+06 +340122 1.00302e+06 +340122 1.17688e+06 +340131 982319 +340136 838278 +340142 860067 +340144 867469 +340147 904317 +340172 961425 +340186 952661 +340192 809900 +340194 1.1849e+06 +340200 979572 +340200 1.17949e+06 +340203 1.17864e+06 +340211 1.18396e+06 +340217 860886 +340231 843617 +340233 846156 +340239 1.18171e+06 +340253 877583 +340261 863261 +340272 958689 +340292 947389 +340292 989186 +340336 1.17042e+06 +340339 1.17313e+06 +340350 778939 +340378 943411 +340444 907447 +340453 1.17943e+06 +340456 850561 +340469 875497 +340469 1.1658e+06 +340483 1.1726e+06 +340514 840714 +340519 1.18046e+06 +340522 1.18243e+06 +340536 809614 +340536 852550 +340553 1.17751e+06 +340561 788906 +340583 1.06891e+06 +340600 800717 +340600 950031 +340606 867675 +340622 936897 +340625 1.18089e+06 +340625 1.18122e+06 +340633 1.1765e+06 +340636 831256 +340639 809583 +340642 1.01843e+06 +340658 846769 +340678 1.02524e+06 +340681 981903 +340686 1.17938e+06 +340686 1.18027e+06 +340700 883911 +340703 1.17395e+06 +340722 860333 +340736 1.09856e+06 +340736 1.18399e+06 +340739 1.17313e+06 +340750 925553 +340753 842942 +340806 1.18072e+06 +340808 844114 +340814 865911 +340853 1.1796e+06 +340858 811833 +340889 886222 +340900 1.17889e+06 +340900 1.18361e+06 +340903 967714 +340922 825958 +340922 1.17434e+06 +340953 1.18126e+06 +340961 1.18105e+06 +340967 1.17719e+06 +340975 1.17648e+06 +340978 985703 +341008 1.17767e+06 +341014 845194 +341031 1.17845e+06 +341067 1.17806e+06 +341069 1.17934e+06 +341072 1.18057e+06 +341111 828672 +341111 1.09291e+06 +341161 887117 +341161 1.18149e+06 +341167 1.07243e+06 +341172 913764 +341192 940164 +341192 1.16445e+06 +341206 840044 +341208 930536 +341214 1.17302e+06 +341214 1.18106e+06 +341244 1.01441e+06 +341258 1.09937e+06 +341267 962631 +341283 1.17208e+06 +341333 1.09285e+06 +341336 1.17907e+06 +341344 778819 +341347 799400 +341347 1.16312e+06 +341356 1.16053e+06 +341361 1.17864e+06 +341394 1.17976e+06 +341397 1.18034e+06 +341422 879886 +341464 874022 +341469 1.1797e+06 +341478 1.18144e+06 +341478 1.19194e+06 +341481 1.17998e+06 +341486 788769 +341500 1.14288e+06 +341514 896314 +341519 856789 +341542 1.17343e+06 +341544 992647 +341544 1.09973e+06 +341603 1.18651e+06 +341617 1.18052e+06 +341650 848000 +341669 979972 +341686 800628 +341706 1.18837e+06 +341733 901375 +341739 845014 +341742 971433 +341747 868436 +341750 820242 +341753 972625 +341781 794008 +341781 823792 +341783 975922 +341792 778478 +341833 1.02134e+06 +341850 839253 +341858 968803 +341861 1.03334e+06 +341867 851747 +341872 969842 +341897 1.1813e+06 +341942 887197 +341953 797628 +341953 821619 +341975 1.19176e+06 +342000 905708 +342006 861664 +342017 902833 +342022 871814 +342039 834572 +342047 830308 +342056 792547 +342072 841403 +342083 777967 +342092 778439 +342092 815333 +342103 778869 +342117 1.0169e+06 +342133 886644 +342164 1.19037e+06 +342178 905419 +342181 802486 +342200 856078 +342256 779450 +342264 876214 +342264 1.02723e+06 +342272 806894 +342275 838844 +342283 920031 +342283 986842 +342308 1.11324e+06 +342311 956200 +342322 1.19172e+06 +342331 974875 +342331 1.0241e+06 +342336 791489 +342361 966783 +342367 844908 +342369 849442 +342408 990753 +342419 853358 +342419 1.17285e+06 +342464 806072 +342478 889986 +342483 1.17188e+06 +342528 835617 +342542 1.10029e+06 +342564 902719 +342564 995164 +342569 851647 +342575 887033 +342639 858606 +342647 934608 +342675 862089 +342719 982356 +342722 778189 +342739 884092 +342739 920908 +342744 816189 +342772 878286 +342819 1.18438e+06 +342828 847453 +342847 831444 +342856 1.18881e+06 +342869 831103 +342883 779214 +342928 913378 +342978 838242 +342978 997400 +342997 798764 +343047 819831 +343064 826639 +343069 924011 +343083 908519 +343114 899442 +343133 790375 +343144 971425 +343181 864958 +343189 785003 +343192 918472 +343206 784022 +343219 788272 +343242 884911 +343267 935506 +343333 823881 +343336 834992 +343367 850714 +343369 794314 +343381 843767 +343386 787033 +343456 791658 +343461 831100 +343508 877064 +343514 860008 +343528 829322 +343531 890231 +343542 1.19058e+06 +343556 779003 +343581 862947 +343597 983075 +343608 1.17632e+06 +343617 810856 +343622 928128 +343661 1.01057e+06 +343664 1.01748e+06 +343683 869086 +343686 849342 +343689 979636 +343694 906389 +343714 1.19306e+06 +343739 800736 +343764 886817 +343806 810867 +343819 843711 +343847 1.1853e+06 +343850 1.02115e+06 +343858 961281 +343875 836664 +343886 1.03051e+06 +343919 990181 +343925 1.00897e+06 +343936 800697 +343983 822469 +343989 1.19518e+06 +343992 1.18917e+06 +344000 1.19299e+06 +344047 1.03205e+06 +344147 818114 +344153 1.18793e+06 +344164 793714 +344219 917061 +344233 1.19703e+06 +344244 930950 +344264 1.00204e+06 +344264 1.173e+06 +344303 1.03632e+06 +344319 902208 +344358 831069 +344361 847000 +344397 881408 +344433 869353 +344436 1.18609e+06 +344442 857197 +344450 921831 +344464 823917 +344467 859042 +344481 1.19242e+06 +344550 936800 +344600 976736 +344650 1.10091e+06 +344667 960531 +344672 835739 +344678 844292 +344689 802561 +344706 826708 +344717 1.04245e+06 +344719 996478 +344725 818808 +344742 1.01304e+06 +344750 782025 +344806 853478 +344811 872933 +344811 983828 +344839 1.14322e+06 +344847 854764 +344872 786564 +344917 835375 +344942 858478 +344942 890078 +344967 791144 +344989 820144 +345003 915525 +345008 1.17185e+06 +345014 926364 +345022 979575 +345025 849511 +345025 901986 +345028 816117 +345028 991406 +345033 826503 +345036 930550 +345044 971192 +345078 877286 +345078 969681 +345094 886353 +345106 899397 +345114 835272 +345125 798511 +345133 1.10078e+06 +345136 1.02882e+06 +345186 835008 +345203 1.06241e+06 +345228 824944 +345231 869703 +345250 868947 +345286 862533 +345325 839850 +345358 1.01758e+06 +345361 1.1729e+06 +345364 792917 +345381 962183 +345386 787878 +345400 1.12468e+06 +345439 853106 +345442 919689 +345486 994219 +345506 906417 +345508 1.02311e+06 +345517 805839 +345519 779264 +345556 909128 +345567 936339 +345622 858125 +345636 1.11854e+06 +345644 925867 +345650 835453 +345689 856150 +345719 931731 +345750 809022 +345772 833325 +345794 795467 +345794 1.18116e+06 +345811 1.13204e+06 +345828 1.17408e+06 +345861 942394 +345894 953525 +345931 806756 +345958 911997 +345958 1.20137e+06 +345969 837633 +346017 1.05208e+06 +346047 964239 +346058 869833 +346081 821136 +346086 983900 +346100 1.12315e+06 +346125 835250 +346136 1.20192e+06 +346144 1.20079e+06 +346172 796850 +346175 899686 +346181 790089 +346183 824781 +346200 923953 +346228 973961 +346275 968406 +346278 862744 +346292 786056 +346294 986283 +346350 857672 +346378 978172 +346381 993336 +346392 1.20457e+06 +346403 784842 +346417 1.02724e+06 +346433 971642 +346447 824703 +346453 1.18217e+06 +346461 893053 +346481 979578 +346500 803892 +346517 827839 +346525 965258 +346564 819653 +346581 885667 +346589 989514 +346628 1.06776e+06 +346647 830967 +346686 795456 +346708 890264 +346719 929986 +346722 860342 +346778 769511 +346781 829317 +346800 791953 +346811 874061 +346833 828375 +346844 903828 +346856 829533 +346875 771194 +346883 999117 +346889 821958 +346931 913136 +346950 765597 +346972 989492 +346975 798836 +346981 1.18136e+06 +346989 767406 +347008 875289 +347017 863758 +347022 824647 +347047 812144 +347047 852819 +347142 856808 +347181 766642 +347203 807711 +347206 958989 +347228 767264 +347242 827814 +347247 1.00534e+06 +347297 889506 +347303 865861 +347311 877025 +347339 824439 +347350 793492 +347356 779956 +347358 800883 +347369 822544 +347394 820372 +347400 972219 +347436 1.01854e+06 +347447 876675 +347464 922894 +347503 981714 +347514 950478 +347539 774306 +347569 879728 +347575 1.12453e+06 +347583 1.06055e+06 +347589 796108 +347600 827539 +347647 830642 +347650 876986 +347658 847700 +347694 922669 +347697 849703 +347711 794439 +347711 1.12057e+06 +347731 803919 +347736 907575 +347739 794631 +347744 966781 +347781 923489 +347786 823103 +347794 993350 +347803 982919 +347808 915808 +347825 979567 +347831 917464 +347839 918997 +347861 783944 +347864 768594 +347878 826925 +347967 969592 +347997 876772 +348000 824244 +348028 869717 +348061 1.06733e+06 +348117 881900 +348150 791833 +348150 922242 +348150 1.02397e+06 +348172 974056 +348228 1.18944e+06 +348231 982439 +348239 899936 +348247 824194 +348253 1.06838e+06 +348256 872947 +348258 774597 +348267 972589 +348289 958436 +348297 826017 +348347 976022 +348406 850428 +348406 883147 +348422 826447 +348450 955572 +348481 1.14613e+06 +348514 865722 +348525 823942 +348544 955819 +348561 1.00213e+06 +348611 966653 +348614 824317 +348628 875375 +348639 800014 +348639 843242 +348642 1.18162e+06 +348661 921100 +348686 858394 +348697 1.1176e+06 +348711 852908 +348719 855092 +348719 995039 +348722 896906 +348761 839583 +348767 1.17103e+06 +348778 824242 +348781 834011 +348789 769017 +348789 964122 +348794 819664 +348833 827075 +348847 796944 +348853 824561 +348878 793664 +348878 911944 +348892 946006 +348906 809567 +348936 983656 +348964 982003 +348983 940906 +348989 817619 +349022 1.10158e+06 +349025 790119 +349047 772317 +349050 1.16819e+06 +349069 1.0668e+06 +349106 818531 +349128 911100 +349147 977783 +349158 851092 +349181 797628 +349181 833856 +349181 973142 +349186 953089 +349203 822964 +349225 817428 +349236 777742 +349239 819331 +349244 807436 +349278 957156 +349283 820992 +349319 981400 +349322 865719 +349331 837772 +349331 838472 +349333 957694 +349364 818794 +349378 821453 +349378 1.00888e+06 +349386 822272 +349386 1.04682e+06 +349392 797742 +349431 797872 +349447 818378 +349475 857144 +349481 821275 +349492 904714 +349494 819322 +349508 821061 +349508 950800 +349511 946369 +349528 785089 +349531 1.20435e+06 +349569 924272 +349581 819908 +349581 852233 +349594 967525 +349611 819675 +349617 898294 +349622 779625 +349622 993803 +349672 947244 +349675 799847 +349675 824436 +349681 800769 +349692 873711 +349703 789456 +349717 1.20571e+06 +349722 909025 +349744 920164 +349769 914950 +349775 853578 +349808 792244 +349831 852861 +349842 804494 +349842 819267 +349853 805497 +349861 843714 +349883 803672 +349894 969233 +349894 992492 +349900 1.06049e+06 +349919 818350 +349919 868467 +349919 868469 +349936 802647 +349942 812422 +349942 853494 +349958 792264 +349978 783236 +349992 780914 +349994 1.17649e+06 +350025 809800 +350047 928025 +350072 809453 +350075 802011 +350081 907897 +350081 912511 +350122 857044 +350131 907225 +350133 786942 +350136 973608 +350142 852519 +350147 973353 +350153 785033 +350158 819750 +350167 818042 +350169 1.17835e+06 +350228 943811 +350242 810281 +350242 1.10697e+06 +350294 990928 +350308 766933 +350319 787950 +350322 932231 +350414 821044 +350419 896644 +350428 1.20475e+06 +350450 896217 +350456 853097 +350469 820903 +350478 856719 +350511 862697 +350522 868886 +350525 788786 +350525 831969 +350525 979361 +350525 1.18173e+06 +350531 850503 +350536 946233 +350539 933933 +350550 777467 +350553 871575 +350561 884353 +350589 1.194e+06 +350594 942525 +350644 888908 +350706 918794 +350711 797617 +350717 816500 +350725 982433 +350742 856261 +350767 806694 +350778 874397 +350800 816331 +350803 963989 +350822 942631 +350831 808925 +350833 980875 +350839 922078 +350844 1.06651e+06 +350872 973347 +350875 840347 +350886 770353 +350886 924419 +350906 806864 +350931 934483 +350950 789558 +350964 787842 +350975 987461 +350978 984353 +350989 1.20611e+06 +351036 986033 +351044 801094 +351056 830967 +351083 770444 +351097 794725 +351111 812267 +351117 1.01363e+06 +351128 918222 +351136 851381 +351161 781364 +351167 807239 +351186 1.2059e+06 +351211 815161 +351217 1.2062e+06 +351225 853439 +351228 953708 +351258 1.17985e+06 +351303 967756 +351314 794297 +351322 1.18448e+06 +351347 1.19455e+06 +351347 1.19472e+06 +351378 976578 +351392 973944 +351400 939214 +351411 848722 +351425 1.19456e+06 +351428 767706 +351428 1.2064e+06 +351436 828214 +351447 768025 +351461 966697 +351464 901844 +351483 818611 +351494 900489 +351497 949706 +351508 927439 +351508 938067 +351519 865706 +351522 1.07842e+06 +351536 781056 +351544 1.19455e+06 +351578 991750 +351586 964931 +351594 848767 +351600 926406 +351608 848578 +351619 1.06642e+06 +351644 860106 +351647 853014 +351672 946722 +351678 789731 +351697 1.0789e+06 +351700 885922 +351717 1.03724e+06 +351739 793925 +351742 846536 +351742 877378 +351744 814500 +351750 821894 +351794 806475 +351858 861122 +351864 947856 +351872 773211 +351883 982603 +351894 854858 +351894 1.14052e+06 +351903 944108 +351958 851847 +351981 1.11651e+06 +351997 870308 +352006 1.06701e+06 +352014 855192 +352017 838242 +352031 859211 +352036 1.01106e+06 +352044 898739 +352086 851269 +352092 1.18828e+06 +352097 860794 +352144 901964 +352153 998661 +352192 812058 +352219 1.01831e+06 +352225 974392 +352231 931578 +352244 907867 +352244 966703 +352247 882492 +352250 903250 +352256 803292 +352269 808433 +352303 810428 +352311 944778 +352317 916675 +352325 1.00599e+06 +352333 827344 +352336 886064 +352339 923875 +352353 815147 +352358 883906 +352361 823494 +352361 851986 +352369 974061 +352375 962414 +352378 1.06606e+06 +352381 1.18914e+06 +352386 810753 +352386 1.06667e+06 +352392 944258 +352400 858397 +352411 946197 +352422 873347 +352428 1.02428e+06 +352436 893500 +352450 813414 +352464 929364 +352472 975994 +352481 930489 +352494 1.1219e+06 +352506 917361 +352531 821972 +352536 951228 +352542 827003 +352556 793725 +352556 949214 +352561 792825 +352561 889878 +352561 912000 +352569 783525 +352578 969364 +352592 810756 +352597 804256 +352597 1.18913e+06 +352603 857361 +352606 971194 +352619 811875 +352625 775819 +352633 905711 +352678 811031 +352700 916397 +352706 861281 +352722 810483 +352747 812103 +352750 904667 +352767 991347 +352783 931336 +352800 824222 +352822 913653 +352828 1.20659e+06 +352831 863742 +352847 812842 +352861 811306 +352872 955822 +352889 811450 +352908 978119 +352911 996397 +352919 937297 +352922 815358 +352928 936344 +352950 797456 +352964 847481 +352969 940361 +352981 810161 +352983 824833 +353000 1.06551e+06 +353053 767889 +353061 786092 +353067 777883 +353083 771544 +353089 983417 +353097 915678 +353106 818589 +353111 824442 +353128 979442 +353164 811764 +353186 824611 +353194 877622 +353228 838075 +353233 845250 +353236 806561 +353236 873036 +353256 943014 +353258 896161 +353264 891494 +353267 786764 +353272 969250 +353289 817589 +353289 932528 +353339 818653 +353356 961361 +353361 941731 +353375 857042 +353394 974864 +353414 898972 +353425 779089 +353458 794172 +353464 824722 +353489 991700 +353500 802003 +353511 855678 +353544 944339 +353561 952653 +353575 780061 +353583 798947 +353589 810972 +353597 797800 +353600 819294 +353614 868397 +353619 862094 +353628 842942 +353653 1.0341e+06 +353658 1.20849e+06 +353692 819569 +353694 824931 +353714 853906 +353725 774378 +353733 1.19018e+06 +353736 832261 +353781 987817 +353786 813792 +353797 902578 +353819 785489 +353833 1.19109e+06 +353842 922156 +353842 977242 +353847 779931 +353858 943983 +353869 879953 +353878 805958 +353917 979411 +353992 788161 +354006 1.19469e+06 +354014 931142 +354019 797844 +354019 907531 +354019 974811 +354025 812025 +354025 1.08223e+06 +354058 801169 +354061 945986 +354078 786722 +354106 808431 +354117 902783 +354119 994039 +354131 787358 +354133 780711 +354175 816431 +354197 1.1902e+06 +354211 945144 +354219 992792 +354231 914558 +354244 844875 +354267 918367 +354286 794933 +354289 815017 +354294 857231 +354303 942314 +354308 834475 +354325 936153 +354325 963047 +354339 795872 +354339 1.06446e+06 +354342 806208 +354353 1.01172e+06 +354358 970911 +354364 1.00805e+06 +354367 943481 +354372 936728 +354392 886414 +354397 959817 +354406 933878 +354411 897781 +354419 974406 +354428 845931 +354428 1.20891e+06 +354447 784272 +354453 1.00271e+06 +354469 850844 +354492 867889 +354492 898150 +354494 973964 +354581 959411 +354603 947872 +354622 894019 +354639 815219 +354658 781608 +354667 856542 +354675 975161 +354686 830042 +354700 955228 +354714 934664 +354714 983553 +354725 774158 +354736 812547 +354778 942217 +354797 791806 +354817 860886 +354833 864603 +354867 808603 +354867 966847 +354869 938275 +354872 806219 +354886 829889 +354894 971633 +354894 1.2067e+06 +354900 903586 +354911 973228 +354914 920311 +354922 941375 +354939 850125 +354942 953053 +354969 779822 +354975 972686 +354983 949694 +354992 808489 +355006 940514 +355033 969025 +355042 974458 +355067 977622 +355069 787394 +355078 901469 +355083 783397 +355125 771008 +355133 845453 +355147 847903 +355147 1.06365e+06 +355150 882453 +355156 989669 +355186 976319 +355197 843636 +355225 976186 +355228 973769 +355261 987072 +355272 863336 +355281 1.08742e+06 +355289 774014 +355297 806683 +355322 979547 +355325 770328 +355328 828375 +355328 904206 +355333 829108 +355336 825286 +355361 1.00959e+06 +355364 782847 +355400 766233 +355453 779750 +355456 806111 +355464 770525 +355478 875519 +355494 985778 +355497 826503 +355508 975486 +355511 804067 +355608 975511 +355642 896464 +355642 907167 +355642 1.2108e+06 +355658 972867 +355692 805819 +355742 1.05674e+06 +355753 1.01184e+06 +355756 812119 +355778 989642 +355842 788003 +355842 881194 +355847 808103 +355869 804631 +355881 1.18491e+06 +355900 842419 +355914 924603 +355942 1.1934e+06 +355961 781244 +355978 824000 +356008 825542 +356014 844611 +356028 859197 +356056 851889 +356067 778236 +356075 958600 +356081 968208 +356092 1.18483e+06 +356111 773731 +356111 903297 +356122 804469 +356139 996711 +356139 1.06725e+06 +356144 888139 +356150 870353 +356172 878394 +356178 823214 +356203 908983 +356225 1.1767e+06 +356233 959603 +356289 821808 +356311 983169 +356328 993814 +356333 801161 +356333 825822 +356350 779333 +356356 941672 +356361 833778 +356383 912650 +356397 1.01603e+06 +356419 977461 +356442 823031 +356453 780100 +356486 956558 +356497 881267 +356497 910739 +356506 784567 +356508 883933 +356508 1.17661e+06 +356528 974778 +356578 820256 +356611 841722 +356617 971953 +356650 988828 +356678 1.01397e+06 +356697 812217 +356708 804744 +356728 895733 +356736 905072 +356744 900997 +356781 1.08151e+06 +356781 1.19228e+06 +356806 1.09052e+06 +356817 804325 +356839 820094 +356842 819919 +356869 1.05937e+06 +356914 1.00638e+06 +356919 848608 +356922 804350 +356942 970631 +356969 825608 +357006 808883 +357017 914414 +357017 968806 +357044 820361 +357047 967650 +357050 899694 +357064 812189 +357069 1.18455e+06 +357072 810758 +357078 798139 +357111 786144 +357111 890875 +357139 814222 +357142 835103 +357144 811464 +357200 791775 +357233 794625 +357258 979761 +357272 814708 +357289 814000 +357289 817794 +357292 1.18549e+06 +357306 911983 +357319 1.05151e+06 +357325 788506 +357328 843339 +357331 806772 +357333 796528 +357406 815633 +357422 905622 +357425 960700 +357436 796925 +357442 987472 +357444 1.09076e+06 +357453 816850 +357453 895297 +357472 854667 +357478 953694 +357486 966578 +357519 776703 +357547 1.18424e+06 +357561 899281 +357564 839706 +357578 816044 +357581 903222 +357603 841358 +357636 1.05932e+06 +357689 1.19246e+06 +357697 916408 +357719 786389 +357719 877839 +357739 814314 +357758 889900 +357808 783700 +357825 808875 +357847 891172 +357875 784808 +357883 776381 +357883 835544 +357894 839739 +357900 782042 +357914 787814 +357950 839319 +357964 814308 +357967 1.19107e+06 +357972 826842 +357972 842561 +357975 952503 +357981 976783 +358028 887747 +358028 965058 +358064 778636 +358083 970125 +358103 805561 +358111 768969 +358144 946283 +358147 892256 +358161 904342 +358178 798033 +358197 889158 +358203 956739 +358217 911283 +358239 772556 +358239 802536 +358242 783150 +358264 825494 +358269 1.01442e+06 +358275 839408 +358275 860717 +358303 925578 +358306 963908 +358383 894061 +358422 907042 +358425 756389 +358447 984128 +358456 863903 +358483 814961 +358506 953181 +358544 770558 +358589 1.08761e+06 +358614 979314 +358656 846850 +358656 1.01973e+06 +358667 767489 +358669 778294 +358681 835619 +358683 921175 +358708 955222 +358728 917539 +358756 893961 +358764 960608 +358778 766156 +358789 974250 +358800 901669 +358808 845086 +358825 800822 +358842 1.19271e+06 +358894 775325 +358906 903442 +358922 828292 +358922 904525 +358939 805617 +358967 775361 +359000 905819 +359028 802572 +359081 756761 +359089 926311 +359092 848781 +359100 790756 +359128 1.00382e+06 +359139 815392 +359153 820647 +359153 949697 +359175 762525 +359197 887589 +359217 811767 +359242 941883 +359250 868689 +359258 854642 +359272 899189 +359325 951411 +359339 845525 +359358 902578 +359381 777908 +359417 915483 +359419 958831 +359444 772100 +359447 960650 +359489 850269 +359494 944233 +359517 956506 +359525 975944 +359553 960086 +359556 800056 +359572 756244 +359594 953692 +359597 899719 +359606 839208 +359606 858142 +359608 782539 +359619 797625 +359625 1.19043e+06 +359669 831878 +359686 1.19291e+06 +359731 886781 +359739 970333 +359744 779658 +359758 943175 +359786 1.14832e+06 +359797 785100 +359806 889414 +359814 979108 +359819 841139 +359850 967667 +359883 966008 +359911 1.0608e+06 +359925 945678 +359939 788989 +359942 799356 +359942 941750 +359983 769464 +359986 961139 +360006 884281 +360014 940081 +360025 1.0593e+06 +360042 1.20128e+06 +360081 931864 +360083 1.19961e+06 +360103 842697 +360111 778578 +360114 886228 +360153 834150 +360156 865819 +360167 1.01824e+06 +360211 879669 +360214 803822 +360222 1.06958e+06 +360228 959681 +360317 840281 +360344 893856 +360358 894797 +360364 788236 +360381 882444 +360381 882736 +360397 1.14981e+06 +360417 901139 +360419 942469 +360444 843444 +360469 902928 +360489 777494 +360503 909750 +360508 902386 +360525 957906 +360533 873125 +360536 985881 +360583 905000 +360589 880978 +360594 919083 +360594 1.02513e+06 +360594 1.19311e+06 +360606 766094 +360625 941572 +360653 1.19016e+06 +360667 889939 +360689 794008 +360719 841333 +360725 797922 +360753 791000 +360764 888100 +360769 873878 +360775 860333 +360839 877947 +360839 898292 +360844 965833 +360861 937411 +360872 819275 +360914 793644 +360944 1.15041e+06 +360956 794381 +360958 792672 +360958 844425 +360967 811825 +360969 804194 +360981 1.19559e+06 +360989 783014 +360997 802444 +361006 870511 +361017 784583 +361019 871150 +361028 795069 +361033 841319 +361039 835528 +361047 845972 +361053 777131 +361056 795425 +361072 796589 +361075 832869 +361075 872208 +361078 876331 +361083 910972 +361092 978983 +361128 892617 +361131 794767 +361142 966989 +361156 970581 +361161 983167 +361169 867664 +361194 921358 +361197 800739 +361219 794292 +361222 786864 +361222 834925 +361275 889858 +361294 774206 +361306 824247 +361319 787569 +361325 885186 +361342 901597 +361344 806597 +361350 816778 +361350 1.11239e+06 +361397 961086 +361397 1.20359e+06 +361450 824169 +361456 1.1906e+06 +361458 811608 +361475 852683 +361481 989239 +361497 992978 +361511 955092 +361533 888006 +361536 856436 +361539 959925 +361542 837042 +361544 1.09552e+06 +361572 819783 +361583 811478 +361628 855017 +361631 818717 +361631 828311 +361661 948544 +361714 811942 +361725 859297 +361750 1.15136e+06 +361772 873397 +361778 942333 +361808 776669 +361858 953428 +361867 941286 +361869 903831 +361881 945403 +361889 957456 +361894 829586 +361900 764664 +361931 896556 +361956 840681 +361958 854486 +361961 820706 +361983 811531 +361983 1.01192e+06 +361989 1.15117e+06 +362000 865186 +362000 951675 +362022 802811 +362022 890122 +362025 911744 +362028 1.20102e+06 +362031 891908 +362031 1.19087e+06 +362061 942342 +362078 1.19346e+06 +362086 799050 +362128 1.21125e+06 +362136 886125 +362139 832950 +362164 805128 +362167 816747 +362178 841547 +362189 764642 +362211 919292 +362239 916083 +362261 926847 +362272 808336 +362294 771144 +362297 931075 +362325 807083 +362333 888244 +362336 897494 +362339 897694 +362361 900556 +362369 799797 +362381 963164 +362392 808447 +362403 802936 +362419 859519 +362419 959756 +362442 808486 +362506 837975 +362522 859517 +362553 941306 +362569 830861 +362586 831953 +362589 891917 +362614 909711 +362631 902925 +362633 894878 +362642 946928 +362650 1.01406e+06 +362675 944844 +362689 984794 +362694 958544 +362711 925353 +362739 772847 +362742 870642 +362758 998808 +362789 925969 +362803 978978 +362806 803594 +362808 835150 +362831 924939 +362842 821728 +362867 769850 +362894 972878 +362914 887081 +362928 951531 +362942 824736 +362953 801419 +362961 1.19141e+06 +362972 959911 +362972 970078 +362978 1.19206e+06 +362989 842233 +363008 1.19782e+06 +363019 762236 +363019 883267 +363047 866200 +363064 821933 +363075 975861 +363081 784069 +363100 964639 +363106 785911 +363119 877733 +363125 956158 +363133 823536 +363156 997572 +363158 914825 +363158 1.19708e+06 +363183 876947 +363200 906019 +363208 1.21243e+06 +363231 867133 +363275 1.19645e+06 +363294 783994 +363300 841839 +363303 1.19291e+06 +363314 772131 +363319 941183 +363353 934358 +363358 944606 +363361 1.02072e+06 +363378 968036 +363386 891639 +363417 783903 +363433 888503 +363486 822108 +363511 1.19419e+06 +363528 1.09617e+06 +363547 796647 +363556 856589 +363586 1.05609e+06 +363611 1.04595e+06 +363628 907536 +363644 958386 +363647 935678 +363683 960011 +363722 822258 +363728 942086 +363783 894719 +363808 848844 +363828 841200 +363828 901906 +363833 853231 +363839 925814 +363853 799597 +363864 804697 +363872 1.19217e+06 +363875 980894 +363883 864467 +363908 861672 +363911 950464 +363922 824117 +363936 789831 +363950 867794 +363956 769322 +363956 807228 +363956 978781 +363983 781556 +363992 900236 +364000 1.00802e+06 +364011 937378 +364036 814931 +364039 793364 +364053 984403 +364072 830056 +364072 1.05572e+06 +364078 905797 +364122 799672 +364142 963950 +364158 776033 +364169 1.09228e+06 +364181 826239 +364197 824767 +364203 814736 +364211 947967 +364219 944533 +364242 890569 +364247 1.21325e+06 +364253 896994 +364269 775958 +364333 1.19686e+06 +364336 993900 +364339 1.00141e+06 +364344 779122 +364356 978686 +364367 952711 +364369 772292 +364369 975853 +364392 992044 +364394 824558 +364422 770989 +364425 835997 +364442 883344 +364456 781986 +364508 775592 +364511 776797 +364517 899669 +364517 1.03184e+06 +364519 899192 +364533 1.00537e+06 +364542 835694 +364614 776544 +364639 950475 +364644 929200 +364664 799072 +364703 866514 +364708 828519 +364742 822611 +364744 818050 +364761 1.19442e+06 +364778 825933 +364797 1.21731e+06 +364850 825033 +364878 878383 +364883 797669 +364900 774417 +364933 900750 +364956 915406 +364981 845128 +364992 806075 +365003 776453 +365003 806267 +365008 888753 +365042 888742 +365050 1.01782e+06 +365053 811211 +365067 1.21443e+06 +365092 868850 +365108 1.04915e+06 +365139 1.19553e+06 +365147 946111 +365189 896125 +365211 860264 +365222 827136 +365225 939394 +365233 1.19286e+06 +365244 915381 +365289 974436 +365297 832175 +365297 873594 +365303 959233 +365331 823269 +365333 858500 +365356 954322 +365428 1.19832e+06 +365433 1.14446e+06 +365433 1.19386e+06 +365450 1.19286e+06 +365456 944850 +365461 963269 +365461 982697 +365483 824558 +365483 825619 +365486 866961 +365500 855053 +365556 824681 +365569 899664 +365619 862481 +365619 961614 +365681 896006 +365708 1.19611e+06 +365711 891861 +365736 967039 +365736 995719 +365744 851289 +365753 906039 +365769 825678 +365789 984619 +365817 865164 +365822 870656 +365822 988794 +365831 772003 +365844 824894 +365858 793953 +365864 895278 +365878 841269 +365886 793664 +365914 825736 +365922 896153 +365933 1.21834e+06 +365936 947689 +365944 943839 +365950 821889 +365953 1.01636e+06 +365958 902472 +365964 821886 +365964 1.19449e+06 +366003 1.21894e+06 +366031 924281 +366061 1.18062e+06 +366067 1.20188e+06 +366103 883147 +366111 1.21851e+06 +366117 1.19526e+06 +366136 898164 +366208 908233 +366211 932153 +366222 811511 +366244 1.19313e+06 +366283 799511 +366306 1.19678e+06 +366336 817839 +366378 825811 +366386 951539 +366408 802658 +366422 887389 +366436 932183 +366483 871664 +366503 1.1979e+06 +366506 944433 +366508 844386 +366592 1.19593e+06 +366611 809242 +366672 889933 +366675 868519 +366678 963369 +366689 899686 +366692 978008 +366722 939408 +366769 938686 +366775 769228 +366778 1.21654e+06 +366783 973097 +366828 1.01481e+06 +366844 1.21801e+06 +366850 931197 +366858 775428 +366889 831111 +366906 975561 +366908 851347 +366914 798728 +366936 949628 +366942 913992 +366986 789017 +366989 844775 +367000 781000 +367000 799389 +367006 956378 +367022 856917 +367039 1.05594e+06 +367069 970853 +367081 1.19555e+06 +367097 819775 +367097 998931 +367106 1.19758e+06 +367111 1.07984e+06 +367133 788289 +367150 799156 +367161 770683 +367161 809789 +367222 865772 +367233 844706 +367236 1.20059e+06 +367264 781292 +367278 1.10254e+06 +367281 765839 +367281 918522 +367281 1.08218e+06 +367286 809992 +367294 1.02513e+06 +367342 1.08359e+06 +367417 886367 +367417 943989 +367433 841597 +367472 959806 +367478 1.19771e+06 +367511 948472 +367533 861906 +367536 1.20381e+06 +367544 983564 +367569 903928 +367575 778472 +367583 830272 +367592 799906 +367592 895867 +367619 836950 +367625 807350 +367628 940558 +367647 882953 +367658 789286 +367658 1.21757e+06 +367758 873556 +367786 956392 +367797 893856 +367819 966608 +367856 1.08686e+06 +367892 815822 +367903 853706 +367911 817714 +367958 899578 +367958 959353 +367983 816825 +367992 784586 +368044 972825 +368050 986661 +368069 977333 +368083 767444 +368097 1.02255e+06 +368100 871542 +368125 898614 +368142 774686 +368161 1.00519e+06 +368172 939206 +368222 1.07992e+06 +368253 1.19702e+06 +368256 793983 +368347 815150 +368353 762986 +368356 996300 +368406 763106 +368414 946108 +368431 833219 +368453 868872 +368456 1.21537e+06 +368467 762856 +368472 896853 +368486 832192 +368519 833542 +368525 1.21401e+06 +368528 759783 +368572 883503 +368589 1.20455e+06 +368600 1.01213e+06 +368642 867103 +368650 878353 +368656 874886 +368658 831906 +368664 838889 +368672 814236 +368689 943678 +368706 890097 +368736 950956 +368744 948772 +368767 895878 +368817 827472 +368822 970531 +368833 979217 +368858 899292 +368900 822797 +368914 895383 +368936 812761 +368942 817769 +368975 959258 +369008 820803 +369031 1.06579e+06 +369033 1.04439e+06 +369042 1.21748e+06 +369053 935714 +369067 827819 +369069 1.00539e+06 +369086 1.11473e+06 +369094 894525 +369103 1.21756e+06 +369172 948794 +369192 942550 +369208 893506 +369289 939275 +369333 826292 +369333 948728 +369336 1.06998e+06 +369353 1.21772e+06 +369367 1.21864e+06 +369439 824642 +369444 940042 +369456 1.12526e+06 +369483 810850 +369486 840969 +369497 901583 +369519 926603 +369536 793592 +369542 1.01065e+06 +369544 947878 +369606 840933 +369608 1.21963e+06 +369614 1.2006e+06 +369619 781253 +369639 937956 +369647 829486 +369647 890892 +369661 829225 +369683 1.21899e+06 +369708 937178 +369742 1.2203e+06 +369753 1.21952e+06 +369758 825758 +369772 1.21898e+06 +369781 829886 +369783 822978 +369786 764283 +369800 856122 +369847 850631 +369861 1.20626e+06 +369869 948306 +369881 1.21956e+06 +369889 846000 +369903 864436 +369911 914925 +369922 919697 +369928 786014 +369944 956200 +369947 782275 +369953 917036 +369953 943158 +369956 910144 +369958 859119 +369975 798922 +370011 930814 +370031 936372 +370053 891764 +370058 1.21567e+06 +370081 1.0189e+06 +370097 913233 +370114 959350 +370161 819744 +370172 984850 +370175 885314 +370208 932058 +370236 898197 +370297 763456 +370303 934728 +370322 976067 +370333 883500 +370358 770956 +370369 944967 +370372 950897 +370372 956161 +370403 784836 +370406 944725 +370431 1.00921e+06 +370433 932942 +370436 896103 +370475 1.12526e+06 +370478 807800 +370478 874850 +370500 789444 +370511 1.22014e+06 +370514 1.22072e+06 +370517 890467 +370525 862078 +370561 850886 +370564 786386 +370583 1.20849e+06 +370589 881325 +370597 953592 +370619 970381 +370625 817519 +370667 766767 +370675 935519 +370692 941164 +370758 946394 +370767 889736 +370767 944592 +370803 779975 +370833 886000 +370836 944133 +370842 945131 +370850 896553 +370850 1.21609e+06 +370853 891625 +370869 818553 +370892 1.22085e+06 +370919 846042 +370925 792967 +370931 817939 +370939 860464 +370944 880803 +371028 853064 +371036 938183 +371042 965000 +371042 1.13583e+06 +371044 899106 +371056 806856 +371067 925806 +371092 878819 +371117 792858 +371142 891978 +371147 815197 +371150 1.07632e+06 +371156 933700 +371169 930556 +371183 828269 +371200 934800 +371222 763461 +371231 1.20259e+06 +371236 826014 +371236 886303 +371239 921011 +371261 1.22121e+06 +371267 961867 +371289 840833 +371297 804092 +371306 922633 +371306 1.13508e+06 +371306 1.21653e+06 +371331 1.13653e+06 +371367 859569 +371389 884033 +371425 945106 +371464 927686 +371464 944628 +371492 944428 +371500 824561 +371506 913575 +371511 887319 +371533 980308 +371536 837619 +371544 906956 +371575 929406 +371658 872475 +371672 876925 +371675 951097 +371686 1.13679e+06 +371692 948439 +371694 1.045e+06 +371731 781236 +371733 826311 +371742 1.05937e+06 +371753 1.01349e+06 +371753 1.13289e+06 +371764 943100 +371767 945653 +371769 846358 +371792 916567 +371794 859069 +371800 896550 +371836 873836 +371875 782017 +371883 944700 +371886 997653 +371903 952969 +371908 874528 +371967 897361 +372008 1.05423e+06 +372011 871789 +372011 1.13269e+06 +372014 994836 +372064 888447 +372075 826719 +372081 880567 +372147 938397 +372153 932981 +372167 895244 +372175 870489 +372197 895089 +372242 957081 +372256 866836 +372256 1.07598e+06 +372267 1.21974e+06 +372275 800131 +372278 774022 +372303 774778 +372322 820992 +372350 892700 +372364 1.21991e+06 +372367 874753 +372369 871592 +372397 969953 +372400 774303 +372414 982264 +372417 909686 +372422 784600 +372494 831933 +372508 925103 +372525 812714 +372539 764972 +372578 1.20998e+06 +372583 1.05904e+06 +372608 854989 +372639 1.22022e+06 +372653 973714 +372658 977653 +372678 760178 +372683 931169 +372689 993264 +372694 1.07009e+06 +372697 812225 +372703 955522 +372706 767078 +372708 799417 +372722 858911 +372742 875119 +372742 971686 +372750 1.0596e+06 +372753 1.07879e+06 +372769 891833 +372775 948247 +372778 820992 +372808 798972 +372811 985800 +372856 1.0034e+06 +372867 980256 +372872 1.21949e+06 +372894 759717 +372908 1.20318e+06 +372936 889753 +372939 871233 +372992 862286 +373003 899811 +373011 816911 +373019 783922 +373022 1.20482e+06 +373039 823511 +373050 934283 +373058 895181 +373058 899703 +373100 947717 +373125 812600 +373128 967539 +373139 1.2102e+06 +373153 935850 +373194 806392 +373206 792578 +373231 1.22031e+06 +373250 813119 +373261 919558 +373264 807353 +373281 874989 +373281 1.19648e+06 +373314 808114 +373325 827211 +373328 880811 +373339 869961 +373342 795233 +373353 1.21894e+06 +373358 814367 +373358 829806 +373361 943011 +373386 929069 +373403 952608 +373411 799433 +373433 853419 +373442 867547 +373450 1.08289e+06 +373458 948086 +373475 1.21268e+06 +373489 1.08585e+06 +373539 812528 +373567 774419 +373569 788256 +373603 963036 +373611 891658 +373636 815503 +373636 1.18394e+06 +373661 811028 +373661 1.21826e+06 +373672 884864 +373689 1.22035e+06 +373783 798072 +373797 1.22136e+06 +373819 869225 +373822 808228 +373822 896661 +373839 931511 +373842 1.22234e+06 +373856 939531 +373856 1.00195e+06 +373861 1.02278e+06 +373869 1.20722e+06 +373875 971139 +373894 1.20612e+06 +373903 976419 +373931 940936 +373939 972808 +373972 807994 +374019 868758 +374028 1.04653e+06 +374042 844139 +374083 1.02614e+06 +374108 947047 +374111 935494 +374136 791425 +374153 888978 +374153 938408 +374158 872656 +374183 956800 +374200 812433 +374208 814403 +374217 774378 +374222 810164 +374236 883461 +374242 864883 +374256 815069 +374283 1.21906e+06 +374300 1.22253e+06 +374303 839981 +374308 791233 +374322 1.20778e+06 +374328 815847 +374372 1.01972e+06 +374419 1.22142e+06 +374433 1.00015e+06 +374450 828053 +374450 871439 +374511 869092 +374517 892681 +374539 1.22181e+06 +374556 912094 +374556 946889 +374603 892469 +374614 1.22197e+06 +374636 1.22428e+06 +374644 818139 +374644 845067 +374650 858933 +374689 1.2214e+06 +374694 1.05869e+06 +374703 962633 +374717 1.21129e+06 +374739 1.08504e+06 +374744 972436 +374747 758586 +374767 878200 +374783 816536 +374792 825189 +374800 862939 +374817 1.00843e+06 +374850 1.19965e+06 +374861 1.22233e+06 +374931 871319 +374931 954700 +374947 1.20846e+06 +374950 942764 +374953 862214 +374994 918569 +375019 928208 +375028 975042 +375028 1.22468e+06 +375050 1.05007e+06 +375111 948378 +375178 876903 +375203 1.22275e+06 +375239 956611 +375264 1.20796e+06 +375272 796800 +375275 1.22512e+06 +375297 1.22039e+06 +375311 846619 +375314 767967 +375314 892533 +375317 758233 +375339 958264 +375389 872583 +375422 1.22515e+06 +375428 784575 +375439 947000 +375456 972686 +375458 773281 +375467 879839 +375472 996339 +375536 774606 +375544 889722 +375547 763372 +375569 946217 +375581 945197 +375583 971347 +375586 1.2227e+06 +375597 902939 +375631 1.22324e+06 +375658 973539 +375686 842964 +375697 852528 +375717 837069 +375728 827528 +375739 857400 +375742 1.22378e+06 +375792 1.06148e+06 +375808 774072 +375814 1.01355e+06 +375831 813806 +375831 815372 +375842 1.22365e+06 +375850 790517 +375867 847939 +375881 906289 +375900 775567 +375914 805439 +375950 1.20957e+06 +375958 816361 +375958 1.00443e+06 +375969 1.20865e+06 +375972 906272 +375986 1.22386e+06 +376028 992922 +376036 774917 +376069 875286 +376075 774772 +376133 779050 +376142 818667 +376144 934103 +376150 1.14511e+06 +376194 845781 +376194 888367 +376194 991061 +376211 906403 +376219 821633 +376242 1.0478e+06 +376242 1.09478e+06 +376264 894978 +376300 977822 +376306 1.2241e+06 +376339 794506 +376353 854008 +376361 867175 +376375 765747 +376414 1.20759e+06 +376439 930922 +376439 984308 +376439 987372 +376453 836489 +376456 847722 +376456 915358 +376458 981133 +376486 1.18971e+06 +376547 1.22407e+06 +376578 855911 +376583 976833 +376597 975750 +376614 764194 +376625 1.21874e+06 +376656 827717 +376658 775067 +376719 822842 +376739 808894 +376742 822775 +376775 1.13061e+06 +376789 812106 +376789 1.06353e+06 +376792 954569 +376806 926636 +376808 1.22399e+06 +376811 1.22123e+06 +376819 1.21767e+06 +376831 868714 +376833 879167 +376844 839531 +376853 852222 +376867 979764 +376881 972633 +376903 967819 +376908 757164 +376919 816242 +376922 973372 +376939 858592 +376942 1.22085e+06 +376947 1.22113e+06 +376989 937958 +377006 839739 +377022 1.21935e+06 +377033 822811 +377075 812508 +377103 763800 +377106 821842 +377117 757494 +377131 881867 +377139 971361 +377153 911350 +377194 756658 +377203 1.22526e+06 +377242 898611 +377250 1.22155e+06 +377258 806422 +377272 892167 +377306 818381 +377306 889331 +377339 883433 +377342 793542 +377347 812997 +377361 1.20934e+06 +377383 885406 +377397 818778 +377397 1.21424e+06 +377406 812308 +377417 1.21123e+06 +377431 811231 +377433 877039 +377478 842947 +377497 804631 +377519 890678 +377525 830689 +377528 1.00017e+06 +377531 1.06108e+06 +377533 847667 +377583 812128 +377589 774803 +377600 890772 +377622 848433 +377644 893350 +377661 1.08905e+06 +377667 1.20846e+06 +377692 906247 +377703 1.11601e+06 +377708 812086 +377733 1.13024e+06 +377739 890264 +377742 871133 +377750 1.22418e+06 +377753 879306 +377781 811883 +377792 964669 +377792 975361 +377800 864606 +377800 980194 +377800 1.21977e+06 +377806 804572 +377808 904217 +377814 891192 +377819 756539 +377831 812661 +377839 794431 +377889 971083 +377906 976292 +377931 819878 +377933 799942 +377944 935778 +377964 802978 +377975 797914 +377975 969994 +377975 1.20996e+06 +377975 1.21215e+06 +377992 882611 +378000 973181 +378017 804458 +378031 890275 +378044 1.2227e+06 +378067 1.00348e+06 +378092 854669 +378100 859814 +378106 954367 +378119 1.07664e+06 +378133 820247 +378136 884381 +378144 828072 +378158 811525 +378161 798247 +378172 968619 +378175 892278 +378206 889275 +378217 1.21999e+06 +378228 1.12435e+06 +378228 1.21276e+06 +378239 962889 +378242 820597 +378244 1.22231e+06 +378261 759919 +378286 922006 +378314 1.22284e+06 +378331 891428 +378333 866328 +378344 857319 +378347 973731 +378361 811350 +378361 875900 +378364 812019 +378367 905328 +378392 943544 +378397 947081 +378403 859492 +378406 886092 +378422 1.12827e+06 +378436 824094 +378456 838583 +378486 819936 +378492 1.06926e+06 +378500 997564 +378503 904986 +378503 1.22031e+06 +378511 905206 +378567 924050 +378589 808544 +378592 839186 +378592 1.22484e+06 +378619 846617 +378667 819867 +378672 905931 +378686 976647 +378714 1.09342e+06 +378717 1.22272e+06 +378728 905278 +378736 1.22456e+06 +378769 891144 +378772 1.22179e+06 +378803 862839 +378806 845731 +378811 957331 +378831 870494 +378858 1.22117e+06 +378869 1.22297e+06 +378883 894947 +378967 981783 +378978 889314 +378989 977825 +378994 890519 +379000 867550 +379061 1.22544e+06 +379064 1.22064e+06 +379086 881292 +379094 1.22685e+06 +379100 892358 +379103 853167 +379106 1.22279e+06 +379114 867444 +379136 898219 +379142 919025 +379161 951700 +379167 974222 +379169 952989 +379175 887622 +379214 832597 +379231 905553 +379231 994094 +379236 953458 +379244 953997 +379253 768594 +379256 1.22526e+06 +379331 753792 +379358 1.22347e+06 +379361 992522 +379364 907878 +379369 859917 +379369 869022 +379375 1.07812e+06 +379389 970194 +379403 918808 +379406 1.01254e+06 +379444 874053 +379481 1.2206e+06 +379489 922636 +379508 836258 +379514 867678 +379514 917711 +379533 1.20422e+06 +379578 1.2129e+06 +379586 767583 +379622 986003 +379622 1.22344e+06 +379631 806897 +379647 971472 +379681 913547 +379686 807672 +379717 1.00872e+06 +379725 890533 +379736 820175 +379736 838419 +379736 1.21694e+06 +379736 1.2253e+06 +379747 758342 +379747 815292 +379747 875558 +379747 1.22561e+06 +379772 1.22294e+06 +379781 1.2203e+06 +379797 1.01133e+06 +379806 1.01752e+06 +379811 883292 +379831 890161 +379833 758542 +379839 895894 +379842 1.20381e+06 +379850 1.03543e+06 +379861 1.00989e+06 +379872 1.22588e+06 +379883 857158 +379900 841797 +379917 920936 +379942 838878 +379953 867978 +379967 889200 +379969 1.03531e+06 +379975 1.21711e+06 +379978 1.20269e+06 +379989 861694 +379994 859436 +380014 975083 +380044 1.22298e+06 +380050 1.21805e+06 +380072 896583 +380081 927444 +380128 1.22644e+06 +380144 1.03628e+06 +380147 870364 +380150 1.21639e+06 +380153 890425 +380164 896186 +380172 1.22288e+06 +380228 1.07671e+06 +380239 976694 +380250 780044 +380269 1.21936e+06 +380281 979400 +380281 1.21884e+06 +380292 784769 +380300 790339 +380317 853425 +380331 1.22266e+06 +380372 848967 +380397 1.20232e+06 +380467 937042 +380467 973447 +380492 872742 +380494 773469 +380494 1.22158e+06 +380500 855458 +380522 1.02122e+06 +380525 847300 +380528 811042 +380564 839433 +380608 979294 +380628 914033 +380633 785028 +380639 1.0231e+06 +380667 1.03222e+06 +380669 818194 +380672 1.17229e+06 +380683 788897 +380694 787008 +380722 973453 +380756 755683 +380786 793833 +380803 893819 +380808 818342 +380831 900958 +380839 956342 +380844 998931 +380864 831264 +380872 1.0262e+06 +380875 1.06094e+06 +380903 899383 +380903 922925 +380908 881586 +380917 890503 +380933 885356 +380989 813242 +380992 875789 +380994 883375 +381042 1.22256e+06 +381050 857589 +381075 1.22569e+06 +381089 788578 +381111 858703 +381142 826033 +381161 825958 +381169 784419 +381200 869142 +381231 897017 +381236 857197 +381292 1.04023e+06 +381297 879350 +381303 1.21271e+06 +381344 977697 +381356 961356 +381361 810997 +381372 781881 +381375 1.20459e+06 +381378 892300 +381383 974311 +381400 937267 +381411 856878 +381428 948133 +381450 841114 +381472 980833 +381494 790719 +381503 926178 +381506 812875 +381522 1.21242e+06 +381542 1.213e+06 +381547 912439 +381558 1.2169e+06 +381597 855878 +381597 874483 +381600 856597 +381617 880653 +381619 834289 +381619 1.21611e+06 +381636 1.21149e+06 +381683 811950 +381689 869900 +381694 971064 +381700 877831 +381769 753931 +381778 947111 +381783 857097 +381803 813286 +381806 990983 +381811 813072 +381864 896056 +381867 919469 +381869 813656 +381875 877103 +381906 940292 +381942 855644 +381944 957425 +381950 856519 +381961 872967 +381961 1.20679e+06 +381969 856633 +381981 886844 +382000 858228 +382008 848733 +382019 790086 +382028 756928 +382031 975189 +382039 857253 +382050 875742 +382081 911603 +382097 842531 +382100 813842 +382100 982067 +382117 899942 +382119 852236 +382119 861219 +382119 896825 +382125 857403 +382142 856139 +382142 1.12923e+06 +382153 814247 +382181 814431 +382181 1.03756e+06 +382183 1.08568e+06 +382206 903958 +382211 903789 +382214 824425 +382225 853553 +382233 800947 +382239 868622 +382247 805333 +382289 856775 +382319 815378 +382319 977731 +382322 905628 +382325 1.22636e+06 +382369 859858 +382383 1.22039e+06 +382403 855242 +382431 933817 +382444 969278 +382453 781111 +382453 815672 +382456 870361 +382494 1.22039e+06 +382500 897500 +382511 875811 +382522 855922 +382542 857594 +382544 769639 +382544 1.04609e+06 +382547 856314 +382547 1.21299e+06 +382567 856017 +382575 879936 +382586 943303 +382614 856292 +382667 764542 +382667 855331 +382672 788261 +382678 856717 +382683 903800 +382694 1.08547e+06 +382717 846864 +382719 876878 +382722 855836 +382731 856231 +382739 856344 +382750 856150 +382769 1.1264e+06 +382786 821031 +382794 856500 +382806 952417 +382811 808528 +382825 855744 +382833 855911 +382833 903950 +382856 821958 +382856 858242 +382858 917203 +382911 766361 +382919 1.22457e+06 +382944 903158 +382972 856033 +382972 1.22284e+06 +382978 1.22491e+06 +382989 869550 +383000 831742 +383003 765078 +383017 916328 +383019 841475 +383028 855961 +383050 899942 +383056 856964 +383083 959556 +383106 854875 +383119 840275 +383139 1.22481e+06 +383150 919225 +383167 866958 +383172 889031 +383175 815211 +383219 756206 +383225 752181 +383239 774686 +383239 1.21821e+06 +383264 898769 +383269 1.22706e+06 +383294 891908 +383306 806533 +383308 887258 +383322 874453 +383325 829486 +383336 856536 +383344 864642 +383358 901497 +383364 750853 +383386 873450 +383397 1.227e+06 +383422 862761 +383436 893806 +383450 856156 +383450 982014 +383453 885878 +383456 915014 +383483 925814 +383483 970169 +383489 1.20773e+06 +383497 816328 +383500 947611 +383517 859417 +383519 972042 +383528 1.20932e+06 +383550 983492 +383553 875675 +383556 985806 +383567 1.21987e+06 +383606 755997 +383606 817375 +383642 1.22523e+06 +383644 987644 +383683 816997 +383700 851806 +383708 976639 +383722 965425 +383756 863447 +383775 880561 +383819 789769 +383819 975372 +383822 872128 +383861 974278 +383903 842942 +383903 1.05118e+06 +383908 933344 +383911 753489 +383914 869311 +383931 1.20801e+06 +383939 956028 +383953 754133 +383964 825589 +383969 1.1301e+06 +383975 943514 +383981 857550 +383981 980117 +383989 825783 +383997 913306 +384000 1.05217e+06 +384017 1.2236e+06 +384028 942536 +384039 961814 +384047 826006 +384069 875856 +384075 853789 +384078 786239 +384078 861100 +384086 899919 +384089 1.21371e+06 +384094 805581 +384094 822947 +384108 877614 +384147 789389 +384147 818442 +384167 958528 +384178 825864 +384192 824453 +384200 756881 +384200 820556 +384222 837339 +384275 899136 +384278 824572 +384292 1.05219e+06 +384314 928408 +384325 820203 +384328 903775 +384333 851697 +384342 895503 +384344 821325 +384364 1.22869e+06 +384369 823772 +384392 891628 +384406 1.22713e+06 +384408 929917 +384417 892742 +384428 814806 +384436 902011 +384456 910056 +384494 788692 +384528 999061 +384531 856703 +384558 755778 +384564 755775 +384597 940006 +384600 932025 +384603 752211 +384603 810853 +384614 900917 +384656 1.23008e+06 +384697 1.01752e+06 +384722 818144 +384731 779969 +384783 826381 +384783 1.07876e+06 +384794 946083 +384797 1.01358e+06 +384806 1.02781e+06 +384808 767783 +384817 943542 +384819 907414 +384819 1.00467e+06 +384819 1.20844e+06 +384825 1.00907e+06 +384850 786253 +384858 918503 +384886 813483 +384889 921742 +384897 766825 +384903 816475 +384903 897931 +384903 904869 +384919 872786 +384925 826903 +384961 1.21408e+06 +384972 949503 +385019 1.22995e+06 +385025 906278 +385033 826472 +385069 962617 +385086 906025 +385089 891406 +385094 818400 +385131 904358 +385158 884375 +385161 902103 +385172 752353 +385172 826978 +385181 987778 +385200 899839 +385208 880047 +385222 772939 +385225 827172 +385247 1.18624e+06 +385250 891333 +385250 985333 +385250 1.2197e+06 +385267 877097 +385314 993083 +385322 935219 +385325 767842 +385333 902869 +385339 899889 +385347 1.05998e+06 +385364 848419 +385364 859286 +385367 826831 +385369 903797 +385375 819325 +385386 903350 +385389 904072 +385400 827286 +385403 765847 +385411 902800 +385417 857678 +385419 902328 +385425 757197 +385433 896122 +385450 1.21739e+06 +385458 1.06925e+06 +385467 773369 +385489 866200 +385492 904925 +385503 827781 +385506 903331 +385531 903094 +385536 895383 +385542 903450 +385556 978333 +385561 864683 +385564 755717 +385569 903817 +385581 910119 +385594 835761 +385611 941911 +385614 898972 +385631 760792 +385672 866283 +385675 773283 +385708 901900 +385722 948789 +385731 828303 +385733 1.09549e+06 +385736 976742 +385753 771558 +385753 785028 +385758 1.22449e+06 +385767 921733 +385789 1.22579e+06 +385806 1.21529e+06 +385817 1.21493e+06 +385831 936944 +385833 901250 +385833 904067 +385869 984108 +385892 1.21302e+06 +385897 901200 +385903 769406 +385903 903367 +385908 822831 +385914 752917 +385922 899111 +385925 853178 +385925 903572 +385925 905869 +385950 905461 +385969 905092 +385992 833189 +386000 771625 +386008 904328 +386039 898072 +386050 1.07982e+06 +386056 894358 +386056 896819 +386067 896075 +386067 1.21266e+06 +386072 903833 +386075 903783 +386083 912189 +386086 771408 +386103 893725 +386106 895269 +386106 1.22868e+06 +386122 904633 +386125 903244 +386131 787992 +386153 873544 +386156 891142 +386156 952675 +386158 838086 +386172 890522 +386172 1.21327e+06 +386175 819819 +386175 903492 +386183 905892 +386194 946806 +386242 758547 +386244 769394 +386269 770733 +386269 889456 +386275 925664 +386283 910575 +386286 903194 +386300 1.1212e+06 +386339 958256 +386350 900928 +386356 756103 +386356 904150 +386367 900256 +386369 773114 +386381 845606 +386389 787742 +386403 921222 +386411 756114 +386411 837444 +386425 903236 +386450 828489 +386478 786717 +386497 900931 +386497 903806 +386514 862611 +386533 943486 +386556 837611 +386556 927797 +386581 772500 +386592 871728 +386608 904225 +386611 964917 +386617 864264 +386636 873094 +386644 807100 +386653 784597 +386653 903758 +386658 1.20925e+06 +386664 867911 +386675 770286 +386689 884856 +386703 899844 +386711 969422 +386722 901697 +386728 902992 +386731 807750 +386753 917694 +386764 1.21335e+06 +386767 843303 +386769 869142 +386772 875286 +386772 1.23134e+06 +386781 1.21175e+06 +386786 1.21225e+06 +386800 930928 +386808 851794 +386819 845900 +386822 1.047e+06 +386825 840658 +386825 901569 +386828 1.12148e+06 +386833 902839 +386833 903078 +386858 903239 +386858 1.21371e+06 +386861 765350 +386864 761719 +386886 883542 +386900 753858 +386900 903425 +386906 902872 +386911 1.21448e+06 +386922 1.22016e+06 +386931 902822 +386942 757739 +386947 902783 +386947 1.20814e+06 +386953 903139 +386967 768481 +386975 882236 +387000 902922 +387008 903497 +387011 903622 +387014 901486 +387019 903169 +387025 903433 +387042 772281 +387042 902817 +387042 914372 +387044 932281 +387058 877600 +387072 765314 +387072 1.2128e+06 +387078 770864 +387083 902928 +387106 902981 +387111 981569 +387131 904297 +387133 777956 +387142 854736 +387142 939911 +387144 903672 +387169 878614 +387175 902656 +387183 902922 +387183 950814 +387192 902603 +387192 944583 +387203 920911 +387208 750764 +387208 829583 +387208 902747 +387236 853694 +387236 899558 +387239 770100 +387253 902967 +387264 903586 +387275 903108 +387292 876817 +387292 898831 +387297 1.20798e+06 +387303 828556 +387306 982278 +387308 880853 +387314 799703 +387317 829978 +387317 900803 +387328 763939 +387358 853800 +387358 903639 +387383 771853 +387394 896711 +387400 903264 +387403 902264 +387422 1.08068e+06 +387425 756047 +387431 948253 +387442 903061 +387456 838450 +387458 786425 +387467 1.05178e+06 +387469 902400 +387475 770833 +387478 850672 +387483 899831 +387494 902856 +387508 774756 +387517 769789 +387522 829369 +387544 903311 +387547 828689 +387553 890953 +387553 950022 +387583 830292 +387583 858081 +387594 874156 +387614 1.20586e+06 +387628 937358 +387647 903136 +387647 950078 +387650 768986 +387650 935564 +387714 903708 +387717 840058 +387722 885025 +387725 772214 +387725 1.12083e+06 +387733 888467 +387742 760767 +387742 873078 +387744 751397 +387744 922569 +387750 951861 +387764 765556 +387775 753103 +387800 895981 +387806 955569 +387817 957383 +387819 771467 +387828 846053 +387833 849017 +387839 774700 +387861 829792 +387864 843697 +387864 897775 +387875 942692 +387878 902158 +387892 903225 +387908 1.21235e+06 +387931 774481 +387933 772719 +387933 902672 +387944 835453 +387956 967356 +387997 1.07719e+06 +388006 858417 +388019 813511 +388019 944525 +388033 769900 +388039 769069 +388042 772050 +388047 770472 +388061 871522 +388069 755917 +388072 753972 +388094 769983 +388097 822025 +388106 906997 +388108 949269 +388114 899531 +388114 908528 +388114 911414 +388119 945317 +388133 827269 +388139 769458 +388158 767500 +388183 771436 +388186 817108 +388186 956889 +388189 769989 +388208 785661 +388214 1.02353e+06 +388214 1.21192e+06 +388250 861700 +388250 984750 +388275 910200 +388278 895400 +388283 1.0797e+06 +388294 900628 +388300 768917 +388303 771967 +388328 769597 +388333 769519 +388336 821383 +388339 1.04821e+06 +388342 887722 +388389 774278 +388389 840964 +388403 976111 +388417 765125 +388422 1.06131e+06 +388428 869914 +388444 821372 +388450 768753 +388461 773067 +388467 919478 +388483 900761 +388517 943436 +388528 991472 +388533 913058 +388536 772597 +388561 806550 +388575 768897 +388589 961089 +388597 1.04917e+06 +388611 864872 +388611 900975 +388683 1.07591e+06 +388689 1.17921e+06 +388697 1.06987e+06 +388703 769214 +388711 874414 +388719 771556 +388747 929114 +388783 870858 +388789 860419 +388792 993264 +388794 823806 +388794 829969 +388803 901111 +388808 773011 +388814 948189 +388844 758275 +388850 769161 +388858 945328 +388875 765122 +388878 900847 +388883 897314 +388889 898453 +388906 901842 +388917 1.21292e+06 +388922 894131 +388933 772219 +388942 774314 +388950 770367 +388950 772119 +388953 988594 +388961 769069 +388964 871867 +388967 1.21076e+06 +388975 768306 +388978 1.01752e+06 +388983 900067 +389008 769158 +389008 865253 +389011 772656 +389017 1.07926e+06 +389028 971167 +389061 958158 +389092 900406 +389103 914481 +389106 1.22609e+06 +389125 754283 +389128 772011 +389144 900858 +389172 972136 +389178 839833 +389181 781947 +389186 772314 +389194 973708 +389206 886614 +389208 768719 +389222 1.11933e+06 +389231 942439 +389233 810961 +389236 755781 +389236 768803 +389250 892689 +389258 798469 +389281 769161 +389292 768619 +389314 898389 +389331 769461 +389339 768969 +389342 771778 +389342 808378 +389350 749064 +389350 1.05016e+06 +389378 764603 +389381 769486 +389381 995603 +389386 749422 +389392 769342 +389400 764953 +389414 769653 +389419 835725 +389431 768925 +389431 769569 +389431 845442 +389433 950983 +389453 769519 +389458 846806 +389458 1.1997e+06 +389467 769314 +389478 758847 +389481 817611 +389486 842800 +389489 834058 +389494 848539 +389517 923339 +389519 765783 +389536 947333 +389558 769458 +389561 903597 +389578 1.11859e+06 +389581 762106 +389592 858903 +389592 989683 +389606 890936 +389636 769911 +389636 934147 +389658 770964 +389667 946167 +389683 874056 +389686 773414 +389686 777358 +389689 1.12323e+06 +389694 773864 +389697 768803 +389700 904314 +389703 769422 +389711 770767 +389711 819144 +389717 952350 +389722 970222 +389736 758053 +389736 927431 +389747 748339 +389775 915047 +389778 770078 +389781 1.22838e+06 +389783 764925 +389786 799497 +389792 949683 +389794 765308 +389794 909806 +389806 749083 +389806 769372 +389806 771006 +389819 749583 +389822 946706 +389833 935683 +389858 1.19162e+06 +389864 819736 +389886 769817 +389886 783589 +389892 870822 +389906 770264 +389908 881625 +389917 748153 +389925 791242 +389939 769108 +389939 802322 +389939 1.05056e+06 +389953 1.10161e+06 +389958 889528 +389972 907383 +389975 819742 +389975 844964 +389981 772886 +389989 846267 +389989 895736 +389992 939533 +390006 747997 +390011 1.21021e+06 +390017 766878 +390017 820489 +390019 879089 +390031 769722 +390036 774008 +390036 876128 +390039 819892 +390044 768758 +390053 877392 +390061 856236 +390061 1.11861e+06 +390067 767794 +390078 838086 +390086 944633 +390089 754661 +390100 1.21422e+06 +390122 897911 +390125 846047 +390131 1.047e+06 +390144 748819 +390150 941983 +390167 846008 +390167 962889 +390169 942814 +390172 927372 +390175 1.22057e+06 +390178 850589 +390178 946167 +390181 918969 +390203 1.20817e+06 +390217 820292 +390217 844400 +390222 946317 +390236 946933 +390242 1.22674e+06 +390250 799358 +390250 998792 +390253 844175 +390253 885697 +390256 770767 +390264 769744 +390272 845850 +390275 820339 +390275 839197 +390278 946556 +390283 842178 +390286 749389 +390286 968311 +390294 895242 +390297 843664 +390303 770728 +390306 975939 +390319 765031 +390331 844519 +390344 843903 +390347 769078 +390347 871658 +390356 845692 +390356 1.04297e+06 +390375 946319 +390381 770933 +390383 804675 +390397 769933 +390397 901406 +390406 946167 +390417 760667 +390428 899517 +390431 1.08552e+06 +390431 1.22915e+06 +390444 953944 +390453 821306 +390483 956778 +390508 747583 +390514 845817 +390517 845342 +390536 765694 +390542 840531 +390561 985361 +390569 849014 +390575 769361 +390594 845475 +390597 948833 +390611 948194 +390619 883797 +390619 887481 +390622 789697 +390633 813953 +390639 1.0855e+06 +390644 1.09181e+06 +390681 830144 +390694 872600 +390694 1.00232e+06 +390703 765456 +390708 898561 +390714 845322 +390719 844728 +390719 852519 +390719 915700 +390722 897272 +390725 937169 +390750 844472 +390756 770022 +390758 953931 +390761 769581 +390769 841769 +390775 846031 +390794 770733 +390825 748242 +390833 782183 +390836 845086 +390839 767006 +390839 771531 +390892 893906 +390908 848500 +390911 944153 +390914 844958 +390917 1.04872e+06 +390919 768181 +390919 1.08448e+06 +390925 845475 +390928 846128 +390928 898039 +390936 1.11132e+06 +390953 874058 +390956 1.21551e+06 +390964 796811 +390992 768486 +390997 945783 +391008 1.20952e+06 +391011 747181 +391042 958583 +391064 844789 +391069 764853 +391072 765714 +391081 769981 +391094 876564 +391097 944444 +391097 950875 +391103 1.0835e+06 +391111 769328 +391111 967058 +391128 844728 +391133 755422 +391133 850881 +391136 826114 +391142 946272 +391156 775639 +391175 900442 +391178 772528 +391181 755592 +391200 885433 +391200 903283 +391211 846064 +391211 851314 +391219 977064 +391222 1.04917e+06 +391231 931967 +391233 825331 +391244 843617 +391247 852892 +391250 869794 +391253 1.11818e+06 +391278 1.2155e+06 +391297 898194 +391300 945619 +391308 894919 +391308 1.23165e+06 +391317 755253 +391319 755328 +391325 941983 +391331 884719 +391333 1.00863e+06 +391342 939825 +391350 858133 +391361 959514 +391361 1.03469e+06 +391367 777150 +391367 847092 +391369 766986 +391394 765481 +391397 771756 +391406 1.21616e+06 +391417 949383 +391433 772017 +391444 891086 +391450 843744 +391453 771444 +391458 774172 +391458 926836 +391458 1.2159e+06 +391489 794983 +391489 1.21666e+06 +391492 767756 +391503 1.23207e+06 +391517 779825 +391522 800406 +391525 847481 +391531 770672 +391531 846372 +391533 746933 +391542 945467 +391547 1.22148e+06 +391553 1.11818e+06 +391567 906178 +391569 846133 +391581 755247 +391589 1.08728e+06 +391592 843072 +391597 825269 +391597 1.21748e+06 +391611 803522 +391611 894936 +391617 847492 +391619 844569 +391625 766250 +391631 871992 +391639 1.19766e+06 +391642 894636 +391653 865264 +391667 765083 +391667 907808 +391697 918828 +391744 901431 +391753 842944 +391758 855731 +391772 767433 +391783 873936 +391792 987889 +391831 766406 +391831 945925 +391836 965714 +391847 938797 +391856 781636 +391864 873017 +391872 844464 +391872 844881 +391889 955694 +391908 843636 +391908 990283 +391911 1.06817e+06 +391928 844006 +391950 946819 +391958 952081 +391964 755492 +392008 804044 +392014 859214 +392019 963047 +392022 836117 +392025 944922 +392039 945544 +392047 760517 +392047 844281 +392053 843947 +392058 894044 +392089 760669 +392094 810519 +392094 935175 +392103 921378 +392106 843672 +392122 1.11019e+06 +392128 941225 +392133 970053 +392144 1.22008e+06 +392150 844556 +392153 953125 +392172 766375 +392181 930689 +392183 845508 +392192 1.2106e+06 +392214 944511 +392217 817975 +392231 845869 +392272 928464 +392272 1.11053e+06 +392275 822025 +392281 843542 +392283 766167 +392300 1.21076e+06 +392311 844658 +392319 843783 +392336 845458 +392339 866250 +392342 922806 +392347 992978 +392353 816314 +392369 850947 +392378 946958 +392378 1.20026e+06 +392403 768397 +392417 748156 +392419 764483 +392425 916453 +392458 750356 +392464 824786 +392464 845836 +392475 1.14888e+06 +392478 881633 +392478 957061 +392483 888622 +392486 873819 +392486 949000 +392506 765208 +392508 803125 +392508 1.06292e+06 +392519 844703 +392544 767003 +392561 844181 +392564 893481 +392567 802925 +392581 758375 +392617 1.21015e+06 +392619 848200 +392631 886297 +392633 803200 +392636 816294 +392639 1.03692e+06 +392667 815617 +392672 767986 +392681 844133 +392681 845231 +392683 1.11636e+06 +392692 803125 +392708 938342 +392719 767322 +392725 776369 +392725 915744 +392728 793647 +392736 882436 +392739 815731 +392739 977717 +392775 745750 +392786 939767 +392797 898817 +392806 803447 +392850 809686 +392864 802564 +392867 867625 +392869 844853 +392883 772042 +392886 803061 +392889 778600 +392903 766125 +392906 756347 +392931 839889 +392931 1.03067e+06 +392950 778608 +392958 859508 +392964 807772 +392964 1.19775e+06 +392989 968306 +392992 879925 +392997 756050 +392997 842633 +393000 852222 +393011 892850 +393022 904069 +393025 936772 +393039 857714 +393047 925125 +393061 1.02269e+06 +393078 1.23798e+06 +393092 764753 +393092 772975 +393108 914883 +393111 949222 +393122 846506 +393142 745253 +393142 776281 +393175 745950 +393183 843689 +393194 884528 +393194 895719 +393200 765158 +393222 952667 +393233 777531 +393236 836911 +393267 1.10964e+06 +393269 815486 +393278 745039 +393281 1.20182e+06 +393292 821014 +393331 829825 +393342 764397 +393356 878819 +393372 854836 +393383 764800 +393392 942258 +393397 852044 +393403 744778 +393406 767225 +393408 800192 +393419 787569 +393419 911950 +393433 954600 +393436 902125 +393450 835531 +393483 796711 +393483 974458 +393489 1.10851e+06 +393508 866669 +393508 1.0171e+06 +393519 833828 +393522 1.12576e+06 +393544 841272 +393567 978408 +393575 1.00441e+06 +393578 780403 +393583 934956 +393597 1.11586e+06 +393600 843100 +393603 1.04596e+06 +393633 765208 +393639 1.21692e+06 +393642 744233 +393647 998417 +393672 767956 +393678 943619 +393689 821325 +393689 1.07032e+06 +393703 947822 +393706 909050 +393708 842133 +393714 862611 +393722 1.04856e+06 +393736 769681 +393739 803486 +393742 767228 +393761 771550 +393772 765400 +393794 812586 +393817 752203 +393869 945808 +393878 889606 +393889 890800 +393914 876936 +393917 797486 +393931 793733 +393939 964133 +393942 765239 +393950 865625 +393956 803003 +393958 1.01052e+06 +393978 821294 +393983 793819 +394014 766022 +394022 1.07211e+06 +394036 769506 +394039 758678 +394050 1.14778e+06 +394064 887900 +394097 1.23354e+06 +394100 743650 +394111 949014 +394119 747428 +394125 764639 +394125 1.21712e+06 +394142 774108 +394153 814550 +394167 953333 +394175 766214 +394183 924381 +394186 775039 +394194 767806 +394200 894556 +394228 765850 +394231 850128 +394233 931303 +394239 928014 +394272 752344 +394278 864283 +394283 744961 +394300 778044 +394311 916750 +394344 929381 +394347 845369 +394356 1.21537e+06 +394369 904031 +394381 992647 +394383 942039 +394389 986944 +394406 925450 +394408 789742 +394408 885947 +394433 896517 +394453 838286 +394456 795467 +394458 1.23804e+06 +394464 897808 +394486 764181 +394489 910514 +394494 757167 +394522 747281 +394561 779642 +394561 981058 +394564 879961 +394575 777492 +394586 822319 +394619 821819 +394625 802183 +394650 874500 +394653 957361 +394667 874139 +394694 762047 +394694 768297 +394717 796836 +394728 765233 +394733 827394 +394736 814792 +394736 922097 +394736 1.18776e+06 +394739 829108 +394783 745756 +394800 845519 +394808 844578 +394808 920011 +394811 766442 +394817 1.06038e+06 +394825 1.11495e+06 +394831 883728 +394839 903714 +394847 820792 +394850 801428 +394853 790450 +394861 750261 +394861 773522 +394886 836369 +394889 961697 +394919 872672 +394922 809039 +394950 798153 +394961 881761 +394967 1.21551e+06 +395008 851864 +395008 897678 +395022 985464 +395031 787689 +395031 820847 +395036 801669 +395050 946331 +395069 847453 +395081 915286 +395106 797986 +395114 821636 +395125 984333 +395128 802492 +395136 749250 +395139 1.21555e+06 +395144 764114 +395147 867939 +395161 843764 +395203 890489 +395206 744861 +395208 861678 +395214 857769 +395219 947697 +395222 954006 +395225 887536 +395236 871250 +395244 1.22192e+06 +395250 1.1159e+06 +395258 871125 +395286 746483 +395297 801169 +395297 840867 +395297 1.19813e+06 +395306 790178 +395308 758078 +395308 803436 +395331 773150 +395331 880222 +395347 1.07782e+06 +395350 1.19752e+06 +395358 763486 +395367 871058 +395381 897631 +395392 863692 +395400 824072 +395419 771083 +395425 1.10735e+06 +395464 750253 +395469 1.11455e+06 +395478 816397 +395483 817931 +395483 943297 +395486 1.07656e+06 +395489 892944 +395492 760919 +395500 860797 +395506 1.07324e+06 +395514 1.10387e+06 +395522 797981 +395522 842333 +395522 940406 +395528 879394 +395539 832569 +395581 801819 +395581 860953 +395589 843042 +395592 742436 +395600 760717 +395608 753628 +395631 951214 +395642 809961 +395656 896572 +395656 944478 +395658 789806 +395672 972783 +395675 848161 +395689 771772 +395708 976622 +395717 754675 +395728 1.07536e+06 +395731 742319 +395744 1.06097e+06 +395753 769961 +395778 755892 +395778 822378 +395853 914008 +395856 902519 +395864 1.0643e+06 +395869 937958 +395886 894144 +395900 789500 +395911 973986 +395917 895803 +395917 897464 +395917 899528 +395928 788336 +395950 751706 +395956 748819 +395994 886078 +395994 1.1081e+06 +396000 759417 +396006 778208 +396006 829461 +396011 1.05032e+06 +396019 748431 +396025 820883 +396028 809369 +396031 743406 +396036 933422 +396044 764781 +396047 761156 +396047 768503 +396047 822117 +396047 828292 +396050 833956 +396067 758336 +396078 908050 +396089 777047 +396092 854464 +396108 945992 +396111 876961 +396117 799047 +396128 863742 +396133 1.05016e+06 +396144 787753 +396172 1.0495e+06 +396203 900439 +396206 777592 +396228 872833 +396236 774111 +396247 890189 +396264 1.11439e+06 +396283 1.05049e+06 +396289 902189 +396294 799561 +396297 904561 +396300 1.11634e+06 +396314 1.06522e+06 +396325 787847 +396333 1.05317e+06 +396344 799700 +396356 840708 +396356 849311 +396364 748028 +396375 1.06061e+06 +396400 891928 +396403 852622 +396403 1.06374e+06 +396414 787747 +396417 777203 +396417 1.04959e+06 +396428 741808 +396428 842867 +396442 775861 +396444 808578 +396444 868647 +396456 887381 +396458 799875 +396469 1.05025e+06 +396469 1.06951e+06 +396478 845272 +396478 1.04987e+06 +396486 818533 +396492 818622 +396494 827444 +396511 776911 +396514 753286 +396525 788972 +396528 787628 +396528 837869 +396533 755169 +396536 835639 +396536 917344 +396539 880261 +396547 775731 +396553 1.06828e+06 +396572 893894 +396578 771747 +396581 789286 +396581 837350 +396583 799867 +396600 750925 +396606 955261 +396611 768853 +396617 995700 +396619 741656 +396619 755667 +396636 794056 +396669 757272 +396697 742322 +396700 861314 +396714 981533 +396717 842528 +396733 856986 +396756 898467 +396761 897044 +396764 1.2024e+06 +396794 844292 +396803 874175 +396819 966594 +396831 776964 +396836 757500 +396842 1.10854e+06 +396847 839297 +396847 883064 +396861 749956 +396867 755847 +396883 1.23482e+06 +396892 865225 +396894 841689 +396911 967472 +396928 777450 +396928 787931 +396939 920428 +396942 910389 +396953 742592 +396956 788800 +396978 760631 +396989 781800 +397011 891231 +397017 824269 +397028 751122 +397044 773272 +397047 1.05081e+06 +397056 964167 +397061 842194 +397061 1.05697e+06 +397069 912067 +397083 913583 +397086 902281 +397089 907244 +397103 1.11836e+06 +397111 754706 +397119 888044 +397119 929481 +397128 889969 +397136 756097 +397136 825994 +397147 884722 +397156 756411 +397156 829531 +397156 886325 +397161 838778 +397183 829869 +397194 832653 +397211 822989 +397219 858892 +397253 899106 +397269 763269 +397278 764522 +397286 1.21836e+06 +397294 754683 +397294 1.04831e+06 +397322 748814 +397328 751319 +397339 902289 +397367 775353 +397378 767017 +397383 855719 +397383 1.04323e+06 +397389 798989 +397392 752244 +397392 755983 +397392 1.04984e+06 +397419 922583 +397422 924725 +397425 1.05013e+06 +397428 1.22012e+06 +397436 775542 +397436 939981 +397442 838086 +397444 770883 +397444 845322 +397453 843850 +397458 755469 +397469 925639 +397475 753108 +397475 1.22195e+06 +397478 815167 +397500 755000 +397508 944964 +397508 1.01532e+06 +397519 905350 +397528 790811 +397531 742233 +397531 1.05064e+06 +397536 765917 +397556 948722 +397556 1.05221e+06 +397558 775781 +397561 993236 +397572 896536 +397575 741067 +397589 841917 +397589 1.04427e+06 +397592 949494 +397606 865264 +397611 799817 +397611 868119 +397622 938042 +397625 811156 +397625 872292 +397656 808714 +397658 903989 +397661 755097 +397661 892617 +397661 1.05077e+06 +397669 990314 +397675 896806 +397683 861581 +397686 766800 +397689 820922 +397714 888742 +397761 859572 +397769 896792 +397792 987847 +397811 769636 +397817 928900 +397819 860503 +397831 950897 +397842 749925 +397844 930733 +397850 857694 +397853 759792 +397872 982097 +397894 769983 +397903 777281 +397911 749294 +397914 741956 +397928 873708 +397931 767306 +397931 1.23247e+06 +397942 915231 +397944 751492 +397953 935522 +397956 855264 +397969 885917 +397972 843114 +397975 842536 +397986 879858 +397989 827011 +397992 882831 +397994 884622 +398006 754600 +398017 896436 +398022 750644 +398022 862672 +398028 828064 +398028 1.05087e+06 +398031 798081 +398036 876736 +398058 920414 +398064 838869 +398067 1.01042e+06 +398069 822972 +398072 770117 +398072 820714 +398078 874950 +398089 755492 +398092 754869 +398094 893972 +398097 825222 +398097 863225 +398106 1.20468e+06 +398114 749833 +398119 771375 +398122 852089 +398125 851717 +398128 793569 +398136 790250 +398161 1.11855e+06 +398169 751556 +398169 912422 +398181 970506 +398183 1.00528e+06 +398192 754189 +398200 750067 +398208 840194 +398219 758278 +398222 1.04933e+06 +398231 787183 +398242 749981 +398244 976322 +398247 797547 +398253 836344 +398267 750158 +398269 805667 +398275 754147 +398278 779036 +398289 848903 +398303 752408 +398308 772314 +398311 905594 +398314 757578 +398339 998911 +398342 960639 +398367 844114 +398367 1.04959e+06 +398367 1.05037e+06 +398381 749653 +398381 751531 +398383 854389 +398386 860253 +398394 750739 +398403 825461 +398403 889547 +398411 966469 +398428 828047 +398433 863978 +398439 750231 +398439 841247 +398442 775586 +398442 895394 +398453 826008 +398461 845397 +398467 757119 +398467 799000 +398481 861725 +398483 810369 +398489 868022 +398494 753561 +398514 1.04998e+06 +398522 750683 +398525 894086 +398525 955356 +398528 894633 +398536 831831 +398536 892419 +398539 890839 +398539 891661 +398556 767078 +398556 767689 +398569 847933 +398583 748033 +398597 866425 +398600 753447 +398600 808156 +398611 819069 +398631 790583 +398636 770561 +398639 864669 +398647 750556 +398653 776128 +398658 751792 +398664 750286 +398675 750950 +398681 1.04971e+06 +398692 753828 +398728 899211 +398744 768661 +398769 870444 +398772 750650 +398772 797022 +398775 843022 +398781 751211 +398781 839369 +398783 750931 +398783 799250 +398789 829508 +398811 753242 +398814 830931 +398831 767108 +398842 827536 +398842 874086 +398850 906558 +398856 1.04987e+06 +398864 769850 +398878 900078 +398892 840267 +398892 943617 +398900 754758 +398900 861572 +398906 841989 +398906 887281 +398908 750733 +398908 752842 +398911 749222 +398914 750381 +398917 751167 +398917 753000 +398919 855769 +398922 747025 +398922 997067 +398925 797472 +398936 896047 +398939 968792 +398956 876519 +398964 801794 +398964 824203 +398967 799747 +398969 761639 +398975 830869 +398978 843064 +398992 820064 +398994 766406 +399000 752894 +399000 825342 +399008 750850 +399017 753289 +399019 753503 +399019 846750 +399022 958006 +399033 844856 +399044 844017 +399064 752719 +399089 766372 +399097 753239 +399097 878211 +399111 851617 +399117 752775 +399122 752542 +399136 868011 +399144 939619 +399147 882733 +399161 765847 +399167 753881 +399175 797175 +399181 750717 +399183 752594 +399203 807433 +399206 789581 +399206 1.05086e+06 +399214 752883 +399219 885719 +399231 772989 +399242 838089 +399258 751200 +399267 740775 +399267 741342 +399278 1.22178e+06 +399283 752742 +399286 749442 +399289 853703 +399292 752967 +399303 772483 +399322 858481 +399325 779992 +399325 889511 +399328 890619 +399336 824725 +399356 914097 +399358 741714 +399361 840256 +399375 776614 +399381 752722 +399386 888656 +399389 741933 +399389 752558 +399403 820133 +399417 948300 +399419 741503 +399419 742047 +399425 745444 +399442 740733 +399444 899372 +399453 799958 +399456 752617 +399472 750669 +399478 810575 +399481 743611 +399486 741375 +399486 874597 +399492 759739 +399508 862619 +399511 902122 +399522 751642 +399525 767517 +399531 1.119e+06 +399536 741983 +399542 895486 +399542 1.12119e+06 +399547 759972 +399547 828122 +399556 849175 +399556 860139 +399569 858053 +399583 841722 +399586 759197 +399594 825958 +399606 756058 +399608 897239 +399611 829989 +399614 1.0551e+06 +399617 824914 +399625 746792 +399625 767281 +399625 843281 +399633 752506 +399667 758000 +399667 828856 +399675 872775 +399678 847092 +399681 753417 +399686 891622 +399689 829378 +399697 815367 +399700 812994 +399703 740692 +399708 807508 +399719 746833 +399719 765203 +399742 758203 +399747 938008 +399756 1.11784e+06 +399778 796147 +399778 1.05131e+06 +399781 767333 +399783 861181 +399786 820036 +399814 740667 +399819 888228 +399825 772497 +399831 758242 +399831 761844 +399836 768228 +399853 1.0482e+06 +399861 882589 +399867 830617 +399869 951447 +399872 907633 +399881 807317 +399881 811767 +399928 747881 +399936 817342 +399936 1.05089e+06 +399947 844081 +399956 826744 +399958 866200 +399964 1.11842e+06 +399967 749931 +399967 795861 +399969 767069 +399975 857467 +399978 763544 +400017 768506 +400025 799983 +400064 757036 +400069 881581 +400083 752608 +400083 790783 +400089 771158 +400103 799011 +400108 892822 +400114 750153 +400114 783736 +400144 743117 +400150 1.0527e+06 +400158 741453 +400161 810728 +400175 904242 +400178 795897 +400181 807344 +400186 785042 +400192 828794 +400208 980697 +400214 1.22099e+06 +400217 767283 +400228 824447 +400242 798908 +400247 801003 +400250 880733 +400272 808153 +400278 748694 +400278 885733 +400289 756211 +400292 810392 +400297 746189 +400314 909606 +400322 859125 +400331 796617 +400333 831583 +400336 765047 +400347 879581 +400361 746183 +400361 755142 +400364 889569 +400375 1.07912e+06 +400378 763058 +400392 764311 +400392 910692 +400394 842033 +400411 868744 +400419 754767 +400422 876386 +400428 914975 +400444 1.11731e+06 +400456 860086 +400456 878306 +400467 941356 +400469 796547 +400481 901550 +400483 864692 +400492 1.01532e+06 +400497 849397 +400503 1.05049e+06 +400506 749539 +400506 775206 +400514 874333 +400514 945239 +400525 806286 +400531 1.11673e+06 +400547 882517 +400553 840261 +400569 765525 +400581 824014 +400589 1.06388e+06 +400608 956017 +400614 876381 +400631 767042 +400639 807211 +400650 877019 +400653 749194 +400653 800239 +400675 745311 +400681 749011 +400681 825197 +400683 858483 +400692 807839 +400697 753167 +400706 807611 +400711 748653 +400717 740547 +400736 1.04642e+06 +400756 798983 +400758 1.02223e+06 +400764 829439 +400789 936164 +400792 753019 +400794 798658 +400811 750900 +400819 830253 +400831 897381 +400833 798483 +400847 1.04812e+06 +400847 1.04939e+06 +400861 918131 +400861 1.05939e+06 +400869 797508 +400875 805706 +400875 870597 +400878 1.0881e+06 +400883 912836 +400886 829167 +400889 985192 +400911 740483 +400911 795878 +400931 830181 +400942 759117 +400953 876475 +400958 751256 +400958 807247 +400961 989522 +400975 993617 +400978 742181 +400992 1.04937e+06 +401003 795872 +401003 798408 +401003 895908 +401006 748522 +401011 800675 +401017 760856 +401028 846331 +401036 798694 +401053 856803 +401072 808414 +401075 832675 +401078 740569 +401083 837525 +401083 961542 +401083 1.04519e+06 +401092 910175 +401097 765036 +401100 867719 +401106 882072 +401108 767161 +401108 770353 +401119 800175 +401125 855969 +401125 1.04936e+06 +401131 872625 +401139 878731 +401139 879561 +401150 1.11654e+06 +401161 877783 +401164 882433 +401167 800086 +401172 821194 +401172 843539 +401178 804106 +401183 771903 +401189 788183 +401203 1.23822e+06 +401211 887453 +401211 905631 +401214 753403 +401214 820108 +401222 886453 +401222 966622 +401222 1.02725e+06 +401236 876533 +401239 860133 +401244 798800 +401244 876300 +401250 798667 +401250 916250 +401261 740497 +401261 829292 +401292 798683 +401292 994550 +401300 765708 +401303 755153 +401303 1.11578e+06 +401311 952314 +401314 750678 +401319 740350 +401322 844308 +401350 862206 +401364 747292 +401372 971803 +401375 998292 +401378 798983 +401392 748150 +401394 966589 +401408 977225 +401411 806883 +401417 873947 +401447 842425 +401461 747122 +401469 789122 +401483 798881 +401483 893647 +401489 1.02962e+06 +401494 810664 +401497 754022 +401497 771286 +401500 742139 +401503 740314 +401511 762514 +401511 799078 +401519 749169 +401528 766031 +401533 740286 +401536 826853 +401536 889644 +401539 797414 +401544 752219 +401544 807106 +401567 758331 +401567 762025 +401572 760508 +401572 763072 +401597 790667 +401606 1.03214e+06 +401614 790292 +401633 763953 +401633 1.10402e+06 +401639 959447 +401653 1.1161e+06 +401664 975856 +401667 807000 +401669 749181 +401672 1.05101e+06 +401675 921725 +401697 805939 +401708 740278 +401719 849814 +401733 798578 +401736 802378 +401736 854942 +401742 751072 +401744 749231 +401756 1.01012e+06 +401758 860217 +401767 755481 +401778 745839 +401783 740222 +401783 751289 +401786 834356 +401786 1.22235e+06 +401794 1.18472e+06 +401797 761792 +401808 754294 +401825 806914 +401831 798244 +401842 755383 +401856 754519 +401872 767303 +401878 851275 +401881 869039 +401889 852042 +401906 747028 +401917 852689 +401922 740164 +401933 853864 +401933 863606 +401944 1.10061e+06 +401947 925831 +401950 779833 +401950 866672 +401953 884042 +401964 762014 +401964 807753 +401989 754767 +401994 848053 +402000 740283 +402014 771892 +402017 980675 +402019 848092 +402019 1.00625e+06 +402022 740125 +402022 896981 +402022 931250 +402031 799264 +402053 742142 +402056 805569 +402067 751000 +402078 750731 +402078 799472 +402089 789839 +402097 797672 +402106 812664 +402108 752786 +402108 767914 +402114 761236 +402114 885061 +402144 846369 +402150 750111 +402150 1.04822e+06 +402153 782447 +402153 860264 +402169 747433 +402178 945381 +402186 808731 +402192 796097 +402200 744736 +402203 740125 +402203 889619 +402225 844844 +402228 857789 +402231 835575 +402233 769539 +402247 1.05271e+06 +402264 806517 +402269 789367 +402275 903594 +402297 1.00838e+06 +402300 909500 +402306 1.04072e+06 +402314 756344 +402319 927083 +402322 768850 +402331 761375 +402333 740161 +402333 910625 +402339 1.11658e+06 +402344 1.00417e+06 +402353 768417 +402361 740011 +402389 891231 +402394 756514 +402397 769203 +402397 788353 +402403 795769 +402411 760567 +402411 768944 +402414 752842 +402417 881842 +402419 743017 +402428 778933 +402431 740011 +402431 792378 +402433 886425 +402436 788492 +402450 755956 +402453 756500 +402456 748464 +402464 802117 +402469 867250 +402472 796775 +402483 996331 +402497 788492 +402503 1.03799e+06 +402525 756778 +402561 754642 +402589 768322 +402589 1.03623e+06 +402594 892333 +402600 742742 +402625 801875 +402628 769142 +402628 856758 +402639 744917 +402644 758044 +402647 806264 +402653 767086 +402681 967467 +402686 929531 +402692 798900 +402694 745236 +402694 857281 +402700 873867 +402708 798994 +402708 807817 +402719 806097 +402719 818597 +402722 816061 +402728 809969 +402736 764064 +402736 768847 +402750 769158 +402750 1.06958e+06 +402753 768483 +402753 817511 +402761 748494 +402769 858419 +402783 795450 +402794 753875 +402794 865108 +402808 742517 +402819 1.00165e+06 +402819 1.04777e+06 +402822 860411 +402842 841556 +402858 759847 +402858 766506 +402872 788897 +402883 752094 +402883 872939 +402892 850289 +402903 740181 +402908 788692 +402911 795472 +402917 793894 +402917 909189 +402922 798819 +402942 872489 +402942 904278 +402961 740514 +402967 784500 +402969 1.11694e+06 +402972 743586 +402986 830681 +402986 894850 +402989 751814 +402989 788925 +402992 839689 +402994 1.09988e+06 +403000 900608 +403008 852419 +403014 795392 +403031 969886 +403042 739928 +403042 741008 +403042 999000 +403044 826964 +403050 878006 +403056 896028 +403058 880211 +403064 1.21231e+06 +403078 759658 +403083 881558 +403083 1.05081e+06 +403089 765936 +403106 759397 +403106 789389 +403111 783244 +403117 753256 +403119 839158 +403133 889736 +403139 855006 +403144 891697 +403147 883500 +403156 798314 +403161 745142 +403172 746203 +403181 740156 +403200 756106 +403211 793797 +403217 806100 +403219 753283 +403231 793128 +403244 797014 +403247 798925 +403247 805778 +403253 809014 +403272 760114 +403275 805961 +403278 906069 +403281 758911 +403281 796156 +403283 747911 +403289 796414 +403294 759656 +403294 765156 +403294 1.04855e+06 +403300 760808 +403303 739819 +403325 984483 +403336 756378 +403336 759478 +403353 820069 +403356 759272 +403358 783911 +403358 798700 +403367 740475 +403367 754694 +403369 1.04912e+06 +403372 764758 +403375 759800 +403375 797136 +403386 856444 +403386 953931 +403392 767258 +403403 853508 +403408 764117 +403433 1.1172e+06 +403444 866653 +403453 756333 +403456 763903 +403461 742883 +403461 948722 +403469 925689 +403478 798644 +403486 746594 +403486 788839 +403489 851500 +403489 1.04701e+06 +403494 762136 +403506 798864 +403514 843739 +403514 903244 +403517 761347 +403519 887642 +403525 744406 +403539 753053 +403553 800497 +403561 801103 +403583 814344 +403592 914344 +403606 740386 +403611 837597 +403614 739744 +403617 761844 +403642 749517 +403642 1.11738e+06 +403647 800225 +403650 804142 +403658 749433 +403667 961958 +403672 769314 +403672 787917 +403678 810056 +403697 806342 +403706 799750 +403708 802350 +403717 752019 +403719 739994 +403719 752931 +403722 979711 +403725 895472 +403733 756294 +403742 867689 +403753 807039 +403756 823972 +403764 1.04692e+06 +403767 744250 +403769 1.11795e+06 +403772 1.05521e+06 +403781 939367 +403789 745469 +403792 876686 +403794 860886 +403803 790756 +403814 798600 +403817 824925 +403819 803931 +403831 798067 +403844 778825 +403856 797592 +403858 1.2228e+06 +403875 1.04561e+06 +403881 759183 +403886 786725 +403886 854994 +403908 754925 +403908 798103 +403917 743989 +403917 1.1185e+06 +403922 799003 +403922 800911 +403928 958386 +403931 813467 +403931 843761 +403931 901547 +403933 813339 +403933 824858 +403936 779414 +403936 797864 +403936 969225 +403939 799122 +403944 841728 +403947 814072 +403956 798389 +403958 800333 +403958 810850 +403964 913389 +403969 791519 +403969 888706 +403972 913847 +403978 1.05074e+06 +403981 770233 +403983 798900 +403986 794222 +403989 798411 +403997 746347 +404008 935803 +404019 835453 +404022 755875 +404031 797783 +404036 739919 +404058 798253 +404058 799122 +404064 755022 +404075 896428 +404078 740347 +404078 749786 +404086 759219 +404086 798392 +404086 800836 +404089 829556 +404092 925675 +404106 753786 +404125 798794 +404128 847764 +404131 795706 +404142 790203 +404142 799881 +404142 822411 +404147 742300 +404147 743658 +404153 856506 +404156 741914 +404164 1.20652e+06 +404167 868750 +404169 865947 +404172 798653 +404175 862714 +404183 1.01371e+06 +404189 805897 +404197 798503 +404203 917194 +404208 745611 +404208 894144 +404233 784342 +404233 1.04709e+06 +404236 798831 +404256 800942 +404258 786203 +404258 869081 +404258 897792 +404264 832969 +404264 907925 +404267 885261 +404272 783892 +404272 861256 +404311 792611 +404317 981056 +404331 742000 +404333 807719 +404336 893131 +404339 830739 +404344 800825 +404344 849778 +404347 892178 +404350 800664 +404369 843797 +404378 813733 +404383 798433 +404400 816992 +404403 953775 +404403 993694 +404406 799961 +404417 741303 +404417 753419 +404417 798822 +404456 950658 +404461 800678 +404464 741786 +404464 743864 +404469 759667 +404483 1.22297e+06 +404503 831886 +404511 853700 +404514 743083 +404533 1.11777e+06 +404539 758183 +404556 1.09528e+06 +404567 742469 +404578 921711 +404592 743614 +404592 906717 +404592 963772 +404597 785919 +404597 795233 +404603 880953 +404608 799511 +404614 836700 +404642 806011 +404650 878964 +404656 800658 +404672 876683 +404678 841806 +404681 769322 +404700 753208 +404711 838928 +404742 957333 +404756 854944 +404769 930031 +404772 1.09586e+06 +404775 1.04901e+06 +404778 742911 +404781 785411 +404781 859667 +404783 991264 +404792 792000 +404797 846283 +404797 856278 +404800 799786 +404803 863947 +404814 789189 +404814 969603 +404819 757581 +404822 785519 +404842 889936 +404847 780106 +404850 787250 +404850 1.06831e+06 +404861 744522 +404864 794517 +404864 861336 +404872 856131 +404875 944108 +404897 814458 +404897 1.11938e+06 +404906 870964 +404914 799050 +404919 1.07257e+06 +404933 798608 +404936 843147 +404944 896517 +404950 819847 +404967 806069 +404986 989475 +404992 743994 +405006 828936 +405008 759703 +405008 800678 +405031 786306 +405033 757017 +405042 799492 +405064 798433 +405067 742658 +405067 837481 +405083 858256 +405083 868417 +405100 800947 +405108 756033 +405114 753908 +405122 748597 +405122 1.11474e+06 +405142 889906 +405153 1.07546e+06 +405158 755556 +405169 1.01643e+06 +405183 801669 +405186 783950 +405194 808842 +405197 872478 +405206 814742 +405208 925278 +405211 873783 +405217 980550 +405219 1.11938e+06 +405222 800344 +405247 1.11863e+06 +405261 750619 +405267 996333 +405269 975956 +405275 894925 +405289 794617 +405294 891772 +405303 1.04711e+06 +405308 1.12298e+06 +405317 801692 +405322 914147 +405344 835206 +405364 801847 +405369 893575 +405394 754972 +405394 769611 +405408 745881 +405417 797994 +405431 743636 +405433 787881 +405433 791625 +405489 768122 +405489 784294 +405489 845703 +405492 828275 +405500 913847 +405508 948192 +405511 801931 +405528 905061 +405531 797575 +405533 745319 +405539 852775 +405544 819181 +405544 1.23182e+06 +405556 759822 +405561 908658 +405575 828625 +405581 900350 +405589 791514 +405622 1.11929e+06 +405631 802086 +405639 888989 +405644 871069 +405647 878931 +405667 767008 +405669 886164 +405675 882478 +405675 896406 +405678 841936 +405683 745389 +405686 750950 +405694 746333 +405694 774031 +405697 773972 +405697 797650 +405717 807267 +405719 857692 +405725 744931 +405725 898133 +405728 810858 +405733 766917 +405736 802358 +405742 746103 +405747 769894 +405764 1.24263e+06 +405772 742286 +405789 861903 +405792 744119 +405794 753411 +405800 797669 +405814 795667 +405825 1.04731e+06 +405833 909692 +405844 1.02302e+06 +405853 1.05084e+06 +405861 795317 +405861 983881 +405867 1.22391e+06 +405875 866750 +405883 736583 +405883 824250 +405886 831286 +405889 737294 +405892 744722 +405892 765528 +405892 802253 +405900 985058 +405903 998606 +405917 1.11883e+06 +405942 751947 +405947 815269 +405961 795558 +405969 880381 +405981 795614 +405983 760936 +405983 1.24156e+06 +406000 1.12464e+06 +406006 839753 +406011 813614 +406014 753956 +406014 797600 +406028 787089 +406028 795650 +406028 806492 +406028 868672 +406033 783250 +406042 736558 +406044 956575 +406050 777258 +406056 978589 +406058 889872 +406081 742781 +406081 797414 +406086 865400 +406097 1.11938e+06 +406111 1.11899e+06 +406114 798372 +406117 767189 +406128 894592 +406131 805631 +406150 896222 +406156 737300 +406167 873208 +406172 855047 +406175 896003 +406183 806044 +406186 805775 +406189 980969 +406197 1.11809e+06 +406200 825108 +406200 966289 +406211 904619 +406211 986572 +406214 791528 +406219 742450 +406225 808381 +406228 737247 +406228 939339 +406239 737089 +406256 1.03207e+06 +406264 753461 +406267 761931 +406283 763875 +406283 876961 +406297 892747 +406297 913150 +406300 744278 +406300 893325 +406300 1.00515e+06 +406306 761714 +406308 929244 +406319 737131 +406336 744078 +406350 802283 +406353 822333 +406356 1.04755e+06 +406358 782961 +406361 736819 +406361 911672 +406364 829692 +406367 791444 +406367 802403 +406369 975850 +406378 744514 +406386 736406 +406386 775689 +406386 1.11938e+06 +406403 917428 +406408 743111 +406408 743839 +406408 748817 +406411 1.02626e+06 +406414 887833 +406417 748364 +406419 736700 +406422 798511 +406425 742858 +406428 787731 +406428 915644 +406431 736961 +406431 775808 +406431 1.1128e+06 +406442 974500 +406444 804164 +406458 805981 +406461 1.11497e+06 +406469 836097 +406472 895911 +406472 971131 +406500 814522 +406503 896519 +406511 812992 +406531 815811 +406536 972858 +406539 750869 +406542 841508 +406547 736722 +406547 754750 +406547 761011 +406553 743903 +406572 961861 +406575 735836 +406578 849519 +406583 743000 +406586 736417 +406589 743478 +406594 743233 +406597 754772 +406597 802394 +406600 1.11996e+06 +406608 862419 +406625 787803 +406628 735519 +406631 868694 +406639 742111 +406639 775961 +406642 737089 +406642 742636 +406642 904347 +406644 742647 +406658 734886 +406661 806233 +406661 895800 +406669 751578 +406669 947211 +406669 1.11887e+06 +406672 813550 +406678 1.11938e+06 +406686 735275 +406686 741147 +406689 1.11824e+06 +406700 754958 +406706 782389 +406722 743578 +406733 805767 +406733 845189 +406733 921619 +406739 857214 +406764 742911 +406767 818706 +406767 958589 +406786 735894 +406786 752372 +406789 734175 +406789 736744 +406789 910728 +406792 804950 +406800 965061 +406800 1.22351e+06 +406803 734556 +406806 734747 +406806 1.2237e+06 +406814 734003 +406814 820219 +406825 931208 +406828 854272 +406833 744431 +406836 735106 +406842 746361 +406844 803292 +406844 896800 +406850 737022 +406856 761958 +406858 926772 +406861 754972 +406867 733739 +406867 841378 +406872 802717 +406875 802542 +406911 735636 +406914 735339 +406917 811814 +406917 897950 +406925 896278 +406928 837856 +406933 735081 +406936 751906 +406936 895889 +406953 803050 +406956 733261 +406958 800119 +406964 761692 +406967 749411 +406975 734256 +406983 744019 +406994 990811 +407000 802683 +407000 1.1181e+06 +407003 735933 +407008 734625 +407008 737133 +407011 742306 +407022 802867 +407036 894072 +407039 1.05008e+06 +407044 963872 +407047 736506 +407061 733067 +407061 838439 +407064 839214 +407064 933650 +407069 749564 +407069 815983 +407072 736764 +407086 732817 +407089 843536 +407092 1.12101e+06 +407106 902661 +407139 775908 +407139 1.16103e+06 +407142 733819 +407142 737006 +407142 740064 +407147 942350 +407150 880061 +407164 733222 +407167 914500 +407172 734842 +407181 733547 +407186 745697 +407189 1.11888e+06 +407192 736889 +407194 748361 +407194 761161 +407194 993717 +407206 734406 +407208 740178 +407214 892728 +407219 954806 +407236 737053 +407242 737156 +407244 815222 +407250 732458 +407256 753944 +407258 735147 +407264 788069 +407267 736347 +407278 730981 +407281 740781 +407294 760858 +407297 732108 +407297 811056 +407303 803103 +407303 919622 +407311 948994 +407311 1.22941e+06 +407317 1.06283e+06 +407319 731861 +407322 906644 +407336 778858 +407336 827900 +407350 736883 +407356 741728 +407358 730825 +407361 732631 +407372 1.14037e+06 +407383 730511 +407386 851717 +407386 995372 +407392 890164 +407394 743044 +407394 803294 +407397 937475 +407403 753100 +407408 736631 +407408 743842 +407408 752575 +407414 743600 +407417 887197 +407419 950381 +407431 731931 +407433 888814 +407439 740328 +407442 734825 +407453 867647 +407464 741567 +407469 909039 +407472 731703 +407472 885147 +407472 895739 +407478 785347 +407483 741622 +407483 756122 +407483 956472 +407483 988444 +407486 847911 +407492 736411 +407494 868717 +407503 786711 +407517 763364 +407517 818394 +407517 924147 +407519 803194 +407519 884111 +407525 736108 +407536 860689 +407536 882919 +407539 733608 +407539 752625 +407539 798103 +407542 755992 +407544 863567 +407553 736672 +407564 736453 +407567 881911 +407569 729397 +407569 933186 +407581 870417 +407583 736353 +407583 825156 +407589 735700 +407594 825903 +407597 744175 +407608 871508 +407608 1.1189e+06 +407617 733297 +407625 734536 +407631 769397 +407633 872936 +407656 730156 +407656 953719 +407664 894678 +407667 728525 +407667 879922 +407669 729967 +407672 742053 +407683 735256 +407683 741458 +407692 731156 +407692 800631 +407692 875639 +407694 740208 +407694 838228 +407700 1.24142e+06 +407703 874453 +407706 737181 +407706 742331 +407714 846156 +407719 983692 +407733 736436 +407739 742739 +407742 729433 +407744 785536 +407744 970503 +407756 777928 +407758 746011 +407761 877364 +407764 734678 +407775 929436 +407778 899664 +407786 900147 +407794 740242 +407797 978119 +407800 803386 +407808 736769 +407808 997411 +407811 732467 +407811 737250 +407811 766733 +407839 762306 +407842 746972 +407858 747806 +407861 737142 +407867 737269 +407869 730094 +407869 737372 +407872 812828 +407875 827367 +407878 740147 +407878 743886 +407883 741336 +407886 736000 +407886 736478 +407886 842039 +407889 765592 +407892 836433 +407894 740569 +407906 732022 +407906 893606 +407914 762839 +407919 740042 +407933 734156 +407933 764728 +407933 778603 +407936 736275 +407936 741506 +407942 736608 +407942 737489 +407944 801369 +407953 814736 +407958 743153 +407961 891972 +407972 759697 +407978 737000 +407978 858206 +407981 783975 +407986 736803 +407986 742394 +407989 768625 +407989 813786 +407989 816956 +407994 762128 +407994 780544 +407997 736514 +407997 756622 +407997 764281 +408000 966667 +408003 727903 +408006 737289 +408014 756106 +408017 835106 +408019 728414 +408022 1.24162e+06 +408025 737047 +408031 726150 +408031 749900 +408042 740125 +408042 763408 +408042 764653 +408042 821958 +408044 904017 +408050 819353 +408053 742042 +408067 737039 +408067 741858 +408072 736817 +408075 911128 +408083 829756 +408103 795297 +408106 778186 +408119 741247 +408122 730789 +408125 761419 +408153 730456 +408161 736978 +408164 736375 +408164 795222 +408167 964300 +408175 730006 +408178 800144 +408192 831306 +408197 737356 +408203 762011 +408203 879778 +408206 742942 +408206 985997 +408214 739881 +408217 744814 +408222 741603 +408231 726100 +408236 733992 +408236 759806 +408239 735481 +408244 726667 +408244 742850 +408250 783514 +408250 911564 +408256 732031 +408256 736986 +408258 742094 +408261 735025 +408264 741072 +408269 739761 +408272 832814 +408275 762072 +408292 853356 +408297 742406 +408297 750781 +408311 730300 +408317 758828 +408317 768361 +408325 1.15762e+06 +408336 757142 +408336 953081 +408339 740975 +408339 805406 +408342 740092 +408342 803225 +408347 736958 +408350 731317 +408356 803997 +408375 796322 +408381 857303 +408386 735656 +408389 898864 +408397 742769 +408403 740911 +408406 725819 +408408 743022 +408411 740456 +408417 962933 +408419 1.01725e+06 +408428 732933 +408431 737153 +408436 817642 +408447 737022 +408450 806147 +408453 733356 +408456 740883 +408475 776864 +408481 739981 +408481 752919 +408483 799622 +408486 768200 +408486 1.11906e+06 +408489 736453 +408500 782708 +408508 739706 +408517 737192 +408519 731544 +408528 731156 +408528 740425 +408531 741142 +408533 734119 +408539 748294 +408542 1.06965e+06 +408556 1.11892e+06 +408558 732011 +408561 731878 +408567 734700 +408567 741289 +408569 740219 +408581 740811 +408583 731000 +408583 741642 +408589 934972 +408597 999869 +408611 798956 +408614 739886 +408617 896786 +408622 736342 +408625 767947 +408625 856017 +408639 802592 +408644 758114 +408644 765528 +408644 864997 +408644 913144 +408656 735325 +408656 752069 +408658 907483 +408661 860775 +408664 730361 +408664 873636 +408667 1.24082e+06 +408672 980039 +408678 868789 +408681 734261 +408681 777469 +408681 975917 +408686 730019 +408686 752553 +408686 823183 +408689 725181 +408689 733656 +408689 742086 +408694 845842 +408700 961403 +408708 735114 +408711 747344 +408711 984678 +408714 734572 +408717 1.11891e+06 +408728 787244 +408758 745428 +408758 757328 +408758 814025 +408761 735769 +408761 740303 +408767 733250 +408772 807556 +408778 798467 +408778 882692 +408781 888611 +408789 769872 +408794 751842 +408803 879550 +408806 752150 +408806 851664 +408814 741136 +408814 826619 +408817 945617 +408822 740836 +408825 1.2166e+06 +408831 854975 +408831 895025 +408831 1.23983e+06 +408839 745625 +408842 723900 +408842 729378 +408853 739528 +408858 740439 +408858 782211 +408861 732578 +408869 735556 +408881 803383 +408883 738286 +408883 806942 +408894 1.1188e+06 +408897 741953 +408897 782286 +408897 815978 +408908 724642 +408908 774769 +408908 928150 +408917 767978 +408928 739731 +408931 745822 +408939 1.11901e+06 +408947 744333 +408953 736014 +408953 738075 +408953 838889 +408975 740164 +408983 956711 +408989 740931 +408989 747069 +408994 973992 +408997 734153 +409003 807642 +409008 733436 +409011 745147 +409022 817342 +409025 740622 +409025 744075 +409028 747094 +409033 731583 +409033 734603 +409039 741189 +409044 890344 +409050 742103 +409064 842967 +409069 970986 +409072 740756 +409083 902847 +409097 738083 +409100 759917 +409106 735625 +409114 737828 +409114 906472 +409117 859244 +409117 871553 +409125 733014 +409133 759669 +409133 777786 +409153 811061 +409167 741722 +409167 847028 +409169 726625 +409175 770481 +409175 965281 +409178 1.11399e+06 +409181 1.11871e+06 +409186 922228 +409192 892911 +409194 840569 +409222 894861 +409225 900144 +409228 810192 +409231 750969 +409231 809939 +409250 983417 +409253 730478 +409253 739633 +409253 742769 +409256 731414 +409258 746353 +409269 913994 +409275 739978 +409278 733603 +409278 737522 +409281 759150 +409286 740403 +409294 1.0016e+06 +409297 897575 +409297 949758 +409311 738992 +409319 909469 +409322 843389 +409328 724147 +409328 746597 +409328 803636 +409350 740194 +409353 879344 +409356 741867 +409367 871508 +409378 723014 +409381 738325 +409403 741322 +409406 739972 +409414 739597 +409417 777853 +409436 789711 +409444 740758 +409461 874533 +409464 730697 +409467 1.24099e+06 +409469 730300 +409478 903100 +409478 903711 +409481 797431 +409481 839611 +409486 737331 +409492 741542 +409494 725819 +409508 730844 +409519 764600 +409525 833825 +409550 741864 +409558 739317 +409561 729683 +409567 744983 +409572 729081 +409572 739639 +409583 759750 +409586 740372 +409586 759964 +409589 768994 +409597 729967 +409597 730683 +409597 731300 +409608 739906 +409622 828544 +409625 853733 +409628 741333 +409628 964408 +409633 711833 +409633 766131 +409636 813314 +409636 915578 +409644 768847 +409689 737131 +409700 816967 +409714 821100 +409731 739619 +409731 1.17735e+06 +409736 721442 +409747 848683 +409756 785253 +409761 740267 +409778 803453 +409781 817822 +409792 741169 +409806 736842 +409806 1.11887e+06 +409817 951039 +409819 931983 +409828 841994 +409836 739803 +409853 868794 +409858 747425 +409858 796133 +409867 751950 +409869 818939 +409883 1.02264e+06 +409892 741411 +409900 752167 +409900 887292 +409900 947406 +409911 725347 +409911 740331 +409919 760569 +409939 743039 +409942 921672 +409953 740125 +409956 723417 +409964 741017 +409978 722931 +409978 961619 +409981 739622 +409994 751817 +410006 857686 +410011 986072 +410017 736661 +410017 743675 +410017 793317 +410025 784636 +410028 738792 +410028 955850 +410031 879081 +410036 743419 +410036 885253 +410042 923736 +410050 737850 +410053 742911 +410061 764103 +410064 739494 +410081 911639 +410086 919625 +410094 741733 +410097 952253 +410100 818625 +410106 738442 +410106 739917 +410106 741183 +410114 958819 +410128 723133 +410128 816053 +410139 933064 +410144 738731 +410144 763814 +410161 721597 +410167 742061 +410167 758975 +410167 1.11498e+06 +410172 954019 +410186 864133 +410186 957989 +410189 737986 +410192 840472 +410208 814361 +410219 739478 +410233 740669 +410242 806150 +410242 806631 +410247 894111 +410250 807611 +410253 902797 +410256 817300 +410261 989122 +410264 819333 +410267 928056 +410275 941978 +410286 894383 +410289 840792 +410300 825158 +410308 779497 +410317 741025 +410322 1.11901e+06 +410333 820122 +410339 737633 +410339 937653 +410353 805367 +410353 1.11938e+06 +410358 719550 +410375 740411 +410381 742944 +410383 860281 +410389 738656 +410392 963681 +410414 741294 +410414 795033 +410417 939492 +410419 739186 +410442 836500 +410458 762825 +410464 813981 +410467 740233 +410469 957422 +410478 724636 +410492 880978 +410503 788225 +410514 866031 +410519 762211 +410519 830150 +410525 806081 +410525 890503 +410531 827264 +410533 735392 +410544 762336 +410547 797269 +410550 738206 +410572 741414 +410572 966444 +410581 747531 +410583 740989 +410586 943611 +410589 740222 +410603 1.1197e+06 +410606 757744 +410614 1.02074e+06 +410617 897731 +410619 762228 +410633 905558 +410639 800567 +410647 724267 +410647 828878 +410647 862158 +410681 723392 +410706 850144 +410722 858917 +410722 902253 +410758 775889 +410767 818964 +410775 847272 +410781 764147 +410783 805994 +410786 734697 +410797 878114 +410806 868919 +410811 1.11919e+06 +410814 815192 +410817 745928 +410819 961342 +410831 739206 +410844 768642 +410847 856281 +410856 738589 +410886 740139 +410892 906381 +410894 1.12064e+06 +410906 739183 +410928 1.0247e+06 +410936 898647 +410944 884250 +410958 796828 +410961 912575 +410964 739733 +410969 788889 +410972 1.04814e+06 +410983 839847 +410994 909425 +410997 806497 +411000 813467 +411003 821233 +411003 842664 +411014 814419 +411017 807647 +411019 767714 +411033 723597 +411039 826119 +411069 739206 +411072 737964 +411072 774847 +411075 837928 +411078 787714 +411083 835169 +411108 1.12025e+06 +411111 740689 +411114 893564 +411117 1.14964e+06 +411133 742458 +411142 975986 +411144 831781 +411147 741500 +411147 901644 +411158 980014 +411161 791869 +411169 809836 +411175 734083 +411181 739558 +411183 1.12083e+06 +411192 787603 +411200 878611 +411203 765303 +411208 888353 +411219 753650 +411219 830158 +411222 803331 +411231 914411 +411233 737794 +411239 741697 +411239 1.00765e+06 +411242 1.01356e+06 +411247 774300 +411253 848533 +411264 737144 +411264 774719 +411281 1.01719e+06 +411306 851289 +411325 1.11929e+06 +411333 1.04817e+06 +411339 814847 +411358 929039 +411364 740828 +411364 1.1203e+06 +411367 800094 +411367 958906 +411369 774472 +411381 845806 +411383 818639 +411408 962394 +411414 733583 +411417 878750 +411419 878611 +411428 890600 +411428 1.02978e+06 +411444 814400 +411450 788047 +411456 738242 +411458 774217 +411464 747528 +411472 916606 +411475 739897 +411506 739458 +411531 761506 +411533 745767 +411536 813581 +411539 807017 +411544 741933 +411544 960419 +411550 759786 +411564 805694 +411569 834169 +411569 1.01126e+06 +411572 854883 +411575 812422 +411578 800889 +411586 1.01002e+06 +411589 814544 +411594 814406 +411606 926311 +411611 790833 +411617 1.12026e+06 +411628 738619 +411656 808578 +411667 876628 +411669 732053 +411669 740436 +411675 900425 +411689 822181 +411703 909967 +411725 835564 +411725 923086 +411728 882767 +411728 1.11976e+06 +411733 860347 +411742 804536 +411747 918194 +411750 760750 +411769 1.12003e+06 +411772 744692 +411772 797081 +411772 896575 +411789 903158 +411797 975472 +411814 847406 +411814 911853 +411817 743825 +411819 1.04069e+06 +411822 937286 +411828 807656 +411828 836783 +411847 773142 +411856 883097 +411856 919928 +411883 809783 +411917 903800 +411919 1.11971e+06 +411922 974250 +411967 908803 +411969 759286 +411975 739650 +411992 798731 +411997 907492 +412003 857056 +412022 793278 +412031 905869 +412042 737275 +412044 928825 +412053 760053 +412053 960422 +412056 767858 +412069 830553 +412075 838992 +412083 738917 +412094 739858 +412094 1.06789e+06 +412097 746081 +412103 758969 +412108 849669 +412111 805381 +412114 966200 +412122 804969 +412125 924353 +412147 793856 +412150 867758 +412158 890667 +412189 864231 +412197 1.22274e+06 +412219 932411 +412222 730569 +412222 758633 +412225 742947 +412225 770372 +412231 1.11973e+06 +412269 802400 +412269 882647 +412272 858219 +412278 964875 +412283 851725 +412292 840342 +412306 853194 +412319 769994 +412325 956128 +412331 804936 +412339 805697 +412344 795375 +412350 810494 +412350 951372 +412358 1.03662e+06 +412367 954178 +412369 888314 +412375 808186 +412381 818419 +412381 858531 +412392 813461 +412397 816383 +412400 814408 +412400 836433 +412403 759450 +412411 767242 +412411 770014 +412411 815528 +412414 884194 +412425 826158 +412428 732011 +412450 759311 +412450 963969 +412456 899247 +412458 758817 +412464 832358 +412489 841331 +412492 787997 +412503 794597 +412506 878314 +412528 971297 +412539 836044 +412542 769208 +412542 893422 +412542 947681 +412544 823997 +412556 734353 +412558 1.22138e+06 +412561 830517 +412564 743603 +412586 959375 +412592 804722 +412597 906078 +412608 1.11769e+06 +412611 892275 +412611 961317 +412619 739386 +412619 958608 +412647 815133 +412650 882122 +412683 1.10962e+06 +412694 759167 +412706 729475 +412708 737781 +412725 820547 +412736 828417 +412753 758506 +412756 989664 +412761 728689 +412769 926794 +412781 758975 +412783 730261 +412786 725281 +412789 758786 +412794 725989 +412794 728156 +412797 767133 +412800 759125 +412800 913606 +412814 734986 +412814 1.11988e+06 +412833 701000 +412839 812242 +412842 810967 +412844 843558 +412853 723994 +412853 724481 +412861 804278 +412864 962342 +412872 845536 +412878 882856 +412878 993814 +412886 882517 +412889 726822 +412889 758058 +412889 915522 +412897 945614 +412900 739208 +412906 959178 +412917 723767 +412917 758750 +412917 934422 +412919 999222 +412922 895061 +412931 847619 +412939 822175 +412939 902919 +412942 882711 +412953 890594 +412956 861164 +412958 897903 +412964 926442 +412975 826056 +412981 1.12085e+06 +412992 916928 +413036 901928 +413042 829753 +413053 944611 +413072 1.11959e+06 +413078 881467 +413081 729286 +413083 741450 +413089 820058 +413097 742294 +413100 721458 +413100 1.22309e+06 +413111 886097 +413114 1.05591e+06 +413117 758378 +413125 811439 +413125 814403 +413128 963458 +413136 817247 +413139 816853 +413144 818358 +413164 730936 +413167 870258 +413175 868914 +413186 872003 +413189 905058 +413197 758464 +413197 816269 +413206 730894 +413206 758194 +413208 931092 +413217 802589 +413231 777486 +413242 834386 +413250 757458 +413253 721936 +413253 824933 +413256 856978 +413258 757897 +413261 896789 +413264 777511 +413269 757736 +413275 757933 +413275 891289 +413275 891997 +413275 1.10292e+06 +413278 719911 +413278 831322 +413297 906703 +413303 807256 +413306 741872 +413308 887081 +413308 940136 +413317 741214 +413317 743572 +413319 858500 +413322 877853 +413333 922044 +413336 888781 +413358 719064 +413361 759636 +413367 755189 +413392 801053 +413397 757367 +413406 876214 +413436 863097 +413439 757389 +413447 837972 +413450 720253 +413450 815286 +413456 888425 +413458 813953 +413461 730794 +413469 741267 +413486 800825 +413494 851356 +413500 720789 +413503 831219 +413506 719825 +413533 723911 +413533 757386 +413542 719669 +413547 903814 +413556 721000 +413558 822539 +413572 884211 +413578 891761 +413581 935572 +413583 897372 +413614 818131 +413625 742717 +413633 979689 +413639 919536 +413647 961575 +413650 958578 +413653 895839 +413656 815614 +413658 852389 +413661 818544 +413669 799294 +413669 850589 +413681 894647 +413683 821078 +413692 739667 +413711 734144 +413714 839419 +413722 737339 +413747 836514 +413750 746931 +413750 819083 +413772 718342 +413775 718278 +413825 892189 +413833 760250 +413844 833206 +413856 724361 +413858 932692 +413889 705139 +413897 814414 +413900 817597 +413906 809736 +413908 728600 +413914 739564 +413922 841253 +413931 815367 +413947 734544 +413947 757069 +413953 816764 +413969 966111 +413972 736175 +413972 899044 +413978 822225 +413983 818047 +413989 717475 +414000 747236 +414000 828086 +414014 923544 +414019 743247 +414019 996389 +414031 724514 +414036 950136 +414039 881117 +414047 817231 +414050 1.02344e+06 +414061 736331 +414081 929161 +414089 756628 +414092 741956 +414092 1.12035e+06 +414097 797119 +414108 834611 +414119 838644 +414139 733039 +414153 815661 +414156 819236 +414169 815275 +414169 816061 +414169 873653 +414181 864858 +414189 832214 +414197 756328 +414200 877417 +414203 787289 +414208 900150 +414211 820964 +414214 798814 +414219 823647 +414225 879858 +414225 1.00193e+06 +414228 1.22385e+06 +414233 717861 +414244 739469 +414253 816883 +414269 892133 +414278 741664 +414278 857525 +414286 904608 +414294 882286 +414297 720825 +414297 813908 +414297 848714 +414297 973681 +414306 868983 +414314 813656 +414322 714569 +414333 964978 +414344 721103 +414347 815258 +414350 815364 +414353 816575 +414392 740456 +414392 907175 +414397 817356 +414414 818644 +414414 852650 +414428 860014 +414433 840089 +414442 744003 +414444 876314 +414453 947644 +414458 744233 +414464 861481 +414472 970592 +414478 814278 +414481 901542 +414486 847481 +414486 977303 +414489 827081 +414489 956153 +414500 816636 +414506 834875 +414514 756122 +414517 820356 +414525 963508 +414528 821825 +414531 905719 +414542 705625 +414542 706042 +414542 740581 +414550 1.06806e+06 +414553 819181 +414553 882617 +414558 960261 +414564 907233 +414569 728236 +414569 1.22894e+06 +414594 934047 +414614 736714 +414619 810739 +414619 967794 +414622 814808 +414642 918381 +414644 815089 +414647 837061 +414658 855875 +414667 864831 +414683 756033 +414686 755625 +414689 796911 +414700 876364 +414700 926511 +414706 811453 +414714 756081 +414731 870611 +414731 903575 +414733 745389 +414739 815372 +414747 845525 +414756 818394 +414756 936786 +414758 751825 +414761 832958 +414767 740242 +414767 953378 +414775 952217 +414783 814639 +414803 715231 +414806 866917 +414808 755950 +414808 876378 +414814 743606 +414817 726817 +414819 817983 +414828 873328 +414831 917058 +414839 742181 +414839 903531 +414844 877033 +414847 819222 +414858 730511 +414872 1.20541e+06 +414875 821017 +414881 914258 +414883 875675 +414886 757089 +414892 814019 +414900 713133 +414914 876744 +414919 941239 +414928 757000 +414942 875217 +414947 755372 +414947 903906 +414953 794561 +414958 878486 +414961 853767 +414969 713678 +414969 725575 +414978 815375 +414989 729011 +414994 816956 +415003 858281 +415006 874614 +415006 946433 +415008 837183 +415008 904442 +415008 934908 +415028 724506 +415033 740108 +415033 943183 +415036 844142 +415039 877131 +415047 739700 +415053 820283 +415061 876356 +415061 881144 +415064 875917 +415067 905150 +415075 717167 +415089 907658 +415094 905786 +415103 1.12015e+06 +415119 829378 +415119 879656 +415122 782353 +415122 904150 +415133 876742 +415139 920761 +415161 954500 +415175 814036 +415183 942261 +415189 838039 +415192 814581 +415200 800486 +415200 814889 +415200 815564 +415200 882017 +415214 843072 +415217 739269 +415222 813381 +415222 931017 +415231 815186 +415236 905775 +415242 720764 +415242 764011 +415244 862733 +415244 905156 +415250 880817 +415256 741533 +415258 853667 +415261 878892 +415264 706736 +415264 875386 +415272 850656 +415275 742372 +415283 874236 +415286 1.09466e+06 +415300 886797 +415306 739781 +415308 755458 +415317 940094 +415319 939539 +415322 872550 +415331 815792 +415342 757364 +415342 864272 +415347 740153 +415350 740706 +415350 808683 +415356 738994 +415356 878475 +415369 885833 +415381 728075 +415386 759469 +415392 855397 +415397 740986 +415414 869006 +415425 816264 +415425 876022 +415428 876847 +415439 738686 +415444 732094 +415444 961247 +415472 891175 +415475 865822 +415486 985308 +415486 987306 +415492 841417 +415511 1.12109e+06 +415514 706153 +415519 814786 +415528 815103 +415542 915347 +415547 880986 +415558 904092 +415564 847689 +415564 958875 +415569 836272 +415572 876656 +415575 894608 +415581 730519 +415583 872744 +415600 740036 +415619 736031 +415622 726511 +415644 875125 +415647 875389 +415661 834247 +415681 876081 +415681 877203 +415689 1.11837e+06 +415700 912636 +415717 876944 +415728 726411 +415733 877844 +415736 755022 +415736 840053 +415736 876464 +415750 872389 +415756 723325 +415758 725031 +415758 871761 +415767 744875 +415767 752592 +415769 734089 +415772 937111 +415783 705592 +415783 928447 +415803 754086 +415817 903433 +415833 875000 +415839 738092 +415839 935197 +415847 907719 +415853 878431 +415858 925272 +415861 844350 +415869 712839 +415875 1.09202e+06 +415878 834933 +415886 838911 +415889 910167 +415894 880578 +415894 889219 +415894 941958 +415908 948753 +415917 950597 +415931 815269 +415933 730858 +415933 873464 +415964 739114 +415978 937081 +415983 814186 +415994 932350 +415997 909106 +416006 936089 +416008 876069 +416028 877439 +416031 937239 +416033 803056 +416033 989258 +416056 739719 +416056 741844 +416061 738733 +416064 903353 +416067 719814 +416067 805725 +416078 1.22839e+06 +416097 835644 +416100 876467 +416106 867225 +416106 965478 +416111 876347 +416117 938850 +416125 887994 +416136 901728 +416142 760469 +416142 811492 +416144 940172 +416147 1.12126e+06 +416156 870742 +416156 875294 +416186 813842 +416217 837117 +416228 738711 +416239 813072 +416253 877175 +416258 712139 +416258 871903 +416261 757808 +416267 937119 +416269 796739 +416269 882039 +416283 703875 +416289 813617 +416303 878539 +416303 897861 +416311 780917 +416314 724603 +416317 876608 +416331 754708 +416331 814689 +416336 886811 +416342 1.11851e+06 +416347 849994 +416353 727692 +416361 709347 +416378 859217 +416386 1.11933e+06 +416386 1.12079e+06 +416389 875567 +416389 876072 +416392 874547 +416397 732089 +416397 814067 +416406 993708 +416411 884472 +416414 801517 +416417 854167 +416431 957886 +416436 834869 +416439 877036 +416442 934644 +416458 886217 +416475 880894 +416500 702417 +416514 754669 +416525 797272 +416528 702833 +416531 953253 +416539 814506 +416556 738753 +416556 746897 +416561 804242 +416564 768536 +416564 900792 +416572 876800 +416581 905844 +416583 701292 +416583 708167 +416603 808608 +416611 727800 +416611 877525 +416611 915300 +416611 920089 +416619 861586 +416628 788114 +416628 876606 +416628 885369 +416639 835553 +416642 836433 +416644 701733 +416650 860758 +416653 1.03099e+06 +416658 814433 +416658 1.11181e+06 +416661 813397 +416667 701853 +416667 966656 +416672 878303 +416681 762622 +416681 877964 +416686 933575 +416689 877386 +416714 899361 +416714 913464 +416717 729497 +416731 936975 +416731 1.07979e+06 +416733 843269 +416736 880017 +416747 903403 +416750 712711 +416750 733522 +416764 719156 +416764 915803 +416772 945031 +416778 932450 +416781 730114 +416794 721708 +416794 770642 +416797 874944 +416800 845531 +416803 903189 +416811 699917 +416817 1.11822e+06 +416819 699603 +416819 859767 +416819 869603 +416828 883514 +416833 862500 +416842 877003 +416844 939608 +416861 700764 +416883 937908 +416889 889811 +416889 983631 +416897 877972 +416908 980033 +416917 943628 +416917 974842 +416919 713792 +416925 869775 +416947 740517 +416967 878169 +416972 862450 +416975 905825 +416978 727242 +416983 868592 +416986 880683 +416994 840703 +416997 930478 +417000 703000 +417000 707633 +417003 739214 +417003 865094 +417006 934619 +417014 711556 +417014 877792 +417019 702500 +417039 790358 +417050 813606 +417053 972378 +417061 715236 +417064 1.11816e+06 +417075 868950 +417092 746289 +417103 865342 +417106 722086 +417106 745747 +417117 839097 +417119 1.12165e+06 +417122 726086 +417128 718814 +417142 726531 +417142 893286 +417161 862525 +417169 743961 +417175 899258 +417181 929072 +417181 949322 +417183 738531 +417189 801478 +417189 837131 +417194 842181 +417206 877017 +417208 739606 +417208 877542 +417211 968825 +417214 858175 +417217 1.11821e+06 +417233 917903 +417244 732367 +417244 812458 +417250 970025 +417256 786386 +417256 878250 +417267 971219 +417278 844189 +417283 1.22527e+06 +417297 936056 +417306 883458 +417308 849328 +417317 922978 +417331 776422 +417336 924453 +417344 877314 +417356 1.11834e+06 +417356 1.22633e+06 +417383 957025 +417406 713092 +417408 878603 +417411 705994 +417411 735769 +417411 1.12161e+06 +417417 706583 +417431 927222 +417439 743719 +417444 878378 +417453 706186 +417456 868508 +417472 731892 +417475 740872 +417486 773008 +417489 879183 +417492 915978 +417500 878042 +417500 977750 +417550 1.03324e+06 +417561 1.24201e+06 +417578 803681 +417589 704944 +417600 700833 +417603 811411 +417606 883200 +417611 938242 +417619 727425 +417619 1.08966e+06 +417625 707222 +417628 878000 +417636 726856 +417653 721986 +417658 836281 +417675 764431 +417681 888769 +417689 878578 +417689 886408 +417694 711292 +417694 1.11804e+06 +417697 911278 +417700 705289 +417703 879022 +417711 730603 +417711 810500 +417714 937128 +417717 887736 +417747 742986 +417747 780208 +417750 1.07112e+06 +417756 954172 +417758 725219 +417783 962208 +417794 1.10538e+06 +417797 714378 +417797 896889 +417800 790933 +417808 749342 +417817 991328 +417822 726125 +417828 878781 +417850 736944 +417858 881472 +417881 902561 +417886 896961 +417894 902192 +417897 699903 +417897 707608 +417911 1.07238e+06 +417925 1.10537e+06 +417939 867439 +417956 860808 +417958 879756 +417967 718978 +417975 879547 +417981 856433 +417981 864992 +417981 920706 +417986 866106 +417989 1.11818e+06 +417992 854192 +418006 731217 +418006 803692 +418008 879369 +418011 747469 +418011 880747 +418019 810492 +418025 718864 +418036 800567 +418061 883272 +418069 834425 +418072 770778 +418072 914939 +418083 722500 +418086 877933 +418089 880111 +418094 1.03503e+06 +418097 728311 +418097 879006 +418097 899650 +418108 782800 +418111 784450 +418128 729206 +418133 878181 +418136 713706 +418178 881733 +418214 877828 +418233 905381 +418239 714133 +418239 878517 +418242 906478 +418244 728942 +418258 1.0366e+06 +418261 931514 +418272 863611 +418281 866925 +418283 974547 +418289 740689 +418297 862542 +418317 908381 +418325 838625 +418328 879289 +418347 878617 +418350 878228 +418358 964667 +418383 1.11832e+06 +418386 941069 +418389 894794 +418394 847481 +418411 856686 +418417 893003 +418417 967083 +418428 878231 +418439 791453 +418444 901886 +418456 877539 +418456 916928 +418458 709500 +418472 853186 +418475 1.03661e+06 +418492 735572 +418500 876500 +418500 879644 +418500 883125 +418506 877936 +418506 878819 +418519 945581 +418525 726442 +418544 956003 +418550 843539 +418569 939217 +418575 909281 +418594 809542 +418617 881608 +418628 1.1199e+06 +418639 711250 +418639 878533 +418650 699917 +418650 807900 +418661 881069 +418661 892211 +418667 1.03667e+06 +418672 901594 +418700 1.06561e+06 +418708 786617 +418708 946772 +418711 715525 +418722 851947 +418725 757275 +418728 807731 +418731 728586 +418742 791525 +418742 801319 +418758 728017 +418767 938231 +418775 880669 +418778 879028 +418778 936783 +418786 713831 +418789 927892 +418792 878431 +418800 880078 +418814 878831 +418822 729775 +418847 882039 +418850 877844 +418875 883053 +418889 837789 +418889 879033 +418889 910564 +418897 879889 +418897 952319 +418906 713928 +418908 806764 +418919 933994 +418922 884722 +418931 911506 +418956 1.06204e+06 +418969 922781 +418975 840372 +418978 878139 +418983 935289 +418994 798456 +418994 879403 +419000 710903 +419003 748286 +419006 878567 +419011 837150 +419028 919214 +419039 777622 +419044 912544 +419050 803439 +419053 739767 +419056 878836 +419058 806906 +419067 713911 +419075 885992 +419086 727606 +419086 771333 +419092 950647 +419094 920842 +419103 880717 +419117 860100 +419125 881347 +419150 719094 +419164 833978 +419172 878956 +419172 1.04039e+06 +419183 834306 +419192 775392 +419194 917808 +419200 846306 +419200 886886 +419203 796406 +419203 1.12049e+06 +419211 730606 +419211 878092 +419211 913853 +419219 914167 +419228 1.11813e+06 +419233 855283 +419236 710528 +419239 890686 +419244 740617 +419258 878358 +419267 739131 +419269 739978 +419289 954936 +419292 726278 +419294 887503 +419297 888608 +419300 968114 +419308 889644 +419311 833269 +419317 879889 +419353 878656 +419375 964769 +419386 761361 +419389 719600 +419403 850006 +419403 1.03808e+06 +419414 931031 +419439 856325 +419442 848839 +419444 712861 +419464 863389 +419475 805544 +419503 972236 +419508 882422 +419511 890644 +419536 735111 +419539 727892 +419539 752808 +419539 860647 +419542 723028 +419550 879400 +419556 717028 +419558 786442 +419558 878708 +419561 1.21476e+06 +419572 765183 +419572 836597 +419575 864856 +419575 880808 +419578 783856 +419583 706678 +419583 853250 +419589 900992 +419611 757436 +419633 878272 +419633 879789 +419633 897744 +419633 1.03926e+06 +419636 781911 +419639 908175 +419656 716750 +419667 711875 +419667 925767 +419672 878075 +419675 1.21917e+06 +419708 845258 +419717 757436 +419750 880072 +419758 1.11856e+06 +419761 725922 +419767 714592 +419789 765158 +419797 736564 +419817 726511 +419825 793389 +419833 980833 +419836 909561 +419842 846619 +419842 861086 +419847 880797 +419850 862997 +419853 724467 +419856 718992 +419856 739886 +419861 773111 +419861 895792 +419864 843472 +419867 838311 +419872 725453 +419872 969139 +419889 886867 +419903 709756 +419942 882922 +419944 707250 +419950 881856 +419956 919675 +419956 925767 +419969 918619 +419972 741053 +419975 765375 +419981 911414 +419983 921972 +419994 881450 +419994 975981 +420003 803183 +420022 906069 +420028 715153 +420036 798111 +420039 839450 +420039 879703 +420044 877300 +420061 841900 +420064 854500 +420069 927753 +420075 962494 +420083 916439 +420086 920908 +420111 878406 +420128 965725 +420128 1.21408e+06 +420133 898906 +420144 865194 +420147 893322 +420153 943772 +420161 767272 +420167 740767 +420167 931633 +420178 933150 +420178 953550 +420181 740153 +420189 878028 +420225 945450 +420228 934522 +420231 706833 +420236 719503 +420253 1.21599e+06 +420256 881783 +420258 858156 +420267 960969 +420272 733297 +420317 942406 +420333 712194 +420333 877333 +420333 878833 +420333 880833 +420342 915975 +420347 936197 +420358 916819 +420372 882811 +420386 783411 +420392 940275 +420406 877825 +420411 876900 +420417 706728 +420428 880797 +420428 1.01042e+06 +420431 733456 +420436 739478 +420439 847575 +420456 802700 +420472 978336 +420494 929078 +420500 718806 +420500 725833 +420503 894311 +420503 904139 +420528 1.24283e+06 +420533 1.24266e+06 +420544 791583 +420544 1.04952e+06 +420569 947286 +420583 701792 +420583 739097 +420592 833908 +420592 910072 +420594 914425 +420597 938800 +420600 754281 +420639 832611 +420650 864950 +420650 1.04181e+06 +420658 948667 +420661 917953 +420664 879372 +420667 851361 +420683 955914 +420689 906656 +420694 761550 +420700 843306 +420708 832467 +420711 901739 +420711 916667 +420719 839717 +420722 717139 +420722 877228 +420750 708806 +420750 720339 +420750 794833 +420758 756408 +420775 739533 +420775 784300 +420781 768456 +420825 1.10954e+06 +420833 710189 +420833 713972 +420842 880131 +420853 836825 +420858 877175 +420864 779225 +420867 714750 +420869 864558 +420886 852347 +420897 768081 +420900 784944 +420914 881217 +420917 707061 +420925 888511 +420931 707931 +420933 849858 +420936 926756 +420942 883025 +420944 901567 +420944 918692 +420950 831897 +420950 899781 +420953 879375 +420964 1.11876e+06 +420969 792356 +420972 886928 +420978 885303 +420983 760497 +420986 759183 +420997 877808 +421014 725903 +421022 898333 +421028 772339 +421033 762625 +421042 723194 +421042 793333 +421058 842483 +421069 726208 +421069 936494 +421072 891792 +421081 859744 +421081 877358 +421083 720792 +421083 912850 +421094 792833 +421103 880342 +421111 716667 +421125 929883 +421128 760214 +421142 856378 +421142 967069 +421156 759592 +421161 721139 +421167 864542 +421181 880961 +421186 791986 +421200 855328 +421211 882578 +421217 770375 +421236 711792 +421236 724319 +421250 727500 +421256 894036 +421261 895792 +421269 892556 +421275 878289 +421275 961492 +421286 980294 +421292 800853 +421297 768211 +421306 715417 +421311 864072 +421333 758967 +421350 877581 +421372 769372 +421389 832417 +421392 879289 +421394 831783 +421397 715167 +421403 800153 +421417 712500 +421428 770550 +421458 707403 +421458 848089 +421461 771119 +421483 964881 +421486 726083 +421486 746486 +421503 840378 +421514 879597 +421519 944742 +421539 881361 +421547 897397 +421550 710092 +421564 777958 +421578 787153 +421583 723292 +421592 795956 +421606 842461 +421608 880814 +421611 932969 +421619 770944 +421619 789756 +421625 710417 +421625 834031 +421631 1.23647e+06 +421653 954367 +421656 882942 +421658 957928 +421664 935017 +421667 837817 +421669 768208 +421672 858469 +421675 878969 +421681 884281 +421686 920233 +421694 751297 +421706 880478 +421711 878444 +421717 923061 +421728 789481 +421778 846431 +421783 879978 +421811 723611 +421817 878003 +421817 883303 +421817 949767 +421861 863083 +421867 862606 +421872 935956 +421875 713069 +421878 927150 +421889 1.20345e+06 +421908 917850 +421917 1.1225e+06 +421933 843911 +421933 878664 +421936 924653 +421944 712000 +421944 719064 +421947 1.22708e+06 +421956 741342 +421958 707264 +421958 733625 +421969 880933 +421986 765528 +421992 975264 +421997 878092 +422008 882144 +422011 855800 +422039 915239 +422042 726167 +422047 834853 +422050 845528 +422064 781378 +422067 861667 +422069 1.21736e+06 +422075 880556 +422078 881406 +422094 857844 +422097 764936 +422119 882381 +422122 862719 +422125 721917 +422125 723458 +422125 881525 +422136 742192 +422139 721028 +422139 831939 +422156 798344 +422169 880494 +422172 738650 +422175 782756 +422178 858911 +422189 707861 +422192 860514 +422194 879794 +422208 709403 +422208 863694 +422222 710000 +422222 833967 +422231 780347 +422236 761836 +422242 918742 +422247 928744 +422250 1.21781e+06 +422272 1.114e+06 +422278 720472 +422281 755269 +422286 715231 +422306 970175 +422328 763428 +422328 962278 +422331 843272 +422339 738828 +422347 889489 +422353 721417 +422358 964722 +422383 853350 +422383 911869 +422408 832697 +422411 836131 +422411 883161 +422417 708903 +422417 711667 +422425 882019 +422431 847531 +422433 1.13881e+06 +422439 719928 +422444 831458 +422456 930644 +422458 712833 +422458 844014 +422458 1.22788e+06 +422464 882428 +422483 736536 +422486 886083 +422500 710667 +422506 831786 +422508 842131 +422525 788058 +422528 710028 +422528 737914 +422539 795047 +422542 733667 +422542 777908 +422564 725167 +422564 902794 +422575 832111 +422578 983461 +422583 845997 +422586 904228 +422589 881392 +422597 722403 +422603 738100 +422614 940683 +422625 718028 +422631 880039 +422639 792589 +422639 888442 +422653 898258 +422661 892411 +422667 720833 +422669 797108 +422675 947336 +422689 715244 +422692 968647 +422694 716167 +422697 1.04741e+06 +422703 776061 +422703 945483 +422711 890939 +422711 950928 +422714 939269 +422722 849633 +422733 831344 +422750 786731 +422756 1.22817e+06 +422761 881919 +422769 724014 +422781 749164 +422786 967264 +422789 878342 +422792 714167 +422806 942906 +422808 915303 +422814 833864 +422825 831753 +422831 879531 +422833 712333 +422833 837458 +422861 737392 +422867 917806 +422875 733208 +422886 772186 +422886 854181 +422900 882247 +422917 855872 +422933 754797 +422942 833100 +422944 791000 +422964 712931 +422967 896211 +422986 910147 +422989 739989 +423019 709083 +423031 855503 +423042 732486 +423056 933000 +423067 780161 +423083 852192 +423122 952503 +423125 722083 +423125 861131 +423136 1.22966e+06 +423139 893592 +423147 753919 +423147 884486 +423150 921919 +423153 934342 +423156 955983 +423178 902214 +423181 840206 +423189 851425 +423189 882581 +423194 716417 +423200 890581 +423208 713647 +423211 851797 +423217 964892 +423217 1.03072e+06 +423222 777386 +423222 795783 +423222 831764 +423222 1.11297e+06 +423236 925992 +423242 834003 +423250 726417 +423253 753128 +423256 833311 +423256 878411 +423267 1.22874e+06 +423278 776614 +423281 855697 +423286 881989 +423289 759681 +423292 757703 +423292 788683 +423314 830458 +423364 853522 +423367 767889 +423369 712097 +423369 773181 +423369 784583 +423369 832733 +423383 838886 +423403 725056 +423428 879981 +423428 890519 +423439 912483 +423442 793097 +423444 880417 +423447 882739 +423450 954714 +423458 715528 +423461 776617 +423472 768456 +423483 878842 +423497 900067 +423497 977917 +423508 738033 +423533 880933 +423564 732853 +423569 880767 +423583 710603 +423600 940519 +423600 975964 +423608 858794 +423608 930994 +423617 927683 +423636 878447 +423642 735953 +423642 790558 +423683 833528 +423683 882925 +423694 719486 +423703 879019 +423708 711833 +423708 725986 +423717 880900 +423736 725208 +423750 709833 +423758 829375 +423758 896331 +423764 712361 +423783 846986 +423786 973567 +423794 898222 +423800 881042 +423806 768736 +423811 881397 +423828 859569 +423861 829119 +423875 711000 +423883 958664 +423886 794414 +423886 895261 +423917 710333 +423917 715667 +423928 830497 +423933 883403 +423944 776969 +423944 917608 +423953 736983 +423953 946336 +423958 711792 +423967 881836 +423972 751739 +423986 880525 +423997 887403 +424031 862736 +424039 963583 +424067 924553 +424072 746147 +424075 1.24421e+06 +424078 772239 +424081 881317 +424083 710125 +424083 710542 +424086 882064 +424092 828919 +424094 774217 +424103 725314 +424106 880261 +424133 736736 +424133 890092 +424153 711569 +424156 964181 +424161 922147 +424167 716833 +424167 904289 +424169 880739 +424183 711067 +424222 886136 +424222 949894 +424228 721056 +424233 781575 +424247 941500 +424250 710667 +424264 709194 +424286 879239 +424286 1.12124e+06 +424292 764953 +424294 970894 +424297 913308 +424311 834833 +424331 829242 +424333 714500 +424361 1.23171e+06 +424364 893319 +424367 828769 +424375 1.22858e+06 +424392 1.23327e+06 +424394 837439 +424400 793319 +424400 856489 +424406 764969 +424408 736614 +424414 849242 +424417 760325 +424428 910061 +424433 850181 +424436 829069 +424444 716875 +424450 909319 +424461 878328 +424472 712250 +424500 732458 +424511 841806 +424514 844325 +424522 711375 +424528 750642 +424567 839464 +424578 986472 +424583 710667 +424583 713958 +424592 929383 +424594 764869 +424606 831347 +424606 836517 +424606 856964 +424614 777772 +424614 951517 +424625 831042 +424631 789361 +424642 926281 +424644 833764 +424647 710106 +424661 781153 +424667 709500 +424667 979058 +424669 922564 +424683 738167 +424683 791772 +424683 829556 +424683 896439 +424686 918892 +424689 922194 +424692 922808 +424694 938158 +424706 939933 +424708 709181 +424711 831422 +424717 884322 +424728 1.22802e+06 +424733 832219 +424733 917342 +424739 964133 +424750 957853 +424756 920636 +424772 726083 +424772 880956 +424775 830278 +424789 878236 +424792 711528 +424794 793342 +424800 711000 +424806 831669 +424806 834756 +424817 912722 +424842 914553 +424844 911228 +424850 830278 +424858 831053 +424889 960722 +424892 784811 +424892 955447 +424894 831447 +424908 762975 +424922 906428 +424928 923428 +424931 890367 +424947 1.07827e+06 +424964 832228 +424964 899894 +424969 828889 +424972 829372 +424975 941678 +424983 883297 +424994 975417 +425000 708583 +425000 952928 +425000 964000 +425006 906644 +425022 775075 +425025 887289 +425031 831836 +425047 711961 +425061 972033 +425064 710733 +425083 890317 +425092 846558 +425144 907514 +425158 736106 +425158 832733 +425183 737517 +425194 708972 +425203 933758 +425222 833061 +425225 932511 +425233 769769 +425247 835364 +425250 717603 +425256 710958 +425272 964828 +425278 709292 +425278 924453 +425292 712286 +425292 858553 +425294 837803 +425297 1.14305e+06 +425300 784731 +425311 755239 +425311 882481 +425311 885994 +425314 989778 +425328 904344 +425333 831464 +425339 784233 +425339 1.14364e+06 +425347 881436 +425358 1.13792e+06 +425364 997003 +425378 834811 +425381 883508 +425383 1.10114e+06 +425389 710486 +425392 829494 +425422 766664 +425436 716500 +425442 791669 +425458 714750 +425464 711742 +425467 832114 +425486 752456 +425489 748214 +425500 998622 +425511 946836 +425536 882944 +425536 1.10109e+06 +425542 930531 +425567 834739 +425578 888650 +425583 708806 +425586 1.13763e+06 +425608 776964 +425611 715903 +425631 1.1446e+06 +425636 848358 +425669 926219 +425678 775900 +425697 903806 +425700 921603 +425703 1.14607e+06 +425733 902308 +425750 709306 +425750 719986 +425761 1.1173e+06 +425775 881050 +425775 927867 +425778 1.21865e+06 +425781 885408 +425794 779428 +425803 830303 +425814 948458 +425819 724931 +425822 762094 +425833 718028 +425836 832456 +425842 886325 +425842 928842 +425847 878211 +425858 995375 +425875 726000 +425878 763672 +425883 959672 +425903 723103 +425906 749456 +425936 835994 +425939 861017 +425944 717250 +425953 789414 +425958 722272 +425961 760936 +425969 980333 +425972 828781 +425986 916419 +425989 976453 +425992 991422 +425992 1.14759e+06 +426011 761808 +426011 896383 +426017 887075 +426025 965589 +426028 850931 +426042 725569 +426042 727397 +426056 904297 +426056 950025 +426072 839294 +426081 833439 +426081 1.13782e+06 +426083 720764 +426103 719394 +426111 715750 +426114 833286 +426122 884822 +426144 941458 +426153 770925 +426153 774028 +426158 706625 +426169 767253 +426183 825311 +426183 893761 +426192 1.13676e+06 +426208 919000 +426214 951731 +426219 738331 +426225 972642 +426236 857603 +426242 731181 +426242 753319 +426242 790672 +426261 830336 +426272 905919 +426275 892531 +426278 962914 +426289 780547 +426289 850242 +426292 847389 +426319 707833 +426331 886436 +426333 713167 +426339 735542 +426342 745644 +426369 761792 +426375 709500 +426383 790281 +426389 832911 +426392 920469 +426406 845153 +426411 952094 +426425 737433 +426433 736092 +426444 914011 +426456 846489 +426461 924628 +426506 1.12192e+06 +426525 737567 +426539 739292 +426544 1.11604e+06 +426550 862019 +426567 935008 +426583 711375 +426606 780858 +426606 840731 +426608 770542 +426611 709972 +426642 939042 +426653 715736 +426658 715889 +426658 743100 +426667 717056 +426669 841742 +426708 892089 +426714 923372 +426728 885444 +426733 919133 +426736 952903 +426739 856447 +426764 768233 +426778 744858 +426781 754989 +426781 882761 +426792 708417 +426806 831339 +426811 827369 +426822 768689 +426828 890186 +426831 901175 +426831 1.03412e+06 +426833 966833 +426836 915339 +426839 1.02689e+06 +426856 787769 +426861 720444 +426881 880514 +426889 842831 +426894 907119 +426903 735650 +426911 738692 +426919 737250 +426950 738075 +426958 724533 +426981 878944 +427006 740342 +427006 749247 +427008 731092 +427011 898669 +427022 834028 +427022 922253 +427047 737553 +427069 711636 +427078 894369 +427103 925828 +427119 732042 +427125 764219 +427128 954364 +427131 854619 +427144 909906 +427156 780058 +427167 708792 +427178 738339 +427183 1.02464e+06 +427194 824922 +427197 962483 +427200 942000 +427203 1.11885e+06 +427208 942150 +427222 844275 +427242 1.14518e+06 +427250 1.10931e+06 +427256 778744 +427258 924753 +427261 877828 +427283 736922 +427289 974953 +427294 944475 +427300 737017 +427317 937328 +427325 845556 +427342 904783 +427356 946689 +427358 834189 +427361 903342 +427364 1.23422e+06 +427369 844839 +427400 781331 +427414 882242 +427419 932022 +427442 736919 +427456 895947 +427458 1.24496e+06 +427469 737594 +427469 844011 +427494 955514 +427519 929753 +427528 927950 +427533 847464 +427539 767028 +427583 758847 +427597 1.05382e+06 +427600 772267 +427622 848964 +427622 849925 +427625 1.04452e+06 +427631 882142 +427647 714403 +427653 714681 +427672 718128 +427675 787442 +427678 786136 +427703 832642 +427733 723836 +427739 918822 +427742 737006 +427756 889439 +427758 1.14703e+06 +427761 710778 +427794 969289 +427797 738461 +427803 892992 +427819 949483 +427844 832397 +427844 877661 +427847 851383 +427847 926675 +427853 884050 +427858 910994 +427861 724869 +427861 1.12854e+06 +427875 861089 +427892 855167 +427914 838464 +427919 836278 +427925 736817 +427942 961653 +427956 747536 +427958 746175 +427958 778172 +427964 1.12253e+06 +427972 788236 +427978 837050 +427981 761097 +428028 830131 +428047 1.02203e+06 +428081 922581 +428092 827558 +428103 898619 +428122 1.14898e+06 +428125 708778 +428125 860186 +428128 945267 +428139 720236 +428142 739400 +428144 837825 +428144 896350 +428147 959731 +428208 824861 +428214 776689 +428228 839444 +428239 721817 +428247 832647 +428256 788236 +428258 958072 +428264 739647 +428264 780900 +428264 842194 +428269 755450 +428289 965592 +428294 1.03e+06 +428297 786364 +428331 1.0873e+06 +428336 887322 +428353 716494 +428353 890675 +428386 841783 +428397 766936 +428406 1.06365e+06 +428408 856636 +428417 708611 +428419 918019 +428433 717356 +428442 828844 +428461 936139 +428467 948517 +428475 907106 +428475 920914 +428508 725583 +428522 834431 +428533 749858 +428536 893703 +428539 914053 +428542 978969 +428558 726036 +428583 709306 +428597 895381 +428600 1.06268e+06 +428614 1.05872e+06 +428642 782806 +428667 883333 +428667 1.06312e+06 +428667 1.0986e+06 +428686 773358 +428686 912358 +428689 769781 +428692 849031 +428694 856447 +428706 719522 +428708 858650 +428711 973969 +428714 1.12445e+06 +428728 1.00551e+06 +428739 987011 +428744 740469 +428778 885861 +428781 731972 +428786 840639 +428792 752514 +428794 884742 +428806 713278 +428814 882067 +428836 1.24072e+06 +428853 751936 +428853 909233 +428858 878631 +428864 788786 +428903 843514 +428906 785781 +428933 787942 +428933 932150 +428933 951508 +428944 739283 +428950 774350 +428958 928022 +428964 827689 +428986 756406 +429000 735858 +429000 784922 +429000 904308 +429006 786706 +429011 733519 +429022 774200 +429028 736878 +429033 735631 +429039 786925 +429042 722083 +429047 768631 +429047 776117 +429056 745722 +429058 881389 +429061 1.08583e+06 +429072 857919 +429086 765406 +429097 857631 +429106 767969 +429106 878606 +429108 745744 +429114 988489 +429119 777458 +429119 839847 +429125 824869 +429133 857053 +429169 835064 +429169 892178 +429189 767267 +429206 830450 +429208 1.12465e+06 +429261 893844 +429275 836300 +429275 1.2328e+06 +429289 888369 +429294 847986 +429294 852131 +429300 758531 +429303 732431 +429314 746231 +429317 765664 +429336 722786 +429336 853419 +429344 884053 +429347 746139 +429361 1.14405e+06 +429375 708394 +429375 880486 +429378 937931 +429386 737903 +429386 741886 +429386 919500 +429389 1.14712e+06 +429392 754614 +429392 840294 +429406 879958 +429411 856100 +429414 832892 +429442 1.12838e+06 +429461 831239 +429469 764294 +429478 743708 +429511 1.23363e+06 +429522 775906 +429528 925361 +429544 743769 +429550 1.153e+06 +429553 742856 +429558 772211 +429569 944408 +429572 838306 +429575 770578 +429575 916306 +429583 742333 +429597 878614 +429600 784058 +429603 901300 +429614 880125 +429617 771403 +429628 918081 +429639 787381 +429644 825231 +429647 786778 +429653 921994 +429658 788703 +429697 772306 +429708 824250 +429717 904331 +429731 778531 +429742 954972 +429744 741514 +429747 963181 +429764 881083 +429783 779844 +429792 956878 +429814 709483 +429819 841178 +429819 849469 +429825 774092 +429828 763408 +429836 906553 +429853 931917 +429856 839283 +429872 850711 +429875 960103 +429908 895331 +429933 978625 +429956 714553 +429958 849425 +429958 964850 +429978 841767 +429981 781878 +430008 738494 +430014 857681 +430017 847397 +430019 759772 +430022 899903 +430036 890164 +430036 916522 +430044 883767 +430050 980594 +430056 888072 +430058 843717 +430067 743681 +430069 936028 +430072 960581 +430078 842847 +430086 897383 +430106 786378 +430114 750044 +430117 882314 +430125 829281 +430125 836875 +430125 879725 +430125 892897 +430142 884725 +430150 750358 +430156 898953 +430167 880069 +430183 911825 +430203 788806 +430203 1.23292e+06 +430208 784956 +430214 966306 +430247 830778 +430250 1.08379e+06 +430256 749864 +430256 1.02556e+06 +430258 777456 +430281 733817 +430297 760047 +430333 710747 +430344 764483 +430344 766242 +430347 835181 +430361 711839 +430386 788644 +430386 856700 +430389 750708 +430389 879064 +430392 763044 +430431 880789 +430433 748600 +430444 911781 +430450 758669 +430467 770956 +430467 903797 +430472 762389 +430475 762208 +430481 761478 +430483 753789 +430486 765631 +430494 880075 +430514 833189 +430517 911411 +430517 913892 +430519 890756 +430522 929483 +430528 743442 +430581 762078 +430586 741969 +430592 923175 +430606 881064 +430608 884036 +430619 944267 +430622 893339 +430631 838511 +430631 862283 +430639 772336 +430639 859347 +430642 769906 +430650 1.24138e+06 +430653 760789 +430653 764733 +430656 952836 +430658 782700 +430664 926722 +430692 772992 +430700 942328 +430706 921500 +430717 707631 +430719 959042 +430731 894011 +430733 752881 +430736 755986 +430747 731544 +430753 757072 +430761 760011 +430761 887742 +430761 891994 +430769 861969 +430772 781872 +430775 894456 +430794 755397 +430794 757511 +430797 961753 +430797 982928 +430806 882611 +430806 967733 +430814 889117 +430825 756339 +430831 737850 +430831 971603 +430842 768697 +430844 862203 +430847 915681 +430853 779425 +430853 908831 +430858 706975 +430869 956269 +430881 707367 +430883 939900 +430886 843869 +430892 878875 +430906 734992 +430906 775153 +430922 753800 +430925 756517 +430944 790569 +430967 714656 +430972 895042 +430978 761456 +430978 852289 +430978 884022 +430978 938017 +430986 774422 +431000 735822 +431008 747733 +431008 752331 +431025 936017 +431044 742653 +431044 884592 +431047 846919 +431050 883419 +431053 752917 +431058 880694 +431064 762181 +431081 707781 +431086 774878 +431117 883922 +431117 884992 +431128 752714 +431128 946828 +431133 879000 +431144 896556 +431153 761461 +431167 839700 +431183 893794 +431186 836950 +431192 1.24407e+06 +431194 969611 +431200 855600 +431219 752919 +431225 1.23411e+06 +431264 934775 +431292 948989 +431306 714536 +431319 861547 +431331 1.1569e+06 +431333 724444 +431339 709269 +431339 882219 +431344 907053 +431347 761303 +431372 897467 +431378 725103 +431381 755711 +431414 951442 +431428 930042 +431433 771894 +431461 881661 +431464 917644 +431467 883067 +431497 977172 +431500 786969 +431536 932008 +431547 776158 +431564 985411 +431567 834106 +431572 753331 +431575 879017 +431586 763331 +431600 953272 +431606 1.23367e+06 +431608 857100 +431633 879644 +431636 730728 +431661 835244 +431683 890667 +431689 862639 +431703 970811 +431706 786906 +431722 733281 +431725 790361 +431725 1.01732e+06 +431742 879242 +431753 900678 +431767 838928 +431767 897947 +431769 730575 +431769 848464 +431772 1.24186e+06 +431775 837342 +431775 852528 +431789 881172 +431797 718228 +431800 954767 +431806 879006 +431811 958558 +431817 956553 +431819 903244 +431825 992917 +431836 892136 +431836 918639 +431839 889883 +431847 841150 +431850 904431 +431864 778042 +431867 844744 +431886 961333 +431906 1.12344e+06 +431911 960056 +431919 894556 +431947 887289 +431972 766547 +431975 942194 +431978 708742 +431992 785764 +432011 862389 +432053 962947 +432081 715381 +432097 776933 +432122 774303 +432122 829897 +432122 850736 +432136 779394 +432167 1.23341e+06 +432200 783872 +432200 857511 +432206 768153 +432219 717144 +432233 855514 +432239 771864 +432256 750617 +432256 979656 +432264 780269 +432294 831967 +432311 763011 +432322 994300 +432342 862483 +432344 708100 +432358 1.0811e+06 +432361 708208 +432364 879844 +432369 940411 +432375 879786 +432378 770617 +432378 947511 +432381 761411 +432386 724250 +432386 789100 +432397 975775 +432403 758842 +432417 752572 +432444 738328 +432464 781939 +432467 924358 +432472 767239 +432472 790503 +432478 760006 +432489 705997 +432506 895014 +432508 837942 +432547 861097 +432561 862675 +432586 828175 +432617 708658 +432625 936369 +432658 708650 +432669 735850 +432681 825308 +432694 914756 +432708 897219 +432717 769894 +432756 826211 +432789 900436 +432794 962325 +432814 835297 +432842 928108 +432867 761464 +432867 787106 +432869 897239 +432872 932019 +432881 777936 +432917 846075 +432925 850814 +432928 942178 +432947 945114 +432967 879875 +432983 724828 +432992 736356 +433000 736844 +433006 735864 +433008 965925 +433011 1.03825e+06 +433033 917856 +433036 707339 +433044 709761 +433050 888447 +433058 713247 +433058 1.00658e+06 +433072 964317 +433094 736444 +433097 788264 +433103 885181 +433139 895264 +433175 908447 +433178 883789 +433186 983464 +433197 879533 +433211 765792 +433228 764175 +433239 881667 +433247 951497 +433267 783892 +433269 751872 +433269 830803 +433300 785550 +433317 837381 +433336 882861 +433344 757483 +433347 903867 +433361 858108 +433369 833525 +433378 787150 +433381 890153 +433439 960019 +433525 974369 +433542 968917 +433561 1.24204e+06 +433617 704772 +433622 912164 +433636 1.24192e+06 +433639 925539 +433653 721739 +433681 1.24216e+06 +433714 937733 +433719 835833 +433767 723472 +433767 998586 +433789 846597 +433814 921139 +433814 1.12122e+06 +433817 879406 +433839 705453 +433844 890450 +433858 939464 +433864 951481 +433869 988442 +433872 878756 +433897 710656 +433903 894028 +433903 1.23311e+06 +433953 907742 +433956 854678 +433958 727011 +433961 944781 +433975 971361 +433981 764778 +433989 979833 +433992 957517 +433997 885325 +434017 948325 +434056 887050 +434061 761261 +434067 1.24223e+06 +434078 732600 +434081 844750 +434081 850386 +434097 843289 +434100 863486 +434114 1.06279e+06 +434131 1.06249e+06 +434139 719856 +434142 734881 +434147 842306 +434161 955344 +434167 863569 +434194 839508 +434194 935331 +434197 858000 +434203 828297 +434222 951019 +434222 1.23297e+06 +434231 972603 +434253 881833 +434253 984069 +434261 737128 +434269 826714 +434272 961756 +434308 825425 +434314 966969 +434317 880464 +434317 1.03474e+06 +434361 927822 +434392 707747 +434442 716478 +434442 932208 +434464 968356 +434478 892397 +434506 836964 +434514 886311 +434536 964339 +434553 765108 +434556 953206 +434578 888372 +434586 839303 +434594 762292 +434597 898683 +434636 1.1426e+06 +434667 707942 +434667 1.12033e+06 +434675 859419 +434697 1.11966e+06 +434706 879506 +434711 897442 +434717 729778 +434744 897703 +434764 839206 +434800 1.10762e+06 +434836 753369 +434908 854439 +434911 833969 +434919 1.16419e+06 +434925 704539 +434942 885447 +434958 893083 +434967 737767 +434967 912894 +434997 878503 +435008 704433 +435050 940878 +435053 929439 +435061 906681 +435072 863475 +435097 925036 +435169 732367 +435172 703781 +435172 884511 +435181 960181 +435197 1.14314e+06 +435206 917694 +435208 882289 +435236 835433 +435244 846947 +435250 841228 +435264 1.11932e+06 +435267 827353 +435278 714708 +435281 963583 +435325 900025 +435336 946314 +435336 1.0963e+06 +435364 937119 +435378 893000 +435392 890067 +435392 894625 +435408 1.16562e+06 +435422 891072 +435456 1.16812e+06 +435500 967000 +435503 857719 +435517 975072 +435522 879617 +435553 920100 +435556 734042 +435569 908886 +435592 863456 +435611 916358 +435642 1.1908e+06 +435653 927192 +435656 889064 +435669 761281 +435681 835142 +435681 1.00745e+06 +435689 860394 +435697 878233 +435725 932811 +435758 1.24174e+06 +435781 703222 +435825 964675 +435831 753456 +435839 712078 +435864 1.19053e+06 +435911 717372 +435914 884436 +435931 730456 +435944 838889 +435947 732661 +435964 1.11963e+06 +435978 882789 +435978 972903 +435986 1.23282e+06 +436008 831747 +436011 897936 +436033 840697 +436086 863639 +436106 729731 +436122 1.16391e+06 +436153 838419 +436156 842472 +436178 1.16933e+06 +436192 879519 +436200 955961 +436208 949883 +436222 1.16237e+06 +436228 877944 +436231 969422 +436242 725189 +436253 753675 +436275 897708 +436319 1.11773e+06 +436333 887294 +436347 914967 +436350 959325 +436367 1.13299e+06 +436375 941019 +436406 721444 +436414 702414 +436422 722522 +436433 760689 +436442 760864 +436461 1.08211e+06 +436481 933681 +436489 723197 +436522 903439 +436522 944608 +436522 947267 +436528 902233 +436536 834661 +436536 977825 +436542 962125 +436569 908542 +436575 715008 +436583 880069 +436589 1.23318e+06 +436614 702558 +436619 912183 +436631 1.16686e+06 +436647 968106 +436667 929744 +436669 946192 +436703 920831 +436703 935758 +436714 1.16815e+06 +436725 1.11914e+06 +436728 723092 +436728 843806 +436767 1.16911e+06 +436769 703717 +436775 951714 +436794 704447 +436808 1.14363e+06 +436861 885464 +436869 923889 +436936 883608 +436953 716311 +436958 1.1201e+06 +436972 1.14351e+06 +436981 854836 +436983 863639 +436986 954683 +437022 722900 +437022 910131 +437025 1.24096e+06 +437058 925719 +437067 730286 +437069 1.16619e+06 +437072 889900 +437094 980294 +437097 929694 +437100 749747 +437100 829317 +437156 984847 +437175 965025 +437208 919767 +437208 1.11989e+06 +437233 1.11111e+06 +437242 973886 +437292 878106 +437322 834511 +437347 702083 +437353 887811 +437403 928692 +437408 902722 +437419 907792 +437461 937286 +437467 989581 +437467 1.22461e+06 +437486 879769 +437508 877144 +437567 845858 +437569 716886 +437594 913464 +437614 967400 +437622 947069 +437633 915683 +437639 933289 +437667 1.03598e+06 +437678 941656 +437731 884469 +437817 864331 +437853 1.16942e+06 +437861 969272 +437867 754922 +437914 893197 +437950 953200 +437964 702594 +437972 900772 +437978 1.23058e+06 +437981 730881 +438006 701872 +438014 912394 +438019 830008 +438067 917914 +438078 886747 +438083 917528 +438108 993303 +438114 884833 +438194 831808 +438194 847686 +438261 967058 +438261 1.11789e+06 +438264 882461 +438278 944369 +438300 832700 +438306 906214 +438333 726344 +438333 880178 +438339 878200 +438339 1.01509e+06 +438342 704389 +438350 848669 +438419 938317 +438422 888358 +438442 889600 +438447 826514 +438456 921889 +438486 734239 +438500 963983 +438508 891217 +438522 696286 +438536 839650 +438547 1.04204e+06 +438556 924883 +438569 701036 +438600 760058 +438664 951167 +438667 930508 +438706 956000 +438725 961283 +438728 933011 +438731 1.11748e+06 +438736 1.16498e+06 +438750 855100 +438769 1.16994e+06 +438792 901653 +438822 844847 +438836 894933 +438844 912350 +438867 1.11677e+06 +438881 941564 +438883 1.00712e+06 +438906 928475 +438931 909903 +438933 756739 +438939 934936 +438958 753928 +438992 910811 +439006 852581 +439011 858517 +439097 1.00058e+06 +439106 698211 +439125 880356 +439144 699658 +439147 1.13612e+06 +439147 1.16197e+06 +439150 877472 +439181 1.23023e+06 +439186 1.22782e+06 +439225 902714 +439250 726664 +439275 699764 +439289 939558 +439325 1.03575e+06 +439389 949294 +439394 829969 +439411 832714 +439442 908128 +439461 761194 +439500 880842 +439547 862800 +439553 864525 +439583 947944 +439633 912561 +439681 889433 +439700 1.16818e+06 +439706 898167 +439742 756156 +439747 759111 +439781 756097 +439786 905039 +439792 711208 +439808 844864 +439822 1.17237e+06 +439825 968142 +439828 1.24099e+06 +439831 839589 +439844 918692 +439878 957556 +439883 922283 +439925 721294 +439925 1.02241e+06 +439961 700611 +440006 963172 +440011 759667 +440047 940656 +440056 914419 +440061 971136 +440078 760447 +440078 1.16916e+06 +440108 975264 +440125 757947 +440153 731678 +440164 709811 +440169 1.07955e+06 +440192 847994 +440217 924697 +440247 885425 +440261 900739 +440267 1.16962e+06 +440275 917697 +440281 928544 +440289 881628 +440300 927506 +440328 926453 +440394 887442 +440394 1.01665e+06 +440419 890983 +440422 954358 +440444 929975 +440461 829942 +440464 1.23021e+06 +440483 734603 +440486 836958 +440489 1.2335e+06 +440494 965950 +440500 916392 +440508 944181 +440522 1.23086e+06 +440536 711289 +440536 982753 +440547 707133 +440583 1.21314e+06 +440625 916956 +440661 878842 +440669 761306 +440692 927556 +440717 882989 +440717 1.11448e+06 +440747 892878 +440758 885250 +440778 935072 +440783 1.16933e+06 +440789 691822 +440792 985692 +440806 1.03231e+06 +440817 913489 +440839 932258 +440872 697994 +440881 758075 +440886 876575 +440953 693761 +440978 702317 +440978 918167 +440997 1.04628e+06 +441003 702153 +441025 851469 +441036 691094 +441036 1.2313e+06 +441058 942186 +441103 949044 +441108 887125 +441117 703922 +441125 1.03068e+06 +441161 937078 +441197 701081 +441278 763333 +441303 922514 +441306 909981 +441319 917186 +441333 730794 +441372 1.23065e+06 +441403 881639 +441447 878214 +441511 726569 +441511 1.03308e+06 +441522 720378 +441536 879567 +441536 928994 +441539 875692 +441544 757092 +441572 1.08871e+06 +441597 750319 +441636 939992 +441650 921714 +441650 938811 +441661 925347 +441672 732544 +441733 940336 +441742 932461 +441769 725061 +441772 880642 +441839 734361 +441858 884625 +441936 852133 +441969 725025 +441992 756072 +441994 877214 +442014 926461 +442022 884464 +442044 938153 +442097 690653 +442097 951283 +442133 719114 +442139 705453 +442139 894922 +442153 757975 +442189 935678 +442194 1.23204e+06 +442231 954692 +442236 705139 +442272 934444 +442275 918350 +442300 697758 +442303 697672 +442311 952639 +442333 956189 +442333 958719 +442361 964808 +442389 949756 +442392 876411 +442394 760861 +442444 697719 +442444 862961 +442444 863242 +442511 1.16968e+06 +442519 854011 +442528 915014 +442597 888647 +442600 725758 +442611 962872 +442619 884153 +442633 1.0495e+06 +442658 883142 +442694 835147 +442722 883389 +442722 929853 +442728 1.21173e+06 +442731 925447 +442742 1.23169e+06 +442761 941872 +442764 842386 +442781 724269 +442781 882719 +442783 961344 +442794 739803 +442794 834903 +442797 683256 +442800 883183 +442842 966853 +442858 697914 +442911 1.05502e+06 +442911 1.21548e+06 +442925 939647 +442942 926689 +442944 912350 +442947 908514 +442950 932686 +442972 947239 +443044 927903 +443050 699775 +443061 717706 +443106 697800 +443114 967981 +443125 899042 +443125 944603 +443147 847647 +443200 919147 +443214 889336 +443236 969261 +443244 752514 +443256 938375 +443258 881628 +443294 741317 +443347 886381 +443353 852150 +443358 759181 +443367 754633 +443378 727567 +443478 878272 +443483 1.06698e+06 +443508 898653 +443514 1.17266e+06 +443522 1.03765e+06 +443536 1.00373e+06 +443569 914203 +443581 890858 +443633 982139 +443636 862050 +443636 973769 +443644 971328 +443675 913164 +443683 1.00351e+06 +443731 716106 +443767 1.03729e+06 +443800 1.08038e+06 +443836 898172 +443839 920328 +443842 1.23109e+06 +443875 682044 +443875 975500 +443878 711736 +443894 937300 +443897 1.18949e+06 +443928 887397 +443936 1.22984e+06 +443978 1.22735e+06 +444006 926236 +444019 952556 +444053 729933 +444064 1.04375e+06 +444078 740875 +444097 1.03509e+06 +444108 833322 +444108 853989 +444161 1.18952e+06 +444169 949253 +444178 1.19112e+06 +444203 833308 +444214 841167 +444239 897803 +444258 690069 +444269 1.24068e+06 +444389 935811 +444392 901244 +444411 921478 +444447 885789 +444467 943950 +444469 957881 +444489 880603 +444494 922667 +444508 892847 +444511 908411 +444564 895439 +444583 689247 +444583 875031 +444583 931614 +444611 1.03638e+06 +444633 962469 +444633 1.18709e+06 +444644 889197 +444653 726850 +444669 731714 +444686 711856 +444753 701886 +444758 732125 +444775 884506 +444803 934283 +444814 702000 +444822 899639 +444889 715697 +444892 1.08056e+06 +444906 731114 +444908 1.03859e+06 +444914 731861 +444936 895586 +444983 845919 +445047 723686 +445047 1.14231e+06 +445050 734806 +445069 929053 +445072 964239 +445081 891306 +445150 883303 +445164 1.16041e+06 +445183 989881 +445192 880197 +445194 895458 +445214 994411 +445236 895744 +445258 1.21212e+06 +445264 1.09056e+06 +445283 939075 +445292 947206 +445328 675989 +445336 720036 +445339 704564 +445339 945261 +445367 1.22906e+06 +445386 877039 +445394 951167 +445403 697225 +445403 1.23366e+06 +445431 943661 +445433 684200 +445433 935758 +445469 696217 +445497 913925 +445514 949842 +445519 696322 +445531 942203 +445536 705514 +445600 905961 +445608 705458 +445617 725989 +445625 925336 +445647 1.23261e+06 +445678 916708 +445722 912272 +445736 687961 +445747 969019 +445758 914700 +445856 924503 +445883 695992 +445908 897672 +445928 702286 +445956 751694 +445986 715117 +446003 909628 +446083 940803 +446089 874325 +446089 956739 +446181 754075 +446194 862264 +446206 887622 +446217 1.23937e+06 +446228 937683 +446264 919656 +446269 900075 +446278 893086 +446292 921922 +446336 862344 +446336 1.21128e+06 +446356 726808 +446367 1.23105e+06 +446369 1.24052e+06 +446378 688456 +446378 695036 +446397 731108 +446403 931433 +446497 932425 +446531 1.23101e+06 +446564 832947 +446614 847147 +446622 1.11103e+06 +446689 901717 +446697 749817 +446706 701517 +446714 1.03852e+06 +446722 882425 +446803 911197 +446811 1.2306e+06 +446931 735625 +446942 754867 +446994 734533 +447050 1.22848e+06 +447081 1.00059e+06 +447089 962761 +447131 697911 +447133 934225 +447147 1.0342e+06 +447150 674619 +447197 1.23009e+06 +447214 737242 +447219 1.23919e+06 +447228 970297 +447300 1.16437e+06 +447319 932175 +447319 943500 +447322 924872 +447342 851758 +447369 904958 +447372 946167 +447394 931256 +447403 884447 +447408 890631 +447433 928522 +447439 947153 +447444 688375 +447458 966806 +447481 721767 +447489 928019 +447514 749947 +447539 1.08757e+06 +447542 1.22477e+06 +447578 902967 +447631 856206 +447636 912769 +447636 936256 +447650 697197 +447675 948953 +447678 932775 +447681 939272 +447692 941514 +447717 937811 +447747 1.22614e+06 +447764 949894 +447783 1.17828e+06 +447811 921458 +447822 886089 +447825 693839 +447828 939133 +447869 953514 +447892 952114 +447894 936019 +447906 958083 +447919 950969 +447931 897031 +447964 1.08506e+06 +447967 687619 +447972 1.06956e+06 +447975 698803 +447981 935267 +448008 749914 +448008 1.22793e+06 +448011 687783 +448011 900792 +448047 914431 +448086 1.24062e+06 +448100 955453 +448114 914983 +448117 722036 +448125 920714 +448147 718808 +448272 891694 +448278 929436 +448297 1.22793e+06 +448303 745139 +448342 873769 +448353 692744 +448375 1.08389e+06 +448386 687058 +448408 932981 +448411 1.2287e+06 +448433 1.22952e+06 +448481 930425 +448486 742953 +448486 1.23233e+06 +448508 937867 +448514 1.23186e+06 +448531 887881 +448547 934706 +448586 936614 +448614 926236 +448622 935306 +448644 752044 +448664 930003 +448664 1.23435e+06 +448731 916908 +448739 881428 +448753 1.07262e+06 +448756 919192 +448758 985183 +448778 977328 +448831 686725 +448833 694481 +448833 932828 +448836 931381 +448839 940414 +448872 878644 +448872 896200 +448878 943694 +448897 933497 +448900 883072 +448944 714964 +448956 854164 +448994 971147 +449008 935889 +449022 850608 +449028 927833 +449033 935661 +449033 941953 +449061 669906 +449069 728069 +449086 935928 +449089 1.07163e+06 +449097 896044 +449100 903156 +449111 1.16098e+06 +449133 935031 +449150 935531 +449181 731247 +449194 1.23316e+06 +449250 934625 +449264 913008 +449272 899633 +449281 748922 +449297 935222 +449328 960542 +449339 951872 +449342 686458 +449353 936319 +449361 946964 +449364 722056 +449367 936658 +449369 913928 +449397 935764 +449425 957233 +449431 1.23034e+06 +449461 686444 +449481 911506 +449508 929764 +449511 880467 +449519 910347 +449531 922911 +449531 929950 +449550 953661 +449564 905975 +449564 927656 +449583 1.24017e+06 +449592 896300 +449600 909369 +449611 907997 +449633 735878 +449636 938469 +449639 940472 +449667 923742 +449694 935139 +449714 936042 +449714 1.16283e+06 +449747 927567 +449767 856506 +449789 924356 +449800 932636 +449803 852111 +449808 888308 +449839 925558 +449861 1.22982e+06 +449864 734469 +449867 935714 +449903 1.23025e+06 +449917 931661 +449931 927567 +449939 733653 +449944 724003 +449958 928792 +449969 726717 +449975 917269 +449983 1.20215e+06 +449986 932056 +449992 883719 +450031 903356 +450050 720994 +450053 1.22782e+06 +450061 931564 +450072 936556 +450097 933489 +450097 961956 +450106 934553 +450117 999553 +450158 952383 +450214 927808 +450231 1.02036e+06 +450239 692903 +450269 930875 +450275 846747 +450314 927928 +450322 933383 +450328 933600 +450331 900739 +450350 991236 +450381 933864 +450408 932628 +450419 937889 +450436 920408 +450475 1.01601e+06 +450503 931564 +450533 932472 +450542 929564 +450544 877492 +450564 928058 +450575 930736 +450586 698828 +450586 921722 +450608 940731 +450617 834328 +450650 880342 +450650 939108 +450656 932017 +450681 1.22799e+06 +450697 929514 +450700 852644 +450725 934556 +450758 941897 +450761 933325 +450789 1.23485e+06 +450792 931469 +450817 943067 +450847 930097 +450861 932631 +450883 937342 +450900 929722 +450942 933561 +450953 935472 +450994 1.23394e+06 +451000 876306 +451003 914886 +451028 930789 +451050 932083 +451078 876142 +451078 932378 +451083 1.22896e+06 +451158 1.23206e+06 +451194 934022 +451200 932875 +451219 950431 +451231 925364 +451244 926733 +451272 945278 +451314 856167 +451386 903400 +451389 947778 +451403 891522 +451428 846603 +451439 1.22854e+06 +451475 1.22576e+06 +451486 931514 +451506 946828 +451558 936661 +451569 674053 +451581 851242 +451600 929931 +451603 930886 +451608 932347 +451672 911492 +451689 693850 +451719 938744 +451758 1.13895e+06 +451806 896833 +451825 1.22807e+06 +451833 692275 +451858 1.09246e+06 +451872 871208 +451889 672792 +451889 933972 +451931 953203 +451969 960194 +451978 933869 +452086 1.17864e+06 +452103 1.23198e+06 +452164 1.12637e+06 +452167 850139 +452192 966353 +452208 1.23075e+06 +452292 940017 +452311 1.22755e+06 +452325 880075 +452331 949397 +452333 932911 +452344 1.20184e+06 +452378 936542 +452386 686642 +452436 997767 +452439 935147 +452444 1.23114e+06 +452519 922711 +452536 689864 +452628 941242 +452631 1.22691e+06 +452661 932342 +452783 1.2301e+06 +452789 929850 +452897 1.22332e+06 +452917 964625 +452944 1.23175e+06 +452958 1.08913e+06 +453000 1.22772e+06 +453003 1.22972e+06 +453011 949439 +453039 935669 +453047 964444 +453056 937939 +453069 923619 +453142 916508 +453144 1.07362e+06 +453150 955997 +453153 944083 +453175 902083 +453181 852583 +453194 932022 +453206 927047 +453247 1.18087e+06 +453261 945458 +453319 973047 +453322 975197 +453325 937458 +453364 929969 +453417 1.23186e+06 +453489 1.11729e+06 +453533 1.19557e+06 +453544 1.17229e+06 +453561 926333 +453567 1.22839e+06 +453575 842239 +453575 1.22606e+06 +453622 685056 +453658 1.22611e+06 +453708 879522 +453733 849553 +453736 928897 +453806 947117 +453808 1.22594e+06 +453842 1.22763e+06 +453894 928478 +453933 938767 +453944 921422 +453975 1.2226e+06 +453981 929872 +454014 918489 +454019 926522 +454022 1.22752e+06 +454086 917439 +454086 968575 +454153 876075 +454169 920328 +454208 1.22669e+06 +454214 838183 +454222 1.16314e+06 +454264 1.17278e+06 +454314 1.2277e+06 +454317 849919 +454439 1.05407e+06 +454442 847867 +454444 990289 +454464 1.22638e+06 +454467 1.22758e+06 +454469 1.22529e+06 +454475 980983 +454514 925539 +454522 924544 +454531 996536 +454533 1.21129e+06 +454542 945181 +454556 1.12196e+06 +454558 944286 +454564 1.23843e+06 +454569 912731 +454594 695911 +454603 964333 +454631 911039 +454647 984861 +454686 1.22608e+06 +454711 897297 +454719 943406 +454833 1.18829e+06 +454836 1.22754e+06 +454853 929617 +454853 1.0897e+06 +454872 1.22802e+06 +454903 932475 +454944 1.22866e+06 +454975 957964 +454983 1.2243e+06 +454989 1.22763e+06 +455011 951242 +455042 1.22536e+06 +455050 1.22797e+06 +455061 917381 +455064 1.00032e+06 +455114 929800 +455200 1.23059e+06 +455200 1.23109e+06 +455228 1.23888e+06 +455231 1.22989e+06 +455236 1.22675e+06 +455261 925083 +455322 920192 +455344 1.22418e+06 +455372 1.00428e+06 +455394 1.22386e+06 +455461 902864 +455528 847839 +455572 942239 +455597 1.22559e+06 +455650 1.17916e+06 +455692 964342 +455700 935814 +455703 1.17527e+06 +455717 961731 +455719 889028 +455728 932242 +455761 924825 +455828 1.22352e+06 +455861 959136 +455864 929744 +455872 1.22398e+06 +455919 941658 +455953 968331 +455972 1.22992e+06 +456092 944514 +456136 1.23942e+06 +456144 955308 +456217 942067 +456275 685750 +456300 945697 +456367 894119 +456367 1.09251e+06 +456389 1.2266e+06 +456469 844744 +456503 953894 +456572 687103 +456592 924669 +456625 1.1056e+06 +456628 946897 +456647 939094 +456647 970494 +456667 1.2256e+06 +456692 1.08771e+06 +456700 1.21889e+06 +456717 1.22662e+06 +456722 1.18788e+06 +456747 948072 +456797 1.11038e+06 +456856 929653 +456967 904003 +457056 1.2152e+06 +457150 1.21463e+06 +457169 1.202e+06 +457228 931706 +457228 989406 +457278 1.21485e+06 +457311 944697 +457325 1.07611e+06 +457375 949522 +457394 919253 +457425 1.19194e+06 +457453 870644 +457544 1.22876e+06 +457558 936542 +457575 929622 +457694 996192 +457714 879947 +457761 1.11176e+06 +457764 926825 +457806 1.19216e+06 +457811 1.22532e+06 +457833 1.085e+06 +457839 847278 +457858 923808 +457869 879036 +457917 977506 +457950 880719 +458044 964989 +458086 961431 +458119 1.18489e+06 +458139 1.18424e+06 +458144 1.0081e+06 +458153 1.22741e+06 +458203 880658 +458208 1.20821e+06 +458225 918892 +458261 929683 +458294 957917 +458300 942933 +458347 1.00069e+06 +458350 1.09955e+06 +458400 1.19699e+06 +458406 1.19288e+06 +458406 1.22841e+06 +458528 870217 +458567 1.11332e+06 +458589 1.23192e+06 +458661 1.22405e+06 +458669 951519 +458708 1.12097e+06 +458769 932936 +458775 923672 +458842 1.06623e+06 +458853 953772 +458889 1.04552e+06 +458903 1.22806e+06 +458919 1.2396e+06 +458958 1.1949e+06 +459047 1.22743e+06 +459172 892442 +459175 1.19341e+06 +459267 1.16121e+06 +459344 904414 +459408 1.02159e+06 +459578 862461 +459747 948653 +459764 943622 +459817 941044 +459933 1.23921e+06 +459942 959764 +459964 684467 +460014 1.02636e+06 +460028 985267 +460042 956825 +460086 1.22843e+06 +460114 929442 +460131 914844 +460228 1.14177e+06 +460244 1.2391e+06 +460314 993786 +460342 1.12535e+06 +460494 1.18387e+06 +460522 1.18402e+06 +460642 886314 +460647 1.18342e+06 +460697 969014 +460706 936675 +460756 971514 +460811 886269 +460858 948656 +460892 1.22935e+06 +460911 945033 +460922 1.00629e+06 +460928 886422 +460981 883339 +460994 918247 +461014 1.23206e+06 +461078 976361 +461261 678408 +461303 949483 +461311 928672 +461336 1.00161e+06 +461381 934706 +461383 1.22937e+06 +461386 980900 +461450 1.15977e+06 +461469 1.22907e+06 +461531 953286 +461644 1.2294e+06 +461650 950389 +461653 1.23922e+06 +461831 1.03394e+06 +461875 1.22904e+06 +461881 1.2383e+06 +462003 1.2395e+06 +462033 1.23382e+06 +462069 1.19768e+06 +462114 1.19136e+06 +462150 1.19996e+06 +462258 976622 +462272 1.16028e+06 +462286 1.19099e+06 +462350 1.1624e+06 +462367 1.1212e+06 +462414 1.16466e+06 +462469 1.14159e+06 +462511 1.19901e+06 +462592 974558 +462633 1.19487e+06 +462636 965878 +462653 966056 +462664 1.06677e+06 +462667 950625 +462667 971319 +462667 1.00232e+06 +462706 1.18152e+06 +462753 1.22906e+06 +462806 957133 +462811 874408 +462831 960772 +462858 1.19283e+06 +463011 989542 +463044 1.1936e+06 +463192 1.1152e+06 +463217 954450 +463256 906608 +463322 1.13293e+06 +463394 1.17047e+06 +463422 1.20186e+06 +463433 942864 +463525 1.24053e+06 +463533 918222 +463550 855094 +463556 947919 +463572 982942 +463581 942006 +463592 987153 +463669 1.04284e+06 +463725 1.02327e+06 +463761 1.15937e+06 +463775 1.20308e+06 +463958 1.12729e+06 +463983 950144 +464022 1.20261e+06 +464039 1.01846e+06 +464050 1.16804e+06 +464081 943556 +464083 1.0584e+06 +464111 866478 +464164 1.17044e+06 +464167 1.17017e+06 +464281 902458 +464356 1.09834e+06 +464400 1.22846e+06 +464417 976808 +464425 951358 +464453 1.08541e+06 +464478 1.20419e+06 +464497 901864 +464542 927617 +464547 901708 +464736 938986 +464750 1.17602e+06 +464753 899397 +464775 939775 +464794 1.16254e+06 +464814 900528 +464822 939575 +464856 943603 +464886 876675 +464911 1.15798e+06 +464914 1.22937e+06 +464947 873542 +464992 876117 +465083 997708 +465100 1.14092e+06 +465150 916997 +465181 953758 +465206 942883 +465331 937100 +465392 1.02868e+06 +465436 873953 +465483 1.10901e+06 +465508 1.16924e+06 +465539 1.20382e+06 +465567 874372 +465575 1.20474e+06 +465586 1.22274e+06 +465622 921472 +465706 1.23296e+06 +465708 960828 +465747 1.22907e+06 +465789 1.16705e+06 +465839 917989 +465897 1.11915e+06 +465925 908836 +465928 1.12035e+06 +465944 955722 +466022 1.20505e+06 +466031 943092 +466064 1.20439e+06 +466181 1.20552e+06 +466231 976011 +466300 950886 +466486 970167 +466522 964194 +466542 1.20529e+06 +466622 1.22963e+06 +466636 1.1886e+06 +466639 924247 +466733 908947 +466811 680164 +466867 1.23732e+06 +467022 1.20754e+06 +467067 924281 +467164 1.22953e+06 +467181 944039 +467208 921039 +467217 924592 +467281 957006 +467311 939578 +467311 1.20698e+06 +467314 1.17179e+06 +467325 1.16999e+06 +467353 1.22988e+06 +467369 1.16769e+06 +467472 922253 +467539 895839 +467539 950978 +467567 884528 +467589 1.1408e+06 +467722 678344 +467786 884889 +467833 921064 +467900 681581 +467911 1.17249e+06 +467931 1.05312e+06 +467992 1.22869e+06 +467994 1.16555e+06 +468083 1.00783e+06 +468108 908181 +468150 1.01829e+06 +468172 958450 +468261 1.19174e+06 +468267 1.00889e+06 +468406 1.23231e+06 +468450 1.01411e+06 +468547 999156 +468569 1.22852e+06 +468606 680125 +468633 1.14048e+06 +468675 1.22265e+06 +468708 1.13944e+06 +468711 893139 +468722 1.13993e+06 +468739 967672 +468750 969000 +468753 965786 +468767 967031 +468772 967894 +468792 1.02789e+06 +468803 1.17363e+06 +468808 963164 +468839 1.02315e+06 +468853 1.03199e+06 +468864 960942 +468883 1.22687e+06 +468903 1.24103e+06 +468939 992994 +469006 972108 +469006 1.02045e+06 +469011 1.19629e+06 +469086 678264 +469103 1.17075e+06 +469106 987081 +469181 1.04004e+06 +469217 1.16897e+06 +469222 950583 +469233 980028 +469292 929194 +469422 1.22605e+06 +469556 1.23772e+06 +469631 1.24164e+06 +469678 1.19039e+06 +469722 1.18614e+06 +469736 1.23691e+06 +469811 1.23888e+06 +469814 1.23601e+06 +469833 1.20416e+06 +469850 1.04188e+06 +469933 935983 +469967 1.20547e+06 +470036 1.23408e+06 +470075 1.22908e+06 +470081 1.1714e+06 +470228 916706 +470344 1.22822e+06 +470381 1.22899e+06 +470533 1.23264e+06 +470625 1.09428e+06 +470700 886431 +470789 962586 +470969 1.2263e+06 +470981 1.22203e+06 +471014 945869 +471042 1.22433e+06 +471053 1.04712e+06 +471164 1.01299e+06 +471219 885689 +471269 885808 +471275 1.18379e+06 +471303 1.19277e+06 +471536 1.10218e+06 +471556 1.22433e+06 +471572 679358 +471586 1.00783e+06 +471633 1.22026e+06 +471700 1.22601e+06 +471733 884292 +471772 1.22185e+06 +471911 1.22289e+06 +471917 1.14891e+06 +471942 884072 +471956 1.20938e+06 +472033 1.22239e+06 +472044 1.2199e+06 +472156 1.23096e+06 +472233 1.17071e+06 +472236 1.20992e+06 +472283 934889 +472344 1.19851e+06 +472358 1.22549e+06 +472361 1.17369e+06 +472372 935300 +472375 884431 +472394 1.22356e+06 +472397 1.22515e+06 +472467 884539 +472483 1.22312e+06 +472531 1.22443e+06 +472586 685900 +472603 962586 +472633 1.01778e+06 +472647 1.22249e+06 +472711 1.117e+06 +472792 1.22251e+06 +472864 1.01922e+06 +472889 934275 +472892 1.01029e+06 +472944 912572 +472944 1.01622e+06 +472956 934186 +472994 1.22507e+06 +472997 965150 +473075 1.22227e+06 +473089 1.22002e+06 +473153 959683 +473178 1.19552e+06 +473206 932983 +473211 1.01381e+06 +473294 1.22579e+06 +473331 937925 +473333 1.1869e+06 +473353 1.16888e+06 +473458 1.05592e+06 +473517 968283 +473719 1.02754e+06 +473794 946039 +473803 931681 +473811 1.22234e+06 +473853 1.17171e+06 +473861 1.10925e+06 +473894 1.19489e+06 +473997 930722 +474019 1.22323e+06 +474039 970617 +474158 1.20292e+06 +474236 1.20309e+06 +474364 1.22339e+06 +474444 981236 +474497 991258 +474564 1.01137e+06 +474603 1.14882e+06 +474625 925397 +474703 1.15801e+06 +474706 1.22346e+06 +474736 948800 +474742 1.15927e+06 +474742 1.2226e+06 +474811 1.18253e+06 +474831 1.22216e+06 +474844 1.22293e+06 +474858 1.00443e+06 +474875 1.17575e+06 +474889 924647 +474892 928836 +474936 927778 +474958 1.21786e+06 +474981 973242 +474983 973700 +475000 1.113e+06 +475061 1.15998e+06 +475142 978356 +475197 921383 +475200 1.0089e+06 +475217 953981 +475225 1.20469e+06 +475233 925364 +475236 1.22623e+06 +475289 1.14101e+06 +475289 1.21824e+06 +475300 922369 +475303 1.22031e+06 +475325 926233 +475331 923400 +475361 962800 +475383 1.16118e+06 +475406 1.22635e+06 +475411 1.22175e+06 +475428 1.16181e+06 +475536 1.22663e+06 +475606 1.11545e+06 +475669 1.22157e+06 +475675 1.22631e+06 +475708 1.22221e+06 +475731 1.17681e+06 +475764 957511 +475831 1.22707e+06 +475850 1.22598e+06 +475964 1.2066e+06 +475972 1.15343e+06 +476000 1.22692e+06 +476064 1.22331e+06 +476092 1.14668e+06 +476092 1.22654e+06 +476106 1.22199e+06 +476114 1.19291e+06 +476147 1.11979e+06 +476211 1.22226e+06 +476225 1.22067e+06 +476247 1.2252e+06 +476319 1.22217e+06 +476369 958861 +476397 974531 +476447 1.17592e+06 +476464 1.22216e+06 +476472 1.2007e+06 +476481 1.21913e+06 +476483 1.17091e+06 +476492 996289 +476522 1.01415e+06 +476542 1.18149e+06 +476569 1.17195e+06 +476569 1.17282e+06 +476575 1.17239e+06 +476589 1.17425e+06 +476675 960097 +476742 1.2212e+06 +476778 1.16779e+06 +476800 991375 +476814 1.17282e+06 +476817 1.22208e+06 +476919 954308 +476936 1.14162e+06 +477033 1.22206e+06 +477086 919444 +477167 1.04156e+06 +477181 1.16951e+06 +477297 1.16769e+06 +477314 1.22551e+06 +477331 945483 +477342 975664 +477361 1.22645e+06 +477425 1.21984e+06 +477506 903342 +477569 1.2228e+06 +477575 1.22243e+06 +477589 1.18704e+06 +477600 1.22204e+06 +477614 1.22345e+06 +477639 981769 +477661 1.16786e+06 +477697 999350 +477736 971094 +477742 966078 +477847 1.22273e+06 +477883 1.22308e+06 +477964 1.22382e+06 +478022 1.03283e+06 +478056 922744 +478108 1.22376e+06 +478125 1.16896e+06 +478139 1.12679e+06 +478200 1.10672e+06 +478211 1.22314e+06 +478222 1.22281e+06 +478392 958542 +478411 1.20015e+06 +478525 926894 +478556 1.2197e+06 +478564 1.04044e+06 +478569 1.21696e+06 +478628 1.21815e+06 +478822 962739 +479033 918669 +479067 976264 +479131 1.22097e+06 +479189 973647 +479253 970325 +479300 970242 +479325 1.19037e+06 +479417 1.19002e+06 +479447 1.22303e+06 +479506 1.24384e+06 +479533 1.02134e+06 +479625 995297 +479656 1.18975e+06 +479664 1.16868e+06 +479772 1.02496e+06 +479792 1.22201e+06 +480083 1.1967e+06 +480403 1.22405e+06 +480428 983358 +480511 1.19902e+06 +480519 1.22176e+06 +480561 1.00929e+06 +480633 1.14072e+06 +480797 1.23101e+06 +480842 1.21968e+06 +480906 1.0564e+06 +480961 1.19779e+06 +480981 1.09048e+06 +481128 988647 +481131 1.05198e+06 +481172 1.22759e+06 +481183 1.23429e+06 +481192 961808 +481333 1.03633e+06 +481444 1.04516e+06 +481703 1.11945e+06 +481786 1.10111e+06 +481808 1.17036e+06 +481958 1.14312e+06 +481967 967725 +481969 1.06636e+06 +481989 1.22124e+06 +482200 1.22685e+06 +482258 1.14275e+06 +482325 1.01296e+06 +482364 1.01133e+06 +482414 1.22369e+06 +482556 1.216e+06 +482753 1.01428e+06 +482764 1.17714e+06 +482767 1.16552e+06 +482889 994372 +482917 973711 +482933 1.22642e+06 +483078 1.12249e+06 +483172 1.0239e+06 +483328 968206 +483444 1.03165e+06 +483458 1.00405e+06 +483597 1.07874e+06 +483614 1.19582e+06 +483636 1.20121e+06 +483689 999958 +483725 1.14181e+06 +483883 1.15555e+06 +483925 1.22494e+06 +483972 1.02938e+06 +483986 977408 +483989 935556 +484111 1.14337e+06 +484111 1.19526e+06 +484122 974103 +484214 1.22333e+06 +484500 968722 +484633 1.15889e+06 +484758 1.22324e+06 +484867 992094 +485039 1.22236e+06 +485053 1.11856e+06 +485106 1.10967e+06 +485128 1.22611e+06 +485333 1.08783e+06 +485344 1.23016e+06 +485394 1.21745e+06 +485467 1.17904e+06 +485500 1.09683e+06 +485569 1.13012e+06 +485711 971775 +485775 965203 +485867 933989 +485900 1.09231e+06 +486011 934108 +486108 1.18055e+06 +486331 1.12325e+06 +486483 1.18737e+06 +486608 998411 +486747 1.02082e+06 +486914 1.16315e+06 +487006 961814 +487053 1.19438e+06 +487125 945997 +487411 1.17416e+06 +487458 1.22401e+06 +487597 1.22487e+06 +487600 983678 +487633 1.01513e+06 +487744 969461 +487747 1.04562e+06 +487925 1.0542e+06 +487939 976219 +488031 1.02246e+06 +488131 1.00061e+06 +488272 1.00445e+06 +488392 997444 +488461 957625 +488467 1.2259e+06 +488578 996175 +488800 1.15052e+06 +489053 953142 +489094 1.0102e+06 +489142 1.03294e+06 +489203 1.22341e+06 +489233 979178 +489392 1.19434e+06 +489467 1.22451e+06 +489664 972433 +489939 1.22746e+06 +490000 1.22264e+06 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/tabu_search b/trunk/paradiseo-mo/tutorial/tutorial/Lesson2/tabu_search new file mode 100755 index 0000000000000000000000000000000000000000..1102aac51259aadfa5f7171e219f5c478d153a23 GIT binary patch literal 560656 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

qY_zF~y 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 +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +int main (int __argc, char * __argv []) { + + if (__argc != 2) { + + std :: cerr << "Usage : ./tabu_search [instance]" << std :: endl ; + return 1 ; + } + + Graph :: load (__argv [1]) ; // Instance + + Route route ; // Solution + + RouteInit init ; // Sol. Random Init. + init (route) ; + + RouteEval full_eval ; // Full. Eval. + full_eval (route) ; + + std :: cout << "[From] " << route << std :: endl ; + + /* Tools for an efficient (? :-)) + local search ! */ + + TwoOptInit two_opt_init ; // Init. + + TwoOptNext two_opt_next ; // Explorer. + + TwoOptIncrEval two_opt_incr_eval ; // Eff. eval. + + TwoOptTabuList tabu_list ; // Tabu List + + moNoAspirCrit aspir_crit ; // Aspiration Criterion + + moGenSolContinue cont (50000) ; // Continuator + + moTS tabu_search (two_opt_init, two_opt_next, two_opt_incr_eval, tabu_list, aspir_crit, cont, full_eval) ; + tabu_search (route) ; + + std :: cout << "[To] " << route << std :: endl ; + + return 0 ; +} + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/Makefile.am b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/Makefile.am new file mode 100644 index 000000000..967652ed5 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/Makefile.am @@ -0,0 +1,20 @@ +INCLUDES = -I${EO_DIR}/src/ -I ../../src/ -I ../examples/tsp/src/ + +AM_CXXFLAGS =\ + -Wall\ + -Werror\ + -Wno-deprecated\ + -ansi\ + -pedantic + +bin_PROGRAMS = simulated_annealing + +############################## +simulated_annealing_SOURCES = simulated_annealing.cpp + +simulated_annealing_LDFLAGS = + +simulated_annealing_LDADD = \ + ${EO_DIR}/src/libeo.a\ + ${EO_DIR}/src/utils/libeoutils.a\ + ../examples/tsp/src/libtsp.a diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/ali535.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/ali535.tsp new file mode 100644 index 000000000..7fec4bf14 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/ali535.tsp @@ -0,0 +1,536 @@ +535 +36.49 7.49 +57.06 9.51 +30.22 48.14 +5.15 -3.56 +34.59 -106.37 +57.12 -2.12 +16.45 -99.45 +5.36 -0.1 +28.56 -13.36 +8.59 38.48 +12.5 45.02 +-34.48 138.38 +30.23 -9.33 +56.18 12.51 +36.4 -4.3 +40.38 8.17 +35.11 -3.5 +41.55 8.48 +-37.01 174.47 +38.17 -0.34 +36.42 3.13 +36.11 37.14 +35.14 -101.42 +31.58 35.59 +52.18 4.46 +61.1 -149.59 +39.57 32.41 +51.11 4.28 +17.08 -61.47 +43.37 13.22 +29.38 35.01 +59.39 17.55 +15.18 38.55 +-25.14 -57.31 +23.58 32.47 +37.54 23.44 +33.46 -84.31 +12.3 -70.01 +24.26 54.28 +36.55 30.48 +26.16 50.38 +40.29 50.01 +39.11 -76.4 +10.48 -74.52 +-16.11 -52.3 +10.25 45.01 +41.18 2.05 +32.22 -64.42 +41.56 -72.41 +40.39 17.57 +44.49 20.19 +9.21 34.31 +32.06 20.16 +52.29 13.24 +48.27 -4.25 +-19.48 3.45 +33.49 35.29 +54.39 -6.14 +35.48 -101.22 +4.24 18.31 +13.04 -59.3 +60.17 5.13 +44.48 -68.5 +33.14 44.14 +45.4 9.24 +33.34 -86.45 +52.27 -1.45 +42.33 9.29 +45.48 -108.37 +43.28 -1.32 +13.21 -16.4 +-3.19 29.19 +13.55 100.36 +12.38 -8.02 +55.44 9.09 +44.32 11.18 +12.57 77.4 +-15.41 34.58 +27.13 56.22 +-27.25 153.05 +44.5 -0.43 +4.42 -74.09 +50.47 -1.51 +19.05 72.52 +67.16 14.22 +42.22 -71 +53.03 8.48 +41.08 16.47 +46.55 7.3 +51.31 -2.35 +50.54 4.29 +-15.52 -47.55 +47.35 7.32 +48.1 16.13 +47.27 19.15 +-34.49 -58.32 +42.55 -78.38 +44.3 26.06 +49.27 2.07 +-4.15 15.15 +39.15 9.04 +30.08 31.24 +23.11 113.16 +33.33 -7.4 +-11.54 22.45 +4.49 -52.22 +52.13 0.11 +-35.19 149.12 +10.36 -66.59 +22.39 88.27 +52.5 -1.19 +49.01 2.33 +43.33 6.57 +45.4 -0.19 +39.37 19.55 +50.52 7.09 +41.59 -87.54 +41.48 12.36 +9.34 -13.37 +41.25 -81.51 +3.26 -76.25 +42.31 8.48 +-28.02 145.37 +7.11 79.53 +40.04 -83.04 +33.22 -7.35 +48.07 7.22 +44.22 28.29 +45.4 -0.19 +6.21 2.23 +55.37 12.39 +-33.58 18.36 +37.28 15.04 +10.27 -75.31 +-26.25 146.14 +39 17.05 +12.12 -68.57 +39.09 -84.2 +39.03 -84.2 +51.24 -3.12 +29.11 -81.03 +23.46 90.23 +14.45 42.59 +32.5 -96.51 +33.25 36.31 +-6.53 39.12 +42.34 18.16 +-29.58 30.57 +38.51 -77.02 +28.34 77.07 +39.46 -104.53 +32.46 -96.24 +26.16 50.1 +47.16 5.05 +33.52 10.47 +14.45 -17.3 +4.01 9.43 +19.08 30.26 +25.16 51.34 +49.22 0.1 +-8.45 115.1 +51.08 13.46 +-12.25 130.52 +42.14 -83.32 +42.13 -83.21 +53.26 -6.15 +51.17 6.45 +25.15 55.2 +0.03 32.26 +45.32 4.18 +55.57 -3.22 +51.27 5.23 +31.48 -106.16 +52.5 -1.19 +48.19 6.04 +40.07 33 +40.09 82.4 +40.42 -74.1 +50.44 -3.25 +-34.49 -58.32 +64.49 -147.51 +37.01 -7.58 +-11.35 27.31 +59.54 10.37 +41.49 12.15 +14.35 -61 +33.56 45.8 +-4.23 15.26 +43.49 11.12 +8.37 -13.12 +41.26 15.32 +50.02 8.34 +44.12 12.04 +-21.13 27.29 +28.27 -13.52 +53.29 -1 +-19.27 29.52 +54.23 18.28 +60.12 11.05 +24.57 10.1 +-22.5 -43.15 +55.52 -4.26 +45.22 5.2 +7.09 41.43 +44.25 8.5 +57.4 18.18 +41.54 2.46 +37.11 -3.47 +47 15.26 +51.09 -0.11 +14.34 -90.32 +46.14 6.07 +-2.09 -79.53 +52.28 9.42 +53.38 10 +60.19 24.58 +35.2 25.11 +30.2 120.51 +22.19 114.12 +31.4 6.09 +35.33 139.46 +21.2 -157.55 +29.59 -95.28 +38.57 -77.27 +43.06 -78.57 +38.52 1.22 +47.34 -97.27 +50.21 30.55 +-25.44 -54.28 +39.44 -86.17 +40.59 28.49 +38.17 27.1 +21.3 39.12 +49.13 -2.12 +40.38 -73.46 +11.33 43.1 +-6.09 106.51 +-26.08 28.15 +-3.22 36.38 +45.28 -73.44 +12.03 8.31 +34.34 69.12 +63.59 -22.37 +-1.58 30.08 +22.34 120.17 +24.54 67.09 +-6.18 155.43 +17.56 -76.48 +50.05 19.47 +15.36 32.33 +27.42 85.22 +3.08 101.33 +29.13 47.58 +-8.51 13.14 +10.36 -66.59 +36.04 -115.09 +33.56 -118.24 +53.52 -1.39 +48.58 2.27 +0.27 9.25 +34.52 33.38 +43.11 0 +59.49 30.17 +36.51 -2.22 +51.24 12.25 +51.25 12.14 +6.1 1.15 +40.46 -73.52 +33.57 -118.24 +50.38 5.27 +51.09 -0.11 +51.28 -0.27 +50.34 3.05 +-12.01 -77.07 +45.27 9.16 +38.46 -9.08 +46.13 14.28 +35.3 12.37 +48.14 14.11 +51.28 -0.27 +6.35 3.2 +27.56 -15.23 +-16.3 -68.11 +53.21 -2.53 +6.1 1.15 +51.53 -0.22 +-25.55 32.34 +-15.2 28.27 +4.27 114 +49.37 6.12 +-17.49 25.49 +25.41 32.43 +45.44 4.56 +13 80.11 +40.29 -3.34 +31.52 -4.13 +53.21 -2.16 +-3.04 -60 +10.34 -71.44 +-4.02 39.36 +46.22 15.47 +39.18 -94.44 +28.32 -81.2 +23.36 58.17 +44.25 8.5 +-37.44 144.54 +24.31 39.42 +-37.41 144.51 +19.26 -99.04 +12.07 -86.11 +2.01 45.19 +25.48 -80.17 +20.56 -89.41 +45.27 9.16 +35.45 10.45 +39.07 -94.36 +35.52 14.29 +4.11 73.32 +47.45 7.26 +55.33 13.22 +54.31 -1.25 +14.31 121.01 +55.58 37.25 +43.35 3.58 +-25.55 32.34 +-8.58 125.13 +43.26 5.13 +-20.26 57.41 +51.21 1.21 +44.53 -93.13 +53.52 27.33 +50.55 5.47 +29.59 -90.16 +-26.31 31.19 +48.08 11.42 +-34.5 -56.02 +45.38 8.43 +49.05 6.08 +-17.45 177.27 +40.53 14.18 +25.02 -77.28 +-1.19 36.56 +43.4 7.13 +55.02 -1.41 +45.56 6.06 +12.08 15.02 +32.56 129.56 +35.09 36.17 +13.29 2.1 +18.06 -15.57 +-13 28.39 +58.35 16.15 +35.45 140.23 +47.09 -1.36 +49.3 11.05 +52.41 1.17 +40.38 -73.46 +55.28 10.2 +46.26 30.41 +26.21 127.46 +35.26 -97.46 +40.54 9.31 +41.07 -95.55 +41.14 -8.41 +41.59 -87.54 +51.5 -8.29 +28.26 -81.19 +35.38 -0.37 +48.43 2.23 +34.47 135.27 +60.12 11.05 +51.12 2.52 +44.34 26.06 +12.21 -1.31 +43.26 -5.5 +18.34 -72.17 +48.43 2.23 +40.05 116.36 +-31.56 115.58 +4.52 7.02 +37.08 -76.3 +39.52 -75.15 +33.26 -112.01 +55.52 -4.26 +46.35 0.18 +40.3 -80.14 +-5.15 39.49 +39.33 2.44 +38.1 13.06 +11.33 104.51 +36.49 11.58 +-9.27 147.13 +10.36 -61.21 +9.05 -79.23 +50.06 14.16 +43.41 10.24 +42.26 14.11 +16.16 -61.32 +9.03 -79.24 +43.23 -0.25 +45.39 12.12 +31.37 -8.03 +34.03 -6.45 +-8.08 -34.55 +38.04 15.39 +64.08 -21.57 +16.54 96.09 +49.19 4.03 +36.23 28.07 +-29.43 -53.42 +-22.5 -43.15 +45.13 14.35 +44.01 12.37 +48.04 -1.44 +6.14 -10.22 +41.49 12.15 +14.1 145.15 +-32.55 -60.47 +51.57 4.26 +24.42 46.44 +33.37 73.06 +6.3 -58.15 +15.29 44.13 +13.42 -89.07 +32.44 -117.11 +-23 -47.08 +29.32 -98.28 +-17.56 31.06 +48.31 -24.8 +-33.23 -70.47 +42.54 -8.25 +33.14 44.14 +18.26 -69.4 +47.27 -122.18 +27 14.27 +37.33 126.48 +51.34 0.42 +-4.4 55.31 +37.37 -122.23 +31.12 121.2 +25.21 55.24 +16.45 -22.57 +1.21 103.54 +37.22 -121.56 +43.49 18.2 +9.58 -84.16 +9.59 -84.12 +18.26 -66.01 +40.31 22.58 +41.58 21.38 +40.53 -111.57 +36.58 -25.1 +52.42 -8.55 +42.42 23.24 +43.32 16.18 +-12.54 -38.2 +38.45 -90.22 +51.33 0.14 +59.39 17.55 +48.41 9.13 +38.54 16.15 +58.53 5.38 +55.58 37.25 +37.26 -5.54 +48.32 7.38 +52.22 13.3 +-33.56 151.1 +29.33 52.36 +47.48 13 +40.31 17.24 +41.19 69.24 +28.29 -16.2 +38.31 -28.43 +43.11 0 +28.29 -16.2 +14.02 -87.14 +52.29 13.24 +35.41 51.19 +41.2 19.47 +32.4 13.09 +43.37 1.23 +32.01 34.53 +22.49 5.27 +0.23 6.43 +35.43 -5.55 +-18.48 47.29 +33.56 8.06 +-24.42 -53.42 +25.04 121.33 +37.55 12.29 +51.23 -2.43 +45.12 7.39 +45.5 13.28 +45.39 12.12 +47.26 0.43 +36.18 -95.52 +36.51 10.14 +52.34 13.18 +35.33 139.46 +35.54 -83.53 +40.62 13.11 +-0.08 -78.29 +12.41 101.01 +13.45 -60.57 +44.55 4.58 +43.14 27.49 +45.3 12.21 +-23 -47.08 +48.07 16.33 +39.29 -0.29 +41.42 -4.51 +45.24 10.53 +38.57 -77.27 +52.1 20.58 +36.45 -6.04 +53.19 -113.35 +44.53 -63.31 +45.41 -74.02 +45.19 -75.4 +46.48 -71.24 +42.16 -82.58 +48.57 -54.34 +45.28 -73.44 +49.11 -123.1 +49.55 -97.14 +51.07 -114.01 +47.37 -52.45 +43.41 -79.38 +44.06 15.21 +45.45 16.04 +41.4 -1.03 +-6.13 39.13 +47.28 8.33 +51.33 0.14 +24.58 91.53 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/eil101.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/eil101.tsp new file mode 100644 index 000000000..f12903349 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/eil101.tsp @@ -0,0 +1,102 @@ +101 +41 49 +35 17 +55 45 +55 20 +15 30 +25 30 +20 50 +10 43 +55 60 +30 60 +20 65 +50 35 +30 25 +15 10 +30 5 +10 20 +5 30 +20 40 +15 60 +45 65 +45 20 +45 10 +55 5 +65 35 +65 20 +45 30 +35 40 +41 37 +64 42 +40 60 +31 52 +35 69 +53 52 +65 55 +63 65 +2 60 +20 20 +5 5 +60 12 +40 25 +42 7 +24 12 +23 3 +11 14 +6 38 +2 48 +8 56 +13 52 +6 68 +47 47 +49 58 +27 43 +37 31 +57 29 +63 23 +53 12 +32 12 +36 26 +21 24 +17 34 +12 24 +24 58 +27 69 +15 77 +62 77 +49 73 +67 5 +56 39 +37 47 +37 56 +57 68 +47 16 +44 17 +46 13 +49 11 +49 42 +53 43 +61 52 +57 48 +56 37 +55 54 +15 47 +14 37 +11 31 +16 22 +4 18 +28 18 +26 52 +26 35 +31 67 +15 19 +22 22 +18 24 +26 27 +25 24 +22 27 +25 21 +19 21 +20 26 +18 18 +35 35 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/pr2392.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/pr2392.tsp new file mode 100644 index 000000000..010a2c7ec --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/pr2392.tsp @@ -0,0 +1,2393 @@ +2392 +1639 2156 +1875 2925 +2150 2925 +2425 2925 +2525 2675 +2525 2575 +2525 2375 +2525 2275 +2525 2175 +2786 2148 +2786 2249 +2786 2352 +2785 2451 +2785 2552 +2787 2651 +2925 2925 +3198 2925 +3475 2925 +3725 2925 +3675 2675 +3675 2575 +3675 2375 +3675 2275 +3675 2175 +4189 2156 +4190 2256 +4190 2355 +4189 2456 +4189 2556 +4190 2656 +4275 2975 +4425 2925 +4700 2925 +4975 2925 +5075 2675 +5075 2575 +5075 2375 +5075 2275 +5075 2175 +5336 2148 +5336 2249 +5336 2352 +5335 2451 +5335 2552 +5337 2651 +5475 2925 +5748 2925 +6025 2925 +6275 2925 +6225 2675 +6225 2575 +6225 2375 +6225 2275 +6225 2175 +6739 2156 +6740 2256 +6740 2355 +6739 2456 +6739 2556 +6740 2656 +6825 2975 +6975 2925 +7250 2925 +7525 2925 +7625 2675 +7625 2575 +7625 2375 +7625 2275 +7625 2175 +7886 2148 +7886 2249 +7886 2352 +7885 2451 +7885 2552 +7887 2651 +8025 2925 +8298 2925 +8575 2925 +8825 2925 +8775 2675 +8775 2575 +8775 2375 +8775 2275 +8775 2175 +9289 2156 +9290 2256 +9290 2355 +9289 2456 +9289 2556 +9290 2656 +9375 2975 +9525 2925 +9800 2925 +10075 2925 +10175 2675 +10175 2575 +10175 2375 +10175 2275 +10175 2175 +10436 2148 +10436 2249 +10436 2352 +10435 2451 +10435 2552 +10437 2651 +10575 2925 +10848 2925 +11125 2925 +11325 2175 +11325 2275 +11325 2375 +11325 2575 +11325 2675 +11375 2925 +11375 3125 +11400 3225 +11400 3325 +11400 3475 +11400 3625 +11300 3825 +11125 3825 +11125 3925 +11025 3975 +10925 3975 +10925 3875 +10550 3925 +10550 3725 +10550 3325 +10100 3325 +10100 3725 +10100 3925 +9725 3875 +9725 3975 +9625 3975 +9550 3875 +9425 3875 +9275 3900 +9250 3700 +9250 3575 +9250 3475 +9250 3375 +9250 3275 +8825 3125 +8850 3225 +8850 3325 +8850 3475 +8850 3625 +8750 3825 +8575 3825 +8575 3925 +8475 3975 +8375 3875 +8375 3975 +8400 4125 +8300 4175 +8400 4275 +8500 4175 +8675 4325 +8775 4425 +8825 4325 +9275 4275 +9375 4275 +9325 4375 +9400 4450 +9400 4550 +9325 4500 +9215 4560 +9215 4710 +9375 4775 +9215 4860 +9215 5010 +9215 5160 +9215 5310 +9215 5460 +9215 5610 +9475 5675 +9475 5525 +9475 5425 +9475 5275 +9475 5025 +9575 5075 +9725 5075 +9675 4975 +9575 4925 +9525 4775 +9600 4675 +9625 4775 +9775 4775 +9975 4600 +9875 4600 +9800 4525 +9700 4525 +9700 4425 +9800 4425 +9800 4325 +9700 4275 +9600 4175 +9700 4125 +9800 4175 +9875 4275 +9975 4275 +10075 4175 +10275 4175 +10375 4175 +10575 4175 +10675 4275 +10775 4275 +10850 4325 +10850 4425 +10850 4525 +10775 4575 +10675 4575 +10875 4775 +11025 4775 +11175 4725 +11050 4675 +10950 4500 +10950 4400 +10950 4275 +10850 4175 +10950 4125 +11050 4175 +11225 4325 +11375 4325 +11325 4425 +11325 4575 +11325 4675 +11325 4775 +11325 4925 +11450 4925 +11450 5075 +11422 5204 +11425 5325 +11325 5275 +11325 5375 +11175 5375 +11175 5275 +11125 5175 +11100 5025 +10975 4975 +10925 5075 +10950 5175 +10900 5275 +10900 5375 +10800 5175 +10525 5175 +10325 5175 +10325 5025 +10425 5075 +10475 4975 +10325 4875 +10175 4975 +10225 5075 +10125 5175 +9975 5175 +10050 5250 +10050 5350 +10025 5450 +10175 5450 +10325 5450 +10475 5450 +10575 5450 +10675 5450 +10525 6025 +10525 6125 +10675 6125 +10825 6025 +11025 6050 +11224 5908 +11400 5975 +11400 6375 +11400 6575 +11175 6575 +11025 6450 +10975 6675 +11075 6775 +10975 6875 +11175 6975 +11375 6975 +11325 7075 +11400 7150 +11125 7150 +10975 7150 +10875 7325 +10925 7425 +11075 7425 +11175 7475 +11075 7575 +11175 7625 +11175 7725 +11025 7725 +11025 7825 +11175 7825 +11325 7875 +11425 7925 +11425 8075 +11325 8075 +11275 8175 +11425 8225 +11425 8375 +11275 8325 +11175 8325 +11075 8225 +10975 8225 +10925 7975 +10775 7825 +10825 7600 +10725 7575 +10775 7425 +10675 7425 +10525 7425 +10525 7575 +10450 7750 +10300 7750 +10425 7875 +10525 7925 +10575 7825 +10625 7975 +10725 7975 +10725 8075 +10625 8125 +10525 8075 +10425 8025 +10425 8125 +10250 8225 +10150 8225 +10225 8125 +10275 7975 +10125 7975 +10000 7875 +10000 7775 +9825 7825 +9625 7725 +9475 7725 +9425 7625 +9575 7625 +9625 7475 +9725 7575 +9825 7475 +10025 7525 +9975 7425 +9925 7275 +9825 7075 +9625 7075 +9725 6975 +9875 6775 +9725 6775 +9575 6825 +9575 6675 +9725 6425 +9625 6200 +9725 6025 +9625 6000 +9225 6375 +9225 6525 +9375 6525 +9375 6675 +9225 6675 +9225 6875 +9225 7075 +9226 7259 +9225 7260 +9226 7409 +9225 7410 +9225 7560 +9226 7560 +9225 7710 +9225 7711 +9325 7825 +9225 7875 +9225 7975 +9225 8075 +9225 8175 +9225 8275 +9225 8375 +9225 8475 +9275 8825 +9475 8825 +9578 8820 +9847 8703 +9875 8825 +10025 8725 +10075 8825 +10175 8725 +10100 8575 +10250 8375 +10250 8475 +10250 8625 +10475 8775 +10575 8775 +10675 8775 +10775 8775 +10925 8775 +10875 8625 +10875 8525 +10975 8575 +11175 8475 +11275 8425 +11350 8575 +11450 8675 +11350 8775 +11325 9325 +11325 9425 +11325 9525 +11325 9725 +11325 9825 +11125 10075 +11375 10075 +11375 10275 +11400 10375 +11400 10475 +11400 10625 +11400 10775 +11300 10975 +11125 10975 +11125 11075 +11025 11125 +10925 11125 +10925 11025 +10550 10875 +10550 11075 +10275 11325 +10375 11325 +10575 11325 +10675 11425 +10775 11425 +10850 11475 +10850 11575 +10850 11675 +10775 11725 +10675 11725 +10875 11925 +11025 11925 +11175 11875 +11050 11825 +10950 11650 +10950 11550 +10950 11425 +10850 11325 +10950 11275 +11050 11325 +11225 11475 +11375 11475 +11325 11575 +11325 11725 +11325 11825 +11325 11925 +11325 12075 +11450 12075 +11450 12225 +11422 12354 +11425 12475 +11325 12425 +11325 12525 +11175 12525 +11175 12425 +11125 12325 +11100 12175 +10975 12125 +10925 12225 +10950 12325 +10900 12425 +10900 12525 +10800 12325 +10525 12325 +10425 12225 +10475 12125 +10325 12025 +10175 12125 +10225 12225 +10325 12175 +10325 12325 +10125 12325 +9975 12325 +10050 12400 +10050 12500 +10025 12600 +10175 12600 +10325 12600 +10475 12600 +10575 12600 +10675 12600 +10525 13175 +10525 13275 +10675 13275 +10825 13175 +11025 13200 +11224 13058 +11400 13125 +11400 13525 +11400 13725 +11175 13725 +11025 13600 +10975 13825 +11075 13925 +10975 14025 +11175 14125 +11375 14125 +11325 14225 +11400 14300 +11125 14300 +10975 14300 +10875 14475 +10925 14575 +10825 14750 +10725 14725 +10775 14575 +10675 14575 +10525 14575 +10525 14725 +10450 14900 +10300 14900 +10425 15025 +10425 15175 +10425 15275 +10525 15225 +10625 15275 +10725 15225 +10725 15125 +10625 15125 +10525 15075 +10575 14975 +10775 14975 +10925 15125 +11025 14975 +11025 14875 +11075 14725 +11075 14575 +11175 14625 +11175 14775 +11175 14875 +11175 14975 +11325 15025 +11425 15075 +11425 15225 +11325 15225 +11275 15325 +11425 15375 +11425 15525 +11350 15725 +11450 15825 +11350 15925 +11175 15625 +11275 15575 +11275 15475 +11175 15475 +11075 15375 +10975 15375 +10875 15675 +10975 15725 +10875 15775 +10925 15925 +10775 15925 +10675 15925 +10575 15925 +10475 15925 +10250 15775 +10175 15875 +10075 15975 +9875 15975 +9847 15853 +10025 15875 +10100 15725 +10250 15625 +10250 15525 +10250 15375 +10150 15375 +10225 15275 +10275 15125 +10125 15125 +10000 15025 +10000 14925 +9825 14975 +9625 14875 +9475 14875 +9425 14775 +9575 14775 +9625 14625 +9725 14725 +9825 14625 +10025 14675 +9975 14575 +9925 14425 +9825 14225 +9625 14225 +9725 14125 +9875 13925 +9725 13925 +9575 13975 +9575 13825 +9725 13575 +9625 13350 +9725 13175 +9625 13150 +9225 13525 +9225 13675 +9375 13675 +9375 13825 +9225 13825 +9225 14025 +9225 14225 +9226 14409 +9225 14410 +9226 14559 +9225 14560 +9225 14710 +9226 14710 +9225 14860 +9225 14861 +9325 14975 +9225 15025 +9225 15125 +9225 15225 +9225 15325 +9225 15425 +9225 15525 +9225 15625 +9578 15970 +9475 15975 +9275 15975 +8900 15825 +8800 15925 +8800 15725 +8725 15575 +8625 15625 +8425 15725 +8325 15675 +8325 15775 +8375 15925 +8225 15925 +8125 15925 +8025 15925 +7925 15925 +7700 15775 +7700 15625 +7700 15525 +7550 15725 +7625 15875 +7525 15975 +7475 15875 +7325 15975 +7297 15853 +7028 15970 +6925 15975 +6725 15975 +6675 15625 +6675 15525 +6675 15425 +6675 15325 +6675 15225 +6675 15125 +6675 15025 +6775 14975 +6675 14861 +6675 14860 +6676 14710 +6675 14710 +6675 14560 +6676 14559 +6675 14410 +6676 14409 +6675 14225 +6675 14025 +6675 13825 +6825 13825 +6825 13675 +6675 13675 +6675 13525 +7075 13150 +7175 13175 +7075 13350 +7175 13575 +7025 13825 +7025 13975 +7175 13925 +7325 13925 +7175 14125 +7075 14225 +7275 14225 +7375 14425 +7425 14575 +7475 14675 +7275 14625 +7175 14725 +7075 14625 +7025 14775 +6875 14775 +6925 14875 +7075 14875 +7275 14975 +7450 14925 +7450 15025 +7575 15125 +7725 15125 +7675 15275 +7600 15375 +7700 15375 +7875 15275 +7875 15175 +7975 15225 +8075 15275 +8175 15225 +8175 15125 +8075 15125 +8025 14975 +7975 15075 +7875 15025 +7750 14900 +7900 14900 +7975 14725 +7975 14575 +8125 14575 +8225 14575 +8175 14725 +8275 14750 +8225 14975 +8375 15125 +8425 15375 +8525 15375 +8625 15475 +8725 15475 +8875 15525 +8875 15375 +8725 15325 +8775 15225 +8875 15225 +8875 15075 +8775 15025 +8625 14975 +8475 14975 +8475 14875 +8625 14875 +8625 14775 +8525 14725 +8625 14625 +8525 14575 +8375 14575 +8325 14475 +8425 14300 +8575 14300 +8850 14300 +8775 14225 +8825 14125 +8625 14125 +8425 14025 +8525 13925 +8425 13825 +8475 13600 +8625 13725 +8850 13725 +8850 13525 +8850 13125 +8674 13058 +8475 13200 +8275 13175 +8125 13275 +7975 13275 +7975 13175 +8125 12600 +8025 12600 +7925 12600 +7775 12600 +7625 12600 +7475 12600 +7500 12500 +7500 12400 +7425 12325 +7575 12325 +7675 12225 +7625 12125 +7775 12025 +7925 12125 +7875 12225 +7775 12175 +7775 12325 +7975 12325 +8250 12325 +8350 12525 +8350 12425 +8400 12325 +8375 12225 +8425 12125 +8550 12175 +8575 12325 +8625 12425 +8625 12525 +8775 12525 +8775 12425 +8875 12475 +8872 12354 +8900 12225 +8900 12075 +8775 12075 +8775 11925 +8775 11825 +8775 11725 +8775 11575 +8825 11475 +8675 11475 +8500 11325 +8400 11275 +8300 11325 +8400 11425 +8400 11550 +8400 11650 +8500 11825 +8625 11875 +8475 11925 +8325 11925 +8125 11725 +8225 11725 +8300 11675 +8300 11575 +8300 11475 +8225 11425 +8125 11425 +8025 11325 +7825 11325 +7725 11325 +7525 11325 +7425 11425 +7325 11425 +7250 11325 +7150 11275 +7050 11325 +7150 11425 +7250 11475 +7250 11575 +7150 11575 +7150 11675 +7250 11675 +7325 11750 +7425 11750 +7225 11925 +7075 11925 +7050 11825 +6975 11925 +7025 12075 +7125 12125 +7175 12225 +7025 12225 +6925 12175 +6925 12425 +6925 12575 +6925 12675 +6925 12825 +6665 12760 +6665 12610 +6665 12460 +6665 12310 +6665 12160 +6665 12010 +6825 11925 +6665 11860 +6665 11710 +6775 11650 +6850 11700 +6850 11600 +6775 11525 +6825 11425 +6725 11425 +6275 11475 +6225 11575 +6125 11475 +5950 11325 +5850 11425 +5750 11325 +5850 11275 +5825 11125 +5825 11025 +5925 11125 +6025 11075 +6025 10975 +6200 10975 +6300 10775 +6300 10625 +6300 10475 +6300 10375 +6275 10275 +6700 10425 +6700 10525 +6700 10625 +6700 10725 +6700 10850 +6725 11050 +6875 11025 +7000 11025 +7075 11125 +7175 11125 +7175 11025 +7550 11075 +7550 10875 +7550 10475 +8000 10475 +8000 10875 +8000 11075 +8375 11025 +8375 11125 +8475 11125 +8575 11075 +8575 10975 +8750 10975 +8850 10775 +8850 10625 +8850 10475 +8850 10375 +8825 10275 +9250 10425 +9250 10525 +9250 10625 +9250 10725 +9250 10850 +9275 11050 +9425 11025 +9550 11025 +9625 11125 +9725 11025 +9725 11125 +9700 11275 +9800 11325 +9700 11425 +9600 11325 +9375 11425 +9275 11425 +9325 11525 +9400 11600 +9400 11700 +9325 11650 +9215 11710 +9215 11860 +9375 11925 +9215 12010 +9215 12160 +9215 12310 +9215 12460 +9215 12610 +9215 12760 +9475 12825 +9475 12675 +9475 12575 +9475 12425 +9475 12175 +9575 12225 +9725 12225 +9675 12125 +9575 12075 +9525 11925 +9600 11825 +9625 11925 +9775 11925 +9975 11750 +9875 11750 +9800 11675 +9700 11675 +9700 11575 +9800 11575 +9800 11475 +9875 11425 +9975 11425 +10075 11325 +10100 11075 +10100 10875 +10100 10475 +10550 10475 +10848 10075 +10575 10075 +10437 9801 +10435 9702 +10435 9601 +10436 9502 +10436 9399 +10436 9298 +10175 9325 +10175 9425 +10175 9525 +10175 9725 +10175 9825 +10075 10075 +9800 10075 +9525 10075 +9375 10125 +9290 9806 +9289 9706 +9289 9606 +9290 9505 +9290 9406 +9289 9306 +8775 9325 +8775 9425 +8775 9525 +8775 9725 +8775 9825 +8825 10075 +8575 10075 +8298 10075 +8025 10075 +7887 9801 +7885 9702 +7885 9601 +7886 9502 +7886 9399 +7886 9298 +7625 9325 +7625 9425 +7625 9525 +7625 9725 +7625 9825 +7525 10075 +7250 10075 +6975 10075 +6825 10125 +6740 9806 +6739 9706 +6739 9606 +6740 9505 +6740 9406 +6739 9306 +7028 8820 +6925 8825 +6725 8825 +6675 8475 +6675 8375 +6675 8275 +6675 8175 +6675 8075 +6675 7975 +6675 7875 +6775 7825 +6675 7711 +6675 7710 +6676 7560 +6675 7560 +6675 7410 +6676 7409 +6675 7260 +6676 7259 +6675 7075 +6675 6875 +6675 6675 +6825 6675 +6825 6525 +6675 6525 +6675 6375 +7075 6000 +7175 6025 +7075 6200 +7175 6425 +7025 6675 +7025 6825 +7175 6775 +7325 6775 +7175 6975 +7075 7075 +7275 7075 +7375 7275 +7425 7425 +7475 7525 +7275 7475 +7175 7575 +7075 7475 +7025 7625 +6875 7625 +6925 7725 +7075 7725 +7275 7825 +7450 7775 +7450 7875 +7575 7975 +7725 7975 +7675 8125 +7600 8225 +7700 8225 +7700 8375 +7700 8475 +7550 8575 +7475 8725 +7297 8703 +7325 8825 +7525 8825 +7625 8725 +7700 8625 +7925 8775 +8025 8775 +8125 8775 +8225 8775 +8375 8775 +8325 8625 +8425 8575 +8325 8525 +8425 8225 +8525 8225 +8625 8325 +8725 8325 +8725 8425 +8625 8475 +8800 8775 +8900 8675 +8800 8575 +8875 8375 +8875 8225 +8725 8175 +8775 8075 +8875 8075 +8875 7925 +8775 7875 +8625 7825 +8625 7725 +8625 7625 +8625 7475 +8525 7425 +8525 7575 +8475 7725 +8475 7825 +8375 7975 +8225 7825 +8025 7825 +7975 7925 +8075 7975 +8175 7975 +8175 8075 +8075 8125 +7975 8075 +7875 8125 +7875 8025 +7875 7875 +7750 7750 +7900 7750 +7975 7575 +7975 7425 +8125 7425 +8225 7425 +8175 7575 +8275 7600 +8375 7425 +8325 7325 +8425 7150 +8575 7150 +8850 7150 +8775 7075 +8825 6975 +8625 6975 +8425 6875 +8525 6775 +8425 6675 +8475 6450 +8625 6575 +8850 6575 +8850 6375 +8850 5975 +8674 5908 +8475 6050 +8275 6025 +8125 6125 +7975 6125 +7975 6025 +8125 5450 +8025 5450 +7925 5450 +7775 5450 +7625 5450 +7475 5450 +7500 5350 +7500 5250 +7425 5175 +7575 5175 +7675 5075 +7625 4975 +7775 4875 +7925 4975 +7875 5075 +7775 5025 +7775 5175 +7975 5175 +8250 5175 +8350 5375 +8350 5275 +8400 5175 +8375 5075 +8425 4975 +8550 5025 +8575 5175 +8625 5275 +8625 5375 +8775 5375 +8775 5275 +8875 5325 +8872 5204 +8900 5075 +8900 4925 +8775 4925 +8775 4775 +8775 4675 +8775 4575 +8625 4725 +8500 4675 +8475 4775 +8325 4775 +8125 4575 +8225 4575 +8300 4525 +8400 4500 +8400 4400 +8300 4425 +8300 4325 +8225 4275 +8125 4275 +8025 4175 +8000 3925 +8000 3725 +8000 3325 +7550 3325 +7550 3725 +7550 3925 +7825 4175 +7725 4175 +7525 4175 +7425 4275 +7325 4275 +7250 4325 +7250 4425 +7150 4425 +7150 4525 +7250 4525 +7325 4600 +7425 4600 +7225 4775 +7075 4775 +7050 4675 +6975 4775 +7025 4925 +7125 4975 +7175 5075 +7025 5075 +6925 5025 +6925 5275 +6925 5425 +6925 5525 +6925 5675 +6665 5610 +6665 5460 +6665 5310 +6665 5160 +6665 5010 +6665 4860 +6825 4775 +6665 4710 +6665 4560 +6775 4500 +6850 4550 +6850 4450 +6775 4375 +6725 4275 +6825 4275 +7050 4175 +7150 4275 +7250 4175 +7150 4125 +7175 3975 +7175 3875 +7075 3975 +7000 3875 +6875 3875 +6725 3900 +6700 3700 +6700 3575 +6700 3475 +6700 3375 +6700 3275 +6275 3125 +6300 3225 +6300 3325 +6300 3475 +6300 3625 +6200 3825 +6025 3825 +6025 3925 +5925 3975 +5825 3975 +5825 3875 +5450 3925 +5450 3725 +5450 3325 +5000 3325 +5000 3725 +5000 3925 +4625 3875 +4625 3975 +4525 3975 +4450 3875 +4325 3875 +4175 3900 +4150 3700 +4150 3575 +4150 3475 +4150 3375 +4150 3275 +3725 3125 +3750 3225 +3750 3325 +3750 3475 +3750 3625 +3650 3825 +3475 3825 +3475 3925 +3375 3975 +3275 3875 +3275 3975 +3300 4125 +3200 4175 +3300 4275 +3400 4175 +3575 4325 +3675 4425 +3725 4325 +4175 4275 +4275 4275 +4225 4375 +4300 4450 +4300 4550 +4225 4500 +4115 4560 +4115 4710 +4275 4775 +4115 4860 +4115 5010 +4115 5160 +4115 5310 +4115 5460 +4115 5610 +4375 5675 +4375 5525 +4375 5425 +4375 5275 +4375 5025 +4475 5075 +4625 5075 +4575 4975 +4475 4925 +4425 4775 +4500 4675 +4525 4775 +4675 4775 +4875 4600 +4775 4600 +4700 4525 +4600 4525 +4600 4425 +4700 4425 +4700 4325 +4600 4275 +4500 4175 +4600 4125 +4700 4175 +4775 4275 +4875 4275 +4975 4175 +5175 4175 +5275 4175 +5475 4175 +5575 4275 +5675 4275 +5750 4325 +5750 4425 +5750 4525 +5675 4575 +5575 4575 +5775 4775 +5925 4775 +6075 4725 +5950 4675 +5850 4500 +5850 4400 +5850 4275 +5750 4175 +5850 4125 +5950 4175 +6125 4325 +6275 4325 +6225 4425 +6225 4575 +6225 4675 +6225 4775 +6225 4925 +6350 4925 +6350 5075 +6322 5204 +6325 5325 +6225 5275 +6225 5375 +6075 5375 +6075 5275 +6025 5175 +6000 5025 +5875 4975 +5825 5075 +5850 5175 +5800 5275 +5800 5375 +5700 5175 +5425 5175 +5325 5075 +5375 4975 +5225 4875 +5075 4975 +5125 5075 +5225 5025 +5225 5175 +5025 5175 +4875 5175 +4950 5250 +4950 5350 +4925 5450 +5075 5450 +5225 5450 +5375 5450 +5475 5450 +5575 5450 +5425 6025 +5425 6125 +5575 6125 +5725 6025 +5925 6050 +6124 5908 +6300 5975 +6300 6375 +6300 6575 +6075 6575 +5925 6450 +5875 6675 +5975 6775 +5875 6875 +6075 6975 +6275 6975 +6225 7075 +6300 7150 +6025 7150 +5875 7150 +5775 7325 +5825 7425 +5975 7425 +6075 7475 +5975 7575 +6075 7625 +6075 7725 +5925 7725 +5925 7825 +6075 7825 +6225 7875 +6325 7925 +6325 8075 +6225 8075 +6175 8175 +6325 8225 +6325 8375 +6175 8325 +6075 8325 +5975 8225 +5875 8225 +5825 7975 +5675 7825 +5725 7600 +5625 7575 +5675 7425 +5575 7425 +5425 7425 +5425 7575 +5350 7750 +5200 7750 +5325 7875 +5475 7825 +5425 7925 +5525 7975 +5625 7975 +5625 8075 +5525 8125 +5425 8075 +5325 8025 +5325 8125 +5150 8225 +5050 8225 +5125 8125 +5175 7975 +5025 7975 +4900 7875 +4900 7775 +4725 7825 +4525 7725 +4375 7725 +4325 7625 +4475 7625 +4525 7475 +4625 7575 +4725 7475 +4925 7525 +4875 7425 +4825 7275 +4725 7075 +4525 7075 +4625 6975 +4775 6775 +4625 6775 +4475 6825 +4475 6675 +4625 6425 +4525 6200 +4625 6025 +4525 6000 +4125 6375 +4125 6525 +4275 6525 +4275 6675 +4125 6675 +4125 6875 +4125 7075 +4126 7259 +4125 7260 +4126 7409 +4125 7410 +4125 7560 +4126 7560 +4125 7710 +4125 7711 +4225 7825 +4125 7875 +4125 7975 +4125 8075 +4125 8175 +4125 8275 +4125 8375 +4125 8475 +4175 8825 +4375 8825 +4478 8820 +4747 8703 +4775 8825 +4925 8725 +4975 8825 +5075 8725 +5000 8575 +5150 8375 +5150 8475 +5150 8625 +5375 8775 +5475 8775 +5575 8775 +5675 8775 +5825 8775 +5775 8625 +5775 8525 +5875 8575 +6075 8475 +6175 8425 +6250 8575 +6350 8675 +6250 8775 +6225 9325 +6225 9425 +6225 9525 +6225 9725 +6225 9825 +6275 10075 +6025 10075 +5748 10075 +5475 10075 +5337 9801 +5335 9702 +5335 9601 +5336 9502 +5336 9399 +5336 9298 +5075 9325 +5075 9425 +5075 9525 +5075 9725 +5075 9825 +4975 10075 +4700 10075 +4425 10075 +4275 10125 +4190 9806 +4189 9706 +4189 9606 +4190 9505 +4190 9406 +4189 9306 +3675 9325 +3675 9425 +3675 9525 +3675 9725 +3675 9825 +3725 10075 +3475 10075 +3198 10075 +2925 10075 +2787 9801 +2785 9702 +2785 9601 +2786 9502 +2786 9399 +2786 9298 +2525 9325 +2525 9425 +2525 9525 +2525 9725 +2525 9825 +2425 10075 +2150 10075 +2450 10475 +2900 10475 +2900 10875 +2900 11075 +3275 11025 +3275 11125 +3375 11125 +3475 11075 +3475 10975 +3650 10975 +3750 10775 +3750 10625 +3750 10475 +3750 10375 +3725 10275 +4150 10425 +4150 10525 +4150 10625 +4150 10725 +4150 10850 +4175 11050 +4325 11025 +4450 11025 +4525 11125 +4625 11025 +4625 11125 +4600 11275 +4700 11325 +4600 11425 +4500 11325 +4275 11425 +4175 11425 +4225 11525 +4300 11600 +4300 11700 +4225 11650 +4115 11710 +4115 11860 +4275 11925 +4115 12010 +4115 12160 +4115 12310 +4115 12460 +4115 12610 +4115 12760 +4375 12825 +4375 12675 +4375 12575 +4375 12425 +4375 12175 +4475 12225 +4625 12225 +4575 12125 +4475 12075 +4425 11925 +4500 11825 +4525 11925 +4675 11925 +4875 11750 +4775 11750 +4700 11675 +4600 11675 +4600 11575 +4700 11575 +4700 11475 +4775 11425 +4875 11425 +4975 11325 +5175 11325 +5275 11325 +5000 11075 +5000 10875 +5000 10475 +5450 10475 +5450 10875 +5450 11075 +5475 11325 +5575 11425 +5675 11425 +5750 11475 +5750 11575 +5850 11550 +5850 11650 +5750 11675 +5675 11725 +5575 11725 +5775 11925 +5925 11925 +5950 11825 +6075 11875 +6225 11725 +6225 11825 +6225 11925 +6225 12075 +6350 12075 +6350 12225 +6322 12354 +6325 12475 +6225 12425 +6225 12525 +6075 12525 +6075 12425 +6025 12325 +6000 12175 +5875 12125 +5825 12225 +5850 12325 +5800 12425 +5800 12525 +5700 12325 +5425 12325 +5325 12225 +5375 12125 +5225 12025 +5075 12125 +5125 12225 +5225 12175 +5225 12325 +5025 12325 +4875 12325 +4950 12400 +4950 12500 +4925 12600 +5075 12600 +5225 12600 +5375 12600 +5475 12600 +5575 12600 +5425 13175 +5425 13275 +5575 13275 +5725 13175 +5925 13200 +6124 13058 +6300 13125 +6300 13525 +6300 13725 +6075 13725 +5925 13600 +5875 13825 +5975 13925 +5875 14025 +6075 14125 +6275 14125 +6225 14225 +6300 14300 +6025 14300 +5875 14300 +5775 14475 +5825 14575 +5725 14750 +5625 14725 +5675 14575 +5575 14575 +5425 14575 +5425 14725 +5350 14900 +5200 14900 +5325 15025 +5325 15175 +5325 15275 +5425 15225 +5525 15275 +5625 15225 +5625 15125 +5525 15125 +5425 15075 +5475 14975 +5675 14975 +5825 15125 +5925 14975 +5925 14875 +5975 14725 +5975 14575 +6075 14625 +6075 14775 +6075 14875 +6075 14975 +6225 15025 +6325 15075 +6325 15225 +6225 15225 +6175 15325 +6325 15375 +6325 15525 +6250 15725 +6350 15825 +6250 15925 +6075 15625 +6175 15575 +6175 15475 +6075 15475 +5975 15375 +5875 15375 +5775 15675 +5875 15725 +5775 15775 +5825 15925 +5675 15925 +5575 15925 +5475 15925 +5375 15925 +5150 15775 +5075 15875 +4975 15975 +4775 15975 +4747 15853 +4925 15875 +5000 15725 +5150 15625 +5150 15525 +5150 15375 +5050 15375 +5125 15275 +5175 15125 +5025 15125 +4900 15025 +4900 14925 +4725 14975 +4525 14875 +4375 14875 +4325 14775 +4475 14775 +4525 14625 +4625 14725 +4725 14625 +4925 14675 +4875 14575 +4825 14425 +4725 14225 +4525 14225 +4625 14125 +4775 13925 +4625 13925 +4475 13975 +4475 13825 +4625 13575 +4525 13350 +4625 13175 +4525 13150 +4125 13525 +4125 13675 +4275 13675 +4275 13825 +4125 13825 +4125 14025 +4125 14225 +4126 14409 +4125 14410 +4126 14559 +4125 14560 +4125 14710 +4126 14710 +4125 14860 +4125 14861 +4225 14975 +4125 15025 +4125 15125 +4125 15225 +4125 15325 +4125 15425 +4125 15525 +4125 15625 +4478 15970 +4375 15975 +4175 15975 +3800 15825 +3700 15925 +3700 15725 +3625 15575 +3525 15625 +3325 15725 +3225 15675 +3225 15775 +3275 15925 +3125 15925 +3025 15925 +2925 15925 +2825 15925 +2600 15775 +2600 15625 +2600 15525 +2450 15725 +2525 15875 +2425 15975 +2375 15875 +2225 15975 +2197 15853 +1928 15970 +1825 15975 +1625 15975 +1575 15625 +1575 15525 +1575 15425 +1575 15325 +1575 15225 +1575 15125 +1575 15025 +1675 14975 +1575 14861 +1575 14860 +1575 14710 +1576 14710 +1575 14560 +1576 14559 +1575 14410 +1576 14409 +1575 14225 +1575 14025 +1575 13825 +1725 13825 +1725 13675 +1575 13675 +1575 13525 +1975 13150 +2075 13175 +1975 13350 +2075 13575 +1925 13825 +1925 13975 +2075 13925 +2225 13925 +2075 14125 +1975 14225 +2175 14225 +2275 14425 +2325 14575 +2375 14675 +2175 14625 +2075 14725 +1975 14625 +1925 14775 +1775 14775 +1825 14875 +1975 14875 +2175 14975 +2350 14925 +2350 15025 +2475 15125 +2625 15125 +2575 15275 +2500 15375 +2600 15375 +2775 15275 +2775 15175 +2875 15225 +2975 15275 +3075 15225 +3075 15125 +2975 15125 +2925 14975 +2875 15075 +2775 15025 +2650 14900 +2800 14900 +2875 14725 +2875 14575 +3025 14575 +3125 14575 +3075 14725 +3175 14750 +3125 14975 +3275 15125 +3325 15375 +3425 15375 +3525 15475 +3625 15475 +3775 15525 +3775 15375 +3625 15325 +3675 15225 +3775 15225 +3775 15075 +3675 15025 +3525 14975 +3375 14975 +3375 14875 +3525 14875 +3525 14775 +3425 14725 +3525 14625 +3425 14575 +3275 14575 +3225 14475 +3325 14300 +3475 14300 +3750 14300 +3675 14225 +3725 14125 +3525 14125 +3325 14025 +3425 13925 +3325 13825 +3375 13600 +3525 13725 +3750 13725 +3750 13525 +3750 13125 +3574 13058 +3375 13200 +3175 13175 +3025 13275 +2875 13275 +2875 13175 +3025 12600 +2925 12600 +2825 12600 +2675 12600 +2525 12600 +2375 12600 +2400 12500 +2400 12400 +2325 12325 +2475 12325 +2575 12225 +2525 12125 +2675 12025 +2825 12125 +2775 12225 +2675 12175 +2675 12325 +2875 12325 +3150 12325 +3250 12525 +3250 12425 +3300 12325 +3275 12225 +3325 12125 +3450 12175 +3475 12325 +3525 12425 +3525 12525 +3675 12525 +3675 12425 +3775 12475 +3772 12354 +3800 12225 +3800 12075 +3675 12075 +3675 11925 +3675 11825 +3675 11725 +3675 11575 +3725 11475 +3575 11475 +3400 11325 +3300 11275 +3200 11325 +3300 11425 +3300 11550 +3300 11650 +3400 11825 +3525 11875 +3375 11925 +3225 11925 +3025 11725 +3125 11725 +3200 11675 +3200 11575 +3200 11475 +3125 11425 +3025 11425 +2925 11325 +2725 11325 +2625 11325 +2450 10875 +2450 11075 +2425 11325 +2325 11425 +2225 11425 +2150 11475 +2150 11575 +2050 11575 +2050 11675 +2150 11675 +2225 11750 +2325 11750 +2125 11925 +1975 11925 +1950 11825 +1875 11925 +1925 12075 +2025 12125 +2075 12225 +1925 12225 +1825 12175 +1825 12425 +1825 12575 +1825 12675 +1825 12825 +1565 12760 +1565 12610 +1565 12460 +1565 12310 +1565 12160 +1565 12010 +1725 11925 +1565 11860 +1565 11710 +1675 11650 +1750 11700 +1750 11600 +1675 11525 +1625 11425 +1725 11425 +1950 11325 +2050 11425 +2150 11325 +2050 11275 +2075 11125 +2075 11025 +1975 11125 +1900 11025 +1775 11025 +1625 11050 +1600 10850 +1600 10725 +1600 10625 +1600 10525 +1600 10425 +1725 10125 +1875 10075 +1640 9806 +1639 9706 +1639 9606 +1640 9505 +1640 9406 +1639 9306 +1928 8820 +1825 8825 +1625 8825 +1575 8475 +1575 8375 +1575 8275 +1575 8175 +1575 8075 +1575 7975 +1575 7875 +1675 7825 +1575 7711 +1575 7710 +1576 7560 +1575 7560 +1575 7410 +1576 7409 +1575 7260 +1576 7259 +1575 7075 +1575 6875 +1575 6675 +1725 6675 +1725 6525 +1575 6525 +1575 6375 +1975 6000 +2075 6025 +1975 6200 +2075 6425 +1925 6675 +1925 6825 +2075 6775 +2225 6775 +2075 6975 +1975 7075 +2175 7075 +2275 7275 +2325 7425 +2375 7525 +2175 7475 +2075 7575 +1975 7475 +1925 7625 +1775 7625 +1825 7725 +1975 7725 +2175 7825 +2350 7775 +2350 7875 +2475 7975 +2625 7975 +2575 8125 +2500 8225 +2600 8225 +2600 8375 +2600 8475 +2450 8575 +2375 8725 +2197 8703 +2225 8825 +2425 8825 +2525 8725 +2600 8625 +2825 8775 +2925 8775 +3025 8775 +3125 8775 +3275 8775 +3225 8625 +3325 8575 +3225 8525 +3325 8225 +3425 8225 +3525 8325 +3625 8325 +3625 8425 +3525 8475 +3700 8775 +3800 8675 +3700 8575 +3775 8375 +3775 8225 +3625 8175 +3675 8075 +3775 8075 +3775 7925 +3675 7875 +3525 7825 +3525 7725 +3525 7625 +3525 7475 +3425 7425 +3425 7575 +3375 7725 +3375 7825 +3275 7975 +3125 7825 +2925 7825 +2875 7925 +2975 7975 +3075 7975 +3075 8075 +2975 8125 +2875 8075 +2775 8125 +2775 8025 +2775 7875 +2650 7750 +2800 7750 +2875 7575 +2875 7425 +3025 7425 +3125 7425 +3075 7575 +3175 7600 +3275 7425 +3225 7325 +3325 7150 +3475 7150 +3750 7150 +3675 7075 +3725 6975 +3525 6975 +3325 6875 +3425 6775 +3325 6675 +3375 6450 +3525 6575 +3750 6575 +3750 6375 +3750 5975 +3574 5908 +3375 6050 +3175 6025 +3025 6125 +2875 6125 +2875 6025 +3025 5450 +2925 5450 +2825 5450 +2675 5450 +2525 5450 +2375 5450 +2400 5350 +2400 5250 +2325 5175 +2475 5175 +2575 5075 +2525 4975 +2675 4875 +2825 4975 +2775 5075 +2675 5025 +2675 5175 +2875 5175 +3150 5175 +3250 5375 +3250 5275 +3300 5175 +3275 5075 +3325 4975 +3450 5025 +3475 5175 +3525 5275 +3525 5375 +3675 5375 +3675 5275 +3775 5325 +3772 5204 +3800 5075 +3800 4925 +3675 4925 +3675 4775 +3675 4675 +3675 4575 +3525 4725 +3400 4675 +3375 4775 +3225 4775 +3025 4575 +3125 4575 +3200 4525 +3300 4500 +3300 4400 +3200 4425 +3200 4325 +3125 4275 +3025 4275 +2925 4175 +2900 3925 +2900 3725 +2900 3325 +2450 3325 +2450 3725 +2450 3925 +2725 4175 +2625 4175 +2425 4175 +2325 4275 +2225 4275 +2150 4325 +2150 4425 +2050 4425 +2050 4525 +2150 4525 +2225 4600 +2325 4600 +2125 4775 +1975 4775 +1950 4675 +1875 4775 +1925 4925 +2025 4975 +2075 5075 +1925 5075 +1825 5025 +1825 5275 +1825 5425 +1825 5525 +1825 5675 +1565 5610 +1565 5460 +1565 5310 +1565 5160 +1565 5010 +1565 4860 +1725 4775 +1565 4710 +1565 4560 +1675 4500 +1750 4550 +1750 4450 +1675 4375 +1625 4275 +1725 4275 +1950 4175 +2050 4275 +2150 4175 +2050 4125 +2075 3975 +2075 3875 +1975 3975 +1900 3875 +1775 3875 +1625 3900 +1600 3700 +1600 3575 +1600 3475 +1600 3375 +1600 3275 +1725 2975 +1640 2656 +1639 2556 +1639 2456 +1640 2355 +1640 2256 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/readme b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/readme new file mode 100644 index 000000000..7203e5789 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/readme @@ -0,0 +1,35 @@ +NAME : eil101 +COMMENT : 101-city problem (Christofides/Eilon) +TYPE : TSP +DIMENSION : 101 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME: ali535 +TYPE: TSP +COMMENT: 535 Airports around the globe (Padberg/Rinaldi) +DIMENSION: 535 +EDGE_WEIGHT_TYPE: GEO +DISPLAY_DATA_TYPE: COORD_DISPLAY + +NAME : pr2392 +COMMENT : 2392-city problem (Padberg/Rinaldi) +TYPE : TSP +DIMENSION : 2392 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : rl5915 +COMMENT : 5915-city TSP (Reinelt) +TYPE : TSP +DIMENSION : 5915 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : usa13509 +COMMENT : Cities with population at least 500 in the continental US. +COMMENT : Contributed by David Applegate and Andre Rohe, based on the +COMMENT : data set "US.lat-long" from the ftp site ftp.cs.toronto.edu. +COMMENT : The file US.lat-long.Z can be found in the directory /doc/geography. +TYPE : TSP +DIMENSION : 13509 +EDGE_WEIGHT_TYPE : EUC_2D + + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/rl5915.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/rl5915.tsp new file mode 100644 index 000000000..9eda5f662 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/rl5915.tsp @@ -0,0 +1,5916 @@ +5915 +18192 8954 +18192 9856 +18192 11319 +18272 8624 +18416 7348 +18416 8294 +1200 7370 +1200 8184 +1200 10912 +1200 11440 +17904 572 +17904 2684 +17904 6908 +17904 7348 +17904 8624 +8272 308 +8272 2068 +8272 2508 +8272 3080 +8272 3608 +8272 5302 +8336 7260 +8464 7260 +8496 9548 +8496 10582 +8496 11440 +15888 9064 +15888 9504 +15888 10252 +15888 11000 +15936 8184 +16048 8184 +16208 8184 +16336 572 +16336 1012 +16336 1452 +16336 2992 +16336 4818 +16336 6028 +16336 7348 +1040 7370 +1040 8184 +1040 10912 +1040 11440 +4464 308 +4640 308 +4816 308 +4944 308 +5168 308 +5440 308 +5616 308 +5728 308 +5808 3080 +5808 3608 +5808 4664 +5808 5368 +5808 6072 +5808 7128 +5936 9658 +5936 11286 +16848 572 +16848 1452 +16848 2992 +16848 4708 +16848 6028 +16848 7348 +16848 8514 +16848 9284 +16848 9922 +16848 11198 +8240 7480 +8400 9548 +8400 10582 +8400 11440 +1520 9152 +1520 10912 +1520 11440 +1584 6446 +1584 7590 +1584 8294 +5168 11440 +5280 11440 +5456 11440 +5584 11440 +5712 11440 +2672 6336 +2784 6556 +2976 6556 +3104 6556 +3264 6556 +3360 6556 +3600 6556 +3856 6556 +3920 6556 +4016 6556 +4144 6556 +4208 6556 +4352 6556 +4464 6556 +4560 6556 +4688 6556 +4720 7260 +4720 8140 +4720 9702 +4720 10582 +4720 11132 +17008 572 +17008 1452 +17008 2992 +17008 5874 +17008 7348 +17072 8096 +17136 8096 +17280 8096 +17456 8096 +17520 8404 +17520 8954 +17520 10142 +17520 11319 +880 7370 +880 8184 +880 11440 +4144 4840 +4144 7700 +4304 8360 +4416 8360 +4576 8360 +4656 8360 +4864 8360 +5040 8360 +5296 8360 +5456 8844 +5456 9812 +5520 3608 +5520 4664 +5520 5368 +5520 5918 +5520 6930 +16560 8954 +16560 9922 +16592 572 +16592 1452 +16592 2992 +16592 4818 +16592 6138 +16592 7348 +7728 7744 +7728 9548 +7728 10846 +7792 7040 +7856 7040 +7952 7040 +8016 308 +8016 2068 +8016 2508 +8016 3080 +8016 3608 +8016 4268 +8016 5852 +16272 9064 +16272 9504 +16272 9922 +16272 11000 +16640 8844 +16720 8844 +16784 6028 +16784 7348 +16784 8514 +464 11440 +528 8184 +640 8184 +784 7370 +784 7964 +7664 6446 +7664 8074 +7664 9548 +7664 10846 +7728 308 +7728 2068 +7728 2508 +7728 3080 +7728 3608 +7728 4048 +7728 4488 +5232 3608 +5232 4664 +5232 5368 +5232 5918 +5232 6776 +5520 7920 +3856 7480 +3920 7920 +4016 7920 +4176 9152 +4176 9922 +4176 10472 +4176 10912 +4176 11440 +5984 748 +6096 3080 +6096 3608 +6096 4664 +6160 5368 +6224 5368 +6320 5368 +6496 5368 +6608 5698 +6608 6336 +6608 7502 +6608 9064 +6608 10142 +6608 11022 +17200 5874 +17200 7348 +17200 9284 +17200 9922 +17200 11198 +17296 5192 +17440 5192 +17568 5192 +17616 572 +17616 2992 +7248 10362 +7248 11286 +7376 308 +7376 968 +7376 2068 +7376 2508 +7376 3080 +7376 3608 +7376 4488 +7376 5588 +7376 6556 +7376 7744 +1808 6446 +1840 7436 +1840 8404 +1840 9042 +1840 10912 +1840 11440 +12272 9878 +12464 9064 +12592 9064 +12736 9064 +12848 902 +12848 1980 +12848 2640 +12848 3168 +12848 3608 +12848 4158 +12848 5368 +12848 6556 +12848 6996 +12848 8008 +12848 8844 +1648 8404 +1648 9152 +1648 10912 +1648 11440 +1680 6446 +1680 7590 +6256 9658 +6256 11022 +16976 8514 +16976 9284 +16976 9922 +16976 11198 +17072 5720 +17136 5720 +17440 5720 +17600 5720 +11600 572 +11600 1760 +11600 3388 +11600 5258 +11600 6556 +11600 6996 +11600 7898 +11632 8602 +11632 9284 +11632 10208 +17376 10142 +17728 10142 +18416 10142 +18608 10142 +18704 10142 +18864 10142 +18992 10142 +19088 10142 +6224 968 +6224 3080 +6224 3608 +6224 4664 +6400 10912 +6768 10912 +6864 11286 +1936 6336 +1936 7436 +1968 8404 +1968 9152 +1968 10912 +1968 11440 +3984 8712 +4304 8932 +4416 8932 +4496 10802 +15440 1232 +15440 3608 +15440 4180 +15440 4818 +15536 5808 +15648 5808 +15760 5808 +15840 5808 +15936 5808 +16048 5808 +16208 5808 +5584 10252 +5728 10252 +6000 10252 +6064 10252 +6160 10252 +6320 968 +6320 3080 +6320 3608 +6320 4664 +6384 9548 +6384 10472 +16720 11198 +17088 11198 +17376 11198 +17728 11198 +18416 11198 +18608 11198 +18704 11198 +18848 11198 +15280 572 +15280 1232 +15280 3608 +15280 4180 +15280 4818 +15280 6138 +15280 7348 +15280 8228 +15280 9064 +15280 9504 +15280 10252 +15280 11000 +3472 7920 +3472 8712 +3472 9372 +3472 10472 +3472 10912 +3472 11440 +208 11440 +432 7964 +944 7964 +1104 7370 +1424 6446 +1424 7370 +1424 8294 +10096 4378 +10096 5478 +10096 6556 +10096 7480 +10096 8008 +10096 8602 +10096 9284 +10096 10318 +10096 11440 +10256 3608 +10336 3608 +10448 3608 +10544 3608 +10608 3608 +10672 3608 +10752 3608 +10864 3608 +10992 3608 +11088 3608 +11168 3608 +11280 3608 +11408 3608 +688 7370 +688 11440 +6160 968 +6496 968 +6592 968 +6736 968 +6848 968 +6944 968 +7104 968 +7232 968 +7552 968 +7600 308 +7600 2068 +7600 2508 +7600 3080 +7600 3608 +7600 4048 +7600 4488 +7632 5148 +7792 5148 +7856 5148 +7920 5148 +8112 5148 +8384 5148 +8464 5148 +8624 5148 +8800 5148 +8912 5148 +9216 5148 +9504 5148 +9616 5148 +9744 5148 +9888 5148 +9936 6556 +9936 7480 +9936 8382 +9936 9284 +9936 11440 +10032 572 +10032 1452 +10032 2728 +6496 7084 +6736 7084 +6768 9064 +6768 10142 +9936 572 +9936 1452 +5200 10032 +7408 10362 +7568 10692 +7856 10692 +7936 10692 +8032 10692 +8144 10692 +8224 10692 +8320 10692 +8784 10692 +8976 10692 +9408 10692 +10288 10692 +10400 10692 +10560 10692 +10704 10692 +10864 10692 +10960 10692 +11136 10692 +11264 10692 +11392 10692 +11472 10692 +11568 10692 +4880 9218 +4880 10032 +4880 10582 +4880 11132 +4944 3608 +4944 4664 +4944 5368 +4944 5918 +4944 6776 +4944 7436 +6944 308 +7104 308 +7232 308 +7792 308 +7856 308 +7920 308 +8128 308 +8384 308 +8464 308 +8528 308 +8592 308 +8688 308 +8800 308 +8912 308 +9008 308 +9104 308 +9200 308 +9232 1452 +9232 2288 +9232 3388 +9344 7260 +9456 8602 +9456 11440 +3568 7920 +3664 7920 +3728 7920 +8240 9548 +8240 11440 +9376 6776 +9776 572 +9776 1452 +9776 2508 +9776 3388 +6992 7854 +6992 9174 +6992 9812 +6992 10362 +7056 2068 +7056 3080 +7056 3608 +7056 4664 +7056 5588 +7056 6556 +14512 682 +14640 3608 +14640 4048 +14640 4598 +14640 6138 +14640 7568 +14640 8228 +14640 9064 +14640 9504 +14640 10252 +14640 11000 +14768 1012 +14848 1012 +14960 1012 +15376 1012 +15536 1012 +15664 1012 +15760 1012 +15840 1012 +15936 1012 +16048 1012 +16208 1012 +16464 1012 +16528 572 +14736 6138 +14736 7568 +14736 8228 +14736 9064 +14736 9504 +14736 10252 +14736 10890 +14768 4928 +14880 4928 +14976 4928 +15376 4928 +15536 4928 +15648 4928 +15760 4928 +15840 4928 +15936 4928 +16048 4928 +16208 4928 +16464 4928 +16704 4928 +13808 6028 +13808 6776 +13808 7788 +13808 8228 +13808 9504 +13808 10362 +13808 11110 +14032 4708 +14144 4708 +14320 4708 +14464 4708 +16944 4708 +3664 8712 +3728 9284 +3760 9702 +3760 10472 +3760 10912 +3760 11440 +3600 8712 +3600 9482 +4048 9812 +4336 9812 +4576 9812 +4656 9812 +4976 8844 +8976 8118 +8976 9394 +8976 11440 +10176 6556 +10304 6556 +10448 6556 +10576 6556 +10736 6556 +10832 6556 +10896 6556 +10976 6556 +11088 6556 +11168 6556 +11264 6556 +11424 6556 +11536 6556 +11664 6556 +11728 6556 +11792 6556 +11872 6556 +11968 6556 +12112 6556 +12272 6556 +12448 6556 +12608 6556 +12736 6556 +13008 6556 +13072 1012 +13072 1980 +13072 2640 +13072 3608 +13072 4268 +13072 5368 +13168 572 +13264 572 +13408 572 +13568 572 +13696 572 +14016 572 +14160 572 +14320 572 +15120 572 +15376 572 +10480 572 +10480 1452 +10480 6006 +7120 2508 +7120 3080 +7120 3608 +7120 4664 +7120 5588 +7120 6556 +7120 7744 +7120 9064 +7120 9812 +7120 10362 +7120 11286 +3728 8712 +4016 10472 +4016 10912 +4016 11440 +6480 9064 +6896 9064 +7248 2068 +7248 2508 +7248 3080 +7248 3608 +7248 4664 +7248 5588 +7248 6556 +7248 7480 +3920 8712 +5056 9372 +3536 9372 +3536 10472 +3536 10912 +3536 11440 +8784 8448 +10304 8448 +10560 8448 +10704 8448 +10768 8448 +10848 8448 +10976 8448 +11120 8448 +11264 8448 +11552 8448 +11760 8448 +11888 8448 +12080 8448 +12240 8448 +12720 572 +12720 1980 +12720 3718 +12720 5368 +12720 6996 +2800 7326 +2928 7700 +2992 7700 +3104 7700 +3264 7700 +4208 7700 +8112 2068 +8112 2508 +8112 3080 +8112 3608 +8112 4268 +8112 7480 +9584 2728 +9584 3388 +9840 2288 +11440 2288 +11728 2288 +11824 2288 +11984 2288 +12112 2288 +12256 2288 +12384 2288 +12464 2288 +12496 572 +12496 1232 +12608 1012 +5584 7920 +5680 7920 +5760 7920 +6896 7920 +7568 7920 +8144 7920 +8208 7920 +9136 7590 +10544 6116 +11088 6116 +11168 6116 +11264 6116 +11312 572 +11312 1496 +11312 5258 +10768 572 +10768 1342 +10768 4488 +10768 5038 +10768 5588 +10768 6996 +10768 9284 +10768 9878 +5584 8844 +5616 3080 +6160 3080 +6496 3080 +6608 3080 +6736 3080 +6848 3080 +6944 3080 +7792 3080 +7856 3080 +7920 3080 +8384 3080 +8464 3080 +8560 3080 +8688 3080 +8800 3080 +8912 3080 +9008 3080 +8688 2288 +8464 6116 +8528 2068 +8528 2508 +8528 3608 +8464 2068 +8464 2508 +8464 3608 +17456 572 +17456 2992 +17456 7238 +11728 2948 +11824 2948 +11984 2948 +12112 2948 +12256 2948 +12384 2948 +12464 2948 +12560 572 +12560 1980 +12560 2728 +17552 7238 +17632 8184 +17776 8184 +18080 8184 +18256 9064 +10448 10032 +10560 10032 +10704 10032 +10864 10032 +10976 10032 +11136 10032 +11760 10032 +11888 10032 +12032 10032 +12144 10032 +12880 10032 +13008 10032 +13168 10032 +13312 10032 +13472 10032 +13584 10032 +13680 3608 +13680 4268 +13680 6028 +13680 6776 +13680 8008 +13680 9504 +17760 6908 +18048 6908 +18128 7348 +12640 3388 +12784 2640 +12784 3168 +10976 8008 +11088 8008 +11264 8008 +11664 8008 +11728 8008 +11792 8008 +11888 8008 +12912 8008 +13008 8008 +13184 8008 +13328 8008 +13456 8008 +13568 8008 +8400 2068 +8400 2508 +8400 3608 +9328 1452 +9520 1452 +9632 1452 +9840 1452 +10160 1452 +10256 1452 +10336 1452 +10544 1452 +10608 1452 +10672 1452 +10864 1452 +10992 1452 +11088 1452 +11168 1452 +12304 572 +14864 3608 +14864 4048 +14864 6138 +14864 7568 +14864 8228 +14864 9064 +14864 9504 +14864 10252 +14864 10890 +7792 2068 +7792 2508 +7792 3608 +7792 4048 +7792 4488 +7792 6446 +15376 3608 +15376 4180 +15376 6138 +15376 7348 +6864 2068 +6864 3608 +6864 4774 +6928 5368 +10544 5368 +10672 5368 +10704 9284 +12464 11000 +12592 11000 +12736 11000 +12880 11000 +13008 11000 +13168 11000 +13312 11000 +13456 11000 +13584 11000 +14144 11000 +14224 11000 +14336 11000 +14416 11000 +14992 11000 +15440 11000 +15632 11000 +15760 11000 +15824 11000 +16160 11000 +16464 11000 +15952 572 +15952 1452 +16048 2992 +16208 2992 +16464 2992 +16704 2992 +17072 2992 +17136 2992 +17296 2992 +15664 572 +15664 3608 +15664 4180 +15664 7348 +15664 7788 +15664 9064 +15664 9504 +15664 10252 +16432 1452 +8144 9548 +8144 11440 +9616 572 +12112 572 +12112 3938 +12112 5258 +8304 9548 +8304 11440 +12912 8844 +13008 8844 +13184 8844 +13328 8844 +13456 8844 +13552 3608 +13552 4378 +13552 5368 +13552 6028 +13552 6776 +11920 6996 +11920 9284 +11952 572 +11952 3938 +11952 5258 +10320 572 +10448 11440 +11824 572 +11824 3938 +11824 5258 +12656 5368 +5008 10692 +5008 11132 +13168 1980 +13168 2640 +13168 3608 +13168 4378 +13168 5478 +13232 6028 +13376 6028 +13488 6028 +14032 6028 +14144 6028 +14224 6028 +14320 6028 +14464 6028 +14976 6028 +16704 6028 +3280 10912 +3280 11440 +6736 308 +6736 2068 +6736 3608 +6736 4774 +6736 5698 +6736 6336 +8784 11440 +10288 11440 +10512 11440 +11792 6996 +8720 4158 +6800 5808 +6800 6336 +6912 6556 +7856 6556 +8896 6556 +8944 2288 +8944 3608 +7568 9504 +7856 9504 +8784 9504 +14144 8228 +14224 8228 +14336 8228 +14416 8228 +14480 8228 +15440 8228 +15504 8228 +15536 3608 +15536 4180 +15536 7348 +15568 572 +15760 572 +15840 572 +16048 572 +16208 572 +16704 572 +17104 572 +17296 572 +18000 572 +18080 572 +11728 572 +11728 3938 +11728 5258 +11728 6996 +11760 9284 +12272 3938 +12272 5258 +10512 9284 +7856 4048 +7920 4048 +8784 2288 +8784 3608 +8784 4268 +7920 2068 +7920 2508 +7920 3608 +7920 4488 +8880 4268 +10544 572 +10544 6996 +10608 4488 +9008 2288 +9312 2288 +11440 572 +11440 5258 +11440 6996 +11536 6996 +15824 7348 +15824 7788 +15824 9064 +15824 9504 +15824 10252 +6608 2068 +6608 3608 +6608 4664 +6896 5808 +112 11198 +10672 4488 +10832 4488 +10864 572 +10864 5038 +11088 6996 +9520 572 +9520 2068 +12240 6996 +3280 8712 +3280 9152 +3632 10472 +3632 10912 +3632 11440 +11568 9284 +14128 10472 +14160 1342 +14160 3608 +14160 4048 +14160 6776 +14160 7678 +14160 9504 +4080 10472 +4336 10472 +4576 10472 +4976 10032 +528 7370 +16016 1452 +16016 7348 +16016 9064 +16016 9504 +16160 9922 +16464 9922 +16640 9922 +16720 9922 +17088 9922 +1744 10912 +2112 10912 +2368 10912 +2544 10912 +2944 10912 +3056 8712 +3056 9152 +3088 10912 +4080 10912 +4336 10912 +4432 10912 +13456 9504 +14224 7788 +14336 7788 +14416 7788 +14448 1342 +14448 3608 +14448 4048 +1280 8404 +1744 8404 +1904 8404 +2160 8404 +2224 8404 +2368 8404 +2544 8404 +2704 7546 +14032 1342 +14032 3608 +14032 6776 +14976 7568 +14320 4048 +14768 4048 +13392 1980 +13392 3608 +13392 4378 +13392 5368 +16688 1452 +13360 6776 +16208 1452 +16208 7348 +1504 6336 +2064 6336 +2160 6336 +2224 6336 +2384 6336 +2544 6336 +4560 7370 +4304 7260 +4384 7260 +4464 7260 +4816 7260 +4880 7260 +14352 1342 +14352 3608 +14352 9504 +14352 10252 +5744 8844 +4336 11440 +6160 3608 +6160 4664 +6160 11132 +6512 3608 +6512 4664 +6928 2068 +6928 3608 +6928 4664 +11280 6996 +12592 6996 +13488 3608 +14768 3608 +14960 3608 +15760 3608 +15840 3608 +15920 7348 +12368 572 +12368 1232 +12368 3938 +12368 5258 +11664 6996 +17776 2684 +12464 3938 +13488 4268 +13232 6666 +10192 572 +944 7370 +10848 9284 +17088 9284 +17344 9284 +4592 4840 +4592 6028 +11024 572 +11024 5038 +2384 7436 +2384 9152 +2384 11440 +2928 8712 +2928 9152 +2928 11440 +2544 7546 +2544 9152 +2544 11440 +9648 7480 +2048 7172 +2160 7172 +2224 7172 +3440 7172 +1744 9042 +1744 11440 +2096 9152 +2096 11440 +3056 11440 +10960 6996 +2992 8712 +2992 9152 +10896 6996 +4080 11440 +16144 9064 +16144 9504 +14224 6776 +14224 9504 +14224 10252 +17104 8624 +17136 7348 +15440 9064 +15440 9504 +15440 10252 +15760 7788 +15856 1452 +4208 4840 +18320 7348 +15760 4180 +9712 7480 +17072 1452 +17072 7348 +16464 9504 +7856 2068 +7856 2508 +7856 3608 +7856 4488 +16720 7348 +15504 9064 +4368 4840 +6000 11132 +6064 11132 +4688 5808 +4816 5808 +4880 5808 +9008 3608 +15760 9064 +17424 9064 +18512 8294 +4880 4664 +4880 5368 +4880 6776 +4688 4488 +4752 4488 +4816 4488 +18608 8866 +14416 9504 +14416 10252 +15760 7348 +18224 7348 +13424 6776 +18704 8866 +11088 4928 +11168 4928 +12464 5368 +15760 1452 +15760 9504 +15760 10252 +432 7480 +11168 6996 +13488 6776 +13584 9504 +13488 5368 +11184 572 +4464 4840 +4528 4840 +4816 5368 +4816 6776 +11088 572 +10672 572 +10256 572 +9840 572 +18192 10670 +18379 8624 +18416 3619 +18416 7766 +1200 3575 +1200 9658 +17904 231 +17904 1628 +17904 4796 +17904 7766 +17904 9438 +17940 9570 +18224 10670 +8272 1188 +8272 7029 +8416 7260 +8496 8866 +15888 8503 +15888 9878 +15888 10626 +15888 11429 +15984 8184 +16128 8184 +16299 8184 +16336 2222 +16336 3850 +16336 5368 +16336 6798 +16336 7887 +1040 3575 +1040 9658 +4432 220 +4496 308 +4784 308 +4848 308 +5040 308 +5296 308 +5584 308 +5648 308 +5808 220 +5808 2024 +5808 4048 +5936 8382 +5936 10802 +16848 1012 +16848 2222 +16848 3850 +16848 5368 +16848 6688 +16848 7876 +16848 10560 +16848 11528 +8240 1188 +8240 7018 +8260 7700 +8400 8756 +1520 10032 +1552 8932 +1584 3113 +1584 7018 +1584 8789 +5136 11528 +5200 11440 +5360 11440 +5552 11528 +5616 11440 +5808 11440 +5968 11528 +2672 3113 +2736 6556 +2880 6556 +3024 6556 +3200 6556 +3312 6556 +3408 6556 +3808 6556 +3888 6556 +3952 6556 +4096 6556 +4176 6556 +4256 6556 +4432 6556 +4496 6556 +4640 6556 +4720 7590 +4720 8866 +4720 11495 +17008 1012 +17008 2222 +17008 4356 +17008 6688 +17008 7843 +17028 8096 +17104 8096 +17168 8096 +17408 8096 +17499 8096 +17520 9603 +17520 10670 +880 3575 +880 9922 +4144 2365 +4144 5434 +4144 6908 +4272 8360 +4336 8360 +4512 8360 +4624 8360 +4688 8360 +4784 8360 +4944 8360 +5136 8360 +5488 7304 +5456 8481 +5456 10692 +5520 2178 +5520 4048 +5520 6402 +16560 10890 +16576 8184 +16592 1012 +16592 2222 +16592 3850 +16592 5478 +16592 6798 +16592 7887 +7728 8756 +7748 7040 +7824 7040 +7888 7040 +8016 1188 +8016 4818 +8016 6919 +16272 10461 +16272 11429 +16432 8844 +16592 8844 +16688 8844 +16763 8844 +16784 1012 +16784 2222 +16784 3850 +16784 5478 +16784 6688 +16784 7876 +464 9691 +484 8184 +560 8184 +747 8184 +784 3575 +7664 6908 +7664 8756 +7728 1188 +7728 4818 +5232 2178 +5232 4048 +5232 6402 +5232 7315 +5499 7612 +5520 8382 +5520 10692 +3856 2959 +3856 6908 +3876 7920 +3952 7920 +4096 7920 +4784 748 +4848 748 +5040 748 +5296 748 +5584 748 +5648 748 +5872 748 +6096 264 +6096 2024 +6096 4048 +6096 5225 +6116 5368 +6192 5368 +6256 5368 +6416 5368 +6571 5368 +6096 594 +6608 8646 +6608 9438 +6608 11495 +17200 5335 +17200 6688 +17200 7722 +17200 10560 +17200 11528 +17392 5192 +17504 5192 +17616 231 +17616 1782 +17616 4213 +7248 10802 +7376 638 +7376 1518 +7376 4048 +7376 4928 +7376 8756 +1808 3113 +1824 6864 +1840 8052 +1840 10032 +12272 11165 +12384 9064 +12528 9064 +12656 9064 +12827 9064 +12848 1606 +12848 2310 +12848 4708 +12848 6072 +12848 7392 +12848 8536 +1648 8778 +1648 10032 +1664 8184 +1680 3113 +1680 7018 +1680 8063 +4784 528 +4848 528 +5040 528 +5296 528 +5584 528 +5648 528 +5872 528 +5936 330 +5936 2024 +5936 4048 +5936 5324 +6096 6556 +6192 6556 +6256 8382 +6256 11495 +16976 6688 +16976 7876 +16976 10560 +16976 11528 +17040 5720 +17104 5720 +17168 5720 +17392 5720 +17504 5720 +17680 231 +17680 1782 +17680 4246 +11600 231 +11600 902 +11600 4488 +11600 6072 +11600 7392 +11616 8228 +11632 11275 +17264 10549 +17264 11528 +17284 10142 +17472 10142 +17552 10142 +17920 10142 +18368 10142 +18512 10142 +18656 10142 +18784 10142 +18928 10142 +19024 10142 +6224 429 +6224 2024 +6224 4048 +6224 8382 +6224 10813 +6352 10912 +6464 10912 +6672 10912 +6843 10912 +1936 3113 +1936 6754 +1936 8063 +1952 8184 +1968 8778 +1968 10032 +816 3575 +816 9922 +3984 2959 +3984 6908 +4128 8932 +4272 8932 +4336 8932 +4496 9031 +4496 11495 +15440 583 +15440 2530 +15440 5489 +15460 5808 +15600 5808 +15712 5808 +15792 5808 +15888 5808 +15984 5808 +16128 5808 +16288 5808 +16400 6798 +16400 7876 +16400 10461 +16400 11429 +5360 2178 +5360 4048 +5360 7194 +5552 10252 +5632 10252 +5808 10252 +5968 10252 +6032 10252 +6112 10252 +6192 10252 +6304 8536 +6288 11495 +6320 429 +6320 2024 +6320 4048 +1168 9658 +1232 3575 +1232 7843 +6352 429 +6352 2024 +6352 4048 +6352 8657 +6368 8844 +6384 11495 +16688 11407 +16784 11198 +16912 11198 +17040 11198 +17136 11198 +17296 11198 +17472 11198 +17552 11198 +17920 11198 +18368 11198 +18512 11198 +18656 11198 +18768 11198 +18928 11198 +15280 2530 +15280 5478 +15280 6798 +15280 7788 +15280 8646 +15280 9878 +15280 10626 +15280 11429 +3472 10032 +3488 7480 +3504 3113 +3504 7139 +208 9581 +308 7964 +480 7964 +560 7964 +736 7964 +848 7964 +912 7964 +976 7964 +1083 7964 +1104 3575 +1104 7843 +1392 2904 +1392 5852 +1408 6028 +1424 8778 +1424 10032 +10224 3608 +10288 3608 +10384 3608 +10512 3608 +10576 3608 +10640 3608 +10704 3608 +10800 3608 +10928 3608 +11056 3608 +11120 3608 +11216 3608 +11344 3608 +11488 3608 +11664 902 +688 3575 +688 9922 +5872 968 +6128 968 +6192 968 +6256 968 +6416 968 +6544 968 +6672 968 +6784 968 +6896 968 +7008 968 +7184 968 +7312 968 +7504 968 +7600 759 +7600 1397 +7600 4939 +7664 5148 +7760 5148 +7824 5148 +7888 5148 +7952 5148 +8048 5148 +8176 5148 +8336 5148 +8432 5148 +8496 5148 +8752 5148 +8848 5148 +8992 5148 +9440 5148 +9552 5148 +9680 5148 +9824 5148 +10011 5148 +10032 231 +10032 1012 +10032 1760 +5488 2178 +5488 4048 +5488 6402 +5648 7084 +5936 7084 +6096 7084 +6192 7084 +6416 7084 +6544 7084 +6672 7084 +6768 7161 +6768 8646 +6768 9438 +9936 231 +9936 1012 +9936 1760 +5200 2178 +5200 4048 +5200 6402 +5200 7458 +5200 10593 +7408 638 +7408 1518 +7408 4048 +7408 4928 +7408 8756 +7536 10692 +7600 10692 +7696 10692 +7824 10692 +7888 10692 +7984 10692 +8096 10692 +8176 10692 +8272 10692 +8368 10692 +8432 10692 +8720 10692 +8848 10692 +9104 10692 +9728 10692 +10032 10692 +10256 10692 +10320 10692 +10480 10692 +10656 10692 +10768 10692 +10928 10692 +11024 10692 +11216 10692 +11328 10692 +11440 10692 +11520 10692 +11600 10692 +11707 10692 +11728 11330 +11728 10868 +4880 11495 +4944 2178 +4944 4048 +4944 6402 +6896 220 +7008 308 +7184 308 +7312 308 +7504 308 +7664 308 +7760 308 +7824 308 +7888 308 +7952 308 +8048 308 +8208 308 +8336 308 +8432 308 +8496 308 +8560 308 +8624 308 +8752 308 +8848 308 +8976 308 +9040 308 +9168 308 +9232 220 +9232 759 +9232 1760 +9232 2948 +9232 7029 +3440 10032 +3504 7920 +3632 7920 +3696 7920 +3760 3113 +3760 6908 +8240 8899 +8272 8756 +8304 1188 +8304 6908 +8304 8613 +9296 6897 +9296 9878 +9456 6776 +9552 6776 +9680 6776 +9776 231 +9776 1012 +9776 1760 +6992 8646 +6992 10802 +7024 7260 +7056 638 +7056 1518 +7056 2574 +7056 4048 +7056 7139 +14640 2530 +14640 5368 +14640 6798 +14640 8646 +14640 9878 +14640 11539 +14736 1012 +14800 1012 +14912 1012 +15120 1012 +15328 1012 +15408 1012 +15472 1012 +15600 1012 +15728 1012 +15792 1012 +15888 1012 +15984 1012 +16128 1012 +16272 1012 +16400 1012 +16528 913 +14704 2530 +14720 4928 +14736 5357 +14736 6798 +14736 8646 +14736 9878 +14736 11429 +14816 4928 +14928 4928 +15136 4928 +15328 4928 +15408 4928 +15472 4928 +15600 4928 +15712 4928 +15792 4928 +15888 4928 +15984 4928 +16128 4928 +16288 4928 +16400 4928 +16544 4928 +16656 4928 +16752 4928 +16816 1012 +16816 2222 +16816 3850 +13808 5137 +13808 7282 +13808 8866 +13808 9878 +13808 11539 +13908 4708 +14080 4708 +14224 4708 +14400 4708 +14512 4708 +14736 4708 +14816 4708 +14928 4708 +15136 4708 +15328 4708 +15408 4708 +15472 4708 +15600 4708 +15712 4708 +15792 4708 +15888 4708 +15984 4708 +16128 4708 +16288 4708 +16400 4708 +16544 4708 +16656 4708 +16752 4708 +16912 4708 +16976 1012 +16976 2222 +16976 3971 +3664 3113 +3664 7018 +3664 9119 +3684 9284 +3760 10142 +3600 3113 +3600 7128 +3600 9042 +3712 9812 +3888 9812 +4128 9812 +4272 9812 +4400 9812 +4528 9812 +4624 9812 +4688 9812 +4795 9812 +4955 9152 +4816 11495 +4976 2178 +4976 4048 +4976 6402 +8976 6897 +8976 9878 +8996 6556 +9296 6556 +9456 6556 +9552 6556 +9680 6556 +9808 6556 +10016 6556 +10128 6556 +10224 6556 +10384 6556 +10512 6556 +10656 6556 +10800 6556 +10864 6556 +10928 6556 +11040 6556 +11120 6556 +11216 6556 +11328 6556 +11504 6556 +11568 6556 +11632 6556 +11696 6556 +11760 6556 +11824 6556 +11920 6556 +12032 6556 +12176 6556 +12384 6556 +12512 6556 +12688 6556 +12800 6556 +12912 6556 +13072 484 +13072 1606 +13072 2310 +13072 3124 +13072 3938 +13072 4708 +13072 6193 +13108 572 +13200 572 +13344 572 +13488 572 +13632 572 +13856 572 +14096 572 +14224 572 +14400 572 +14640 572 +14736 572 +14800 572 +14912 572 +15040 572 +15200 572 +15328 572 +15408 484 +10016 6776 +10128 6776 +10224 6776 +10384 6776 +10480 231 +10480 1012 +10480 1760 +7120 638 +7120 1518 +7120 4048 +7120 8536 +7120 10802 +3728 3113 +3728 6908 +3899 9592 +4016 10142 +5776 10802 +5796 9064 +5968 9064 +6032 9064 +6112 9064 +6192 9064 +6352 9064 +6432 9064 +6512 9064 +6672 9064 +6864 9064 +6928 9064 +7024 9064 +7211 9064 +7248 638 +7248 1518 +7248 4048 +7248 7128 +7248 8767 +3920 2959 +3920 6908 +3920 9163 +3972 9372 +4128 9372 +4272 9372 +4528 9372 +4624 9372 +4688 9372 +4784 9372 +4960 9372 +5136 9372 +5552 9372 +5632 9372 +5808 9372 +5968 9372 +6032 9372 +6112 9372 +6192 9372 +6352 9372 +6432 9372 +6512 9471 +6512 11495 +16368 2222 +16368 3850 +16368 5368 +16368 6798 +16368 7876 +16368 10461 +16368 11429 +3536 3113 +3536 7128 +3536 10032 +8464 8745 +8720 8448 +8848 8448 +9104 8448 +9728 8448 +10000 8448 +10256 8448 +10352 8448 +10464 8448 +10656 8448 +10736 8448 +10800 8448 +10912 8448 +11040 8448 +11200 8448 +11344 8448 +11504 8448 +11600 8448 +11712 8448 +11792 8448 +11984 8448 +12192 8448 +12272 8448 +12384 8448 +12528 8448 +12656 8448 +12720 1606 +12720 2574 +12720 4708 +12720 6072 +12720 7392 +12816 792 +12944 792 +13120 792 +13200 792 +13344 792 +13488 792 +13632 792 +13856 792 +14096 792 +14224 792 +14400 792 +14640 792 +14736 792 +14800 792 +14912 792 +15051 792 +2800 3113 +2800 6864 +2852 7700 +2960 7700 +3024 7700 +3200 7700 +3312 7700 +3424 7700 +3504 7700 +3632 7700 +3696 7700 +3808 7700 +3888 7700 +3952 7700 +4096 7700 +4176 7700 +4240 7799 +8048 8756 +8080 7700 +8112 1188 +8112 4818 +8112 7018 +1328 3223 +1328 6919 +1456 8778 +1456 10032 +9680 2288 +9808 2288 +9872 2288 +10000 2288 +10096 2288 +10224 2288 +10288 2288 +10384 2288 +10512 2288 +10576 2288 +10640 2288 +10704 2288 +10800 2288 +10928 2288 +11056 2288 +11120 2288 +11216 2288 +11344 2288 +11408 2288 +11488 2288 +11696 2288 +11760 2288 +11904 2288 +12048 2288 +12176 2288 +12336 2288 +12432 2288 +12496 913 +12496 1606 +12516 1012 +12688 1012 +12816 1012 +12944 1012 +13120 1012 +13200 1012 +13344 1012 +13488 1012 +13632 1012 +13867 1012 +5232 10472 +5488 7920 +5552 7920 +5632 7920 +5712 7920 +5808 7920 +5968 7920 +6096 7920 +6192 7920 +6416 7920 +6544 7920 +6672 7920 +6864 7920 +6928 7920 +7040 7920 +7184 7920 +7536 7920 +7600 7920 +7696 7920 +7760 7920 +7824 7920 +7888 7920 +8096 7920 +8176 7920 +8256 7920 +8448 7920 +8720 7920 +8848 7920 +9115 7920 +9136 1188 +9136 2948 +9136 5962 +9136 7018 +9444 6116 +9552 6116 +9680 6116 +9808 6116 +10016 6116 +10144 6116 +10224 6116 +10384 6116 +10512 6116 +10576 6116 +10656 6116 +10800 6116 +10864 6116 +10928 6116 +11056 6116 +11120 6116 +11216 6116 +11312 231 +11312 902 +11312 4488 +11312 5973 +9008 9878 +9104 1188 +9104 2948 +9104 5962 +9104 7029 +5648 10681 +5808 10472 +5968 10472 +6032 10472 +6112 10472 +6192 10472 +6352 10472 +6464 10472 +6672 10472 +6848 10472 +7024 10472 +7200 10472 +7376 10472 +7536 10472 +7600 10472 +7696 10472 +7824 10472 +7888 10472 +7984 10472 +8096 10472 +8176 10472 +8272 10472 +8368 10472 +8432 10472 +8720 10472 +8848 10472 +9104 10472 +9728 10472 +10032 10472 +10256 10472 +10320 10472 +10480 10472 +10656 10472 +10747 10472 +10768 231 +10768 902 +10768 1760 +10768 7392 +10768 10373 +10016 9064 +10064 231 +10064 1012 +10064 1760 +5584 3223 +5584 4048 +5584 6402 +5584 8382 +5584 10692 +5664 3080 +5872 3080 +6128 3080 +6192 3080 +6256 3080 +6416 3080 +6560 3080 +6672 3080 +6784 3080 +6896 3080 +7008 3080 +7088 3080 +7184 3080 +7312 3080 +7504 3080 +7664 3080 +7760 3080 +7824 3080 +7888 3080 +7952 3080 +8048 3080 +8208 3080 +8336 3080 +8432 3080 +8496 3080 +8624 3080 +8752 3080 +8848 3080 +8976 3080 +9051 3080 +9072 1188 +9072 2915 +8624 5962 +8624 8866 +8688 1188 +8592 8866 +8656 1188 +8656 5962 +7952 8756 +8048 6116 +8176 6116 +8432 6116 +8507 6116 +8528 1188 +8528 5973 +8464 1188 +8656 8866 +7056 10802 +7195 8844 +7216 638 +7216 1518 +7216 4048 +7216 7128 +7216 8657 +17456 1782 +17456 4092 +17456 6578 +17456 7722 +17456 8745 +17476 8844 +17552 8844 +17712 9603 +17712 10670 +9428 2948 +9680 2948 +9808 2948 +9872 2948 +10000 2948 +10096 2948 +10224 2948 +10288 2948 +10384 2948 +10512 2948 +10576 2948 +10640 2948 +10704 2948 +10800 2948 +10928 2948 +11056 2948 +11120 2948 +11216 2948 +11344 2948 +11488 2948 +11696 2948 +11760 2948 +11904 2948 +12048 2948 +12176 2948 +12336 2948 +12432 2948 +12523 2948 +12560 1606 +12560 2354 +17552 1782 +17552 4092 +17552 6578 +17552 7887 +17712 8184 +17856 8184 +17968 8184 +18192 8184 +18256 9427 +18256 10670 +9728 10032 +10032 10032 +10256 10032 +10320 10032 +10416 10032 +10480 10032 +10656 10032 +10736 10032 +10800 10032 +10928 10032 +11040 10032 +11216 10032 +11312 10032 +11440 10032 +11520 10032 +11600 10032 +11712 10032 +11792 10032 +11984 10032 +12080 10032 +12208 10032 +12384 10032 +12528 10032 +12656 10032 +12816 10032 +12944 10032 +13088 10032 +13232 10032 +13408 10032 +13536 10032 +13643 10032 +13680 2530 +13680 5148 +13680 7282 +13680 8866 +13680 9889 +17712 231 +17712 1782 +17712 4246 +17712 6325 +17840 6908 +17968 6908 +18128 7007 +18128 7766 +18128 10670 +9072 3487 +9072 5962 +9072 6908 +9072 9878 +9440 3388 +9520 3388 +9680 3388 +9840 3388 +10000 3388 +10096 3388 +10224 3388 +10288 3388 +10384 3388 +10512 3388 +10576 3388 +10640 3388 +10704 3388 +10800 3388 +10928 3388 +11056 3388 +11120 3388 +11216 3388 +11344 3388 +11488 3388 +11696 3388 +11760 3388 +11904 3388 +12048 3388 +12176 3388 +12336 3388 +12432 3388 +12544 3388 +12688 3388 +12763 3388 +12784 1606 +12784 2310 +9232 8107 +9232 9878 +9648 8008 +9744 8008 +9904 8008 +10016 8008 +10192 8008 +10256 8008 +10384 8008 +10496 8008 +10656 8008 +10816 8008 +10928 8008 +11040 8008 +11120 8008 +11216 8008 +11328 8008 +11504 8008 +11568 8008 +11632 8008 +11696 8008 +11760 8008 +11824 8008 +11968 8008 +12192 8008 +12272 8008 +12384 8008 +12528 8008 +12656 8008 +12800 8008 +12880 8008 +12944 8008 +13088 8008 +13264 8008 +13392 8008 +13520 8008 +13632 8008 +13712 2530 +13712 5148 +13712 7282 +8400 1188 +8400 6919 +8420 7040 +8507 7040 +8528 7139 +8528 8866 +9168 1639 +9168 2948 +9168 5962 +9168 7018 +9168 8074 +9168 9878 +9264 1452 +9424 1452 +9584 1452 +9680 1452 +9808 1452 +9872 1452 +10000 1452 +10096 1452 +10224 1452 +10288 1452 +10384 1452 +10512 1452 +10576 1452 +10640 1452 +10704 1452 +10800 1452 +10928 1452 +11056 1452 +11120 1452 +11216 1452 +11344 1452 +11488 1452 +11696 1452 +11760 1452 +11904 1452 +12048 1452 +12176 1452 +12304 902 +9360 2827 +9412 2728 +9680 2728 +9808 2728 +9872 2728 +10000 2728 +10096 2728 +10224 2728 +10288 2728 +10384 2728 +10512 2728 +10576 2728 +10640 2728 +10704 2728 +10800 2728 +10928 2728 +11056 2728 +11120 2728 +11216 2728 +11344 2728 +11488 2728 +11696 2728 +11760 2728 +11904 2728 +12048 2728 +12176 2728 +12336 2728 +12432 2728 +12512 2728 +12592 1606 +12592 2475 +14864 2530 +14864 4378 +14864 5478 +14864 6798 +14864 8646 +14864 9878 +14864 11429 +7760 8745 +7776 8448 +7792 1188 +7792 4818 +15312 7887 +15312 8646 +15312 9878 +15312 10626 +15312 11429 +15344 7788 +15376 2530 +15376 5478 +15376 6798 +15376 7689 +6864 429 +6864 1518 +6864 2574 +6864 4048 +7008 5368 +7088 5368 +7184 5368 +7328 5368 +7584 5368 +7664 5368 +7760 5368 +7824 5368 +7888 5368 +7952 5368 +8048 5368 +8176 5368 +8336 5368 +8432 5368 +8496 5368 +8752 5368 +8848 5368 +8992 5368 +9440 5368 +9552 5368 +9680 5368 +9824 5368 +10016 5368 +10160 5368 +10224 5368 +10288 5368 +10384 5368 +10512 5368 +10608 5368 +10704 7392 +10704 11495 +12400 11484 +12528 11000 +12656 11000 +12816 11000 +12944 11000 +13088 11000 +13232 11000 +13392 11000 +13536 11000 +13696 11000 +13968 11000 +14192 11000 +14272 11000 +14384 11000 +14448 11000 +12400 11176 +14576 2530 +14576 5368 +14576 6798 +14576 8646 +14576 9878 +14704 11000 +14784 11000 +14960 11000 +15120 11000 +15392 11000 +15520 11000 +15712 11000 +15792 11000 +15856 11000 +16048 11000 +16224 11000 +16432 11000 +16496 11484 +16496 11176 +7088 8536 +7088 10802 +7152 638 +7152 1518 +7152 4048 +7152 7139 +15952 2343 +15972 2992 +16128 2992 +16272 2992 +16400 2992 +16544 2992 +16656 2992 +16752 2992 +16912 2992 +17040 2992 +17104 2992 +17184 2992 +17392 2992 +17504 2992 +17744 4125 +17744 6204 +17744 7766 +17744 8734 +17744 9603 +17744 10670 +15664 2530 +15664 5368 +15664 6798 +15664 8426 +15664 9878 +15664 10626 +15664 11429 +17584 231 +17584 1782 +17584 4092 +17584 6578 +17584 7766 +17584 9603 +17584 10670 +16432 2222 +16432 3850 +16432 5478 +16432 6798 +16432 7887 +16528 10890 +8144 1188 +8144 4818 +8144 7018 +8144 8756 +9616 231 +9616 1012 +9616 1760 +9616 7139 +12112 902 +12112 4488 +12112 5962 +12112 7392 +8368 1188 +8368 6908 +8368 8767 +12784 11429 +12804 8844 +12880 8844 +12944 8844 +13088 8844 +13264 8844 +13392 8844 +13531 8844 +13552 2530 +13552 3938 +13552 4928 +13552 7282 +13552 8657 +18864 10846 +18864 11528 +18916 9086 +19024 9086 +11920 7392 +11920 11165 +11936 6776 +11952 902 +11952 4488 +11952 6072 +10320 231 +10320 1012 +10320 1760 +10320 7392 +10427 9504 +11824 902 +11824 4488 +11824 6083 +11840 6336 +11856 7392 +11856 11165 +12656 1606 +12656 2574 +12656 4708 +12656 6072 +12672 6776 +12688 7392 +12688 11429 +5008 11495 +5072 2178 +5072 4048 +5072 6402 +5072 7194 +13168 1606 +13168 2310 +13168 3124 +13168 3938 +13168 4928 +13168 5929 +13296 6028 +13456 6028 +13520 6028 +13632 6028 +13760 6028 +13920 6028 +14080 6028 +14192 6028 +14256 6028 +14400 6028 +14512 6028 +14704 6028 +14816 6028 +14928 6028 +15136 6028 +15328 6028 +15440 6028 +15600 6028 +15712 6028 +15792 6028 +15888 6028 +15984 6028 +16128 6028 +16288 6028 +16544 6028 +16656 6028 +16752 6028 +16816 6028 +16912 6028 +17040 6028 +17104 6028 +17168 6028 +17392 6028 +17504 6028 +17680 6457 +17680 7766 +17680 9603 +17680 10670 +3312 10692 +3344 3113 +3344 6864 +3344 10153 +14544 2530 +14544 5368 +14544 6798 +14544 8646 +14544 9878 +14544 11539 +6736 638 +6736 1518 +6736 2574 +6736 4048 +6736 8646 +6736 9438 +6832 11440 +7024 11440 +7200 11440 +7440 11440 +7536 11440 +7600 11440 +7696 11440 +7824 11440 +7888 11440 +8096 11440 +8176 11440 +8272 11440 +8368 11440 +8432 11440 +8720 11440 +8848 11440 +9104 11440 +9728 11440 +10032 11440 +10256 11440 +10320 11440 +10480 11440 +10544 11528 +11792 902 +11792 4488 +11792 6072 +11792 7392 +11808 8228 +11824 11165 +8720 1188 +8720 5962 +8848 7700 +9104 7700 +9232 7700 +6064 319 +6064 2024 +6064 4048 +6064 5335 +6100 5588 +6192 5588 +6256 5588 +6416 5588 +6560 5588 +6672 5588 +6779 5588 +6800 7128 +6800 8646 +6800 9438 +6864 6556 +6992 6556 +7088 6556 +7184 6556 +7328 6556 +7616 6556 +7744 6556 +7824 6556 +7888 6556 +8048 6556 +8176 6556 +8432 6556 +8512 6556 +8832 6556 +8944 1188 +8944 5962 +8944 6897 +8944 9878 +5968 319 +5968 2024 +5968 4048 +5968 5324 +6096 7700 +6192 7700 +6416 7700 +6544 7700 +6672 7700 +6864 7700 +6928 7700 +7040 7700 +7152 8536 +7152 10802 +7204 9504 +7536 9504 +7600 9504 +7696 9504 +7824 9504 +7904 9504 +8096 9504 +8176 9504 +8272 9504 +8368 9504 +8432 9504 +8720 9504 +8864 9504 +9104 9504 +9728 9504 +9968 231 +9968 1012 +9968 1760 +11952 11165 +11972 8228 +12192 8228 +12272 8228 +12384 8228 +12528 8228 +12656 8228 +12800 8228 +12880 8228 +12944 8228 +13088 8228 +13264 8228 +13392 8228 +13520 8228 +13632 8228 +13744 8228 +13968 8228 +14192 8228 +14272 8228 +14384 8228 +14448 8228 +14512 8228 +14704 8228 +14784 8228 +15120 8228 +15392 8228 +15472 8228 +15536 484 +15536 671 +15536 2530 +15536 5368 +15536 6798 +15600 572 +15728 572 +15792 572 +15888 572 +15984 572 +16128 572 +16272 572 +16400 572 +16560 572 +16656 572 +16752 572 +16912 572 +17040 572 +17184 572 +17392 572 +17504 572 +17824 572 +17968 572 +18032 572 +18128 352 +7568 8756 +7600 6116 +7632 1188 +7632 4818 +11728 902 +11728 4488 +11728 6072 +11728 7392 +11744 8228 +11760 11165 +19024 11528 +12272 902 +12272 4488 +12272 5962 +12384 6776 +12496 7392 +12496 11429 +10656 8228 +10736 231 +10736 902 +10736 1760 +10736 7392 +7504 8756 +7568 638 +7568 1518 +7568 3949 +7568 4147 +7568 4939 +7664 4048 +7760 4048 +7824 4048 +7888 4048 +7952 4048 +8048 4048 +8208 4048 +8336 4048 +8432 4048 +8496 4048 +8688 4048 +8763 4048 +8784 1188 +8784 3949 +8784 8866 +7888 9064 +7920 1188 +7920 4818 +7920 8767 +7940 4268 +8048 4268 +8208 4268 +8336 4268 +8432 4268 +8496 4268 +8688 4268 +8752 4268 +8848 4268 +8912 4268 +8992 4268 +9440 4268 +9552 4268 +9680 4268 +9824 4268 +9936 4268 +10000 4268 +10224 4268 +10288 4268 +10384 4268 +10523 4268 +10544 231 +10544 1012 +10544 1760 +10544 7392 +10656 11132 +10768 11132 +10928 11132 +10992 11550 +10992 11308 +8208 7018 +8208 8756 +8336 4708 +8432 4708 +8496 4708 +8752 4708 +8848 4708 +8992 4708 +9440 4708 +9552 4708 +9680 4708 +9824 4708 +9936 4708 +10000 4708 +10224 4708 +10288 4708 +10384 4708 +10512 4708 +10587 4708 +10608 231 +10608 902 +10608 1760 +11984 902 +11984 4488 +11984 6072 +12000 6776 +12016 7392 +12016 11165 +8560 5962 +8560 7018 +8560 8866 +8624 2288 +8752 2288 +8848 2288 +8976 2288 +9040 2288 +9264 2288 +9360 671 +9360 1760 +11376 11385 +11440 231 +11440 902 +11440 4488 +11440 6072 +11440 7392 +10256 8228 +10352 231 +10352 1012 +10352 1760 +10352 7392 +11472 7392 +11472 11275 +11492 6336 +11568 231 +11568 902 +11568 4488 +11568 6083 +11184 11385 +11204 9064 +11344 9064 +11515 9064 +11536 231 +11536 902 +11536 4488 +11536 5962 +11536 7392 +656 3575 +656 9922 +15824 5368 +15824 6798 +15824 8426 +15824 9878 +15824 10626 +15824 11429 +15888 4488 +15984 4488 +16128 4488 +16283 4488 +16304 2222 +16304 3861 +6608 429 +6608 1518 +6608 2574 +6608 4048 +6660 5060 +6784 5060 +6896 7128 +6896 8646 +6896 10802 +12048 7392 +12048 11165 +12187 6776 +12208 902 +12208 4488 +12208 5962 +155 11198 +8912 5962 +8912 7018 +8912 9878 +8992 4488 +9440 4488 +9552 4488 +9680 4488 +9824 4488 +9936 4488 +10000 4488 +10224 4488 +10288 4488 +10384 4488 +10512 4488 +10576 4488 +10640 4488 +10704 4488 +10800 4488 +10864 231 +10864 902 +10864 1760 +10864 4389 +10864 4587 +10928 5896 +11067 5896 +11088 7392 +11088 11385 +9264 6908 +9264 9878 +9440 3168 +9520 231 +9520 1012 +9520 1760 +12240 902 +12240 4488 +12240 5962 +12240 7392 +12240 11165 +7312 8756 +7312 10802 +7536 638 +7536 1518 +7536 4048 +7536 4818 +3280 3113 +3280 6864 +3300 9372 +3504 9372 +3568 9372 +3632 10142 +11376 231 +11376 902 +11376 4488 +11376 6072 +11376 7392 +11504 8228 +11568 11275 +11280 11385 +11316 10472 +11440 10472 +11520 10472 +11600 10472 +11712 10472 +11792 10472 +11984 10472 +12080 10472 +12208 10472 +12384 10472 +12528 10472 +12656 10472 +12816 10472 +12944 10472 +13088 10472 +13232 10472 +13392 10472 +13536 10472 +13696 10472 +13968 10472 +14160 2530 +14160 5258 +14160 7172 +14160 8866 +14160 9878 +3152 3113 +3152 6864 +3188 7920 +3312 7920 +3408 10153 +3408 10571 +3504 10472 +3584 10472 +3712 10472 +3888 10472 +4048 10472 +4128 10472 +4272 10472 +4400 10472 +4528 10472 +4624 10472 +4688 10472 +4784 10472 +4955 10472 +4976 10373 +4992 9812 +4976 11495 +5008 2178 +5008 4048 +5008 6402 +528 3575 +528 9812 +16016 2222 +16016 3740 +16016 5368 +16016 6798 +16016 7766 +16016 8624 +16016 9834 +16068 9922 +16208 9922 +16432 9922 +16496 9922 +16592 9922 +16688 9922 +16784 9922 +16912 9922 +17040 9922 +17136 9922 +17280 9922 +17360 10670 +17360 11528 +5872 8382 +5872 10802 +5888 5060 +5904 209 +5904 2024 +5904 4048 +976 11055 +1104 10912 +1232 10912 +1584 10912 +1712 10912 +1776 10912 +1904 10912 +2064 10912 +2240 10912 +2464 10912 +2736 10912 +3019 10912 +3056 3113 +3056 6864 +3056 10153 +3168 10912 +3344 10912 +3504 10912 +3584 10912 +3712 10912 +3888 10912 +4048 10912 +4128 10912 +4272 10912 +4400 10912 +4464 10912 +4528 10912 +4624 10912 +4688 11495 +13456 8536 +13456 9174 +13456 11429 +13520 7788 +13632 7788 +13760 7788 +13968 7788 +14192 7788 +14272 7788 +14384 7788 +14448 2530 +14448 5368 +14448 6798 +14512 7788 +14704 7788 +14816 7788 +14928 7887 +14928 8646 +14928 9878 +14928 11429 +16048 2222 +16048 3740 +16048 5368 +16048 6798 +16048 7766 +16128 8404 +16304 8404 +16432 8404 +16592 8404 +16688 8404 +16752 8404 +16816 8404 +16912 8404 +17008 10560 +17008 11528 +560 9801 +752 8404 +912 8404 +976 8404 +1104 8404 +1232 8404 +1328 8404 +1536 8404 +1616 8404 +1696 8404 +1776 8404 +1872 8404 +1936 8404 +2112 8404 +2192 8404 +2288 8404 +2464 8404 +2635 8404 +2704 3113 +2704 6864 +2804 8140 +2960 8140 +3024 8140 +3168 8140 +3312 8140 +3504 8140 +3632 8140 +3696 8140 +3824 8140 +3952 8140 +4096 8140 +4272 8140 +4336 8140 +2704 8250 +4432 11495 +14032 2530 +14032 5258 +14032 7293 +14068 7568 +14192 7568 +14272 7568 +14384 7568 +14512 7568 +14704 7568 +14816 7568 +14928 7568 +15131 7568 +15248 7777 +15248 8646 +15248 9878 +15248 10626 +15248 11429 +13584 2530 +13584 3949 +13620 4048 +13872 4048 +14096 4048 +14224 4048 +14400 4048 +14512 4048 +14736 4048 +14800 4048 +14896 4257 +14896 5478 +14896 6798 +14896 8646 +14896 9878 +14896 11429 +14608 2530 +14608 5368 +14608 6798 +14608 8646 +14608 9878 +14608 11539 +13392 1606 +13392 2794 +13392 3938 +13392 4928 +13456 6248 +13520 6248 +13632 6248 +13760 6248 +13920 6248 +14080 6248 +14192 6248 +14256 6248 +14400 6248 +14512 6248 +14704 6248 +14816 6248 +14928 6248 +15136 6248 +15328 6248 +15440 6248 +15600 6248 +15712 6248 +15792 6248 +15888 6248 +15984 6248 +16128 6248 +16288 6248 +16544 6248 +16656 6677 +16656 7876 +16656 10890 +16672 6248 +16688 1012 +16688 2222 +16688 3850 +16688 5478 +12752 1606 +12752 2431 +12816 2640 +12944 2640 +13120 2640 +13339 2640 +13360 3003 +13360 3938 +13360 4928 +13360 6402 +13360 7392 +13360 8536 +13360 9174 +13360 11429 +16208 2222 +16208 3740 +16208 5368 +16208 6798 +16208 7766 +16283 8624 +16304 10461 +16304 11429 +1392 8778 +1392 10032 +1456 6336 +1552 6336 +1648 6336 +1760 6336 +1872 6336 +2000 6336 +2112 6336 +2192 6336 +2288 6336 +2480 6336 +2608 6336 +2736 6336 +2880 6336 +3024 6336 +3200 6336 +3312 6336 +3408 3058 +3408 6160 +3808 6336 +3888 6336 +3952 6336 +4096 6336 +4176 6336 +4256 6336 +4432 6336 +4496 6336 +4560 7810 +4560 8866 +4560 11495 +3696 3113 +3696 7029 +3808 7260 +3888 7260 +3952 7260 +4096 7260 +4176 7260 +4256 7260 +4336 7260 +4432 7260 +4496 7260 +4640 7260 +4768 7260 +4848 7260 +4912 7260 +5040 11495 +4912 11495 +5104 2178 +5104 4048 +5104 6402 +5104 7315 +14352 2530 +14352 5368 +14352 6908 +14352 8866 +14352 9878 +14352 11539 +5328 6391 +5328 7194 +5328 10582 +5392 2178 +5392 4048 +5744 10802 +5760 8624 +5776 2024 +5776 4048 +5776 8393 +1488 3113 +1488 6908 +1488 8778 +1488 10032 +4016 2959 +4016 6908 +4128 9152 +4272 9152 +7984 1188 +7984 4818 +7984 8756 +6160 429 +6160 2024 +6160 4048 +6160 8382 +6160 10802 +6160 11495 +5264 2178 +5264 4048 +5264 6402 +5264 7194 +5552 9812 +5632 9812 +5808 9812 +5968 9812 +6032 9812 +6112 9812 +6192 9812 +6352 9812 +6448 9812 +6672 9812 +6848 9812 +6928 9812 +7024 9812 +7216 9812 +7536 9812 +7600 9812 +7696 9812 +7824 9812 +7904 9812 +8096 9812 +8176 9812 +8272 9812 +8368 9812 +8432 9812 +8720 9812 +8859 9812 +8880 9911 +9200 7018 +9200 8074 +9200 9878 +9296 671 +9296 1760 +9296 2838 +6512 429 +6512 2024 +6512 4048 +6512 8657 +6528 8844 +6544 9438 +6544 11495 +9904 231 +9904 1012 +9904 1760 +6928 638 +6928 1518 +6928 2574 +6928 4048 +6928 7139 +6944 7260 +6960 8646 +6960 10802 +10896 10362 +10896 11495 +10916 9504 +11040 9504 +11216 9504 +11280 231 +11280 902 +11280 4488 +11280 7392 +7408 10912 +7440 638 +7440 1518 +7440 4048 +7440 4928 +7440 8756 +12592 4708 +12592 6072 +12592 7392 +12592 11429 +12608 3608 +12624 1606 +12624 2574 +12688 3608 +12784 3608 +12928 3608 +13120 3608 +13328 3608 +13456 3608 +13520 3608 +13632 3608 +13872 3608 +14096 3608 +14224 3608 +14400 3608 +14512 3608 +14736 3608 +14800 3608 +14912 3608 +15120 3608 +15328 3608 +15408 3608 +15472 3608 +15600 3608 +15712 3608 +15792 3608 +15899 3608 +15920 3927 +15920 5368 +15920 6798 +15920 7766 +15920 8624 +15920 9878 +15920 10626 +15920 11429 +12336 7392 +12336 11165 +12352 6116 +12368 902 +12368 1606 +12368 4488 +12368 5973 +17616 6578 +17616 7766 +17616 9603 +17616 10670 +17835 5500 +17872 231 +17872 1628 +17872 4213 +11632 902 +11632 4488 +11632 6083 +11648 6336 +11664 7392 +11664 11275 +14480 2530 +14480 5368 +14480 6798 +14480 8866 +14480 9878 +14480 11539 +17648 231 +17648 1782 +17648 4246 +17648 6578 +17648 7766 +17648 9603 +17648 10670 +624 3575 +624 9922 +12400 902 +12400 1606 +12400 4488 +12400 5973 +12416 6116 +12432 7392 +12432 11429 +12080 902 +12080 4488 +12080 5962 +12080 7392 +12096 9504 +12112 11165 +17776 231 +17776 1628 +17776 4092 +17776 6204 +17776 7766 +17776 8734 +17776 9603 +17776 10670 +12464 902 +12464 1606 +12516 4268 +12688 4268 +12800 4268 +12912 4268 +13120 4268 +13328 4268 +13456 4268 +13520 4268 +13616 4268 +13872 4268 +14091 4268 +14128 5258 +14128 7172 +14128 8866 +14128 9878 +14128 11539 +17744 231 +17744 1749 +17824 2684 +17979 2684 +18000 4675 +18000 7766 +18000 10670 +16624 1012 +16624 2222 +16624 3850 +16624 5478 +16624 6798 +16624 7876 +16624 10890 +13232 1606 +13232 2310 +13232 3124 +13232 3938 +13232 4928 +13232 7282 +13232 8536 +13232 9185 +13248 9284 +13264 11429 +10192 231 +10192 1012 +10192 1760 +18416 10670 +18500 9438 +18656 9438 +18784 9438 +18928 9438 +19024 9438 +912 3410 +912 6864 +928 7040 +944 9922 +14320 2530 +14320 5368 +14320 6908 +14320 8866 +14320 9878 +14320 11539 +7696 1188 +7696 4818 +7696 6908 +7760 7700 +7824 7700 +7888 7700 +8016 8756 +18832 10725 +18832 11528 +18928 10494 +19024 10494 +14768 2530 +14768 5478 +14768 6798 +14800 8008 +14832 8646 +14832 9878 +14832 11429 +6640 220 +6676 308 +6795 308 +6832 220 +6832 517 +6832 1518 +6832 2574 +6832 4048 +6832 5434 +6832 7128 +6832 8646 +6852 9284 +6928 9284 +7024 9284 +7216 9284 +7536 9284 +7600 9284 +7696 9284 +7824 9284 +7904 9284 +8096 9284 +8176 9284 +8272 9284 +8368 9284 +8432 9284 +8720 9284 +8864 9284 +9104 9284 +9728 9284 +10032 9284 +10256 9284 +10448 9284 +10656 9284 +10736 9284 +10800 9284 +10912 9284 +11040 9284 +11216 9284 +11344 9284 +11520 9284 +11600 9284 +11712 9284 +11792 9284 +11984 9284 +12128 9284 +12208 9284 +12384 9284 +12528 9284 +12656 9284 +12843 9284 +12880 11429 +7344 8756 +7344 10802 +7600 7260 +7760 7260 +7824 7260 +7888 7260 +8043 7260 +8080 1188 +8080 4818 +8080 7029 +10128 231 +10128 1012 +10128 1760 +10148 5896 +10224 5896 +10384 5896 +10512 5896 +10587 5896 +10608 7392 +10608 11495 +16496 2222 +16496 3850 +16496 5478 +16496 6798 +16496 7766 +16592 9284 +16688 9284 +16784 9284 +16912 9284 +17040 9284 +17136 9284 +17280 9284 +17392 9592 +17392 10670 +17392 11528 +4592 2684 +4592 5434 +4592 7810 +4592 8866 +4592 11495 +10576 7392 +10576 11495 +10656 6336 +10800 6336 +10864 6336 +10928 6336 +11024 231 +11024 902 +11024 1760 +11024 4488 +2384 3113 +2384 6644 +2384 10032 +2928 10032 +2944 6952 +2960 3113 +2960 6875 +5168 2178 +5168 4048 +5168 6402 +5168 7458 +5168 10582 +2544 3113 +2544 6754 +2544 10032 +9648 231 +9648 1012 +9648 1760 +9648 7128 +9664 7788 +1808 8052 +1808 10032 +1872 7172 +1984 7172 +2112 7172 +2192 7172 +2288 7172 +2464 7172 +2624 7172 +2736 7172 +2864 7172 +2960 7172 +3024 7172 +3200 7172 +3312 7172 +3408 7172 +3472 3113 +3472 6985 +9488 231 +9488 1012 +9488 1760 +9488 7128 +2000 8041 +2000 8778 +2000 10032 +2112 7920 +2192 7920 +2288 7920 +2464 7920 +2624 7920 +2816 7920 +2960 7920 +3024 7920 +3120 3113 +3120 6864 +8752 8866 +8816 1188 +8816 3938 +8816 5973 +1008 3575 +1008 9658 +1296 7821 +1296 9658 +1316 7700 +1536 7700 +1648 7700 +1760 7700 +1872 7700 +1984 7700 +2112 7700 +2192 7700 +2288 7700 +2464 7700 +2624 7700 +2747 7700 +2768 3113 +2768 6864 +1360 3223 +1360 8778 +1360 10032 +2032 8778 +2032 10032 +2112 6952 +2192 6952 +2288 6952 +2416 3113 +2416 6765 +560 3410 +560 6864 +576 7040 +592 9922 +1712 3113 +1712 7018 +1712 8063 +1728 8184 +1744 10032 +5104 10582 +5104 11495 +5120 7920 +5136 2178 +5136 4048 +5136 6402 +5136 7469 +2064 3113 +2064 6644 +2064 8789 +2080 8932 +2096 10032 +3072 11220 +3088 3113 +3088 6864 +3088 10032 +3248 3113 +3248 6864 +3248 10032 +10960 231 +10960 902 +10960 1760 +10960 4488 +10960 7392 +10960 10362 +10960 11495 +2976 10692 +2992 3113 +2992 6864 +2992 10043 +10832 10362 +10832 11495 +10896 231 +10896 902 +10896 1760 +10896 4488 +10896 7392 +10832 231 +10832 902 +10832 1760 +10848 6776 +10864 7392 +10864 10362 +10864 11495 +17968 10670 +18368 9790 +18512 9790 +18656 9790 +18784 9790 +18928 9790 +19024 9790 +3376 3113 +3376 6864 +3504 9592 +3568 9592 +3664 10142 +2224 3113 +2224 6644 +2276 8712 +2464 8712 +2736 8712 +2960 8712 +3024 8712 +3168 8712 +3312 8712 +3504 8712 +3632 8712 +3696 8712 +3824 8712 +3952 8712 +8848 9064 +8880 1188 +8880 3938 +8880 5962 +8880 7018 +16080 2222 +16080 3740 +16080 5368 +16080 6798 +16080 7766 +16080 8745 +16112 8844 +16144 10626 +16144 11429 +13296 1606 +13296 2310 +13296 3124 +13296 3938 +13296 4928 +13456 5808 +13520 5808 +13632 5808 +13760 5808 +13920 5808 +14080 5808 +14203 5808 +14224 7172 +14224 8866 +14224 9878 +14224 11539 +14160 11539 +14180 10780 +14272 10780 +14384 10780 +14448 10780 +14704 10780 +14784 10780 +14960 2530 +14960 4158 +14960 5478 +14960 6798 +14960 7898 +14960 8646 +14960 9878 +14960 10637 +17104 10560 +17104 11528 +17120 8404 +17136 1782 +17136 4356 +17136 6688 +17136 7722 +15440 8646 +15440 9878 +15440 10626 +15440 11429 +15460 7788 +15600 7788 +15712 7788 +15792 7788 +15856 2530 +15856 4048 +15856 5368 +15856 6798 +15856 7689 +15344 8646 +15344 9878 +15344 10626 +15344 11429 +15380 8008 +15472 8008 +15568 2530 +15568 5368 +15568 6798 +4208 2365 +4208 5434 +4208 6908 +18320 3619 +18320 7876 +18320 9427 +18320 10670 +12144 902 +12144 4488 +12144 5962 +12144 7392 +12160 9064 +12176 11165 +14992 4323 +14992 5478 +14992 6798 +14992 7898 +14992 8646 +14992 9878 +14992 10626 +14992 11429 +15124 4180 +15328 4180 +15408 4180 +15472 4180 +15600 4180 +15712 4180 +15803 4180 +15824 2530 +15824 4015 +16336 10461 +16336 11429 +16432 8624 +16592 8624 +16688 8624 +16752 8624 +16816 8624 +16912 8624 +17040 8624 +17136 8624 +17243 8624 +17264 1782 +17264 4092 +17264 6688 +17264 7722 +17264 8481 +9712 231 +9712 1012 +9712 1760 +9712 7128 +17072 1012 +17072 2222 +17072 4356 +17072 6688 +17072 7722 +17072 10560 +17072 11528 +13552 11418 +13696 11220 +13968 11220 +14192 11220 +14272 11220 +14384 11220 +14448 11220 +14576 11220 +14672 2530 +14672 5368 +14672 6798 +14672 8646 +14672 9878 +14688 11220 +14704 11418 +16464 2222 +16464 3850 +16464 5478 +16464 6798 +16464 7766 +16464 10461 +16464 11429 +144 11528 +320 11440 +496 11440 +752 11440 +912 11440 +1104 11440 +1232 11440 +1584 11440 +1712 11440 +1776 11440 +1904 11440 +2064 11440 +2251 11440 +2352 3113 +2352 6644 +2352 10032 +2352 11297 +2464 11440 +2736 11440 +3008 11440 +3152 11440 +3344 11440 +3504 11440 +3584 11440 +3712 11440 +3888 11440 +4048 11440 +4128 11440 +4272 11440 +4368 11528 +13168 7282 +13168 8536 +13168 9174 +13168 11429 +13264 1606 +13264 2310 +13264 3124 +13264 3938 +13264 4928 +13264 6413 +7792 8899 +7824 8756 +7856 1188 +7856 4818 +7856 8613 +16720 1012 +16720 2222 +16720 3850 +16720 5478 +16720 6688 +16720 7876 +16720 10560 +16720 11528 +19056 11528 +12976 3938 +12976 4708 +12976 6072 +12976 7282 +12976 8536 +12976 9174 +12976 11429 +13040 473 +13040 1606 +13040 2310 +15920 2497 +15936 3300 +15952 3773 +15952 5368 +15952 6798 +15952 7766 +15952 8624 +15952 9878 +15952 10626 +15952 11429 +5296 6402 +5296 7194 +5296 10582 +5312 5588 +5328 2178 +5328 4048 +11856 902 +11856 4488 +11856 5929 +11872 6028 +11888 6171 +11888 7392 +11888 11165 +15504 583 +15504 2530 +15504 5368 +15504 6798 +15504 8646 +15552 9284 +15600 9878 +15600 10626 +15600 11429 +5840 209 +5840 2024 +5840 4048 +5840 8382 +5840 10802 +4368 2365 +4368 5434 +4368 7810 +4388 11132 +4464 11132 +4528 11132 +4624 11132 +4784 11132 +4944 11132 +5136 11132 +5200 11132 +5360 11132 +5552 11132 +5616 11132 +5808 11132 +5968 11132 +6032 11132 +6112 11132 +6208 11132 +6352 11132 +6464 11132 +6672 11132 +6832 11132 +7024 11132 +7200 11132 +7440 11132 +7536 11132 +7600 11132 +7696 11132 +7824 11132 +7888 11132 +6288 429 +6288 2024 +6288 4048 +6416 8228 +6544 8228 +6672 8228 +6864 8228 +6928 8228 +7040 8228 +7184 8228 +7536 8228 +7600 8228 +7696 8228 +7760 8228 +7824 8228 +7888 8228 +8096 8228 +8176 8228 +8256 8228 +8448 8228 +8720 8228 +8848 8228 +9115 8228 +9136 9878 +4624 2684 +4624 5445 +4644 5808 +4752 5808 +4848 5808 +4912 5808 +5040 5808 +5328 5808 +5664 5808 +6096 5808 +6192 5808 +6256 5808 +6416 5808 +6560 5808 +6672 5808 +6768 5808 +6864 5808 +6992 5808 +7088 5808 +7184 5808 +7328 5808 +7584 5808 +7664 5808 +7760 5808 +7824 5808 +7888 5808 +7952 5808 +8048 5808 +8176 5808 +8336 6908 +8336 8646 +9008 1188 +9440 3828 +9552 3828 +9680 3828 +9824 3828 +9936 3828 +10000 3828 +10224 3828 +10288 3828 +10384 3828 +10512 3828 +10576 3828 +10640 3828 +10704 3828 +10800 3828 +10928 3828 +11056 3828 +11120 3828 +11216 3828 +11344 3828 +11488 3828 +11680 3828 +11760 3828 +11904 3828 +12048 3828 +12176 3828 +12336 3828 +12432 3828 +12528 3828 +12624 3828 +12688 3828 +12752 4708 +12752 6072 +12752 7392 +12752 8646 +12752 11429 +14512 9163 +14512 9878 +14512 11539 +14704 9064 +14784 9064 +15120 9064 +15392 9064 +15472 9064 +15568 9064 +15712 9064 +15792 9064 +15856 9064 +15984 9064 +16080 9064 +16208 9064 +16432 9064 +16592 9064 +16688 9064 +16784 9064 +16912 9064 +17040 9064 +17136 9064 +17280 9064 +17392 9064 +17472 9064 +17552 9064 +17952 9064 +18224 9064 +18427 9064 +18512 4037 +18512 8855 +6480 429 +6480 2024 +6480 4048 +6480 8646 +6672 10252 +6848 10252 +7024 10252 +7200 10252 +7376 10252 +7536 10252 +7600 10252 +7696 10252 +7824 10252 +7888 10252 +7984 10252 +8096 10252 +8176 10252 +8272 10252 +8368 10252 +8432 10252 +8720 10252 +8848 10252 +9104 10252 +9728 10252 +10032 10252 +10256 10252 +10320 10252 +7472 638 +7472 1518 +7472 4048 +7472 4928 +7472 8756 +7536 10912 +7600 10912 +7696 10912 +7824 10912 +7888 10912 +7984 10912 +8096 10912 +8176 10912 +8272 10912 +8368 10912 +8432 10912 +8720 10912 +8848 10912 +9104 10912 +9728 10912 +10032 10912 +10256 10912 +10320 10912 +10480 10912 +10656 10912 +10768 10912 +10928 10912 +11024 10912 +11216 10912 +11328 10912 +11440 11440 +11440 11088 +4848 7755 +4848 11495 +4864 7612 +4880 2618 +4880 6402 +8912 1188 +8912 3949 +8992 4048 +9440 4048 +9552 4048 +9680 4048 +9824 4048 +9936 4048 +10000 4048 +10224 4048 +10288 4048 +10384 4048 +10512 4048 +10576 4048 +10640 4048 +10704 4048 +10800 4048 +10928 4048 +11056 4048 +11120 4048 +11216 4048 +11344 4048 +11488 4048 +11680 4048 +11760 4048 +11904 4048 +12048 4048 +12176 4048 +12336 4048 +12432 4048 +12528 4048 +12624 4708 +12624 6072 +12624 7392 +12624 11429 +12688 4048 +12800 4048 +12880 1606 +12880 2310 +12880 3949 +4656 2629 +4720 4488 +4784 4488 +4848 4488 +4912 4488 +5040 4488 +5296 4488 +5664 4488 +5872 4488 +6128 4488 +6192 4488 +6256 4488 +6416 4488 +6560 4488 +6672 4488 +6784 4488 +6896 4488 +7008 4488 +7088 4488 +7184 4488 +7312 4488 +7504 4488 +7664 4488 +7760 4488 +7824 4488 +7888 4488 +7952 4488 +8048 4488 +8208 4488 +8336 4488 +8432 4488 +8496 4488 +8688 5962 +8688 8866 +12016 902 +12016 4488 +12016 6083 +12036 6336 +12176 6336 +12384 6336 +12523 6336 +12560 7392 +12560 11429 +17456 11528 +17476 11440 +17552 11440 +17920 11440 +18368 11440 +18523 11440 +18608 4037 +18608 8525 +18608 10670 +18608 11528 +14416 8866 +14416 9878 +14416 11539 +14512 7348 +14704 7348 +14816 7348 +14928 7348 +15136 7348 +15328 7348 +15440 7348 +15600 7348 +15712 7348 +15792 7348 +15888 7348 +15984 7348 +16128 7348 +16288 7348 +16544 7348 +16688 7348 +16752 7348 +16816 7348 +16912 7348 +17040 7348 +17104 7348 +17168 7348 +17408 7348 +17504 7348 +17712 7348 +17856 7348 +17968 7348 +18192 7348 +18256 7348 +18384 7348 +18448 3564 +18448 7172 +8592 1188 +8592 5962 +8592 6875 +8816 7095 +8836 8756 +9104 8756 +9728 8756 +10000 8756 +10256 8756 +10352 8756 +10464 8756 +10656 8756 +10736 8756 +10800 8756 +10912 8756 +11040 8756 +11200 8756 +11344 8756 +11504 8756 +11600 8756 +11712 8756 +11792 8756 +11984 8756 +12192 8756 +12272 8756 +12384 8756 +12528 8756 +12656 8756 +12720 11429 +4912 2299 +5040 3608 +5296 3608 +5664 3608 +5872 3608 +6128 3608 +6192 3608 +6256 3608 +6416 3608 +6560 3608 +6672 3608 +6784 3608 +6896 3608 +7008 3608 +7088 3608 +7184 3608 +7312 3608 +7504 3608 +7664 3608 +7760 3608 +7824 3608 +7888 3608 +7952 3608 +8048 3608 +8208 3608 +8336 3608 +8432 3608 +8496 3608 +8624 3608 +8752 3608 +8848 3608 +8976 3608 +9040 5962 +9040 6908 +9040 9878 +9328 671 +9328 1760 +9328 2838 +9728 9724 +10032 9724 +10256 9724 +10320 9724 +10416 9724 +10480 9724 +10656 9724 +10736 9724 +10800 9724 +10928 9724 +11040 9724 +11216 9724 +11312 9724 +11440 9724 +11520 9724 +11600 9724 +11712 9724 +11792 9724 +11984 9724 +12080 9724 +12208 9724 +12384 9724 +12528 9724 +12656 9724 +12827 9724 +12848 11429 +12944 9724 +13088 9724 +13232 9724 +13403 9724 +13424 1606 +13424 2794 +13424 3938 +13424 4928 +13424 7392 +13424 8536 +13424 9174 +16880 1012 +16880 2222 +16880 3850 +16880 5368 +16880 6688 +16880 7876 +16880 10560 +16880 11528 +18576 4037 +18576 8646 +18656 8866 +18859 8866 +18992 10846 +18992 11528 +8176 1188 +8176 4829 +8336 4928 +8432 4928 +8496 4928 +8752 4928 +8848 4928 +8992 4928 +9440 4928 +9552 4928 +9680 4928 +9824 4928 +9936 4928 +10000 4928 +10224 4928 +10288 4928 +10384 4928 +10512 4928 +10608 4928 +10704 4928 +10800 4928 +10928 4928 +11056 4928 +11120 4928 +11216 4928 +11344 4928 +11488 4928 +11680 4928 +11760 4928 +11904 4928 +12048 4928 +12176 4928 +12336 4928 +12443 4928 +12464 5962 +12464 7392 +12464 11429 +6000 10802 +6000 11495 +6016 8624 +6032 319 +6032 2024 +6032 4048 +6032 5324 +7088 638 +7088 1518 +7088 2409 +7184 2508 +7312 2508 +7504 2508 +7664 2508 +7760 2508 +7824 2508 +7888 2508 +7952 2508 +8048 2508 +8208 2508 +8336 2508 +8432 2508 +8496 2508 +8624 2508 +8752 2508 +8848 2508 +8976 2508 +9040 2508 +9264 2508 +9408 2508 +9680 2508 +9808 2508 +9872 2508 +10000 2508 +10096 2508 +10224 2508 +10288 2508 +10384 2508 +10512 2508 +10576 2508 +10640 2508 +10704 2508 +10800 2508 +10928 2508 +11056 2508 +11120 2508 +11216 2508 +11344 2508 +11408 4488 +11408 6072 +11408 7392 +11408 11385 +15760 2530 +15760 5368 +15760 6798 +15760 8426 +15760 9878 +15760 10626 +15760 11429 +112 9218 +112 11528 +260 7480 +480 7480 +560 7480 +736 7480 +848 7480 +912 7480 +976 7480 +1072 7480 +1152 7480 +1312 7480 +1536 7480 +1648 7480 +1760 7480 +1872 7480 +1984 7480 +2112 7480 +2192 7480 +2288 7480 +2464 7480 +2624 7480 +2736 7480 +2864 7480 +2960 7480 +3024 7480 +3200 7480 +3312 7480 +3419 7480 +3440 3113 +3440 6864 +5616 1914 +5616 4048 +5652 6336 +6096 6336 +6192 6336 +6256 6336 +6416 6336 +6544 6336 +6672 6336 +6768 6336 +6864 6336 +6992 6336 +7088 6336 +7184 6336 +7328 6336 +7616 6336 +7744 6336 +7824 6336 +7888 6336 +8048 6336 +8176 6336 +8432 6336 +8512 6336 +8832 6336 +8992 6336 +9296 6336 +9456 6336 +9552 6336 +9680 6336 +9808 6336 +10016 6336 +10139 6336 +16944 1012 +16944 2222 +16944 3850 +16944 5368 +16944 6688 +16944 7876 +16944 10560 +16944 11528 +9744 231 +9744 1012 +9744 1760 +9764 6996 +10016 6996 +10128 6996 +10224 6996 +10384 6996 +10496 6996 +10656 6996 +10816 6996 +10928 6996 +11040 6996 +11120 6996 +11216 6996 +11328 6996 +11504 6996 +11568 6996 +11632 6996 +11696 6996 +11760 6996 +11824 6996 +11968 6996 +12192 6996 +12272 6996 +12384 6996 +12528 6996 +12656 6996 +12800 6996 +12891 6996 +12912 7271 +12912 8536 +12912 9174 +12912 11429 +12933 6776 +13088 6776 +13280 6776 +13392 6776 +13456 6776 +13520 6776 +13632 6776 +13760 6776 +13920 6776 +14080 6776 +14192 6776 +14267 6776 +12912 6908 +14288 2530 +14288 5368 +14288 6633 +13904 11528 +13920 11440 +13936 11528 +13952 11440 +13968 11528 +6576 429 +6576 1639 +6672 2068 +6784 2068 +6896 2068 +7008 2068 +7184 2068 +7312 2068 +7504 2068 +7664 2068 +7760 2068 +7824 2068 +7888 2068 +7952 2068 +8048 2068 +8208 2068 +8336 2068 +8432 2068 +8496 2068 +8560 2068 +8624 2068 +8752 2068 +8848 2068 +8976 2068 +9040 2068 +9264 2068 +9424 2068 +9584 2068 +9680 2068 +9808 2068 +9872 2068 +10000 2068 +10096 2068 +10224 2068 +10288 2068 +10384 2068 +10512 2068 +10576 2068 +10640 2068 +10704 2068 +10800 2068 +10928 2068 +11056 2068 +11120 2068 +11227 2068 +11248 4488 +11248 7392 +11248 11385 +5552 2178 +5552 4048 +5552 6402 +5552 7403 +5648 7480 +5936 7480 +6096 7480 +6192 7480 +6416 7480 +6544 7480 +6672 7480 +6864 7480 +6928 7480 +7040 7480 +7168 7480 +7312 7480 +7600 7480 +7760 7480 +7824 7480 +7888 7480 +8048 7480 +8176 7480 +8272 7480 +8416 7480 +8656 7480 +8848 7480 +9104 7480 +9232 7480 +9616 7480 +9680 7480 +9760 7480 +10016 7480 +10128 7480 +10224 7623 +10160 231 +10160 1012 +10160 1760 +10224 5148 +10288 5148 +10384 5148 +10512 5148 +10608 5148 +10704 5148 +10800 5148 +10928 5148 +11056 5148 +11120 5148 +11216 5148 +11344 5148 +11488 5148 +11680 5148 +11760 5148 +11904 5148 +12048 5148 +12176 5148 +12336 5148 +12432 5148 +12528 5148 +12688 5148 +12800 5148 +12912 5148 +13115 5148 +13136 6182 +13136 7282 +13136 8536 +13136 9174 +13136 11429 +13328 4488 +13456 4488 +13520 4488 +13616 4488 +13872 4488 +14080 4488 +14224 4488 +14400 4488 +14512 4488 +14736 4488 +14811 4488 +13136 4840 +14832 2530 +14832 4389 +6000 319 +6000 2024 +6000 4048 +6000 5324 +6000 8239 +6064 8459 +6064 10802 +6064 11495 +17168 10560 +17168 11528 +17232 1782 +17232 4092 +17232 6688 +17232 7722 +4688 2508 +4688 5324 +4688 7711 +4752 8866 +4752 11495 +17232 10560 +17232 11528 +17264 8844 +17296 1782 +17296 4092 +17296 6688 +17296 7722 +17296 8591 +10416 231 +10416 1012 +10416 1760 +10416 7392 +3632 3113 +3632 7139 +3696 7480 +3808 7480 +3888 7480 +3952 7480 +4096 7480 +4176 7480 +4256 7480 +4336 7480 +4432 7480 +4496 7480 +4635 7480 +4656 7689 +4656 8866 +4656 11495 +10576 231 +10576 1023 +10640 1232 +10704 1232 +10800 1232 +10928 1232 +11056 1232 +11120 1232 +11216 1232 +11344 1232 +11488 1232 +11696 1232 +11760 1232 +11904 1232 +12048 1232 +12176 1232 +12336 1232 +12432 1232 +12528 1232 +12688 1232 +12816 1232 +12944 1232 +13120 1232 +13200 1485 +13200 2310 +13200 3124 +13200 3938 +13200 4928 +13200 7282 +13200 8536 +13200 9174 +13200 11429 +13344 1232 +13488 1232 +13632 1232 +13872 1232 +14096 1232 +14224 1232 +14400 1232 +14512 1232 +14736 1232 +14800 1232 +14912 1232 +15120 1232 +15328 1232 +15408 1232 +15472 1232 +15600 1232 +12144 11165 +12208 9504 +12384 9504 +12528 9504 +12656 9504 +12832 9504 +12944 9504 +13088 9504 +13232 9504 +13392 9504 +13536 9504 +13632 9504 +13744 9504 +13968 9504 +14192 9504 +14272 9504 +14384 9504 +14448 9504 +14704 9504 +14784 9504 +15120 9504 +15392 9504 +15520 9504 +15712 9504 +15792 9504 +15856 9504 +15984 9504 +16080 9504 +16208 9504 +16432 9504 +16496 9504 +16592 9504 +16688 9504 +16784 9504 +16912 9504 +17040 9504 +17136 9504 +17280 9504 +17360 1782 +17360 4092 +17360 6688 +17360 7722 +17360 8580 +10992 231 +10992 902 +10992 1760 +10992 4488 +10992 7392 +11028 10252 +11216 10252 +11312 10252 +11440 10252 +11520 10252 +11600 10252 +11712 10252 +11792 10252 +11984 10252 +12080 10252 +12208 10252 +12384 10252 +12528 10252 +12656 10252 +12816 10252 +12944 10252 +13088 10252 +13232 10252 +13403 10252 +13424 11429 +13536 10252 +13696 10252 +13968 10252 +14192 10252 +14272 10252 +14384 10252 +14448 10252 +14704 10252 +14784 10252 +15120 10252 +15392 10252 +15520 10252 +15712 10252 +15792 10252 +15856 10252 +16048 10252 +16219 10252 +16240 2222 +16240 3740 +16240 5368 +16240 6798 +16240 7766 +10448 231 +10448 1012 +10448 1760 +10448 7392 +5712 8459 +5712 10802 +5728 8316 +5744 2024 +5744 4048 +5744 8239 +17424 1782 +17424 4092 +17424 6699 +17504 7128 +17712 7128 +17808 7766 +17808 8734 +17808 9603 +17808 10670 +9520 7128 +9536 3608 +9552 231 +9552 1012 +9552 1760 +17328 1782 +17328 4092 +17328 6688 +17328 7722 +17328 8580 +17328 10670 +17328 11528 +19088 11528 +11408 231 +11408 902 +11488 1980 +11696 1980 +11760 1980 +11904 1980 +12048 1980 +12176 1980 +12336 1980 +12432 1980 +12528 1980 +12688 1980 +12816 1980 +12944 1980 +13120 1980 +13344 1980 +13467 1980 +13488 2673 +13488 3938 +13488 4928 +13488 7282 +13488 8536 +13488 9174 +13488 11429 +13509 1452 +13632 1452 +13872 1452 +14096 1452 +14224 1452 +14400 1452 +14512 1452 +14736 1452 +14800 1452 +14912 1452 +15120 1452 +15328 1452 +15408 1452 +15472 1452 +15600 1452 +15712 1452 +15792 1452 +15888 1452 +15984 1452 +16128 1452 +16272 1452 +16400 1452 +16544 1452 +16656 1452 +16752 1452 +16912 1452 +17040 1452 +13488 1738 +17104 1133 +11120 11385 +11184 231 +11184 902 +11184 1760 +11184 4488 +11184 7392 +5680 8382 +5680 10802 +5696 7700 +5712 2024 +5712 4048 +4304 2365 +4304 5434 +4304 6908 +4304 7810 +2128 10032 +2144 8932 +2160 3113 +2160 6644 +2160 8789 +5424 7183 +5424 10692 +5440 6996 +5456 2178 +5456 4048 +5456 6402 +11152 231 +11152 902 +11152 1760 +11152 4488 +11152 7392 +11152 11385 +15632 2530 +15632 5368 +15632 6798 +15632 8426 +15632 9878 +15632 10626 +15632 11429 +16176 2222 +16176 3740 +16176 5368 +16176 6798 +16176 7766 +16176 8734 +16176 10626 +16176 11429 +5392 7194 +5392 10692 +5408 6556 +5424 2178 +5424 4048 +5424 6413 +4464 2574 +4464 5434 +4464 7920 +4528 10692 +4624 10692 +4688 10692 +4784 10692 +4944 10692 +5072 10791 +5072 11495 +18352 3619 +18352 7887 +18372 8184 +18464 8184 +18667 8184 +18704 8404 +18704 10670 +18704 11528 +4528 2574 +4528 5434 +4528 7931 +4624 8140 +4688 8140 +4784 8140 +4944 8140 +5136 8140 +5488 8371 +5488 10692 +1680 10032 +1700 8932 +1776 8932 +1883 8932 +1904 3113 +1904 6754 +1904 8052 +1904 8789 +19120 11528 +19122 8030 +18256 3454 +18256 6952 +18272 7128 +18288 7876 +18288 9427 +18288 10670 +4752 2618 +4752 5225 +4772 5368 +4848 5368 +4912 5368 +5040 5368 +5296 5368 +5664 5368 +5904 5467 +5904 8382 +5904 10802 +1264 6787 +1264 7832 +1264 9658 +1284 6556 +1456 6556 +1552 6556 +1648 6556 +1760 6556 +1840 3113 +17872 9603 +17872 10670 +17952 8844 +18224 3619 +18224 7766 +4816 2618 +4816 6402 +4816 7700 +4816 8723 +4944 8844 +5136 8844 +5552 8844 +5632 8844 +5792 8844 +5968 8844 +6032 8844 +6112 8844 +6192 8844 +6320 11495 +848 9922 +912 8184 +976 8184 +1104 8184 +1232 8184 +1328 8184 +1536 8184 +1616 3113 +1616 7018 +1616 8063 +17840 8723 +17840 9603 +17840 10670 +17860 8624 +17936 231 +17936 1628 +17936 4796 +17936 7766 +18000 231 +18000 1595 +18016 2376 +18032 4521 +18032 7766 +18032 10670 +17424 8613 +17424 9603 +17424 10670 +17424 11528 +17488 8404 +17552 8404 +17712 8404 +17856 8404 +17968 8404 +18192 8404 +18368 8404 +18464 8404 +18544 4037 +432 9702 +468 7260 +560 7260 +736 7260 +848 7260 +912 7260 +976 7260 +1072 7260 +1152 7260 +1312 7260 +1520 3113 +1520 7029 +11248 231 +11248 902 +11344 1760 +11488 1760 +11696 1760 +11760 1760 +11904 1760 +12048 1760 +12176 1760 +12304 4488 +12304 5962 +12304 7392 +12304 11165 +18160 3619 +18160 7766 +18160 10670 +18096 231 +18096 3740 +18096 7766 +18096 10670 +11088 231 +11088 902 +11088 1760 +11088 4488 +11108 5368 +11216 5368 +11344 5368 +11488 5368 +11680 5368 +11760 5368 +11904 5368 +12048 5368 +12176 5368 +12336 5368 +12432 5368 +12528 5368 +12688 5368 +12800 5368 +12912 5368 +13104 5368 +13328 5368 +13456 5368 +13520 5368 +13584 5467 +13584 7282 +13584 8866 +13584 11539 +10672 231 +10672 902 +10672 1760 +10800 5588 +10928 5588 +11088 5588 +11216 5588 +11344 5588 +11488 5588 +11680 5588 +11760 5588 +11904 5588 +12048 5588 +12176 5588 +12336 5588 +12432 5588 +12528 5588 +12688 5588 +12800 5588 +12912 5588 +13104 5588 +13328 6402 +13328 7392 +13328 8536 +13328 9174 +13328 11429 +3792 2904 +3792 5852 +3813 6028 +3888 6028 +3952 6028 +4096 6028 +4176 6028 +4256 6028 +4432 6028 +4496 6028 +4560 6028 +4640 6028 +4752 6028 +4848 6028 +4912 6028 +5040 6028 +5328 6028 +5664 6028 +6096 6028 +6192 6028 +6256 6028 +6416 6028 +6555 6028 +6576 8646 +6576 9438 +6576 11495 +4048 2959 +4048 6908 +4128 10032 +4272 10032 +4400 10032 +4528 10032 +4624 10032 +4688 10032 +4784 10032 +4944 10032 +5008 10032 +5136 10032 +5264 10032 +5552 10032 +5632 10032 +5808 10032 +5968 10032 +6032 10032 +6112 10032 +6192 10032 +6352 10032 +6448 10032 +6672 10032 +6848 10032 +6928 10802 +4400 2365 +4400 5434 +4400 7810 +4528 9592 +4624 9592 +4688 9592 +4784 9592 +4960 9592 +5136 9592 +5552 9592 +5632 9592 +5808 9592 +5968 9592 +6032 9592 +6112 9592 +6192 9592 +6352 9592 +6416 11495 +10256 231 +10256 1012 +10256 1760 +10256 7513 +10384 7788 +10496 7788 +10656 7788 +10816 7788 +10928 7788 +11040 7788 +11120 7788 +11216 7788 +11328 7788 +11504 7788 +11568 7788 +11632 7788 +11696 7788 +11760 7788 +11824 7788 +11968 7788 +12192 7788 +12272 7788 +12384 7788 +12528 7788 +12656 7788 +12800 7788 +12880 7788 +12944 7788 +13088 7788 +13275 7788 +13296 8536 +13296 9174 +13296 11429 +9840 231 +9840 1012 +9840 1760 +9860 3168 +10000 3168 +10096 3168 +10224 3168 +10288 3168 +10384 3168 +10512 3168 +10576 3168 +10640 3168 +10704 3168 +10800 3168 +10928 3168 +11056 3168 +11120 3168 +11216 3168 +11344 3168 +11488 3168 +11696 3168 +11760 3168 +11904 3168 +12048 3168 +12176 3168 +12336 3168 +12432 3168 +12544 3168 +12688 3168 +12752 3168 +12816 3168 +12928 3168 +13040 3267 +13040 3938 +13040 4708 +13040 6072 +13040 7282 +13040 8536 +13040 9174 +13040 11429 +4080 2310 +4080 4664 +4101 4840 +4176 4840 +4256 4840 +4432 4840 +4496 4840 +4560 4840 +4656 4840 +4720 4840 +4784 4840 +4848 4840 +4912 4840 +5040 4840 +5296 4840 +5664 4840 +5872 4840 +6128 4840 +6192 4840 +6256 4840 +6416 4840 +6560 4840 +6672 4840 +6784 4840 +6896 4840 +7008 4840 +7088 4840 +7184 4840 +7280 4983 +7280 7128 +7280 8756 +7280 10802 +4336 2365 +4336 5434 +4432 6776 +4496 6776 +4640 6776 +4768 6776 +4848 6776 +4912 6776 +5040 6776 +5424 6776 +5648 6776 +5936 6776 +6096 6776 +6192 6776 +6416 6776 +6544 6776 +6672 6776 +6768 6776 +6864 6776 +6992 6776 +7088 6776 +7184 6776 +7328 6776 +7611 6776 +7632 6897 +7632 8756 +18064 231 +18064 3740 +18064 7766 +18064 10670 +6960 638 +6960 1518 +6960 2574 +6960 4048 +6996 5588 +7088 5588 +7184 5588 +7328 5588 +7584 5588 +7664 5588 +7760 5588 +7824 5588 +7888 5588 +7952 5588 +8048 5588 +8176 5588 +8336 5588 +8432 5588 +8496 5588 +8752 5588 +8848 5588 +8992 5588 +9440 5588 +9552 5588 +9680 5588 +9824 5588 +10016 5588 +10160 5588 +10224 5588 +10288 7392 +9200 880 +9200 1760 +9200 2948 +9440 5808 +9552 5808 +9680 5808 +9819 5808 +1328 9911 +1584 9152 +1712 9152 +1776 9152 +1904 9152 +2064 9152 +2240 9152 +2464 9152 +2736 9152 +2960 9152 +3024 9152 +3168 9152 +3312 9152 +3504 9152 +3568 3113 +3568 7128 +3568 9053 +9424 352 +9444 572 +9584 572 +9680 572 +9808 572 +9872 572 +10000 572 +10096 572 +10224 572 +10288 572 +10384 572 +10512 572 +10640 572 +10704 572 +10800 572 +10928 572 +11056 572 +11120 572 +11216 572 +11344 572 +11488 572 +11696 572 +11760 572 +11904 572 +12048 572 +12176 572 +12336 572 +12432 572 +12528 572 +12688 572 +12816 572 +12955 572 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/usa13509.tsp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/usa13509.tsp new file mode 100644 index 000000000..7fc018324 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/benchs/usa13509.tsp @@ -0,0 +1,13510 @@ +13509 +245553 817828 +247133 810906 +247206 810189 +249239 806281 +250111 805153 +254475 804794 +254683 804778 +254950 804294 +255622 803825 +255803 803469 +255972 803808 +256047 803539 +256147 803108 +256311 803692 +256789 803175 +256933 801631 +257072 802936 +257072 803258 +257211 802686 +257264 803556 +257544 803275 +257631 802964 +257739 801939 +257903 801303 +258100 803025 +258219 802897 +258403 803267 +258458 801542 +258550 801933 +258572 802783 +258628 801931 +258647 803247 +258703 802992 +258781 801258 +258822 801808 +258872 801314 +258897 801869 +258914 801272 +259014 974972 +259019 802506 +259306 803286 +259328 801628 +259403 802458 +259481 801508 +259503 801231 +259619 801769 +259647 801225 +259647 802417 +259722 817292 +259808 801486 +259869 802325 +259875 801750 +260028 802242 +260108 801497 +260519 801442 +260569 802719 +260644 802322 +260714 974761 +260731 972083 +260883 817264 +260919 979569 +261000 982628 +261006 972900 +261033 971644 +261219 801436 +261272 802333 +261322 976308 +261400 802136 +261417 817950 +261494 979133 +261586 978236 +261592 979906 +261600 801392 +261661 802086 +261700 980517 +261833 981228 +261903 976958 +261917 800967 +261944 981833 +262022 800942 +262031 982297 +262156 983250 +262189 817919 +262256 977578 +262350 975817 +262375 801250 +262442 802067 +262467 984811 +262483 977336 +262564 978247 +262614 818094 +262825 801072 +262869 983131 +262931 979928 +262936 800792 +262936 979603 +262983 979283 +263014 981631 +263181 801000 +263306 818269 +263394 817789 +263583 800833 +263728 979714 +263794 988200 +263992 800658 +264047 990156 +264119 977894 +264183 814175 +264422 980136 +264486 820225 +264517 819483 +264611 800731 +264669 818017 +265250 800667 +265267 800486 +265625 819497 +265661 800536 +265864 800522 +265886 800389 +266156 800572 +266233 801256 +266250 816250 +266403 818725 +266450 800761 +266636 807164 +266669 818803 +266744 818153 +266842 806678 +266908 801203 +267053 800367 +267089 817461 +267150 800536 +267372 809511 +267539 809339 +267600 800739 +267614 814386 +267750 800583 +267778 800358 +268000 800667 +268172 800822 +268197 806656 +268328 810933 +268417 810964 +268794 800536 +268833 822903 +269069 992711 +269097 820542 +269139 823272 +269294 820456 +269339 800944 +269467 820261 +269581 820672 +269614 819842 +269758 820908 +270269 804858 +270500 822500 +270528 824244 +270567 823786 +270592 801367 +270728 824078 +270994 824544 +271189 824444 +271300 824533 +271439 802008 +271675 802664 +271958 824906 +271972 802531 +272156 818586 +272172 802700 +272192 802394 +272217 824981 +272267 981439 +272436 808300 +272517 808142 +272542 802300 +272836 824808 +272928 813631 +273064 986781 +273294 824578 +273361 825308 +273603 981233 +274097 825694 +274122 826592 +274242 825803 +274250 825906 +274464 803258 +274472 825464 +274667 827042 +274689 826864 +274692 825417 +274931 817961 +274953 814411 +274972 827092 +274986 825750 +275061 995072 +275119 826322 +275156 978558 +275211 825725 +275214 825278 +275308 827336 +275356 825614 +275428 804025 +275469 818117 +275858 977989 +275956 815064 +275986 984078 +276381 818242 +276383 803975 +276742 977483 +276750 804094 +277122 822992 +277164 803844 +277206 824333 +277456 815308 +277481 804364 +277481 827036 +277519 818019 +277519 980694 +277547 827378 +277636 982386 +277675 806017 +277689 827692 +277814 979083 +277900 976686 +277950 819806 +277978 827975 +278003 973961 +278083 828114 +278139 827783 +278158 828208 +278258 828292 +278336 970608 +278356 804933 +278425 826997 +278625 828486 +278750 828514 +278769 973236 +278775 972114 +278803 805006 +278825 986175 +278950 819736 +278961 818433 +279011 815861 +279092 827875 +279092 971497 +279142 827056 +279211 828172 +279219 972897 +279228 828433 +279356 828064 +279375 822861 +279456 818006 +279472 824586 +279503 975819 +279525 817272 +279564 979367 +279650 818781 +279656 828003 +279675 819736 +279781 817567 +279786 816142 +279786 973983 +279906 826933 +279936 816903 +279939 822197 +279944 817383 +280033 805658 +280083 819078 +280183 821131 +280194 827719 +280203 970542 +280219 817331 +280222 816194 +280314 820150 +280339 826653 +280342 805889 +280350 823894 +280364 975089 +280408 993542 +280442 816281 +280611 970408 +280650 817889 +280681 805606 +280714 806536 +280719 806803 +280778 827639 +280786 806028 +280850 806667 +280892 805658 +280917 817236 +280942 978278 +281139 816181 +281144 819739 +281206 820233 +281356 806719 +281458 827569 +281486 805886 +281508 824617 +281611 816019 +281758 805903 +281822 818242 +281875 827397 +282164 827225 +282333 821814 +282381 973197 +282439 827194 +282586 814567 +282714 827197 +282917 814078 +283050 972750 +283197 806078 +283322 981172 +283358 822747 +283506 807256 +283644 821961 +283858 807422 +284006 977481 +284056 806050 +284150 967133 +284319 807603 +284367 992347 +284569 813917 +284581 813594 +284600 981822 +284656 821722 +284717 813681 +284858 813725 +284953 815350 +285025 813308 +285072 821706 +285217 998603 +285381 813794 +285381 814606 +285408 813008 +285492 817731 +285544 811067 +285547 816333 +285550 823881 +285578 818514 +285650 815864 +285689 815442 +285731 995683 +285742 817464 +285781 818869 +285908 813944 +285997 813394 +286097 820553 +286119 808078 +286144 813808 +286147 966258 +286192 814428 +286417 811236 +286475 968922 +286489 813514 +286497 819928 +286608 813658 +286614 814192 +286617 815097 +286647 821131 +286650 808450 +286672 991703 +286681 973881 +286697 812083 +286772 998278 +286775 813281 +286794 965600 +286803 815097 +286986 813083 +287078 962172 +287089 1.00499e+06 +287094 817331 +287308 816014 +287394 811153 +287500 822969 +287556 820950 +287586 813181 +287811 826153 +287994 820703 +288003 812733 +288022 816447 +288039 817258 +288106 818781 +288189 978483 +288356 823306 +288403 817689 +288525 816856 +288611 819067 +288617 987061 +288650 820392 +288831 977128 +288847 979006 +288919 990947 +289003 812639 +289006 823747 +289022 825928 +289172 819231 +289178 985461 +289292 816658 +289408 998494 +289442 952886 +289486 812989 +289539 953594 +289600 960650 +289669 984783 +289783 966458 +289806 812336 +289808 975025 +289825 959692 +289825 980172 +289886 809025 +290028 953317 +290175 958892 +290244 953986 +290256 809272 +290256 809722 +290297 827161 +290300 826689 +290336 954342 +290386 956983 +290403 965133 +290403 985678 +290442 955689 +290489 824611 +290550 820625 +290558 954097 +290694 980817 +290936 972889 +290961 809372 +291192 813517 +291333 981558 +291383 830353 +291397 989050 +291436 956450 +291656 810047 +291692 954317 +291758 809831 +291869 821403 +291894 988622 +291964 962694 +292094 997858 +292106 810231 +292261 986575 +292281 953447 +292367 979597 +292392 814658 +292433 810378 +292672 977642 +292856 810561 +292875 971517 +292947 952786 +293103 1.00418e+06 +293106 988097 +293114 961025 +293172 994661 +293472 991411 +293481 950158 +293489 810667 +293556 988783 +293561 981153 +293625 1.00896e+06 +293664 821975 +293789 902600 +293836 949025 +293872 824469 +293992 958375 +294236 952439 +294239 984933 +294289 971703 +294300 815108 +294383 905953 +294419 902992 +294436 969408 +294475 826425 +294506 959944 +294569 946394 +294606 950511 +294625 953578 +294631 983853 +294658 812581 +294747 811272 +294747 984506 +294786 984872 +294803 896939 +294822 954153 +294831 949219 +294847 984656 +294878 985514 +294950 986183 +295000 815917 +295014 974522 +295044 822800 +295067 949922 +295072 950947 +295153 983800 +295178 983158 +295231 985161 +295292 952008 +295297 825192 +295308 960708 +295375 907200 +295425 903381 +295425 950203 +295472 950319 +295478 982908 +295519 982694 +295533 906022 +295569 958083 +295606 1.04372e+06 +295614 982267 +295633 952858 +295639 950253 +295686 979644 +295711 981400 +295722 903817 +295747 971425 +295819 957606 +295822 984906 +295847 985522 +295894 963333 +295917 820875 +295919 980331 +295956 907194 +296003 984869 +296131 828178 +296158 955575 +296183 955375 +296194 956347 +296200 950097 +296236 818906 +296311 960650 +296342 831253 +296458 905392 +296461 826067 +296483 816378 +296514 823250 +296581 815986 +296622 948900 +296628 952353 +296656 950192 +296661 911019 +296667 901083 +296692 1.00012e+06 +296792 959769 +296803 976472 +296817 969028 +296875 971083 +296894 912708 +296897 958994 +296908 952089 +296931 913019 +296944 912189 +296992 912067 +297028 967803 +297028 981242 +297050 951236 +297056 954586 +297058 954367 +297064 965394 +297178 815083 +297178 954336 +297231 901236 +297256 849833 +297264 990733 +297272 905989 +297353 949772 +297364 848786 +297486 966008 +297597 955169 +297631 953631 +297672 952336 +297672 955297 +297703 954953 +297728 946825 +297758 951144 +297772 955169 +297781 951717 +297806 961569 +297856 958242 +297858 820317 +297858 959508 +297894 821675 +297897 943831 +297928 961006 +297944 987317 +297956 824944 +297956 908228 +297958 915014 +297975 933250 +298186 950558 +298200 943839 +298236 904750 +298267 825969 +298372 909561 +298378 915442 +298475 948906 +298531 846644 +298547 899906 +298678 951281 +298797 950628 +298831 979411 +298847 976697 +298875 955628 +298956 898978 +298986 939286 +298992 901003 +299022 955022 +299033 900772 +299053 968764 +299058 901422 +299061 903561 +299100 900325 +299108 916633 +299117 950619 +299144 900539 +299175 939242 +299183 902108 +299319 903664 +299322 953800 +299361 906786 +299403 902031 +299403 910247 +299425 899633 +299428 903517 +299439 821100 +299478 854181 +299481 919886 +299481 939169 +299500 962569 +299542 900053 +299544 900750 +299581 920358 +299589 829283 +299650 912031 +299675 989047 +299742 939922 +299764 904089 +299778 903878 +299794 818106 +299839 901528 +299889 978769 +299911 939583 +299917 816783 +299939 902417 +299978 922847 +299989 904122 +300033 918186 +300108 907194 +300156 1.00205e+06 +300206 938456 +300225 823397 +300258 925083 +300272 945914 +300356 944242 +300403 906989 +300439 820719 +300464 948850 +300472 906897 +300472 991400 +300478 943356 +300528 831750 +300536 905517 +300558 906192 +300564 917369 +300564 959267 +300664 904800 +300772 992400 +300806 926714 +300819 937581 +300850 978400 +300858 941017 +300928 937364 +300931 959875 +300972 960781 +300978 984211 +300994 919900 +301008 909928 +301025 940517 +301089 948581 +301103 973150 +301125 852006 +301131 946428 +301172 835819 +301217 924981 +301308 856033 +301314 940153 +301400 944108 +301422 1.02394e+06 +301469 919611 +301522 947389 +301528 855700 +301586 856603 +301658 817067 +301667 963975 +301686 933758 +301697 911469 +301708 856253 +301758 843753 +301764 858056 +301806 924642 +301817 932736 +301825 969361 +301842 908592 +301894 826394 +301897 925825 +301906 935811 +301922 826147 +302008 856269 +302139 923744 +302142 918319 +302172 910961 +302222 926569 +302239 920197 +302256 978033 +302264 932172 +302328 951608 +302347 922683 +302356 920944 +302356 921853 +302358 928225 +302364 933772 +302367 930136 +302383 909200 +302419 932506 +302453 856483 +302458 877008 +302500 1.0325e+06 +302531 941897 +302669 977428 +302733 918992 +302750 897811 +302750 988717 +302767 977908 +302767 984117 +302772 912236 +302819 821222 +302867 893761 +302889 912342 +302892 856406 +302944 813933 +302950 907950 +302975 937433 +302978 978017 +303025 819756 +303025 931906 +303078 1.04019e+06 +303086 892869 +303117 813967 +303117 954558 +303131 917903 +303133 899431 +303139 842475 +303156 892475 +303169 920489 +303294 827592 +303311 924956 +303319 816558 +303342 813989 +303406 975567 +303458 965281 +303489 941778 +303494 973700 +303503 891528 +303536 912653 +303547 940725 +303569 871639 +303581 900656 +303583 1.03661e+06 +303586 905861 +303656 885561 +303672 890928 +303678 979914 +303714 943122 +303758 843008 +303758 897483 +303839 872750 +303856 886117 +303878 960875 +303933 864958 +303942 912536 +303958 888853 +303975 919314 +304028 922150 +304031 882483 +304042 901569 +304056 866189 +304064 876836 +304097 866631 +304108 817081 +304108 914336 +304111 888278 +304111 920683 +304114 885344 +304189 970114 +304208 873075 +304211 872169 +304247 954797 +304250 872519 +304261 888908 +304264 872797 +304303 888422 +304319 849758 +304381 842808 +304386 904414 +304392 976197 +304403 885436 +304408 866136 +304428 872225 +304433 850453 +304439 856886 +304503 934331 +304506 911544 +304519 912100 +304556 866383 +304614 873150 +304686 872361 +304692 834131 +304692 836303 +304703 919783 +304739 879192 +304753 901008 +304761 883422 +304783 900375 +304811 926956 +304850 925958 +304853 928506 +304867 909561 +304875 876997 +304892 997717 +304911 915194 +304942 924175 +304978 949964 +304981 861361 +305019 907478 +305042 904611 +305042 905822 +305050 978200 +305081 976786 +305100 872125 +305181 829483 +305183 921847 +305186 872728 +305228 879033 +305253 896794 +305333 920814 +305367 917528 +305375 954831 +305425 975464 +305450 838703 +305453 877517 +305475 881753 +305536 877119 +305589 915558 +305600 919539 +305619 818308 +305667 1.00643e+06 +305692 847433 +305706 974092 +305772 904831 +305781 982725 +305786 978528 +305814 872914 +305869 845833 +305881 911681 +305900 881708 +305903 972967 +305922 951292 +305958 916164 +305986 870311 +305992 871611 +306033 879036 +306039 830981 +306136 972053 +306161 920569 +306169 846600 +306181 877531 +306200 927625 +306228 857122 +306236 844147 +306278 963342 +306317 816067 +306322 870397 +306325 976769 +306336 924192 +306353 905008 +306483 911564 +306581 984403 +306603 938925 +306694 814628 +306878 922714 +306908 819175 +306928 917439 +306936 853922 +306942 880431 +307014 914361 +307050 848431 +307075 849244 +307100 1.012e+06 +307108 949328 +307122 850203 +307172 911414 +307175 974425 +307214 861156 +307233 955506 +307239 873142 +307383 915942 +307386 880789 +307436 980553 +307472 832208 +307489 844839 +307542 935403 +307581 982281 +307592 986747 +307619 865706 +307636 880747 +307647 905117 +307731 858142 +307742 852269 +307750 944153 +307817 855386 +307836 924253 +307847 835600 +307908 898486 +307917 837900 +307917 856797 +307947 974253 +307969 853767 +307997 816900 +308158 926603 +308206 880706 +308231 883614 +308303 820100 +308306 906717 +308325 832786 +308372 912175 +308400 895342 +308411 977933 +308461 932889 +308469 901531 +308483 937572 +308531 880561 +308531 969767 +308558 820211 +308600 1.00601e+06 +308656 910156 +308700 851619 +308772 842014 +308781 974014 +308783 965928 +308828 843239 +308828 877731 +308917 880397 +308939 1.02879e+06 +309036 845756 +309078 944219 +309139 1.01898e+06 +309175 997861 +309197 932822 +309200 911156 +309200 939964 +309250 885900 +309381 905089 +309450 953753 +309469 975383 +309497 959114 +309528 871514 +309531 921825 +309567 855167 +309575 851622 +309597 837381 +309636 817228 +309656 864597 +309736 840531 +309764 925850 +309778 966736 +309814 863075 +309833 918000 +309839 920533 +309842 1.03744e+06 +309911 833728 +309967 948269 +310000 872608 +310011 894522 +310050 863281 +310067 904722 +310103 863497 +310111 838664 +310147 922872 +310236 874939 +310258 964850 +310294 961144 +310328 858639 +310344 919756 +310364 827472 +310397 1.0483e+06 +310403 848792 +310408 830753 +310486 853050 +310547 951256 +310558 974642 +310578 920489 +310594 921211 +310636 981814 +310681 836239 +310722 840892 +310728 969783 +310744 831994 +310786 976053 +310894 910683 +310906 882281 +310931 870628 +310944 924003 +310981 973425 +311022 856969 +311044 912994 +311050 870722 +311081 855944 +311086 888272 +311128 860461 +311147 932714 +311158 901419 +311169 977275 +311239 979028 +311267 954453 +311275 841519 +311278 920661 +311358 1.02224e+06 +311369 834236 +311392 855192 +311431 894097 +311431 904586 +311433 932608 +311497 814917 +311556 885578 +311583 944261 +311650 966767 +311692 889200 +311711 847333 +311797 837892 +311808 821350 +311828 852364 +311869 947808 +311914 1.0146e+06 +311956 987178 +311972 910217 +312022 890347 +312033 970364 +312042 819814 +312067 973025 +312072 832503 +312133 823542 +312158 861711 +312161 998453 +312169 983931 +312228 904603 +312231 853906 +312311 842106 +312356 857228 +312436 904531 +312478 939742 +312517 898375 +312617 1.00817e+06 +312689 836872 +312714 834650 +312775 945764 +312794 863256 +312822 892756 +312825 862556 +312836 904683 +312925 851117 +312975 828525 +312989 853444 +312989 870225 +313058 822422 +313061 968978 +313081 973611 +313100 857131 +313111 924450 +313114 855531 +313128 843358 +313181 954564 +313189 854939 +313194 839172 +313222 924342 +313269 892903 +313381 947289 +313392 1.02851e+06 +313403 1.10934e+06 +313406 830461 +313406 938467 +313408 835936 +313444 1.09545e+06 +313464 892600 +313511 853422 +313528 865392 +313569 1.09561e+06 +313614 961439 +313644 893061 +313700 814342 +313775 849342 +313794 841611 +313850 832231 +313856 859294 +313864 972153 +313903 926692 +313903 976842 +313972 1.0235e+06 +314128 833292 +314144 860678 +314153 924117 +314172 895422 +314217 853378 +314228 1.03493e+06 +314333 874014 +314350 977436 +314394 835194 +314397 847250 +314436 934572 +314439 974089 +314481 1.09928e+06 +314497 985706 +314503 835086 +314589 856406 +314611 1.03393e+06 +314622 971956 +314628 908500 +314636 1.00437e+06 +314650 882544 +314675 971144 +314717 836469 +314722 908967 +314747 969231 +314856 845139 +314861 820172 +314917 954783 +315022 1.06158e+06 +315044 910689 +315086 828500 +315089 878944 +315128 837878 +315172 826350 +315189 927067 +315214 971536 +315242 965336 +315278 873247 +315297 941058 +315306 838356 +315342 974428 +315392 824625 +315394 1.10756e+06 +315422 867150 +315422 968333 +315492 971464 +315536 901072 +315544 1.10303e+06 +315581 847383 +315603 914031 +315653 914258 +315686 934839 +315700 1.03001e+06 +315717 852506 +315783 841558 +315789 904406 +315811 925328 +315828 1.0292e+06 +315847 958489 +315850 1.06272e+06 +315922 1.06224e+06 +315939 971086 +315942 832506 +315942 1.02892e+06 +315972 1.00182e+06 +315983 898669 +316000 857189 +316033 946553 +316039 891956 +316072 818856 +316089 850472 +316250 828869 +316250 955792 +316264 918181 +316269 962836 +316278 1.10333e+06 +316292 971025 +316300 915544 +316314 936439 +316339 883133 +316369 867419 +316453 895553 +316503 950725 +316528 932019 +316592 974719 +316672 928906 +316747 886461 +316753 930444 +316797 964819 +316831 921336 +316925 1.06207e+06 +316939 891306 +317011 903975 +317036 981236 +317058 836533 +317078 817425 +317086 856106 +317086 877772 +317114 910606 +317128 1.10067e+06 +317147 832528 +317164 862639 +317169 991322 +317200 858161 +317225 915431 +317244 961650 +317319 841708 +317333 872047 +317381 999469 +317419 989453 +317511 1.03159e+06 +317539 966497 +317561 846153 +317586 1.06486e+06 +317606 930861 +317711 847894 +317719 918214 +317733 844467 +317739 816328 +317781 823486 +317822 975764 +317833 855558 +317839 816078 +317864 890322 +317878 964622 +317883 877272 +317958 951500 +318022 970914 +318086 859700 +318144 948403 +318192 923297 +318197 935142 +318214 930294 +318242 944908 +318272 994261 +318294 866178 +318308 843644 +318361 1.00984e+06 +318456 1.02367e+06 +318464 916561 +318467 815961 +318575 1.03092e+06 +318600 886994 +318603 903958 +318636 922958 +318736 897336 +318781 854497 +318867 889839 +318872 1.00291e+06 +318911 851456 +318922 1.00484e+06 +318933 931181 +318939 967144 +318972 986033 +319003 842519 +319028 922431 +319036 943950 +319119 1.11881e+06 +319133 877358 +319231 976564 +319253 926394 +319292 826797 +319364 819286 +319381 813036 +319436 942439 +319508 834564 +319564 999619 +319608 909839 +319617 898700 +319633 837825 +319636 952703 +319656 940536 +319678 1.10294e+06 +319753 939978 +319789 892872 +319808 916556 +319828 980333 +319844 865786 +319872 903569 +319894 832003 +319908 872906 +319919 833069 +319972 1.02078e+06 +320000 808458 +320039 1.06605e+06 +320108 971297 +320147 933419 +320167 929092 +320172 830628 +320217 937142 +320264 921389 +320333 810500 +320333 895222 +320339 843928 +320356 825083 +320375 937000 +320400 887281 +320492 916581 +320497 921092 +320525 955061 +320678 829008 +320722 842328 +320725 912408 +320736 829147 +320800 968064 +320833 811000 +320850 983417 +320853 932200 +320867 821181 +320878 846675 +320883 954717 +320894 882219 +320914 837956 +320919 967156 +320953 964686 +320958 989633 +320961 902942 +321094 906233 +321100 835011 +321142 811542 +321153 812472 +321244 969450 +321261 991650 +321292 1.01788e+06 +321322 812992 +321331 962275 +321358 816222 +321397 953200 +321439 960908 +321442 857150 +321444 951203 +321469 827781 +321489 811633 +321531 947992 +321533 901311 +321558 819339 +321572 943372 +321594 971497 +321614 819042 +321631 917206 +321686 882825 +321694 960122 +321811 821092 +321839 865803 +321839 968844 +321872 825658 +321975 831778 +321994 1.10968e+06 +322019 839086 +322042 823219 +322047 958553 +322094 997964 +322136 986703 +322161 807528 +322175 824136 +322206 982019 +322217 1.10926e+06 +322253 950575 +322267 952253 +322333 973742 +322344 977550 +322369 808606 +322381 843092 +322386 949403 +322411 927158 +322417 854164 +322428 944553 +322503 1.01478e+06 +322528 1.09831e+06 +322592 904225 +322614 837367 +322664 876253 +322686 1.07758e+06 +322700 1.068e+06 +322731 899858 +322744 949783 +322767 927233 +322783 957494 +322817 938239 +322836 834722 +322861 1.04095e+06 +322869 810808 +322936 840611 +322958 812356 +322964 1.01306e+06 +322986 901847 +323050 840275 +323053 847728 +323061 877981 +323061 924503 +323069 960064 +323078 954797 +323089 917747 +323094 901389 +323122 1.06778e+06 +323128 897983 +323131 970114 +323158 945164 +323175 890256 +323186 1.02545e+06 +323189 845172 +323203 962128 +323211 891633 +323283 932797 +323292 966250 +323300 906056 +323344 961511 +323361 813917 +323414 903217 +323431 893286 +323475 973864 +323492 904600 +323503 1.08708e+06 +323511 953008 +323525 908778 +323536 896544 +323642 887036 +323644 894742 +323664 961006 +323667 863000 +323694 841881 +323717 1.1286e+06 +323769 825925 +323789 806928 +323794 816633 +323808 1.06479e+06 +323864 968481 +323867 833547 +323881 989789 +323881 1.00864e+06 +323939 993939 +323967 973236 +323969 820603 +323969 908564 +324014 988172 +324058 994933 +324064 972114 +324067 887772 +324072 870211 +324083 911867 +324111 1.00712e+06 +324172 886478 +324206 1.04228e+06 +324239 856917 +324283 901322 +324311 966675 +324314 806700 +324322 830614 +324333 971022 +324339 866547 +324356 807242 +324367 1.11225e+06 +324372 1.03159e+06 +324389 891083 +324419 822153 +324419 977939 +324425 962297 +324453 949483 +324458 1.00538e+06 +324486 817833 +324486 997328 +324489 975264 +324494 875142 +324561 839403 +324575 914931 +324575 998711 +324581 837317 +324608 849878 +324614 973878 +324617 901153 +324639 864597 +324697 986786 +324706 1.00012e+06 +324708 850008 +324708 1.00406e+06 +324772 917547 +324786 940594 +324797 863619 +324806 809806 +324822 969942 +324861 882964 +324956 849919 +325006 947403 +325042 945739 +325092 921192 +325117 863767 +325156 954092 +325158 921917 +325158 937319 +325175 878364 +325175 968042 +325183 921475 +325231 926378 +325247 956369 +325250 937500 +325264 968861 +325275 927139 +325294 949028 +325300 925142 +325306 825894 +325325 935039 +325339 966653 +325344 927883 +325356 934108 +325358 858933 +325381 819325 +325403 829039 +325419 973206 +325431 903092 +325436 862119 +325439 930528 +325447 943672 +325481 828719 +325489 929200 +325497 858700 +325519 984978 +325536 838875 +325564 958631 +325569 842383 +325597 840964 +325606 856725 +325631 971414 +325789 973622 +325808 938925 +325828 821553 +325836 951086 +325839 1.17112e+06 +325842 881872 +325883 952039 +325883 965083 +325889 963086 +325889 966850 +325897 968567 +325908 926478 +325919 967558 +325936 948553 +325964 1.14709e+06 +325972 823339 +325997 1.1063e+06 +326039 914778 +326056 832456 +326097 854808 +326108 1.1077e+06 +326119 998139 +326125 900367 +326153 932867 +326208 836000 +326278 964556 +326308 972889 +326322 873192 +326353 860344 +326394 965381 +326400 1.17083e+06 +326408 903647 +326453 853783 +326467 972256 +326492 967128 +326517 969081 +326536 837597 +326550 799406 +326592 836189 +326631 954881 +326653 1.07152e+06 +326728 1.14146e+06 +326731 974603 +326733 957092 +326775 845394 +326781 1.17098e+06 +326789 1.15498e+06 +326833 847383 +326858 1.17182e+06 +326875 833467 +326875 939608 +326900 808508 +326947 937417 +326958 976019 +326961 920858 +326981 958850 +326989 926567 +326992 1.08131e+06 +327025 1.03136e+06 +327028 971550 +327044 875958 +327092 960081 +327142 971561 +327153 1.17156e+06 +327169 1.16875e+06 +327189 1.02644e+06 +327214 1.09105e+06 +327217 840133 +327225 1.1064e+06 +327233 992969 +327253 973206 +327253 1.14624e+06 +327286 949422 +327286 966225 +327292 827200 +327308 1.15529e+06 +327342 802419 +327358 962750 +327361 968867 +327375 1.01951e+06 +327425 1.17031e+06 +327439 939714 +327447 974133 +327458 969975 +327481 964717 +327503 816369 +327547 812422 +327556 989019 +327558 1.11554e+06 +327564 998958 +327572 943450 +327572 974106 +327578 848750 +327592 977969 +327594 974581 +327617 1.0813e+06 +327631 802503 +327675 886508 +327678 1.17022e+06 +327700 1.0828e+06 +327714 891167 +327733 924056 +327750 917925 +327764 799311 +327786 919142 +327794 1.0815e+06 +327833 968000 +327853 800353 +327872 845619 +327883 868717 +327889 851450 +327917 930556 +327919 1.15562e+06 +327928 956342 +327931 1.1569e+06 +327939 798628 +327947 1.16962e+06 +327958 954508 +327961 851839 +327964 965606 +327994 972689 +328000 947206 +328003 856536 +328039 819494 +328042 911700 +328047 974447 +328058 974028 +328083 981125 +328111 831728 +328111 1.15379e+06 +328139 969486 +328158 972278 +328189 822350 +328192 934175 +328203 851722 +328219 926578 +328233 971703 +328267 830794 +328281 884764 +328311 857636 +328339 1.09707e+06 +328342 972286 +328344 852297 +328364 964747 +328383 1.16973e+06 +328386 866294 +328403 851833 +328406 836325 +328406 878875 +328422 1.04403e+06 +328439 971428 +328467 852100 +328475 1.15569e+06 +328492 1.09759e+06 +328503 810794 +328517 800367 +328519 1.00465e+06 +328544 799750 +328550 904056 +328564 973386 +328572 1.16921e+06 +328578 972544 +328597 846200 +328600 973636 +328667 824042 +328678 843306 +328686 851906 +328708 811097 +328714 939872 +328744 957653 +328764 877425 +328778 851833 +328794 1.11757e+06 +328808 971547 +328819 833325 +328833 816583 +328836 899714 +328847 1.00126e+06 +328881 843267 +328928 934483 +328936 960292 +328950 975456 +328961 1.09827e+06 +328997 854011 +328997 945561 +329014 922419 +329028 965636 +329050 806669 +329050 936967 +329064 908781 +329103 961353 +329156 867158 +329183 800222 +329192 916769 +329253 811875 +329264 968958 +329311 964594 +329328 843494 +329342 970778 +329344 972514 +329358 828117 +329372 871647 +329411 971339 +329439 859539 +329439 1.03348e+06 +329442 1.02564e+06 +329444 871386 +329453 998025 +329478 1.12716e+06 +329481 967294 +329536 968900 +329544 970147 +329572 952900 +329572 1.05742e+06 +329589 812367 +329594 1.17264e+06 +329597 867467 +329617 968289 +329619 931400 +329628 1.17035e+06 +329636 1.01832e+06 +329644 1.02829e+06 +329689 934506 +329700 899122 +329719 1.10776e+06 +329739 908244 +329750 817578 +329750 963322 +329761 965950 +329778 1.05941e+06 +329778 1.11517e+06 +329783 885700 +329786 1.15529e+06 +329808 800328 +329814 828103 +329836 845828 +329856 801100 +329875 1.1077e+06 +329911 1.1727e+06 +329922 890661 +329950 975425 +329953 949656 +329975 876300 +329983 946306 +330014 824114 +330039 972256 +330047 1.10785e+06 +330067 801556 +330078 813086 +330122 943653 +330136 927250 +330144 970967 +330150 966128 +330161 927242 +330183 801758 +330197 966986 +330203 1.17202e+06 +330308 850611 +330314 1.11387e+06 +330317 947217 +330342 839383 +330369 1.17291e+06 +330372 1.15621e+06 +330392 850314 +330394 921825 +330483 1.1663e+06 +330508 1.09296e+06 +330544 841558 +330569 1.1091e+06 +330572 915733 +330575 895875 +330606 954719 +330656 860533 +330656 962275 +330678 1.09359e+06 +330681 1.17302e+06 +330739 1.06018e+06 +330750 898544 +330767 1.11739e+06 +330786 868817 +330786 1.09365e+06 +330786 1.16601e+06 +330800 832322 +330847 972958 +330897 820158 +330917 970464 +330956 803156 +330981 936547 +331003 934608 +331006 868642 +331028 867536 +331031 966703 +331053 885608 +331075 923347 +331094 912619 +331131 900531 +331136 941642 +331150 1.04326e+06 +331181 871250 +331192 970253 +331192 1.17086e+06 +331211 971831 +331214 855664 +331236 890550 +331256 1.15513e+06 +331281 919611 +331283 1.07252e+06 +331294 881514 +331333 1.00227e+06 +331372 958392 +331386 1.10124e+06 +331408 919939 +331433 1.17165e+06 +331481 959511 +331486 941500 +331506 968233 +331511 853722 +331575 997333 +331575 1.05774e+06 +331581 1.1735e+06 +331611 983853 +331633 963597 +331650 970292 +331656 919414 +331667 1.01793e+06 +331689 908539 +331731 849150 +331731 862517 +331781 866072 +331786 991772 +331800 964978 +331806 947439 +331811 1.02274e+06 +331828 902228 +331842 904892 +331844 998933 +331886 952211 +331908 1.01378e+06 +331939 987383 +331958 800133 +331958 1.17379e+06 +331972 1.04372e+06 +331975 966150 +332000 1.17242e+06 +332031 946800 +332075 823919 +332075 926661 +332097 875692 +332100 847444 +332100 977544 +332144 804481 +332183 981583 +332183 1.17033e+06 +332281 917975 +332289 875772 +332333 825956 +332342 864836 +332342 975858 +332344 885822 +332347 848358 +332361 968008 +332378 915114 +332400 1.15518e+06 +332436 842289 +332442 868164 +332447 813589 +332467 842642 +332469 958997 +332481 1.00573e+06 +332511 808158 +332558 1.16374e+06 +332569 1.03317e+06 +332611 938853 +332614 972378 +332619 905922 +332653 842817 +332667 892908 +332669 932392 +332697 908797 +332736 858361 +332756 829764 +332775 850981 +332781 863550 +332858 965725 +332939 1.11096e+06 +332942 961944 +332944 839661 +332958 977986 +332961 868436 +332969 810350 +332975 914936 +333022 845539 +333042 969858 +333047 836833 +333061 1.11841e+06 +333089 854847 +333100 891728 +333106 857544 +333139 820969 +333158 926628 +333200 879028 +333208 902322 +333225 804139 +333225 811425 +333244 967842 +333267 833886 +333286 912817 +333289 925383 +333289 1.05604e+06 +333317 1.05672e+06 +333319 897411 +333328 943425 +333369 1.02206e+06 +333428 1.18327e+06 +333439 864381 +333453 1.10452e+06 +333458 841092 +333478 932097 +333486 806831 +333489 965483 +333506 847767 +333514 932956 +333528 1.11788e+06 +333536 905925 +333578 812708 +333583 935775 +333583 976944 +333625 951044 +333631 971736 +333647 927247 +333653 934950 +333703 1.12583e+06 +333706 960686 +333706 987525 +333708 1.11962e+06 +333733 956881 +333764 1.1725e+06 +333767 792947 +333783 880153 +333794 962472 +333806 847997 +333869 842831 +333942 1.04522e+06 +333942 1.10786e+06 +333944 803475 +333964 969603 +333967 845958 +333992 1.10868e+06 +334017 869544 +334025 814203 +334053 908975 +334069 826622 +334100 910617 +334111 930694 +334111 1.10842e+06 +334131 823853 +334144 823128 +334147 1.11909e+06 +334150 1.11549e+06 +334153 886439 +334181 998186 +334208 821622 +334214 816858 +334214 965769 +334222 1.11822e+06 +334247 959461 +334250 940475 +334256 869267 +334267 941061 +334269 1.17611e+06 +334306 963383 +334336 841489 +334342 869472 +334353 1.12297e+06 +334353 1.12358e+06 +334356 1.12349e+06 +334358 861058 +334372 1.01643e+06 +334417 940375 +334433 895717 +334472 841469 +334483 1.12073e+06 +334486 844550 +334486 867878 +334492 996225 +334500 905056 +334500 1.12259e+06 +334503 821983 +334503 888183 +334508 906550 +334511 795611 +334511 869967 +334517 811256 +334539 910072 +334561 1.02489e+06 +334597 944153 +334614 869089 +334636 1.17678e+06 +334661 942883 +334667 820167 +334667 969181 +334669 1.17697e+06 +334672 995242 +334706 825047 +334706 952136 +334750 804867 +334764 1.00855e+06 +334819 897281 +334917 808558 +334933 1.12357e+06 +334936 1.17148e+06 +334939 849139 +334950 903197 +334956 884272 +334967 812794 +334967 818922 +335006 1.17742e+06 +335017 819653 +335017 1.17662e+06 +335044 818692 +335058 1.02009e+06 +335086 946161 +335086 966119 +335092 1.11898e+06 +335128 963922 +335172 820758 +335178 818442 +335181 899206 +335200 964836 +335206 868025 +335214 798789 +335214 843539 +335225 1.17707e+06 +335253 914358 +335261 953156 +335308 805722 +335308 819450 +335311 1.11942e+06 +335317 811233 +335358 869972 +335378 852533 +335378 924697 +335381 867072 +335386 1.12185e+06 +335400 891242 +335406 892669 +335422 1.17782e+06 +335442 842339 +335453 1.05572e+06 +335461 957256 +335481 865444 +335508 790417 +335508 818042 +335519 947808 +335539 828961 +335553 890847 +335575 807147 +335589 978483 +335603 817197 +335606 1.17157e+06 +335614 969108 +335633 880814 +335636 818081 +335656 813036 +335669 845811 +335700 868964 +335717 1.16076e+06 +335725 844133 +335750 838939 +335756 831825 +335772 961781 +335772 962731 +335778 1.01855e+06 +335806 1.12237e+06 +335808 799892 +335831 843394 +335833 867728 +335833 959097 +335844 928342 +335861 862861 +335869 845425 +335869 879844 +335872 1.02378e+06 +335908 864908 +335939 1.12302e+06 +335942 992600 +335956 834681 +335956 986253 +335967 838603 +335975 1.12271e+06 +335992 797444 +335992 963664 +336000 1.17671e+06 +336008 869561 +336017 907736 +336047 867939 +336058 789733 +336064 843353 +336075 886503 +336078 927400 +336081 803514 +336086 912067 +336103 964106 +336103 1.14596e+06 +336106 950525 +336106 1.14573e+06 +336125 920644 +336125 1.17712e+06 +336131 859611 +336131 1.12324e+06 +336142 858350 +336156 811022 +336189 838675 +336189 1.17928e+06 +336197 866089 +336206 869714 +336214 858442 +336219 843692 +336258 836125 +336258 1.17693e+06 +336261 859189 +336289 913994 +336289 917908 +336289 919314 +336306 1.12332e+06 +336331 897111 +336356 966086 +336358 972225 +336386 1.17343e+06 +336411 1.17918e+06 +336417 1.05877e+06 +336417 1.1729e+06 +336447 843258 +336456 859125 +336489 855875 +336517 973761 +336522 813614 +336533 844494 +336561 837183 +336561 969067 +336597 858317 +336597 876000 +336600 844103 +336600 868128 +336600 1.01238e+06 +336603 1.17998e+06 +336608 955553 +336614 952664 +336614 953856 +336647 791028 +336664 1.01682e+06 +336669 935914 +336675 798308 +336675 840178 +336694 1.17822e+06 +336706 1.01535e+06 +336742 941311 +336742 1.01387e+06 +336772 863967 +336794 844394 +336803 1.16173e+06 +336833 789986 +336844 878308 +336861 864750 +336889 788869 +336889 1.01998e+06 +336939 817672 +336950 802111 +336986 858397 +337039 907264 +337067 840317 +337072 842719 +337092 1.17196e+06 +337092 1.17953e+06 +337122 841053 +337133 873886 +337206 1.16215e+06 +337211 851456 +337214 1.16388e+06 +337244 926156 +337258 905514 +337286 870903 +337306 872844 +337319 849192 +337367 827394 +337369 850325 +337372 1.01836e+06 +337381 810981 +337397 1.16412e+06 +337414 1.18104e+06 +337431 1.17108e+06 +337444 852881 +337444 861558 +337456 1.17867e+06 +337458 1.17174e+06 +337458 1.17825e+06 +337475 1.16971e+06 +337481 868086 +337489 843881 +337519 858114 +337536 794478 +337547 842675 +337556 965364 +337569 881089 +337569 1.18353e+06 +337592 966692 +337592 1.18006e+06 +337597 871833 +337669 1.18188e+06 +337689 898083 +337714 842672 +337733 868139 +337739 1.17941e+06 +337747 842964 +337750 864717 +337786 907214 +337789 924917 +337797 1.16464e+06 +337803 843361 +337825 1.17228e+06 +337833 860025 +337839 1.16958e+06 +337856 1.18084e+06 +337867 977256 +337878 1.17852e+06 +337878 1.18357e+06 +337894 819297 +337897 842642 +337903 843061 +337914 908569 +337922 824792 +337922 1.18314e+06 +337936 842061 +337939 846606 +337947 837133 +338006 1.18389e+06 +338014 1.17145e+06 +338025 851886 +338025 933808 +338025 1.17992e+06 +338031 1.18072e+06 +338081 841703 +338094 842397 +338094 905264 +338111 1.02163e+06 +338125 846344 +338136 857614 +338136 924128 +338142 868094 +338144 1.17812e+06 +338161 986947 +338169 811011 +338169 1.18036e+06 +338172 981950 +338178 794494 +338181 867428 +338186 845825 +338200 1.16389e+06 +338247 870861 +338250 885436 +338303 1.16544e+06 +338311 872775 +338314 1.18072e+06 +338314 1.18281e+06 +338319 818011 +338322 1.01842e+06 +338333 1.1195e+06 +338353 1.17914e+06 +338358 790481 +338358 1.1834e+06 +338369 1.09964e+06 +338389 839008 +338389 907261 +338453 816619 +338464 1.18046e+06 +338492 1.18388e+06 +338531 965022 +338533 910278 +338536 1.18133e+06 +338544 842172 +338553 893114 +338556 892844 +338572 840200 +338575 1.15486e+06 +338594 846839 +338622 1.18399e+06 +338628 834089 +338650 843367 +338658 1.18082e+06 +338675 827414 +338675 1.17997e+06 +338694 1.01597e+06 +338703 1.17924e+06 +338708 797556 +338722 1.17869e+06 +338753 1.17566e+06 +338756 847622 +338756 891772 +338767 806931 +338781 907272 +338781 1.1752e+06 +338817 1.18116e+06 +338839 845144 +338847 1.1841e+06 +338869 914917 +338883 1.18308e+06 +338886 1.17812e+06 +338894 1.18159e+06 +338900 841431 +338906 800186 +338917 875261 +338919 842989 +338956 948261 +338958 1.18219e+06 +338967 979361 +338981 842833 +338983 889992 +339017 881344 +339022 1.18081e+06 +339056 914989 +339078 815475 +339103 811047 +339108 811358 +339133 822936 +339136 984931 +339164 815136 +339164 845447 +339164 1.18352e+06 +339167 928481 +339167 1.17899e+06 +339172 1.02324e+06 +339172 1.18011e+06 +339175 797442 +339192 1.18416e+06 +339203 803417 +339203 1.17278e+06 +339208 931539 +339214 780206 +339236 848408 +339242 843786 +339244 860225 +339256 1.16876e+06 +339289 878172 +339294 1.16976e+06 +339303 1.18211e+06 +339319 1.17945e+06 +339344 964283 +339353 799328 +339369 971164 +339381 1.18352e+06 +339383 943569 +339397 862017 +339400 1.17243e+06 +339400 1.18132e+06 +339411 842136 +339428 918433 +339442 909450 +339456 938469 +339461 843347 +339472 903442 +339472 1.18084e+06 +339481 864728 +339492 835347 +339508 907678 +339514 986683 +339533 1.17395e+06 +339547 860419 +339561 839881 +339583 921900 +339606 1.18184e+06 +339608 833781 +339608 1.1795e+06 +339608 1.18041e+06 +339611 1.16501e+06 +339617 1.18352e+06 +339650 835967 +339653 1.18151e+06 +339656 810742 +339656 879147 +339669 832783 +339672 941683 +339681 1.18224e+06 +339686 1.12729e+06 +339725 1.16976e+06 +339731 783861 +339761 1.17904e+06 +339767 896756 +339775 1.18186e+06 +339792 1.18032e+06 +339814 812364 +339817 1.18224e+06 +339831 1.18096e+06 +339839 997244 +339842 884881 +339844 1.01337e+06 +339850 915608 +339867 1.18184e+06 +339875 802083 +339875 822981 +339886 838981 +339897 834258 +339911 963739 +339919 893489 +339925 837203 +339925 1.17516e+06 +339933 810742 +339958 795703 +339961 1.17405e+06 +339967 779075 +339981 858664 +339986 967194 +339997 791997 +340006 810350 +340014 817722 +340017 887553 +340022 950936 +340025 850417 +340028 841447 +340067 900567 +340094 1.18104e+06 +340106 955094 +340117 1.17484e+06 +340119 1.00822e+06 +340122 1.00302e+06 +340122 1.17688e+06 +340131 982319 +340136 838278 +340142 860067 +340144 867469 +340147 904317 +340172 961425 +340186 952661 +340192 809900 +340194 1.1849e+06 +340200 979572 +340200 1.17949e+06 +340203 1.17864e+06 +340211 1.18396e+06 +340217 860886 +340231 843617 +340233 846156 +340239 1.18171e+06 +340253 877583 +340261 863261 +340272 958689 +340292 947389 +340292 989186 +340336 1.17042e+06 +340339 1.17313e+06 +340350 778939 +340378 943411 +340444 907447 +340453 1.17943e+06 +340456 850561 +340469 875497 +340469 1.1658e+06 +340483 1.1726e+06 +340514 840714 +340519 1.18046e+06 +340522 1.18243e+06 +340536 809614 +340536 852550 +340553 1.17751e+06 +340561 788906 +340583 1.06891e+06 +340600 800717 +340600 950031 +340606 867675 +340622 936897 +340625 1.18089e+06 +340625 1.18122e+06 +340633 1.1765e+06 +340636 831256 +340639 809583 +340642 1.01843e+06 +340658 846769 +340678 1.02524e+06 +340681 981903 +340686 1.17938e+06 +340686 1.18027e+06 +340700 883911 +340703 1.17395e+06 +340722 860333 +340736 1.09856e+06 +340736 1.18399e+06 +340739 1.17313e+06 +340750 925553 +340753 842942 +340806 1.18072e+06 +340808 844114 +340814 865911 +340853 1.1796e+06 +340858 811833 +340889 886222 +340900 1.17889e+06 +340900 1.18361e+06 +340903 967714 +340922 825958 +340922 1.17434e+06 +340953 1.18126e+06 +340961 1.18105e+06 +340967 1.17719e+06 +340975 1.17648e+06 +340978 985703 +341008 1.17767e+06 +341014 845194 +341031 1.17845e+06 +341067 1.17806e+06 +341069 1.17934e+06 +341072 1.18057e+06 +341111 828672 +341111 1.09291e+06 +341161 887117 +341161 1.18149e+06 +341167 1.07243e+06 +341172 913764 +341192 940164 +341192 1.16445e+06 +341206 840044 +341208 930536 +341214 1.17302e+06 +341214 1.18106e+06 +341244 1.01441e+06 +341258 1.09937e+06 +341267 962631 +341283 1.17208e+06 +341333 1.09285e+06 +341336 1.17907e+06 +341344 778819 +341347 799400 +341347 1.16312e+06 +341356 1.16053e+06 +341361 1.17864e+06 +341394 1.17976e+06 +341397 1.18034e+06 +341422 879886 +341464 874022 +341469 1.1797e+06 +341478 1.18144e+06 +341478 1.19194e+06 +341481 1.17998e+06 +341486 788769 +341500 1.14288e+06 +341514 896314 +341519 856789 +341542 1.17343e+06 +341544 992647 +341544 1.09973e+06 +341603 1.18651e+06 +341617 1.18052e+06 +341650 848000 +341669 979972 +341686 800628 +341706 1.18837e+06 +341733 901375 +341739 845014 +341742 971433 +341747 868436 +341750 820242 +341753 972625 +341781 794008 +341781 823792 +341783 975922 +341792 778478 +341833 1.02134e+06 +341850 839253 +341858 968803 +341861 1.03334e+06 +341867 851747 +341872 969842 +341897 1.1813e+06 +341942 887197 +341953 797628 +341953 821619 +341975 1.19176e+06 +342000 905708 +342006 861664 +342017 902833 +342022 871814 +342039 834572 +342047 830308 +342056 792547 +342072 841403 +342083 777967 +342092 778439 +342092 815333 +342103 778869 +342117 1.0169e+06 +342133 886644 +342164 1.19037e+06 +342178 905419 +342181 802486 +342200 856078 +342256 779450 +342264 876214 +342264 1.02723e+06 +342272 806894 +342275 838844 +342283 920031 +342283 986842 +342308 1.11324e+06 +342311 956200 +342322 1.19172e+06 +342331 974875 +342331 1.0241e+06 +342336 791489 +342361 966783 +342367 844908 +342369 849442 +342408 990753 +342419 853358 +342419 1.17285e+06 +342464 806072 +342478 889986 +342483 1.17188e+06 +342528 835617 +342542 1.10029e+06 +342564 902719 +342564 995164 +342569 851647 +342575 887033 +342639 858606 +342647 934608 +342675 862089 +342719 982356 +342722 778189 +342739 884092 +342739 920908 +342744 816189 +342772 878286 +342819 1.18438e+06 +342828 847453 +342847 831444 +342856 1.18881e+06 +342869 831103 +342883 779214 +342928 913378 +342978 838242 +342978 997400 +342997 798764 +343047 819831 +343064 826639 +343069 924011 +343083 908519 +343114 899442 +343133 790375 +343144 971425 +343181 864958 +343189 785003 +343192 918472 +343206 784022 +343219 788272 +343242 884911 +343267 935506 +343333 823881 +343336 834992 +343367 850714 +343369 794314 +343381 843767 +343386 787033 +343456 791658 +343461 831100 +343508 877064 +343514 860008 +343528 829322 +343531 890231 +343542 1.19058e+06 +343556 779003 +343581 862947 +343597 983075 +343608 1.17632e+06 +343617 810856 +343622 928128 +343661 1.01057e+06 +343664 1.01748e+06 +343683 869086 +343686 849342 +343689 979636 +343694 906389 +343714 1.19306e+06 +343739 800736 +343764 886817 +343806 810867 +343819 843711 +343847 1.1853e+06 +343850 1.02115e+06 +343858 961281 +343875 836664 +343886 1.03051e+06 +343919 990181 +343925 1.00897e+06 +343936 800697 +343983 822469 +343989 1.19518e+06 +343992 1.18917e+06 +344000 1.19299e+06 +344047 1.03205e+06 +344147 818114 +344153 1.18793e+06 +344164 793714 +344219 917061 +344233 1.19703e+06 +344244 930950 +344264 1.00204e+06 +344264 1.173e+06 +344303 1.03632e+06 +344319 902208 +344358 831069 +344361 847000 +344397 881408 +344433 869353 +344436 1.18609e+06 +344442 857197 +344450 921831 +344464 823917 +344467 859042 +344481 1.19242e+06 +344550 936800 +344600 976736 +344650 1.10091e+06 +344667 960531 +344672 835739 +344678 844292 +344689 802561 +344706 826708 +344717 1.04245e+06 +344719 996478 +344725 818808 +344742 1.01304e+06 +344750 782025 +344806 853478 +344811 872933 +344811 983828 +344839 1.14322e+06 +344847 854764 +344872 786564 +344917 835375 +344942 858478 +344942 890078 +344967 791144 +344989 820144 +345003 915525 +345008 1.17185e+06 +345014 926364 +345022 979575 +345025 849511 +345025 901986 +345028 816117 +345028 991406 +345033 826503 +345036 930550 +345044 971192 +345078 877286 +345078 969681 +345094 886353 +345106 899397 +345114 835272 +345125 798511 +345133 1.10078e+06 +345136 1.02882e+06 +345186 835008 +345203 1.06241e+06 +345228 824944 +345231 869703 +345250 868947 +345286 862533 +345325 839850 +345358 1.01758e+06 +345361 1.1729e+06 +345364 792917 +345381 962183 +345386 787878 +345400 1.12468e+06 +345439 853106 +345442 919689 +345486 994219 +345506 906417 +345508 1.02311e+06 +345517 805839 +345519 779264 +345556 909128 +345567 936339 +345622 858125 +345636 1.11854e+06 +345644 925867 +345650 835453 +345689 856150 +345719 931731 +345750 809022 +345772 833325 +345794 795467 +345794 1.18116e+06 +345811 1.13204e+06 +345828 1.17408e+06 +345861 942394 +345894 953525 +345931 806756 +345958 911997 +345958 1.20137e+06 +345969 837633 +346017 1.05208e+06 +346047 964239 +346058 869833 +346081 821136 +346086 983900 +346100 1.12315e+06 +346125 835250 +346136 1.20192e+06 +346144 1.20079e+06 +346172 796850 +346175 899686 +346181 790089 +346183 824781 +346200 923953 +346228 973961 +346275 968406 +346278 862744 +346292 786056 +346294 986283 +346350 857672 +346378 978172 +346381 993336 +346392 1.20457e+06 +346403 784842 +346417 1.02724e+06 +346433 971642 +346447 824703 +346453 1.18217e+06 +346461 893053 +346481 979578 +346500 803892 +346517 827839 +346525 965258 +346564 819653 +346581 885667 +346589 989514 +346628 1.06776e+06 +346647 830967 +346686 795456 +346708 890264 +346719 929986 +346722 860342 +346778 769511 +346781 829317 +346800 791953 +346811 874061 +346833 828375 +346844 903828 +346856 829533 +346875 771194 +346883 999117 +346889 821958 +346931 913136 +346950 765597 +346972 989492 +346975 798836 +346981 1.18136e+06 +346989 767406 +347008 875289 +347017 863758 +347022 824647 +347047 812144 +347047 852819 +347142 856808 +347181 766642 +347203 807711 +347206 958989 +347228 767264 +347242 827814 +347247 1.00534e+06 +347297 889506 +347303 865861 +347311 877025 +347339 824439 +347350 793492 +347356 779956 +347358 800883 +347369 822544 +347394 820372 +347400 972219 +347436 1.01854e+06 +347447 876675 +347464 922894 +347503 981714 +347514 950478 +347539 774306 +347569 879728 +347575 1.12453e+06 +347583 1.06055e+06 +347589 796108 +347600 827539 +347647 830642 +347650 876986 +347658 847700 +347694 922669 +347697 849703 +347711 794439 +347711 1.12057e+06 +347731 803919 +347736 907575 +347739 794631 +347744 966781 +347781 923489 +347786 823103 +347794 993350 +347803 982919 +347808 915808 +347825 979567 +347831 917464 +347839 918997 +347861 783944 +347864 768594 +347878 826925 +347967 969592 +347997 876772 +348000 824244 +348028 869717 +348061 1.06733e+06 +348117 881900 +348150 791833 +348150 922242 +348150 1.02397e+06 +348172 974056 +348228 1.18944e+06 +348231 982439 +348239 899936 +348247 824194 +348253 1.06838e+06 +348256 872947 +348258 774597 +348267 972589 +348289 958436 +348297 826017 +348347 976022 +348406 850428 +348406 883147 +348422 826447 +348450 955572 +348481 1.14613e+06 +348514 865722 +348525 823942 +348544 955819 +348561 1.00213e+06 +348611 966653 +348614 824317 +348628 875375 +348639 800014 +348639 843242 +348642 1.18162e+06 +348661 921100 +348686 858394 +348697 1.1176e+06 +348711 852908 +348719 855092 +348719 995039 +348722 896906 +348761 839583 +348767 1.17103e+06 +348778 824242 +348781 834011 +348789 769017 +348789 964122 +348794 819664 +348833 827075 +348847 796944 +348853 824561 +348878 793664 +348878 911944 +348892 946006 +348906 809567 +348936 983656 +348964 982003 +348983 940906 +348989 817619 +349022 1.10158e+06 +349025 790119 +349047 772317 +349050 1.16819e+06 +349069 1.0668e+06 +349106 818531 +349128 911100 +349147 977783 +349158 851092 +349181 797628 +349181 833856 +349181 973142 +349186 953089 +349203 822964 +349225 817428 +349236 777742 +349239 819331 +349244 807436 +349278 957156 +349283 820992 +349319 981400 +349322 865719 +349331 837772 +349331 838472 +349333 957694 +349364 818794 +349378 821453 +349378 1.00888e+06 +349386 822272 +349386 1.04682e+06 +349392 797742 +349431 797872 +349447 818378 +349475 857144 +349481 821275 +349492 904714 +349494 819322 +349508 821061 +349508 950800 +349511 946369 +349528 785089 +349531 1.20435e+06 +349569 924272 +349581 819908 +349581 852233 +349594 967525 +349611 819675 +349617 898294 +349622 779625 +349622 993803 +349672 947244 +349675 799847 +349675 824436 +349681 800769 +349692 873711 +349703 789456 +349717 1.20571e+06 +349722 909025 +349744 920164 +349769 914950 +349775 853578 +349808 792244 +349831 852861 +349842 804494 +349842 819267 +349853 805497 +349861 843714 +349883 803672 +349894 969233 +349894 992492 +349900 1.06049e+06 +349919 818350 +349919 868467 +349919 868469 +349936 802647 +349942 812422 +349942 853494 +349958 792264 +349978 783236 +349992 780914 +349994 1.17649e+06 +350025 809800 +350047 928025 +350072 809453 +350075 802011 +350081 907897 +350081 912511 +350122 857044 +350131 907225 +350133 786942 +350136 973608 +350142 852519 +350147 973353 +350153 785033 +350158 819750 +350167 818042 +350169 1.17835e+06 +350228 943811 +350242 810281 +350242 1.10697e+06 +350294 990928 +350308 766933 +350319 787950 +350322 932231 +350414 821044 +350419 896644 +350428 1.20475e+06 +350450 896217 +350456 853097 +350469 820903 +350478 856719 +350511 862697 +350522 868886 +350525 788786 +350525 831969 +350525 979361 +350525 1.18173e+06 +350531 850503 +350536 946233 +350539 933933 +350550 777467 +350553 871575 +350561 884353 +350589 1.194e+06 +350594 942525 +350644 888908 +350706 918794 +350711 797617 +350717 816500 +350725 982433 +350742 856261 +350767 806694 +350778 874397 +350800 816331 +350803 963989 +350822 942631 +350831 808925 +350833 980875 +350839 922078 +350844 1.06651e+06 +350872 973347 +350875 840347 +350886 770353 +350886 924419 +350906 806864 +350931 934483 +350950 789558 +350964 787842 +350975 987461 +350978 984353 +350989 1.20611e+06 +351036 986033 +351044 801094 +351056 830967 +351083 770444 +351097 794725 +351111 812267 +351117 1.01363e+06 +351128 918222 +351136 851381 +351161 781364 +351167 807239 +351186 1.2059e+06 +351211 815161 +351217 1.2062e+06 +351225 853439 +351228 953708 +351258 1.17985e+06 +351303 967756 +351314 794297 +351322 1.18448e+06 +351347 1.19455e+06 +351347 1.19472e+06 +351378 976578 +351392 973944 +351400 939214 +351411 848722 +351425 1.19456e+06 +351428 767706 +351428 1.2064e+06 +351436 828214 +351447 768025 +351461 966697 +351464 901844 +351483 818611 +351494 900489 +351497 949706 +351508 927439 +351508 938067 +351519 865706 +351522 1.07842e+06 +351536 781056 +351544 1.19455e+06 +351578 991750 +351586 964931 +351594 848767 +351600 926406 +351608 848578 +351619 1.06642e+06 +351644 860106 +351647 853014 +351672 946722 +351678 789731 +351697 1.0789e+06 +351700 885922 +351717 1.03724e+06 +351739 793925 +351742 846536 +351742 877378 +351744 814500 +351750 821894 +351794 806475 +351858 861122 +351864 947856 +351872 773211 +351883 982603 +351894 854858 +351894 1.14052e+06 +351903 944108 +351958 851847 +351981 1.11651e+06 +351997 870308 +352006 1.06701e+06 +352014 855192 +352017 838242 +352031 859211 +352036 1.01106e+06 +352044 898739 +352086 851269 +352092 1.18828e+06 +352097 860794 +352144 901964 +352153 998661 +352192 812058 +352219 1.01831e+06 +352225 974392 +352231 931578 +352244 907867 +352244 966703 +352247 882492 +352250 903250 +352256 803292 +352269 808433 +352303 810428 +352311 944778 +352317 916675 +352325 1.00599e+06 +352333 827344 +352336 886064 +352339 923875 +352353 815147 +352358 883906 +352361 823494 +352361 851986 +352369 974061 +352375 962414 +352378 1.06606e+06 +352381 1.18914e+06 +352386 810753 +352386 1.06667e+06 +352392 944258 +352400 858397 +352411 946197 +352422 873347 +352428 1.02428e+06 +352436 893500 +352450 813414 +352464 929364 +352472 975994 +352481 930489 +352494 1.1219e+06 +352506 917361 +352531 821972 +352536 951228 +352542 827003 +352556 793725 +352556 949214 +352561 792825 +352561 889878 +352561 912000 +352569 783525 +352578 969364 +352592 810756 +352597 804256 +352597 1.18913e+06 +352603 857361 +352606 971194 +352619 811875 +352625 775819 +352633 905711 +352678 811031 +352700 916397 +352706 861281 +352722 810483 +352747 812103 +352750 904667 +352767 991347 +352783 931336 +352800 824222 +352822 913653 +352828 1.20659e+06 +352831 863742 +352847 812842 +352861 811306 +352872 955822 +352889 811450 +352908 978119 +352911 996397 +352919 937297 +352922 815358 +352928 936344 +352950 797456 +352964 847481 +352969 940361 +352981 810161 +352983 824833 +353000 1.06551e+06 +353053 767889 +353061 786092 +353067 777883 +353083 771544 +353089 983417 +353097 915678 +353106 818589 +353111 824442 +353128 979442 +353164 811764 +353186 824611 +353194 877622 +353228 838075 +353233 845250 +353236 806561 +353236 873036 +353256 943014 +353258 896161 +353264 891494 +353267 786764 +353272 969250 +353289 817589 +353289 932528 +353339 818653 +353356 961361 +353361 941731 +353375 857042 +353394 974864 +353414 898972 +353425 779089 +353458 794172 +353464 824722 +353489 991700 +353500 802003 +353511 855678 +353544 944339 +353561 952653 +353575 780061 +353583 798947 +353589 810972 +353597 797800 +353600 819294 +353614 868397 +353619 862094 +353628 842942 +353653 1.0341e+06 +353658 1.20849e+06 +353692 819569 +353694 824931 +353714 853906 +353725 774378 +353733 1.19018e+06 +353736 832261 +353781 987817 +353786 813792 +353797 902578 +353819 785489 +353833 1.19109e+06 +353842 922156 +353842 977242 +353847 779931 +353858 943983 +353869 879953 +353878 805958 +353917 979411 +353992 788161 +354006 1.19469e+06 +354014 931142 +354019 797844 +354019 907531 +354019 974811 +354025 812025 +354025 1.08223e+06 +354058 801169 +354061 945986 +354078 786722 +354106 808431 +354117 902783 +354119 994039 +354131 787358 +354133 780711 +354175 816431 +354197 1.1902e+06 +354211 945144 +354219 992792 +354231 914558 +354244 844875 +354267 918367 +354286 794933 +354289 815017 +354294 857231 +354303 942314 +354308 834475 +354325 936153 +354325 963047 +354339 795872 +354339 1.06446e+06 +354342 806208 +354353 1.01172e+06 +354358 970911 +354364 1.00805e+06 +354367 943481 +354372 936728 +354392 886414 +354397 959817 +354406 933878 +354411 897781 +354419 974406 +354428 845931 +354428 1.20891e+06 +354447 784272 +354453 1.00271e+06 +354469 850844 +354492 867889 +354492 898150 +354494 973964 +354581 959411 +354603 947872 +354622 894019 +354639 815219 +354658 781608 +354667 856542 +354675 975161 +354686 830042 +354700 955228 +354714 934664 +354714 983553 +354725 774158 +354736 812547 +354778 942217 +354797 791806 +354817 860886 +354833 864603 +354867 808603 +354867 966847 +354869 938275 +354872 806219 +354886 829889 +354894 971633 +354894 1.2067e+06 +354900 903586 +354911 973228 +354914 920311 +354922 941375 +354939 850125 +354942 953053 +354969 779822 +354975 972686 +354983 949694 +354992 808489 +355006 940514 +355033 969025 +355042 974458 +355067 977622 +355069 787394 +355078 901469 +355083 783397 +355125 771008 +355133 845453 +355147 847903 +355147 1.06365e+06 +355150 882453 +355156 989669 +355186 976319 +355197 843636 +355225 976186 +355228 973769 +355261 987072 +355272 863336 +355281 1.08742e+06 +355289 774014 +355297 806683 +355322 979547 +355325 770328 +355328 828375 +355328 904206 +355333 829108 +355336 825286 +355361 1.00959e+06 +355364 782847 +355400 766233 +355453 779750 +355456 806111 +355464 770525 +355478 875519 +355494 985778 +355497 826503 +355508 975486 +355511 804067 +355608 975511 +355642 896464 +355642 907167 +355642 1.2108e+06 +355658 972867 +355692 805819 +355742 1.05674e+06 +355753 1.01184e+06 +355756 812119 +355778 989642 +355842 788003 +355842 881194 +355847 808103 +355869 804631 +355881 1.18491e+06 +355900 842419 +355914 924603 +355942 1.1934e+06 +355961 781244 +355978 824000 +356008 825542 +356014 844611 +356028 859197 +356056 851889 +356067 778236 +356075 958600 +356081 968208 +356092 1.18483e+06 +356111 773731 +356111 903297 +356122 804469 +356139 996711 +356139 1.06725e+06 +356144 888139 +356150 870353 +356172 878394 +356178 823214 +356203 908983 +356225 1.1767e+06 +356233 959603 +356289 821808 +356311 983169 +356328 993814 +356333 801161 +356333 825822 +356350 779333 +356356 941672 +356361 833778 +356383 912650 +356397 1.01603e+06 +356419 977461 +356442 823031 +356453 780100 +356486 956558 +356497 881267 +356497 910739 +356506 784567 +356508 883933 +356508 1.17661e+06 +356528 974778 +356578 820256 +356611 841722 +356617 971953 +356650 988828 +356678 1.01397e+06 +356697 812217 +356708 804744 +356728 895733 +356736 905072 +356744 900997 +356781 1.08151e+06 +356781 1.19228e+06 +356806 1.09052e+06 +356817 804325 +356839 820094 +356842 819919 +356869 1.05937e+06 +356914 1.00638e+06 +356919 848608 +356922 804350 +356942 970631 +356969 825608 +357006 808883 +357017 914414 +357017 968806 +357044 820361 +357047 967650 +357050 899694 +357064 812189 +357069 1.18455e+06 +357072 810758 +357078 798139 +357111 786144 +357111 890875 +357139 814222 +357142 835103 +357144 811464 +357200 791775 +357233 794625 +357258 979761 +357272 814708 +357289 814000 +357289 817794 +357292 1.18549e+06 +357306 911983 +357319 1.05151e+06 +357325 788506 +357328 843339 +357331 806772 +357333 796528 +357406 815633 +357422 905622 +357425 960700 +357436 796925 +357442 987472 +357444 1.09076e+06 +357453 816850 +357453 895297 +357472 854667 +357478 953694 +357486 966578 +357519 776703 +357547 1.18424e+06 +357561 899281 +357564 839706 +357578 816044 +357581 903222 +357603 841358 +357636 1.05932e+06 +357689 1.19246e+06 +357697 916408 +357719 786389 +357719 877839 +357739 814314 +357758 889900 +357808 783700 +357825 808875 +357847 891172 +357875 784808 +357883 776381 +357883 835544 +357894 839739 +357900 782042 +357914 787814 +357950 839319 +357964 814308 +357967 1.19107e+06 +357972 826842 +357972 842561 +357975 952503 +357981 976783 +358028 887747 +358028 965058 +358064 778636 +358083 970125 +358103 805561 +358111 768969 +358144 946283 +358147 892256 +358161 904342 +358178 798033 +358197 889158 +358203 956739 +358217 911283 +358239 772556 +358239 802536 +358242 783150 +358264 825494 +358269 1.01442e+06 +358275 839408 +358275 860717 +358303 925578 +358306 963908 +358383 894061 +358422 907042 +358425 756389 +358447 984128 +358456 863903 +358483 814961 +358506 953181 +358544 770558 +358589 1.08761e+06 +358614 979314 +358656 846850 +358656 1.01973e+06 +358667 767489 +358669 778294 +358681 835619 +358683 921175 +358708 955222 +358728 917539 +358756 893961 +358764 960608 +358778 766156 +358789 974250 +358800 901669 +358808 845086 +358825 800822 +358842 1.19271e+06 +358894 775325 +358906 903442 +358922 828292 +358922 904525 +358939 805617 +358967 775361 +359000 905819 +359028 802572 +359081 756761 +359089 926311 +359092 848781 +359100 790756 +359128 1.00382e+06 +359139 815392 +359153 820647 +359153 949697 +359175 762525 +359197 887589 +359217 811767 +359242 941883 +359250 868689 +359258 854642 +359272 899189 +359325 951411 +359339 845525 +359358 902578 +359381 777908 +359417 915483 +359419 958831 +359444 772100 +359447 960650 +359489 850269 +359494 944233 +359517 956506 +359525 975944 +359553 960086 +359556 800056 +359572 756244 +359594 953692 +359597 899719 +359606 839208 +359606 858142 +359608 782539 +359619 797625 +359625 1.19043e+06 +359669 831878 +359686 1.19291e+06 +359731 886781 +359739 970333 +359744 779658 +359758 943175 +359786 1.14832e+06 +359797 785100 +359806 889414 +359814 979108 +359819 841139 +359850 967667 +359883 966008 +359911 1.0608e+06 +359925 945678 +359939 788989 +359942 799356 +359942 941750 +359983 769464 +359986 961139 +360006 884281 +360014 940081 +360025 1.0593e+06 +360042 1.20128e+06 +360081 931864 +360083 1.19961e+06 +360103 842697 +360111 778578 +360114 886228 +360153 834150 +360156 865819 +360167 1.01824e+06 +360211 879669 +360214 803822 +360222 1.06958e+06 +360228 959681 +360317 840281 +360344 893856 +360358 894797 +360364 788236 +360381 882444 +360381 882736 +360397 1.14981e+06 +360417 901139 +360419 942469 +360444 843444 +360469 902928 +360489 777494 +360503 909750 +360508 902386 +360525 957906 +360533 873125 +360536 985881 +360583 905000 +360589 880978 +360594 919083 +360594 1.02513e+06 +360594 1.19311e+06 +360606 766094 +360625 941572 +360653 1.19016e+06 +360667 889939 +360689 794008 +360719 841333 +360725 797922 +360753 791000 +360764 888100 +360769 873878 +360775 860333 +360839 877947 +360839 898292 +360844 965833 +360861 937411 +360872 819275 +360914 793644 +360944 1.15041e+06 +360956 794381 +360958 792672 +360958 844425 +360967 811825 +360969 804194 +360981 1.19559e+06 +360989 783014 +360997 802444 +361006 870511 +361017 784583 +361019 871150 +361028 795069 +361033 841319 +361039 835528 +361047 845972 +361053 777131 +361056 795425 +361072 796589 +361075 832869 +361075 872208 +361078 876331 +361083 910972 +361092 978983 +361128 892617 +361131 794767 +361142 966989 +361156 970581 +361161 983167 +361169 867664 +361194 921358 +361197 800739 +361219 794292 +361222 786864 +361222 834925 +361275 889858 +361294 774206 +361306 824247 +361319 787569 +361325 885186 +361342 901597 +361344 806597 +361350 816778 +361350 1.11239e+06 +361397 961086 +361397 1.20359e+06 +361450 824169 +361456 1.1906e+06 +361458 811608 +361475 852683 +361481 989239 +361497 992978 +361511 955092 +361533 888006 +361536 856436 +361539 959925 +361542 837042 +361544 1.09552e+06 +361572 819783 +361583 811478 +361628 855017 +361631 818717 +361631 828311 +361661 948544 +361714 811942 +361725 859297 +361750 1.15136e+06 +361772 873397 +361778 942333 +361808 776669 +361858 953428 +361867 941286 +361869 903831 +361881 945403 +361889 957456 +361894 829586 +361900 764664 +361931 896556 +361956 840681 +361958 854486 +361961 820706 +361983 811531 +361983 1.01192e+06 +361989 1.15117e+06 +362000 865186 +362000 951675 +362022 802811 +362022 890122 +362025 911744 +362028 1.20102e+06 +362031 891908 +362031 1.19087e+06 +362061 942342 +362078 1.19346e+06 +362086 799050 +362128 1.21125e+06 +362136 886125 +362139 832950 +362164 805128 +362167 816747 +362178 841547 +362189 764642 +362211 919292 +362239 916083 +362261 926847 +362272 808336 +362294 771144 +362297 931075 +362325 807083 +362333 888244 +362336 897494 +362339 897694 +362361 900556 +362369 799797 +362381 963164 +362392 808447 +362403 802936 +362419 859519 +362419 959756 +362442 808486 +362506 837975 +362522 859517 +362553 941306 +362569 830861 +362586 831953 +362589 891917 +362614 909711 +362631 902925 +362633 894878 +362642 946928 +362650 1.01406e+06 +362675 944844 +362689 984794 +362694 958544 +362711 925353 +362739 772847 +362742 870642 +362758 998808 +362789 925969 +362803 978978 +362806 803594 +362808 835150 +362831 924939 +362842 821728 +362867 769850 +362894 972878 +362914 887081 +362928 951531 +362942 824736 +362953 801419 +362961 1.19141e+06 +362972 959911 +362972 970078 +362978 1.19206e+06 +362989 842233 +363008 1.19782e+06 +363019 762236 +363019 883267 +363047 866200 +363064 821933 +363075 975861 +363081 784069 +363100 964639 +363106 785911 +363119 877733 +363125 956158 +363133 823536 +363156 997572 +363158 914825 +363158 1.19708e+06 +363183 876947 +363200 906019 +363208 1.21243e+06 +363231 867133 +363275 1.19645e+06 +363294 783994 +363300 841839 +363303 1.19291e+06 +363314 772131 +363319 941183 +363353 934358 +363358 944606 +363361 1.02072e+06 +363378 968036 +363386 891639 +363417 783903 +363433 888503 +363486 822108 +363511 1.19419e+06 +363528 1.09617e+06 +363547 796647 +363556 856589 +363586 1.05609e+06 +363611 1.04595e+06 +363628 907536 +363644 958386 +363647 935678 +363683 960011 +363722 822258 +363728 942086 +363783 894719 +363808 848844 +363828 841200 +363828 901906 +363833 853231 +363839 925814 +363853 799597 +363864 804697 +363872 1.19217e+06 +363875 980894 +363883 864467 +363908 861672 +363911 950464 +363922 824117 +363936 789831 +363950 867794 +363956 769322 +363956 807228 +363956 978781 +363983 781556 +363992 900236 +364000 1.00802e+06 +364011 937378 +364036 814931 +364039 793364 +364053 984403 +364072 830056 +364072 1.05572e+06 +364078 905797 +364122 799672 +364142 963950 +364158 776033 +364169 1.09228e+06 +364181 826239 +364197 824767 +364203 814736 +364211 947967 +364219 944533 +364242 890569 +364247 1.21325e+06 +364253 896994 +364269 775958 +364333 1.19686e+06 +364336 993900 +364339 1.00141e+06 +364344 779122 +364356 978686 +364367 952711 +364369 772292 +364369 975853 +364392 992044 +364394 824558 +364422 770989 +364425 835997 +364442 883344 +364456 781986 +364508 775592 +364511 776797 +364517 899669 +364517 1.03184e+06 +364519 899192 +364533 1.00537e+06 +364542 835694 +364614 776544 +364639 950475 +364644 929200 +364664 799072 +364703 866514 +364708 828519 +364742 822611 +364744 818050 +364761 1.19442e+06 +364778 825933 +364797 1.21731e+06 +364850 825033 +364878 878383 +364883 797669 +364900 774417 +364933 900750 +364956 915406 +364981 845128 +364992 806075 +365003 776453 +365003 806267 +365008 888753 +365042 888742 +365050 1.01782e+06 +365053 811211 +365067 1.21443e+06 +365092 868850 +365108 1.04915e+06 +365139 1.19553e+06 +365147 946111 +365189 896125 +365211 860264 +365222 827136 +365225 939394 +365233 1.19286e+06 +365244 915381 +365289 974436 +365297 832175 +365297 873594 +365303 959233 +365331 823269 +365333 858500 +365356 954322 +365428 1.19832e+06 +365433 1.14446e+06 +365433 1.19386e+06 +365450 1.19286e+06 +365456 944850 +365461 963269 +365461 982697 +365483 824558 +365483 825619 +365486 866961 +365500 855053 +365556 824681 +365569 899664 +365619 862481 +365619 961614 +365681 896006 +365708 1.19611e+06 +365711 891861 +365736 967039 +365736 995719 +365744 851289 +365753 906039 +365769 825678 +365789 984619 +365817 865164 +365822 870656 +365822 988794 +365831 772003 +365844 824894 +365858 793953 +365864 895278 +365878 841269 +365886 793664 +365914 825736 +365922 896153 +365933 1.21834e+06 +365936 947689 +365944 943839 +365950 821889 +365953 1.01636e+06 +365958 902472 +365964 821886 +365964 1.19449e+06 +366003 1.21894e+06 +366031 924281 +366061 1.18062e+06 +366067 1.20188e+06 +366103 883147 +366111 1.21851e+06 +366117 1.19526e+06 +366136 898164 +366208 908233 +366211 932153 +366222 811511 +366244 1.19313e+06 +366283 799511 +366306 1.19678e+06 +366336 817839 +366378 825811 +366386 951539 +366408 802658 +366422 887389 +366436 932183 +366483 871664 +366503 1.1979e+06 +366506 944433 +366508 844386 +366592 1.19593e+06 +366611 809242 +366672 889933 +366675 868519 +366678 963369 +366689 899686 +366692 978008 +366722 939408 +366769 938686 +366775 769228 +366778 1.21654e+06 +366783 973097 +366828 1.01481e+06 +366844 1.21801e+06 +366850 931197 +366858 775428 +366889 831111 +366906 975561 +366908 851347 +366914 798728 +366936 949628 +366942 913992 +366986 789017 +366989 844775 +367000 781000 +367000 799389 +367006 956378 +367022 856917 +367039 1.05594e+06 +367069 970853 +367081 1.19555e+06 +367097 819775 +367097 998931 +367106 1.19758e+06 +367111 1.07984e+06 +367133 788289 +367150 799156 +367161 770683 +367161 809789 +367222 865772 +367233 844706 +367236 1.20059e+06 +367264 781292 +367278 1.10254e+06 +367281 765839 +367281 918522 +367281 1.08218e+06 +367286 809992 +367294 1.02513e+06 +367342 1.08359e+06 +367417 886367 +367417 943989 +367433 841597 +367472 959806 +367478 1.19771e+06 +367511 948472 +367533 861906 +367536 1.20381e+06 +367544 983564 +367569 903928 +367575 778472 +367583 830272 +367592 799906 +367592 895867 +367619 836950 +367625 807350 +367628 940558 +367647 882953 +367658 789286 +367658 1.21757e+06 +367758 873556 +367786 956392 +367797 893856 +367819 966608 +367856 1.08686e+06 +367892 815822 +367903 853706 +367911 817714 +367958 899578 +367958 959353 +367983 816825 +367992 784586 +368044 972825 +368050 986661 +368069 977333 +368083 767444 +368097 1.02255e+06 +368100 871542 +368125 898614 +368142 774686 +368161 1.00519e+06 +368172 939206 +368222 1.07992e+06 +368253 1.19702e+06 +368256 793983 +368347 815150 +368353 762986 +368356 996300 +368406 763106 +368414 946108 +368431 833219 +368453 868872 +368456 1.21537e+06 +368467 762856 +368472 896853 +368486 832192 +368519 833542 +368525 1.21401e+06 +368528 759783 +368572 883503 +368589 1.20455e+06 +368600 1.01213e+06 +368642 867103 +368650 878353 +368656 874886 +368658 831906 +368664 838889 +368672 814236 +368689 943678 +368706 890097 +368736 950956 +368744 948772 +368767 895878 +368817 827472 +368822 970531 +368833 979217 +368858 899292 +368900 822797 +368914 895383 +368936 812761 +368942 817769 +368975 959258 +369008 820803 +369031 1.06579e+06 +369033 1.04439e+06 +369042 1.21748e+06 +369053 935714 +369067 827819 +369069 1.00539e+06 +369086 1.11473e+06 +369094 894525 +369103 1.21756e+06 +369172 948794 +369192 942550 +369208 893506 +369289 939275 +369333 826292 +369333 948728 +369336 1.06998e+06 +369353 1.21772e+06 +369367 1.21864e+06 +369439 824642 +369444 940042 +369456 1.12526e+06 +369483 810850 +369486 840969 +369497 901583 +369519 926603 +369536 793592 +369542 1.01065e+06 +369544 947878 +369606 840933 +369608 1.21963e+06 +369614 1.2006e+06 +369619 781253 +369639 937956 +369647 829486 +369647 890892 +369661 829225 +369683 1.21899e+06 +369708 937178 +369742 1.2203e+06 +369753 1.21952e+06 +369758 825758 +369772 1.21898e+06 +369781 829886 +369783 822978 +369786 764283 +369800 856122 +369847 850631 +369861 1.20626e+06 +369869 948306 +369881 1.21956e+06 +369889 846000 +369903 864436 +369911 914925 +369922 919697 +369928 786014 +369944 956200 +369947 782275 +369953 917036 +369953 943158 +369956 910144 +369958 859119 +369975 798922 +370011 930814 +370031 936372 +370053 891764 +370058 1.21567e+06 +370081 1.0189e+06 +370097 913233 +370114 959350 +370161 819744 +370172 984850 +370175 885314 +370208 932058 +370236 898197 +370297 763456 +370303 934728 +370322 976067 +370333 883500 +370358 770956 +370369 944967 +370372 950897 +370372 956161 +370403 784836 +370406 944725 +370431 1.00921e+06 +370433 932942 +370436 896103 +370475 1.12526e+06 +370478 807800 +370478 874850 +370500 789444 +370511 1.22014e+06 +370514 1.22072e+06 +370517 890467 +370525 862078 +370561 850886 +370564 786386 +370583 1.20849e+06 +370589 881325 +370597 953592 +370619 970381 +370625 817519 +370667 766767 +370675 935519 +370692 941164 +370758 946394 +370767 889736 +370767 944592 +370803 779975 +370833 886000 +370836 944133 +370842 945131 +370850 896553 +370850 1.21609e+06 +370853 891625 +370869 818553 +370892 1.22085e+06 +370919 846042 +370925 792967 +370931 817939 +370939 860464 +370944 880803 +371028 853064 +371036 938183 +371042 965000 +371042 1.13583e+06 +371044 899106 +371056 806856 +371067 925806 +371092 878819 +371117 792858 +371142 891978 +371147 815197 +371150 1.07632e+06 +371156 933700 +371169 930556 +371183 828269 +371200 934800 +371222 763461 +371231 1.20259e+06 +371236 826014 +371236 886303 +371239 921011 +371261 1.22121e+06 +371267 961867 +371289 840833 +371297 804092 +371306 922633 +371306 1.13508e+06 +371306 1.21653e+06 +371331 1.13653e+06 +371367 859569 +371389 884033 +371425 945106 +371464 927686 +371464 944628 +371492 944428 +371500 824561 +371506 913575 +371511 887319 +371533 980308 +371536 837619 +371544 906956 +371575 929406 +371658 872475 +371672 876925 +371675 951097 +371686 1.13679e+06 +371692 948439 +371694 1.045e+06 +371731 781236 +371733 826311 +371742 1.05937e+06 +371753 1.01349e+06 +371753 1.13289e+06 +371764 943100 +371767 945653 +371769 846358 +371792 916567 +371794 859069 +371800 896550 +371836 873836 +371875 782017 +371883 944700 +371886 997653 +371903 952969 +371908 874528 +371967 897361 +372008 1.05423e+06 +372011 871789 +372011 1.13269e+06 +372014 994836 +372064 888447 +372075 826719 +372081 880567 +372147 938397 +372153 932981 +372167 895244 +372175 870489 +372197 895089 +372242 957081 +372256 866836 +372256 1.07598e+06 +372267 1.21974e+06 +372275 800131 +372278 774022 +372303 774778 +372322 820992 +372350 892700 +372364 1.21991e+06 +372367 874753 +372369 871592 +372397 969953 +372400 774303 +372414 982264 +372417 909686 +372422 784600 +372494 831933 +372508 925103 +372525 812714 +372539 764972 +372578 1.20998e+06 +372583 1.05904e+06 +372608 854989 +372639 1.22022e+06 +372653 973714 +372658 977653 +372678 760178 +372683 931169 +372689 993264 +372694 1.07009e+06 +372697 812225 +372703 955522 +372706 767078 +372708 799417 +372722 858911 +372742 875119 +372742 971686 +372750 1.0596e+06 +372753 1.07879e+06 +372769 891833 +372775 948247 +372778 820992 +372808 798972 +372811 985800 +372856 1.0034e+06 +372867 980256 +372872 1.21949e+06 +372894 759717 +372908 1.20318e+06 +372936 889753 +372939 871233 +372992 862286 +373003 899811 +373011 816911 +373019 783922 +373022 1.20482e+06 +373039 823511 +373050 934283 +373058 895181 +373058 899703 +373100 947717 +373125 812600 +373128 967539 +373139 1.2102e+06 +373153 935850 +373194 806392 +373206 792578 +373231 1.22031e+06 +373250 813119 +373261 919558 +373264 807353 +373281 874989 +373281 1.19648e+06 +373314 808114 +373325 827211 +373328 880811 +373339 869961 +373342 795233 +373353 1.21894e+06 +373358 814367 +373358 829806 +373361 943011 +373386 929069 +373403 952608 +373411 799433 +373433 853419 +373442 867547 +373450 1.08289e+06 +373458 948086 +373475 1.21268e+06 +373489 1.08585e+06 +373539 812528 +373567 774419 +373569 788256 +373603 963036 +373611 891658 +373636 815503 +373636 1.18394e+06 +373661 811028 +373661 1.21826e+06 +373672 884864 +373689 1.22035e+06 +373783 798072 +373797 1.22136e+06 +373819 869225 +373822 808228 +373822 896661 +373839 931511 +373842 1.22234e+06 +373856 939531 +373856 1.00195e+06 +373861 1.02278e+06 +373869 1.20722e+06 +373875 971139 +373894 1.20612e+06 +373903 976419 +373931 940936 +373939 972808 +373972 807994 +374019 868758 +374028 1.04653e+06 +374042 844139 +374083 1.02614e+06 +374108 947047 +374111 935494 +374136 791425 +374153 888978 +374153 938408 +374158 872656 +374183 956800 +374200 812433 +374208 814403 +374217 774378 +374222 810164 +374236 883461 +374242 864883 +374256 815069 +374283 1.21906e+06 +374300 1.22253e+06 +374303 839981 +374308 791233 +374322 1.20778e+06 +374328 815847 +374372 1.01972e+06 +374419 1.22142e+06 +374433 1.00015e+06 +374450 828053 +374450 871439 +374511 869092 +374517 892681 +374539 1.22181e+06 +374556 912094 +374556 946889 +374603 892469 +374614 1.22197e+06 +374636 1.22428e+06 +374644 818139 +374644 845067 +374650 858933 +374689 1.2214e+06 +374694 1.05869e+06 +374703 962633 +374717 1.21129e+06 +374739 1.08504e+06 +374744 972436 +374747 758586 +374767 878200 +374783 816536 +374792 825189 +374800 862939 +374817 1.00843e+06 +374850 1.19965e+06 +374861 1.22233e+06 +374931 871319 +374931 954700 +374947 1.20846e+06 +374950 942764 +374953 862214 +374994 918569 +375019 928208 +375028 975042 +375028 1.22468e+06 +375050 1.05007e+06 +375111 948378 +375178 876903 +375203 1.22275e+06 +375239 956611 +375264 1.20796e+06 +375272 796800 +375275 1.22512e+06 +375297 1.22039e+06 +375311 846619 +375314 767967 +375314 892533 +375317 758233 +375339 958264 +375389 872583 +375422 1.22515e+06 +375428 784575 +375439 947000 +375456 972686 +375458 773281 +375467 879839 +375472 996339 +375536 774606 +375544 889722 +375547 763372 +375569 946217 +375581 945197 +375583 971347 +375586 1.2227e+06 +375597 902939 +375631 1.22324e+06 +375658 973539 +375686 842964 +375697 852528 +375717 837069 +375728 827528 +375739 857400 +375742 1.22378e+06 +375792 1.06148e+06 +375808 774072 +375814 1.01355e+06 +375831 813806 +375831 815372 +375842 1.22365e+06 +375850 790517 +375867 847939 +375881 906289 +375900 775567 +375914 805439 +375950 1.20957e+06 +375958 816361 +375958 1.00443e+06 +375969 1.20865e+06 +375972 906272 +375986 1.22386e+06 +376028 992922 +376036 774917 +376069 875286 +376075 774772 +376133 779050 +376142 818667 +376144 934103 +376150 1.14511e+06 +376194 845781 +376194 888367 +376194 991061 +376211 906403 +376219 821633 +376242 1.0478e+06 +376242 1.09478e+06 +376264 894978 +376300 977822 +376306 1.2241e+06 +376339 794506 +376353 854008 +376361 867175 +376375 765747 +376414 1.20759e+06 +376439 930922 +376439 984308 +376439 987372 +376453 836489 +376456 847722 +376456 915358 +376458 981133 +376486 1.18971e+06 +376547 1.22407e+06 +376578 855911 +376583 976833 +376597 975750 +376614 764194 +376625 1.21874e+06 +376656 827717 +376658 775067 +376719 822842 +376739 808894 +376742 822775 +376775 1.13061e+06 +376789 812106 +376789 1.06353e+06 +376792 954569 +376806 926636 +376808 1.22399e+06 +376811 1.22123e+06 +376819 1.21767e+06 +376831 868714 +376833 879167 +376844 839531 +376853 852222 +376867 979764 +376881 972633 +376903 967819 +376908 757164 +376919 816242 +376922 973372 +376939 858592 +376942 1.22085e+06 +376947 1.22113e+06 +376989 937958 +377006 839739 +377022 1.21935e+06 +377033 822811 +377075 812508 +377103 763800 +377106 821842 +377117 757494 +377131 881867 +377139 971361 +377153 911350 +377194 756658 +377203 1.22526e+06 +377242 898611 +377250 1.22155e+06 +377258 806422 +377272 892167 +377306 818381 +377306 889331 +377339 883433 +377342 793542 +377347 812997 +377361 1.20934e+06 +377383 885406 +377397 818778 +377397 1.21424e+06 +377406 812308 +377417 1.21123e+06 +377431 811231 +377433 877039 +377478 842947 +377497 804631 +377519 890678 +377525 830689 +377528 1.00017e+06 +377531 1.06108e+06 +377533 847667 +377583 812128 +377589 774803 +377600 890772 +377622 848433 +377644 893350 +377661 1.08905e+06 +377667 1.20846e+06 +377692 906247 +377703 1.11601e+06 +377708 812086 +377733 1.13024e+06 +377739 890264 +377742 871133 +377750 1.22418e+06 +377753 879306 +377781 811883 +377792 964669 +377792 975361 +377800 864606 +377800 980194 +377800 1.21977e+06 +377806 804572 +377808 904217 +377814 891192 +377819 756539 +377831 812661 +377839 794431 +377889 971083 +377906 976292 +377931 819878 +377933 799942 +377944 935778 +377964 802978 +377975 797914 +377975 969994 +377975 1.20996e+06 +377975 1.21215e+06 +377992 882611 +378000 973181 +378017 804458 +378031 890275 +378044 1.2227e+06 +378067 1.00348e+06 +378092 854669 +378100 859814 +378106 954367 +378119 1.07664e+06 +378133 820247 +378136 884381 +378144 828072 +378158 811525 +378161 798247 +378172 968619 +378175 892278 +378206 889275 +378217 1.21999e+06 +378228 1.12435e+06 +378228 1.21276e+06 +378239 962889 +378242 820597 +378244 1.22231e+06 +378261 759919 +378286 922006 +378314 1.22284e+06 +378331 891428 +378333 866328 +378344 857319 +378347 973731 +378361 811350 +378361 875900 +378364 812019 +378367 905328 +378392 943544 +378397 947081 +378403 859492 +378406 886092 +378422 1.12827e+06 +378436 824094 +378456 838583 +378486 819936 +378492 1.06926e+06 +378500 997564 +378503 904986 +378503 1.22031e+06 +378511 905206 +378567 924050 +378589 808544 +378592 839186 +378592 1.22484e+06 +378619 846617 +378667 819867 +378672 905931 +378686 976647 +378714 1.09342e+06 +378717 1.22272e+06 +378728 905278 +378736 1.22456e+06 +378769 891144 +378772 1.22179e+06 +378803 862839 +378806 845731 +378811 957331 +378831 870494 +378858 1.22117e+06 +378869 1.22297e+06 +378883 894947 +378967 981783 +378978 889314 +378989 977825 +378994 890519 +379000 867550 +379061 1.22544e+06 +379064 1.22064e+06 +379086 881292 +379094 1.22685e+06 +379100 892358 +379103 853167 +379106 1.22279e+06 +379114 867444 +379136 898219 +379142 919025 +379161 951700 +379167 974222 +379169 952989 +379175 887622 +379214 832597 +379231 905553 +379231 994094 +379236 953458 +379244 953997 +379253 768594 +379256 1.22526e+06 +379331 753792 +379358 1.22347e+06 +379361 992522 +379364 907878 +379369 859917 +379369 869022 +379375 1.07812e+06 +379389 970194 +379403 918808 +379406 1.01254e+06 +379444 874053 +379481 1.2206e+06 +379489 922636 +379508 836258 +379514 867678 +379514 917711 +379533 1.20422e+06 +379578 1.2129e+06 +379586 767583 +379622 986003 +379622 1.22344e+06 +379631 806897 +379647 971472 +379681 913547 +379686 807672 +379717 1.00872e+06 +379725 890533 +379736 820175 +379736 838419 +379736 1.21694e+06 +379736 1.2253e+06 +379747 758342 +379747 815292 +379747 875558 +379747 1.22561e+06 +379772 1.22294e+06 +379781 1.2203e+06 +379797 1.01133e+06 +379806 1.01752e+06 +379811 883292 +379831 890161 +379833 758542 +379839 895894 +379842 1.20381e+06 +379850 1.03543e+06 +379861 1.00989e+06 +379872 1.22588e+06 +379883 857158 +379900 841797 +379917 920936 +379942 838878 +379953 867978 +379967 889200 +379969 1.03531e+06 +379975 1.21711e+06 +379978 1.20269e+06 +379989 861694 +379994 859436 +380014 975083 +380044 1.22298e+06 +380050 1.21805e+06 +380072 896583 +380081 927444 +380128 1.22644e+06 +380144 1.03628e+06 +380147 870364 +380150 1.21639e+06 +380153 890425 +380164 896186 +380172 1.22288e+06 +380228 1.07671e+06 +380239 976694 +380250 780044 +380269 1.21936e+06 +380281 979400 +380281 1.21884e+06 +380292 784769 +380300 790339 +380317 853425 +380331 1.22266e+06 +380372 848967 +380397 1.20232e+06 +380467 937042 +380467 973447 +380492 872742 +380494 773469 +380494 1.22158e+06 +380500 855458 +380522 1.02122e+06 +380525 847300 +380528 811042 +380564 839433 +380608 979294 +380628 914033 +380633 785028 +380639 1.0231e+06 +380667 1.03222e+06 +380669 818194 +380672 1.17229e+06 +380683 788897 +380694 787008 +380722 973453 +380756 755683 +380786 793833 +380803 893819 +380808 818342 +380831 900958 +380839 956342 +380844 998931 +380864 831264 +380872 1.0262e+06 +380875 1.06094e+06 +380903 899383 +380903 922925 +380908 881586 +380917 890503 +380933 885356 +380989 813242 +380992 875789 +380994 883375 +381042 1.22256e+06 +381050 857589 +381075 1.22569e+06 +381089 788578 +381111 858703 +381142 826033 +381161 825958 +381169 784419 +381200 869142 +381231 897017 +381236 857197 +381292 1.04023e+06 +381297 879350 +381303 1.21271e+06 +381344 977697 +381356 961356 +381361 810997 +381372 781881 +381375 1.20459e+06 +381378 892300 +381383 974311 +381400 937267 +381411 856878 +381428 948133 +381450 841114 +381472 980833 +381494 790719 +381503 926178 +381506 812875 +381522 1.21242e+06 +381542 1.213e+06 +381547 912439 +381558 1.2169e+06 +381597 855878 +381597 874483 +381600 856597 +381617 880653 +381619 834289 +381619 1.21611e+06 +381636 1.21149e+06 +381683 811950 +381689 869900 +381694 971064 +381700 877831 +381769 753931 +381778 947111 +381783 857097 +381803 813286 +381806 990983 +381811 813072 +381864 896056 +381867 919469 +381869 813656 +381875 877103 +381906 940292 +381942 855644 +381944 957425 +381950 856519 +381961 872967 +381961 1.20679e+06 +381969 856633 +381981 886844 +382000 858228 +382008 848733 +382019 790086 +382028 756928 +382031 975189 +382039 857253 +382050 875742 +382081 911603 +382097 842531 +382100 813842 +382100 982067 +382117 899942 +382119 852236 +382119 861219 +382119 896825 +382125 857403 +382142 856139 +382142 1.12923e+06 +382153 814247 +382181 814431 +382181 1.03756e+06 +382183 1.08568e+06 +382206 903958 +382211 903789 +382214 824425 +382225 853553 +382233 800947 +382239 868622 +382247 805333 +382289 856775 +382319 815378 +382319 977731 +382322 905628 +382325 1.22636e+06 +382369 859858 +382383 1.22039e+06 +382403 855242 +382431 933817 +382444 969278 +382453 781111 +382453 815672 +382456 870361 +382494 1.22039e+06 +382500 897500 +382511 875811 +382522 855922 +382542 857594 +382544 769639 +382544 1.04609e+06 +382547 856314 +382547 1.21299e+06 +382567 856017 +382575 879936 +382586 943303 +382614 856292 +382667 764542 +382667 855331 +382672 788261 +382678 856717 +382683 903800 +382694 1.08547e+06 +382717 846864 +382719 876878 +382722 855836 +382731 856231 +382739 856344 +382750 856150 +382769 1.1264e+06 +382786 821031 +382794 856500 +382806 952417 +382811 808528 +382825 855744 +382833 855911 +382833 903950 +382856 821958 +382856 858242 +382858 917203 +382911 766361 +382919 1.22457e+06 +382944 903158 +382972 856033 +382972 1.22284e+06 +382978 1.22491e+06 +382989 869550 +383000 831742 +383003 765078 +383017 916328 +383019 841475 +383028 855961 +383050 899942 +383056 856964 +383083 959556 +383106 854875 +383119 840275 +383139 1.22481e+06 +383150 919225 +383167 866958 +383172 889031 +383175 815211 +383219 756206 +383225 752181 +383239 774686 +383239 1.21821e+06 +383264 898769 +383269 1.22706e+06 +383294 891908 +383306 806533 +383308 887258 +383322 874453 +383325 829486 +383336 856536 +383344 864642 +383358 901497 +383364 750853 +383386 873450 +383397 1.227e+06 +383422 862761 +383436 893806 +383450 856156 +383450 982014 +383453 885878 +383456 915014 +383483 925814 +383483 970169 +383489 1.20773e+06 +383497 816328 +383500 947611 +383517 859417 +383519 972042 +383528 1.20932e+06 +383550 983492 +383553 875675 +383556 985806 +383567 1.21987e+06 +383606 755997 +383606 817375 +383642 1.22523e+06 +383644 987644 +383683 816997 +383700 851806 +383708 976639 +383722 965425 +383756 863447 +383775 880561 +383819 789769 +383819 975372 +383822 872128 +383861 974278 +383903 842942 +383903 1.05118e+06 +383908 933344 +383911 753489 +383914 869311 +383931 1.20801e+06 +383939 956028 +383953 754133 +383964 825589 +383969 1.1301e+06 +383975 943514 +383981 857550 +383981 980117 +383989 825783 +383997 913306 +384000 1.05217e+06 +384017 1.2236e+06 +384028 942536 +384039 961814 +384047 826006 +384069 875856 +384075 853789 +384078 786239 +384078 861100 +384086 899919 +384089 1.21371e+06 +384094 805581 +384094 822947 +384108 877614 +384147 789389 +384147 818442 +384167 958528 +384178 825864 +384192 824453 +384200 756881 +384200 820556 +384222 837339 +384275 899136 +384278 824572 +384292 1.05219e+06 +384314 928408 +384325 820203 +384328 903775 +384333 851697 +384342 895503 +384344 821325 +384364 1.22869e+06 +384369 823772 +384392 891628 +384406 1.22713e+06 +384408 929917 +384417 892742 +384428 814806 +384436 902011 +384456 910056 +384494 788692 +384528 999061 +384531 856703 +384558 755778 +384564 755775 +384597 940006 +384600 932025 +384603 752211 +384603 810853 +384614 900917 +384656 1.23008e+06 +384697 1.01752e+06 +384722 818144 +384731 779969 +384783 826381 +384783 1.07876e+06 +384794 946083 +384797 1.01358e+06 +384806 1.02781e+06 +384808 767783 +384817 943542 +384819 907414 +384819 1.00467e+06 +384819 1.20844e+06 +384825 1.00907e+06 +384850 786253 +384858 918503 +384886 813483 +384889 921742 +384897 766825 +384903 816475 +384903 897931 +384903 904869 +384919 872786 +384925 826903 +384961 1.21408e+06 +384972 949503 +385019 1.22995e+06 +385025 906278 +385033 826472 +385069 962617 +385086 906025 +385089 891406 +385094 818400 +385131 904358 +385158 884375 +385161 902103 +385172 752353 +385172 826978 +385181 987778 +385200 899839 +385208 880047 +385222 772939 +385225 827172 +385247 1.18624e+06 +385250 891333 +385250 985333 +385250 1.2197e+06 +385267 877097 +385314 993083 +385322 935219 +385325 767842 +385333 902869 +385339 899889 +385347 1.05998e+06 +385364 848419 +385364 859286 +385367 826831 +385369 903797 +385375 819325 +385386 903350 +385389 904072 +385400 827286 +385403 765847 +385411 902800 +385417 857678 +385419 902328 +385425 757197 +385433 896122 +385450 1.21739e+06 +385458 1.06925e+06 +385467 773369 +385489 866200 +385492 904925 +385503 827781 +385506 903331 +385531 903094 +385536 895383 +385542 903450 +385556 978333 +385561 864683 +385564 755717 +385569 903817 +385581 910119 +385594 835761 +385611 941911 +385614 898972 +385631 760792 +385672 866283 +385675 773283 +385708 901900 +385722 948789 +385731 828303 +385733 1.09549e+06 +385736 976742 +385753 771558 +385753 785028 +385758 1.22449e+06 +385767 921733 +385789 1.22579e+06 +385806 1.21529e+06 +385817 1.21493e+06 +385831 936944 +385833 901250 +385833 904067 +385869 984108 +385892 1.21302e+06 +385897 901200 +385903 769406 +385903 903367 +385908 822831 +385914 752917 +385922 899111 +385925 853178 +385925 903572 +385925 905869 +385950 905461 +385969 905092 +385992 833189 +386000 771625 +386008 904328 +386039 898072 +386050 1.07982e+06 +386056 894358 +386056 896819 +386067 896075 +386067 1.21266e+06 +386072 903833 +386075 903783 +386083 912189 +386086 771408 +386103 893725 +386106 895269 +386106 1.22868e+06 +386122 904633 +386125 903244 +386131 787992 +386153 873544 +386156 891142 +386156 952675 +386158 838086 +386172 890522 +386172 1.21327e+06 +386175 819819 +386175 903492 +386183 905892 +386194 946806 +386242 758547 +386244 769394 +386269 770733 +386269 889456 +386275 925664 +386283 910575 +386286 903194 +386300 1.1212e+06 +386339 958256 +386350 900928 +386356 756103 +386356 904150 +386367 900256 +386369 773114 +386381 845606 +386389 787742 +386403 921222 +386411 756114 +386411 837444 +386425 903236 +386450 828489 +386478 786717 +386497 900931 +386497 903806 +386514 862611 +386533 943486 +386556 837611 +386556 927797 +386581 772500 +386592 871728 +386608 904225 +386611 964917 +386617 864264 +386636 873094 +386644 807100 +386653 784597 +386653 903758 +386658 1.20925e+06 +386664 867911 +386675 770286 +386689 884856 +386703 899844 +386711 969422 +386722 901697 +386728 902992 +386731 807750 +386753 917694 +386764 1.21335e+06 +386767 843303 +386769 869142 +386772 875286 +386772 1.23134e+06 +386781 1.21175e+06 +386786 1.21225e+06 +386800 930928 +386808 851794 +386819 845900 +386822 1.047e+06 +386825 840658 +386825 901569 +386828 1.12148e+06 +386833 902839 +386833 903078 +386858 903239 +386858 1.21371e+06 +386861 765350 +386864 761719 +386886 883542 +386900 753858 +386900 903425 +386906 902872 +386911 1.21448e+06 +386922 1.22016e+06 +386931 902822 +386942 757739 +386947 902783 +386947 1.20814e+06 +386953 903139 +386967 768481 +386975 882236 +387000 902922 +387008 903497 +387011 903622 +387014 901486 +387019 903169 +387025 903433 +387042 772281 +387042 902817 +387042 914372 +387044 932281 +387058 877600 +387072 765314 +387072 1.2128e+06 +387078 770864 +387083 902928 +387106 902981 +387111 981569 +387131 904297 +387133 777956 +387142 854736 +387142 939911 +387144 903672 +387169 878614 +387175 902656 +387183 902922 +387183 950814 +387192 902603 +387192 944583 +387203 920911 +387208 750764 +387208 829583 +387208 902747 +387236 853694 +387236 899558 +387239 770100 +387253 902967 +387264 903586 +387275 903108 +387292 876817 +387292 898831 +387297 1.20798e+06 +387303 828556 +387306 982278 +387308 880853 +387314 799703 +387317 829978 +387317 900803 +387328 763939 +387358 853800 +387358 903639 +387383 771853 +387394 896711 +387400 903264 +387403 902264 +387422 1.08068e+06 +387425 756047 +387431 948253 +387442 903061 +387456 838450 +387458 786425 +387467 1.05178e+06 +387469 902400 +387475 770833 +387478 850672 +387483 899831 +387494 902856 +387508 774756 +387517 769789 +387522 829369 +387544 903311 +387547 828689 +387553 890953 +387553 950022 +387583 830292 +387583 858081 +387594 874156 +387614 1.20586e+06 +387628 937358 +387647 903136 +387647 950078 +387650 768986 +387650 935564 +387714 903708 +387717 840058 +387722 885025 +387725 772214 +387725 1.12083e+06 +387733 888467 +387742 760767 +387742 873078 +387744 751397 +387744 922569 +387750 951861 +387764 765556 +387775 753103 +387800 895981 +387806 955569 +387817 957383 +387819 771467 +387828 846053 +387833 849017 +387839 774700 +387861 829792 +387864 843697 +387864 897775 +387875 942692 +387878 902158 +387892 903225 +387908 1.21235e+06 +387931 774481 +387933 772719 +387933 902672 +387944 835453 +387956 967356 +387997 1.07719e+06 +388006 858417 +388019 813511 +388019 944525 +388033 769900 +388039 769069 +388042 772050 +388047 770472 +388061 871522 +388069 755917 +388072 753972 +388094 769983 +388097 822025 +388106 906997 +388108 949269 +388114 899531 +388114 908528 +388114 911414 +388119 945317 +388133 827269 +388139 769458 +388158 767500 +388183 771436 +388186 817108 +388186 956889 +388189 769989 +388208 785661 +388214 1.02353e+06 +388214 1.21192e+06 +388250 861700 +388250 984750 +388275 910200 +388278 895400 +388283 1.0797e+06 +388294 900628 +388300 768917 +388303 771967 +388328 769597 +388333 769519 +388336 821383 +388339 1.04821e+06 +388342 887722 +388389 774278 +388389 840964 +388403 976111 +388417 765125 +388422 1.06131e+06 +388428 869914 +388444 821372 +388450 768753 +388461 773067 +388467 919478 +388483 900761 +388517 943436 +388528 991472 +388533 913058 +388536 772597 +388561 806550 +388575 768897 +388589 961089 +388597 1.04917e+06 +388611 864872 +388611 900975 +388683 1.07591e+06 +388689 1.17921e+06 +388697 1.06987e+06 +388703 769214 +388711 874414 +388719 771556 +388747 929114 +388783 870858 +388789 860419 +388792 993264 +388794 823806 +388794 829969 +388803 901111 +388808 773011 +388814 948189 +388844 758275 +388850 769161 +388858 945328 +388875 765122 +388878 900847 +388883 897314 +388889 898453 +388906 901842 +388917 1.21292e+06 +388922 894131 +388933 772219 +388942 774314 +388950 770367 +388950 772119 +388953 988594 +388961 769069 +388964 871867 +388967 1.21076e+06 +388975 768306 +388978 1.01752e+06 +388983 900067 +389008 769158 +389008 865253 +389011 772656 +389017 1.07926e+06 +389028 971167 +389061 958158 +389092 900406 +389103 914481 +389106 1.22609e+06 +389125 754283 +389128 772011 +389144 900858 +389172 972136 +389178 839833 +389181 781947 +389186 772314 +389194 973708 +389206 886614 +389208 768719 +389222 1.11933e+06 +389231 942439 +389233 810961 +389236 755781 +389236 768803 +389250 892689 +389258 798469 +389281 769161 +389292 768619 +389314 898389 +389331 769461 +389339 768969 +389342 771778 +389342 808378 +389350 749064 +389350 1.05016e+06 +389378 764603 +389381 769486 +389381 995603 +389386 749422 +389392 769342 +389400 764953 +389414 769653 +389419 835725 +389431 768925 +389431 769569 +389431 845442 +389433 950983 +389453 769519 +389458 846806 +389458 1.1997e+06 +389467 769314 +389478 758847 +389481 817611 +389486 842800 +389489 834058 +389494 848539 +389517 923339 +389519 765783 +389536 947333 +389558 769458 +389561 903597 +389578 1.11859e+06 +389581 762106 +389592 858903 +389592 989683 +389606 890936 +389636 769911 +389636 934147 +389658 770964 +389667 946167 +389683 874056 +389686 773414 +389686 777358 +389689 1.12323e+06 +389694 773864 +389697 768803 +389700 904314 +389703 769422 +389711 770767 +389711 819144 +389717 952350 +389722 970222 +389736 758053 +389736 927431 +389747 748339 +389775 915047 +389778 770078 +389781 1.22838e+06 +389783 764925 +389786 799497 +389792 949683 +389794 765308 +389794 909806 +389806 749083 +389806 769372 +389806 771006 +389819 749583 +389822 946706 +389833 935683 +389858 1.19162e+06 +389864 819736 +389886 769817 +389886 783589 +389892 870822 +389906 770264 +389908 881625 +389917 748153 +389925 791242 +389939 769108 +389939 802322 +389939 1.05056e+06 +389953 1.10161e+06 +389958 889528 +389972 907383 +389975 819742 +389975 844964 +389981 772886 +389989 846267 +389989 895736 +389992 939533 +390006 747997 +390011 1.21021e+06 +390017 766878 +390017 820489 +390019 879089 +390031 769722 +390036 774008 +390036 876128 +390039 819892 +390044 768758 +390053 877392 +390061 856236 +390061 1.11861e+06 +390067 767794 +390078 838086 +390086 944633 +390089 754661 +390100 1.21422e+06 +390122 897911 +390125 846047 +390131 1.047e+06 +390144 748819 +390150 941983 +390167 846008 +390167 962889 +390169 942814 +390172 927372 +390175 1.22057e+06 +390178 850589 +390178 946167 +390181 918969 +390203 1.20817e+06 +390217 820292 +390217 844400 +390222 946317 +390236 946933 +390242 1.22674e+06 +390250 799358 +390250 998792 +390253 844175 +390253 885697 +390256 770767 +390264 769744 +390272 845850 +390275 820339 +390275 839197 +390278 946556 +390283 842178 +390286 749389 +390286 968311 +390294 895242 +390297 843664 +390303 770728 +390306 975939 +390319 765031 +390331 844519 +390344 843903 +390347 769078 +390347 871658 +390356 845692 +390356 1.04297e+06 +390375 946319 +390381 770933 +390383 804675 +390397 769933 +390397 901406 +390406 946167 +390417 760667 +390428 899517 +390431 1.08552e+06 +390431 1.22915e+06 +390444 953944 +390453 821306 +390483 956778 +390508 747583 +390514 845817 +390517 845342 +390536 765694 +390542 840531 +390561 985361 +390569 849014 +390575 769361 +390594 845475 +390597 948833 +390611 948194 +390619 883797 +390619 887481 +390622 789697 +390633 813953 +390639 1.0855e+06 +390644 1.09181e+06 +390681 830144 +390694 872600 +390694 1.00232e+06 +390703 765456 +390708 898561 +390714 845322 +390719 844728 +390719 852519 +390719 915700 +390722 897272 +390725 937169 +390750 844472 +390756 770022 +390758 953931 +390761 769581 +390769 841769 +390775 846031 +390794 770733 +390825 748242 +390833 782183 +390836 845086 +390839 767006 +390839 771531 +390892 893906 +390908 848500 +390911 944153 +390914 844958 +390917 1.04872e+06 +390919 768181 +390919 1.08448e+06 +390925 845475 +390928 846128 +390928 898039 +390936 1.11132e+06 +390953 874058 +390956 1.21551e+06 +390964 796811 +390992 768486 +390997 945783 +391008 1.20952e+06 +391011 747181 +391042 958583 +391064 844789 +391069 764853 +391072 765714 +391081 769981 +391094 876564 +391097 944444 +391097 950875 +391103 1.0835e+06 +391111 769328 +391111 967058 +391128 844728 +391133 755422 +391133 850881 +391136 826114 +391142 946272 +391156 775639 +391175 900442 +391178 772528 +391181 755592 +391200 885433 +391200 903283 +391211 846064 +391211 851314 +391219 977064 +391222 1.04917e+06 +391231 931967 +391233 825331 +391244 843617 +391247 852892 +391250 869794 +391253 1.11818e+06 +391278 1.2155e+06 +391297 898194 +391300 945619 +391308 894919 +391308 1.23165e+06 +391317 755253 +391319 755328 +391325 941983 +391331 884719 +391333 1.00863e+06 +391342 939825 +391350 858133 +391361 959514 +391361 1.03469e+06 +391367 777150 +391367 847092 +391369 766986 +391394 765481 +391397 771756 +391406 1.21616e+06 +391417 949383 +391433 772017 +391444 891086 +391450 843744 +391453 771444 +391458 774172 +391458 926836 +391458 1.2159e+06 +391489 794983 +391489 1.21666e+06 +391492 767756 +391503 1.23207e+06 +391517 779825 +391522 800406 +391525 847481 +391531 770672 +391531 846372 +391533 746933 +391542 945467 +391547 1.22148e+06 +391553 1.11818e+06 +391567 906178 +391569 846133 +391581 755247 +391589 1.08728e+06 +391592 843072 +391597 825269 +391597 1.21748e+06 +391611 803522 +391611 894936 +391617 847492 +391619 844569 +391625 766250 +391631 871992 +391639 1.19766e+06 +391642 894636 +391653 865264 +391667 765083 +391667 907808 +391697 918828 +391744 901431 +391753 842944 +391758 855731 +391772 767433 +391783 873936 +391792 987889 +391831 766406 +391831 945925 +391836 965714 +391847 938797 +391856 781636 +391864 873017 +391872 844464 +391872 844881 +391889 955694 +391908 843636 +391908 990283 +391911 1.06817e+06 +391928 844006 +391950 946819 +391958 952081 +391964 755492 +392008 804044 +392014 859214 +392019 963047 +392022 836117 +392025 944922 +392039 945544 +392047 760517 +392047 844281 +392053 843947 +392058 894044 +392089 760669 +392094 810519 +392094 935175 +392103 921378 +392106 843672 +392122 1.11019e+06 +392128 941225 +392133 970053 +392144 1.22008e+06 +392150 844556 +392153 953125 +392172 766375 +392181 930689 +392183 845508 +392192 1.2106e+06 +392214 944511 +392217 817975 +392231 845869 +392272 928464 +392272 1.11053e+06 +392275 822025 +392281 843542 +392283 766167 +392300 1.21076e+06 +392311 844658 +392319 843783 +392336 845458 +392339 866250 +392342 922806 +392347 992978 +392353 816314 +392369 850947 +392378 946958 +392378 1.20026e+06 +392403 768397 +392417 748156 +392419 764483 +392425 916453 +392458 750356 +392464 824786 +392464 845836 +392475 1.14888e+06 +392478 881633 +392478 957061 +392483 888622 +392486 873819 +392486 949000 +392506 765208 +392508 803125 +392508 1.06292e+06 +392519 844703 +392544 767003 +392561 844181 +392564 893481 +392567 802925 +392581 758375 +392617 1.21015e+06 +392619 848200 +392631 886297 +392633 803200 +392636 816294 +392639 1.03692e+06 +392667 815617 +392672 767986 +392681 844133 +392681 845231 +392683 1.11636e+06 +392692 803125 +392708 938342 +392719 767322 +392725 776369 +392725 915744 +392728 793647 +392736 882436 +392739 815731 +392739 977717 +392775 745750 +392786 939767 +392797 898817 +392806 803447 +392850 809686 +392864 802564 +392867 867625 +392869 844853 +392883 772042 +392886 803061 +392889 778600 +392903 766125 +392906 756347 +392931 839889 +392931 1.03067e+06 +392950 778608 +392958 859508 +392964 807772 +392964 1.19775e+06 +392989 968306 +392992 879925 +392997 756050 +392997 842633 +393000 852222 +393011 892850 +393022 904069 +393025 936772 +393039 857714 +393047 925125 +393061 1.02269e+06 +393078 1.23798e+06 +393092 764753 +393092 772975 +393108 914883 +393111 949222 +393122 846506 +393142 745253 +393142 776281 +393175 745950 +393183 843689 +393194 884528 +393194 895719 +393200 765158 +393222 952667 +393233 777531 +393236 836911 +393267 1.10964e+06 +393269 815486 +393278 745039 +393281 1.20182e+06 +393292 821014 +393331 829825 +393342 764397 +393356 878819 +393372 854836 +393383 764800 +393392 942258 +393397 852044 +393403 744778 +393406 767225 +393408 800192 +393419 787569 +393419 911950 +393433 954600 +393436 902125 +393450 835531 +393483 796711 +393483 974458 +393489 1.10851e+06 +393508 866669 +393508 1.0171e+06 +393519 833828 +393522 1.12576e+06 +393544 841272 +393567 978408 +393575 1.00441e+06 +393578 780403 +393583 934956 +393597 1.11586e+06 +393600 843100 +393603 1.04596e+06 +393633 765208 +393639 1.21692e+06 +393642 744233 +393647 998417 +393672 767956 +393678 943619 +393689 821325 +393689 1.07032e+06 +393703 947822 +393706 909050 +393708 842133 +393714 862611 +393722 1.04856e+06 +393736 769681 +393739 803486 +393742 767228 +393761 771550 +393772 765400 +393794 812586 +393817 752203 +393869 945808 +393878 889606 +393889 890800 +393914 876936 +393917 797486 +393931 793733 +393939 964133 +393942 765239 +393950 865625 +393956 803003 +393958 1.01052e+06 +393978 821294 +393983 793819 +394014 766022 +394022 1.07211e+06 +394036 769506 +394039 758678 +394050 1.14778e+06 +394064 887900 +394097 1.23354e+06 +394100 743650 +394111 949014 +394119 747428 +394125 764639 +394125 1.21712e+06 +394142 774108 +394153 814550 +394167 953333 +394175 766214 +394183 924381 +394186 775039 +394194 767806 +394200 894556 +394228 765850 +394231 850128 +394233 931303 +394239 928014 +394272 752344 +394278 864283 +394283 744961 +394300 778044 +394311 916750 +394344 929381 +394347 845369 +394356 1.21537e+06 +394369 904031 +394381 992647 +394383 942039 +394389 986944 +394406 925450 +394408 789742 +394408 885947 +394433 896517 +394453 838286 +394456 795467 +394458 1.23804e+06 +394464 897808 +394486 764181 +394489 910514 +394494 757167 +394522 747281 +394561 779642 +394561 981058 +394564 879961 +394575 777492 +394586 822319 +394619 821819 +394625 802183 +394650 874500 +394653 957361 +394667 874139 +394694 762047 +394694 768297 +394717 796836 +394728 765233 +394733 827394 +394736 814792 +394736 922097 +394736 1.18776e+06 +394739 829108 +394783 745756 +394800 845519 +394808 844578 +394808 920011 +394811 766442 +394817 1.06038e+06 +394825 1.11495e+06 +394831 883728 +394839 903714 +394847 820792 +394850 801428 +394853 790450 +394861 750261 +394861 773522 +394886 836369 +394889 961697 +394919 872672 +394922 809039 +394950 798153 +394961 881761 +394967 1.21551e+06 +395008 851864 +395008 897678 +395022 985464 +395031 787689 +395031 820847 +395036 801669 +395050 946331 +395069 847453 +395081 915286 +395106 797986 +395114 821636 +395125 984333 +395128 802492 +395136 749250 +395139 1.21555e+06 +395144 764114 +395147 867939 +395161 843764 +395203 890489 +395206 744861 +395208 861678 +395214 857769 +395219 947697 +395222 954006 +395225 887536 +395236 871250 +395244 1.22192e+06 +395250 1.1159e+06 +395258 871125 +395286 746483 +395297 801169 +395297 840867 +395297 1.19813e+06 +395306 790178 +395308 758078 +395308 803436 +395331 773150 +395331 880222 +395347 1.07782e+06 +395350 1.19752e+06 +395358 763486 +395367 871058 +395381 897631 +395392 863692 +395400 824072 +395419 771083 +395425 1.10735e+06 +395464 750253 +395469 1.11455e+06 +395478 816397 +395483 817931 +395483 943297 +395486 1.07656e+06 +395489 892944 +395492 760919 +395500 860797 +395506 1.07324e+06 +395514 1.10387e+06 +395522 797981 +395522 842333 +395522 940406 +395528 879394 +395539 832569 +395581 801819 +395581 860953 +395589 843042 +395592 742436 +395600 760717 +395608 753628 +395631 951214 +395642 809961 +395656 896572 +395656 944478 +395658 789806 +395672 972783 +395675 848161 +395689 771772 +395708 976622 +395717 754675 +395728 1.07536e+06 +395731 742319 +395744 1.06097e+06 +395753 769961 +395778 755892 +395778 822378 +395853 914008 +395856 902519 +395864 1.0643e+06 +395869 937958 +395886 894144 +395900 789500 +395911 973986 +395917 895803 +395917 897464 +395917 899528 +395928 788336 +395950 751706 +395956 748819 +395994 886078 +395994 1.1081e+06 +396000 759417 +396006 778208 +396006 829461 +396011 1.05032e+06 +396019 748431 +396025 820883 +396028 809369 +396031 743406 +396036 933422 +396044 764781 +396047 761156 +396047 768503 +396047 822117 +396047 828292 +396050 833956 +396067 758336 +396078 908050 +396089 777047 +396092 854464 +396108 945992 +396111 876961 +396117 799047 +396128 863742 +396133 1.05016e+06 +396144 787753 +396172 1.0495e+06 +396203 900439 +396206 777592 +396228 872833 +396236 774111 +396247 890189 +396264 1.11439e+06 +396283 1.05049e+06 +396289 902189 +396294 799561 +396297 904561 +396300 1.11634e+06 +396314 1.06522e+06 +396325 787847 +396333 1.05317e+06 +396344 799700 +396356 840708 +396356 849311 +396364 748028 +396375 1.06061e+06 +396400 891928 +396403 852622 +396403 1.06374e+06 +396414 787747 +396417 777203 +396417 1.04959e+06 +396428 741808 +396428 842867 +396442 775861 +396444 808578 +396444 868647 +396456 887381 +396458 799875 +396469 1.05025e+06 +396469 1.06951e+06 +396478 845272 +396478 1.04987e+06 +396486 818533 +396492 818622 +396494 827444 +396511 776911 +396514 753286 +396525 788972 +396528 787628 +396528 837869 +396533 755169 +396536 835639 +396536 917344 +396539 880261 +396547 775731 +396553 1.06828e+06 +396572 893894 +396578 771747 +396581 789286 +396581 837350 +396583 799867 +396600 750925 +396606 955261 +396611 768853 +396617 995700 +396619 741656 +396619 755667 +396636 794056 +396669 757272 +396697 742322 +396700 861314 +396714 981533 +396717 842528 +396733 856986 +396756 898467 +396761 897044 +396764 1.2024e+06 +396794 844292 +396803 874175 +396819 966594 +396831 776964 +396836 757500 +396842 1.10854e+06 +396847 839297 +396847 883064 +396861 749956 +396867 755847 +396883 1.23482e+06 +396892 865225 +396894 841689 +396911 967472 +396928 777450 +396928 787931 +396939 920428 +396942 910389 +396953 742592 +396956 788800 +396978 760631 +396989 781800 +397011 891231 +397017 824269 +397028 751122 +397044 773272 +397047 1.05081e+06 +397056 964167 +397061 842194 +397061 1.05697e+06 +397069 912067 +397083 913583 +397086 902281 +397089 907244 +397103 1.11836e+06 +397111 754706 +397119 888044 +397119 929481 +397128 889969 +397136 756097 +397136 825994 +397147 884722 +397156 756411 +397156 829531 +397156 886325 +397161 838778 +397183 829869 +397194 832653 +397211 822989 +397219 858892 +397253 899106 +397269 763269 +397278 764522 +397286 1.21836e+06 +397294 754683 +397294 1.04831e+06 +397322 748814 +397328 751319 +397339 902289 +397367 775353 +397378 767017 +397383 855719 +397383 1.04323e+06 +397389 798989 +397392 752244 +397392 755983 +397392 1.04984e+06 +397419 922583 +397422 924725 +397425 1.05013e+06 +397428 1.22012e+06 +397436 775542 +397436 939981 +397442 838086 +397444 770883 +397444 845322 +397453 843850 +397458 755469 +397469 925639 +397475 753108 +397475 1.22195e+06 +397478 815167 +397500 755000 +397508 944964 +397508 1.01532e+06 +397519 905350 +397528 790811 +397531 742233 +397531 1.05064e+06 +397536 765917 +397556 948722 +397556 1.05221e+06 +397558 775781 +397561 993236 +397572 896536 +397575 741067 +397589 841917 +397589 1.04427e+06 +397592 949494 +397606 865264 +397611 799817 +397611 868119 +397622 938042 +397625 811156 +397625 872292 +397656 808714 +397658 903989 +397661 755097 +397661 892617 +397661 1.05077e+06 +397669 990314 +397675 896806 +397683 861581 +397686 766800 +397689 820922 +397714 888742 +397761 859572 +397769 896792 +397792 987847 +397811 769636 +397817 928900 +397819 860503 +397831 950897 +397842 749925 +397844 930733 +397850 857694 +397853 759792 +397872 982097 +397894 769983 +397903 777281 +397911 749294 +397914 741956 +397928 873708 +397931 767306 +397931 1.23247e+06 +397942 915231 +397944 751492 +397953 935522 +397956 855264 +397969 885917 +397972 843114 +397975 842536 +397986 879858 +397989 827011 +397992 882831 +397994 884622 +398006 754600 +398017 896436 +398022 750644 +398022 862672 +398028 828064 +398028 1.05087e+06 +398031 798081 +398036 876736 +398058 920414 +398064 838869 +398067 1.01042e+06 +398069 822972 +398072 770117 +398072 820714 +398078 874950 +398089 755492 +398092 754869 +398094 893972 +398097 825222 +398097 863225 +398106 1.20468e+06 +398114 749833 +398119 771375 +398122 852089 +398125 851717 +398128 793569 +398136 790250 +398161 1.11855e+06 +398169 751556 +398169 912422 +398181 970506 +398183 1.00528e+06 +398192 754189 +398200 750067 +398208 840194 +398219 758278 +398222 1.04933e+06 +398231 787183 +398242 749981 +398244 976322 +398247 797547 +398253 836344 +398267 750158 +398269 805667 +398275 754147 +398278 779036 +398289 848903 +398303 752408 +398308 772314 +398311 905594 +398314 757578 +398339 998911 +398342 960639 +398367 844114 +398367 1.04959e+06 +398367 1.05037e+06 +398381 749653 +398381 751531 +398383 854389 +398386 860253 +398394 750739 +398403 825461 +398403 889547 +398411 966469 +398428 828047 +398433 863978 +398439 750231 +398439 841247 +398442 775586 +398442 895394 +398453 826008 +398461 845397 +398467 757119 +398467 799000 +398481 861725 +398483 810369 +398489 868022 +398494 753561 +398514 1.04998e+06 +398522 750683 +398525 894086 +398525 955356 +398528 894633 +398536 831831 +398536 892419 +398539 890839 +398539 891661 +398556 767078 +398556 767689 +398569 847933 +398583 748033 +398597 866425 +398600 753447 +398600 808156 +398611 819069 +398631 790583 +398636 770561 +398639 864669 +398647 750556 +398653 776128 +398658 751792 +398664 750286 +398675 750950 +398681 1.04971e+06 +398692 753828 +398728 899211 +398744 768661 +398769 870444 +398772 750650 +398772 797022 +398775 843022 +398781 751211 +398781 839369 +398783 750931 +398783 799250 +398789 829508 +398811 753242 +398814 830931 +398831 767108 +398842 827536 +398842 874086 +398850 906558 +398856 1.04987e+06 +398864 769850 +398878 900078 +398892 840267 +398892 943617 +398900 754758 +398900 861572 +398906 841989 +398906 887281 +398908 750733 +398908 752842 +398911 749222 +398914 750381 +398917 751167 +398917 753000 +398919 855769 +398922 747025 +398922 997067 +398925 797472 +398936 896047 +398939 968792 +398956 876519 +398964 801794 +398964 824203 +398967 799747 +398969 761639 +398975 830869 +398978 843064 +398992 820064 +398994 766406 +399000 752894 +399000 825342 +399008 750850 +399017 753289 +399019 753503 +399019 846750 +399022 958006 +399033 844856 +399044 844017 +399064 752719 +399089 766372 +399097 753239 +399097 878211 +399111 851617 +399117 752775 +399122 752542 +399136 868011 +399144 939619 +399147 882733 +399161 765847 +399167 753881 +399175 797175 +399181 750717 +399183 752594 +399203 807433 +399206 789581 +399206 1.05086e+06 +399214 752883 +399219 885719 +399231 772989 +399242 838089 +399258 751200 +399267 740775 +399267 741342 +399278 1.22178e+06 +399283 752742 +399286 749442 +399289 853703 +399292 752967 +399303 772483 +399322 858481 +399325 779992 +399325 889511 +399328 890619 +399336 824725 +399356 914097 +399358 741714 +399361 840256 +399375 776614 +399381 752722 +399386 888656 +399389 741933 +399389 752558 +399403 820133 +399417 948300 +399419 741503 +399419 742047 +399425 745444 +399442 740733 +399444 899372 +399453 799958 +399456 752617 +399472 750669 +399478 810575 +399481 743611 +399486 741375 +399486 874597 +399492 759739 +399508 862619 +399511 902122 +399522 751642 +399525 767517 +399531 1.119e+06 +399536 741983 +399542 895486 +399542 1.12119e+06 +399547 759972 +399547 828122 +399556 849175 +399556 860139 +399569 858053 +399583 841722 +399586 759197 +399594 825958 +399606 756058 +399608 897239 +399611 829989 +399614 1.0551e+06 +399617 824914 +399625 746792 +399625 767281 +399625 843281 +399633 752506 +399667 758000 +399667 828856 +399675 872775 +399678 847092 +399681 753417 +399686 891622 +399689 829378 +399697 815367 +399700 812994 +399703 740692 +399708 807508 +399719 746833 +399719 765203 +399742 758203 +399747 938008 +399756 1.11784e+06 +399778 796147 +399778 1.05131e+06 +399781 767333 +399783 861181 +399786 820036 +399814 740667 +399819 888228 +399825 772497 +399831 758242 +399831 761844 +399836 768228 +399853 1.0482e+06 +399861 882589 +399867 830617 +399869 951447 +399872 907633 +399881 807317 +399881 811767 +399928 747881 +399936 817342 +399936 1.05089e+06 +399947 844081 +399956 826744 +399958 866200 +399964 1.11842e+06 +399967 749931 +399967 795861 +399969 767069 +399975 857467 +399978 763544 +400017 768506 +400025 799983 +400064 757036 +400069 881581 +400083 752608 +400083 790783 +400089 771158 +400103 799011 +400108 892822 +400114 750153 +400114 783736 +400144 743117 +400150 1.0527e+06 +400158 741453 +400161 810728 +400175 904242 +400178 795897 +400181 807344 +400186 785042 +400192 828794 +400208 980697 +400214 1.22099e+06 +400217 767283 +400228 824447 +400242 798908 +400247 801003 +400250 880733 +400272 808153 +400278 748694 +400278 885733 +400289 756211 +400292 810392 +400297 746189 +400314 909606 +400322 859125 +400331 796617 +400333 831583 +400336 765047 +400347 879581 +400361 746183 +400361 755142 +400364 889569 +400375 1.07912e+06 +400378 763058 +400392 764311 +400392 910692 +400394 842033 +400411 868744 +400419 754767 +400422 876386 +400428 914975 +400444 1.11731e+06 +400456 860086 +400456 878306 +400467 941356 +400469 796547 +400481 901550 +400483 864692 +400492 1.01532e+06 +400497 849397 +400503 1.05049e+06 +400506 749539 +400506 775206 +400514 874333 +400514 945239 +400525 806286 +400531 1.11673e+06 +400547 882517 +400553 840261 +400569 765525 +400581 824014 +400589 1.06388e+06 +400608 956017 +400614 876381 +400631 767042 +400639 807211 +400650 877019 +400653 749194 +400653 800239 +400675 745311 +400681 749011 +400681 825197 +400683 858483 +400692 807839 +400697 753167 +400706 807611 +400711 748653 +400717 740547 +400736 1.04642e+06 +400756 798983 +400758 1.02223e+06 +400764 829439 +400789 936164 +400792 753019 +400794 798658 +400811 750900 +400819 830253 +400831 897381 +400833 798483 +400847 1.04812e+06 +400847 1.04939e+06 +400861 918131 +400861 1.05939e+06 +400869 797508 +400875 805706 +400875 870597 +400878 1.0881e+06 +400883 912836 +400886 829167 +400889 985192 +400911 740483 +400911 795878 +400931 830181 +400942 759117 +400953 876475 +400958 751256 +400958 807247 +400961 989522 +400975 993617 +400978 742181 +400992 1.04937e+06 +401003 795872 +401003 798408 +401003 895908 +401006 748522 +401011 800675 +401017 760856 +401028 846331 +401036 798694 +401053 856803 +401072 808414 +401075 832675 +401078 740569 +401083 837525 +401083 961542 +401083 1.04519e+06 +401092 910175 +401097 765036 +401100 867719 +401106 882072 +401108 767161 +401108 770353 +401119 800175 +401125 855969 +401125 1.04936e+06 +401131 872625 +401139 878731 +401139 879561 +401150 1.11654e+06 +401161 877783 +401164 882433 +401167 800086 +401172 821194 +401172 843539 +401178 804106 +401183 771903 +401189 788183 +401203 1.23822e+06 +401211 887453 +401211 905631 +401214 753403 +401214 820108 +401222 886453 +401222 966622 +401222 1.02725e+06 +401236 876533 +401239 860133 +401244 798800 +401244 876300 +401250 798667 +401250 916250 +401261 740497 +401261 829292 +401292 798683 +401292 994550 +401300 765708 +401303 755153 +401303 1.11578e+06 +401311 952314 +401314 750678 +401319 740350 +401322 844308 +401350 862206 +401364 747292 +401372 971803 +401375 998292 +401378 798983 +401392 748150 +401394 966589 +401408 977225 +401411 806883 +401417 873947 +401447 842425 +401461 747122 +401469 789122 +401483 798881 +401483 893647 +401489 1.02962e+06 +401494 810664 +401497 754022 +401497 771286 +401500 742139 +401503 740314 +401511 762514 +401511 799078 +401519 749169 +401528 766031 +401533 740286 +401536 826853 +401536 889644 +401539 797414 +401544 752219 +401544 807106 +401567 758331 +401567 762025 +401572 760508 +401572 763072 +401597 790667 +401606 1.03214e+06 +401614 790292 +401633 763953 +401633 1.10402e+06 +401639 959447 +401653 1.1161e+06 +401664 975856 +401667 807000 +401669 749181 +401672 1.05101e+06 +401675 921725 +401697 805939 +401708 740278 +401719 849814 +401733 798578 +401736 802378 +401736 854942 +401742 751072 +401744 749231 +401756 1.01012e+06 +401758 860217 +401767 755481 +401778 745839 +401783 740222 +401783 751289 +401786 834356 +401786 1.22235e+06 +401794 1.18472e+06 +401797 761792 +401808 754294 +401825 806914 +401831 798244 +401842 755383 +401856 754519 +401872 767303 +401878 851275 +401881 869039 +401889 852042 +401906 747028 +401917 852689 +401922 740164 +401933 853864 +401933 863606 +401944 1.10061e+06 +401947 925831 +401950 779833 +401950 866672 +401953 884042 +401964 762014 +401964 807753 +401989 754767 +401994 848053 +402000 740283 +402014 771892 +402017 980675 +402019 848092 +402019 1.00625e+06 +402022 740125 +402022 896981 +402022 931250 +402031 799264 +402053 742142 +402056 805569 +402067 751000 +402078 750731 +402078 799472 +402089 789839 +402097 797672 +402106 812664 +402108 752786 +402108 767914 +402114 761236 +402114 885061 +402144 846369 +402150 750111 +402150 1.04822e+06 +402153 782447 +402153 860264 +402169 747433 +402178 945381 +402186 808731 +402192 796097 +402200 744736 +402203 740125 +402203 889619 +402225 844844 +402228 857789 +402231 835575 +402233 769539 +402247 1.05271e+06 +402264 806517 +402269 789367 +402275 903594 +402297 1.00838e+06 +402300 909500 +402306 1.04072e+06 +402314 756344 +402319 927083 +402322 768850 +402331 761375 +402333 740161 +402333 910625 +402339 1.11658e+06 +402344 1.00417e+06 +402353 768417 +402361 740011 +402389 891231 +402394 756514 +402397 769203 +402397 788353 +402403 795769 +402411 760567 +402411 768944 +402414 752842 +402417 881842 +402419 743017 +402428 778933 +402431 740011 +402431 792378 +402433 886425 +402436 788492 +402450 755956 +402453 756500 +402456 748464 +402464 802117 +402469 867250 +402472 796775 +402483 996331 +402497 788492 +402503 1.03799e+06 +402525 756778 +402561 754642 +402589 768322 +402589 1.03623e+06 +402594 892333 +402600 742742 +402625 801875 +402628 769142 +402628 856758 +402639 744917 +402644 758044 +402647 806264 +402653 767086 +402681 967467 +402686 929531 +402692 798900 +402694 745236 +402694 857281 +402700 873867 +402708 798994 +402708 807817 +402719 806097 +402719 818597 +402722 816061 +402728 809969 +402736 764064 +402736 768847 +402750 769158 +402750 1.06958e+06 +402753 768483 +402753 817511 +402761 748494 +402769 858419 +402783 795450 +402794 753875 +402794 865108 +402808 742517 +402819 1.00165e+06 +402819 1.04777e+06 +402822 860411 +402842 841556 +402858 759847 +402858 766506 +402872 788897 +402883 752094 +402883 872939 +402892 850289 +402903 740181 +402908 788692 +402911 795472 +402917 793894 +402917 909189 +402922 798819 +402942 872489 +402942 904278 +402961 740514 +402967 784500 +402969 1.11694e+06 +402972 743586 +402986 830681 +402986 894850 +402989 751814 +402989 788925 +402992 839689 +402994 1.09988e+06 +403000 900608 +403008 852419 +403014 795392 +403031 969886 +403042 739928 +403042 741008 +403042 999000 +403044 826964 +403050 878006 +403056 896028 +403058 880211 +403064 1.21231e+06 +403078 759658 +403083 881558 +403083 1.05081e+06 +403089 765936 +403106 759397 +403106 789389 +403111 783244 +403117 753256 +403119 839158 +403133 889736 +403139 855006 +403144 891697 +403147 883500 +403156 798314 +403161 745142 +403172 746203 +403181 740156 +403200 756106 +403211 793797 +403217 806100 +403219 753283 +403231 793128 +403244 797014 +403247 798925 +403247 805778 +403253 809014 +403272 760114 +403275 805961 +403278 906069 +403281 758911 +403281 796156 +403283 747911 +403289 796414 +403294 759656 +403294 765156 +403294 1.04855e+06 +403300 760808 +403303 739819 +403325 984483 +403336 756378 +403336 759478 +403353 820069 +403356 759272 +403358 783911 +403358 798700 +403367 740475 +403367 754694 +403369 1.04912e+06 +403372 764758 +403375 759800 +403375 797136 +403386 856444 +403386 953931 +403392 767258 +403403 853508 +403408 764117 +403433 1.1172e+06 +403444 866653 +403453 756333 +403456 763903 +403461 742883 +403461 948722 +403469 925689 +403478 798644 +403486 746594 +403486 788839 +403489 851500 +403489 1.04701e+06 +403494 762136 +403506 798864 +403514 843739 +403514 903244 +403517 761347 +403519 887642 +403525 744406 +403539 753053 +403553 800497 +403561 801103 +403583 814344 +403592 914344 +403606 740386 +403611 837597 +403614 739744 +403617 761844 +403642 749517 +403642 1.11738e+06 +403647 800225 +403650 804142 +403658 749433 +403667 961958 +403672 769314 +403672 787917 +403678 810056 +403697 806342 +403706 799750 +403708 802350 +403717 752019 +403719 739994 +403719 752931 +403722 979711 +403725 895472 +403733 756294 +403742 867689 +403753 807039 +403756 823972 +403764 1.04692e+06 +403767 744250 +403769 1.11795e+06 +403772 1.05521e+06 +403781 939367 +403789 745469 +403792 876686 +403794 860886 +403803 790756 +403814 798600 +403817 824925 +403819 803931 +403831 798067 +403844 778825 +403856 797592 +403858 1.2228e+06 +403875 1.04561e+06 +403881 759183 +403886 786725 +403886 854994 +403908 754925 +403908 798103 +403917 743989 +403917 1.1185e+06 +403922 799003 +403922 800911 +403928 958386 +403931 813467 +403931 843761 +403931 901547 +403933 813339 +403933 824858 +403936 779414 +403936 797864 +403936 969225 +403939 799122 +403944 841728 +403947 814072 +403956 798389 +403958 800333 +403958 810850 +403964 913389 +403969 791519 +403969 888706 +403972 913847 +403978 1.05074e+06 +403981 770233 +403983 798900 +403986 794222 +403989 798411 +403997 746347 +404008 935803 +404019 835453 +404022 755875 +404031 797783 +404036 739919 +404058 798253 +404058 799122 +404064 755022 +404075 896428 +404078 740347 +404078 749786 +404086 759219 +404086 798392 +404086 800836 +404089 829556 +404092 925675 +404106 753786 +404125 798794 +404128 847764 +404131 795706 +404142 790203 +404142 799881 +404142 822411 +404147 742300 +404147 743658 +404153 856506 +404156 741914 +404164 1.20652e+06 +404167 868750 +404169 865947 +404172 798653 +404175 862714 +404183 1.01371e+06 +404189 805897 +404197 798503 +404203 917194 +404208 745611 +404208 894144 +404233 784342 +404233 1.04709e+06 +404236 798831 +404256 800942 +404258 786203 +404258 869081 +404258 897792 +404264 832969 +404264 907925 +404267 885261 +404272 783892 +404272 861256 +404311 792611 +404317 981056 +404331 742000 +404333 807719 +404336 893131 +404339 830739 +404344 800825 +404344 849778 +404347 892178 +404350 800664 +404369 843797 +404378 813733 +404383 798433 +404400 816992 +404403 953775 +404403 993694 +404406 799961 +404417 741303 +404417 753419 +404417 798822 +404456 950658 +404461 800678 +404464 741786 +404464 743864 +404469 759667 +404483 1.22297e+06 +404503 831886 +404511 853700 +404514 743083 +404533 1.11777e+06 +404539 758183 +404556 1.09528e+06 +404567 742469 +404578 921711 +404592 743614 +404592 906717 +404592 963772 +404597 785919 +404597 795233 +404603 880953 +404608 799511 +404614 836700 +404642 806011 +404650 878964 +404656 800658 +404672 876683 +404678 841806 +404681 769322 +404700 753208 +404711 838928 +404742 957333 +404756 854944 +404769 930031 +404772 1.09586e+06 +404775 1.04901e+06 +404778 742911 +404781 785411 +404781 859667 +404783 991264 +404792 792000 +404797 846283 +404797 856278 +404800 799786 +404803 863947 +404814 789189 +404814 969603 +404819 757581 +404822 785519 +404842 889936 +404847 780106 +404850 787250 +404850 1.06831e+06 +404861 744522 +404864 794517 +404864 861336 +404872 856131 +404875 944108 +404897 814458 +404897 1.11938e+06 +404906 870964 +404914 799050 +404919 1.07257e+06 +404933 798608 +404936 843147 +404944 896517 +404950 819847 +404967 806069 +404986 989475 +404992 743994 +405006 828936 +405008 759703 +405008 800678 +405031 786306 +405033 757017 +405042 799492 +405064 798433 +405067 742658 +405067 837481 +405083 858256 +405083 868417 +405100 800947 +405108 756033 +405114 753908 +405122 748597 +405122 1.11474e+06 +405142 889906 +405153 1.07546e+06 +405158 755556 +405169 1.01643e+06 +405183 801669 +405186 783950 +405194 808842 +405197 872478 +405206 814742 +405208 925278 +405211 873783 +405217 980550 +405219 1.11938e+06 +405222 800344 +405247 1.11863e+06 +405261 750619 +405267 996333 +405269 975956 +405275 894925 +405289 794617 +405294 891772 +405303 1.04711e+06 +405308 1.12298e+06 +405317 801692 +405322 914147 +405344 835206 +405364 801847 +405369 893575 +405394 754972 +405394 769611 +405408 745881 +405417 797994 +405431 743636 +405433 787881 +405433 791625 +405489 768122 +405489 784294 +405489 845703 +405492 828275 +405500 913847 +405508 948192 +405511 801931 +405528 905061 +405531 797575 +405533 745319 +405539 852775 +405544 819181 +405544 1.23182e+06 +405556 759822 +405561 908658 +405575 828625 +405581 900350 +405589 791514 +405622 1.11929e+06 +405631 802086 +405639 888989 +405644 871069 +405647 878931 +405667 767008 +405669 886164 +405675 882478 +405675 896406 +405678 841936 +405683 745389 +405686 750950 +405694 746333 +405694 774031 +405697 773972 +405697 797650 +405717 807267 +405719 857692 +405725 744931 +405725 898133 +405728 810858 +405733 766917 +405736 802358 +405742 746103 +405747 769894 +405764 1.24263e+06 +405772 742286 +405789 861903 +405792 744119 +405794 753411 +405800 797669 +405814 795667 +405825 1.04731e+06 +405833 909692 +405844 1.02302e+06 +405853 1.05084e+06 +405861 795317 +405861 983881 +405867 1.22391e+06 +405875 866750 +405883 736583 +405883 824250 +405886 831286 +405889 737294 +405892 744722 +405892 765528 +405892 802253 +405900 985058 +405903 998606 +405917 1.11883e+06 +405942 751947 +405947 815269 +405961 795558 +405969 880381 +405981 795614 +405983 760936 +405983 1.24156e+06 +406000 1.12464e+06 +406006 839753 +406011 813614 +406014 753956 +406014 797600 +406028 787089 +406028 795650 +406028 806492 +406028 868672 +406033 783250 +406042 736558 +406044 956575 +406050 777258 +406056 978589 +406058 889872 +406081 742781 +406081 797414 +406086 865400 +406097 1.11938e+06 +406111 1.11899e+06 +406114 798372 +406117 767189 +406128 894592 +406131 805631 +406150 896222 +406156 737300 +406167 873208 +406172 855047 +406175 896003 +406183 806044 +406186 805775 +406189 980969 +406197 1.11809e+06 +406200 825108 +406200 966289 +406211 904619 +406211 986572 +406214 791528 +406219 742450 +406225 808381 +406228 737247 +406228 939339 +406239 737089 +406256 1.03207e+06 +406264 753461 +406267 761931 +406283 763875 +406283 876961 +406297 892747 +406297 913150 +406300 744278 +406300 893325 +406300 1.00515e+06 +406306 761714 +406308 929244 +406319 737131 +406336 744078 +406350 802283 +406353 822333 +406356 1.04755e+06 +406358 782961 +406361 736819 +406361 911672 +406364 829692 +406367 791444 +406367 802403 +406369 975850 +406378 744514 +406386 736406 +406386 775689 +406386 1.11938e+06 +406403 917428 +406408 743111 +406408 743839 +406408 748817 +406411 1.02626e+06 +406414 887833 +406417 748364 +406419 736700 +406422 798511 +406425 742858 +406428 787731 +406428 915644 +406431 736961 +406431 775808 +406431 1.1128e+06 +406442 974500 +406444 804164 +406458 805981 +406461 1.11497e+06 +406469 836097 +406472 895911 +406472 971131 +406500 814522 +406503 896519 +406511 812992 +406531 815811 +406536 972858 +406539 750869 +406542 841508 +406547 736722 +406547 754750 +406547 761011 +406553 743903 +406572 961861 +406575 735836 +406578 849519 +406583 743000 +406586 736417 +406589 743478 +406594 743233 +406597 754772 +406597 802394 +406600 1.11996e+06 +406608 862419 +406625 787803 +406628 735519 +406631 868694 +406639 742111 +406639 775961 +406642 737089 +406642 742636 +406642 904347 +406644 742647 +406658 734886 +406661 806233 +406661 895800 +406669 751578 +406669 947211 +406669 1.11887e+06 +406672 813550 +406678 1.11938e+06 +406686 735275 +406686 741147 +406689 1.11824e+06 +406700 754958 +406706 782389 +406722 743578 +406733 805767 +406733 845189 +406733 921619 +406739 857214 +406764 742911 +406767 818706 +406767 958589 +406786 735894 +406786 752372 +406789 734175 +406789 736744 +406789 910728 +406792 804950 +406800 965061 +406800 1.22351e+06 +406803 734556 +406806 734747 +406806 1.2237e+06 +406814 734003 +406814 820219 +406825 931208 +406828 854272 +406833 744431 +406836 735106 +406842 746361 +406844 803292 +406844 896800 +406850 737022 +406856 761958 +406858 926772 +406861 754972 +406867 733739 +406867 841378 +406872 802717 +406875 802542 +406911 735636 +406914 735339 +406917 811814 +406917 897950 +406925 896278 +406928 837856 +406933 735081 +406936 751906 +406936 895889 +406953 803050 +406956 733261 +406958 800119 +406964 761692 +406967 749411 +406975 734256 +406983 744019 +406994 990811 +407000 802683 +407000 1.1181e+06 +407003 735933 +407008 734625 +407008 737133 +407011 742306 +407022 802867 +407036 894072 +407039 1.05008e+06 +407044 963872 +407047 736506 +407061 733067 +407061 838439 +407064 839214 +407064 933650 +407069 749564 +407069 815983 +407072 736764 +407086 732817 +407089 843536 +407092 1.12101e+06 +407106 902661 +407139 775908 +407139 1.16103e+06 +407142 733819 +407142 737006 +407142 740064 +407147 942350 +407150 880061 +407164 733222 +407167 914500 +407172 734842 +407181 733547 +407186 745697 +407189 1.11888e+06 +407192 736889 +407194 748361 +407194 761161 +407194 993717 +407206 734406 +407208 740178 +407214 892728 +407219 954806 +407236 737053 +407242 737156 +407244 815222 +407250 732458 +407256 753944 +407258 735147 +407264 788069 +407267 736347 +407278 730981 +407281 740781 +407294 760858 +407297 732108 +407297 811056 +407303 803103 +407303 919622 +407311 948994 +407311 1.22941e+06 +407317 1.06283e+06 +407319 731861 +407322 906644 +407336 778858 +407336 827900 +407350 736883 +407356 741728 +407358 730825 +407361 732631 +407372 1.14037e+06 +407383 730511 +407386 851717 +407386 995372 +407392 890164 +407394 743044 +407394 803294 +407397 937475 +407403 753100 +407408 736631 +407408 743842 +407408 752575 +407414 743600 +407417 887197 +407419 950381 +407431 731931 +407433 888814 +407439 740328 +407442 734825 +407453 867647 +407464 741567 +407469 909039 +407472 731703 +407472 885147 +407472 895739 +407478 785347 +407483 741622 +407483 756122 +407483 956472 +407483 988444 +407486 847911 +407492 736411 +407494 868717 +407503 786711 +407517 763364 +407517 818394 +407517 924147 +407519 803194 +407519 884111 +407525 736108 +407536 860689 +407536 882919 +407539 733608 +407539 752625 +407539 798103 +407542 755992 +407544 863567 +407553 736672 +407564 736453 +407567 881911 +407569 729397 +407569 933186 +407581 870417 +407583 736353 +407583 825156 +407589 735700 +407594 825903 +407597 744175 +407608 871508 +407608 1.1189e+06 +407617 733297 +407625 734536 +407631 769397 +407633 872936 +407656 730156 +407656 953719 +407664 894678 +407667 728525 +407667 879922 +407669 729967 +407672 742053 +407683 735256 +407683 741458 +407692 731156 +407692 800631 +407692 875639 +407694 740208 +407694 838228 +407700 1.24142e+06 +407703 874453 +407706 737181 +407706 742331 +407714 846156 +407719 983692 +407733 736436 +407739 742739 +407742 729433 +407744 785536 +407744 970503 +407756 777928 +407758 746011 +407761 877364 +407764 734678 +407775 929436 +407778 899664 +407786 900147 +407794 740242 +407797 978119 +407800 803386 +407808 736769 +407808 997411 +407811 732467 +407811 737250 +407811 766733 +407839 762306 +407842 746972 +407858 747806 +407861 737142 +407867 737269 +407869 730094 +407869 737372 +407872 812828 +407875 827367 +407878 740147 +407878 743886 +407883 741336 +407886 736000 +407886 736478 +407886 842039 +407889 765592 +407892 836433 +407894 740569 +407906 732022 +407906 893606 +407914 762839 +407919 740042 +407933 734156 +407933 764728 +407933 778603 +407936 736275 +407936 741506 +407942 736608 +407942 737489 +407944 801369 +407953 814736 +407958 743153 +407961 891972 +407972 759697 +407978 737000 +407978 858206 +407981 783975 +407986 736803 +407986 742394 +407989 768625 +407989 813786 +407989 816956 +407994 762128 +407994 780544 +407997 736514 +407997 756622 +407997 764281 +408000 966667 +408003 727903 +408006 737289 +408014 756106 +408017 835106 +408019 728414 +408022 1.24162e+06 +408025 737047 +408031 726150 +408031 749900 +408042 740125 +408042 763408 +408042 764653 +408042 821958 +408044 904017 +408050 819353 +408053 742042 +408067 737039 +408067 741858 +408072 736817 +408075 911128 +408083 829756 +408103 795297 +408106 778186 +408119 741247 +408122 730789 +408125 761419 +408153 730456 +408161 736978 +408164 736375 +408164 795222 +408167 964300 +408175 730006 +408178 800144 +408192 831306 +408197 737356 +408203 762011 +408203 879778 +408206 742942 +408206 985997 +408214 739881 +408217 744814 +408222 741603 +408231 726100 +408236 733992 +408236 759806 +408239 735481 +408244 726667 +408244 742850 +408250 783514 +408250 911564 +408256 732031 +408256 736986 +408258 742094 +408261 735025 +408264 741072 +408269 739761 +408272 832814 +408275 762072 +408292 853356 +408297 742406 +408297 750781 +408311 730300 +408317 758828 +408317 768361 +408325 1.15762e+06 +408336 757142 +408336 953081 +408339 740975 +408339 805406 +408342 740092 +408342 803225 +408347 736958 +408350 731317 +408356 803997 +408375 796322 +408381 857303 +408386 735656 +408389 898864 +408397 742769 +408403 740911 +408406 725819 +408408 743022 +408411 740456 +408417 962933 +408419 1.01725e+06 +408428 732933 +408431 737153 +408436 817642 +408447 737022 +408450 806147 +408453 733356 +408456 740883 +408475 776864 +408481 739981 +408481 752919 +408483 799622 +408486 768200 +408486 1.11906e+06 +408489 736453 +408500 782708 +408508 739706 +408517 737192 +408519 731544 +408528 731156 +408528 740425 +408531 741142 +408533 734119 +408539 748294 +408542 1.06965e+06 +408556 1.11892e+06 +408558 732011 +408561 731878 +408567 734700 +408567 741289 +408569 740219 +408581 740811 +408583 731000 +408583 741642 +408589 934972 +408597 999869 +408611 798956 +408614 739886 +408617 896786 +408622 736342 +408625 767947 +408625 856017 +408639 802592 +408644 758114 +408644 765528 +408644 864997 +408644 913144 +408656 735325 +408656 752069 +408658 907483 +408661 860775 +408664 730361 +408664 873636 +408667 1.24082e+06 +408672 980039 +408678 868789 +408681 734261 +408681 777469 +408681 975917 +408686 730019 +408686 752553 +408686 823183 +408689 725181 +408689 733656 +408689 742086 +408694 845842 +408700 961403 +408708 735114 +408711 747344 +408711 984678 +408714 734572 +408717 1.11891e+06 +408728 787244 +408758 745428 +408758 757328 +408758 814025 +408761 735769 +408761 740303 +408767 733250 +408772 807556 +408778 798467 +408778 882692 +408781 888611 +408789 769872 +408794 751842 +408803 879550 +408806 752150 +408806 851664 +408814 741136 +408814 826619 +408817 945617 +408822 740836 +408825 1.2166e+06 +408831 854975 +408831 895025 +408831 1.23983e+06 +408839 745625 +408842 723900 +408842 729378 +408853 739528 +408858 740439 +408858 782211 +408861 732578 +408869 735556 +408881 803383 +408883 738286 +408883 806942 +408894 1.1188e+06 +408897 741953 +408897 782286 +408897 815978 +408908 724642 +408908 774769 +408908 928150 +408917 767978 +408928 739731 +408931 745822 +408939 1.11901e+06 +408947 744333 +408953 736014 +408953 738075 +408953 838889 +408975 740164 +408983 956711 +408989 740931 +408989 747069 +408994 973992 +408997 734153 +409003 807642 +409008 733436 +409011 745147 +409022 817342 +409025 740622 +409025 744075 +409028 747094 +409033 731583 +409033 734603 +409039 741189 +409044 890344 +409050 742103 +409064 842967 +409069 970986 +409072 740756 +409083 902847 +409097 738083 +409100 759917 +409106 735625 +409114 737828 +409114 906472 +409117 859244 +409117 871553 +409125 733014 +409133 759669 +409133 777786 +409153 811061 +409167 741722 +409167 847028 +409169 726625 +409175 770481 +409175 965281 +409178 1.11399e+06 +409181 1.11871e+06 +409186 922228 +409192 892911 +409194 840569 +409222 894861 +409225 900144 +409228 810192 +409231 750969 +409231 809939 +409250 983417 +409253 730478 +409253 739633 +409253 742769 +409256 731414 +409258 746353 +409269 913994 +409275 739978 +409278 733603 +409278 737522 +409281 759150 +409286 740403 +409294 1.0016e+06 +409297 897575 +409297 949758 +409311 738992 +409319 909469 +409322 843389 +409328 724147 +409328 746597 +409328 803636 +409350 740194 +409353 879344 +409356 741867 +409367 871508 +409378 723014 +409381 738325 +409403 741322 +409406 739972 +409414 739597 +409417 777853 +409436 789711 +409444 740758 +409461 874533 +409464 730697 +409467 1.24099e+06 +409469 730300 +409478 903100 +409478 903711 +409481 797431 +409481 839611 +409486 737331 +409492 741542 +409494 725819 +409508 730844 +409519 764600 +409525 833825 +409550 741864 +409558 739317 +409561 729683 +409567 744983 +409572 729081 +409572 739639 +409583 759750 +409586 740372 +409586 759964 +409589 768994 +409597 729967 +409597 730683 +409597 731300 +409608 739906 +409622 828544 +409625 853733 +409628 741333 +409628 964408 +409633 711833 +409633 766131 +409636 813314 +409636 915578 +409644 768847 +409689 737131 +409700 816967 +409714 821100 +409731 739619 +409731 1.17735e+06 +409736 721442 +409747 848683 +409756 785253 +409761 740267 +409778 803453 +409781 817822 +409792 741169 +409806 736842 +409806 1.11887e+06 +409817 951039 +409819 931983 +409828 841994 +409836 739803 +409853 868794 +409858 747425 +409858 796133 +409867 751950 +409869 818939 +409883 1.02264e+06 +409892 741411 +409900 752167 +409900 887292 +409900 947406 +409911 725347 +409911 740331 +409919 760569 +409939 743039 +409942 921672 +409953 740125 +409956 723417 +409964 741017 +409978 722931 +409978 961619 +409981 739622 +409994 751817 +410006 857686 +410011 986072 +410017 736661 +410017 743675 +410017 793317 +410025 784636 +410028 738792 +410028 955850 +410031 879081 +410036 743419 +410036 885253 +410042 923736 +410050 737850 +410053 742911 +410061 764103 +410064 739494 +410081 911639 +410086 919625 +410094 741733 +410097 952253 +410100 818625 +410106 738442 +410106 739917 +410106 741183 +410114 958819 +410128 723133 +410128 816053 +410139 933064 +410144 738731 +410144 763814 +410161 721597 +410167 742061 +410167 758975 +410167 1.11498e+06 +410172 954019 +410186 864133 +410186 957989 +410189 737986 +410192 840472 +410208 814361 +410219 739478 +410233 740669 +410242 806150 +410242 806631 +410247 894111 +410250 807611 +410253 902797 +410256 817300 +410261 989122 +410264 819333 +410267 928056 +410275 941978 +410286 894383 +410289 840792 +410300 825158 +410308 779497 +410317 741025 +410322 1.11901e+06 +410333 820122 +410339 737633 +410339 937653 +410353 805367 +410353 1.11938e+06 +410358 719550 +410375 740411 +410381 742944 +410383 860281 +410389 738656 +410392 963681 +410414 741294 +410414 795033 +410417 939492 +410419 739186 +410442 836500 +410458 762825 +410464 813981 +410467 740233 +410469 957422 +410478 724636 +410492 880978 +410503 788225 +410514 866031 +410519 762211 +410519 830150 +410525 806081 +410525 890503 +410531 827264 +410533 735392 +410544 762336 +410547 797269 +410550 738206 +410572 741414 +410572 966444 +410581 747531 +410583 740989 +410586 943611 +410589 740222 +410603 1.1197e+06 +410606 757744 +410614 1.02074e+06 +410617 897731 +410619 762228 +410633 905558 +410639 800567 +410647 724267 +410647 828878 +410647 862158 +410681 723392 +410706 850144 +410722 858917 +410722 902253 +410758 775889 +410767 818964 +410775 847272 +410781 764147 +410783 805994 +410786 734697 +410797 878114 +410806 868919 +410811 1.11919e+06 +410814 815192 +410817 745928 +410819 961342 +410831 739206 +410844 768642 +410847 856281 +410856 738589 +410886 740139 +410892 906381 +410894 1.12064e+06 +410906 739183 +410928 1.0247e+06 +410936 898647 +410944 884250 +410958 796828 +410961 912575 +410964 739733 +410969 788889 +410972 1.04814e+06 +410983 839847 +410994 909425 +410997 806497 +411000 813467 +411003 821233 +411003 842664 +411014 814419 +411017 807647 +411019 767714 +411033 723597 +411039 826119 +411069 739206 +411072 737964 +411072 774847 +411075 837928 +411078 787714 +411083 835169 +411108 1.12025e+06 +411111 740689 +411114 893564 +411117 1.14964e+06 +411133 742458 +411142 975986 +411144 831781 +411147 741500 +411147 901644 +411158 980014 +411161 791869 +411169 809836 +411175 734083 +411181 739558 +411183 1.12083e+06 +411192 787603 +411200 878611 +411203 765303 +411208 888353 +411219 753650 +411219 830158 +411222 803331 +411231 914411 +411233 737794 +411239 741697 +411239 1.00765e+06 +411242 1.01356e+06 +411247 774300 +411253 848533 +411264 737144 +411264 774719 +411281 1.01719e+06 +411306 851289 +411325 1.11929e+06 +411333 1.04817e+06 +411339 814847 +411358 929039 +411364 740828 +411364 1.1203e+06 +411367 800094 +411367 958906 +411369 774472 +411381 845806 +411383 818639 +411408 962394 +411414 733583 +411417 878750 +411419 878611 +411428 890600 +411428 1.02978e+06 +411444 814400 +411450 788047 +411456 738242 +411458 774217 +411464 747528 +411472 916606 +411475 739897 +411506 739458 +411531 761506 +411533 745767 +411536 813581 +411539 807017 +411544 741933 +411544 960419 +411550 759786 +411564 805694 +411569 834169 +411569 1.01126e+06 +411572 854883 +411575 812422 +411578 800889 +411586 1.01002e+06 +411589 814544 +411594 814406 +411606 926311 +411611 790833 +411617 1.12026e+06 +411628 738619 +411656 808578 +411667 876628 +411669 732053 +411669 740436 +411675 900425 +411689 822181 +411703 909967 +411725 835564 +411725 923086 +411728 882767 +411728 1.11976e+06 +411733 860347 +411742 804536 +411747 918194 +411750 760750 +411769 1.12003e+06 +411772 744692 +411772 797081 +411772 896575 +411789 903158 +411797 975472 +411814 847406 +411814 911853 +411817 743825 +411819 1.04069e+06 +411822 937286 +411828 807656 +411828 836783 +411847 773142 +411856 883097 +411856 919928 +411883 809783 +411917 903800 +411919 1.11971e+06 +411922 974250 +411967 908803 +411969 759286 +411975 739650 +411992 798731 +411997 907492 +412003 857056 +412022 793278 +412031 905869 +412042 737275 +412044 928825 +412053 760053 +412053 960422 +412056 767858 +412069 830553 +412075 838992 +412083 738917 +412094 739858 +412094 1.06789e+06 +412097 746081 +412103 758969 +412108 849669 +412111 805381 +412114 966200 +412122 804969 +412125 924353 +412147 793856 +412150 867758 +412158 890667 +412189 864231 +412197 1.22274e+06 +412219 932411 +412222 730569 +412222 758633 +412225 742947 +412225 770372 +412231 1.11973e+06 +412269 802400 +412269 882647 +412272 858219 +412278 964875 +412283 851725 +412292 840342 +412306 853194 +412319 769994 +412325 956128 +412331 804936 +412339 805697 +412344 795375 +412350 810494 +412350 951372 +412358 1.03662e+06 +412367 954178 +412369 888314 +412375 808186 +412381 818419 +412381 858531 +412392 813461 +412397 816383 +412400 814408 +412400 836433 +412403 759450 +412411 767242 +412411 770014 +412411 815528 +412414 884194 +412425 826158 +412428 732011 +412450 759311 +412450 963969 +412456 899247 +412458 758817 +412464 832358 +412489 841331 +412492 787997 +412503 794597 +412506 878314 +412528 971297 +412539 836044 +412542 769208 +412542 893422 +412542 947681 +412544 823997 +412556 734353 +412558 1.22138e+06 +412561 830517 +412564 743603 +412586 959375 +412592 804722 +412597 906078 +412608 1.11769e+06 +412611 892275 +412611 961317 +412619 739386 +412619 958608 +412647 815133 +412650 882122 +412683 1.10962e+06 +412694 759167 +412706 729475 +412708 737781 +412725 820547 +412736 828417 +412753 758506 +412756 989664 +412761 728689 +412769 926794 +412781 758975 +412783 730261 +412786 725281 +412789 758786 +412794 725989 +412794 728156 +412797 767133 +412800 759125 +412800 913606 +412814 734986 +412814 1.11988e+06 +412833 701000 +412839 812242 +412842 810967 +412844 843558 +412853 723994 +412853 724481 +412861 804278 +412864 962342 +412872 845536 +412878 882856 +412878 993814 +412886 882517 +412889 726822 +412889 758058 +412889 915522 +412897 945614 +412900 739208 +412906 959178 +412917 723767 +412917 758750 +412917 934422 +412919 999222 +412922 895061 +412931 847619 +412939 822175 +412939 902919 +412942 882711 +412953 890594 +412956 861164 +412958 897903 +412964 926442 +412975 826056 +412981 1.12085e+06 +412992 916928 +413036 901928 +413042 829753 +413053 944611 +413072 1.11959e+06 +413078 881467 +413081 729286 +413083 741450 +413089 820058 +413097 742294 +413100 721458 +413100 1.22309e+06 +413111 886097 +413114 1.05591e+06 +413117 758378 +413125 811439 +413125 814403 +413128 963458 +413136 817247 +413139 816853 +413144 818358 +413164 730936 +413167 870258 +413175 868914 +413186 872003 +413189 905058 +413197 758464 +413197 816269 +413206 730894 +413206 758194 +413208 931092 +413217 802589 +413231 777486 +413242 834386 +413250 757458 +413253 721936 +413253 824933 +413256 856978 +413258 757897 +413261 896789 +413264 777511 +413269 757736 +413275 757933 +413275 891289 +413275 891997 +413275 1.10292e+06 +413278 719911 +413278 831322 +413297 906703 +413303 807256 +413306 741872 +413308 887081 +413308 940136 +413317 741214 +413317 743572 +413319 858500 +413322 877853 +413333 922044 +413336 888781 +413358 719064 +413361 759636 +413367 755189 +413392 801053 +413397 757367 +413406 876214 +413436 863097 +413439 757389 +413447 837972 +413450 720253 +413450 815286 +413456 888425 +413458 813953 +413461 730794 +413469 741267 +413486 800825 +413494 851356 +413500 720789 +413503 831219 +413506 719825 +413533 723911 +413533 757386 +413542 719669 +413547 903814 +413556 721000 +413558 822539 +413572 884211 +413578 891761 +413581 935572 +413583 897372 +413614 818131 +413625 742717 +413633 979689 +413639 919536 +413647 961575 +413650 958578 +413653 895839 +413656 815614 +413658 852389 +413661 818544 +413669 799294 +413669 850589 +413681 894647 +413683 821078 +413692 739667 +413711 734144 +413714 839419 +413722 737339 +413747 836514 +413750 746931 +413750 819083 +413772 718342 +413775 718278 +413825 892189 +413833 760250 +413844 833206 +413856 724361 +413858 932692 +413889 705139 +413897 814414 +413900 817597 +413906 809736 +413908 728600 +413914 739564 +413922 841253 +413931 815367 +413947 734544 +413947 757069 +413953 816764 +413969 966111 +413972 736175 +413972 899044 +413978 822225 +413983 818047 +413989 717475 +414000 747236 +414000 828086 +414014 923544 +414019 743247 +414019 996389 +414031 724514 +414036 950136 +414039 881117 +414047 817231 +414050 1.02344e+06 +414061 736331 +414081 929161 +414089 756628 +414092 741956 +414092 1.12035e+06 +414097 797119 +414108 834611 +414119 838644 +414139 733039 +414153 815661 +414156 819236 +414169 815275 +414169 816061 +414169 873653 +414181 864858 +414189 832214 +414197 756328 +414200 877417 +414203 787289 +414208 900150 +414211 820964 +414214 798814 +414219 823647 +414225 879858 +414225 1.00193e+06 +414228 1.22385e+06 +414233 717861 +414244 739469 +414253 816883 +414269 892133 +414278 741664 +414278 857525 +414286 904608 +414294 882286 +414297 720825 +414297 813908 +414297 848714 +414297 973681 +414306 868983 +414314 813656 +414322 714569 +414333 964978 +414344 721103 +414347 815258 +414350 815364 +414353 816575 +414392 740456 +414392 907175 +414397 817356 +414414 818644 +414414 852650 +414428 860014 +414433 840089 +414442 744003 +414444 876314 +414453 947644 +414458 744233 +414464 861481 +414472 970592 +414478 814278 +414481 901542 +414486 847481 +414486 977303 +414489 827081 +414489 956153 +414500 816636 +414506 834875 +414514 756122 +414517 820356 +414525 963508 +414528 821825 +414531 905719 +414542 705625 +414542 706042 +414542 740581 +414550 1.06806e+06 +414553 819181 +414553 882617 +414558 960261 +414564 907233 +414569 728236 +414569 1.22894e+06 +414594 934047 +414614 736714 +414619 810739 +414619 967794 +414622 814808 +414642 918381 +414644 815089 +414647 837061 +414658 855875 +414667 864831 +414683 756033 +414686 755625 +414689 796911 +414700 876364 +414700 926511 +414706 811453 +414714 756081 +414731 870611 +414731 903575 +414733 745389 +414739 815372 +414747 845525 +414756 818394 +414756 936786 +414758 751825 +414761 832958 +414767 740242 +414767 953378 +414775 952217 +414783 814639 +414803 715231 +414806 866917 +414808 755950 +414808 876378 +414814 743606 +414817 726817 +414819 817983 +414828 873328 +414831 917058 +414839 742181 +414839 903531 +414844 877033 +414847 819222 +414858 730511 +414872 1.20541e+06 +414875 821017 +414881 914258 +414883 875675 +414886 757089 +414892 814019 +414900 713133 +414914 876744 +414919 941239 +414928 757000 +414942 875217 +414947 755372 +414947 903906 +414953 794561 +414958 878486 +414961 853767 +414969 713678 +414969 725575 +414978 815375 +414989 729011 +414994 816956 +415003 858281 +415006 874614 +415006 946433 +415008 837183 +415008 904442 +415008 934908 +415028 724506 +415033 740108 +415033 943183 +415036 844142 +415039 877131 +415047 739700 +415053 820283 +415061 876356 +415061 881144 +415064 875917 +415067 905150 +415075 717167 +415089 907658 +415094 905786 +415103 1.12015e+06 +415119 829378 +415119 879656 +415122 782353 +415122 904150 +415133 876742 +415139 920761 +415161 954500 +415175 814036 +415183 942261 +415189 838039 +415192 814581 +415200 800486 +415200 814889 +415200 815564 +415200 882017 +415214 843072 +415217 739269 +415222 813381 +415222 931017 +415231 815186 +415236 905775 +415242 720764 +415242 764011 +415244 862733 +415244 905156 +415250 880817 +415256 741533 +415258 853667 +415261 878892 +415264 706736 +415264 875386 +415272 850656 +415275 742372 +415283 874236 +415286 1.09466e+06 +415300 886797 +415306 739781 +415308 755458 +415317 940094 +415319 939539 +415322 872550 +415331 815792 +415342 757364 +415342 864272 +415347 740153 +415350 740706 +415350 808683 +415356 738994 +415356 878475 +415369 885833 +415381 728075 +415386 759469 +415392 855397 +415397 740986 +415414 869006 +415425 816264 +415425 876022 +415428 876847 +415439 738686 +415444 732094 +415444 961247 +415472 891175 +415475 865822 +415486 985308 +415486 987306 +415492 841417 +415511 1.12109e+06 +415514 706153 +415519 814786 +415528 815103 +415542 915347 +415547 880986 +415558 904092 +415564 847689 +415564 958875 +415569 836272 +415572 876656 +415575 894608 +415581 730519 +415583 872744 +415600 740036 +415619 736031 +415622 726511 +415644 875125 +415647 875389 +415661 834247 +415681 876081 +415681 877203 +415689 1.11837e+06 +415700 912636 +415717 876944 +415728 726411 +415733 877844 +415736 755022 +415736 840053 +415736 876464 +415750 872389 +415756 723325 +415758 725031 +415758 871761 +415767 744875 +415767 752592 +415769 734089 +415772 937111 +415783 705592 +415783 928447 +415803 754086 +415817 903433 +415833 875000 +415839 738092 +415839 935197 +415847 907719 +415853 878431 +415858 925272 +415861 844350 +415869 712839 +415875 1.09202e+06 +415878 834933 +415886 838911 +415889 910167 +415894 880578 +415894 889219 +415894 941958 +415908 948753 +415917 950597 +415931 815269 +415933 730858 +415933 873464 +415964 739114 +415978 937081 +415983 814186 +415994 932350 +415997 909106 +416006 936089 +416008 876069 +416028 877439 +416031 937239 +416033 803056 +416033 989258 +416056 739719 +416056 741844 +416061 738733 +416064 903353 +416067 719814 +416067 805725 +416078 1.22839e+06 +416097 835644 +416100 876467 +416106 867225 +416106 965478 +416111 876347 +416117 938850 +416125 887994 +416136 901728 +416142 760469 +416142 811492 +416144 940172 +416147 1.12126e+06 +416156 870742 +416156 875294 +416186 813842 +416217 837117 +416228 738711 +416239 813072 +416253 877175 +416258 712139 +416258 871903 +416261 757808 +416267 937119 +416269 796739 +416269 882039 +416283 703875 +416289 813617 +416303 878539 +416303 897861 +416311 780917 +416314 724603 +416317 876608 +416331 754708 +416331 814689 +416336 886811 +416342 1.11851e+06 +416347 849994 +416353 727692 +416361 709347 +416378 859217 +416386 1.11933e+06 +416386 1.12079e+06 +416389 875567 +416389 876072 +416392 874547 +416397 732089 +416397 814067 +416406 993708 +416411 884472 +416414 801517 +416417 854167 +416431 957886 +416436 834869 +416439 877036 +416442 934644 +416458 886217 +416475 880894 +416500 702417 +416514 754669 +416525 797272 +416528 702833 +416531 953253 +416539 814506 +416556 738753 +416556 746897 +416561 804242 +416564 768536 +416564 900792 +416572 876800 +416581 905844 +416583 701292 +416583 708167 +416603 808608 +416611 727800 +416611 877525 +416611 915300 +416611 920089 +416619 861586 +416628 788114 +416628 876606 +416628 885369 +416639 835553 +416642 836433 +416644 701733 +416650 860758 +416653 1.03099e+06 +416658 814433 +416658 1.11181e+06 +416661 813397 +416667 701853 +416667 966656 +416672 878303 +416681 762622 +416681 877964 +416686 933575 +416689 877386 +416714 899361 +416714 913464 +416717 729497 +416731 936975 +416731 1.07979e+06 +416733 843269 +416736 880017 +416747 903403 +416750 712711 +416750 733522 +416764 719156 +416764 915803 +416772 945031 +416778 932450 +416781 730114 +416794 721708 +416794 770642 +416797 874944 +416800 845531 +416803 903189 +416811 699917 +416817 1.11822e+06 +416819 699603 +416819 859767 +416819 869603 +416828 883514 +416833 862500 +416842 877003 +416844 939608 +416861 700764 +416883 937908 +416889 889811 +416889 983631 +416897 877972 +416908 980033 +416917 943628 +416917 974842 +416919 713792 +416925 869775 +416947 740517 +416967 878169 +416972 862450 +416975 905825 +416978 727242 +416983 868592 +416986 880683 +416994 840703 +416997 930478 +417000 703000 +417000 707633 +417003 739214 +417003 865094 +417006 934619 +417014 711556 +417014 877792 +417019 702500 +417039 790358 +417050 813606 +417053 972378 +417061 715236 +417064 1.11816e+06 +417075 868950 +417092 746289 +417103 865342 +417106 722086 +417106 745747 +417117 839097 +417119 1.12165e+06 +417122 726086 +417128 718814 +417142 726531 +417142 893286 +417161 862525 +417169 743961 +417175 899258 +417181 929072 +417181 949322 +417183 738531 +417189 801478 +417189 837131 +417194 842181 +417206 877017 +417208 739606 +417208 877542 +417211 968825 +417214 858175 +417217 1.11821e+06 +417233 917903 +417244 732367 +417244 812458 +417250 970025 +417256 786386 +417256 878250 +417267 971219 +417278 844189 +417283 1.22527e+06 +417297 936056 +417306 883458 +417308 849328 +417317 922978 +417331 776422 +417336 924453 +417344 877314 +417356 1.11834e+06 +417356 1.22633e+06 +417383 957025 +417406 713092 +417408 878603 +417411 705994 +417411 735769 +417411 1.12161e+06 +417417 706583 +417431 927222 +417439 743719 +417444 878378 +417453 706186 +417456 868508 +417472 731892 +417475 740872 +417486 773008 +417489 879183 +417492 915978 +417500 878042 +417500 977750 +417550 1.03324e+06 +417561 1.24201e+06 +417578 803681 +417589 704944 +417600 700833 +417603 811411 +417606 883200 +417611 938242 +417619 727425 +417619 1.08966e+06 +417625 707222 +417628 878000 +417636 726856 +417653 721986 +417658 836281 +417675 764431 +417681 888769 +417689 878578 +417689 886408 +417694 711292 +417694 1.11804e+06 +417697 911278 +417700 705289 +417703 879022 +417711 730603 +417711 810500 +417714 937128 +417717 887736 +417747 742986 +417747 780208 +417750 1.07112e+06 +417756 954172 +417758 725219 +417783 962208 +417794 1.10538e+06 +417797 714378 +417797 896889 +417800 790933 +417808 749342 +417817 991328 +417822 726125 +417828 878781 +417850 736944 +417858 881472 +417881 902561 +417886 896961 +417894 902192 +417897 699903 +417897 707608 +417911 1.07238e+06 +417925 1.10537e+06 +417939 867439 +417956 860808 +417958 879756 +417967 718978 +417975 879547 +417981 856433 +417981 864992 +417981 920706 +417986 866106 +417989 1.11818e+06 +417992 854192 +418006 731217 +418006 803692 +418008 879369 +418011 747469 +418011 880747 +418019 810492 +418025 718864 +418036 800567 +418061 883272 +418069 834425 +418072 770778 +418072 914939 +418083 722500 +418086 877933 +418089 880111 +418094 1.03503e+06 +418097 728311 +418097 879006 +418097 899650 +418108 782800 +418111 784450 +418128 729206 +418133 878181 +418136 713706 +418178 881733 +418214 877828 +418233 905381 +418239 714133 +418239 878517 +418242 906478 +418244 728942 +418258 1.0366e+06 +418261 931514 +418272 863611 +418281 866925 +418283 974547 +418289 740689 +418297 862542 +418317 908381 +418325 838625 +418328 879289 +418347 878617 +418350 878228 +418358 964667 +418383 1.11832e+06 +418386 941069 +418389 894794 +418394 847481 +418411 856686 +418417 893003 +418417 967083 +418428 878231 +418439 791453 +418444 901886 +418456 877539 +418456 916928 +418458 709500 +418472 853186 +418475 1.03661e+06 +418492 735572 +418500 876500 +418500 879644 +418500 883125 +418506 877936 +418506 878819 +418519 945581 +418525 726442 +418544 956003 +418550 843539 +418569 939217 +418575 909281 +418594 809542 +418617 881608 +418628 1.1199e+06 +418639 711250 +418639 878533 +418650 699917 +418650 807900 +418661 881069 +418661 892211 +418667 1.03667e+06 +418672 901594 +418700 1.06561e+06 +418708 786617 +418708 946772 +418711 715525 +418722 851947 +418725 757275 +418728 807731 +418731 728586 +418742 791525 +418742 801319 +418758 728017 +418767 938231 +418775 880669 +418778 879028 +418778 936783 +418786 713831 +418789 927892 +418792 878431 +418800 880078 +418814 878831 +418822 729775 +418847 882039 +418850 877844 +418875 883053 +418889 837789 +418889 879033 +418889 910564 +418897 879889 +418897 952319 +418906 713928 +418908 806764 +418919 933994 +418922 884722 +418931 911506 +418956 1.06204e+06 +418969 922781 +418975 840372 +418978 878139 +418983 935289 +418994 798456 +418994 879403 +419000 710903 +419003 748286 +419006 878567 +419011 837150 +419028 919214 +419039 777622 +419044 912544 +419050 803439 +419053 739767 +419056 878836 +419058 806906 +419067 713911 +419075 885992 +419086 727606 +419086 771333 +419092 950647 +419094 920842 +419103 880717 +419117 860100 +419125 881347 +419150 719094 +419164 833978 +419172 878956 +419172 1.04039e+06 +419183 834306 +419192 775392 +419194 917808 +419200 846306 +419200 886886 +419203 796406 +419203 1.12049e+06 +419211 730606 +419211 878092 +419211 913853 +419219 914167 +419228 1.11813e+06 +419233 855283 +419236 710528 +419239 890686 +419244 740617 +419258 878358 +419267 739131 +419269 739978 +419289 954936 +419292 726278 +419294 887503 +419297 888608 +419300 968114 +419308 889644 +419311 833269 +419317 879889 +419353 878656 +419375 964769 +419386 761361 +419389 719600 +419403 850006 +419403 1.03808e+06 +419414 931031 +419439 856325 +419442 848839 +419444 712861 +419464 863389 +419475 805544 +419503 972236 +419508 882422 +419511 890644 +419536 735111 +419539 727892 +419539 752808 +419539 860647 +419542 723028 +419550 879400 +419556 717028 +419558 786442 +419558 878708 +419561 1.21476e+06 +419572 765183 +419572 836597 +419575 864856 +419575 880808 +419578 783856 +419583 706678 +419583 853250 +419589 900992 +419611 757436 +419633 878272 +419633 879789 +419633 897744 +419633 1.03926e+06 +419636 781911 +419639 908175 +419656 716750 +419667 711875 +419667 925767 +419672 878075 +419675 1.21917e+06 +419708 845258 +419717 757436 +419750 880072 +419758 1.11856e+06 +419761 725922 +419767 714592 +419789 765158 +419797 736564 +419817 726511 +419825 793389 +419833 980833 +419836 909561 +419842 846619 +419842 861086 +419847 880797 +419850 862997 +419853 724467 +419856 718992 +419856 739886 +419861 773111 +419861 895792 +419864 843472 +419867 838311 +419872 725453 +419872 969139 +419889 886867 +419903 709756 +419942 882922 +419944 707250 +419950 881856 +419956 919675 +419956 925767 +419969 918619 +419972 741053 +419975 765375 +419981 911414 +419983 921972 +419994 881450 +419994 975981 +420003 803183 +420022 906069 +420028 715153 +420036 798111 +420039 839450 +420039 879703 +420044 877300 +420061 841900 +420064 854500 +420069 927753 +420075 962494 +420083 916439 +420086 920908 +420111 878406 +420128 965725 +420128 1.21408e+06 +420133 898906 +420144 865194 +420147 893322 +420153 943772 +420161 767272 +420167 740767 +420167 931633 +420178 933150 +420178 953550 +420181 740153 +420189 878028 +420225 945450 +420228 934522 +420231 706833 +420236 719503 +420253 1.21599e+06 +420256 881783 +420258 858156 +420267 960969 +420272 733297 +420317 942406 +420333 712194 +420333 877333 +420333 878833 +420333 880833 +420342 915975 +420347 936197 +420358 916819 +420372 882811 +420386 783411 +420392 940275 +420406 877825 +420411 876900 +420417 706728 +420428 880797 +420428 1.01042e+06 +420431 733456 +420436 739478 +420439 847575 +420456 802700 +420472 978336 +420494 929078 +420500 718806 +420500 725833 +420503 894311 +420503 904139 +420528 1.24283e+06 +420533 1.24266e+06 +420544 791583 +420544 1.04952e+06 +420569 947286 +420583 701792 +420583 739097 +420592 833908 +420592 910072 +420594 914425 +420597 938800 +420600 754281 +420639 832611 +420650 864950 +420650 1.04181e+06 +420658 948667 +420661 917953 +420664 879372 +420667 851361 +420683 955914 +420689 906656 +420694 761550 +420700 843306 +420708 832467 +420711 901739 +420711 916667 +420719 839717 +420722 717139 +420722 877228 +420750 708806 +420750 720339 +420750 794833 +420758 756408 +420775 739533 +420775 784300 +420781 768456 +420825 1.10954e+06 +420833 710189 +420833 713972 +420842 880131 +420853 836825 +420858 877175 +420864 779225 +420867 714750 +420869 864558 +420886 852347 +420897 768081 +420900 784944 +420914 881217 +420917 707061 +420925 888511 +420931 707931 +420933 849858 +420936 926756 +420942 883025 +420944 901567 +420944 918692 +420950 831897 +420950 899781 +420953 879375 +420964 1.11876e+06 +420969 792356 +420972 886928 +420978 885303 +420983 760497 +420986 759183 +420997 877808 +421014 725903 +421022 898333 +421028 772339 +421033 762625 +421042 723194 +421042 793333 +421058 842483 +421069 726208 +421069 936494 +421072 891792 +421081 859744 +421081 877358 +421083 720792 +421083 912850 +421094 792833 +421103 880342 +421111 716667 +421125 929883 +421128 760214 +421142 856378 +421142 967069 +421156 759592 +421161 721139 +421167 864542 +421181 880961 +421186 791986 +421200 855328 +421211 882578 +421217 770375 +421236 711792 +421236 724319 +421250 727500 +421256 894036 +421261 895792 +421269 892556 +421275 878289 +421275 961492 +421286 980294 +421292 800853 +421297 768211 +421306 715417 +421311 864072 +421333 758967 +421350 877581 +421372 769372 +421389 832417 +421392 879289 +421394 831783 +421397 715167 +421403 800153 +421417 712500 +421428 770550 +421458 707403 +421458 848089 +421461 771119 +421483 964881 +421486 726083 +421486 746486 +421503 840378 +421514 879597 +421519 944742 +421539 881361 +421547 897397 +421550 710092 +421564 777958 +421578 787153 +421583 723292 +421592 795956 +421606 842461 +421608 880814 +421611 932969 +421619 770944 +421619 789756 +421625 710417 +421625 834031 +421631 1.23647e+06 +421653 954367 +421656 882942 +421658 957928 +421664 935017 +421667 837817 +421669 768208 +421672 858469 +421675 878969 +421681 884281 +421686 920233 +421694 751297 +421706 880478 +421711 878444 +421717 923061 +421728 789481 +421778 846431 +421783 879978 +421811 723611 +421817 878003 +421817 883303 +421817 949767 +421861 863083 +421867 862606 +421872 935956 +421875 713069 +421878 927150 +421889 1.20345e+06 +421908 917850 +421917 1.1225e+06 +421933 843911 +421933 878664 +421936 924653 +421944 712000 +421944 719064 +421947 1.22708e+06 +421956 741342 +421958 707264 +421958 733625 +421969 880933 +421986 765528 +421992 975264 +421997 878092 +422008 882144 +422011 855800 +422039 915239 +422042 726167 +422047 834853 +422050 845528 +422064 781378 +422067 861667 +422069 1.21736e+06 +422075 880556 +422078 881406 +422094 857844 +422097 764936 +422119 882381 +422122 862719 +422125 721917 +422125 723458 +422125 881525 +422136 742192 +422139 721028 +422139 831939 +422156 798344 +422169 880494 +422172 738650 +422175 782756 +422178 858911 +422189 707861 +422192 860514 +422194 879794 +422208 709403 +422208 863694 +422222 710000 +422222 833967 +422231 780347 +422236 761836 +422242 918742 +422247 928744 +422250 1.21781e+06 +422272 1.114e+06 +422278 720472 +422281 755269 +422286 715231 +422306 970175 +422328 763428 +422328 962278 +422331 843272 +422339 738828 +422347 889489 +422353 721417 +422358 964722 +422383 853350 +422383 911869 +422408 832697 +422411 836131 +422411 883161 +422417 708903 +422417 711667 +422425 882019 +422431 847531 +422433 1.13881e+06 +422439 719928 +422444 831458 +422456 930644 +422458 712833 +422458 844014 +422458 1.22788e+06 +422464 882428 +422483 736536 +422486 886083 +422500 710667 +422506 831786 +422508 842131 +422525 788058 +422528 710028 +422528 737914 +422539 795047 +422542 733667 +422542 777908 +422564 725167 +422564 902794 +422575 832111 +422578 983461 +422583 845997 +422586 904228 +422589 881392 +422597 722403 +422603 738100 +422614 940683 +422625 718028 +422631 880039 +422639 792589 +422639 888442 +422653 898258 +422661 892411 +422667 720833 +422669 797108 +422675 947336 +422689 715244 +422692 968647 +422694 716167 +422697 1.04741e+06 +422703 776061 +422703 945483 +422711 890939 +422711 950928 +422714 939269 +422722 849633 +422733 831344 +422750 786731 +422756 1.22817e+06 +422761 881919 +422769 724014 +422781 749164 +422786 967264 +422789 878342 +422792 714167 +422806 942906 +422808 915303 +422814 833864 +422825 831753 +422831 879531 +422833 712333 +422833 837458 +422861 737392 +422867 917806 +422875 733208 +422886 772186 +422886 854181 +422900 882247 +422917 855872 +422933 754797 +422942 833100 +422944 791000 +422964 712931 +422967 896211 +422986 910147 +422989 739989 +423019 709083 +423031 855503 +423042 732486 +423056 933000 +423067 780161 +423083 852192 +423122 952503 +423125 722083 +423125 861131 +423136 1.22966e+06 +423139 893592 +423147 753919 +423147 884486 +423150 921919 +423153 934342 +423156 955983 +423178 902214 +423181 840206 +423189 851425 +423189 882581 +423194 716417 +423200 890581 +423208 713647 +423211 851797 +423217 964892 +423217 1.03072e+06 +423222 777386 +423222 795783 +423222 831764 +423222 1.11297e+06 +423236 925992 +423242 834003 +423250 726417 +423253 753128 +423256 833311 +423256 878411 +423267 1.22874e+06 +423278 776614 +423281 855697 +423286 881989 +423289 759681 +423292 757703 +423292 788683 +423314 830458 +423364 853522 +423367 767889 +423369 712097 +423369 773181 +423369 784583 +423369 832733 +423383 838886 +423403 725056 +423428 879981 +423428 890519 +423439 912483 +423442 793097 +423444 880417 +423447 882739 +423450 954714 +423458 715528 +423461 776617 +423472 768456 +423483 878842 +423497 900067 +423497 977917 +423508 738033 +423533 880933 +423564 732853 +423569 880767 +423583 710603 +423600 940519 +423600 975964 +423608 858794 +423608 930994 +423617 927683 +423636 878447 +423642 735953 +423642 790558 +423683 833528 +423683 882925 +423694 719486 +423703 879019 +423708 711833 +423708 725986 +423717 880900 +423736 725208 +423750 709833 +423758 829375 +423758 896331 +423764 712361 +423783 846986 +423786 973567 +423794 898222 +423800 881042 +423806 768736 +423811 881397 +423828 859569 +423861 829119 +423875 711000 +423883 958664 +423886 794414 +423886 895261 +423917 710333 +423917 715667 +423928 830497 +423933 883403 +423944 776969 +423944 917608 +423953 736983 +423953 946336 +423958 711792 +423967 881836 +423972 751739 +423986 880525 +423997 887403 +424031 862736 +424039 963583 +424067 924553 +424072 746147 +424075 1.24421e+06 +424078 772239 +424081 881317 +424083 710125 +424083 710542 +424086 882064 +424092 828919 +424094 774217 +424103 725314 +424106 880261 +424133 736736 +424133 890092 +424153 711569 +424156 964181 +424161 922147 +424167 716833 +424167 904289 +424169 880739 +424183 711067 +424222 886136 +424222 949894 +424228 721056 +424233 781575 +424247 941500 +424250 710667 +424264 709194 +424286 879239 +424286 1.12124e+06 +424292 764953 +424294 970894 +424297 913308 +424311 834833 +424331 829242 +424333 714500 +424361 1.23171e+06 +424364 893319 +424367 828769 +424375 1.22858e+06 +424392 1.23327e+06 +424394 837439 +424400 793319 +424400 856489 +424406 764969 +424408 736614 +424414 849242 +424417 760325 +424428 910061 +424433 850181 +424436 829069 +424444 716875 +424450 909319 +424461 878328 +424472 712250 +424500 732458 +424511 841806 +424514 844325 +424522 711375 +424528 750642 +424567 839464 +424578 986472 +424583 710667 +424583 713958 +424592 929383 +424594 764869 +424606 831347 +424606 836517 +424606 856964 +424614 777772 +424614 951517 +424625 831042 +424631 789361 +424642 926281 +424644 833764 +424647 710106 +424661 781153 +424667 709500 +424667 979058 +424669 922564 +424683 738167 +424683 791772 +424683 829556 +424683 896439 +424686 918892 +424689 922194 +424692 922808 +424694 938158 +424706 939933 +424708 709181 +424711 831422 +424717 884322 +424728 1.22802e+06 +424733 832219 +424733 917342 +424739 964133 +424750 957853 +424756 920636 +424772 726083 +424772 880956 +424775 830278 +424789 878236 +424792 711528 +424794 793342 +424800 711000 +424806 831669 +424806 834756 +424817 912722 +424842 914553 +424844 911228 +424850 830278 +424858 831053 +424889 960722 +424892 784811 +424892 955447 +424894 831447 +424908 762975 +424922 906428 +424928 923428 +424931 890367 +424947 1.07827e+06 +424964 832228 +424964 899894 +424969 828889 +424972 829372 +424975 941678 +424983 883297 +424994 975417 +425000 708583 +425000 952928 +425000 964000 +425006 906644 +425022 775075 +425025 887289 +425031 831836 +425047 711961 +425061 972033 +425064 710733 +425083 890317 +425092 846558 +425144 907514 +425158 736106 +425158 832733 +425183 737517 +425194 708972 +425203 933758 +425222 833061 +425225 932511 +425233 769769 +425247 835364 +425250 717603 +425256 710958 +425272 964828 +425278 709292 +425278 924453 +425292 712286 +425292 858553 +425294 837803 +425297 1.14305e+06 +425300 784731 +425311 755239 +425311 882481 +425311 885994 +425314 989778 +425328 904344 +425333 831464 +425339 784233 +425339 1.14364e+06 +425347 881436 +425358 1.13792e+06 +425364 997003 +425378 834811 +425381 883508 +425383 1.10114e+06 +425389 710486 +425392 829494 +425422 766664 +425436 716500 +425442 791669 +425458 714750 +425464 711742 +425467 832114 +425486 752456 +425489 748214 +425500 998622 +425511 946836 +425536 882944 +425536 1.10109e+06 +425542 930531 +425567 834739 +425578 888650 +425583 708806 +425586 1.13763e+06 +425608 776964 +425611 715903 +425631 1.1446e+06 +425636 848358 +425669 926219 +425678 775900 +425697 903806 +425700 921603 +425703 1.14607e+06 +425733 902308 +425750 709306 +425750 719986 +425761 1.1173e+06 +425775 881050 +425775 927867 +425778 1.21865e+06 +425781 885408 +425794 779428 +425803 830303 +425814 948458 +425819 724931 +425822 762094 +425833 718028 +425836 832456 +425842 886325 +425842 928842 +425847 878211 +425858 995375 +425875 726000 +425878 763672 +425883 959672 +425903 723103 +425906 749456 +425936 835994 +425939 861017 +425944 717250 +425953 789414 +425958 722272 +425961 760936 +425969 980333 +425972 828781 +425986 916419 +425989 976453 +425992 991422 +425992 1.14759e+06 +426011 761808 +426011 896383 +426017 887075 +426025 965589 +426028 850931 +426042 725569 +426042 727397 +426056 904297 +426056 950025 +426072 839294 +426081 833439 +426081 1.13782e+06 +426083 720764 +426103 719394 +426111 715750 +426114 833286 +426122 884822 +426144 941458 +426153 770925 +426153 774028 +426158 706625 +426169 767253 +426183 825311 +426183 893761 +426192 1.13676e+06 +426208 919000 +426214 951731 +426219 738331 +426225 972642 +426236 857603 +426242 731181 +426242 753319 +426242 790672 +426261 830336 +426272 905919 +426275 892531 +426278 962914 +426289 780547 +426289 850242 +426292 847389 +426319 707833 +426331 886436 +426333 713167 +426339 735542 +426342 745644 +426369 761792 +426375 709500 +426383 790281 +426389 832911 +426392 920469 +426406 845153 +426411 952094 +426425 737433 +426433 736092 +426444 914011 +426456 846489 +426461 924628 +426506 1.12192e+06 +426525 737567 +426539 739292 +426544 1.11604e+06 +426550 862019 +426567 935008 +426583 711375 +426606 780858 +426606 840731 +426608 770542 +426611 709972 +426642 939042 +426653 715736 +426658 715889 +426658 743100 +426667 717056 +426669 841742 +426708 892089 +426714 923372 +426728 885444 +426733 919133 +426736 952903 +426739 856447 +426764 768233 +426778 744858 +426781 754989 +426781 882761 +426792 708417 +426806 831339 +426811 827369 +426822 768689 +426828 890186 +426831 901175 +426831 1.03412e+06 +426833 966833 +426836 915339 +426839 1.02689e+06 +426856 787769 +426861 720444 +426881 880514 +426889 842831 +426894 907119 +426903 735650 +426911 738692 +426919 737250 +426950 738075 +426958 724533 +426981 878944 +427006 740342 +427006 749247 +427008 731092 +427011 898669 +427022 834028 +427022 922253 +427047 737553 +427069 711636 +427078 894369 +427103 925828 +427119 732042 +427125 764219 +427128 954364 +427131 854619 +427144 909906 +427156 780058 +427167 708792 +427178 738339 +427183 1.02464e+06 +427194 824922 +427197 962483 +427200 942000 +427203 1.11885e+06 +427208 942150 +427222 844275 +427242 1.14518e+06 +427250 1.10931e+06 +427256 778744 +427258 924753 +427261 877828 +427283 736922 +427289 974953 +427294 944475 +427300 737017 +427317 937328 +427325 845556 +427342 904783 +427356 946689 +427358 834189 +427361 903342 +427364 1.23422e+06 +427369 844839 +427400 781331 +427414 882242 +427419 932022 +427442 736919 +427456 895947 +427458 1.24496e+06 +427469 737594 +427469 844011 +427494 955514 +427519 929753 +427528 927950 +427533 847464 +427539 767028 +427583 758847 +427597 1.05382e+06 +427600 772267 +427622 848964 +427622 849925 +427625 1.04452e+06 +427631 882142 +427647 714403 +427653 714681 +427672 718128 +427675 787442 +427678 786136 +427703 832642 +427733 723836 +427739 918822 +427742 737006 +427756 889439 +427758 1.14703e+06 +427761 710778 +427794 969289 +427797 738461 +427803 892992 +427819 949483 +427844 832397 +427844 877661 +427847 851383 +427847 926675 +427853 884050 +427858 910994 +427861 724869 +427861 1.12854e+06 +427875 861089 +427892 855167 +427914 838464 +427919 836278 +427925 736817 +427942 961653 +427956 747536 +427958 746175 +427958 778172 +427964 1.12253e+06 +427972 788236 +427978 837050 +427981 761097 +428028 830131 +428047 1.02203e+06 +428081 922581 +428092 827558 +428103 898619 +428122 1.14898e+06 +428125 708778 +428125 860186 +428128 945267 +428139 720236 +428142 739400 +428144 837825 +428144 896350 +428147 959731 +428208 824861 +428214 776689 +428228 839444 +428239 721817 +428247 832647 +428256 788236 +428258 958072 +428264 739647 +428264 780900 +428264 842194 +428269 755450 +428289 965592 +428294 1.03e+06 +428297 786364 +428331 1.0873e+06 +428336 887322 +428353 716494 +428353 890675 +428386 841783 +428397 766936 +428406 1.06365e+06 +428408 856636 +428417 708611 +428419 918019 +428433 717356 +428442 828844 +428461 936139 +428467 948517 +428475 907106 +428475 920914 +428508 725583 +428522 834431 +428533 749858 +428536 893703 +428539 914053 +428542 978969 +428558 726036 +428583 709306 +428597 895381 +428600 1.06268e+06 +428614 1.05872e+06 +428642 782806 +428667 883333 +428667 1.06312e+06 +428667 1.0986e+06 +428686 773358 +428686 912358 +428689 769781 +428692 849031 +428694 856447 +428706 719522 +428708 858650 +428711 973969 +428714 1.12445e+06 +428728 1.00551e+06 +428739 987011 +428744 740469 +428778 885861 +428781 731972 +428786 840639 +428792 752514 +428794 884742 +428806 713278 +428814 882067 +428836 1.24072e+06 +428853 751936 +428853 909233 +428858 878631 +428864 788786 +428903 843514 +428906 785781 +428933 787942 +428933 932150 +428933 951508 +428944 739283 +428950 774350 +428958 928022 +428964 827689 +428986 756406 +429000 735858 +429000 784922 +429000 904308 +429006 786706 +429011 733519 +429022 774200 +429028 736878 +429033 735631 +429039 786925 +429042 722083 +429047 768631 +429047 776117 +429056 745722 +429058 881389 +429061 1.08583e+06 +429072 857919 +429086 765406 +429097 857631 +429106 767969 +429106 878606 +429108 745744 +429114 988489 +429119 777458 +429119 839847 +429125 824869 +429133 857053 +429169 835064 +429169 892178 +429189 767267 +429206 830450 +429208 1.12465e+06 +429261 893844 +429275 836300 +429275 1.2328e+06 +429289 888369 +429294 847986 +429294 852131 +429300 758531 +429303 732431 +429314 746231 +429317 765664 +429336 722786 +429336 853419 +429344 884053 +429347 746139 +429361 1.14405e+06 +429375 708394 +429375 880486 +429378 937931 +429386 737903 +429386 741886 +429386 919500 +429389 1.14712e+06 +429392 754614 +429392 840294 +429406 879958 +429411 856100 +429414 832892 +429442 1.12838e+06 +429461 831239 +429469 764294 +429478 743708 +429511 1.23363e+06 +429522 775906 +429528 925361 +429544 743769 +429550 1.153e+06 +429553 742856 +429558 772211 +429569 944408 +429572 838306 +429575 770578 +429575 916306 +429583 742333 +429597 878614 +429600 784058 +429603 901300 +429614 880125 +429617 771403 +429628 918081 +429639 787381 +429644 825231 +429647 786778 +429653 921994 +429658 788703 +429697 772306 +429708 824250 +429717 904331 +429731 778531 +429742 954972 +429744 741514 +429747 963181 +429764 881083 +429783 779844 +429792 956878 +429814 709483 +429819 841178 +429819 849469 +429825 774092 +429828 763408 +429836 906553 +429853 931917 +429856 839283 +429872 850711 +429875 960103 +429908 895331 +429933 978625 +429956 714553 +429958 849425 +429958 964850 +429978 841767 +429981 781878 +430008 738494 +430014 857681 +430017 847397 +430019 759772 +430022 899903 +430036 890164 +430036 916522 +430044 883767 +430050 980594 +430056 888072 +430058 843717 +430067 743681 +430069 936028 +430072 960581 +430078 842847 +430086 897383 +430106 786378 +430114 750044 +430117 882314 +430125 829281 +430125 836875 +430125 879725 +430125 892897 +430142 884725 +430150 750358 +430156 898953 +430167 880069 +430183 911825 +430203 788806 +430203 1.23292e+06 +430208 784956 +430214 966306 +430247 830778 +430250 1.08379e+06 +430256 749864 +430256 1.02556e+06 +430258 777456 +430281 733817 +430297 760047 +430333 710747 +430344 764483 +430344 766242 +430347 835181 +430361 711839 +430386 788644 +430386 856700 +430389 750708 +430389 879064 +430392 763044 +430431 880789 +430433 748600 +430444 911781 +430450 758669 +430467 770956 +430467 903797 +430472 762389 +430475 762208 +430481 761478 +430483 753789 +430486 765631 +430494 880075 +430514 833189 +430517 911411 +430517 913892 +430519 890756 +430522 929483 +430528 743442 +430581 762078 +430586 741969 +430592 923175 +430606 881064 +430608 884036 +430619 944267 +430622 893339 +430631 838511 +430631 862283 +430639 772336 +430639 859347 +430642 769906 +430650 1.24138e+06 +430653 760789 +430653 764733 +430656 952836 +430658 782700 +430664 926722 +430692 772992 +430700 942328 +430706 921500 +430717 707631 +430719 959042 +430731 894011 +430733 752881 +430736 755986 +430747 731544 +430753 757072 +430761 760011 +430761 887742 +430761 891994 +430769 861969 +430772 781872 +430775 894456 +430794 755397 +430794 757511 +430797 961753 +430797 982928 +430806 882611 +430806 967733 +430814 889117 +430825 756339 +430831 737850 +430831 971603 +430842 768697 +430844 862203 +430847 915681 +430853 779425 +430853 908831 +430858 706975 +430869 956269 +430881 707367 +430883 939900 +430886 843869 +430892 878875 +430906 734992 +430906 775153 +430922 753800 +430925 756517 +430944 790569 +430967 714656 +430972 895042 +430978 761456 +430978 852289 +430978 884022 +430978 938017 +430986 774422 +431000 735822 +431008 747733 +431008 752331 +431025 936017 +431044 742653 +431044 884592 +431047 846919 +431050 883419 +431053 752917 +431058 880694 +431064 762181 +431081 707781 +431086 774878 +431117 883922 +431117 884992 +431128 752714 +431128 946828 +431133 879000 +431144 896556 +431153 761461 +431167 839700 +431183 893794 +431186 836950 +431192 1.24407e+06 +431194 969611 +431200 855600 +431219 752919 +431225 1.23411e+06 +431264 934775 +431292 948989 +431306 714536 +431319 861547 +431331 1.1569e+06 +431333 724444 +431339 709269 +431339 882219 +431344 907053 +431347 761303 +431372 897467 +431378 725103 +431381 755711 +431414 951442 +431428 930042 +431433 771894 +431461 881661 +431464 917644 +431467 883067 +431497 977172 +431500 786969 +431536 932008 +431547 776158 +431564 985411 +431567 834106 +431572 753331 +431575 879017 +431586 763331 +431600 953272 +431606 1.23367e+06 +431608 857100 +431633 879644 +431636 730728 +431661 835244 +431683 890667 +431689 862639 +431703 970811 +431706 786906 +431722 733281 +431725 790361 +431725 1.01732e+06 +431742 879242 +431753 900678 +431767 838928 +431767 897947 +431769 730575 +431769 848464 +431772 1.24186e+06 +431775 837342 +431775 852528 +431789 881172 +431797 718228 +431800 954767 +431806 879006 +431811 958558 +431817 956553 +431819 903244 +431825 992917 +431836 892136 +431836 918639 +431839 889883 +431847 841150 +431850 904431 +431864 778042 +431867 844744 +431886 961333 +431906 1.12344e+06 +431911 960056 +431919 894556 +431947 887289 +431972 766547 +431975 942194 +431978 708742 +431992 785764 +432011 862389 +432053 962947 +432081 715381 +432097 776933 +432122 774303 +432122 829897 +432122 850736 +432136 779394 +432167 1.23341e+06 +432200 783872 +432200 857511 +432206 768153 +432219 717144 +432233 855514 +432239 771864 +432256 750617 +432256 979656 +432264 780269 +432294 831967 +432311 763011 +432322 994300 +432342 862483 +432344 708100 +432358 1.0811e+06 +432361 708208 +432364 879844 +432369 940411 +432375 879786 +432378 770617 +432378 947511 +432381 761411 +432386 724250 +432386 789100 +432397 975775 +432403 758842 +432417 752572 +432444 738328 +432464 781939 +432467 924358 +432472 767239 +432472 790503 +432478 760006 +432489 705997 +432506 895014 +432508 837942 +432547 861097 +432561 862675 +432586 828175 +432617 708658 +432625 936369 +432658 708650 +432669 735850 +432681 825308 +432694 914756 +432708 897219 +432717 769894 +432756 826211 +432789 900436 +432794 962325 +432814 835297 +432842 928108 +432867 761464 +432867 787106 +432869 897239 +432872 932019 +432881 777936 +432917 846075 +432925 850814 +432928 942178 +432947 945114 +432967 879875 +432983 724828 +432992 736356 +433000 736844 +433006 735864 +433008 965925 +433011 1.03825e+06 +433033 917856 +433036 707339 +433044 709761 +433050 888447 +433058 713247 +433058 1.00658e+06 +433072 964317 +433094 736444 +433097 788264 +433103 885181 +433139 895264 +433175 908447 +433178 883789 +433186 983464 +433197 879533 +433211 765792 +433228 764175 +433239 881667 +433247 951497 +433267 783892 +433269 751872 +433269 830803 +433300 785550 +433317 837381 +433336 882861 +433344 757483 +433347 903867 +433361 858108 +433369 833525 +433378 787150 +433381 890153 +433439 960019 +433525 974369 +433542 968917 +433561 1.24204e+06 +433617 704772 +433622 912164 +433636 1.24192e+06 +433639 925539 +433653 721739 +433681 1.24216e+06 +433714 937733 +433719 835833 +433767 723472 +433767 998586 +433789 846597 +433814 921139 +433814 1.12122e+06 +433817 879406 +433839 705453 +433844 890450 +433858 939464 +433864 951481 +433869 988442 +433872 878756 +433897 710656 +433903 894028 +433903 1.23311e+06 +433953 907742 +433956 854678 +433958 727011 +433961 944781 +433975 971361 +433981 764778 +433989 979833 +433992 957517 +433997 885325 +434017 948325 +434056 887050 +434061 761261 +434067 1.24223e+06 +434078 732600 +434081 844750 +434081 850386 +434097 843289 +434100 863486 +434114 1.06279e+06 +434131 1.06249e+06 +434139 719856 +434142 734881 +434147 842306 +434161 955344 +434167 863569 +434194 839508 +434194 935331 +434197 858000 +434203 828297 +434222 951019 +434222 1.23297e+06 +434231 972603 +434253 881833 +434253 984069 +434261 737128 +434269 826714 +434272 961756 +434308 825425 +434314 966969 +434317 880464 +434317 1.03474e+06 +434361 927822 +434392 707747 +434442 716478 +434442 932208 +434464 968356 +434478 892397 +434506 836964 +434514 886311 +434536 964339 +434553 765108 +434556 953206 +434578 888372 +434586 839303 +434594 762292 +434597 898683 +434636 1.1426e+06 +434667 707942 +434667 1.12033e+06 +434675 859419 +434697 1.11966e+06 +434706 879506 +434711 897442 +434717 729778 +434744 897703 +434764 839206 +434800 1.10762e+06 +434836 753369 +434908 854439 +434911 833969 +434919 1.16419e+06 +434925 704539 +434942 885447 +434958 893083 +434967 737767 +434967 912894 +434997 878503 +435008 704433 +435050 940878 +435053 929439 +435061 906681 +435072 863475 +435097 925036 +435169 732367 +435172 703781 +435172 884511 +435181 960181 +435197 1.14314e+06 +435206 917694 +435208 882289 +435236 835433 +435244 846947 +435250 841228 +435264 1.11932e+06 +435267 827353 +435278 714708 +435281 963583 +435325 900025 +435336 946314 +435336 1.0963e+06 +435364 937119 +435378 893000 +435392 890067 +435392 894625 +435408 1.16562e+06 +435422 891072 +435456 1.16812e+06 +435500 967000 +435503 857719 +435517 975072 +435522 879617 +435553 920100 +435556 734042 +435569 908886 +435592 863456 +435611 916358 +435642 1.1908e+06 +435653 927192 +435656 889064 +435669 761281 +435681 835142 +435681 1.00745e+06 +435689 860394 +435697 878233 +435725 932811 +435758 1.24174e+06 +435781 703222 +435825 964675 +435831 753456 +435839 712078 +435864 1.19053e+06 +435911 717372 +435914 884436 +435931 730456 +435944 838889 +435947 732661 +435964 1.11963e+06 +435978 882789 +435978 972903 +435986 1.23282e+06 +436008 831747 +436011 897936 +436033 840697 +436086 863639 +436106 729731 +436122 1.16391e+06 +436153 838419 +436156 842472 +436178 1.16933e+06 +436192 879519 +436200 955961 +436208 949883 +436222 1.16237e+06 +436228 877944 +436231 969422 +436242 725189 +436253 753675 +436275 897708 +436319 1.11773e+06 +436333 887294 +436347 914967 +436350 959325 +436367 1.13299e+06 +436375 941019 +436406 721444 +436414 702414 +436422 722522 +436433 760689 +436442 760864 +436461 1.08211e+06 +436481 933681 +436489 723197 +436522 903439 +436522 944608 +436522 947267 +436528 902233 +436536 834661 +436536 977825 +436542 962125 +436569 908542 +436575 715008 +436583 880069 +436589 1.23318e+06 +436614 702558 +436619 912183 +436631 1.16686e+06 +436647 968106 +436667 929744 +436669 946192 +436703 920831 +436703 935758 +436714 1.16815e+06 +436725 1.11914e+06 +436728 723092 +436728 843806 +436767 1.16911e+06 +436769 703717 +436775 951714 +436794 704447 +436808 1.14363e+06 +436861 885464 +436869 923889 +436936 883608 +436953 716311 +436958 1.1201e+06 +436972 1.14351e+06 +436981 854836 +436983 863639 +436986 954683 +437022 722900 +437022 910131 +437025 1.24096e+06 +437058 925719 +437067 730286 +437069 1.16619e+06 +437072 889900 +437094 980294 +437097 929694 +437100 749747 +437100 829317 +437156 984847 +437175 965025 +437208 919767 +437208 1.11989e+06 +437233 1.11111e+06 +437242 973886 +437292 878106 +437322 834511 +437347 702083 +437353 887811 +437403 928692 +437408 902722 +437419 907792 +437461 937286 +437467 989581 +437467 1.22461e+06 +437486 879769 +437508 877144 +437567 845858 +437569 716886 +437594 913464 +437614 967400 +437622 947069 +437633 915683 +437639 933289 +437667 1.03598e+06 +437678 941656 +437731 884469 +437817 864331 +437853 1.16942e+06 +437861 969272 +437867 754922 +437914 893197 +437950 953200 +437964 702594 +437972 900772 +437978 1.23058e+06 +437981 730881 +438006 701872 +438014 912394 +438019 830008 +438067 917914 +438078 886747 +438083 917528 +438108 993303 +438114 884833 +438194 831808 +438194 847686 +438261 967058 +438261 1.11789e+06 +438264 882461 +438278 944369 +438300 832700 +438306 906214 +438333 726344 +438333 880178 +438339 878200 +438339 1.01509e+06 +438342 704389 +438350 848669 +438419 938317 +438422 888358 +438442 889600 +438447 826514 +438456 921889 +438486 734239 +438500 963983 +438508 891217 +438522 696286 +438536 839650 +438547 1.04204e+06 +438556 924883 +438569 701036 +438600 760058 +438664 951167 +438667 930508 +438706 956000 +438725 961283 +438728 933011 +438731 1.11748e+06 +438736 1.16498e+06 +438750 855100 +438769 1.16994e+06 +438792 901653 +438822 844847 +438836 894933 +438844 912350 +438867 1.11677e+06 +438881 941564 +438883 1.00712e+06 +438906 928475 +438931 909903 +438933 756739 +438939 934936 +438958 753928 +438992 910811 +439006 852581 +439011 858517 +439097 1.00058e+06 +439106 698211 +439125 880356 +439144 699658 +439147 1.13612e+06 +439147 1.16197e+06 +439150 877472 +439181 1.23023e+06 +439186 1.22782e+06 +439225 902714 +439250 726664 +439275 699764 +439289 939558 +439325 1.03575e+06 +439389 949294 +439394 829969 +439411 832714 +439442 908128 +439461 761194 +439500 880842 +439547 862800 +439553 864525 +439583 947944 +439633 912561 +439681 889433 +439700 1.16818e+06 +439706 898167 +439742 756156 +439747 759111 +439781 756097 +439786 905039 +439792 711208 +439808 844864 +439822 1.17237e+06 +439825 968142 +439828 1.24099e+06 +439831 839589 +439844 918692 +439878 957556 +439883 922283 +439925 721294 +439925 1.02241e+06 +439961 700611 +440006 963172 +440011 759667 +440047 940656 +440056 914419 +440061 971136 +440078 760447 +440078 1.16916e+06 +440108 975264 +440125 757947 +440153 731678 +440164 709811 +440169 1.07955e+06 +440192 847994 +440217 924697 +440247 885425 +440261 900739 +440267 1.16962e+06 +440275 917697 +440281 928544 +440289 881628 +440300 927506 +440328 926453 +440394 887442 +440394 1.01665e+06 +440419 890983 +440422 954358 +440444 929975 +440461 829942 +440464 1.23021e+06 +440483 734603 +440486 836958 +440489 1.2335e+06 +440494 965950 +440500 916392 +440508 944181 +440522 1.23086e+06 +440536 711289 +440536 982753 +440547 707133 +440583 1.21314e+06 +440625 916956 +440661 878842 +440669 761306 +440692 927556 +440717 882989 +440717 1.11448e+06 +440747 892878 +440758 885250 +440778 935072 +440783 1.16933e+06 +440789 691822 +440792 985692 +440806 1.03231e+06 +440817 913489 +440839 932258 +440872 697994 +440881 758075 +440886 876575 +440953 693761 +440978 702317 +440978 918167 +440997 1.04628e+06 +441003 702153 +441025 851469 +441036 691094 +441036 1.2313e+06 +441058 942186 +441103 949044 +441108 887125 +441117 703922 +441125 1.03068e+06 +441161 937078 +441197 701081 +441278 763333 +441303 922514 +441306 909981 +441319 917186 +441333 730794 +441372 1.23065e+06 +441403 881639 +441447 878214 +441511 726569 +441511 1.03308e+06 +441522 720378 +441536 879567 +441536 928994 +441539 875692 +441544 757092 +441572 1.08871e+06 +441597 750319 +441636 939992 +441650 921714 +441650 938811 +441661 925347 +441672 732544 +441733 940336 +441742 932461 +441769 725061 +441772 880642 +441839 734361 +441858 884625 +441936 852133 +441969 725025 +441992 756072 +441994 877214 +442014 926461 +442022 884464 +442044 938153 +442097 690653 +442097 951283 +442133 719114 +442139 705453 +442139 894922 +442153 757975 +442189 935678 +442194 1.23204e+06 +442231 954692 +442236 705139 +442272 934444 +442275 918350 +442300 697758 +442303 697672 +442311 952639 +442333 956189 +442333 958719 +442361 964808 +442389 949756 +442392 876411 +442394 760861 +442444 697719 +442444 862961 +442444 863242 +442511 1.16968e+06 +442519 854011 +442528 915014 +442597 888647 +442600 725758 +442611 962872 +442619 884153 +442633 1.0495e+06 +442658 883142 +442694 835147 +442722 883389 +442722 929853 +442728 1.21173e+06 +442731 925447 +442742 1.23169e+06 +442761 941872 +442764 842386 +442781 724269 +442781 882719 +442783 961344 +442794 739803 +442794 834903 +442797 683256 +442800 883183 +442842 966853 +442858 697914 +442911 1.05502e+06 +442911 1.21548e+06 +442925 939647 +442942 926689 +442944 912350 +442947 908514 +442950 932686 +442972 947239 +443044 927903 +443050 699775 +443061 717706 +443106 697800 +443114 967981 +443125 899042 +443125 944603 +443147 847647 +443200 919147 +443214 889336 +443236 969261 +443244 752514 +443256 938375 +443258 881628 +443294 741317 +443347 886381 +443353 852150 +443358 759181 +443367 754633 +443378 727567 +443478 878272 +443483 1.06698e+06 +443508 898653 +443514 1.17266e+06 +443522 1.03765e+06 +443536 1.00373e+06 +443569 914203 +443581 890858 +443633 982139 +443636 862050 +443636 973769 +443644 971328 +443675 913164 +443683 1.00351e+06 +443731 716106 +443767 1.03729e+06 +443800 1.08038e+06 +443836 898172 +443839 920328 +443842 1.23109e+06 +443875 682044 +443875 975500 +443878 711736 +443894 937300 +443897 1.18949e+06 +443928 887397 +443936 1.22984e+06 +443978 1.22735e+06 +444006 926236 +444019 952556 +444053 729933 +444064 1.04375e+06 +444078 740875 +444097 1.03509e+06 +444108 833322 +444108 853989 +444161 1.18952e+06 +444169 949253 +444178 1.19112e+06 +444203 833308 +444214 841167 +444239 897803 +444258 690069 +444269 1.24068e+06 +444389 935811 +444392 901244 +444411 921478 +444447 885789 +444467 943950 +444469 957881 +444489 880603 +444494 922667 +444508 892847 +444511 908411 +444564 895439 +444583 689247 +444583 875031 +444583 931614 +444611 1.03638e+06 +444633 962469 +444633 1.18709e+06 +444644 889197 +444653 726850 +444669 731714 +444686 711856 +444753 701886 +444758 732125 +444775 884506 +444803 934283 +444814 702000 +444822 899639 +444889 715697 +444892 1.08056e+06 +444906 731114 +444908 1.03859e+06 +444914 731861 +444936 895586 +444983 845919 +445047 723686 +445047 1.14231e+06 +445050 734806 +445069 929053 +445072 964239 +445081 891306 +445150 883303 +445164 1.16041e+06 +445183 989881 +445192 880197 +445194 895458 +445214 994411 +445236 895744 +445258 1.21212e+06 +445264 1.09056e+06 +445283 939075 +445292 947206 +445328 675989 +445336 720036 +445339 704564 +445339 945261 +445367 1.22906e+06 +445386 877039 +445394 951167 +445403 697225 +445403 1.23366e+06 +445431 943661 +445433 684200 +445433 935758 +445469 696217 +445497 913925 +445514 949842 +445519 696322 +445531 942203 +445536 705514 +445600 905961 +445608 705458 +445617 725989 +445625 925336 +445647 1.23261e+06 +445678 916708 +445722 912272 +445736 687961 +445747 969019 +445758 914700 +445856 924503 +445883 695992 +445908 897672 +445928 702286 +445956 751694 +445986 715117 +446003 909628 +446083 940803 +446089 874325 +446089 956739 +446181 754075 +446194 862264 +446206 887622 +446217 1.23937e+06 +446228 937683 +446264 919656 +446269 900075 +446278 893086 +446292 921922 +446336 862344 +446336 1.21128e+06 +446356 726808 +446367 1.23105e+06 +446369 1.24052e+06 +446378 688456 +446378 695036 +446397 731108 +446403 931433 +446497 932425 +446531 1.23101e+06 +446564 832947 +446614 847147 +446622 1.11103e+06 +446689 901717 +446697 749817 +446706 701517 +446714 1.03852e+06 +446722 882425 +446803 911197 +446811 1.2306e+06 +446931 735625 +446942 754867 +446994 734533 +447050 1.22848e+06 +447081 1.00059e+06 +447089 962761 +447131 697911 +447133 934225 +447147 1.0342e+06 +447150 674619 +447197 1.23009e+06 +447214 737242 +447219 1.23919e+06 +447228 970297 +447300 1.16437e+06 +447319 932175 +447319 943500 +447322 924872 +447342 851758 +447369 904958 +447372 946167 +447394 931256 +447403 884447 +447408 890631 +447433 928522 +447439 947153 +447444 688375 +447458 966806 +447481 721767 +447489 928019 +447514 749947 +447539 1.08757e+06 +447542 1.22477e+06 +447578 902967 +447631 856206 +447636 912769 +447636 936256 +447650 697197 +447675 948953 +447678 932775 +447681 939272 +447692 941514 +447717 937811 +447747 1.22614e+06 +447764 949894 +447783 1.17828e+06 +447811 921458 +447822 886089 +447825 693839 +447828 939133 +447869 953514 +447892 952114 +447894 936019 +447906 958083 +447919 950969 +447931 897031 +447964 1.08506e+06 +447967 687619 +447972 1.06956e+06 +447975 698803 +447981 935267 +448008 749914 +448008 1.22793e+06 +448011 687783 +448011 900792 +448047 914431 +448086 1.24062e+06 +448100 955453 +448114 914983 +448117 722036 +448125 920714 +448147 718808 +448272 891694 +448278 929436 +448297 1.22793e+06 +448303 745139 +448342 873769 +448353 692744 +448375 1.08389e+06 +448386 687058 +448408 932981 +448411 1.2287e+06 +448433 1.22952e+06 +448481 930425 +448486 742953 +448486 1.23233e+06 +448508 937867 +448514 1.23186e+06 +448531 887881 +448547 934706 +448586 936614 +448614 926236 +448622 935306 +448644 752044 +448664 930003 +448664 1.23435e+06 +448731 916908 +448739 881428 +448753 1.07262e+06 +448756 919192 +448758 985183 +448778 977328 +448831 686725 +448833 694481 +448833 932828 +448836 931381 +448839 940414 +448872 878644 +448872 896200 +448878 943694 +448897 933497 +448900 883072 +448944 714964 +448956 854164 +448994 971147 +449008 935889 +449022 850608 +449028 927833 +449033 935661 +449033 941953 +449061 669906 +449069 728069 +449086 935928 +449089 1.07163e+06 +449097 896044 +449100 903156 +449111 1.16098e+06 +449133 935031 +449150 935531 +449181 731247 +449194 1.23316e+06 +449250 934625 +449264 913008 +449272 899633 +449281 748922 +449297 935222 +449328 960542 +449339 951872 +449342 686458 +449353 936319 +449361 946964 +449364 722056 +449367 936658 +449369 913928 +449397 935764 +449425 957233 +449431 1.23034e+06 +449461 686444 +449481 911506 +449508 929764 +449511 880467 +449519 910347 +449531 922911 +449531 929950 +449550 953661 +449564 905975 +449564 927656 +449583 1.24017e+06 +449592 896300 +449600 909369 +449611 907997 +449633 735878 +449636 938469 +449639 940472 +449667 923742 +449694 935139 +449714 936042 +449714 1.16283e+06 +449747 927567 +449767 856506 +449789 924356 +449800 932636 +449803 852111 +449808 888308 +449839 925558 +449861 1.22982e+06 +449864 734469 +449867 935714 +449903 1.23025e+06 +449917 931661 +449931 927567 +449939 733653 +449944 724003 +449958 928792 +449969 726717 +449975 917269 +449983 1.20215e+06 +449986 932056 +449992 883719 +450031 903356 +450050 720994 +450053 1.22782e+06 +450061 931564 +450072 936556 +450097 933489 +450097 961956 +450106 934553 +450117 999553 +450158 952383 +450214 927808 +450231 1.02036e+06 +450239 692903 +450269 930875 +450275 846747 +450314 927928 +450322 933383 +450328 933600 +450331 900739 +450350 991236 +450381 933864 +450408 932628 +450419 937889 +450436 920408 +450475 1.01601e+06 +450503 931564 +450533 932472 +450542 929564 +450544 877492 +450564 928058 +450575 930736 +450586 698828 +450586 921722 +450608 940731 +450617 834328 +450650 880342 +450650 939108 +450656 932017 +450681 1.22799e+06 +450697 929514 +450700 852644 +450725 934556 +450758 941897 +450761 933325 +450789 1.23485e+06 +450792 931469 +450817 943067 +450847 930097 +450861 932631 +450883 937342 +450900 929722 +450942 933561 +450953 935472 +450994 1.23394e+06 +451000 876306 +451003 914886 +451028 930789 +451050 932083 +451078 876142 +451078 932378 +451083 1.22896e+06 +451158 1.23206e+06 +451194 934022 +451200 932875 +451219 950431 +451231 925364 +451244 926733 +451272 945278 +451314 856167 +451386 903400 +451389 947778 +451403 891522 +451428 846603 +451439 1.22854e+06 +451475 1.22576e+06 +451486 931514 +451506 946828 +451558 936661 +451569 674053 +451581 851242 +451600 929931 +451603 930886 +451608 932347 +451672 911492 +451689 693850 +451719 938744 +451758 1.13895e+06 +451806 896833 +451825 1.22807e+06 +451833 692275 +451858 1.09246e+06 +451872 871208 +451889 672792 +451889 933972 +451931 953203 +451969 960194 +451978 933869 +452086 1.17864e+06 +452103 1.23198e+06 +452164 1.12637e+06 +452167 850139 +452192 966353 +452208 1.23075e+06 +452292 940017 +452311 1.22755e+06 +452325 880075 +452331 949397 +452333 932911 +452344 1.20184e+06 +452378 936542 +452386 686642 +452436 997767 +452439 935147 +452444 1.23114e+06 +452519 922711 +452536 689864 +452628 941242 +452631 1.22691e+06 +452661 932342 +452783 1.2301e+06 +452789 929850 +452897 1.22332e+06 +452917 964625 +452944 1.23175e+06 +452958 1.08913e+06 +453000 1.22772e+06 +453003 1.22972e+06 +453011 949439 +453039 935669 +453047 964444 +453056 937939 +453069 923619 +453142 916508 +453144 1.07362e+06 +453150 955997 +453153 944083 +453175 902083 +453181 852583 +453194 932022 +453206 927047 +453247 1.18087e+06 +453261 945458 +453319 973047 +453322 975197 +453325 937458 +453364 929969 +453417 1.23186e+06 +453489 1.11729e+06 +453533 1.19557e+06 +453544 1.17229e+06 +453561 926333 +453567 1.22839e+06 +453575 842239 +453575 1.22606e+06 +453622 685056 +453658 1.22611e+06 +453708 879522 +453733 849553 +453736 928897 +453806 947117 +453808 1.22594e+06 +453842 1.22763e+06 +453894 928478 +453933 938767 +453944 921422 +453975 1.2226e+06 +453981 929872 +454014 918489 +454019 926522 +454022 1.22752e+06 +454086 917439 +454086 968575 +454153 876075 +454169 920328 +454208 1.22669e+06 +454214 838183 +454222 1.16314e+06 +454264 1.17278e+06 +454314 1.2277e+06 +454317 849919 +454439 1.05407e+06 +454442 847867 +454444 990289 +454464 1.22638e+06 +454467 1.22758e+06 +454469 1.22529e+06 +454475 980983 +454514 925539 +454522 924544 +454531 996536 +454533 1.21129e+06 +454542 945181 +454556 1.12196e+06 +454558 944286 +454564 1.23843e+06 +454569 912731 +454594 695911 +454603 964333 +454631 911039 +454647 984861 +454686 1.22608e+06 +454711 897297 +454719 943406 +454833 1.18829e+06 +454836 1.22754e+06 +454853 929617 +454853 1.0897e+06 +454872 1.22802e+06 +454903 932475 +454944 1.22866e+06 +454975 957964 +454983 1.2243e+06 +454989 1.22763e+06 +455011 951242 +455042 1.22536e+06 +455050 1.22797e+06 +455061 917381 +455064 1.00032e+06 +455114 929800 +455200 1.23059e+06 +455200 1.23109e+06 +455228 1.23888e+06 +455231 1.22989e+06 +455236 1.22675e+06 +455261 925083 +455322 920192 +455344 1.22418e+06 +455372 1.00428e+06 +455394 1.22386e+06 +455461 902864 +455528 847839 +455572 942239 +455597 1.22559e+06 +455650 1.17916e+06 +455692 964342 +455700 935814 +455703 1.17527e+06 +455717 961731 +455719 889028 +455728 932242 +455761 924825 +455828 1.22352e+06 +455861 959136 +455864 929744 +455872 1.22398e+06 +455919 941658 +455953 968331 +455972 1.22992e+06 +456092 944514 +456136 1.23942e+06 +456144 955308 +456217 942067 +456275 685750 +456300 945697 +456367 894119 +456367 1.09251e+06 +456389 1.2266e+06 +456469 844744 +456503 953894 +456572 687103 +456592 924669 +456625 1.1056e+06 +456628 946897 +456647 939094 +456647 970494 +456667 1.2256e+06 +456692 1.08771e+06 +456700 1.21889e+06 +456717 1.22662e+06 +456722 1.18788e+06 +456747 948072 +456797 1.11038e+06 +456856 929653 +456967 904003 +457056 1.2152e+06 +457150 1.21463e+06 +457169 1.202e+06 +457228 931706 +457228 989406 +457278 1.21485e+06 +457311 944697 +457325 1.07611e+06 +457375 949522 +457394 919253 +457425 1.19194e+06 +457453 870644 +457544 1.22876e+06 +457558 936542 +457575 929622 +457694 996192 +457714 879947 +457761 1.11176e+06 +457764 926825 +457806 1.19216e+06 +457811 1.22532e+06 +457833 1.085e+06 +457839 847278 +457858 923808 +457869 879036 +457917 977506 +457950 880719 +458044 964989 +458086 961431 +458119 1.18489e+06 +458139 1.18424e+06 +458144 1.0081e+06 +458153 1.22741e+06 +458203 880658 +458208 1.20821e+06 +458225 918892 +458261 929683 +458294 957917 +458300 942933 +458347 1.00069e+06 +458350 1.09955e+06 +458400 1.19699e+06 +458406 1.19288e+06 +458406 1.22841e+06 +458528 870217 +458567 1.11332e+06 +458589 1.23192e+06 +458661 1.22405e+06 +458669 951519 +458708 1.12097e+06 +458769 932936 +458775 923672 +458842 1.06623e+06 +458853 953772 +458889 1.04552e+06 +458903 1.22806e+06 +458919 1.2396e+06 +458958 1.1949e+06 +459047 1.22743e+06 +459172 892442 +459175 1.19341e+06 +459267 1.16121e+06 +459344 904414 +459408 1.02159e+06 +459578 862461 +459747 948653 +459764 943622 +459817 941044 +459933 1.23921e+06 +459942 959764 +459964 684467 +460014 1.02636e+06 +460028 985267 +460042 956825 +460086 1.22843e+06 +460114 929442 +460131 914844 +460228 1.14177e+06 +460244 1.2391e+06 +460314 993786 +460342 1.12535e+06 +460494 1.18387e+06 +460522 1.18402e+06 +460642 886314 +460647 1.18342e+06 +460697 969014 +460706 936675 +460756 971514 +460811 886269 +460858 948656 +460892 1.22935e+06 +460911 945033 +460922 1.00629e+06 +460928 886422 +460981 883339 +460994 918247 +461014 1.23206e+06 +461078 976361 +461261 678408 +461303 949483 +461311 928672 +461336 1.00161e+06 +461381 934706 +461383 1.22937e+06 +461386 980900 +461450 1.15977e+06 +461469 1.22907e+06 +461531 953286 +461644 1.2294e+06 +461650 950389 +461653 1.23922e+06 +461831 1.03394e+06 +461875 1.22904e+06 +461881 1.2383e+06 +462003 1.2395e+06 +462033 1.23382e+06 +462069 1.19768e+06 +462114 1.19136e+06 +462150 1.19996e+06 +462258 976622 +462272 1.16028e+06 +462286 1.19099e+06 +462350 1.1624e+06 +462367 1.1212e+06 +462414 1.16466e+06 +462469 1.14159e+06 +462511 1.19901e+06 +462592 974558 +462633 1.19487e+06 +462636 965878 +462653 966056 +462664 1.06677e+06 +462667 950625 +462667 971319 +462667 1.00232e+06 +462706 1.18152e+06 +462753 1.22906e+06 +462806 957133 +462811 874408 +462831 960772 +462858 1.19283e+06 +463011 989542 +463044 1.1936e+06 +463192 1.1152e+06 +463217 954450 +463256 906608 +463322 1.13293e+06 +463394 1.17047e+06 +463422 1.20186e+06 +463433 942864 +463525 1.24053e+06 +463533 918222 +463550 855094 +463556 947919 +463572 982942 +463581 942006 +463592 987153 +463669 1.04284e+06 +463725 1.02327e+06 +463761 1.15937e+06 +463775 1.20308e+06 +463958 1.12729e+06 +463983 950144 +464022 1.20261e+06 +464039 1.01846e+06 +464050 1.16804e+06 +464081 943556 +464083 1.0584e+06 +464111 866478 +464164 1.17044e+06 +464167 1.17017e+06 +464281 902458 +464356 1.09834e+06 +464400 1.22846e+06 +464417 976808 +464425 951358 +464453 1.08541e+06 +464478 1.20419e+06 +464497 901864 +464542 927617 +464547 901708 +464736 938986 +464750 1.17602e+06 +464753 899397 +464775 939775 +464794 1.16254e+06 +464814 900528 +464822 939575 +464856 943603 +464886 876675 +464911 1.15798e+06 +464914 1.22937e+06 +464947 873542 +464992 876117 +465083 997708 +465100 1.14092e+06 +465150 916997 +465181 953758 +465206 942883 +465331 937100 +465392 1.02868e+06 +465436 873953 +465483 1.10901e+06 +465508 1.16924e+06 +465539 1.20382e+06 +465567 874372 +465575 1.20474e+06 +465586 1.22274e+06 +465622 921472 +465706 1.23296e+06 +465708 960828 +465747 1.22907e+06 +465789 1.16705e+06 +465839 917989 +465897 1.11915e+06 +465925 908836 +465928 1.12035e+06 +465944 955722 +466022 1.20505e+06 +466031 943092 +466064 1.20439e+06 +466181 1.20552e+06 +466231 976011 +466300 950886 +466486 970167 +466522 964194 +466542 1.20529e+06 +466622 1.22963e+06 +466636 1.1886e+06 +466639 924247 +466733 908947 +466811 680164 +466867 1.23732e+06 +467022 1.20754e+06 +467067 924281 +467164 1.22953e+06 +467181 944039 +467208 921039 +467217 924592 +467281 957006 +467311 939578 +467311 1.20698e+06 +467314 1.17179e+06 +467325 1.16999e+06 +467353 1.22988e+06 +467369 1.16769e+06 +467472 922253 +467539 895839 +467539 950978 +467567 884528 +467589 1.1408e+06 +467722 678344 +467786 884889 +467833 921064 +467900 681581 +467911 1.17249e+06 +467931 1.05312e+06 +467992 1.22869e+06 +467994 1.16555e+06 +468083 1.00783e+06 +468108 908181 +468150 1.01829e+06 +468172 958450 +468261 1.19174e+06 +468267 1.00889e+06 +468406 1.23231e+06 +468450 1.01411e+06 +468547 999156 +468569 1.22852e+06 +468606 680125 +468633 1.14048e+06 +468675 1.22265e+06 +468708 1.13944e+06 +468711 893139 +468722 1.13993e+06 +468739 967672 +468750 969000 +468753 965786 +468767 967031 +468772 967894 +468792 1.02789e+06 +468803 1.17363e+06 +468808 963164 +468839 1.02315e+06 +468853 1.03199e+06 +468864 960942 +468883 1.22687e+06 +468903 1.24103e+06 +468939 992994 +469006 972108 +469006 1.02045e+06 +469011 1.19629e+06 +469086 678264 +469103 1.17075e+06 +469106 987081 +469181 1.04004e+06 +469217 1.16897e+06 +469222 950583 +469233 980028 +469292 929194 +469422 1.22605e+06 +469556 1.23772e+06 +469631 1.24164e+06 +469678 1.19039e+06 +469722 1.18614e+06 +469736 1.23691e+06 +469811 1.23888e+06 +469814 1.23601e+06 +469833 1.20416e+06 +469850 1.04188e+06 +469933 935983 +469967 1.20547e+06 +470036 1.23408e+06 +470075 1.22908e+06 +470081 1.1714e+06 +470228 916706 +470344 1.22822e+06 +470381 1.22899e+06 +470533 1.23264e+06 +470625 1.09428e+06 +470700 886431 +470789 962586 +470969 1.2263e+06 +470981 1.22203e+06 +471014 945869 +471042 1.22433e+06 +471053 1.04712e+06 +471164 1.01299e+06 +471219 885689 +471269 885808 +471275 1.18379e+06 +471303 1.19277e+06 +471536 1.10218e+06 +471556 1.22433e+06 +471572 679358 +471586 1.00783e+06 +471633 1.22026e+06 +471700 1.22601e+06 +471733 884292 +471772 1.22185e+06 +471911 1.22289e+06 +471917 1.14891e+06 +471942 884072 +471956 1.20938e+06 +472033 1.22239e+06 +472044 1.2199e+06 +472156 1.23096e+06 +472233 1.17071e+06 +472236 1.20992e+06 +472283 934889 +472344 1.19851e+06 +472358 1.22549e+06 +472361 1.17369e+06 +472372 935300 +472375 884431 +472394 1.22356e+06 +472397 1.22515e+06 +472467 884539 +472483 1.22312e+06 +472531 1.22443e+06 +472586 685900 +472603 962586 +472633 1.01778e+06 +472647 1.22249e+06 +472711 1.117e+06 +472792 1.22251e+06 +472864 1.01922e+06 +472889 934275 +472892 1.01029e+06 +472944 912572 +472944 1.01622e+06 +472956 934186 +472994 1.22507e+06 +472997 965150 +473075 1.22227e+06 +473089 1.22002e+06 +473153 959683 +473178 1.19552e+06 +473206 932983 +473211 1.01381e+06 +473294 1.22579e+06 +473331 937925 +473333 1.1869e+06 +473353 1.16888e+06 +473458 1.05592e+06 +473517 968283 +473719 1.02754e+06 +473794 946039 +473803 931681 +473811 1.22234e+06 +473853 1.17171e+06 +473861 1.10925e+06 +473894 1.19489e+06 +473997 930722 +474019 1.22323e+06 +474039 970617 +474158 1.20292e+06 +474236 1.20309e+06 +474364 1.22339e+06 +474444 981236 +474497 991258 +474564 1.01137e+06 +474603 1.14882e+06 +474625 925397 +474703 1.15801e+06 +474706 1.22346e+06 +474736 948800 +474742 1.15927e+06 +474742 1.2226e+06 +474811 1.18253e+06 +474831 1.22216e+06 +474844 1.22293e+06 +474858 1.00443e+06 +474875 1.17575e+06 +474889 924647 +474892 928836 +474936 927778 +474958 1.21786e+06 +474981 973242 +474983 973700 +475000 1.113e+06 +475061 1.15998e+06 +475142 978356 +475197 921383 +475200 1.0089e+06 +475217 953981 +475225 1.20469e+06 +475233 925364 +475236 1.22623e+06 +475289 1.14101e+06 +475289 1.21824e+06 +475300 922369 +475303 1.22031e+06 +475325 926233 +475331 923400 +475361 962800 +475383 1.16118e+06 +475406 1.22635e+06 +475411 1.22175e+06 +475428 1.16181e+06 +475536 1.22663e+06 +475606 1.11545e+06 +475669 1.22157e+06 +475675 1.22631e+06 +475708 1.22221e+06 +475731 1.17681e+06 +475764 957511 +475831 1.22707e+06 +475850 1.22598e+06 +475964 1.2066e+06 +475972 1.15343e+06 +476000 1.22692e+06 +476064 1.22331e+06 +476092 1.14668e+06 +476092 1.22654e+06 +476106 1.22199e+06 +476114 1.19291e+06 +476147 1.11979e+06 +476211 1.22226e+06 +476225 1.22067e+06 +476247 1.2252e+06 +476319 1.22217e+06 +476369 958861 +476397 974531 +476447 1.17592e+06 +476464 1.22216e+06 +476472 1.2007e+06 +476481 1.21913e+06 +476483 1.17091e+06 +476492 996289 +476522 1.01415e+06 +476542 1.18149e+06 +476569 1.17195e+06 +476569 1.17282e+06 +476575 1.17239e+06 +476589 1.17425e+06 +476675 960097 +476742 1.2212e+06 +476778 1.16779e+06 +476800 991375 +476814 1.17282e+06 +476817 1.22208e+06 +476919 954308 +476936 1.14162e+06 +477033 1.22206e+06 +477086 919444 +477167 1.04156e+06 +477181 1.16951e+06 +477297 1.16769e+06 +477314 1.22551e+06 +477331 945483 +477342 975664 +477361 1.22645e+06 +477425 1.21984e+06 +477506 903342 +477569 1.2228e+06 +477575 1.22243e+06 +477589 1.18704e+06 +477600 1.22204e+06 +477614 1.22345e+06 +477639 981769 +477661 1.16786e+06 +477697 999350 +477736 971094 +477742 966078 +477847 1.22273e+06 +477883 1.22308e+06 +477964 1.22382e+06 +478022 1.03283e+06 +478056 922744 +478108 1.22376e+06 +478125 1.16896e+06 +478139 1.12679e+06 +478200 1.10672e+06 +478211 1.22314e+06 +478222 1.22281e+06 +478392 958542 +478411 1.20015e+06 +478525 926894 +478556 1.2197e+06 +478564 1.04044e+06 +478569 1.21696e+06 +478628 1.21815e+06 +478822 962739 +479033 918669 +479067 976264 +479131 1.22097e+06 +479189 973647 +479253 970325 +479300 970242 +479325 1.19037e+06 +479417 1.19002e+06 +479447 1.22303e+06 +479506 1.24384e+06 +479533 1.02134e+06 +479625 995297 +479656 1.18975e+06 +479664 1.16868e+06 +479772 1.02496e+06 +479792 1.22201e+06 +480083 1.1967e+06 +480403 1.22405e+06 +480428 983358 +480511 1.19902e+06 +480519 1.22176e+06 +480561 1.00929e+06 +480633 1.14072e+06 +480797 1.23101e+06 +480842 1.21968e+06 +480906 1.0564e+06 +480961 1.19779e+06 +480981 1.09048e+06 +481128 988647 +481131 1.05198e+06 +481172 1.22759e+06 +481183 1.23429e+06 +481192 961808 +481333 1.03633e+06 +481444 1.04516e+06 +481703 1.11945e+06 +481786 1.10111e+06 +481808 1.17036e+06 +481958 1.14312e+06 +481967 967725 +481969 1.06636e+06 +481989 1.22124e+06 +482200 1.22685e+06 +482258 1.14275e+06 +482325 1.01296e+06 +482364 1.01133e+06 +482414 1.22369e+06 +482556 1.216e+06 +482753 1.01428e+06 +482764 1.17714e+06 +482767 1.16552e+06 +482889 994372 +482917 973711 +482933 1.22642e+06 +483078 1.12249e+06 +483172 1.0239e+06 +483328 968206 +483444 1.03165e+06 +483458 1.00405e+06 +483597 1.07874e+06 +483614 1.19582e+06 +483636 1.20121e+06 +483689 999958 +483725 1.14181e+06 +483883 1.15555e+06 +483925 1.22494e+06 +483972 1.02938e+06 +483986 977408 +483989 935556 +484111 1.14337e+06 +484111 1.19526e+06 +484122 974103 +484214 1.22333e+06 +484500 968722 +484633 1.15889e+06 +484758 1.22324e+06 +484867 992094 +485039 1.22236e+06 +485053 1.11856e+06 +485106 1.10967e+06 +485128 1.22611e+06 +485333 1.08783e+06 +485344 1.23016e+06 +485394 1.21745e+06 +485467 1.17904e+06 +485500 1.09683e+06 +485569 1.13012e+06 +485711 971775 +485775 965203 +485867 933989 +485900 1.09231e+06 +486011 934108 +486108 1.18055e+06 +486331 1.12325e+06 +486483 1.18737e+06 +486608 998411 +486747 1.02082e+06 +486914 1.16315e+06 +487006 961814 +487053 1.19438e+06 +487125 945997 +487411 1.17416e+06 +487458 1.22401e+06 +487597 1.22487e+06 +487600 983678 +487633 1.01513e+06 +487744 969461 +487747 1.04562e+06 +487925 1.0542e+06 +487939 976219 +488031 1.02246e+06 +488131 1.00061e+06 +488272 1.00445e+06 +488392 997444 +488461 957625 +488467 1.2259e+06 +488578 996175 +488800 1.15052e+06 +489053 953142 +489094 1.0102e+06 +489142 1.03294e+06 +489203 1.22341e+06 +489233 979178 +489392 1.19434e+06 +489467 1.22451e+06 +489664 972433 +489939 1.22746e+06 +490000 1.22264e+06 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/simulated_annealing b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/simulated_annealing new file mode 100755 index 0000000000000000000000000000000000000000..8915fc20e40cea7bfd69a141b56a7e18413af5bd GIT binary patch literal 471632 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�*y?vMJzwmS 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 Il0)481vPyWcK`qY literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/simulated_annealing.cpp b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/simulated_annealing.cpp new file mode 100644 index 000000000..364a01fe8 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Lesson3/simulated_annealing.cpp @@ -0,0 +1,67 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "simulated_annealing.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +int main (int __argc, char * __argv []) { + + if (__argc != 2) { + + std :: cerr << "Usage : ./simulated_annealing [instance]" << std :: endl ; + return 1 ; + } + + Graph :: load (__argv [1]) ; // Instance + + Route route ; // Solution + + RouteInit init ; // Sol. Random Init. + init (route) ; + + RouteEval full_eval ; // Full. Eval. + full_eval (route) ; + + std :: cout << "[From] " << route << std :: endl ; + + /* Tools for an efficient (? :-)) + local search ! */ + + TwoOptRand two_opt_rand ; // Route Random. Gen. + + TwoOptIncrEval two_opt_incr_eval ; // Eff. eval. + + TwoOpt move ; + + moEasyCoolSched cool_sched (0.1, 0.98) ; // Cooling Schedule + + moGenSolContinue cont (1000) ; /* Temperature Descreasing + will occur each 100 + iterations */ + + moSA simul_anneal (two_opt_rand, two_opt_incr_eval, cont, 1000, cool_sched, full_eval) ; + simul_anneal (route) ; + + std :: cout << "[To] " << route << std :: endl ; + + return 0 ; +} + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/Makefile.am b/trunk/paradiseo-mo/tutorial/tutorial/Makefile.am new file mode 100644 index 000000000..d4b5c340c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = examples Lesson1 Lesson2 Lesson3 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/Makefile.am b/trunk/paradiseo-mo/tutorial/tutorial/examples/Makefile.am new file mode 100644 index 000000000..9f1b78722 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = tsp diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/Makefile.am b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/Makefile.am new file mode 100644 index 000000000..af437a64d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = src diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/ali535.tsp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/ali535.tsp new file mode 100644 index 000000000..7fec4bf14 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/ali535.tsp @@ -0,0 +1,536 @@ +535 +36.49 7.49 +57.06 9.51 +30.22 48.14 +5.15 -3.56 +34.59 -106.37 +57.12 -2.12 +16.45 -99.45 +5.36 -0.1 +28.56 -13.36 +8.59 38.48 +12.5 45.02 +-34.48 138.38 +30.23 -9.33 +56.18 12.51 +36.4 -4.3 +40.38 8.17 +35.11 -3.5 +41.55 8.48 +-37.01 174.47 +38.17 -0.34 +36.42 3.13 +36.11 37.14 +35.14 -101.42 +31.58 35.59 +52.18 4.46 +61.1 -149.59 +39.57 32.41 +51.11 4.28 +17.08 -61.47 +43.37 13.22 +29.38 35.01 +59.39 17.55 +15.18 38.55 +-25.14 -57.31 +23.58 32.47 +37.54 23.44 +33.46 -84.31 +12.3 -70.01 +24.26 54.28 +36.55 30.48 +26.16 50.38 +40.29 50.01 +39.11 -76.4 +10.48 -74.52 +-16.11 -52.3 +10.25 45.01 +41.18 2.05 +32.22 -64.42 +41.56 -72.41 +40.39 17.57 +44.49 20.19 +9.21 34.31 +32.06 20.16 +52.29 13.24 +48.27 -4.25 +-19.48 3.45 +33.49 35.29 +54.39 -6.14 +35.48 -101.22 +4.24 18.31 +13.04 -59.3 +60.17 5.13 +44.48 -68.5 +33.14 44.14 +45.4 9.24 +33.34 -86.45 +52.27 -1.45 +42.33 9.29 +45.48 -108.37 +43.28 -1.32 +13.21 -16.4 +-3.19 29.19 +13.55 100.36 +12.38 -8.02 +55.44 9.09 +44.32 11.18 +12.57 77.4 +-15.41 34.58 +27.13 56.22 +-27.25 153.05 +44.5 -0.43 +4.42 -74.09 +50.47 -1.51 +19.05 72.52 +67.16 14.22 +42.22 -71 +53.03 8.48 +41.08 16.47 +46.55 7.3 +51.31 -2.35 +50.54 4.29 +-15.52 -47.55 +47.35 7.32 +48.1 16.13 +47.27 19.15 +-34.49 -58.32 +42.55 -78.38 +44.3 26.06 +49.27 2.07 +-4.15 15.15 +39.15 9.04 +30.08 31.24 +23.11 113.16 +33.33 -7.4 +-11.54 22.45 +4.49 -52.22 +52.13 0.11 +-35.19 149.12 +10.36 -66.59 +22.39 88.27 +52.5 -1.19 +49.01 2.33 +43.33 6.57 +45.4 -0.19 +39.37 19.55 +50.52 7.09 +41.59 -87.54 +41.48 12.36 +9.34 -13.37 +41.25 -81.51 +3.26 -76.25 +42.31 8.48 +-28.02 145.37 +7.11 79.53 +40.04 -83.04 +33.22 -7.35 +48.07 7.22 +44.22 28.29 +45.4 -0.19 +6.21 2.23 +55.37 12.39 +-33.58 18.36 +37.28 15.04 +10.27 -75.31 +-26.25 146.14 +39 17.05 +12.12 -68.57 +39.09 -84.2 +39.03 -84.2 +51.24 -3.12 +29.11 -81.03 +23.46 90.23 +14.45 42.59 +32.5 -96.51 +33.25 36.31 +-6.53 39.12 +42.34 18.16 +-29.58 30.57 +38.51 -77.02 +28.34 77.07 +39.46 -104.53 +32.46 -96.24 +26.16 50.1 +47.16 5.05 +33.52 10.47 +14.45 -17.3 +4.01 9.43 +19.08 30.26 +25.16 51.34 +49.22 0.1 +-8.45 115.1 +51.08 13.46 +-12.25 130.52 +42.14 -83.32 +42.13 -83.21 +53.26 -6.15 +51.17 6.45 +25.15 55.2 +0.03 32.26 +45.32 4.18 +55.57 -3.22 +51.27 5.23 +31.48 -106.16 +52.5 -1.19 +48.19 6.04 +40.07 33 +40.09 82.4 +40.42 -74.1 +50.44 -3.25 +-34.49 -58.32 +64.49 -147.51 +37.01 -7.58 +-11.35 27.31 +59.54 10.37 +41.49 12.15 +14.35 -61 +33.56 45.8 +-4.23 15.26 +43.49 11.12 +8.37 -13.12 +41.26 15.32 +50.02 8.34 +44.12 12.04 +-21.13 27.29 +28.27 -13.52 +53.29 -1 +-19.27 29.52 +54.23 18.28 +60.12 11.05 +24.57 10.1 +-22.5 -43.15 +55.52 -4.26 +45.22 5.2 +7.09 41.43 +44.25 8.5 +57.4 18.18 +41.54 2.46 +37.11 -3.47 +47 15.26 +51.09 -0.11 +14.34 -90.32 +46.14 6.07 +-2.09 -79.53 +52.28 9.42 +53.38 10 +60.19 24.58 +35.2 25.11 +30.2 120.51 +22.19 114.12 +31.4 6.09 +35.33 139.46 +21.2 -157.55 +29.59 -95.28 +38.57 -77.27 +43.06 -78.57 +38.52 1.22 +47.34 -97.27 +50.21 30.55 +-25.44 -54.28 +39.44 -86.17 +40.59 28.49 +38.17 27.1 +21.3 39.12 +49.13 -2.12 +40.38 -73.46 +11.33 43.1 +-6.09 106.51 +-26.08 28.15 +-3.22 36.38 +45.28 -73.44 +12.03 8.31 +34.34 69.12 +63.59 -22.37 +-1.58 30.08 +22.34 120.17 +24.54 67.09 +-6.18 155.43 +17.56 -76.48 +50.05 19.47 +15.36 32.33 +27.42 85.22 +3.08 101.33 +29.13 47.58 +-8.51 13.14 +10.36 -66.59 +36.04 -115.09 +33.56 -118.24 +53.52 -1.39 +48.58 2.27 +0.27 9.25 +34.52 33.38 +43.11 0 +59.49 30.17 +36.51 -2.22 +51.24 12.25 +51.25 12.14 +6.1 1.15 +40.46 -73.52 +33.57 -118.24 +50.38 5.27 +51.09 -0.11 +51.28 -0.27 +50.34 3.05 +-12.01 -77.07 +45.27 9.16 +38.46 -9.08 +46.13 14.28 +35.3 12.37 +48.14 14.11 +51.28 -0.27 +6.35 3.2 +27.56 -15.23 +-16.3 -68.11 +53.21 -2.53 +6.1 1.15 +51.53 -0.22 +-25.55 32.34 +-15.2 28.27 +4.27 114 +49.37 6.12 +-17.49 25.49 +25.41 32.43 +45.44 4.56 +13 80.11 +40.29 -3.34 +31.52 -4.13 +53.21 -2.16 +-3.04 -60 +10.34 -71.44 +-4.02 39.36 +46.22 15.47 +39.18 -94.44 +28.32 -81.2 +23.36 58.17 +44.25 8.5 +-37.44 144.54 +24.31 39.42 +-37.41 144.51 +19.26 -99.04 +12.07 -86.11 +2.01 45.19 +25.48 -80.17 +20.56 -89.41 +45.27 9.16 +35.45 10.45 +39.07 -94.36 +35.52 14.29 +4.11 73.32 +47.45 7.26 +55.33 13.22 +54.31 -1.25 +14.31 121.01 +55.58 37.25 +43.35 3.58 +-25.55 32.34 +-8.58 125.13 +43.26 5.13 +-20.26 57.41 +51.21 1.21 +44.53 -93.13 +53.52 27.33 +50.55 5.47 +29.59 -90.16 +-26.31 31.19 +48.08 11.42 +-34.5 -56.02 +45.38 8.43 +49.05 6.08 +-17.45 177.27 +40.53 14.18 +25.02 -77.28 +-1.19 36.56 +43.4 7.13 +55.02 -1.41 +45.56 6.06 +12.08 15.02 +32.56 129.56 +35.09 36.17 +13.29 2.1 +18.06 -15.57 +-13 28.39 +58.35 16.15 +35.45 140.23 +47.09 -1.36 +49.3 11.05 +52.41 1.17 +40.38 -73.46 +55.28 10.2 +46.26 30.41 +26.21 127.46 +35.26 -97.46 +40.54 9.31 +41.07 -95.55 +41.14 -8.41 +41.59 -87.54 +51.5 -8.29 +28.26 -81.19 +35.38 -0.37 +48.43 2.23 +34.47 135.27 +60.12 11.05 +51.12 2.52 +44.34 26.06 +12.21 -1.31 +43.26 -5.5 +18.34 -72.17 +48.43 2.23 +40.05 116.36 +-31.56 115.58 +4.52 7.02 +37.08 -76.3 +39.52 -75.15 +33.26 -112.01 +55.52 -4.26 +46.35 0.18 +40.3 -80.14 +-5.15 39.49 +39.33 2.44 +38.1 13.06 +11.33 104.51 +36.49 11.58 +-9.27 147.13 +10.36 -61.21 +9.05 -79.23 +50.06 14.16 +43.41 10.24 +42.26 14.11 +16.16 -61.32 +9.03 -79.24 +43.23 -0.25 +45.39 12.12 +31.37 -8.03 +34.03 -6.45 +-8.08 -34.55 +38.04 15.39 +64.08 -21.57 +16.54 96.09 +49.19 4.03 +36.23 28.07 +-29.43 -53.42 +-22.5 -43.15 +45.13 14.35 +44.01 12.37 +48.04 -1.44 +6.14 -10.22 +41.49 12.15 +14.1 145.15 +-32.55 -60.47 +51.57 4.26 +24.42 46.44 +33.37 73.06 +6.3 -58.15 +15.29 44.13 +13.42 -89.07 +32.44 -117.11 +-23 -47.08 +29.32 -98.28 +-17.56 31.06 +48.31 -24.8 +-33.23 -70.47 +42.54 -8.25 +33.14 44.14 +18.26 -69.4 +47.27 -122.18 +27 14.27 +37.33 126.48 +51.34 0.42 +-4.4 55.31 +37.37 -122.23 +31.12 121.2 +25.21 55.24 +16.45 -22.57 +1.21 103.54 +37.22 -121.56 +43.49 18.2 +9.58 -84.16 +9.59 -84.12 +18.26 -66.01 +40.31 22.58 +41.58 21.38 +40.53 -111.57 +36.58 -25.1 +52.42 -8.55 +42.42 23.24 +43.32 16.18 +-12.54 -38.2 +38.45 -90.22 +51.33 0.14 +59.39 17.55 +48.41 9.13 +38.54 16.15 +58.53 5.38 +55.58 37.25 +37.26 -5.54 +48.32 7.38 +52.22 13.3 +-33.56 151.1 +29.33 52.36 +47.48 13 +40.31 17.24 +41.19 69.24 +28.29 -16.2 +38.31 -28.43 +43.11 0 +28.29 -16.2 +14.02 -87.14 +52.29 13.24 +35.41 51.19 +41.2 19.47 +32.4 13.09 +43.37 1.23 +32.01 34.53 +22.49 5.27 +0.23 6.43 +35.43 -5.55 +-18.48 47.29 +33.56 8.06 +-24.42 -53.42 +25.04 121.33 +37.55 12.29 +51.23 -2.43 +45.12 7.39 +45.5 13.28 +45.39 12.12 +47.26 0.43 +36.18 -95.52 +36.51 10.14 +52.34 13.18 +35.33 139.46 +35.54 -83.53 +40.62 13.11 +-0.08 -78.29 +12.41 101.01 +13.45 -60.57 +44.55 4.58 +43.14 27.49 +45.3 12.21 +-23 -47.08 +48.07 16.33 +39.29 -0.29 +41.42 -4.51 +45.24 10.53 +38.57 -77.27 +52.1 20.58 +36.45 -6.04 +53.19 -113.35 +44.53 -63.31 +45.41 -74.02 +45.19 -75.4 +46.48 -71.24 +42.16 -82.58 +48.57 -54.34 +45.28 -73.44 +49.11 -123.1 +49.55 -97.14 +51.07 -114.01 +47.37 -52.45 +43.41 -79.38 +44.06 15.21 +45.45 16.04 +41.4 -1.03 +-6.13 39.13 +47.28 8.33 +51.33 0.14 +24.58 91.53 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/eil101.tsp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/eil101.tsp new file mode 100644 index 000000000..f12903349 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/eil101.tsp @@ -0,0 +1,102 @@ +101 +41 49 +35 17 +55 45 +55 20 +15 30 +25 30 +20 50 +10 43 +55 60 +30 60 +20 65 +50 35 +30 25 +15 10 +30 5 +10 20 +5 30 +20 40 +15 60 +45 65 +45 20 +45 10 +55 5 +65 35 +65 20 +45 30 +35 40 +41 37 +64 42 +40 60 +31 52 +35 69 +53 52 +65 55 +63 65 +2 60 +20 20 +5 5 +60 12 +40 25 +42 7 +24 12 +23 3 +11 14 +6 38 +2 48 +8 56 +13 52 +6 68 +47 47 +49 58 +27 43 +37 31 +57 29 +63 23 +53 12 +32 12 +36 26 +21 24 +17 34 +12 24 +24 58 +27 69 +15 77 +62 77 +49 73 +67 5 +56 39 +37 47 +37 56 +57 68 +47 16 +44 17 +46 13 +49 11 +49 42 +53 43 +61 52 +57 48 +56 37 +55 54 +15 47 +14 37 +11 31 +16 22 +4 18 +28 18 +26 52 +26 35 +31 67 +15 19 +22 22 +18 24 +26 27 +25 24 +22 27 +25 21 +19 21 +20 26 +18 18 +35 35 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/pr2392.tsp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/pr2392.tsp new file mode 100644 index 000000000..010a2c7ec --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/pr2392.tsp @@ -0,0 +1,2393 @@ +2392 +1639 2156 +1875 2925 +2150 2925 +2425 2925 +2525 2675 +2525 2575 +2525 2375 +2525 2275 +2525 2175 +2786 2148 +2786 2249 +2786 2352 +2785 2451 +2785 2552 +2787 2651 +2925 2925 +3198 2925 +3475 2925 +3725 2925 +3675 2675 +3675 2575 +3675 2375 +3675 2275 +3675 2175 +4189 2156 +4190 2256 +4190 2355 +4189 2456 +4189 2556 +4190 2656 +4275 2975 +4425 2925 +4700 2925 +4975 2925 +5075 2675 +5075 2575 +5075 2375 +5075 2275 +5075 2175 +5336 2148 +5336 2249 +5336 2352 +5335 2451 +5335 2552 +5337 2651 +5475 2925 +5748 2925 +6025 2925 +6275 2925 +6225 2675 +6225 2575 +6225 2375 +6225 2275 +6225 2175 +6739 2156 +6740 2256 +6740 2355 +6739 2456 +6739 2556 +6740 2656 +6825 2975 +6975 2925 +7250 2925 +7525 2925 +7625 2675 +7625 2575 +7625 2375 +7625 2275 +7625 2175 +7886 2148 +7886 2249 +7886 2352 +7885 2451 +7885 2552 +7887 2651 +8025 2925 +8298 2925 +8575 2925 +8825 2925 +8775 2675 +8775 2575 +8775 2375 +8775 2275 +8775 2175 +9289 2156 +9290 2256 +9290 2355 +9289 2456 +9289 2556 +9290 2656 +9375 2975 +9525 2925 +9800 2925 +10075 2925 +10175 2675 +10175 2575 +10175 2375 +10175 2275 +10175 2175 +10436 2148 +10436 2249 +10436 2352 +10435 2451 +10435 2552 +10437 2651 +10575 2925 +10848 2925 +11125 2925 +11325 2175 +11325 2275 +11325 2375 +11325 2575 +11325 2675 +11375 2925 +11375 3125 +11400 3225 +11400 3325 +11400 3475 +11400 3625 +11300 3825 +11125 3825 +11125 3925 +11025 3975 +10925 3975 +10925 3875 +10550 3925 +10550 3725 +10550 3325 +10100 3325 +10100 3725 +10100 3925 +9725 3875 +9725 3975 +9625 3975 +9550 3875 +9425 3875 +9275 3900 +9250 3700 +9250 3575 +9250 3475 +9250 3375 +9250 3275 +8825 3125 +8850 3225 +8850 3325 +8850 3475 +8850 3625 +8750 3825 +8575 3825 +8575 3925 +8475 3975 +8375 3875 +8375 3975 +8400 4125 +8300 4175 +8400 4275 +8500 4175 +8675 4325 +8775 4425 +8825 4325 +9275 4275 +9375 4275 +9325 4375 +9400 4450 +9400 4550 +9325 4500 +9215 4560 +9215 4710 +9375 4775 +9215 4860 +9215 5010 +9215 5160 +9215 5310 +9215 5460 +9215 5610 +9475 5675 +9475 5525 +9475 5425 +9475 5275 +9475 5025 +9575 5075 +9725 5075 +9675 4975 +9575 4925 +9525 4775 +9600 4675 +9625 4775 +9775 4775 +9975 4600 +9875 4600 +9800 4525 +9700 4525 +9700 4425 +9800 4425 +9800 4325 +9700 4275 +9600 4175 +9700 4125 +9800 4175 +9875 4275 +9975 4275 +10075 4175 +10275 4175 +10375 4175 +10575 4175 +10675 4275 +10775 4275 +10850 4325 +10850 4425 +10850 4525 +10775 4575 +10675 4575 +10875 4775 +11025 4775 +11175 4725 +11050 4675 +10950 4500 +10950 4400 +10950 4275 +10850 4175 +10950 4125 +11050 4175 +11225 4325 +11375 4325 +11325 4425 +11325 4575 +11325 4675 +11325 4775 +11325 4925 +11450 4925 +11450 5075 +11422 5204 +11425 5325 +11325 5275 +11325 5375 +11175 5375 +11175 5275 +11125 5175 +11100 5025 +10975 4975 +10925 5075 +10950 5175 +10900 5275 +10900 5375 +10800 5175 +10525 5175 +10325 5175 +10325 5025 +10425 5075 +10475 4975 +10325 4875 +10175 4975 +10225 5075 +10125 5175 +9975 5175 +10050 5250 +10050 5350 +10025 5450 +10175 5450 +10325 5450 +10475 5450 +10575 5450 +10675 5450 +10525 6025 +10525 6125 +10675 6125 +10825 6025 +11025 6050 +11224 5908 +11400 5975 +11400 6375 +11400 6575 +11175 6575 +11025 6450 +10975 6675 +11075 6775 +10975 6875 +11175 6975 +11375 6975 +11325 7075 +11400 7150 +11125 7150 +10975 7150 +10875 7325 +10925 7425 +11075 7425 +11175 7475 +11075 7575 +11175 7625 +11175 7725 +11025 7725 +11025 7825 +11175 7825 +11325 7875 +11425 7925 +11425 8075 +11325 8075 +11275 8175 +11425 8225 +11425 8375 +11275 8325 +11175 8325 +11075 8225 +10975 8225 +10925 7975 +10775 7825 +10825 7600 +10725 7575 +10775 7425 +10675 7425 +10525 7425 +10525 7575 +10450 7750 +10300 7750 +10425 7875 +10525 7925 +10575 7825 +10625 7975 +10725 7975 +10725 8075 +10625 8125 +10525 8075 +10425 8025 +10425 8125 +10250 8225 +10150 8225 +10225 8125 +10275 7975 +10125 7975 +10000 7875 +10000 7775 +9825 7825 +9625 7725 +9475 7725 +9425 7625 +9575 7625 +9625 7475 +9725 7575 +9825 7475 +10025 7525 +9975 7425 +9925 7275 +9825 7075 +9625 7075 +9725 6975 +9875 6775 +9725 6775 +9575 6825 +9575 6675 +9725 6425 +9625 6200 +9725 6025 +9625 6000 +9225 6375 +9225 6525 +9375 6525 +9375 6675 +9225 6675 +9225 6875 +9225 7075 +9226 7259 +9225 7260 +9226 7409 +9225 7410 +9225 7560 +9226 7560 +9225 7710 +9225 7711 +9325 7825 +9225 7875 +9225 7975 +9225 8075 +9225 8175 +9225 8275 +9225 8375 +9225 8475 +9275 8825 +9475 8825 +9578 8820 +9847 8703 +9875 8825 +10025 8725 +10075 8825 +10175 8725 +10100 8575 +10250 8375 +10250 8475 +10250 8625 +10475 8775 +10575 8775 +10675 8775 +10775 8775 +10925 8775 +10875 8625 +10875 8525 +10975 8575 +11175 8475 +11275 8425 +11350 8575 +11450 8675 +11350 8775 +11325 9325 +11325 9425 +11325 9525 +11325 9725 +11325 9825 +11125 10075 +11375 10075 +11375 10275 +11400 10375 +11400 10475 +11400 10625 +11400 10775 +11300 10975 +11125 10975 +11125 11075 +11025 11125 +10925 11125 +10925 11025 +10550 10875 +10550 11075 +10275 11325 +10375 11325 +10575 11325 +10675 11425 +10775 11425 +10850 11475 +10850 11575 +10850 11675 +10775 11725 +10675 11725 +10875 11925 +11025 11925 +11175 11875 +11050 11825 +10950 11650 +10950 11550 +10950 11425 +10850 11325 +10950 11275 +11050 11325 +11225 11475 +11375 11475 +11325 11575 +11325 11725 +11325 11825 +11325 11925 +11325 12075 +11450 12075 +11450 12225 +11422 12354 +11425 12475 +11325 12425 +11325 12525 +11175 12525 +11175 12425 +11125 12325 +11100 12175 +10975 12125 +10925 12225 +10950 12325 +10900 12425 +10900 12525 +10800 12325 +10525 12325 +10425 12225 +10475 12125 +10325 12025 +10175 12125 +10225 12225 +10325 12175 +10325 12325 +10125 12325 +9975 12325 +10050 12400 +10050 12500 +10025 12600 +10175 12600 +10325 12600 +10475 12600 +10575 12600 +10675 12600 +10525 13175 +10525 13275 +10675 13275 +10825 13175 +11025 13200 +11224 13058 +11400 13125 +11400 13525 +11400 13725 +11175 13725 +11025 13600 +10975 13825 +11075 13925 +10975 14025 +11175 14125 +11375 14125 +11325 14225 +11400 14300 +11125 14300 +10975 14300 +10875 14475 +10925 14575 +10825 14750 +10725 14725 +10775 14575 +10675 14575 +10525 14575 +10525 14725 +10450 14900 +10300 14900 +10425 15025 +10425 15175 +10425 15275 +10525 15225 +10625 15275 +10725 15225 +10725 15125 +10625 15125 +10525 15075 +10575 14975 +10775 14975 +10925 15125 +11025 14975 +11025 14875 +11075 14725 +11075 14575 +11175 14625 +11175 14775 +11175 14875 +11175 14975 +11325 15025 +11425 15075 +11425 15225 +11325 15225 +11275 15325 +11425 15375 +11425 15525 +11350 15725 +11450 15825 +11350 15925 +11175 15625 +11275 15575 +11275 15475 +11175 15475 +11075 15375 +10975 15375 +10875 15675 +10975 15725 +10875 15775 +10925 15925 +10775 15925 +10675 15925 +10575 15925 +10475 15925 +10250 15775 +10175 15875 +10075 15975 +9875 15975 +9847 15853 +10025 15875 +10100 15725 +10250 15625 +10250 15525 +10250 15375 +10150 15375 +10225 15275 +10275 15125 +10125 15125 +10000 15025 +10000 14925 +9825 14975 +9625 14875 +9475 14875 +9425 14775 +9575 14775 +9625 14625 +9725 14725 +9825 14625 +10025 14675 +9975 14575 +9925 14425 +9825 14225 +9625 14225 +9725 14125 +9875 13925 +9725 13925 +9575 13975 +9575 13825 +9725 13575 +9625 13350 +9725 13175 +9625 13150 +9225 13525 +9225 13675 +9375 13675 +9375 13825 +9225 13825 +9225 14025 +9225 14225 +9226 14409 +9225 14410 +9226 14559 +9225 14560 +9225 14710 +9226 14710 +9225 14860 +9225 14861 +9325 14975 +9225 15025 +9225 15125 +9225 15225 +9225 15325 +9225 15425 +9225 15525 +9225 15625 +9578 15970 +9475 15975 +9275 15975 +8900 15825 +8800 15925 +8800 15725 +8725 15575 +8625 15625 +8425 15725 +8325 15675 +8325 15775 +8375 15925 +8225 15925 +8125 15925 +8025 15925 +7925 15925 +7700 15775 +7700 15625 +7700 15525 +7550 15725 +7625 15875 +7525 15975 +7475 15875 +7325 15975 +7297 15853 +7028 15970 +6925 15975 +6725 15975 +6675 15625 +6675 15525 +6675 15425 +6675 15325 +6675 15225 +6675 15125 +6675 15025 +6775 14975 +6675 14861 +6675 14860 +6676 14710 +6675 14710 +6675 14560 +6676 14559 +6675 14410 +6676 14409 +6675 14225 +6675 14025 +6675 13825 +6825 13825 +6825 13675 +6675 13675 +6675 13525 +7075 13150 +7175 13175 +7075 13350 +7175 13575 +7025 13825 +7025 13975 +7175 13925 +7325 13925 +7175 14125 +7075 14225 +7275 14225 +7375 14425 +7425 14575 +7475 14675 +7275 14625 +7175 14725 +7075 14625 +7025 14775 +6875 14775 +6925 14875 +7075 14875 +7275 14975 +7450 14925 +7450 15025 +7575 15125 +7725 15125 +7675 15275 +7600 15375 +7700 15375 +7875 15275 +7875 15175 +7975 15225 +8075 15275 +8175 15225 +8175 15125 +8075 15125 +8025 14975 +7975 15075 +7875 15025 +7750 14900 +7900 14900 +7975 14725 +7975 14575 +8125 14575 +8225 14575 +8175 14725 +8275 14750 +8225 14975 +8375 15125 +8425 15375 +8525 15375 +8625 15475 +8725 15475 +8875 15525 +8875 15375 +8725 15325 +8775 15225 +8875 15225 +8875 15075 +8775 15025 +8625 14975 +8475 14975 +8475 14875 +8625 14875 +8625 14775 +8525 14725 +8625 14625 +8525 14575 +8375 14575 +8325 14475 +8425 14300 +8575 14300 +8850 14300 +8775 14225 +8825 14125 +8625 14125 +8425 14025 +8525 13925 +8425 13825 +8475 13600 +8625 13725 +8850 13725 +8850 13525 +8850 13125 +8674 13058 +8475 13200 +8275 13175 +8125 13275 +7975 13275 +7975 13175 +8125 12600 +8025 12600 +7925 12600 +7775 12600 +7625 12600 +7475 12600 +7500 12500 +7500 12400 +7425 12325 +7575 12325 +7675 12225 +7625 12125 +7775 12025 +7925 12125 +7875 12225 +7775 12175 +7775 12325 +7975 12325 +8250 12325 +8350 12525 +8350 12425 +8400 12325 +8375 12225 +8425 12125 +8550 12175 +8575 12325 +8625 12425 +8625 12525 +8775 12525 +8775 12425 +8875 12475 +8872 12354 +8900 12225 +8900 12075 +8775 12075 +8775 11925 +8775 11825 +8775 11725 +8775 11575 +8825 11475 +8675 11475 +8500 11325 +8400 11275 +8300 11325 +8400 11425 +8400 11550 +8400 11650 +8500 11825 +8625 11875 +8475 11925 +8325 11925 +8125 11725 +8225 11725 +8300 11675 +8300 11575 +8300 11475 +8225 11425 +8125 11425 +8025 11325 +7825 11325 +7725 11325 +7525 11325 +7425 11425 +7325 11425 +7250 11325 +7150 11275 +7050 11325 +7150 11425 +7250 11475 +7250 11575 +7150 11575 +7150 11675 +7250 11675 +7325 11750 +7425 11750 +7225 11925 +7075 11925 +7050 11825 +6975 11925 +7025 12075 +7125 12125 +7175 12225 +7025 12225 +6925 12175 +6925 12425 +6925 12575 +6925 12675 +6925 12825 +6665 12760 +6665 12610 +6665 12460 +6665 12310 +6665 12160 +6665 12010 +6825 11925 +6665 11860 +6665 11710 +6775 11650 +6850 11700 +6850 11600 +6775 11525 +6825 11425 +6725 11425 +6275 11475 +6225 11575 +6125 11475 +5950 11325 +5850 11425 +5750 11325 +5850 11275 +5825 11125 +5825 11025 +5925 11125 +6025 11075 +6025 10975 +6200 10975 +6300 10775 +6300 10625 +6300 10475 +6300 10375 +6275 10275 +6700 10425 +6700 10525 +6700 10625 +6700 10725 +6700 10850 +6725 11050 +6875 11025 +7000 11025 +7075 11125 +7175 11125 +7175 11025 +7550 11075 +7550 10875 +7550 10475 +8000 10475 +8000 10875 +8000 11075 +8375 11025 +8375 11125 +8475 11125 +8575 11075 +8575 10975 +8750 10975 +8850 10775 +8850 10625 +8850 10475 +8850 10375 +8825 10275 +9250 10425 +9250 10525 +9250 10625 +9250 10725 +9250 10850 +9275 11050 +9425 11025 +9550 11025 +9625 11125 +9725 11025 +9725 11125 +9700 11275 +9800 11325 +9700 11425 +9600 11325 +9375 11425 +9275 11425 +9325 11525 +9400 11600 +9400 11700 +9325 11650 +9215 11710 +9215 11860 +9375 11925 +9215 12010 +9215 12160 +9215 12310 +9215 12460 +9215 12610 +9215 12760 +9475 12825 +9475 12675 +9475 12575 +9475 12425 +9475 12175 +9575 12225 +9725 12225 +9675 12125 +9575 12075 +9525 11925 +9600 11825 +9625 11925 +9775 11925 +9975 11750 +9875 11750 +9800 11675 +9700 11675 +9700 11575 +9800 11575 +9800 11475 +9875 11425 +9975 11425 +10075 11325 +10100 11075 +10100 10875 +10100 10475 +10550 10475 +10848 10075 +10575 10075 +10437 9801 +10435 9702 +10435 9601 +10436 9502 +10436 9399 +10436 9298 +10175 9325 +10175 9425 +10175 9525 +10175 9725 +10175 9825 +10075 10075 +9800 10075 +9525 10075 +9375 10125 +9290 9806 +9289 9706 +9289 9606 +9290 9505 +9290 9406 +9289 9306 +8775 9325 +8775 9425 +8775 9525 +8775 9725 +8775 9825 +8825 10075 +8575 10075 +8298 10075 +8025 10075 +7887 9801 +7885 9702 +7885 9601 +7886 9502 +7886 9399 +7886 9298 +7625 9325 +7625 9425 +7625 9525 +7625 9725 +7625 9825 +7525 10075 +7250 10075 +6975 10075 +6825 10125 +6740 9806 +6739 9706 +6739 9606 +6740 9505 +6740 9406 +6739 9306 +7028 8820 +6925 8825 +6725 8825 +6675 8475 +6675 8375 +6675 8275 +6675 8175 +6675 8075 +6675 7975 +6675 7875 +6775 7825 +6675 7711 +6675 7710 +6676 7560 +6675 7560 +6675 7410 +6676 7409 +6675 7260 +6676 7259 +6675 7075 +6675 6875 +6675 6675 +6825 6675 +6825 6525 +6675 6525 +6675 6375 +7075 6000 +7175 6025 +7075 6200 +7175 6425 +7025 6675 +7025 6825 +7175 6775 +7325 6775 +7175 6975 +7075 7075 +7275 7075 +7375 7275 +7425 7425 +7475 7525 +7275 7475 +7175 7575 +7075 7475 +7025 7625 +6875 7625 +6925 7725 +7075 7725 +7275 7825 +7450 7775 +7450 7875 +7575 7975 +7725 7975 +7675 8125 +7600 8225 +7700 8225 +7700 8375 +7700 8475 +7550 8575 +7475 8725 +7297 8703 +7325 8825 +7525 8825 +7625 8725 +7700 8625 +7925 8775 +8025 8775 +8125 8775 +8225 8775 +8375 8775 +8325 8625 +8425 8575 +8325 8525 +8425 8225 +8525 8225 +8625 8325 +8725 8325 +8725 8425 +8625 8475 +8800 8775 +8900 8675 +8800 8575 +8875 8375 +8875 8225 +8725 8175 +8775 8075 +8875 8075 +8875 7925 +8775 7875 +8625 7825 +8625 7725 +8625 7625 +8625 7475 +8525 7425 +8525 7575 +8475 7725 +8475 7825 +8375 7975 +8225 7825 +8025 7825 +7975 7925 +8075 7975 +8175 7975 +8175 8075 +8075 8125 +7975 8075 +7875 8125 +7875 8025 +7875 7875 +7750 7750 +7900 7750 +7975 7575 +7975 7425 +8125 7425 +8225 7425 +8175 7575 +8275 7600 +8375 7425 +8325 7325 +8425 7150 +8575 7150 +8850 7150 +8775 7075 +8825 6975 +8625 6975 +8425 6875 +8525 6775 +8425 6675 +8475 6450 +8625 6575 +8850 6575 +8850 6375 +8850 5975 +8674 5908 +8475 6050 +8275 6025 +8125 6125 +7975 6125 +7975 6025 +8125 5450 +8025 5450 +7925 5450 +7775 5450 +7625 5450 +7475 5450 +7500 5350 +7500 5250 +7425 5175 +7575 5175 +7675 5075 +7625 4975 +7775 4875 +7925 4975 +7875 5075 +7775 5025 +7775 5175 +7975 5175 +8250 5175 +8350 5375 +8350 5275 +8400 5175 +8375 5075 +8425 4975 +8550 5025 +8575 5175 +8625 5275 +8625 5375 +8775 5375 +8775 5275 +8875 5325 +8872 5204 +8900 5075 +8900 4925 +8775 4925 +8775 4775 +8775 4675 +8775 4575 +8625 4725 +8500 4675 +8475 4775 +8325 4775 +8125 4575 +8225 4575 +8300 4525 +8400 4500 +8400 4400 +8300 4425 +8300 4325 +8225 4275 +8125 4275 +8025 4175 +8000 3925 +8000 3725 +8000 3325 +7550 3325 +7550 3725 +7550 3925 +7825 4175 +7725 4175 +7525 4175 +7425 4275 +7325 4275 +7250 4325 +7250 4425 +7150 4425 +7150 4525 +7250 4525 +7325 4600 +7425 4600 +7225 4775 +7075 4775 +7050 4675 +6975 4775 +7025 4925 +7125 4975 +7175 5075 +7025 5075 +6925 5025 +6925 5275 +6925 5425 +6925 5525 +6925 5675 +6665 5610 +6665 5460 +6665 5310 +6665 5160 +6665 5010 +6665 4860 +6825 4775 +6665 4710 +6665 4560 +6775 4500 +6850 4550 +6850 4450 +6775 4375 +6725 4275 +6825 4275 +7050 4175 +7150 4275 +7250 4175 +7150 4125 +7175 3975 +7175 3875 +7075 3975 +7000 3875 +6875 3875 +6725 3900 +6700 3700 +6700 3575 +6700 3475 +6700 3375 +6700 3275 +6275 3125 +6300 3225 +6300 3325 +6300 3475 +6300 3625 +6200 3825 +6025 3825 +6025 3925 +5925 3975 +5825 3975 +5825 3875 +5450 3925 +5450 3725 +5450 3325 +5000 3325 +5000 3725 +5000 3925 +4625 3875 +4625 3975 +4525 3975 +4450 3875 +4325 3875 +4175 3900 +4150 3700 +4150 3575 +4150 3475 +4150 3375 +4150 3275 +3725 3125 +3750 3225 +3750 3325 +3750 3475 +3750 3625 +3650 3825 +3475 3825 +3475 3925 +3375 3975 +3275 3875 +3275 3975 +3300 4125 +3200 4175 +3300 4275 +3400 4175 +3575 4325 +3675 4425 +3725 4325 +4175 4275 +4275 4275 +4225 4375 +4300 4450 +4300 4550 +4225 4500 +4115 4560 +4115 4710 +4275 4775 +4115 4860 +4115 5010 +4115 5160 +4115 5310 +4115 5460 +4115 5610 +4375 5675 +4375 5525 +4375 5425 +4375 5275 +4375 5025 +4475 5075 +4625 5075 +4575 4975 +4475 4925 +4425 4775 +4500 4675 +4525 4775 +4675 4775 +4875 4600 +4775 4600 +4700 4525 +4600 4525 +4600 4425 +4700 4425 +4700 4325 +4600 4275 +4500 4175 +4600 4125 +4700 4175 +4775 4275 +4875 4275 +4975 4175 +5175 4175 +5275 4175 +5475 4175 +5575 4275 +5675 4275 +5750 4325 +5750 4425 +5750 4525 +5675 4575 +5575 4575 +5775 4775 +5925 4775 +6075 4725 +5950 4675 +5850 4500 +5850 4400 +5850 4275 +5750 4175 +5850 4125 +5950 4175 +6125 4325 +6275 4325 +6225 4425 +6225 4575 +6225 4675 +6225 4775 +6225 4925 +6350 4925 +6350 5075 +6322 5204 +6325 5325 +6225 5275 +6225 5375 +6075 5375 +6075 5275 +6025 5175 +6000 5025 +5875 4975 +5825 5075 +5850 5175 +5800 5275 +5800 5375 +5700 5175 +5425 5175 +5325 5075 +5375 4975 +5225 4875 +5075 4975 +5125 5075 +5225 5025 +5225 5175 +5025 5175 +4875 5175 +4950 5250 +4950 5350 +4925 5450 +5075 5450 +5225 5450 +5375 5450 +5475 5450 +5575 5450 +5425 6025 +5425 6125 +5575 6125 +5725 6025 +5925 6050 +6124 5908 +6300 5975 +6300 6375 +6300 6575 +6075 6575 +5925 6450 +5875 6675 +5975 6775 +5875 6875 +6075 6975 +6275 6975 +6225 7075 +6300 7150 +6025 7150 +5875 7150 +5775 7325 +5825 7425 +5975 7425 +6075 7475 +5975 7575 +6075 7625 +6075 7725 +5925 7725 +5925 7825 +6075 7825 +6225 7875 +6325 7925 +6325 8075 +6225 8075 +6175 8175 +6325 8225 +6325 8375 +6175 8325 +6075 8325 +5975 8225 +5875 8225 +5825 7975 +5675 7825 +5725 7600 +5625 7575 +5675 7425 +5575 7425 +5425 7425 +5425 7575 +5350 7750 +5200 7750 +5325 7875 +5475 7825 +5425 7925 +5525 7975 +5625 7975 +5625 8075 +5525 8125 +5425 8075 +5325 8025 +5325 8125 +5150 8225 +5050 8225 +5125 8125 +5175 7975 +5025 7975 +4900 7875 +4900 7775 +4725 7825 +4525 7725 +4375 7725 +4325 7625 +4475 7625 +4525 7475 +4625 7575 +4725 7475 +4925 7525 +4875 7425 +4825 7275 +4725 7075 +4525 7075 +4625 6975 +4775 6775 +4625 6775 +4475 6825 +4475 6675 +4625 6425 +4525 6200 +4625 6025 +4525 6000 +4125 6375 +4125 6525 +4275 6525 +4275 6675 +4125 6675 +4125 6875 +4125 7075 +4126 7259 +4125 7260 +4126 7409 +4125 7410 +4125 7560 +4126 7560 +4125 7710 +4125 7711 +4225 7825 +4125 7875 +4125 7975 +4125 8075 +4125 8175 +4125 8275 +4125 8375 +4125 8475 +4175 8825 +4375 8825 +4478 8820 +4747 8703 +4775 8825 +4925 8725 +4975 8825 +5075 8725 +5000 8575 +5150 8375 +5150 8475 +5150 8625 +5375 8775 +5475 8775 +5575 8775 +5675 8775 +5825 8775 +5775 8625 +5775 8525 +5875 8575 +6075 8475 +6175 8425 +6250 8575 +6350 8675 +6250 8775 +6225 9325 +6225 9425 +6225 9525 +6225 9725 +6225 9825 +6275 10075 +6025 10075 +5748 10075 +5475 10075 +5337 9801 +5335 9702 +5335 9601 +5336 9502 +5336 9399 +5336 9298 +5075 9325 +5075 9425 +5075 9525 +5075 9725 +5075 9825 +4975 10075 +4700 10075 +4425 10075 +4275 10125 +4190 9806 +4189 9706 +4189 9606 +4190 9505 +4190 9406 +4189 9306 +3675 9325 +3675 9425 +3675 9525 +3675 9725 +3675 9825 +3725 10075 +3475 10075 +3198 10075 +2925 10075 +2787 9801 +2785 9702 +2785 9601 +2786 9502 +2786 9399 +2786 9298 +2525 9325 +2525 9425 +2525 9525 +2525 9725 +2525 9825 +2425 10075 +2150 10075 +2450 10475 +2900 10475 +2900 10875 +2900 11075 +3275 11025 +3275 11125 +3375 11125 +3475 11075 +3475 10975 +3650 10975 +3750 10775 +3750 10625 +3750 10475 +3750 10375 +3725 10275 +4150 10425 +4150 10525 +4150 10625 +4150 10725 +4150 10850 +4175 11050 +4325 11025 +4450 11025 +4525 11125 +4625 11025 +4625 11125 +4600 11275 +4700 11325 +4600 11425 +4500 11325 +4275 11425 +4175 11425 +4225 11525 +4300 11600 +4300 11700 +4225 11650 +4115 11710 +4115 11860 +4275 11925 +4115 12010 +4115 12160 +4115 12310 +4115 12460 +4115 12610 +4115 12760 +4375 12825 +4375 12675 +4375 12575 +4375 12425 +4375 12175 +4475 12225 +4625 12225 +4575 12125 +4475 12075 +4425 11925 +4500 11825 +4525 11925 +4675 11925 +4875 11750 +4775 11750 +4700 11675 +4600 11675 +4600 11575 +4700 11575 +4700 11475 +4775 11425 +4875 11425 +4975 11325 +5175 11325 +5275 11325 +5000 11075 +5000 10875 +5000 10475 +5450 10475 +5450 10875 +5450 11075 +5475 11325 +5575 11425 +5675 11425 +5750 11475 +5750 11575 +5850 11550 +5850 11650 +5750 11675 +5675 11725 +5575 11725 +5775 11925 +5925 11925 +5950 11825 +6075 11875 +6225 11725 +6225 11825 +6225 11925 +6225 12075 +6350 12075 +6350 12225 +6322 12354 +6325 12475 +6225 12425 +6225 12525 +6075 12525 +6075 12425 +6025 12325 +6000 12175 +5875 12125 +5825 12225 +5850 12325 +5800 12425 +5800 12525 +5700 12325 +5425 12325 +5325 12225 +5375 12125 +5225 12025 +5075 12125 +5125 12225 +5225 12175 +5225 12325 +5025 12325 +4875 12325 +4950 12400 +4950 12500 +4925 12600 +5075 12600 +5225 12600 +5375 12600 +5475 12600 +5575 12600 +5425 13175 +5425 13275 +5575 13275 +5725 13175 +5925 13200 +6124 13058 +6300 13125 +6300 13525 +6300 13725 +6075 13725 +5925 13600 +5875 13825 +5975 13925 +5875 14025 +6075 14125 +6275 14125 +6225 14225 +6300 14300 +6025 14300 +5875 14300 +5775 14475 +5825 14575 +5725 14750 +5625 14725 +5675 14575 +5575 14575 +5425 14575 +5425 14725 +5350 14900 +5200 14900 +5325 15025 +5325 15175 +5325 15275 +5425 15225 +5525 15275 +5625 15225 +5625 15125 +5525 15125 +5425 15075 +5475 14975 +5675 14975 +5825 15125 +5925 14975 +5925 14875 +5975 14725 +5975 14575 +6075 14625 +6075 14775 +6075 14875 +6075 14975 +6225 15025 +6325 15075 +6325 15225 +6225 15225 +6175 15325 +6325 15375 +6325 15525 +6250 15725 +6350 15825 +6250 15925 +6075 15625 +6175 15575 +6175 15475 +6075 15475 +5975 15375 +5875 15375 +5775 15675 +5875 15725 +5775 15775 +5825 15925 +5675 15925 +5575 15925 +5475 15925 +5375 15925 +5150 15775 +5075 15875 +4975 15975 +4775 15975 +4747 15853 +4925 15875 +5000 15725 +5150 15625 +5150 15525 +5150 15375 +5050 15375 +5125 15275 +5175 15125 +5025 15125 +4900 15025 +4900 14925 +4725 14975 +4525 14875 +4375 14875 +4325 14775 +4475 14775 +4525 14625 +4625 14725 +4725 14625 +4925 14675 +4875 14575 +4825 14425 +4725 14225 +4525 14225 +4625 14125 +4775 13925 +4625 13925 +4475 13975 +4475 13825 +4625 13575 +4525 13350 +4625 13175 +4525 13150 +4125 13525 +4125 13675 +4275 13675 +4275 13825 +4125 13825 +4125 14025 +4125 14225 +4126 14409 +4125 14410 +4126 14559 +4125 14560 +4125 14710 +4126 14710 +4125 14860 +4125 14861 +4225 14975 +4125 15025 +4125 15125 +4125 15225 +4125 15325 +4125 15425 +4125 15525 +4125 15625 +4478 15970 +4375 15975 +4175 15975 +3800 15825 +3700 15925 +3700 15725 +3625 15575 +3525 15625 +3325 15725 +3225 15675 +3225 15775 +3275 15925 +3125 15925 +3025 15925 +2925 15925 +2825 15925 +2600 15775 +2600 15625 +2600 15525 +2450 15725 +2525 15875 +2425 15975 +2375 15875 +2225 15975 +2197 15853 +1928 15970 +1825 15975 +1625 15975 +1575 15625 +1575 15525 +1575 15425 +1575 15325 +1575 15225 +1575 15125 +1575 15025 +1675 14975 +1575 14861 +1575 14860 +1575 14710 +1576 14710 +1575 14560 +1576 14559 +1575 14410 +1576 14409 +1575 14225 +1575 14025 +1575 13825 +1725 13825 +1725 13675 +1575 13675 +1575 13525 +1975 13150 +2075 13175 +1975 13350 +2075 13575 +1925 13825 +1925 13975 +2075 13925 +2225 13925 +2075 14125 +1975 14225 +2175 14225 +2275 14425 +2325 14575 +2375 14675 +2175 14625 +2075 14725 +1975 14625 +1925 14775 +1775 14775 +1825 14875 +1975 14875 +2175 14975 +2350 14925 +2350 15025 +2475 15125 +2625 15125 +2575 15275 +2500 15375 +2600 15375 +2775 15275 +2775 15175 +2875 15225 +2975 15275 +3075 15225 +3075 15125 +2975 15125 +2925 14975 +2875 15075 +2775 15025 +2650 14900 +2800 14900 +2875 14725 +2875 14575 +3025 14575 +3125 14575 +3075 14725 +3175 14750 +3125 14975 +3275 15125 +3325 15375 +3425 15375 +3525 15475 +3625 15475 +3775 15525 +3775 15375 +3625 15325 +3675 15225 +3775 15225 +3775 15075 +3675 15025 +3525 14975 +3375 14975 +3375 14875 +3525 14875 +3525 14775 +3425 14725 +3525 14625 +3425 14575 +3275 14575 +3225 14475 +3325 14300 +3475 14300 +3750 14300 +3675 14225 +3725 14125 +3525 14125 +3325 14025 +3425 13925 +3325 13825 +3375 13600 +3525 13725 +3750 13725 +3750 13525 +3750 13125 +3574 13058 +3375 13200 +3175 13175 +3025 13275 +2875 13275 +2875 13175 +3025 12600 +2925 12600 +2825 12600 +2675 12600 +2525 12600 +2375 12600 +2400 12500 +2400 12400 +2325 12325 +2475 12325 +2575 12225 +2525 12125 +2675 12025 +2825 12125 +2775 12225 +2675 12175 +2675 12325 +2875 12325 +3150 12325 +3250 12525 +3250 12425 +3300 12325 +3275 12225 +3325 12125 +3450 12175 +3475 12325 +3525 12425 +3525 12525 +3675 12525 +3675 12425 +3775 12475 +3772 12354 +3800 12225 +3800 12075 +3675 12075 +3675 11925 +3675 11825 +3675 11725 +3675 11575 +3725 11475 +3575 11475 +3400 11325 +3300 11275 +3200 11325 +3300 11425 +3300 11550 +3300 11650 +3400 11825 +3525 11875 +3375 11925 +3225 11925 +3025 11725 +3125 11725 +3200 11675 +3200 11575 +3200 11475 +3125 11425 +3025 11425 +2925 11325 +2725 11325 +2625 11325 +2450 10875 +2450 11075 +2425 11325 +2325 11425 +2225 11425 +2150 11475 +2150 11575 +2050 11575 +2050 11675 +2150 11675 +2225 11750 +2325 11750 +2125 11925 +1975 11925 +1950 11825 +1875 11925 +1925 12075 +2025 12125 +2075 12225 +1925 12225 +1825 12175 +1825 12425 +1825 12575 +1825 12675 +1825 12825 +1565 12760 +1565 12610 +1565 12460 +1565 12310 +1565 12160 +1565 12010 +1725 11925 +1565 11860 +1565 11710 +1675 11650 +1750 11700 +1750 11600 +1675 11525 +1625 11425 +1725 11425 +1950 11325 +2050 11425 +2150 11325 +2050 11275 +2075 11125 +2075 11025 +1975 11125 +1900 11025 +1775 11025 +1625 11050 +1600 10850 +1600 10725 +1600 10625 +1600 10525 +1600 10425 +1725 10125 +1875 10075 +1640 9806 +1639 9706 +1639 9606 +1640 9505 +1640 9406 +1639 9306 +1928 8820 +1825 8825 +1625 8825 +1575 8475 +1575 8375 +1575 8275 +1575 8175 +1575 8075 +1575 7975 +1575 7875 +1675 7825 +1575 7711 +1575 7710 +1576 7560 +1575 7560 +1575 7410 +1576 7409 +1575 7260 +1576 7259 +1575 7075 +1575 6875 +1575 6675 +1725 6675 +1725 6525 +1575 6525 +1575 6375 +1975 6000 +2075 6025 +1975 6200 +2075 6425 +1925 6675 +1925 6825 +2075 6775 +2225 6775 +2075 6975 +1975 7075 +2175 7075 +2275 7275 +2325 7425 +2375 7525 +2175 7475 +2075 7575 +1975 7475 +1925 7625 +1775 7625 +1825 7725 +1975 7725 +2175 7825 +2350 7775 +2350 7875 +2475 7975 +2625 7975 +2575 8125 +2500 8225 +2600 8225 +2600 8375 +2600 8475 +2450 8575 +2375 8725 +2197 8703 +2225 8825 +2425 8825 +2525 8725 +2600 8625 +2825 8775 +2925 8775 +3025 8775 +3125 8775 +3275 8775 +3225 8625 +3325 8575 +3225 8525 +3325 8225 +3425 8225 +3525 8325 +3625 8325 +3625 8425 +3525 8475 +3700 8775 +3800 8675 +3700 8575 +3775 8375 +3775 8225 +3625 8175 +3675 8075 +3775 8075 +3775 7925 +3675 7875 +3525 7825 +3525 7725 +3525 7625 +3525 7475 +3425 7425 +3425 7575 +3375 7725 +3375 7825 +3275 7975 +3125 7825 +2925 7825 +2875 7925 +2975 7975 +3075 7975 +3075 8075 +2975 8125 +2875 8075 +2775 8125 +2775 8025 +2775 7875 +2650 7750 +2800 7750 +2875 7575 +2875 7425 +3025 7425 +3125 7425 +3075 7575 +3175 7600 +3275 7425 +3225 7325 +3325 7150 +3475 7150 +3750 7150 +3675 7075 +3725 6975 +3525 6975 +3325 6875 +3425 6775 +3325 6675 +3375 6450 +3525 6575 +3750 6575 +3750 6375 +3750 5975 +3574 5908 +3375 6050 +3175 6025 +3025 6125 +2875 6125 +2875 6025 +3025 5450 +2925 5450 +2825 5450 +2675 5450 +2525 5450 +2375 5450 +2400 5350 +2400 5250 +2325 5175 +2475 5175 +2575 5075 +2525 4975 +2675 4875 +2825 4975 +2775 5075 +2675 5025 +2675 5175 +2875 5175 +3150 5175 +3250 5375 +3250 5275 +3300 5175 +3275 5075 +3325 4975 +3450 5025 +3475 5175 +3525 5275 +3525 5375 +3675 5375 +3675 5275 +3775 5325 +3772 5204 +3800 5075 +3800 4925 +3675 4925 +3675 4775 +3675 4675 +3675 4575 +3525 4725 +3400 4675 +3375 4775 +3225 4775 +3025 4575 +3125 4575 +3200 4525 +3300 4500 +3300 4400 +3200 4425 +3200 4325 +3125 4275 +3025 4275 +2925 4175 +2900 3925 +2900 3725 +2900 3325 +2450 3325 +2450 3725 +2450 3925 +2725 4175 +2625 4175 +2425 4175 +2325 4275 +2225 4275 +2150 4325 +2150 4425 +2050 4425 +2050 4525 +2150 4525 +2225 4600 +2325 4600 +2125 4775 +1975 4775 +1950 4675 +1875 4775 +1925 4925 +2025 4975 +2075 5075 +1925 5075 +1825 5025 +1825 5275 +1825 5425 +1825 5525 +1825 5675 +1565 5610 +1565 5460 +1565 5310 +1565 5160 +1565 5010 +1565 4860 +1725 4775 +1565 4710 +1565 4560 +1675 4500 +1750 4550 +1750 4450 +1675 4375 +1625 4275 +1725 4275 +1950 4175 +2050 4275 +2150 4175 +2050 4125 +2075 3975 +2075 3875 +1975 3975 +1900 3875 +1775 3875 +1625 3900 +1600 3700 +1600 3575 +1600 3475 +1600 3375 +1600 3275 +1725 2975 +1640 2656 +1639 2556 +1639 2456 +1640 2355 +1640 2256 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/readme b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/readme new file mode 100644 index 000000000..7203e5789 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/readme @@ -0,0 +1,35 @@ +NAME : eil101 +COMMENT : 101-city problem (Christofides/Eilon) +TYPE : TSP +DIMENSION : 101 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME: ali535 +TYPE: TSP +COMMENT: 535 Airports around the globe (Padberg/Rinaldi) +DIMENSION: 535 +EDGE_WEIGHT_TYPE: GEO +DISPLAY_DATA_TYPE: COORD_DISPLAY + +NAME : pr2392 +COMMENT : 2392-city problem (Padberg/Rinaldi) +TYPE : TSP +DIMENSION : 2392 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : rl5915 +COMMENT : 5915-city TSP (Reinelt) +TYPE : TSP +DIMENSION : 5915 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : usa13509 +COMMENT : Cities with population at least 500 in the continental US. +COMMENT : Contributed by David Applegate and Andre Rohe, based on the +COMMENT : data set "US.lat-long" from the ftp site ftp.cs.toronto.edu. +COMMENT : The file US.lat-long.Z can be found in the directory /doc/geography. +TYPE : TSP +DIMENSION : 13509 +EDGE_WEIGHT_TYPE : EUC_2D + + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/rl5915.tsp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/rl5915.tsp new file mode 100644 index 000000000..9eda5f662 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/rl5915.tsp @@ -0,0 +1,5916 @@ +5915 +18192 8954 +18192 9856 +18192 11319 +18272 8624 +18416 7348 +18416 8294 +1200 7370 +1200 8184 +1200 10912 +1200 11440 +17904 572 +17904 2684 +17904 6908 +17904 7348 +17904 8624 +8272 308 +8272 2068 +8272 2508 +8272 3080 +8272 3608 +8272 5302 +8336 7260 +8464 7260 +8496 9548 +8496 10582 +8496 11440 +15888 9064 +15888 9504 +15888 10252 +15888 11000 +15936 8184 +16048 8184 +16208 8184 +16336 572 +16336 1012 +16336 1452 +16336 2992 +16336 4818 +16336 6028 +16336 7348 +1040 7370 +1040 8184 +1040 10912 +1040 11440 +4464 308 +4640 308 +4816 308 +4944 308 +5168 308 +5440 308 +5616 308 +5728 308 +5808 3080 +5808 3608 +5808 4664 +5808 5368 +5808 6072 +5808 7128 +5936 9658 +5936 11286 +16848 572 +16848 1452 +16848 2992 +16848 4708 +16848 6028 +16848 7348 +16848 8514 +16848 9284 +16848 9922 +16848 11198 +8240 7480 +8400 9548 +8400 10582 +8400 11440 +1520 9152 +1520 10912 +1520 11440 +1584 6446 +1584 7590 +1584 8294 +5168 11440 +5280 11440 +5456 11440 +5584 11440 +5712 11440 +2672 6336 +2784 6556 +2976 6556 +3104 6556 +3264 6556 +3360 6556 +3600 6556 +3856 6556 +3920 6556 +4016 6556 +4144 6556 +4208 6556 +4352 6556 +4464 6556 +4560 6556 +4688 6556 +4720 7260 +4720 8140 +4720 9702 +4720 10582 +4720 11132 +17008 572 +17008 1452 +17008 2992 +17008 5874 +17008 7348 +17072 8096 +17136 8096 +17280 8096 +17456 8096 +17520 8404 +17520 8954 +17520 10142 +17520 11319 +880 7370 +880 8184 +880 11440 +4144 4840 +4144 7700 +4304 8360 +4416 8360 +4576 8360 +4656 8360 +4864 8360 +5040 8360 +5296 8360 +5456 8844 +5456 9812 +5520 3608 +5520 4664 +5520 5368 +5520 5918 +5520 6930 +16560 8954 +16560 9922 +16592 572 +16592 1452 +16592 2992 +16592 4818 +16592 6138 +16592 7348 +7728 7744 +7728 9548 +7728 10846 +7792 7040 +7856 7040 +7952 7040 +8016 308 +8016 2068 +8016 2508 +8016 3080 +8016 3608 +8016 4268 +8016 5852 +16272 9064 +16272 9504 +16272 9922 +16272 11000 +16640 8844 +16720 8844 +16784 6028 +16784 7348 +16784 8514 +464 11440 +528 8184 +640 8184 +784 7370 +784 7964 +7664 6446 +7664 8074 +7664 9548 +7664 10846 +7728 308 +7728 2068 +7728 2508 +7728 3080 +7728 3608 +7728 4048 +7728 4488 +5232 3608 +5232 4664 +5232 5368 +5232 5918 +5232 6776 +5520 7920 +3856 7480 +3920 7920 +4016 7920 +4176 9152 +4176 9922 +4176 10472 +4176 10912 +4176 11440 +5984 748 +6096 3080 +6096 3608 +6096 4664 +6160 5368 +6224 5368 +6320 5368 +6496 5368 +6608 5698 +6608 6336 +6608 7502 +6608 9064 +6608 10142 +6608 11022 +17200 5874 +17200 7348 +17200 9284 +17200 9922 +17200 11198 +17296 5192 +17440 5192 +17568 5192 +17616 572 +17616 2992 +7248 10362 +7248 11286 +7376 308 +7376 968 +7376 2068 +7376 2508 +7376 3080 +7376 3608 +7376 4488 +7376 5588 +7376 6556 +7376 7744 +1808 6446 +1840 7436 +1840 8404 +1840 9042 +1840 10912 +1840 11440 +12272 9878 +12464 9064 +12592 9064 +12736 9064 +12848 902 +12848 1980 +12848 2640 +12848 3168 +12848 3608 +12848 4158 +12848 5368 +12848 6556 +12848 6996 +12848 8008 +12848 8844 +1648 8404 +1648 9152 +1648 10912 +1648 11440 +1680 6446 +1680 7590 +6256 9658 +6256 11022 +16976 8514 +16976 9284 +16976 9922 +16976 11198 +17072 5720 +17136 5720 +17440 5720 +17600 5720 +11600 572 +11600 1760 +11600 3388 +11600 5258 +11600 6556 +11600 6996 +11600 7898 +11632 8602 +11632 9284 +11632 10208 +17376 10142 +17728 10142 +18416 10142 +18608 10142 +18704 10142 +18864 10142 +18992 10142 +19088 10142 +6224 968 +6224 3080 +6224 3608 +6224 4664 +6400 10912 +6768 10912 +6864 11286 +1936 6336 +1936 7436 +1968 8404 +1968 9152 +1968 10912 +1968 11440 +3984 8712 +4304 8932 +4416 8932 +4496 10802 +15440 1232 +15440 3608 +15440 4180 +15440 4818 +15536 5808 +15648 5808 +15760 5808 +15840 5808 +15936 5808 +16048 5808 +16208 5808 +5584 10252 +5728 10252 +6000 10252 +6064 10252 +6160 10252 +6320 968 +6320 3080 +6320 3608 +6320 4664 +6384 9548 +6384 10472 +16720 11198 +17088 11198 +17376 11198 +17728 11198 +18416 11198 +18608 11198 +18704 11198 +18848 11198 +15280 572 +15280 1232 +15280 3608 +15280 4180 +15280 4818 +15280 6138 +15280 7348 +15280 8228 +15280 9064 +15280 9504 +15280 10252 +15280 11000 +3472 7920 +3472 8712 +3472 9372 +3472 10472 +3472 10912 +3472 11440 +208 11440 +432 7964 +944 7964 +1104 7370 +1424 6446 +1424 7370 +1424 8294 +10096 4378 +10096 5478 +10096 6556 +10096 7480 +10096 8008 +10096 8602 +10096 9284 +10096 10318 +10096 11440 +10256 3608 +10336 3608 +10448 3608 +10544 3608 +10608 3608 +10672 3608 +10752 3608 +10864 3608 +10992 3608 +11088 3608 +11168 3608 +11280 3608 +11408 3608 +688 7370 +688 11440 +6160 968 +6496 968 +6592 968 +6736 968 +6848 968 +6944 968 +7104 968 +7232 968 +7552 968 +7600 308 +7600 2068 +7600 2508 +7600 3080 +7600 3608 +7600 4048 +7600 4488 +7632 5148 +7792 5148 +7856 5148 +7920 5148 +8112 5148 +8384 5148 +8464 5148 +8624 5148 +8800 5148 +8912 5148 +9216 5148 +9504 5148 +9616 5148 +9744 5148 +9888 5148 +9936 6556 +9936 7480 +9936 8382 +9936 9284 +9936 11440 +10032 572 +10032 1452 +10032 2728 +6496 7084 +6736 7084 +6768 9064 +6768 10142 +9936 572 +9936 1452 +5200 10032 +7408 10362 +7568 10692 +7856 10692 +7936 10692 +8032 10692 +8144 10692 +8224 10692 +8320 10692 +8784 10692 +8976 10692 +9408 10692 +10288 10692 +10400 10692 +10560 10692 +10704 10692 +10864 10692 +10960 10692 +11136 10692 +11264 10692 +11392 10692 +11472 10692 +11568 10692 +4880 9218 +4880 10032 +4880 10582 +4880 11132 +4944 3608 +4944 4664 +4944 5368 +4944 5918 +4944 6776 +4944 7436 +6944 308 +7104 308 +7232 308 +7792 308 +7856 308 +7920 308 +8128 308 +8384 308 +8464 308 +8528 308 +8592 308 +8688 308 +8800 308 +8912 308 +9008 308 +9104 308 +9200 308 +9232 1452 +9232 2288 +9232 3388 +9344 7260 +9456 8602 +9456 11440 +3568 7920 +3664 7920 +3728 7920 +8240 9548 +8240 11440 +9376 6776 +9776 572 +9776 1452 +9776 2508 +9776 3388 +6992 7854 +6992 9174 +6992 9812 +6992 10362 +7056 2068 +7056 3080 +7056 3608 +7056 4664 +7056 5588 +7056 6556 +14512 682 +14640 3608 +14640 4048 +14640 4598 +14640 6138 +14640 7568 +14640 8228 +14640 9064 +14640 9504 +14640 10252 +14640 11000 +14768 1012 +14848 1012 +14960 1012 +15376 1012 +15536 1012 +15664 1012 +15760 1012 +15840 1012 +15936 1012 +16048 1012 +16208 1012 +16464 1012 +16528 572 +14736 6138 +14736 7568 +14736 8228 +14736 9064 +14736 9504 +14736 10252 +14736 10890 +14768 4928 +14880 4928 +14976 4928 +15376 4928 +15536 4928 +15648 4928 +15760 4928 +15840 4928 +15936 4928 +16048 4928 +16208 4928 +16464 4928 +16704 4928 +13808 6028 +13808 6776 +13808 7788 +13808 8228 +13808 9504 +13808 10362 +13808 11110 +14032 4708 +14144 4708 +14320 4708 +14464 4708 +16944 4708 +3664 8712 +3728 9284 +3760 9702 +3760 10472 +3760 10912 +3760 11440 +3600 8712 +3600 9482 +4048 9812 +4336 9812 +4576 9812 +4656 9812 +4976 8844 +8976 8118 +8976 9394 +8976 11440 +10176 6556 +10304 6556 +10448 6556 +10576 6556 +10736 6556 +10832 6556 +10896 6556 +10976 6556 +11088 6556 +11168 6556 +11264 6556 +11424 6556 +11536 6556 +11664 6556 +11728 6556 +11792 6556 +11872 6556 +11968 6556 +12112 6556 +12272 6556 +12448 6556 +12608 6556 +12736 6556 +13008 6556 +13072 1012 +13072 1980 +13072 2640 +13072 3608 +13072 4268 +13072 5368 +13168 572 +13264 572 +13408 572 +13568 572 +13696 572 +14016 572 +14160 572 +14320 572 +15120 572 +15376 572 +10480 572 +10480 1452 +10480 6006 +7120 2508 +7120 3080 +7120 3608 +7120 4664 +7120 5588 +7120 6556 +7120 7744 +7120 9064 +7120 9812 +7120 10362 +7120 11286 +3728 8712 +4016 10472 +4016 10912 +4016 11440 +6480 9064 +6896 9064 +7248 2068 +7248 2508 +7248 3080 +7248 3608 +7248 4664 +7248 5588 +7248 6556 +7248 7480 +3920 8712 +5056 9372 +3536 9372 +3536 10472 +3536 10912 +3536 11440 +8784 8448 +10304 8448 +10560 8448 +10704 8448 +10768 8448 +10848 8448 +10976 8448 +11120 8448 +11264 8448 +11552 8448 +11760 8448 +11888 8448 +12080 8448 +12240 8448 +12720 572 +12720 1980 +12720 3718 +12720 5368 +12720 6996 +2800 7326 +2928 7700 +2992 7700 +3104 7700 +3264 7700 +4208 7700 +8112 2068 +8112 2508 +8112 3080 +8112 3608 +8112 4268 +8112 7480 +9584 2728 +9584 3388 +9840 2288 +11440 2288 +11728 2288 +11824 2288 +11984 2288 +12112 2288 +12256 2288 +12384 2288 +12464 2288 +12496 572 +12496 1232 +12608 1012 +5584 7920 +5680 7920 +5760 7920 +6896 7920 +7568 7920 +8144 7920 +8208 7920 +9136 7590 +10544 6116 +11088 6116 +11168 6116 +11264 6116 +11312 572 +11312 1496 +11312 5258 +10768 572 +10768 1342 +10768 4488 +10768 5038 +10768 5588 +10768 6996 +10768 9284 +10768 9878 +5584 8844 +5616 3080 +6160 3080 +6496 3080 +6608 3080 +6736 3080 +6848 3080 +6944 3080 +7792 3080 +7856 3080 +7920 3080 +8384 3080 +8464 3080 +8560 3080 +8688 3080 +8800 3080 +8912 3080 +9008 3080 +8688 2288 +8464 6116 +8528 2068 +8528 2508 +8528 3608 +8464 2068 +8464 2508 +8464 3608 +17456 572 +17456 2992 +17456 7238 +11728 2948 +11824 2948 +11984 2948 +12112 2948 +12256 2948 +12384 2948 +12464 2948 +12560 572 +12560 1980 +12560 2728 +17552 7238 +17632 8184 +17776 8184 +18080 8184 +18256 9064 +10448 10032 +10560 10032 +10704 10032 +10864 10032 +10976 10032 +11136 10032 +11760 10032 +11888 10032 +12032 10032 +12144 10032 +12880 10032 +13008 10032 +13168 10032 +13312 10032 +13472 10032 +13584 10032 +13680 3608 +13680 4268 +13680 6028 +13680 6776 +13680 8008 +13680 9504 +17760 6908 +18048 6908 +18128 7348 +12640 3388 +12784 2640 +12784 3168 +10976 8008 +11088 8008 +11264 8008 +11664 8008 +11728 8008 +11792 8008 +11888 8008 +12912 8008 +13008 8008 +13184 8008 +13328 8008 +13456 8008 +13568 8008 +8400 2068 +8400 2508 +8400 3608 +9328 1452 +9520 1452 +9632 1452 +9840 1452 +10160 1452 +10256 1452 +10336 1452 +10544 1452 +10608 1452 +10672 1452 +10864 1452 +10992 1452 +11088 1452 +11168 1452 +12304 572 +14864 3608 +14864 4048 +14864 6138 +14864 7568 +14864 8228 +14864 9064 +14864 9504 +14864 10252 +14864 10890 +7792 2068 +7792 2508 +7792 3608 +7792 4048 +7792 4488 +7792 6446 +15376 3608 +15376 4180 +15376 6138 +15376 7348 +6864 2068 +6864 3608 +6864 4774 +6928 5368 +10544 5368 +10672 5368 +10704 9284 +12464 11000 +12592 11000 +12736 11000 +12880 11000 +13008 11000 +13168 11000 +13312 11000 +13456 11000 +13584 11000 +14144 11000 +14224 11000 +14336 11000 +14416 11000 +14992 11000 +15440 11000 +15632 11000 +15760 11000 +15824 11000 +16160 11000 +16464 11000 +15952 572 +15952 1452 +16048 2992 +16208 2992 +16464 2992 +16704 2992 +17072 2992 +17136 2992 +17296 2992 +15664 572 +15664 3608 +15664 4180 +15664 7348 +15664 7788 +15664 9064 +15664 9504 +15664 10252 +16432 1452 +8144 9548 +8144 11440 +9616 572 +12112 572 +12112 3938 +12112 5258 +8304 9548 +8304 11440 +12912 8844 +13008 8844 +13184 8844 +13328 8844 +13456 8844 +13552 3608 +13552 4378 +13552 5368 +13552 6028 +13552 6776 +11920 6996 +11920 9284 +11952 572 +11952 3938 +11952 5258 +10320 572 +10448 11440 +11824 572 +11824 3938 +11824 5258 +12656 5368 +5008 10692 +5008 11132 +13168 1980 +13168 2640 +13168 3608 +13168 4378 +13168 5478 +13232 6028 +13376 6028 +13488 6028 +14032 6028 +14144 6028 +14224 6028 +14320 6028 +14464 6028 +14976 6028 +16704 6028 +3280 10912 +3280 11440 +6736 308 +6736 2068 +6736 3608 +6736 4774 +6736 5698 +6736 6336 +8784 11440 +10288 11440 +10512 11440 +11792 6996 +8720 4158 +6800 5808 +6800 6336 +6912 6556 +7856 6556 +8896 6556 +8944 2288 +8944 3608 +7568 9504 +7856 9504 +8784 9504 +14144 8228 +14224 8228 +14336 8228 +14416 8228 +14480 8228 +15440 8228 +15504 8228 +15536 3608 +15536 4180 +15536 7348 +15568 572 +15760 572 +15840 572 +16048 572 +16208 572 +16704 572 +17104 572 +17296 572 +18000 572 +18080 572 +11728 572 +11728 3938 +11728 5258 +11728 6996 +11760 9284 +12272 3938 +12272 5258 +10512 9284 +7856 4048 +7920 4048 +8784 2288 +8784 3608 +8784 4268 +7920 2068 +7920 2508 +7920 3608 +7920 4488 +8880 4268 +10544 572 +10544 6996 +10608 4488 +9008 2288 +9312 2288 +11440 572 +11440 5258 +11440 6996 +11536 6996 +15824 7348 +15824 7788 +15824 9064 +15824 9504 +15824 10252 +6608 2068 +6608 3608 +6608 4664 +6896 5808 +112 11198 +10672 4488 +10832 4488 +10864 572 +10864 5038 +11088 6996 +9520 572 +9520 2068 +12240 6996 +3280 8712 +3280 9152 +3632 10472 +3632 10912 +3632 11440 +11568 9284 +14128 10472 +14160 1342 +14160 3608 +14160 4048 +14160 6776 +14160 7678 +14160 9504 +4080 10472 +4336 10472 +4576 10472 +4976 10032 +528 7370 +16016 1452 +16016 7348 +16016 9064 +16016 9504 +16160 9922 +16464 9922 +16640 9922 +16720 9922 +17088 9922 +1744 10912 +2112 10912 +2368 10912 +2544 10912 +2944 10912 +3056 8712 +3056 9152 +3088 10912 +4080 10912 +4336 10912 +4432 10912 +13456 9504 +14224 7788 +14336 7788 +14416 7788 +14448 1342 +14448 3608 +14448 4048 +1280 8404 +1744 8404 +1904 8404 +2160 8404 +2224 8404 +2368 8404 +2544 8404 +2704 7546 +14032 1342 +14032 3608 +14032 6776 +14976 7568 +14320 4048 +14768 4048 +13392 1980 +13392 3608 +13392 4378 +13392 5368 +16688 1452 +13360 6776 +16208 1452 +16208 7348 +1504 6336 +2064 6336 +2160 6336 +2224 6336 +2384 6336 +2544 6336 +4560 7370 +4304 7260 +4384 7260 +4464 7260 +4816 7260 +4880 7260 +14352 1342 +14352 3608 +14352 9504 +14352 10252 +5744 8844 +4336 11440 +6160 3608 +6160 4664 +6160 11132 +6512 3608 +6512 4664 +6928 2068 +6928 3608 +6928 4664 +11280 6996 +12592 6996 +13488 3608 +14768 3608 +14960 3608 +15760 3608 +15840 3608 +15920 7348 +12368 572 +12368 1232 +12368 3938 +12368 5258 +11664 6996 +17776 2684 +12464 3938 +13488 4268 +13232 6666 +10192 572 +944 7370 +10848 9284 +17088 9284 +17344 9284 +4592 4840 +4592 6028 +11024 572 +11024 5038 +2384 7436 +2384 9152 +2384 11440 +2928 8712 +2928 9152 +2928 11440 +2544 7546 +2544 9152 +2544 11440 +9648 7480 +2048 7172 +2160 7172 +2224 7172 +3440 7172 +1744 9042 +1744 11440 +2096 9152 +2096 11440 +3056 11440 +10960 6996 +2992 8712 +2992 9152 +10896 6996 +4080 11440 +16144 9064 +16144 9504 +14224 6776 +14224 9504 +14224 10252 +17104 8624 +17136 7348 +15440 9064 +15440 9504 +15440 10252 +15760 7788 +15856 1452 +4208 4840 +18320 7348 +15760 4180 +9712 7480 +17072 1452 +17072 7348 +16464 9504 +7856 2068 +7856 2508 +7856 3608 +7856 4488 +16720 7348 +15504 9064 +4368 4840 +6000 11132 +6064 11132 +4688 5808 +4816 5808 +4880 5808 +9008 3608 +15760 9064 +17424 9064 +18512 8294 +4880 4664 +4880 5368 +4880 6776 +4688 4488 +4752 4488 +4816 4488 +18608 8866 +14416 9504 +14416 10252 +15760 7348 +18224 7348 +13424 6776 +18704 8866 +11088 4928 +11168 4928 +12464 5368 +15760 1452 +15760 9504 +15760 10252 +432 7480 +11168 6996 +13488 6776 +13584 9504 +13488 5368 +11184 572 +4464 4840 +4528 4840 +4816 5368 +4816 6776 +11088 572 +10672 572 +10256 572 +9840 572 +18192 10670 +18379 8624 +18416 3619 +18416 7766 +1200 3575 +1200 9658 +17904 231 +17904 1628 +17904 4796 +17904 7766 +17904 9438 +17940 9570 +18224 10670 +8272 1188 +8272 7029 +8416 7260 +8496 8866 +15888 8503 +15888 9878 +15888 10626 +15888 11429 +15984 8184 +16128 8184 +16299 8184 +16336 2222 +16336 3850 +16336 5368 +16336 6798 +16336 7887 +1040 3575 +1040 9658 +4432 220 +4496 308 +4784 308 +4848 308 +5040 308 +5296 308 +5584 308 +5648 308 +5808 220 +5808 2024 +5808 4048 +5936 8382 +5936 10802 +16848 1012 +16848 2222 +16848 3850 +16848 5368 +16848 6688 +16848 7876 +16848 10560 +16848 11528 +8240 1188 +8240 7018 +8260 7700 +8400 8756 +1520 10032 +1552 8932 +1584 3113 +1584 7018 +1584 8789 +5136 11528 +5200 11440 +5360 11440 +5552 11528 +5616 11440 +5808 11440 +5968 11528 +2672 3113 +2736 6556 +2880 6556 +3024 6556 +3200 6556 +3312 6556 +3408 6556 +3808 6556 +3888 6556 +3952 6556 +4096 6556 +4176 6556 +4256 6556 +4432 6556 +4496 6556 +4640 6556 +4720 7590 +4720 8866 +4720 11495 +17008 1012 +17008 2222 +17008 4356 +17008 6688 +17008 7843 +17028 8096 +17104 8096 +17168 8096 +17408 8096 +17499 8096 +17520 9603 +17520 10670 +880 3575 +880 9922 +4144 2365 +4144 5434 +4144 6908 +4272 8360 +4336 8360 +4512 8360 +4624 8360 +4688 8360 +4784 8360 +4944 8360 +5136 8360 +5488 7304 +5456 8481 +5456 10692 +5520 2178 +5520 4048 +5520 6402 +16560 10890 +16576 8184 +16592 1012 +16592 2222 +16592 3850 +16592 5478 +16592 6798 +16592 7887 +7728 8756 +7748 7040 +7824 7040 +7888 7040 +8016 1188 +8016 4818 +8016 6919 +16272 10461 +16272 11429 +16432 8844 +16592 8844 +16688 8844 +16763 8844 +16784 1012 +16784 2222 +16784 3850 +16784 5478 +16784 6688 +16784 7876 +464 9691 +484 8184 +560 8184 +747 8184 +784 3575 +7664 6908 +7664 8756 +7728 1188 +7728 4818 +5232 2178 +5232 4048 +5232 6402 +5232 7315 +5499 7612 +5520 8382 +5520 10692 +3856 2959 +3856 6908 +3876 7920 +3952 7920 +4096 7920 +4784 748 +4848 748 +5040 748 +5296 748 +5584 748 +5648 748 +5872 748 +6096 264 +6096 2024 +6096 4048 +6096 5225 +6116 5368 +6192 5368 +6256 5368 +6416 5368 +6571 5368 +6096 594 +6608 8646 +6608 9438 +6608 11495 +17200 5335 +17200 6688 +17200 7722 +17200 10560 +17200 11528 +17392 5192 +17504 5192 +17616 231 +17616 1782 +17616 4213 +7248 10802 +7376 638 +7376 1518 +7376 4048 +7376 4928 +7376 8756 +1808 3113 +1824 6864 +1840 8052 +1840 10032 +12272 11165 +12384 9064 +12528 9064 +12656 9064 +12827 9064 +12848 1606 +12848 2310 +12848 4708 +12848 6072 +12848 7392 +12848 8536 +1648 8778 +1648 10032 +1664 8184 +1680 3113 +1680 7018 +1680 8063 +4784 528 +4848 528 +5040 528 +5296 528 +5584 528 +5648 528 +5872 528 +5936 330 +5936 2024 +5936 4048 +5936 5324 +6096 6556 +6192 6556 +6256 8382 +6256 11495 +16976 6688 +16976 7876 +16976 10560 +16976 11528 +17040 5720 +17104 5720 +17168 5720 +17392 5720 +17504 5720 +17680 231 +17680 1782 +17680 4246 +11600 231 +11600 902 +11600 4488 +11600 6072 +11600 7392 +11616 8228 +11632 11275 +17264 10549 +17264 11528 +17284 10142 +17472 10142 +17552 10142 +17920 10142 +18368 10142 +18512 10142 +18656 10142 +18784 10142 +18928 10142 +19024 10142 +6224 429 +6224 2024 +6224 4048 +6224 8382 +6224 10813 +6352 10912 +6464 10912 +6672 10912 +6843 10912 +1936 3113 +1936 6754 +1936 8063 +1952 8184 +1968 8778 +1968 10032 +816 3575 +816 9922 +3984 2959 +3984 6908 +4128 8932 +4272 8932 +4336 8932 +4496 9031 +4496 11495 +15440 583 +15440 2530 +15440 5489 +15460 5808 +15600 5808 +15712 5808 +15792 5808 +15888 5808 +15984 5808 +16128 5808 +16288 5808 +16400 6798 +16400 7876 +16400 10461 +16400 11429 +5360 2178 +5360 4048 +5360 7194 +5552 10252 +5632 10252 +5808 10252 +5968 10252 +6032 10252 +6112 10252 +6192 10252 +6304 8536 +6288 11495 +6320 429 +6320 2024 +6320 4048 +1168 9658 +1232 3575 +1232 7843 +6352 429 +6352 2024 +6352 4048 +6352 8657 +6368 8844 +6384 11495 +16688 11407 +16784 11198 +16912 11198 +17040 11198 +17136 11198 +17296 11198 +17472 11198 +17552 11198 +17920 11198 +18368 11198 +18512 11198 +18656 11198 +18768 11198 +18928 11198 +15280 2530 +15280 5478 +15280 6798 +15280 7788 +15280 8646 +15280 9878 +15280 10626 +15280 11429 +3472 10032 +3488 7480 +3504 3113 +3504 7139 +208 9581 +308 7964 +480 7964 +560 7964 +736 7964 +848 7964 +912 7964 +976 7964 +1083 7964 +1104 3575 +1104 7843 +1392 2904 +1392 5852 +1408 6028 +1424 8778 +1424 10032 +10224 3608 +10288 3608 +10384 3608 +10512 3608 +10576 3608 +10640 3608 +10704 3608 +10800 3608 +10928 3608 +11056 3608 +11120 3608 +11216 3608 +11344 3608 +11488 3608 +11664 902 +688 3575 +688 9922 +5872 968 +6128 968 +6192 968 +6256 968 +6416 968 +6544 968 +6672 968 +6784 968 +6896 968 +7008 968 +7184 968 +7312 968 +7504 968 +7600 759 +7600 1397 +7600 4939 +7664 5148 +7760 5148 +7824 5148 +7888 5148 +7952 5148 +8048 5148 +8176 5148 +8336 5148 +8432 5148 +8496 5148 +8752 5148 +8848 5148 +8992 5148 +9440 5148 +9552 5148 +9680 5148 +9824 5148 +10011 5148 +10032 231 +10032 1012 +10032 1760 +5488 2178 +5488 4048 +5488 6402 +5648 7084 +5936 7084 +6096 7084 +6192 7084 +6416 7084 +6544 7084 +6672 7084 +6768 7161 +6768 8646 +6768 9438 +9936 231 +9936 1012 +9936 1760 +5200 2178 +5200 4048 +5200 6402 +5200 7458 +5200 10593 +7408 638 +7408 1518 +7408 4048 +7408 4928 +7408 8756 +7536 10692 +7600 10692 +7696 10692 +7824 10692 +7888 10692 +7984 10692 +8096 10692 +8176 10692 +8272 10692 +8368 10692 +8432 10692 +8720 10692 +8848 10692 +9104 10692 +9728 10692 +10032 10692 +10256 10692 +10320 10692 +10480 10692 +10656 10692 +10768 10692 +10928 10692 +11024 10692 +11216 10692 +11328 10692 +11440 10692 +11520 10692 +11600 10692 +11707 10692 +11728 11330 +11728 10868 +4880 11495 +4944 2178 +4944 4048 +4944 6402 +6896 220 +7008 308 +7184 308 +7312 308 +7504 308 +7664 308 +7760 308 +7824 308 +7888 308 +7952 308 +8048 308 +8208 308 +8336 308 +8432 308 +8496 308 +8560 308 +8624 308 +8752 308 +8848 308 +8976 308 +9040 308 +9168 308 +9232 220 +9232 759 +9232 1760 +9232 2948 +9232 7029 +3440 10032 +3504 7920 +3632 7920 +3696 7920 +3760 3113 +3760 6908 +8240 8899 +8272 8756 +8304 1188 +8304 6908 +8304 8613 +9296 6897 +9296 9878 +9456 6776 +9552 6776 +9680 6776 +9776 231 +9776 1012 +9776 1760 +6992 8646 +6992 10802 +7024 7260 +7056 638 +7056 1518 +7056 2574 +7056 4048 +7056 7139 +14640 2530 +14640 5368 +14640 6798 +14640 8646 +14640 9878 +14640 11539 +14736 1012 +14800 1012 +14912 1012 +15120 1012 +15328 1012 +15408 1012 +15472 1012 +15600 1012 +15728 1012 +15792 1012 +15888 1012 +15984 1012 +16128 1012 +16272 1012 +16400 1012 +16528 913 +14704 2530 +14720 4928 +14736 5357 +14736 6798 +14736 8646 +14736 9878 +14736 11429 +14816 4928 +14928 4928 +15136 4928 +15328 4928 +15408 4928 +15472 4928 +15600 4928 +15712 4928 +15792 4928 +15888 4928 +15984 4928 +16128 4928 +16288 4928 +16400 4928 +16544 4928 +16656 4928 +16752 4928 +16816 1012 +16816 2222 +16816 3850 +13808 5137 +13808 7282 +13808 8866 +13808 9878 +13808 11539 +13908 4708 +14080 4708 +14224 4708 +14400 4708 +14512 4708 +14736 4708 +14816 4708 +14928 4708 +15136 4708 +15328 4708 +15408 4708 +15472 4708 +15600 4708 +15712 4708 +15792 4708 +15888 4708 +15984 4708 +16128 4708 +16288 4708 +16400 4708 +16544 4708 +16656 4708 +16752 4708 +16912 4708 +16976 1012 +16976 2222 +16976 3971 +3664 3113 +3664 7018 +3664 9119 +3684 9284 +3760 10142 +3600 3113 +3600 7128 +3600 9042 +3712 9812 +3888 9812 +4128 9812 +4272 9812 +4400 9812 +4528 9812 +4624 9812 +4688 9812 +4795 9812 +4955 9152 +4816 11495 +4976 2178 +4976 4048 +4976 6402 +8976 6897 +8976 9878 +8996 6556 +9296 6556 +9456 6556 +9552 6556 +9680 6556 +9808 6556 +10016 6556 +10128 6556 +10224 6556 +10384 6556 +10512 6556 +10656 6556 +10800 6556 +10864 6556 +10928 6556 +11040 6556 +11120 6556 +11216 6556 +11328 6556 +11504 6556 +11568 6556 +11632 6556 +11696 6556 +11760 6556 +11824 6556 +11920 6556 +12032 6556 +12176 6556 +12384 6556 +12512 6556 +12688 6556 +12800 6556 +12912 6556 +13072 484 +13072 1606 +13072 2310 +13072 3124 +13072 3938 +13072 4708 +13072 6193 +13108 572 +13200 572 +13344 572 +13488 572 +13632 572 +13856 572 +14096 572 +14224 572 +14400 572 +14640 572 +14736 572 +14800 572 +14912 572 +15040 572 +15200 572 +15328 572 +15408 484 +10016 6776 +10128 6776 +10224 6776 +10384 6776 +10480 231 +10480 1012 +10480 1760 +7120 638 +7120 1518 +7120 4048 +7120 8536 +7120 10802 +3728 3113 +3728 6908 +3899 9592 +4016 10142 +5776 10802 +5796 9064 +5968 9064 +6032 9064 +6112 9064 +6192 9064 +6352 9064 +6432 9064 +6512 9064 +6672 9064 +6864 9064 +6928 9064 +7024 9064 +7211 9064 +7248 638 +7248 1518 +7248 4048 +7248 7128 +7248 8767 +3920 2959 +3920 6908 +3920 9163 +3972 9372 +4128 9372 +4272 9372 +4528 9372 +4624 9372 +4688 9372 +4784 9372 +4960 9372 +5136 9372 +5552 9372 +5632 9372 +5808 9372 +5968 9372 +6032 9372 +6112 9372 +6192 9372 +6352 9372 +6432 9372 +6512 9471 +6512 11495 +16368 2222 +16368 3850 +16368 5368 +16368 6798 +16368 7876 +16368 10461 +16368 11429 +3536 3113 +3536 7128 +3536 10032 +8464 8745 +8720 8448 +8848 8448 +9104 8448 +9728 8448 +10000 8448 +10256 8448 +10352 8448 +10464 8448 +10656 8448 +10736 8448 +10800 8448 +10912 8448 +11040 8448 +11200 8448 +11344 8448 +11504 8448 +11600 8448 +11712 8448 +11792 8448 +11984 8448 +12192 8448 +12272 8448 +12384 8448 +12528 8448 +12656 8448 +12720 1606 +12720 2574 +12720 4708 +12720 6072 +12720 7392 +12816 792 +12944 792 +13120 792 +13200 792 +13344 792 +13488 792 +13632 792 +13856 792 +14096 792 +14224 792 +14400 792 +14640 792 +14736 792 +14800 792 +14912 792 +15051 792 +2800 3113 +2800 6864 +2852 7700 +2960 7700 +3024 7700 +3200 7700 +3312 7700 +3424 7700 +3504 7700 +3632 7700 +3696 7700 +3808 7700 +3888 7700 +3952 7700 +4096 7700 +4176 7700 +4240 7799 +8048 8756 +8080 7700 +8112 1188 +8112 4818 +8112 7018 +1328 3223 +1328 6919 +1456 8778 +1456 10032 +9680 2288 +9808 2288 +9872 2288 +10000 2288 +10096 2288 +10224 2288 +10288 2288 +10384 2288 +10512 2288 +10576 2288 +10640 2288 +10704 2288 +10800 2288 +10928 2288 +11056 2288 +11120 2288 +11216 2288 +11344 2288 +11408 2288 +11488 2288 +11696 2288 +11760 2288 +11904 2288 +12048 2288 +12176 2288 +12336 2288 +12432 2288 +12496 913 +12496 1606 +12516 1012 +12688 1012 +12816 1012 +12944 1012 +13120 1012 +13200 1012 +13344 1012 +13488 1012 +13632 1012 +13867 1012 +5232 10472 +5488 7920 +5552 7920 +5632 7920 +5712 7920 +5808 7920 +5968 7920 +6096 7920 +6192 7920 +6416 7920 +6544 7920 +6672 7920 +6864 7920 +6928 7920 +7040 7920 +7184 7920 +7536 7920 +7600 7920 +7696 7920 +7760 7920 +7824 7920 +7888 7920 +8096 7920 +8176 7920 +8256 7920 +8448 7920 +8720 7920 +8848 7920 +9115 7920 +9136 1188 +9136 2948 +9136 5962 +9136 7018 +9444 6116 +9552 6116 +9680 6116 +9808 6116 +10016 6116 +10144 6116 +10224 6116 +10384 6116 +10512 6116 +10576 6116 +10656 6116 +10800 6116 +10864 6116 +10928 6116 +11056 6116 +11120 6116 +11216 6116 +11312 231 +11312 902 +11312 4488 +11312 5973 +9008 9878 +9104 1188 +9104 2948 +9104 5962 +9104 7029 +5648 10681 +5808 10472 +5968 10472 +6032 10472 +6112 10472 +6192 10472 +6352 10472 +6464 10472 +6672 10472 +6848 10472 +7024 10472 +7200 10472 +7376 10472 +7536 10472 +7600 10472 +7696 10472 +7824 10472 +7888 10472 +7984 10472 +8096 10472 +8176 10472 +8272 10472 +8368 10472 +8432 10472 +8720 10472 +8848 10472 +9104 10472 +9728 10472 +10032 10472 +10256 10472 +10320 10472 +10480 10472 +10656 10472 +10747 10472 +10768 231 +10768 902 +10768 1760 +10768 7392 +10768 10373 +10016 9064 +10064 231 +10064 1012 +10064 1760 +5584 3223 +5584 4048 +5584 6402 +5584 8382 +5584 10692 +5664 3080 +5872 3080 +6128 3080 +6192 3080 +6256 3080 +6416 3080 +6560 3080 +6672 3080 +6784 3080 +6896 3080 +7008 3080 +7088 3080 +7184 3080 +7312 3080 +7504 3080 +7664 3080 +7760 3080 +7824 3080 +7888 3080 +7952 3080 +8048 3080 +8208 3080 +8336 3080 +8432 3080 +8496 3080 +8624 3080 +8752 3080 +8848 3080 +8976 3080 +9051 3080 +9072 1188 +9072 2915 +8624 5962 +8624 8866 +8688 1188 +8592 8866 +8656 1188 +8656 5962 +7952 8756 +8048 6116 +8176 6116 +8432 6116 +8507 6116 +8528 1188 +8528 5973 +8464 1188 +8656 8866 +7056 10802 +7195 8844 +7216 638 +7216 1518 +7216 4048 +7216 7128 +7216 8657 +17456 1782 +17456 4092 +17456 6578 +17456 7722 +17456 8745 +17476 8844 +17552 8844 +17712 9603 +17712 10670 +9428 2948 +9680 2948 +9808 2948 +9872 2948 +10000 2948 +10096 2948 +10224 2948 +10288 2948 +10384 2948 +10512 2948 +10576 2948 +10640 2948 +10704 2948 +10800 2948 +10928 2948 +11056 2948 +11120 2948 +11216 2948 +11344 2948 +11488 2948 +11696 2948 +11760 2948 +11904 2948 +12048 2948 +12176 2948 +12336 2948 +12432 2948 +12523 2948 +12560 1606 +12560 2354 +17552 1782 +17552 4092 +17552 6578 +17552 7887 +17712 8184 +17856 8184 +17968 8184 +18192 8184 +18256 9427 +18256 10670 +9728 10032 +10032 10032 +10256 10032 +10320 10032 +10416 10032 +10480 10032 +10656 10032 +10736 10032 +10800 10032 +10928 10032 +11040 10032 +11216 10032 +11312 10032 +11440 10032 +11520 10032 +11600 10032 +11712 10032 +11792 10032 +11984 10032 +12080 10032 +12208 10032 +12384 10032 +12528 10032 +12656 10032 +12816 10032 +12944 10032 +13088 10032 +13232 10032 +13408 10032 +13536 10032 +13643 10032 +13680 2530 +13680 5148 +13680 7282 +13680 8866 +13680 9889 +17712 231 +17712 1782 +17712 4246 +17712 6325 +17840 6908 +17968 6908 +18128 7007 +18128 7766 +18128 10670 +9072 3487 +9072 5962 +9072 6908 +9072 9878 +9440 3388 +9520 3388 +9680 3388 +9840 3388 +10000 3388 +10096 3388 +10224 3388 +10288 3388 +10384 3388 +10512 3388 +10576 3388 +10640 3388 +10704 3388 +10800 3388 +10928 3388 +11056 3388 +11120 3388 +11216 3388 +11344 3388 +11488 3388 +11696 3388 +11760 3388 +11904 3388 +12048 3388 +12176 3388 +12336 3388 +12432 3388 +12544 3388 +12688 3388 +12763 3388 +12784 1606 +12784 2310 +9232 8107 +9232 9878 +9648 8008 +9744 8008 +9904 8008 +10016 8008 +10192 8008 +10256 8008 +10384 8008 +10496 8008 +10656 8008 +10816 8008 +10928 8008 +11040 8008 +11120 8008 +11216 8008 +11328 8008 +11504 8008 +11568 8008 +11632 8008 +11696 8008 +11760 8008 +11824 8008 +11968 8008 +12192 8008 +12272 8008 +12384 8008 +12528 8008 +12656 8008 +12800 8008 +12880 8008 +12944 8008 +13088 8008 +13264 8008 +13392 8008 +13520 8008 +13632 8008 +13712 2530 +13712 5148 +13712 7282 +8400 1188 +8400 6919 +8420 7040 +8507 7040 +8528 7139 +8528 8866 +9168 1639 +9168 2948 +9168 5962 +9168 7018 +9168 8074 +9168 9878 +9264 1452 +9424 1452 +9584 1452 +9680 1452 +9808 1452 +9872 1452 +10000 1452 +10096 1452 +10224 1452 +10288 1452 +10384 1452 +10512 1452 +10576 1452 +10640 1452 +10704 1452 +10800 1452 +10928 1452 +11056 1452 +11120 1452 +11216 1452 +11344 1452 +11488 1452 +11696 1452 +11760 1452 +11904 1452 +12048 1452 +12176 1452 +12304 902 +9360 2827 +9412 2728 +9680 2728 +9808 2728 +9872 2728 +10000 2728 +10096 2728 +10224 2728 +10288 2728 +10384 2728 +10512 2728 +10576 2728 +10640 2728 +10704 2728 +10800 2728 +10928 2728 +11056 2728 +11120 2728 +11216 2728 +11344 2728 +11488 2728 +11696 2728 +11760 2728 +11904 2728 +12048 2728 +12176 2728 +12336 2728 +12432 2728 +12512 2728 +12592 1606 +12592 2475 +14864 2530 +14864 4378 +14864 5478 +14864 6798 +14864 8646 +14864 9878 +14864 11429 +7760 8745 +7776 8448 +7792 1188 +7792 4818 +15312 7887 +15312 8646 +15312 9878 +15312 10626 +15312 11429 +15344 7788 +15376 2530 +15376 5478 +15376 6798 +15376 7689 +6864 429 +6864 1518 +6864 2574 +6864 4048 +7008 5368 +7088 5368 +7184 5368 +7328 5368 +7584 5368 +7664 5368 +7760 5368 +7824 5368 +7888 5368 +7952 5368 +8048 5368 +8176 5368 +8336 5368 +8432 5368 +8496 5368 +8752 5368 +8848 5368 +8992 5368 +9440 5368 +9552 5368 +9680 5368 +9824 5368 +10016 5368 +10160 5368 +10224 5368 +10288 5368 +10384 5368 +10512 5368 +10608 5368 +10704 7392 +10704 11495 +12400 11484 +12528 11000 +12656 11000 +12816 11000 +12944 11000 +13088 11000 +13232 11000 +13392 11000 +13536 11000 +13696 11000 +13968 11000 +14192 11000 +14272 11000 +14384 11000 +14448 11000 +12400 11176 +14576 2530 +14576 5368 +14576 6798 +14576 8646 +14576 9878 +14704 11000 +14784 11000 +14960 11000 +15120 11000 +15392 11000 +15520 11000 +15712 11000 +15792 11000 +15856 11000 +16048 11000 +16224 11000 +16432 11000 +16496 11484 +16496 11176 +7088 8536 +7088 10802 +7152 638 +7152 1518 +7152 4048 +7152 7139 +15952 2343 +15972 2992 +16128 2992 +16272 2992 +16400 2992 +16544 2992 +16656 2992 +16752 2992 +16912 2992 +17040 2992 +17104 2992 +17184 2992 +17392 2992 +17504 2992 +17744 4125 +17744 6204 +17744 7766 +17744 8734 +17744 9603 +17744 10670 +15664 2530 +15664 5368 +15664 6798 +15664 8426 +15664 9878 +15664 10626 +15664 11429 +17584 231 +17584 1782 +17584 4092 +17584 6578 +17584 7766 +17584 9603 +17584 10670 +16432 2222 +16432 3850 +16432 5478 +16432 6798 +16432 7887 +16528 10890 +8144 1188 +8144 4818 +8144 7018 +8144 8756 +9616 231 +9616 1012 +9616 1760 +9616 7139 +12112 902 +12112 4488 +12112 5962 +12112 7392 +8368 1188 +8368 6908 +8368 8767 +12784 11429 +12804 8844 +12880 8844 +12944 8844 +13088 8844 +13264 8844 +13392 8844 +13531 8844 +13552 2530 +13552 3938 +13552 4928 +13552 7282 +13552 8657 +18864 10846 +18864 11528 +18916 9086 +19024 9086 +11920 7392 +11920 11165 +11936 6776 +11952 902 +11952 4488 +11952 6072 +10320 231 +10320 1012 +10320 1760 +10320 7392 +10427 9504 +11824 902 +11824 4488 +11824 6083 +11840 6336 +11856 7392 +11856 11165 +12656 1606 +12656 2574 +12656 4708 +12656 6072 +12672 6776 +12688 7392 +12688 11429 +5008 11495 +5072 2178 +5072 4048 +5072 6402 +5072 7194 +13168 1606 +13168 2310 +13168 3124 +13168 3938 +13168 4928 +13168 5929 +13296 6028 +13456 6028 +13520 6028 +13632 6028 +13760 6028 +13920 6028 +14080 6028 +14192 6028 +14256 6028 +14400 6028 +14512 6028 +14704 6028 +14816 6028 +14928 6028 +15136 6028 +15328 6028 +15440 6028 +15600 6028 +15712 6028 +15792 6028 +15888 6028 +15984 6028 +16128 6028 +16288 6028 +16544 6028 +16656 6028 +16752 6028 +16816 6028 +16912 6028 +17040 6028 +17104 6028 +17168 6028 +17392 6028 +17504 6028 +17680 6457 +17680 7766 +17680 9603 +17680 10670 +3312 10692 +3344 3113 +3344 6864 +3344 10153 +14544 2530 +14544 5368 +14544 6798 +14544 8646 +14544 9878 +14544 11539 +6736 638 +6736 1518 +6736 2574 +6736 4048 +6736 8646 +6736 9438 +6832 11440 +7024 11440 +7200 11440 +7440 11440 +7536 11440 +7600 11440 +7696 11440 +7824 11440 +7888 11440 +8096 11440 +8176 11440 +8272 11440 +8368 11440 +8432 11440 +8720 11440 +8848 11440 +9104 11440 +9728 11440 +10032 11440 +10256 11440 +10320 11440 +10480 11440 +10544 11528 +11792 902 +11792 4488 +11792 6072 +11792 7392 +11808 8228 +11824 11165 +8720 1188 +8720 5962 +8848 7700 +9104 7700 +9232 7700 +6064 319 +6064 2024 +6064 4048 +6064 5335 +6100 5588 +6192 5588 +6256 5588 +6416 5588 +6560 5588 +6672 5588 +6779 5588 +6800 7128 +6800 8646 +6800 9438 +6864 6556 +6992 6556 +7088 6556 +7184 6556 +7328 6556 +7616 6556 +7744 6556 +7824 6556 +7888 6556 +8048 6556 +8176 6556 +8432 6556 +8512 6556 +8832 6556 +8944 1188 +8944 5962 +8944 6897 +8944 9878 +5968 319 +5968 2024 +5968 4048 +5968 5324 +6096 7700 +6192 7700 +6416 7700 +6544 7700 +6672 7700 +6864 7700 +6928 7700 +7040 7700 +7152 8536 +7152 10802 +7204 9504 +7536 9504 +7600 9504 +7696 9504 +7824 9504 +7904 9504 +8096 9504 +8176 9504 +8272 9504 +8368 9504 +8432 9504 +8720 9504 +8864 9504 +9104 9504 +9728 9504 +9968 231 +9968 1012 +9968 1760 +11952 11165 +11972 8228 +12192 8228 +12272 8228 +12384 8228 +12528 8228 +12656 8228 +12800 8228 +12880 8228 +12944 8228 +13088 8228 +13264 8228 +13392 8228 +13520 8228 +13632 8228 +13744 8228 +13968 8228 +14192 8228 +14272 8228 +14384 8228 +14448 8228 +14512 8228 +14704 8228 +14784 8228 +15120 8228 +15392 8228 +15472 8228 +15536 484 +15536 671 +15536 2530 +15536 5368 +15536 6798 +15600 572 +15728 572 +15792 572 +15888 572 +15984 572 +16128 572 +16272 572 +16400 572 +16560 572 +16656 572 +16752 572 +16912 572 +17040 572 +17184 572 +17392 572 +17504 572 +17824 572 +17968 572 +18032 572 +18128 352 +7568 8756 +7600 6116 +7632 1188 +7632 4818 +11728 902 +11728 4488 +11728 6072 +11728 7392 +11744 8228 +11760 11165 +19024 11528 +12272 902 +12272 4488 +12272 5962 +12384 6776 +12496 7392 +12496 11429 +10656 8228 +10736 231 +10736 902 +10736 1760 +10736 7392 +7504 8756 +7568 638 +7568 1518 +7568 3949 +7568 4147 +7568 4939 +7664 4048 +7760 4048 +7824 4048 +7888 4048 +7952 4048 +8048 4048 +8208 4048 +8336 4048 +8432 4048 +8496 4048 +8688 4048 +8763 4048 +8784 1188 +8784 3949 +8784 8866 +7888 9064 +7920 1188 +7920 4818 +7920 8767 +7940 4268 +8048 4268 +8208 4268 +8336 4268 +8432 4268 +8496 4268 +8688 4268 +8752 4268 +8848 4268 +8912 4268 +8992 4268 +9440 4268 +9552 4268 +9680 4268 +9824 4268 +9936 4268 +10000 4268 +10224 4268 +10288 4268 +10384 4268 +10523 4268 +10544 231 +10544 1012 +10544 1760 +10544 7392 +10656 11132 +10768 11132 +10928 11132 +10992 11550 +10992 11308 +8208 7018 +8208 8756 +8336 4708 +8432 4708 +8496 4708 +8752 4708 +8848 4708 +8992 4708 +9440 4708 +9552 4708 +9680 4708 +9824 4708 +9936 4708 +10000 4708 +10224 4708 +10288 4708 +10384 4708 +10512 4708 +10587 4708 +10608 231 +10608 902 +10608 1760 +11984 902 +11984 4488 +11984 6072 +12000 6776 +12016 7392 +12016 11165 +8560 5962 +8560 7018 +8560 8866 +8624 2288 +8752 2288 +8848 2288 +8976 2288 +9040 2288 +9264 2288 +9360 671 +9360 1760 +11376 11385 +11440 231 +11440 902 +11440 4488 +11440 6072 +11440 7392 +10256 8228 +10352 231 +10352 1012 +10352 1760 +10352 7392 +11472 7392 +11472 11275 +11492 6336 +11568 231 +11568 902 +11568 4488 +11568 6083 +11184 11385 +11204 9064 +11344 9064 +11515 9064 +11536 231 +11536 902 +11536 4488 +11536 5962 +11536 7392 +656 3575 +656 9922 +15824 5368 +15824 6798 +15824 8426 +15824 9878 +15824 10626 +15824 11429 +15888 4488 +15984 4488 +16128 4488 +16283 4488 +16304 2222 +16304 3861 +6608 429 +6608 1518 +6608 2574 +6608 4048 +6660 5060 +6784 5060 +6896 7128 +6896 8646 +6896 10802 +12048 7392 +12048 11165 +12187 6776 +12208 902 +12208 4488 +12208 5962 +155 11198 +8912 5962 +8912 7018 +8912 9878 +8992 4488 +9440 4488 +9552 4488 +9680 4488 +9824 4488 +9936 4488 +10000 4488 +10224 4488 +10288 4488 +10384 4488 +10512 4488 +10576 4488 +10640 4488 +10704 4488 +10800 4488 +10864 231 +10864 902 +10864 1760 +10864 4389 +10864 4587 +10928 5896 +11067 5896 +11088 7392 +11088 11385 +9264 6908 +9264 9878 +9440 3168 +9520 231 +9520 1012 +9520 1760 +12240 902 +12240 4488 +12240 5962 +12240 7392 +12240 11165 +7312 8756 +7312 10802 +7536 638 +7536 1518 +7536 4048 +7536 4818 +3280 3113 +3280 6864 +3300 9372 +3504 9372 +3568 9372 +3632 10142 +11376 231 +11376 902 +11376 4488 +11376 6072 +11376 7392 +11504 8228 +11568 11275 +11280 11385 +11316 10472 +11440 10472 +11520 10472 +11600 10472 +11712 10472 +11792 10472 +11984 10472 +12080 10472 +12208 10472 +12384 10472 +12528 10472 +12656 10472 +12816 10472 +12944 10472 +13088 10472 +13232 10472 +13392 10472 +13536 10472 +13696 10472 +13968 10472 +14160 2530 +14160 5258 +14160 7172 +14160 8866 +14160 9878 +3152 3113 +3152 6864 +3188 7920 +3312 7920 +3408 10153 +3408 10571 +3504 10472 +3584 10472 +3712 10472 +3888 10472 +4048 10472 +4128 10472 +4272 10472 +4400 10472 +4528 10472 +4624 10472 +4688 10472 +4784 10472 +4955 10472 +4976 10373 +4992 9812 +4976 11495 +5008 2178 +5008 4048 +5008 6402 +528 3575 +528 9812 +16016 2222 +16016 3740 +16016 5368 +16016 6798 +16016 7766 +16016 8624 +16016 9834 +16068 9922 +16208 9922 +16432 9922 +16496 9922 +16592 9922 +16688 9922 +16784 9922 +16912 9922 +17040 9922 +17136 9922 +17280 9922 +17360 10670 +17360 11528 +5872 8382 +5872 10802 +5888 5060 +5904 209 +5904 2024 +5904 4048 +976 11055 +1104 10912 +1232 10912 +1584 10912 +1712 10912 +1776 10912 +1904 10912 +2064 10912 +2240 10912 +2464 10912 +2736 10912 +3019 10912 +3056 3113 +3056 6864 +3056 10153 +3168 10912 +3344 10912 +3504 10912 +3584 10912 +3712 10912 +3888 10912 +4048 10912 +4128 10912 +4272 10912 +4400 10912 +4464 10912 +4528 10912 +4624 10912 +4688 11495 +13456 8536 +13456 9174 +13456 11429 +13520 7788 +13632 7788 +13760 7788 +13968 7788 +14192 7788 +14272 7788 +14384 7788 +14448 2530 +14448 5368 +14448 6798 +14512 7788 +14704 7788 +14816 7788 +14928 7887 +14928 8646 +14928 9878 +14928 11429 +16048 2222 +16048 3740 +16048 5368 +16048 6798 +16048 7766 +16128 8404 +16304 8404 +16432 8404 +16592 8404 +16688 8404 +16752 8404 +16816 8404 +16912 8404 +17008 10560 +17008 11528 +560 9801 +752 8404 +912 8404 +976 8404 +1104 8404 +1232 8404 +1328 8404 +1536 8404 +1616 8404 +1696 8404 +1776 8404 +1872 8404 +1936 8404 +2112 8404 +2192 8404 +2288 8404 +2464 8404 +2635 8404 +2704 3113 +2704 6864 +2804 8140 +2960 8140 +3024 8140 +3168 8140 +3312 8140 +3504 8140 +3632 8140 +3696 8140 +3824 8140 +3952 8140 +4096 8140 +4272 8140 +4336 8140 +2704 8250 +4432 11495 +14032 2530 +14032 5258 +14032 7293 +14068 7568 +14192 7568 +14272 7568 +14384 7568 +14512 7568 +14704 7568 +14816 7568 +14928 7568 +15131 7568 +15248 7777 +15248 8646 +15248 9878 +15248 10626 +15248 11429 +13584 2530 +13584 3949 +13620 4048 +13872 4048 +14096 4048 +14224 4048 +14400 4048 +14512 4048 +14736 4048 +14800 4048 +14896 4257 +14896 5478 +14896 6798 +14896 8646 +14896 9878 +14896 11429 +14608 2530 +14608 5368 +14608 6798 +14608 8646 +14608 9878 +14608 11539 +13392 1606 +13392 2794 +13392 3938 +13392 4928 +13456 6248 +13520 6248 +13632 6248 +13760 6248 +13920 6248 +14080 6248 +14192 6248 +14256 6248 +14400 6248 +14512 6248 +14704 6248 +14816 6248 +14928 6248 +15136 6248 +15328 6248 +15440 6248 +15600 6248 +15712 6248 +15792 6248 +15888 6248 +15984 6248 +16128 6248 +16288 6248 +16544 6248 +16656 6677 +16656 7876 +16656 10890 +16672 6248 +16688 1012 +16688 2222 +16688 3850 +16688 5478 +12752 1606 +12752 2431 +12816 2640 +12944 2640 +13120 2640 +13339 2640 +13360 3003 +13360 3938 +13360 4928 +13360 6402 +13360 7392 +13360 8536 +13360 9174 +13360 11429 +16208 2222 +16208 3740 +16208 5368 +16208 6798 +16208 7766 +16283 8624 +16304 10461 +16304 11429 +1392 8778 +1392 10032 +1456 6336 +1552 6336 +1648 6336 +1760 6336 +1872 6336 +2000 6336 +2112 6336 +2192 6336 +2288 6336 +2480 6336 +2608 6336 +2736 6336 +2880 6336 +3024 6336 +3200 6336 +3312 6336 +3408 3058 +3408 6160 +3808 6336 +3888 6336 +3952 6336 +4096 6336 +4176 6336 +4256 6336 +4432 6336 +4496 6336 +4560 7810 +4560 8866 +4560 11495 +3696 3113 +3696 7029 +3808 7260 +3888 7260 +3952 7260 +4096 7260 +4176 7260 +4256 7260 +4336 7260 +4432 7260 +4496 7260 +4640 7260 +4768 7260 +4848 7260 +4912 7260 +5040 11495 +4912 11495 +5104 2178 +5104 4048 +5104 6402 +5104 7315 +14352 2530 +14352 5368 +14352 6908 +14352 8866 +14352 9878 +14352 11539 +5328 6391 +5328 7194 +5328 10582 +5392 2178 +5392 4048 +5744 10802 +5760 8624 +5776 2024 +5776 4048 +5776 8393 +1488 3113 +1488 6908 +1488 8778 +1488 10032 +4016 2959 +4016 6908 +4128 9152 +4272 9152 +7984 1188 +7984 4818 +7984 8756 +6160 429 +6160 2024 +6160 4048 +6160 8382 +6160 10802 +6160 11495 +5264 2178 +5264 4048 +5264 6402 +5264 7194 +5552 9812 +5632 9812 +5808 9812 +5968 9812 +6032 9812 +6112 9812 +6192 9812 +6352 9812 +6448 9812 +6672 9812 +6848 9812 +6928 9812 +7024 9812 +7216 9812 +7536 9812 +7600 9812 +7696 9812 +7824 9812 +7904 9812 +8096 9812 +8176 9812 +8272 9812 +8368 9812 +8432 9812 +8720 9812 +8859 9812 +8880 9911 +9200 7018 +9200 8074 +9200 9878 +9296 671 +9296 1760 +9296 2838 +6512 429 +6512 2024 +6512 4048 +6512 8657 +6528 8844 +6544 9438 +6544 11495 +9904 231 +9904 1012 +9904 1760 +6928 638 +6928 1518 +6928 2574 +6928 4048 +6928 7139 +6944 7260 +6960 8646 +6960 10802 +10896 10362 +10896 11495 +10916 9504 +11040 9504 +11216 9504 +11280 231 +11280 902 +11280 4488 +11280 7392 +7408 10912 +7440 638 +7440 1518 +7440 4048 +7440 4928 +7440 8756 +12592 4708 +12592 6072 +12592 7392 +12592 11429 +12608 3608 +12624 1606 +12624 2574 +12688 3608 +12784 3608 +12928 3608 +13120 3608 +13328 3608 +13456 3608 +13520 3608 +13632 3608 +13872 3608 +14096 3608 +14224 3608 +14400 3608 +14512 3608 +14736 3608 +14800 3608 +14912 3608 +15120 3608 +15328 3608 +15408 3608 +15472 3608 +15600 3608 +15712 3608 +15792 3608 +15899 3608 +15920 3927 +15920 5368 +15920 6798 +15920 7766 +15920 8624 +15920 9878 +15920 10626 +15920 11429 +12336 7392 +12336 11165 +12352 6116 +12368 902 +12368 1606 +12368 4488 +12368 5973 +17616 6578 +17616 7766 +17616 9603 +17616 10670 +17835 5500 +17872 231 +17872 1628 +17872 4213 +11632 902 +11632 4488 +11632 6083 +11648 6336 +11664 7392 +11664 11275 +14480 2530 +14480 5368 +14480 6798 +14480 8866 +14480 9878 +14480 11539 +17648 231 +17648 1782 +17648 4246 +17648 6578 +17648 7766 +17648 9603 +17648 10670 +624 3575 +624 9922 +12400 902 +12400 1606 +12400 4488 +12400 5973 +12416 6116 +12432 7392 +12432 11429 +12080 902 +12080 4488 +12080 5962 +12080 7392 +12096 9504 +12112 11165 +17776 231 +17776 1628 +17776 4092 +17776 6204 +17776 7766 +17776 8734 +17776 9603 +17776 10670 +12464 902 +12464 1606 +12516 4268 +12688 4268 +12800 4268 +12912 4268 +13120 4268 +13328 4268 +13456 4268 +13520 4268 +13616 4268 +13872 4268 +14091 4268 +14128 5258 +14128 7172 +14128 8866 +14128 9878 +14128 11539 +17744 231 +17744 1749 +17824 2684 +17979 2684 +18000 4675 +18000 7766 +18000 10670 +16624 1012 +16624 2222 +16624 3850 +16624 5478 +16624 6798 +16624 7876 +16624 10890 +13232 1606 +13232 2310 +13232 3124 +13232 3938 +13232 4928 +13232 7282 +13232 8536 +13232 9185 +13248 9284 +13264 11429 +10192 231 +10192 1012 +10192 1760 +18416 10670 +18500 9438 +18656 9438 +18784 9438 +18928 9438 +19024 9438 +912 3410 +912 6864 +928 7040 +944 9922 +14320 2530 +14320 5368 +14320 6908 +14320 8866 +14320 9878 +14320 11539 +7696 1188 +7696 4818 +7696 6908 +7760 7700 +7824 7700 +7888 7700 +8016 8756 +18832 10725 +18832 11528 +18928 10494 +19024 10494 +14768 2530 +14768 5478 +14768 6798 +14800 8008 +14832 8646 +14832 9878 +14832 11429 +6640 220 +6676 308 +6795 308 +6832 220 +6832 517 +6832 1518 +6832 2574 +6832 4048 +6832 5434 +6832 7128 +6832 8646 +6852 9284 +6928 9284 +7024 9284 +7216 9284 +7536 9284 +7600 9284 +7696 9284 +7824 9284 +7904 9284 +8096 9284 +8176 9284 +8272 9284 +8368 9284 +8432 9284 +8720 9284 +8864 9284 +9104 9284 +9728 9284 +10032 9284 +10256 9284 +10448 9284 +10656 9284 +10736 9284 +10800 9284 +10912 9284 +11040 9284 +11216 9284 +11344 9284 +11520 9284 +11600 9284 +11712 9284 +11792 9284 +11984 9284 +12128 9284 +12208 9284 +12384 9284 +12528 9284 +12656 9284 +12843 9284 +12880 11429 +7344 8756 +7344 10802 +7600 7260 +7760 7260 +7824 7260 +7888 7260 +8043 7260 +8080 1188 +8080 4818 +8080 7029 +10128 231 +10128 1012 +10128 1760 +10148 5896 +10224 5896 +10384 5896 +10512 5896 +10587 5896 +10608 7392 +10608 11495 +16496 2222 +16496 3850 +16496 5478 +16496 6798 +16496 7766 +16592 9284 +16688 9284 +16784 9284 +16912 9284 +17040 9284 +17136 9284 +17280 9284 +17392 9592 +17392 10670 +17392 11528 +4592 2684 +4592 5434 +4592 7810 +4592 8866 +4592 11495 +10576 7392 +10576 11495 +10656 6336 +10800 6336 +10864 6336 +10928 6336 +11024 231 +11024 902 +11024 1760 +11024 4488 +2384 3113 +2384 6644 +2384 10032 +2928 10032 +2944 6952 +2960 3113 +2960 6875 +5168 2178 +5168 4048 +5168 6402 +5168 7458 +5168 10582 +2544 3113 +2544 6754 +2544 10032 +9648 231 +9648 1012 +9648 1760 +9648 7128 +9664 7788 +1808 8052 +1808 10032 +1872 7172 +1984 7172 +2112 7172 +2192 7172 +2288 7172 +2464 7172 +2624 7172 +2736 7172 +2864 7172 +2960 7172 +3024 7172 +3200 7172 +3312 7172 +3408 7172 +3472 3113 +3472 6985 +9488 231 +9488 1012 +9488 1760 +9488 7128 +2000 8041 +2000 8778 +2000 10032 +2112 7920 +2192 7920 +2288 7920 +2464 7920 +2624 7920 +2816 7920 +2960 7920 +3024 7920 +3120 3113 +3120 6864 +8752 8866 +8816 1188 +8816 3938 +8816 5973 +1008 3575 +1008 9658 +1296 7821 +1296 9658 +1316 7700 +1536 7700 +1648 7700 +1760 7700 +1872 7700 +1984 7700 +2112 7700 +2192 7700 +2288 7700 +2464 7700 +2624 7700 +2747 7700 +2768 3113 +2768 6864 +1360 3223 +1360 8778 +1360 10032 +2032 8778 +2032 10032 +2112 6952 +2192 6952 +2288 6952 +2416 3113 +2416 6765 +560 3410 +560 6864 +576 7040 +592 9922 +1712 3113 +1712 7018 +1712 8063 +1728 8184 +1744 10032 +5104 10582 +5104 11495 +5120 7920 +5136 2178 +5136 4048 +5136 6402 +5136 7469 +2064 3113 +2064 6644 +2064 8789 +2080 8932 +2096 10032 +3072 11220 +3088 3113 +3088 6864 +3088 10032 +3248 3113 +3248 6864 +3248 10032 +10960 231 +10960 902 +10960 1760 +10960 4488 +10960 7392 +10960 10362 +10960 11495 +2976 10692 +2992 3113 +2992 6864 +2992 10043 +10832 10362 +10832 11495 +10896 231 +10896 902 +10896 1760 +10896 4488 +10896 7392 +10832 231 +10832 902 +10832 1760 +10848 6776 +10864 7392 +10864 10362 +10864 11495 +17968 10670 +18368 9790 +18512 9790 +18656 9790 +18784 9790 +18928 9790 +19024 9790 +3376 3113 +3376 6864 +3504 9592 +3568 9592 +3664 10142 +2224 3113 +2224 6644 +2276 8712 +2464 8712 +2736 8712 +2960 8712 +3024 8712 +3168 8712 +3312 8712 +3504 8712 +3632 8712 +3696 8712 +3824 8712 +3952 8712 +8848 9064 +8880 1188 +8880 3938 +8880 5962 +8880 7018 +16080 2222 +16080 3740 +16080 5368 +16080 6798 +16080 7766 +16080 8745 +16112 8844 +16144 10626 +16144 11429 +13296 1606 +13296 2310 +13296 3124 +13296 3938 +13296 4928 +13456 5808 +13520 5808 +13632 5808 +13760 5808 +13920 5808 +14080 5808 +14203 5808 +14224 7172 +14224 8866 +14224 9878 +14224 11539 +14160 11539 +14180 10780 +14272 10780 +14384 10780 +14448 10780 +14704 10780 +14784 10780 +14960 2530 +14960 4158 +14960 5478 +14960 6798 +14960 7898 +14960 8646 +14960 9878 +14960 10637 +17104 10560 +17104 11528 +17120 8404 +17136 1782 +17136 4356 +17136 6688 +17136 7722 +15440 8646 +15440 9878 +15440 10626 +15440 11429 +15460 7788 +15600 7788 +15712 7788 +15792 7788 +15856 2530 +15856 4048 +15856 5368 +15856 6798 +15856 7689 +15344 8646 +15344 9878 +15344 10626 +15344 11429 +15380 8008 +15472 8008 +15568 2530 +15568 5368 +15568 6798 +4208 2365 +4208 5434 +4208 6908 +18320 3619 +18320 7876 +18320 9427 +18320 10670 +12144 902 +12144 4488 +12144 5962 +12144 7392 +12160 9064 +12176 11165 +14992 4323 +14992 5478 +14992 6798 +14992 7898 +14992 8646 +14992 9878 +14992 10626 +14992 11429 +15124 4180 +15328 4180 +15408 4180 +15472 4180 +15600 4180 +15712 4180 +15803 4180 +15824 2530 +15824 4015 +16336 10461 +16336 11429 +16432 8624 +16592 8624 +16688 8624 +16752 8624 +16816 8624 +16912 8624 +17040 8624 +17136 8624 +17243 8624 +17264 1782 +17264 4092 +17264 6688 +17264 7722 +17264 8481 +9712 231 +9712 1012 +9712 1760 +9712 7128 +17072 1012 +17072 2222 +17072 4356 +17072 6688 +17072 7722 +17072 10560 +17072 11528 +13552 11418 +13696 11220 +13968 11220 +14192 11220 +14272 11220 +14384 11220 +14448 11220 +14576 11220 +14672 2530 +14672 5368 +14672 6798 +14672 8646 +14672 9878 +14688 11220 +14704 11418 +16464 2222 +16464 3850 +16464 5478 +16464 6798 +16464 7766 +16464 10461 +16464 11429 +144 11528 +320 11440 +496 11440 +752 11440 +912 11440 +1104 11440 +1232 11440 +1584 11440 +1712 11440 +1776 11440 +1904 11440 +2064 11440 +2251 11440 +2352 3113 +2352 6644 +2352 10032 +2352 11297 +2464 11440 +2736 11440 +3008 11440 +3152 11440 +3344 11440 +3504 11440 +3584 11440 +3712 11440 +3888 11440 +4048 11440 +4128 11440 +4272 11440 +4368 11528 +13168 7282 +13168 8536 +13168 9174 +13168 11429 +13264 1606 +13264 2310 +13264 3124 +13264 3938 +13264 4928 +13264 6413 +7792 8899 +7824 8756 +7856 1188 +7856 4818 +7856 8613 +16720 1012 +16720 2222 +16720 3850 +16720 5478 +16720 6688 +16720 7876 +16720 10560 +16720 11528 +19056 11528 +12976 3938 +12976 4708 +12976 6072 +12976 7282 +12976 8536 +12976 9174 +12976 11429 +13040 473 +13040 1606 +13040 2310 +15920 2497 +15936 3300 +15952 3773 +15952 5368 +15952 6798 +15952 7766 +15952 8624 +15952 9878 +15952 10626 +15952 11429 +5296 6402 +5296 7194 +5296 10582 +5312 5588 +5328 2178 +5328 4048 +11856 902 +11856 4488 +11856 5929 +11872 6028 +11888 6171 +11888 7392 +11888 11165 +15504 583 +15504 2530 +15504 5368 +15504 6798 +15504 8646 +15552 9284 +15600 9878 +15600 10626 +15600 11429 +5840 209 +5840 2024 +5840 4048 +5840 8382 +5840 10802 +4368 2365 +4368 5434 +4368 7810 +4388 11132 +4464 11132 +4528 11132 +4624 11132 +4784 11132 +4944 11132 +5136 11132 +5200 11132 +5360 11132 +5552 11132 +5616 11132 +5808 11132 +5968 11132 +6032 11132 +6112 11132 +6208 11132 +6352 11132 +6464 11132 +6672 11132 +6832 11132 +7024 11132 +7200 11132 +7440 11132 +7536 11132 +7600 11132 +7696 11132 +7824 11132 +7888 11132 +6288 429 +6288 2024 +6288 4048 +6416 8228 +6544 8228 +6672 8228 +6864 8228 +6928 8228 +7040 8228 +7184 8228 +7536 8228 +7600 8228 +7696 8228 +7760 8228 +7824 8228 +7888 8228 +8096 8228 +8176 8228 +8256 8228 +8448 8228 +8720 8228 +8848 8228 +9115 8228 +9136 9878 +4624 2684 +4624 5445 +4644 5808 +4752 5808 +4848 5808 +4912 5808 +5040 5808 +5328 5808 +5664 5808 +6096 5808 +6192 5808 +6256 5808 +6416 5808 +6560 5808 +6672 5808 +6768 5808 +6864 5808 +6992 5808 +7088 5808 +7184 5808 +7328 5808 +7584 5808 +7664 5808 +7760 5808 +7824 5808 +7888 5808 +7952 5808 +8048 5808 +8176 5808 +8336 6908 +8336 8646 +9008 1188 +9440 3828 +9552 3828 +9680 3828 +9824 3828 +9936 3828 +10000 3828 +10224 3828 +10288 3828 +10384 3828 +10512 3828 +10576 3828 +10640 3828 +10704 3828 +10800 3828 +10928 3828 +11056 3828 +11120 3828 +11216 3828 +11344 3828 +11488 3828 +11680 3828 +11760 3828 +11904 3828 +12048 3828 +12176 3828 +12336 3828 +12432 3828 +12528 3828 +12624 3828 +12688 3828 +12752 4708 +12752 6072 +12752 7392 +12752 8646 +12752 11429 +14512 9163 +14512 9878 +14512 11539 +14704 9064 +14784 9064 +15120 9064 +15392 9064 +15472 9064 +15568 9064 +15712 9064 +15792 9064 +15856 9064 +15984 9064 +16080 9064 +16208 9064 +16432 9064 +16592 9064 +16688 9064 +16784 9064 +16912 9064 +17040 9064 +17136 9064 +17280 9064 +17392 9064 +17472 9064 +17552 9064 +17952 9064 +18224 9064 +18427 9064 +18512 4037 +18512 8855 +6480 429 +6480 2024 +6480 4048 +6480 8646 +6672 10252 +6848 10252 +7024 10252 +7200 10252 +7376 10252 +7536 10252 +7600 10252 +7696 10252 +7824 10252 +7888 10252 +7984 10252 +8096 10252 +8176 10252 +8272 10252 +8368 10252 +8432 10252 +8720 10252 +8848 10252 +9104 10252 +9728 10252 +10032 10252 +10256 10252 +10320 10252 +7472 638 +7472 1518 +7472 4048 +7472 4928 +7472 8756 +7536 10912 +7600 10912 +7696 10912 +7824 10912 +7888 10912 +7984 10912 +8096 10912 +8176 10912 +8272 10912 +8368 10912 +8432 10912 +8720 10912 +8848 10912 +9104 10912 +9728 10912 +10032 10912 +10256 10912 +10320 10912 +10480 10912 +10656 10912 +10768 10912 +10928 10912 +11024 10912 +11216 10912 +11328 10912 +11440 11440 +11440 11088 +4848 7755 +4848 11495 +4864 7612 +4880 2618 +4880 6402 +8912 1188 +8912 3949 +8992 4048 +9440 4048 +9552 4048 +9680 4048 +9824 4048 +9936 4048 +10000 4048 +10224 4048 +10288 4048 +10384 4048 +10512 4048 +10576 4048 +10640 4048 +10704 4048 +10800 4048 +10928 4048 +11056 4048 +11120 4048 +11216 4048 +11344 4048 +11488 4048 +11680 4048 +11760 4048 +11904 4048 +12048 4048 +12176 4048 +12336 4048 +12432 4048 +12528 4048 +12624 4708 +12624 6072 +12624 7392 +12624 11429 +12688 4048 +12800 4048 +12880 1606 +12880 2310 +12880 3949 +4656 2629 +4720 4488 +4784 4488 +4848 4488 +4912 4488 +5040 4488 +5296 4488 +5664 4488 +5872 4488 +6128 4488 +6192 4488 +6256 4488 +6416 4488 +6560 4488 +6672 4488 +6784 4488 +6896 4488 +7008 4488 +7088 4488 +7184 4488 +7312 4488 +7504 4488 +7664 4488 +7760 4488 +7824 4488 +7888 4488 +7952 4488 +8048 4488 +8208 4488 +8336 4488 +8432 4488 +8496 4488 +8688 5962 +8688 8866 +12016 902 +12016 4488 +12016 6083 +12036 6336 +12176 6336 +12384 6336 +12523 6336 +12560 7392 +12560 11429 +17456 11528 +17476 11440 +17552 11440 +17920 11440 +18368 11440 +18523 11440 +18608 4037 +18608 8525 +18608 10670 +18608 11528 +14416 8866 +14416 9878 +14416 11539 +14512 7348 +14704 7348 +14816 7348 +14928 7348 +15136 7348 +15328 7348 +15440 7348 +15600 7348 +15712 7348 +15792 7348 +15888 7348 +15984 7348 +16128 7348 +16288 7348 +16544 7348 +16688 7348 +16752 7348 +16816 7348 +16912 7348 +17040 7348 +17104 7348 +17168 7348 +17408 7348 +17504 7348 +17712 7348 +17856 7348 +17968 7348 +18192 7348 +18256 7348 +18384 7348 +18448 3564 +18448 7172 +8592 1188 +8592 5962 +8592 6875 +8816 7095 +8836 8756 +9104 8756 +9728 8756 +10000 8756 +10256 8756 +10352 8756 +10464 8756 +10656 8756 +10736 8756 +10800 8756 +10912 8756 +11040 8756 +11200 8756 +11344 8756 +11504 8756 +11600 8756 +11712 8756 +11792 8756 +11984 8756 +12192 8756 +12272 8756 +12384 8756 +12528 8756 +12656 8756 +12720 11429 +4912 2299 +5040 3608 +5296 3608 +5664 3608 +5872 3608 +6128 3608 +6192 3608 +6256 3608 +6416 3608 +6560 3608 +6672 3608 +6784 3608 +6896 3608 +7008 3608 +7088 3608 +7184 3608 +7312 3608 +7504 3608 +7664 3608 +7760 3608 +7824 3608 +7888 3608 +7952 3608 +8048 3608 +8208 3608 +8336 3608 +8432 3608 +8496 3608 +8624 3608 +8752 3608 +8848 3608 +8976 3608 +9040 5962 +9040 6908 +9040 9878 +9328 671 +9328 1760 +9328 2838 +9728 9724 +10032 9724 +10256 9724 +10320 9724 +10416 9724 +10480 9724 +10656 9724 +10736 9724 +10800 9724 +10928 9724 +11040 9724 +11216 9724 +11312 9724 +11440 9724 +11520 9724 +11600 9724 +11712 9724 +11792 9724 +11984 9724 +12080 9724 +12208 9724 +12384 9724 +12528 9724 +12656 9724 +12827 9724 +12848 11429 +12944 9724 +13088 9724 +13232 9724 +13403 9724 +13424 1606 +13424 2794 +13424 3938 +13424 4928 +13424 7392 +13424 8536 +13424 9174 +16880 1012 +16880 2222 +16880 3850 +16880 5368 +16880 6688 +16880 7876 +16880 10560 +16880 11528 +18576 4037 +18576 8646 +18656 8866 +18859 8866 +18992 10846 +18992 11528 +8176 1188 +8176 4829 +8336 4928 +8432 4928 +8496 4928 +8752 4928 +8848 4928 +8992 4928 +9440 4928 +9552 4928 +9680 4928 +9824 4928 +9936 4928 +10000 4928 +10224 4928 +10288 4928 +10384 4928 +10512 4928 +10608 4928 +10704 4928 +10800 4928 +10928 4928 +11056 4928 +11120 4928 +11216 4928 +11344 4928 +11488 4928 +11680 4928 +11760 4928 +11904 4928 +12048 4928 +12176 4928 +12336 4928 +12443 4928 +12464 5962 +12464 7392 +12464 11429 +6000 10802 +6000 11495 +6016 8624 +6032 319 +6032 2024 +6032 4048 +6032 5324 +7088 638 +7088 1518 +7088 2409 +7184 2508 +7312 2508 +7504 2508 +7664 2508 +7760 2508 +7824 2508 +7888 2508 +7952 2508 +8048 2508 +8208 2508 +8336 2508 +8432 2508 +8496 2508 +8624 2508 +8752 2508 +8848 2508 +8976 2508 +9040 2508 +9264 2508 +9408 2508 +9680 2508 +9808 2508 +9872 2508 +10000 2508 +10096 2508 +10224 2508 +10288 2508 +10384 2508 +10512 2508 +10576 2508 +10640 2508 +10704 2508 +10800 2508 +10928 2508 +11056 2508 +11120 2508 +11216 2508 +11344 2508 +11408 4488 +11408 6072 +11408 7392 +11408 11385 +15760 2530 +15760 5368 +15760 6798 +15760 8426 +15760 9878 +15760 10626 +15760 11429 +112 9218 +112 11528 +260 7480 +480 7480 +560 7480 +736 7480 +848 7480 +912 7480 +976 7480 +1072 7480 +1152 7480 +1312 7480 +1536 7480 +1648 7480 +1760 7480 +1872 7480 +1984 7480 +2112 7480 +2192 7480 +2288 7480 +2464 7480 +2624 7480 +2736 7480 +2864 7480 +2960 7480 +3024 7480 +3200 7480 +3312 7480 +3419 7480 +3440 3113 +3440 6864 +5616 1914 +5616 4048 +5652 6336 +6096 6336 +6192 6336 +6256 6336 +6416 6336 +6544 6336 +6672 6336 +6768 6336 +6864 6336 +6992 6336 +7088 6336 +7184 6336 +7328 6336 +7616 6336 +7744 6336 +7824 6336 +7888 6336 +8048 6336 +8176 6336 +8432 6336 +8512 6336 +8832 6336 +8992 6336 +9296 6336 +9456 6336 +9552 6336 +9680 6336 +9808 6336 +10016 6336 +10139 6336 +16944 1012 +16944 2222 +16944 3850 +16944 5368 +16944 6688 +16944 7876 +16944 10560 +16944 11528 +9744 231 +9744 1012 +9744 1760 +9764 6996 +10016 6996 +10128 6996 +10224 6996 +10384 6996 +10496 6996 +10656 6996 +10816 6996 +10928 6996 +11040 6996 +11120 6996 +11216 6996 +11328 6996 +11504 6996 +11568 6996 +11632 6996 +11696 6996 +11760 6996 +11824 6996 +11968 6996 +12192 6996 +12272 6996 +12384 6996 +12528 6996 +12656 6996 +12800 6996 +12891 6996 +12912 7271 +12912 8536 +12912 9174 +12912 11429 +12933 6776 +13088 6776 +13280 6776 +13392 6776 +13456 6776 +13520 6776 +13632 6776 +13760 6776 +13920 6776 +14080 6776 +14192 6776 +14267 6776 +12912 6908 +14288 2530 +14288 5368 +14288 6633 +13904 11528 +13920 11440 +13936 11528 +13952 11440 +13968 11528 +6576 429 +6576 1639 +6672 2068 +6784 2068 +6896 2068 +7008 2068 +7184 2068 +7312 2068 +7504 2068 +7664 2068 +7760 2068 +7824 2068 +7888 2068 +7952 2068 +8048 2068 +8208 2068 +8336 2068 +8432 2068 +8496 2068 +8560 2068 +8624 2068 +8752 2068 +8848 2068 +8976 2068 +9040 2068 +9264 2068 +9424 2068 +9584 2068 +9680 2068 +9808 2068 +9872 2068 +10000 2068 +10096 2068 +10224 2068 +10288 2068 +10384 2068 +10512 2068 +10576 2068 +10640 2068 +10704 2068 +10800 2068 +10928 2068 +11056 2068 +11120 2068 +11227 2068 +11248 4488 +11248 7392 +11248 11385 +5552 2178 +5552 4048 +5552 6402 +5552 7403 +5648 7480 +5936 7480 +6096 7480 +6192 7480 +6416 7480 +6544 7480 +6672 7480 +6864 7480 +6928 7480 +7040 7480 +7168 7480 +7312 7480 +7600 7480 +7760 7480 +7824 7480 +7888 7480 +8048 7480 +8176 7480 +8272 7480 +8416 7480 +8656 7480 +8848 7480 +9104 7480 +9232 7480 +9616 7480 +9680 7480 +9760 7480 +10016 7480 +10128 7480 +10224 7623 +10160 231 +10160 1012 +10160 1760 +10224 5148 +10288 5148 +10384 5148 +10512 5148 +10608 5148 +10704 5148 +10800 5148 +10928 5148 +11056 5148 +11120 5148 +11216 5148 +11344 5148 +11488 5148 +11680 5148 +11760 5148 +11904 5148 +12048 5148 +12176 5148 +12336 5148 +12432 5148 +12528 5148 +12688 5148 +12800 5148 +12912 5148 +13115 5148 +13136 6182 +13136 7282 +13136 8536 +13136 9174 +13136 11429 +13328 4488 +13456 4488 +13520 4488 +13616 4488 +13872 4488 +14080 4488 +14224 4488 +14400 4488 +14512 4488 +14736 4488 +14811 4488 +13136 4840 +14832 2530 +14832 4389 +6000 319 +6000 2024 +6000 4048 +6000 5324 +6000 8239 +6064 8459 +6064 10802 +6064 11495 +17168 10560 +17168 11528 +17232 1782 +17232 4092 +17232 6688 +17232 7722 +4688 2508 +4688 5324 +4688 7711 +4752 8866 +4752 11495 +17232 10560 +17232 11528 +17264 8844 +17296 1782 +17296 4092 +17296 6688 +17296 7722 +17296 8591 +10416 231 +10416 1012 +10416 1760 +10416 7392 +3632 3113 +3632 7139 +3696 7480 +3808 7480 +3888 7480 +3952 7480 +4096 7480 +4176 7480 +4256 7480 +4336 7480 +4432 7480 +4496 7480 +4635 7480 +4656 7689 +4656 8866 +4656 11495 +10576 231 +10576 1023 +10640 1232 +10704 1232 +10800 1232 +10928 1232 +11056 1232 +11120 1232 +11216 1232 +11344 1232 +11488 1232 +11696 1232 +11760 1232 +11904 1232 +12048 1232 +12176 1232 +12336 1232 +12432 1232 +12528 1232 +12688 1232 +12816 1232 +12944 1232 +13120 1232 +13200 1485 +13200 2310 +13200 3124 +13200 3938 +13200 4928 +13200 7282 +13200 8536 +13200 9174 +13200 11429 +13344 1232 +13488 1232 +13632 1232 +13872 1232 +14096 1232 +14224 1232 +14400 1232 +14512 1232 +14736 1232 +14800 1232 +14912 1232 +15120 1232 +15328 1232 +15408 1232 +15472 1232 +15600 1232 +12144 11165 +12208 9504 +12384 9504 +12528 9504 +12656 9504 +12832 9504 +12944 9504 +13088 9504 +13232 9504 +13392 9504 +13536 9504 +13632 9504 +13744 9504 +13968 9504 +14192 9504 +14272 9504 +14384 9504 +14448 9504 +14704 9504 +14784 9504 +15120 9504 +15392 9504 +15520 9504 +15712 9504 +15792 9504 +15856 9504 +15984 9504 +16080 9504 +16208 9504 +16432 9504 +16496 9504 +16592 9504 +16688 9504 +16784 9504 +16912 9504 +17040 9504 +17136 9504 +17280 9504 +17360 1782 +17360 4092 +17360 6688 +17360 7722 +17360 8580 +10992 231 +10992 902 +10992 1760 +10992 4488 +10992 7392 +11028 10252 +11216 10252 +11312 10252 +11440 10252 +11520 10252 +11600 10252 +11712 10252 +11792 10252 +11984 10252 +12080 10252 +12208 10252 +12384 10252 +12528 10252 +12656 10252 +12816 10252 +12944 10252 +13088 10252 +13232 10252 +13403 10252 +13424 11429 +13536 10252 +13696 10252 +13968 10252 +14192 10252 +14272 10252 +14384 10252 +14448 10252 +14704 10252 +14784 10252 +15120 10252 +15392 10252 +15520 10252 +15712 10252 +15792 10252 +15856 10252 +16048 10252 +16219 10252 +16240 2222 +16240 3740 +16240 5368 +16240 6798 +16240 7766 +10448 231 +10448 1012 +10448 1760 +10448 7392 +5712 8459 +5712 10802 +5728 8316 +5744 2024 +5744 4048 +5744 8239 +17424 1782 +17424 4092 +17424 6699 +17504 7128 +17712 7128 +17808 7766 +17808 8734 +17808 9603 +17808 10670 +9520 7128 +9536 3608 +9552 231 +9552 1012 +9552 1760 +17328 1782 +17328 4092 +17328 6688 +17328 7722 +17328 8580 +17328 10670 +17328 11528 +19088 11528 +11408 231 +11408 902 +11488 1980 +11696 1980 +11760 1980 +11904 1980 +12048 1980 +12176 1980 +12336 1980 +12432 1980 +12528 1980 +12688 1980 +12816 1980 +12944 1980 +13120 1980 +13344 1980 +13467 1980 +13488 2673 +13488 3938 +13488 4928 +13488 7282 +13488 8536 +13488 9174 +13488 11429 +13509 1452 +13632 1452 +13872 1452 +14096 1452 +14224 1452 +14400 1452 +14512 1452 +14736 1452 +14800 1452 +14912 1452 +15120 1452 +15328 1452 +15408 1452 +15472 1452 +15600 1452 +15712 1452 +15792 1452 +15888 1452 +15984 1452 +16128 1452 +16272 1452 +16400 1452 +16544 1452 +16656 1452 +16752 1452 +16912 1452 +17040 1452 +13488 1738 +17104 1133 +11120 11385 +11184 231 +11184 902 +11184 1760 +11184 4488 +11184 7392 +5680 8382 +5680 10802 +5696 7700 +5712 2024 +5712 4048 +4304 2365 +4304 5434 +4304 6908 +4304 7810 +2128 10032 +2144 8932 +2160 3113 +2160 6644 +2160 8789 +5424 7183 +5424 10692 +5440 6996 +5456 2178 +5456 4048 +5456 6402 +11152 231 +11152 902 +11152 1760 +11152 4488 +11152 7392 +11152 11385 +15632 2530 +15632 5368 +15632 6798 +15632 8426 +15632 9878 +15632 10626 +15632 11429 +16176 2222 +16176 3740 +16176 5368 +16176 6798 +16176 7766 +16176 8734 +16176 10626 +16176 11429 +5392 7194 +5392 10692 +5408 6556 +5424 2178 +5424 4048 +5424 6413 +4464 2574 +4464 5434 +4464 7920 +4528 10692 +4624 10692 +4688 10692 +4784 10692 +4944 10692 +5072 10791 +5072 11495 +18352 3619 +18352 7887 +18372 8184 +18464 8184 +18667 8184 +18704 8404 +18704 10670 +18704 11528 +4528 2574 +4528 5434 +4528 7931 +4624 8140 +4688 8140 +4784 8140 +4944 8140 +5136 8140 +5488 8371 +5488 10692 +1680 10032 +1700 8932 +1776 8932 +1883 8932 +1904 3113 +1904 6754 +1904 8052 +1904 8789 +19120 11528 +19122 8030 +18256 3454 +18256 6952 +18272 7128 +18288 7876 +18288 9427 +18288 10670 +4752 2618 +4752 5225 +4772 5368 +4848 5368 +4912 5368 +5040 5368 +5296 5368 +5664 5368 +5904 5467 +5904 8382 +5904 10802 +1264 6787 +1264 7832 +1264 9658 +1284 6556 +1456 6556 +1552 6556 +1648 6556 +1760 6556 +1840 3113 +17872 9603 +17872 10670 +17952 8844 +18224 3619 +18224 7766 +4816 2618 +4816 6402 +4816 7700 +4816 8723 +4944 8844 +5136 8844 +5552 8844 +5632 8844 +5792 8844 +5968 8844 +6032 8844 +6112 8844 +6192 8844 +6320 11495 +848 9922 +912 8184 +976 8184 +1104 8184 +1232 8184 +1328 8184 +1536 8184 +1616 3113 +1616 7018 +1616 8063 +17840 8723 +17840 9603 +17840 10670 +17860 8624 +17936 231 +17936 1628 +17936 4796 +17936 7766 +18000 231 +18000 1595 +18016 2376 +18032 4521 +18032 7766 +18032 10670 +17424 8613 +17424 9603 +17424 10670 +17424 11528 +17488 8404 +17552 8404 +17712 8404 +17856 8404 +17968 8404 +18192 8404 +18368 8404 +18464 8404 +18544 4037 +432 9702 +468 7260 +560 7260 +736 7260 +848 7260 +912 7260 +976 7260 +1072 7260 +1152 7260 +1312 7260 +1520 3113 +1520 7029 +11248 231 +11248 902 +11344 1760 +11488 1760 +11696 1760 +11760 1760 +11904 1760 +12048 1760 +12176 1760 +12304 4488 +12304 5962 +12304 7392 +12304 11165 +18160 3619 +18160 7766 +18160 10670 +18096 231 +18096 3740 +18096 7766 +18096 10670 +11088 231 +11088 902 +11088 1760 +11088 4488 +11108 5368 +11216 5368 +11344 5368 +11488 5368 +11680 5368 +11760 5368 +11904 5368 +12048 5368 +12176 5368 +12336 5368 +12432 5368 +12528 5368 +12688 5368 +12800 5368 +12912 5368 +13104 5368 +13328 5368 +13456 5368 +13520 5368 +13584 5467 +13584 7282 +13584 8866 +13584 11539 +10672 231 +10672 902 +10672 1760 +10800 5588 +10928 5588 +11088 5588 +11216 5588 +11344 5588 +11488 5588 +11680 5588 +11760 5588 +11904 5588 +12048 5588 +12176 5588 +12336 5588 +12432 5588 +12528 5588 +12688 5588 +12800 5588 +12912 5588 +13104 5588 +13328 6402 +13328 7392 +13328 8536 +13328 9174 +13328 11429 +3792 2904 +3792 5852 +3813 6028 +3888 6028 +3952 6028 +4096 6028 +4176 6028 +4256 6028 +4432 6028 +4496 6028 +4560 6028 +4640 6028 +4752 6028 +4848 6028 +4912 6028 +5040 6028 +5328 6028 +5664 6028 +6096 6028 +6192 6028 +6256 6028 +6416 6028 +6555 6028 +6576 8646 +6576 9438 +6576 11495 +4048 2959 +4048 6908 +4128 10032 +4272 10032 +4400 10032 +4528 10032 +4624 10032 +4688 10032 +4784 10032 +4944 10032 +5008 10032 +5136 10032 +5264 10032 +5552 10032 +5632 10032 +5808 10032 +5968 10032 +6032 10032 +6112 10032 +6192 10032 +6352 10032 +6448 10032 +6672 10032 +6848 10032 +6928 10802 +4400 2365 +4400 5434 +4400 7810 +4528 9592 +4624 9592 +4688 9592 +4784 9592 +4960 9592 +5136 9592 +5552 9592 +5632 9592 +5808 9592 +5968 9592 +6032 9592 +6112 9592 +6192 9592 +6352 9592 +6416 11495 +10256 231 +10256 1012 +10256 1760 +10256 7513 +10384 7788 +10496 7788 +10656 7788 +10816 7788 +10928 7788 +11040 7788 +11120 7788 +11216 7788 +11328 7788 +11504 7788 +11568 7788 +11632 7788 +11696 7788 +11760 7788 +11824 7788 +11968 7788 +12192 7788 +12272 7788 +12384 7788 +12528 7788 +12656 7788 +12800 7788 +12880 7788 +12944 7788 +13088 7788 +13275 7788 +13296 8536 +13296 9174 +13296 11429 +9840 231 +9840 1012 +9840 1760 +9860 3168 +10000 3168 +10096 3168 +10224 3168 +10288 3168 +10384 3168 +10512 3168 +10576 3168 +10640 3168 +10704 3168 +10800 3168 +10928 3168 +11056 3168 +11120 3168 +11216 3168 +11344 3168 +11488 3168 +11696 3168 +11760 3168 +11904 3168 +12048 3168 +12176 3168 +12336 3168 +12432 3168 +12544 3168 +12688 3168 +12752 3168 +12816 3168 +12928 3168 +13040 3267 +13040 3938 +13040 4708 +13040 6072 +13040 7282 +13040 8536 +13040 9174 +13040 11429 +4080 2310 +4080 4664 +4101 4840 +4176 4840 +4256 4840 +4432 4840 +4496 4840 +4560 4840 +4656 4840 +4720 4840 +4784 4840 +4848 4840 +4912 4840 +5040 4840 +5296 4840 +5664 4840 +5872 4840 +6128 4840 +6192 4840 +6256 4840 +6416 4840 +6560 4840 +6672 4840 +6784 4840 +6896 4840 +7008 4840 +7088 4840 +7184 4840 +7280 4983 +7280 7128 +7280 8756 +7280 10802 +4336 2365 +4336 5434 +4432 6776 +4496 6776 +4640 6776 +4768 6776 +4848 6776 +4912 6776 +5040 6776 +5424 6776 +5648 6776 +5936 6776 +6096 6776 +6192 6776 +6416 6776 +6544 6776 +6672 6776 +6768 6776 +6864 6776 +6992 6776 +7088 6776 +7184 6776 +7328 6776 +7611 6776 +7632 6897 +7632 8756 +18064 231 +18064 3740 +18064 7766 +18064 10670 +6960 638 +6960 1518 +6960 2574 +6960 4048 +6996 5588 +7088 5588 +7184 5588 +7328 5588 +7584 5588 +7664 5588 +7760 5588 +7824 5588 +7888 5588 +7952 5588 +8048 5588 +8176 5588 +8336 5588 +8432 5588 +8496 5588 +8752 5588 +8848 5588 +8992 5588 +9440 5588 +9552 5588 +9680 5588 +9824 5588 +10016 5588 +10160 5588 +10224 5588 +10288 7392 +9200 880 +9200 1760 +9200 2948 +9440 5808 +9552 5808 +9680 5808 +9819 5808 +1328 9911 +1584 9152 +1712 9152 +1776 9152 +1904 9152 +2064 9152 +2240 9152 +2464 9152 +2736 9152 +2960 9152 +3024 9152 +3168 9152 +3312 9152 +3504 9152 +3568 3113 +3568 7128 +3568 9053 +9424 352 +9444 572 +9584 572 +9680 572 +9808 572 +9872 572 +10000 572 +10096 572 +10224 572 +10288 572 +10384 572 +10512 572 +10640 572 +10704 572 +10800 572 +10928 572 +11056 572 +11120 572 +11216 572 +11344 572 +11488 572 +11696 572 +11760 572 +11904 572 +12048 572 +12176 572 +12336 572 +12432 572 +12528 572 +12688 572 +12816 572 +12955 572 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/usa13509.tsp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/usa13509.tsp new file mode 100644 index 000000000..7fc018324 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/benchs/usa13509.tsp @@ -0,0 +1,13510 @@ +13509 +245553 817828 +247133 810906 +247206 810189 +249239 806281 +250111 805153 +254475 804794 +254683 804778 +254950 804294 +255622 803825 +255803 803469 +255972 803808 +256047 803539 +256147 803108 +256311 803692 +256789 803175 +256933 801631 +257072 802936 +257072 803258 +257211 802686 +257264 803556 +257544 803275 +257631 802964 +257739 801939 +257903 801303 +258100 803025 +258219 802897 +258403 803267 +258458 801542 +258550 801933 +258572 802783 +258628 801931 +258647 803247 +258703 802992 +258781 801258 +258822 801808 +258872 801314 +258897 801869 +258914 801272 +259014 974972 +259019 802506 +259306 803286 +259328 801628 +259403 802458 +259481 801508 +259503 801231 +259619 801769 +259647 801225 +259647 802417 +259722 817292 +259808 801486 +259869 802325 +259875 801750 +260028 802242 +260108 801497 +260519 801442 +260569 802719 +260644 802322 +260714 974761 +260731 972083 +260883 817264 +260919 979569 +261000 982628 +261006 972900 +261033 971644 +261219 801436 +261272 802333 +261322 976308 +261400 802136 +261417 817950 +261494 979133 +261586 978236 +261592 979906 +261600 801392 +261661 802086 +261700 980517 +261833 981228 +261903 976958 +261917 800967 +261944 981833 +262022 800942 +262031 982297 +262156 983250 +262189 817919 +262256 977578 +262350 975817 +262375 801250 +262442 802067 +262467 984811 +262483 977336 +262564 978247 +262614 818094 +262825 801072 +262869 983131 +262931 979928 +262936 800792 +262936 979603 +262983 979283 +263014 981631 +263181 801000 +263306 818269 +263394 817789 +263583 800833 +263728 979714 +263794 988200 +263992 800658 +264047 990156 +264119 977894 +264183 814175 +264422 980136 +264486 820225 +264517 819483 +264611 800731 +264669 818017 +265250 800667 +265267 800486 +265625 819497 +265661 800536 +265864 800522 +265886 800389 +266156 800572 +266233 801256 +266250 816250 +266403 818725 +266450 800761 +266636 807164 +266669 818803 +266744 818153 +266842 806678 +266908 801203 +267053 800367 +267089 817461 +267150 800536 +267372 809511 +267539 809339 +267600 800739 +267614 814386 +267750 800583 +267778 800358 +268000 800667 +268172 800822 +268197 806656 +268328 810933 +268417 810964 +268794 800536 +268833 822903 +269069 992711 +269097 820542 +269139 823272 +269294 820456 +269339 800944 +269467 820261 +269581 820672 +269614 819842 +269758 820908 +270269 804858 +270500 822500 +270528 824244 +270567 823786 +270592 801367 +270728 824078 +270994 824544 +271189 824444 +271300 824533 +271439 802008 +271675 802664 +271958 824906 +271972 802531 +272156 818586 +272172 802700 +272192 802394 +272217 824981 +272267 981439 +272436 808300 +272517 808142 +272542 802300 +272836 824808 +272928 813631 +273064 986781 +273294 824578 +273361 825308 +273603 981233 +274097 825694 +274122 826592 +274242 825803 +274250 825906 +274464 803258 +274472 825464 +274667 827042 +274689 826864 +274692 825417 +274931 817961 +274953 814411 +274972 827092 +274986 825750 +275061 995072 +275119 826322 +275156 978558 +275211 825725 +275214 825278 +275308 827336 +275356 825614 +275428 804025 +275469 818117 +275858 977989 +275956 815064 +275986 984078 +276381 818242 +276383 803975 +276742 977483 +276750 804094 +277122 822992 +277164 803844 +277206 824333 +277456 815308 +277481 804364 +277481 827036 +277519 818019 +277519 980694 +277547 827378 +277636 982386 +277675 806017 +277689 827692 +277814 979083 +277900 976686 +277950 819806 +277978 827975 +278003 973961 +278083 828114 +278139 827783 +278158 828208 +278258 828292 +278336 970608 +278356 804933 +278425 826997 +278625 828486 +278750 828514 +278769 973236 +278775 972114 +278803 805006 +278825 986175 +278950 819736 +278961 818433 +279011 815861 +279092 827875 +279092 971497 +279142 827056 +279211 828172 +279219 972897 +279228 828433 +279356 828064 +279375 822861 +279456 818006 +279472 824586 +279503 975819 +279525 817272 +279564 979367 +279650 818781 +279656 828003 +279675 819736 +279781 817567 +279786 816142 +279786 973983 +279906 826933 +279936 816903 +279939 822197 +279944 817383 +280033 805658 +280083 819078 +280183 821131 +280194 827719 +280203 970542 +280219 817331 +280222 816194 +280314 820150 +280339 826653 +280342 805889 +280350 823894 +280364 975089 +280408 993542 +280442 816281 +280611 970408 +280650 817889 +280681 805606 +280714 806536 +280719 806803 +280778 827639 +280786 806028 +280850 806667 +280892 805658 +280917 817236 +280942 978278 +281139 816181 +281144 819739 +281206 820233 +281356 806719 +281458 827569 +281486 805886 +281508 824617 +281611 816019 +281758 805903 +281822 818242 +281875 827397 +282164 827225 +282333 821814 +282381 973197 +282439 827194 +282586 814567 +282714 827197 +282917 814078 +283050 972750 +283197 806078 +283322 981172 +283358 822747 +283506 807256 +283644 821961 +283858 807422 +284006 977481 +284056 806050 +284150 967133 +284319 807603 +284367 992347 +284569 813917 +284581 813594 +284600 981822 +284656 821722 +284717 813681 +284858 813725 +284953 815350 +285025 813308 +285072 821706 +285217 998603 +285381 813794 +285381 814606 +285408 813008 +285492 817731 +285544 811067 +285547 816333 +285550 823881 +285578 818514 +285650 815864 +285689 815442 +285731 995683 +285742 817464 +285781 818869 +285908 813944 +285997 813394 +286097 820553 +286119 808078 +286144 813808 +286147 966258 +286192 814428 +286417 811236 +286475 968922 +286489 813514 +286497 819928 +286608 813658 +286614 814192 +286617 815097 +286647 821131 +286650 808450 +286672 991703 +286681 973881 +286697 812083 +286772 998278 +286775 813281 +286794 965600 +286803 815097 +286986 813083 +287078 962172 +287089 1.00499e+06 +287094 817331 +287308 816014 +287394 811153 +287500 822969 +287556 820950 +287586 813181 +287811 826153 +287994 820703 +288003 812733 +288022 816447 +288039 817258 +288106 818781 +288189 978483 +288356 823306 +288403 817689 +288525 816856 +288611 819067 +288617 987061 +288650 820392 +288831 977128 +288847 979006 +288919 990947 +289003 812639 +289006 823747 +289022 825928 +289172 819231 +289178 985461 +289292 816658 +289408 998494 +289442 952886 +289486 812989 +289539 953594 +289600 960650 +289669 984783 +289783 966458 +289806 812336 +289808 975025 +289825 959692 +289825 980172 +289886 809025 +290028 953317 +290175 958892 +290244 953986 +290256 809272 +290256 809722 +290297 827161 +290300 826689 +290336 954342 +290386 956983 +290403 965133 +290403 985678 +290442 955689 +290489 824611 +290550 820625 +290558 954097 +290694 980817 +290936 972889 +290961 809372 +291192 813517 +291333 981558 +291383 830353 +291397 989050 +291436 956450 +291656 810047 +291692 954317 +291758 809831 +291869 821403 +291894 988622 +291964 962694 +292094 997858 +292106 810231 +292261 986575 +292281 953447 +292367 979597 +292392 814658 +292433 810378 +292672 977642 +292856 810561 +292875 971517 +292947 952786 +293103 1.00418e+06 +293106 988097 +293114 961025 +293172 994661 +293472 991411 +293481 950158 +293489 810667 +293556 988783 +293561 981153 +293625 1.00896e+06 +293664 821975 +293789 902600 +293836 949025 +293872 824469 +293992 958375 +294236 952439 +294239 984933 +294289 971703 +294300 815108 +294383 905953 +294419 902992 +294436 969408 +294475 826425 +294506 959944 +294569 946394 +294606 950511 +294625 953578 +294631 983853 +294658 812581 +294747 811272 +294747 984506 +294786 984872 +294803 896939 +294822 954153 +294831 949219 +294847 984656 +294878 985514 +294950 986183 +295000 815917 +295014 974522 +295044 822800 +295067 949922 +295072 950947 +295153 983800 +295178 983158 +295231 985161 +295292 952008 +295297 825192 +295308 960708 +295375 907200 +295425 903381 +295425 950203 +295472 950319 +295478 982908 +295519 982694 +295533 906022 +295569 958083 +295606 1.04372e+06 +295614 982267 +295633 952858 +295639 950253 +295686 979644 +295711 981400 +295722 903817 +295747 971425 +295819 957606 +295822 984906 +295847 985522 +295894 963333 +295917 820875 +295919 980331 +295956 907194 +296003 984869 +296131 828178 +296158 955575 +296183 955375 +296194 956347 +296200 950097 +296236 818906 +296311 960650 +296342 831253 +296458 905392 +296461 826067 +296483 816378 +296514 823250 +296581 815986 +296622 948900 +296628 952353 +296656 950192 +296661 911019 +296667 901083 +296692 1.00012e+06 +296792 959769 +296803 976472 +296817 969028 +296875 971083 +296894 912708 +296897 958994 +296908 952089 +296931 913019 +296944 912189 +296992 912067 +297028 967803 +297028 981242 +297050 951236 +297056 954586 +297058 954367 +297064 965394 +297178 815083 +297178 954336 +297231 901236 +297256 849833 +297264 990733 +297272 905989 +297353 949772 +297364 848786 +297486 966008 +297597 955169 +297631 953631 +297672 952336 +297672 955297 +297703 954953 +297728 946825 +297758 951144 +297772 955169 +297781 951717 +297806 961569 +297856 958242 +297858 820317 +297858 959508 +297894 821675 +297897 943831 +297928 961006 +297944 987317 +297956 824944 +297956 908228 +297958 915014 +297975 933250 +298186 950558 +298200 943839 +298236 904750 +298267 825969 +298372 909561 +298378 915442 +298475 948906 +298531 846644 +298547 899906 +298678 951281 +298797 950628 +298831 979411 +298847 976697 +298875 955628 +298956 898978 +298986 939286 +298992 901003 +299022 955022 +299033 900772 +299053 968764 +299058 901422 +299061 903561 +299100 900325 +299108 916633 +299117 950619 +299144 900539 +299175 939242 +299183 902108 +299319 903664 +299322 953800 +299361 906786 +299403 902031 +299403 910247 +299425 899633 +299428 903517 +299439 821100 +299478 854181 +299481 919886 +299481 939169 +299500 962569 +299542 900053 +299544 900750 +299581 920358 +299589 829283 +299650 912031 +299675 989047 +299742 939922 +299764 904089 +299778 903878 +299794 818106 +299839 901528 +299889 978769 +299911 939583 +299917 816783 +299939 902417 +299978 922847 +299989 904122 +300033 918186 +300108 907194 +300156 1.00205e+06 +300206 938456 +300225 823397 +300258 925083 +300272 945914 +300356 944242 +300403 906989 +300439 820719 +300464 948850 +300472 906897 +300472 991400 +300478 943356 +300528 831750 +300536 905517 +300558 906192 +300564 917369 +300564 959267 +300664 904800 +300772 992400 +300806 926714 +300819 937581 +300850 978400 +300858 941017 +300928 937364 +300931 959875 +300972 960781 +300978 984211 +300994 919900 +301008 909928 +301025 940517 +301089 948581 +301103 973150 +301125 852006 +301131 946428 +301172 835819 +301217 924981 +301308 856033 +301314 940153 +301400 944108 +301422 1.02394e+06 +301469 919611 +301522 947389 +301528 855700 +301586 856603 +301658 817067 +301667 963975 +301686 933758 +301697 911469 +301708 856253 +301758 843753 +301764 858056 +301806 924642 +301817 932736 +301825 969361 +301842 908592 +301894 826394 +301897 925825 +301906 935811 +301922 826147 +302008 856269 +302139 923744 +302142 918319 +302172 910961 +302222 926569 +302239 920197 +302256 978033 +302264 932172 +302328 951608 +302347 922683 +302356 920944 +302356 921853 +302358 928225 +302364 933772 +302367 930136 +302383 909200 +302419 932506 +302453 856483 +302458 877008 +302500 1.0325e+06 +302531 941897 +302669 977428 +302733 918992 +302750 897811 +302750 988717 +302767 977908 +302767 984117 +302772 912236 +302819 821222 +302867 893761 +302889 912342 +302892 856406 +302944 813933 +302950 907950 +302975 937433 +302978 978017 +303025 819756 +303025 931906 +303078 1.04019e+06 +303086 892869 +303117 813967 +303117 954558 +303131 917903 +303133 899431 +303139 842475 +303156 892475 +303169 920489 +303294 827592 +303311 924956 +303319 816558 +303342 813989 +303406 975567 +303458 965281 +303489 941778 +303494 973700 +303503 891528 +303536 912653 +303547 940725 +303569 871639 +303581 900656 +303583 1.03661e+06 +303586 905861 +303656 885561 +303672 890928 +303678 979914 +303714 943122 +303758 843008 +303758 897483 +303839 872750 +303856 886117 +303878 960875 +303933 864958 +303942 912536 +303958 888853 +303975 919314 +304028 922150 +304031 882483 +304042 901569 +304056 866189 +304064 876836 +304097 866631 +304108 817081 +304108 914336 +304111 888278 +304111 920683 +304114 885344 +304189 970114 +304208 873075 +304211 872169 +304247 954797 +304250 872519 +304261 888908 +304264 872797 +304303 888422 +304319 849758 +304381 842808 +304386 904414 +304392 976197 +304403 885436 +304408 866136 +304428 872225 +304433 850453 +304439 856886 +304503 934331 +304506 911544 +304519 912100 +304556 866383 +304614 873150 +304686 872361 +304692 834131 +304692 836303 +304703 919783 +304739 879192 +304753 901008 +304761 883422 +304783 900375 +304811 926956 +304850 925958 +304853 928506 +304867 909561 +304875 876997 +304892 997717 +304911 915194 +304942 924175 +304978 949964 +304981 861361 +305019 907478 +305042 904611 +305042 905822 +305050 978200 +305081 976786 +305100 872125 +305181 829483 +305183 921847 +305186 872728 +305228 879033 +305253 896794 +305333 920814 +305367 917528 +305375 954831 +305425 975464 +305450 838703 +305453 877517 +305475 881753 +305536 877119 +305589 915558 +305600 919539 +305619 818308 +305667 1.00643e+06 +305692 847433 +305706 974092 +305772 904831 +305781 982725 +305786 978528 +305814 872914 +305869 845833 +305881 911681 +305900 881708 +305903 972967 +305922 951292 +305958 916164 +305986 870311 +305992 871611 +306033 879036 +306039 830981 +306136 972053 +306161 920569 +306169 846600 +306181 877531 +306200 927625 +306228 857122 +306236 844147 +306278 963342 +306317 816067 +306322 870397 +306325 976769 +306336 924192 +306353 905008 +306483 911564 +306581 984403 +306603 938925 +306694 814628 +306878 922714 +306908 819175 +306928 917439 +306936 853922 +306942 880431 +307014 914361 +307050 848431 +307075 849244 +307100 1.012e+06 +307108 949328 +307122 850203 +307172 911414 +307175 974425 +307214 861156 +307233 955506 +307239 873142 +307383 915942 +307386 880789 +307436 980553 +307472 832208 +307489 844839 +307542 935403 +307581 982281 +307592 986747 +307619 865706 +307636 880747 +307647 905117 +307731 858142 +307742 852269 +307750 944153 +307817 855386 +307836 924253 +307847 835600 +307908 898486 +307917 837900 +307917 856797 +307947 974253 +307969 853767 +307997 816900 +308158 926603 +308206 880706 +308231 883614 +308303 820100 +308306 906717 +308325 832786 +308372 912175 +308400 895342 +308411 977933 +308461 932889 +308469 901531 +308483 937572 +308531 880561 +308531 969767 +308558 820211 +308600 1.00601e+06 +308656 910156 +308700 851619 +308772 842014 +308781 974014 +308783 965928 +308828 843239 +308828 877731 +308917 880397 +308939 1.02879e+06 +309036 845756 +309078 944219 +309139 1.01898e+06 +309175 997861 +309197 932822 +309200 911156 +309200 939964 +309250 885900 +309381 905089 +309450 953753 +309469 975383 +309497 959114 +309528 871514 +309531 921825 +309567 855167 +309575 851622 +309597 837381 +309636 817228 +309656 864597 +309736 840531 +309764 925850 +309778 966736 +309814 863075 +309833 918000 +309839 920533 +309842 1.03744e+06 +309911 833728 +309967 948269 +310000 872608 +310011 894522 +310050 863281 +310067 904722 +310103 863497 +310111 838664 +310147 922872 +310236 874939 +310258 964850 +310294 961144 +310328 858639 +310344 919756 +310364 827472 +310397 1.0483e+06 +310403 848792 +310408 830753 +310486 853050 +310547 951256 +310558 974642 +310578 920489 +310594 921211 +310636 981814 +310681 836239 +310722 840892 +310728 969783 +310744 831994 +310786 976053 +310894 910683 +310906 882281 +310931 870628 +310944 924003 +310981 973425 +311022 856969 +311044 912994 +311050 870722 +311081 855944 +311086 888272 +311128 860461 +311147 932714 +311158 901419 +311169 977275 +311239 979028 +311267 954453 +311275 841519 +311278 920661 +311358 1.02224e+06 +311369 834236 +311392 855192 +311431 894097 +311431 904586 +311433 932608 +311497 814917 +311556 885578 +311583 944261 +311650 966767 +311692 889200 +311711 847333 +311797 837892 +311808 821350 +311828 852364 +311869 947808 +311914 1.0146e+06 +311956 987178 +311972 910217 +312022 890347 +312033 970364 +312042 819814 +312067 973025 +312072 832503 +312133 823542 +312158 861711 +312161 998453 +312169 983931 +312228 904603 +312231 853906 +312311 842106 +312356 857228 +312436 904531 +312478 939742 +312517 898375 +312617 1.00817e+06 +312689 836872 +312714 834650 +312775 945764 +312794 863256 +312822 892756 +312825 862556 +312836 904683 +312925 851117 +312975 828525 +312989 853444 +312989 870225 +313058 822422 +313061 968978 +313081 973611 +313100 857131 +313111 924450 +313114 855531 +313128 843358 +313181 954564 +313189 854939 +313194 839172 +313222 924342 +313269 892903 +313381 947289 +313392 1.02851e+06 +313403 1.10934e+06 +313406 830461 +313406 938467 +313408 835936 +313444 1.09545e+06 +313464 892600 +313511 853422 +313528 865392 +313569 1.09561e+06 +313614 961439 +313644 893061 +313700 814342 +313775 849342 +313794 841611 +313850 832231 +313856 859294 +313864 972153 +313903 926692 +313903 976842 +313972 1.0235e+06 +314128 833292 +314144 860678 +314153 924117 +314172 895422 +314217 853378 +314228 1.03493e+06 +314333 874014 +314350 977436 +314394 835194 +314397 847250 +314436 934572 +314439 974089 +314481 1.09928e+06 +314497 985706 +314503 835086 +314589 856406 +314611 1.03393e+06 +314622 971956 +314628 908500 +314636 1.00437e+06 +314650 882544 +314675 971144 +314717 836469 +314722 908967 +314747 969231 +314856 845139 +314861 820172 +314917 954783 +315022 1.06158e+06 +315044 910689 +315086 828500 +315089 878944 +315128 837878 +315172 826350 +315189 927067 +315214 971536 +315242 965336 +315278 873247 +315297 941058 +315306 838356 +315342 974428 +315392 824625 +315394 1.10756e+06 +315422 867150 +315422 968333 +315492 971464 +315536 901072 +315544 1.10303e+06 +315581 847383 +315603 914031 +315653 914258 +315686 934839 +315700 1.03001e+06 +315717 852506 +315783 841558 +315789 904406 +315811 925328 +315828 1.0292e+06 +315847 958489 +315850 1.06272e+06 +315922 1.06224e+06 +315939 971086 +315942 832506 +315942 1.02892e+06 +315972 1.00182e+06 +315983 898669 +316000 857189 +316033 946553 +316039 891956 +316072 818856 +316089 850472 +316250 828869 +316250 955792 +316264 918181 +316269 962836 +316278 1.10333e+06 +316292 971025 +316300 915544 +316314 936439 +316339 883133 +316369 867419 +316453 895553 +316503 950725 +316528 932019 +316592 974719 +316672 928906 +316747 886461 +316753 930444 +316797 964819 +316831 921336 +316925 1.06207e+06 +316939 891306 +317011 903975 +317036 981236 +317058 836533 +317078 817425 +317086 856106 +317086 877772 +317114 910606 +317128 1.10067e+06 +317147 832528 +317164 862639 +317169 991322 +317200 858161 +317225 915431 +317244 961650 +317319 841708 +317333 872047 +317381 999469 +317419 989453 +317511 1.03159e+06 +317539 966497 +317561 846153 +317586 1.06486e+06 +317606 930861 +317711 847894 +317719 918214 +317733 844467 +317739 816328 +317781 823486 +317822 975764 +317833 855558 +317839 816078 +317864 890322 +317878 964622 +317883 877272 +317958 951500 +318022 970914 +318086 859700 +318144 948403 +318192 923297 +318197 935142 +318214 930294 +318242 944908 +318272 994261 +318294 866178 +318308 843644 +318361 1.00984e+06 +318456 1.02367e+06 +318464 916561 +318467 815961 +318575 1.03092e+06 +318600 886994 +318603 903958 +318636 922958 +318736 897336 +318781 854497 +318867 889839 +318872 1.00291e+06 +318911 851456 +318922 1.00484e+06 +318933 931181 +318939 967144 +318972 986033 +319003 842519 +319028 922431 +319036 943950 +319119 1.11881e+06 +319133 877358 +319231 976564 +319253 926394 +319292 826797 +319364 819286 +319381 813036 +319436 942439 +319508 834564 +319564 999619 +319608 909839 +319617 898700 +319633 837825 +319636 952703 +319656 940536 +319678 1.10294e+06 +319753 939978 +319789 892872 +319808 916556 +319828 980333 +319844 865786 +319872 903569 +319894 832003 +319908 872906 +319919 833069 +319972 1.02078e+06 +320000 808458 +320039 1.06605e+06 +320108 971297 +320147 933419 +320167 929092 +320172 830628 +320217 937142 +320264 921389 +320333 810500 +320333 895222 +320339 843928 +320356 825083 +320375 937000 +320400 887281 +320492 916581 +320497 921092 +320525 955061 +320678 829008 +320722 842328 +320725 912408 +320736 829147 +320800 968064 +320833 811000 +320850 983417 +320853 932200 +320867 821181 +320878 846675 +320883 954717 +320894 882219 +320914 837956 +320919 967156 +320953 964686 +320958 989633 +320961 902942 +321094 906233 +321100 835011 +321142 811542 +321153 812472 +321244 969450 +321261 991650 +321292 1.01788e+06 +321322 812992 +321331 962275 +321358 816222 +321397 953200 +321439 960908 +321442 857150 +321444 951203 +321469 827781 +321489 811633 +321531 947992 +321533 901311 +321558 819339 +321572 943372 +321594 971497 +321614 819042 +321631 917206 +321686 882825 +321694 960122 +321811 821092 +321839 865803 +321839 968844 +321872 825658 +321975 831778 +321994 1.10968e+06 +322019 839086 +322042 823219 +322047 958553 +322094 997964 +322136 986703 +322161 807528 +322175 824136 +322206 982019 +322217 1.10926e+06 +322253 950575 +322267 952253 +322333 973742 +322344 977550 +322369 808606 +322381 843092 +322386 949403 +322411 927158 +322417 854164 +322428 944553 +322503 1.01478e+06 +322528 1.09831e+06 +322592 904225 +322614 837367 +322664 876253 +322686 1.07758e+06 +322700 1.068e+06 +322731 899858 +322744 949783 +322767 927233 +322783 957494 +322817 938239 +322836 834722 +322861 1.04095e+06 +322869 810808 +322936 840611 +322958 812356 +322964 1.01306e+06 +322986 901847 +323050 840275 +323053 847728 +323061 877981 +323061 924503 +323069 960064 +323078 954797 +323089 917747 +323094 901389 +323122 1.06778e+06 +323128 897983 +323131 970114 +323158 945164 +323175 890256 +323186 1.02545e+06 +323189 845172 +323203 962128 +323211 891633 +323283 932797 +323292 966250 +323300 906056 +323344 961511 +323361 813917 +323414 903217 +323431 893286 +323475 973864 +323492 904600 +323503 1.08708e+06 +323511 953008 +323525 908778 +323536 896544 +323642 887036 +323644 894742 +323664 961006 +323667 863000 +323694 841881 +323717 1.1286e+06 +323769 825925 +323789 806928 +323794 816633 +323808 1.06479e+06 +323864 968481 +323867 833547 +323881 989789 +323881 1.00864e+06 +323939 993939 +323967 973236 +323969 820603 +323969 908564 +324014 988172 +324058 994933 +324064 972114 +324067 887772 +324072 870211 +324083 911867 +324111 1.00712e+06 +324172 886478 +324206 1.04228e+06 +324239 856917 +324283 901322 +324311 966675 +324314 806700 +324322 830614 +324333 971022 +324339 866547 +324356 807242 +324367 1.11225e+06 +324372 1.03159e+06 +324389 891083 +324419 822153 +324419 977939 +324425 962297 +324453 949483 +324458 1.00538e+06 +324486 817833 +324486 997328 +324489 975264 +324494 875142 +324561 839403 +324575 914931 +324575 998711 +324581 837317 +324608 849878 +324614 973878 +324617 901153 +324639 864597 +324697 986786 +324706 1.00012e+06 +324708 850008 +324708 1.00406e+06 +324772 917547 +324786 940594 +324797 863619 +324806 809806 +324822 969942 +324861 882964 +324956 849919 +325006 947403 +325042 945739 +325092 921192 +325117 863767 +325156 954092 +325158 921917 +325158 937319 +325175 878364 +325175 968042 +325183 921475 +325231 926378 +325247 956369 +325250 937500 +325264 968861 +325275 927139 +325294 949028 +325300 925142 +325306 825894 +325325 935039 +325339 966653 +325344 927883 +325356 934108 +325358 858933 +325381 819325 +325403 829039 +325419 973206 +325431 903092 +325436 862119 +325439 930528 +325447 943672 +325481 828719 +325489 929200 +325497 858700 +325519 984978 +325536 838875 +325564 958631 +325569 842383 +325597 840964 +325606 856725 +325631 971414 +325789 973622 +325808 938925 +325828 821553 +325836 951086 +325839 1.17112e+06 +325842 881872 +325883 952039 +325883 965083 +325889 963086 +325889 966850 +325897 968567 +325908 926478 +325919 967558 +325936 948553 +325964 1.14709e+06 +325972 823339 +325997 1.1063e+06 +326039 914778 +326056 832456 +326097 854808 +326108 1.1077e+06 +326119 998139 +326125 900367 +326153 932867 +326208 836000 +326278 964556 +326308 972889 +326322 873192 +326353 860344 +326394 965381 +326400 1.17083e+06 +326408 903647 +326453 853783 +326467 972256 +326492 967128 +326517 969081 +326536 837597 +326550 799406 +326592 836189 +326631 954881 +326653 1.07152e+06 +326728 1.14146e+06 +326731 974603 +326733 957092 +326775 845394 +326781 1.17098e+06 +326789 1.15498e+06 +326833 847383 +326858 1.17182e+06 +326875 833467 +326875 939608 +326900 808508 +326947 937417 +326958 976019 +326961 920858 +326981 958850 +326989 926567 +326992 1.08131e+06 +327025 1.03136e+06 +327028 971550 +327044 875958 +327092 960081 +327142 971561 +327153 1.17156e+06 +327169 1.16875e+06 +327189 1.02644e+06 +327214 1.09105e+06 +327217 840133 +327225 1.1064e+06 +327233 992969 +327253 973206 +327253 1.14624e+06 +327286 949422 +327286 966225 +327292 827200 +327308 1.15529e+06 +327342 802419 +327358 962750 +327361 968867 +327375 1.01951e+06 +327425 1.17031e+06 +327439 939714 +327447 974133 +327458 969975 +327481 964717 +327503 816369 +327547 812422 +327556 989019 +327558 1.11554e+06 +327564 998958 +327572 943450 +327572 974106 +327578 848750 +327592 977969 +327594 974581 +327617 1.0813e+06 +327631 802503 +327675 886508 +327678 1.17022e+06 +327700 1.0828e+06 +327714 891167 +327733 924056 +327750 917925 +327764 799311 +327786 919142 +327794 1.0815e+06 +327833 968000 +327853 800353 +327872 845619 +327883 868717 +327889 851450 +327917 930556 +327919 1.15562e+06 +327928 956342 +327931 1.1569e+06 +327939 798628 +327947 1.16962e+06 +327958 954508 +327961 851839 +327964 965606 +327994 972689 +328000 947206 +328003 856536 +328039 819494 +328042 911700 +328047 974447 +328058 974028 +328083 981125 +328111 831728 +328111 1.15379e+06 +328139 969486 +328158 972278 +328189 822350 +328192 934175 +328203 851722 +328219 926578 +328233 971703 +328267 830794 +328281 884764 +328311 857636 +328339 1.09707e+06 +328342 972286 +328344 852297 +328364 964747 +328383 1.16973e+06 +328386 866294 +328403 851833 +328406 836325 +328406 878875 +328422 1.04403e+06 +328439 971428 +328467 852100 +328475 1.15569e+06 +328492 1.09759e+06 +328503 810794 +328517 800367 +328519 1.00465e+06 +328544 799750 +328550 904056 +328564 973386 +328572 1.16921e+06 +328578 972544 +328597 846200 +328600 973636 +328667 824042 +328678 843306 +328686 851906 +328708 811097 +328714 939872 +328744 957653 +328764 877425 +328778 851833 +328794 1.11757e+06 +328808 971547 +328819 833325 +328833 816583 +328836 899714 +328847 1.00126e+06 +328881 843267 +328928 934483 +328936 960292 +328950 975456 +328961 1.09827e+06 +328997 854011 +328997 945561 +329014 922419 +329028 965636 +329050 806669 +329050 936967 +329064 908781 +329103 961353 +329156 867158 +329183 800222 +329192 916769 +329253 811875 +329264 968958 +329311 964594 +329328 843494 +329342 970778 +329344 972514 +329358 828117 +329372 871647 +329411 971339 +329439 859539 +329439 1.03348e+06 +329442 1.02564e+06 +329444 871386 +329453 998025 +329478 1.12716e+06 +329481 967294 +329536 968900 +329544 970147 +329572 952900 +329572 1.05742e+06 +329589 812367 +329594 1.17264e+06 +329597 867467 +329617 968289 +329619 931400 +329628 1.17035e+06 +329636 1.01832e+06 +329644 1.02829e+06 +329689 934506 +329700 899122 +329719 1.10776e+06 +329739 908244 +329750 817578 +329750 963322 +329761 965950 +329778 1.05941e+06 +329778 1.11517e+06 +329783 885700 +329786 1.15529e+06 +329808 800328 +329814 828103 +329836 845828 +329856 801100 +329875 1.1077e+06 +329911 1.1727e+06 +329922 890661 +329950 975425 +329953 949656 +329975 876300 +329983 946306 +330014 824114 +330039 972256 +330047 1.10785e+06 +330067 801556 +330078 813086 +330122 943653 +330136 927250 +330144 970967 +330150 966128 +330161 927242 +330183 801758 +330197 966986 +330203 1.17202e+06 +330308 850611 +330314 1.11387e+06 +330317 947217 +330342 839383 +330369 1.17291e+06 +330372 1.15621e+06 +330392 850314 +330394 921825 +330483 1.1663e+06 +330508 1.09296e+06 +330544 841558 +330569 1.1091e+06 +330572 915733 +330575 895875 +330606 954719 +330656 860533 +330656 962275 +330678 1.09359e+06 +330681 1.17302e+06 +330739 1.06018e+06 +330750 898544 +330767 1.11739e+06 +330786 868817 +330786 1.09365e+06 +330786 1.16601e+06 +330800 832322 +330847 972958 +330897 820158 +330917 970464 +330956 803156 +330981 936547 +331003 934608 +331006 868642 +331028 867536 +331031 966703 +331053 885608 +331075 923347 +331094 912619 +331131 900531 +331136 941642 +331150 1.04326e+06 +331181 871250 +331192 970253 +331192 1.17086e+06 +331211 971831 +331214 855664 +331236 890550 +331256 1.15513e+06 +331281 919611 +331283 1.07252e+06 +331294 881514 +331333 1.00227e+06 +331372 958392 +331386 1.10124e+06 +331408 919939 +331433 1.17165e+06 +331481 959511 +331486 941500 +331506 968233 +331511 853722 +331575 997333 +331575 1.05774e+06 +331581 1.1735e+06 +331611 983853 +331633 963597 +331650 970292 +331656 919414 +331667 1.01793e+06 +331689 908539 +331731 849150 +331731 862517 +331781 866072 +331786 991772 +331800 964978 +331806 947439 +331811 1.02274e+06 +331828 902228 +331842 904892 +331844 998933 +331886 952211 +331908 1.01378e+06 +331939 987383 +331958 800133 +331958 1.17379e+06 +331972 1.04372e+06 +331975 966150 +332000 1.17242e+06 +332031 946800 +332075 823919 +332075 926661 +332097 875692 +332100 847444 +332100 977544 +332144 804481 +332183 981583 +332183 1.17033e+06 +332281 917975 +332289 875772 +332333 825956 +332342 864836 +332342 975858 +332344 885822 +332347 848358 +332361 968008 +332378 915114 +332400 1.15518e+06 +332436 842289 +332442 868164 +332447 813589 +332467 842642 +332469 958997 +332481 1.00573e+06 +332511 808158 +332558 1.16374e+06 +332569 1.03317e+06 +332611 938853 +332614 972378 +332619 905922 +332653 842817 +332667 892908 +332669 932392 +332697 908797 +332736 858361 +332756 829764 +332775 850981 +332781 863550 +332858 965725 +332939 1.11096e+06 +332942 961944 +332944 839661 +332958 977986 +332961 868436 +332969 810350 +332975 914936 +333022 845539 +333042 969858 +333047 836833 +333061 1.11841e+06 +333089 854847 +333100 891728 +333106 857544 +333139 820969 +333158 926628 +333200 879028 +333208 902322 +333225 804139 +333225 811425 +333244 967842 +333267 833886 +333286 912817 +333289 925383 +333289 1.05604e+06 +333317 1.05672e+06 +333319 897411 +333328 943425 +333369 1.02206e+06 +333428 1.18327e+06 +333439 864381 +333453 1.10452e+06 +333458 841092 +333478 932097 +333486 806831 +333489 965483 +333506 847767 +333514 932956 +333528 1.11788e+06 +333536 905925 +333578 812708 +333583 935775 +333583 976944 +333625 951044 +333631 971736 +333647 927247 +333653 934950 +333703 1.12583e+06 +333706 960686 +333706 987525 +333708 1.11962e+06 +333733 956881 +333764 1.1725e+06 +333767 792947 +333783 880153 +333794 962472 +333806 847997 +333869 842831 +333942 1.04522e+06 +333942 1.10786e+06 +333944 803475 +333964 969603 +333967 845958 +333992 1.10868e+06 +334017 869544 +334025 814203 +334053 908975 +334069 826622 +334100 910617 +334111 930694 +334111 1.10842e+06 +334131 823853 +334144 823128 +334147 1.11909e+06 +334150 1.11549e+06 +334153 886439 +334181 998186 +334208 821622 +334214 816858 +334214 965769 +334222 1.11822e+06 +334247 959461 +334250 940475 +334256 869267 +334267 941061 +334269 1.17611e+06 +334306 963383 +334336 841489 +334342 869472 +334353 1.12297e+06 +334353 1.12358e+06 +334356 1.12349e+06 +334358 861058 +334372 1.01643e+06 +334417 940375 +334433 895717 +334472 841469 +334483 1.12073e+06 +334486 844550 +334486 867878 +334492 996225 +334500 905056 +334500 1.12259e+06 +334503 821983 +334503 888183 +334508 906550 +334511 795611 +334511 869967 +334517 811256 +334539 910072 +334561 1.02489e+06 +334597 944153 +334614 869089 +334636 1.17678e+06 +334661 942883 +334667 820167 +334667 969181 +334669 1.17697e+06 +334672 995242 +334706 825047 +334706 952136 +334750 804867 +334764 1.00855e+06 +334819 897281 +334917 808558 +334933 1.12357e+06 +334936 1.17148e+06 +334939 849139 +334950 903197 +334956 884272 +334967 812794 +334967 818922 +335006 1.17742e+06 +335017 819653 +335017 1.17662e+06 +335044 818692 +335058 1.02009e+06 +335086 946161 +335086 966119 +335092 1.11898e+06 +335128 963922 +335172 820758 +335178 818442 +335181 899206 +335200 964836 +335206 868025 +335214 798789 +335214 843539 +335225 1.17707e+06 +335253 914358 +335261 953156 +335308 805722 +335308 819450 +335311 1.11942e+06 +335317 811233 +335358 869972 +335378 852533 +335378 924697 +335381 867072 +335386 1.12185e+06 +335400 891242 +335406 892669 +335422 1.17782e+06 +335442 842339 +335453 1.05572e+06 +335461 957256 +335481 865444 +335508 790417 +335508 818042 +335519 947808 +335539 828961 +335553 890847 +335575 807147 +335589 978483 +335603 817197 +335606 1.17157e+06 +335614 969108 +335633 880814 +335636 818081 +335656 813036 +335669 845811 +335700 868964 +335717 1.16076e+06 +335725 844133 +335750 838939 +335756 831825 +335772 961781 +335772 962731 +335778 1.01855e+06 +335806 1.12237e+06 +335808 799892 +335831 843394 +335833 867728 +335833 959097 +335844 928342 +335861 862861 +335869 845425 +335869 879844 +335872 1.02378e+06 +335908 864908 +335939 1.12302e+06 +335942 992600 +335956 834681 +335956 986253 +335967 838603 +335975 1.12271e+06 +335992 797444 +335992 963664 +336000 1.17671e+06 +336008 869561 +336017 907736 +336047 867939 +336058 789733 +336064 843353 +336075 886503 +336078 927400 +336081 803514 +336086 912067 +336103 964106 +336103 1.14596e+06 +336106 950525 +336106 1.14573e+06 +336125 920644 +336125 1.17712e+06 +336131 859611 +336131 1.12324e+06 +336142 858350 +336156 811022 +336189 838675 +336189 1.17928e+06 +336197 866089 +336206 869714 +336214 858442 +336219 843692 +336258 836125 +336258 1.17693e+06 +336261 859189 +336289 913994 +336289 917908 +336289 919314 +336306 1.12332e+06 +336331 897111 +336356 966086 +336358 972225 +336386 1.17343e+06 +336411 1.17918e+06 +336417 1.05877e+06 +336417 1.1729e+06 +336447 843258 +336456 859125 +336489 855875 +336517 973761 +336522 813614 +336533 844494 +336561 837183 +336561 969067 +336597 858317 +336597 876000 +336600 844103 +336600 868128 +336600 1.01238e+06 +336603 1.17998e+06 +336608 955553 +336614 952664 +336614 953856 +336647 791028 +336664 1.01682e+06 +336669 935914 +336675 798308 +336675 840178 +336694 1.17822e+06 +336706 1.01535e+06 +336742 941311 +336742 1.01387e+06 +336772 863967 +336794 844394 +336803 1.16173e+06 +336833 789986 +336844 878308 +336861 864750 +336889 788869 +336889 1.01998e+06 +336939 817672 +336950 802111 +336986 858397 +337039 907264 +337067 840317 +337072 842719 +337092 1.17196e+06 +337092 1.17953e+06 +337122 841053 +337133 873886 +337206 1.16215e+06 +337211 851456 +337214 1.16388e+06 +337244 926156 +337258 905514 +337286 870903 +337306 872844 +337319 849192 +337367 827394 +337369 850325 +337372 1.01836e+06 +337381 810981 +337397 1.16412e+06 +337414 1.18104e+06 +337431 1.17108e+06 +337444 852881 +337444 861558 +337456 1.17867e+06 +337458 1.17174e+06 +337458 1.17825e+06 +337475 1.16971e+06 +337481 868086 +337489 843881 +337519 858114 +337536 794478 +337547 842675 +337556 965364 +337569 881089 +337569 1.18353e+06 +337592 966692 +337592 1.18006e+06 +337597 871833 +337669 1.18188e+06 +337689 898083 +337714 842672 +337733 868139 +337739 1.17941e+06 +337747 842964 +337750 864717 +337786 907214 +337789 924917 +337797 1.16464e+06 +337803 843361 +337825 1.17228e+06 +337833 860025 +337839 1.16958e+06 +337856 1.18084e+06 +337867 977256 +337878 1.17852e+06 +337878 1.18357e+06 +337894 819297 +337897 842642 +337903 843061 +337914 908569 +337922 824792 +337922 1.18314e+06 +337936 842061 +337939 846606 +337947 837133 +338006 1.18389e+06 +338014 1.17145e+06 +338025 851886 +338025 933808 +338025 1.17992e+06 +338031 1.18072e+06 +338081 841703 +338094 842397 +338094 905264 +338111 1.02163e+06 +338125 846344 +338136 857614 +338136 924128 +338142 868094 +338144 1.17812e+06 +338161 986947 +338169 811011 +338169 1.18036e+06 +338172 981950 +338178 794494 +338181 867428 +338186 845825 +338200 1.16389e+06 +338247 870861 +338250 885436 +338303 1.16544e+06 +338311 872775 +338314 1.18072e+06 +338314 1.18281e+06 +338319 818011 +338322 1.01842e+06 +338333 1.1195e+06 +338353 1.17914e+06 +338358 790481 +338358 1.1834e+06 +338369 1.09964e+06 +338389 839008 +338389 907261 +338453 816619 +338464 1.18046e+06 +338492 1.18388e+06 +338531 965022 +338533 910278 +338536 1.18133e+06 +338544 842172 +338553 893114 +338556 892844 +338572 840200 +338575 1.15486e+06 +338594 846839 +338622 1.18399e+06 +338628 834089 +338650 843367 +338658 1.18082e+06 +338675 827414 +338675 1.17997e+06 +338694 1.01597e+06 +338703 1.17924e+06 +338708 797556 +338722 1.17869e+06 +338753 1.17566e+06 +338756 847622 +338756 891772 +338767 806931 +338781 907272 +338781 1.1752e+06 +338817 1.18116e+06 +338839 845144 +338847 1.1841e+06 +338869 914917 +338883 1.18308e+06 +338886 1.17812e+06 +338894 1.18159e+06 +338900 841431 +338906 800186 +338917 875261 +338919 842989 +338956 948261 +338958 1.18219e+06 +338967 979361 +338981 842833 +338983 889992 +339017 881344 +339022 1.18081e+06 +339056 914989 +339078 815475 +339103 811047 +339108 811358 +339133 822936 +339136 984931 +339164 815136 +339164 845447 +339164 1.18352e+06 +339167 928481 +339167 1.17899e+06 +339172 1.02324e+06 +339172 1.18011e+06 +339175 797442 +339192 1.18416e+06 +339203 803417 +339203 1.17278e+06 +339208 931539 +339214 780206 +339236 848408 +339242 843786 +339244 860225 +339256 1.16876e+06 +339289 878172 +339294 1.16976e+06 +339303 1.18211e+06 +339319 1.17945e+06 +339344 964283 +339353 799328 +339369 971164 +339381 1.18352e+06 +339383 943569 +339397 862017 +339400 1.17243e+06 +339400 1.18132e+06 +339411 842136 +339428 918433 +339442 909450 +339456 938469 +339461 843347 +339472 903442 +339472 1.18084e+06 +339481 864728 +339492 835347 +339508 907678 +339514 986683 +339533 1.17395e+06 +339547 860419 +339561 839881 +339583 921900 +339606 1.18184e+06 +339608 833781 +339608 1.1795e+06 +339608 1.18041e+06 +339611 1.16501e+06 +339617 1.18352e+06 +339650 835967 +339653 1.18151e+06 +339656 810742 +339656 879147 +339669 832783 +339672 941683 +339681 1.18224e+06 +339686 1.12729e+06 +339725 1.16976e+06 +339731 783861 +339761 1.17904e+06 +339767 896756 +339775 1.18186e+06 +339792 1.18032e+06 +339814 812364 +339817 1.18224e+06 +339831 1.18096e+06 +339839 997244 +339842 884881 +339844 1.01337e+06 +339850 915608 +339867 1.18184e+06 +339875 802083 +339875 822981 +339886 838981 +339897 834258 +339911 963739 +339919 893489 +339925 837203 +339925 1.17516e+06 +339933 810742 +339958 795703 +339961 1.17405e+06 +339967 779075 +339981 858664 +339986 967194 +339997 791997 +340006 810350 +340014 817722 +340017 887553 +340022 950936 +340025 850417 +340028 841447 +340067 900567 +340094 1.18104e+06 +340106 955094 +340117 1.17484e+06 +340119 1.00822e+06 +340122 1.00302e+06 +340122 1.17688e+06 +340131 982319 +340136 838278 +340142 860067 +340144 867469 +340147 904317 +340172 961425 +340186 952661 +340192 809900 +340194 1.1849e+06 +340200 979572 +340200 1.17949e+06 +340203 1.17864e+06 +340211 1.18396e+06 +340217 860886 +340231 843617 +340233 846156 +340239 1.18171e+06 +340253 877583 +340261 863261 +340272 958689 +340292 947389 +340292 989186 +340336 1.17042e+06 +340339 1.17313e+06 +340350 778939 +340378 943411 +340444 907447 +340453 1.17943e+06 +340456 850561 +340469 875497 +340469 1.1658e+06 +340483 1.1726e+06 +340514 840714 +340519 1.18046e+06 +340522 1.18243e+06 +340536 809614 +340536 852550 +340553 1.17751e+06 +340561 788906 +340583 1.06891e+06 +340600 800717 +340600 950031 +340606 867675 +340622 936897 +340625 1.18089e+06 +340625 1.18122e+06 +340633 1.1765e+06 +340636 831256 +340639 809583 +340642 1.01843e+06 +340658 846769 +340678 1.02524e+06 +340681 981903 +340686 1.17938e+06 +340686 1.18027e+06 +340700 883911 +340703 1.17395e+06 +340722 860333 +340736 1.09856e+06 +340736 1.18399e+06 +340739 1.17313e+06 +340750 925553 +340753 842942 +340806 1.18072e+06 +340808 844114 +340814 865911 +340853 1.1796e+06 +340858 811833 +340889 886222 +340900 1.17889e+06 +340900 1.18361e+06 +340903 967714 +340922 825958 +340922 1.17434e+06 +340953 1.18126e+06 +340961 1.18105e+06 +340967 1.17719e+06 +340975 1.17648e+06 +340978 985703 +341008 1.17767e+06 +341014 845194 +341031 1.17845e+06 +341067 1.17806e+06 +341069 1.17934e+06 +341072 1.18057e+06 +341111 828672 +341111 1.09291e+06 +341161 887117 +341161 1.18149e+06 +341167 1.07243e+06 +341172 913764 +341192 940164 +341192 1.16445e+06 +341206 840044 +341208 930536 +341214 1.17302e+06 +341214 1.18106e+06 +341244 1.01441e+06 +341258 1.09937e+06 +341267 962631 +341283 1.17208e+06 +341333 1.09285e+06 +341336 1.17907e+06 +341344 778819 +341347 799400 +341347 1.16312e+06 +341356 1.16053e+06 +341361 1.17864e+06 +341394 1.17976e+06 +341397 1.18034e+06 +341422 879886 +341464 874022 +341469 1.1797e+06 +341478 1.18144e+06 +341478 1.19194e+06 +341481 1.17998e+06 +341486 788769 +341500 1.14288e+06 +341514 896314 +341519 856789 +341542 1.17343e+06 +341544 992647 +341544 1.09973e+06 +341603 1.18651e+06 +341617 1.18052e+06 +341650 848000 +341669 979972 +341686 800628 +341706 1.18837e+06 +341733 901375 +341739 845014 +341742 971433 +341747 868436 +341750 820242 +341753 972625 +341781 794008 +341781 823792 +341783 975922 +341792 778478 +341833 1.02134e+06 +341850 839253 +341858 968803 +341861 1.03334e+06 +341867 851747 +341872 969842 +341897 1.1813e+06 +341942 887197 +341953 797628 +341953 821619 +341975 1.19176e+06 +342000 905708 +342006 861664 +342017 902833 +342022 871814 +342039 834572 +342047 830308 +342056 792547 +342072 841403 +342083 777967 +342092 778439 +342092 815333 +342103 778869 +342117 1.0169e+06 +342133 886644 +342164 1.19037e+06 +342178 905419 +342181 802486 +342200 856078 +342256 779450 +342264 876214 +342264 1.02723e+06 +342272 806894 +342275 838844 +342283 920031 +342283 986842 +342308 1.11324e+06 +342311 956200 +342322 1.19172e+06 +342331 974875 +342331 1.0241e+06 +342336 791489 +342361 966783 +342367 844908 +342369 849442 +342408 990753 +342419 853358 +342419 1.17285e+06 +342464 806072 +342478 889986 +342483 1.17188e+06 +342528 835617 +342542 1.10029e+06 +342564 902719 +342564 995164 +342569 851647 +342575 887033 +342639 858606 +342647 934608 +342675 862089 +342719 982356 +342722 778189 +342739 884092 +342739 920908 +342744 816189 +342772 878286 +342819 1.18438e+06 +342828 847453 +342847 831444 +342856 1.18881e+06 +342869 831103 +342883 779214 +342928 913378 +342978 838242 +342978 997400 +342997 798764 +343047 819831 +343064 826639 +343069 924011 +343083 908519 +343114 899442 +343133 790375 +343144 971425 +343181 864958 +343189 785003 +343192 918472 +343206 784022 +343219 788272 +343242 884911 +343267 935506 +343333 823881 +343336 834992 +343367 850714 +343369 794314 +343381 843767 +343386 787033 +343456 791658 +343461 831100 +343508 877064 +343514 860008 +343528 829322 +343531 890231 +343542 1.19058e+06 +343556 779003 +343581 862947 +343597 983075 +343608 1.17632e+06 +343617 810856 +343622 928128 +343661 1.01057e+06 +343664 1.01748e+06 +343683 869086 +343686 849342 +343689 979636 +343694 906389 +343714 1.19306e+06 +343739 800736 +343764 886817 +343806 810867 +343819 843711 +343847 1.1853e+06 +343850 1.02115e+06 +343858 961281 +343875 836664 +343886 1.03051e+06 +343919 990181 +343925 1.00897e+06 +343936 800697 +343983 822469 +343989 1.19518e+06 +343992 1.18917e+06 +344000 1.19299e+06 +344047 1.03205e+06 +344147 818114 +344153 1.18793e+06 +344164 793714 +344219 917061 +344233 1.19703e+06 +344244 930950 +344264 1.00204e+06 +344264 1.173e+06 +344303 1.03632e+06 +344319 902208 +344358 831069 +344361 847000 +344397 881408 +344433 869353 +344436 1.18609e+06 +344442 857197 +344450 921831 +344464 823917 +344467 859042 +344481 1.19242e+06 +344550 936800 +344600 976736 +344650 1.10091e+06 +344667 960531 +344672 835739 +344678 844292 +344689 802561 +344706 826708 +344717 1.04245e+06 +344719 996478 +344725 818808 +344742 1.01304e+06 +344750 782025 +344806 853478 +344811 872933 +344811 983828 +344839 1.14322e+06 +344847 854764 +344872 786564 +344917 835375 +344942 858478 +344942 890078 +344967 791144 +344989 820144 +345003 915525 +345008 1.17185e+06 +345014 926364 +345022 979575 +345025 849511 +345025 901986 +345028 816117 +345028 991406 +345033 826503 +345036 930550 +345044 971192 +345078 877286 +345078 969681 +345094 886353 +345106 899397 +345114 835272 +345125 798511 +345133 1.10078e+06 +345136 1.02882e+06 +345186 835008 +345203 1.06241e+06 +345228 824944 +345231 869703 +345250 868947 +345286 862533 +345325 839850 +345358 1.01758e+06 +345361 1.1729e+06 +345364 792917 +345381 962183 +345386 787878 +345400 1.12468e+06 +345439 853106 +345442 919689 +345486 994219 +345506 906417 +345508 1.02311e+06 +345517 805839 +345519 779264 +345556 909128 +345567 936339 +345622 858125 +345636 1.11854e+06 +345644 925867 +345650 835453 +345689 856150 +345719 931731 +345750 809022 +345772 833325 +345794 795467 +345794 1.18116e+06 +345811 1.13204e+06 +345828 1.17408e+06 +345861 942394 +345894 953525 +345931 806756 +345958 911997 +345958 1.20137e+06 +345969 837633 +346017 1.05208e+06 +346047 964239 +346058 869833 +346081 821136 +346086 983900 +346100 1.12315e+06 +346125 835250 +346136 1.20192e+06 +346144 1.20079e+06 +346172 796850 +346175 899686 +346181 790089 +346183 824781 +346200 923953 +346228 973961 +346275 968406 +346278 862744 +346292 786056 +346294 986283 +346350 857672 +346378 978172 +346381 993336 +346392 1.20457e+06 +346403 784842 +346417 1.02724e+06 +346433 971642 +346447 824703 +346453 1.18217e+06 +346461 893053 +346481 979578 +346500 803892 +346517 827839 +346525 965258 +346564 819653 +346581 885667 +346589 989514 +346628 1.06776e+06 +346647 830967 +346686 795456 +346708 890264 +346719 929986 +346722 860342 +346778 769511 +346781 829317 +346800 791953 +346811 874061 +346833 828375 +346844 903828 +346856 829533 +346875 771194 +346883 999117 +346889 821958 +346931 913136 +346950 765597 +346972 989492 +346975 798836 +346981 1.18136e+06 +346989 767406 +347008 875289 +347017 863758 +347022 824647 +347047 812144 +347047 852819 +347142 856808 +347181 766642 +347203 807711 +347206 958989 +347228 767264 +347242 827814 +347247 1.00534e+06 +347297 889506 +347303 865861 +347311 877025 +347339 824439 +347350 793492 +347356 779956 +347358 800883 +347369 822544 +347394 820372 +347400 972219 +347436 1.01854e+06 +347447 876675 +347464 922894 +347503 981714 +347514 950478 +347539 774306 +347569 879728 +347575 1.12453e+06 +347583 1.06055e+06 +347589 796108 +347600 827539 +347647 830642 +347650 876986 +347658 847700 +347694 922669 +347697 849703 +347711 794439 +347711 1.12057e+06 +347731 803919 +347736 907575 +347739 794631 +347744 966781 +347781 923489 +347786 823103 +347794 993350 +347803 982919 +347808 915808 +347825 979567 +347831 917464 +347839 918997 +347861 783944 +347864 768594 +347878 826925 +347967 969592 +347997 876772 +348000 824244 +348028 869717 +348061 1.06733e+06 +348117 881900 +348150 791833 +348150 922242 +348150 1.02397e+06 +348172 974056 +348228 1.18944e+06 +348231 982439 +348239 899936 +348247 824194 +348253 1.06838e+06 +348256 872947 +348258 774597 +348267 972589 +348289 958436 +348297 826017 +348347 976022 +348406 850428 +348406 883147 +348422 826447 +348450 955572 +348481 1.14613e+06 +348514 865722 +348525 823942 +348544 955819 +348561 1.00213e+06 +348611 966653 +348614 824317 +348628 875375 +348639 800014 +348639 843242 +348642 1.18162e+06 +348661 921100 +348686 858394 +348697 1.1176e+06 +348711 852908 +348719 855092 +348719 995039 +348722 896906 +348761 839583 +348767 1.17103e+06 +348778 824242 +348781 834011 +348789 769017 +348789 964122 +348794 819664 +348833 827075 +348847 796944 +348853 824561 +348878 793664 +348878 911944 +348892 946006 +348906 809567 +348936 983656 +348964 982003 +348983 940906 +348989 817619 +349022 1.10158e+06 +349025 790119 +349047 772317 +349050 1.16819e+06 +349069 1.0668e+06 +349106 818531 +349128 911100 +349147 977783 +349158 851092 +349181 797628 +349181 833856 +349181 973142 +349186 953089 +349203 822964 +349225 817428 +349236 777742 +349239 819331 +349244 807436 +349278 957156 +349283 820992 +349319 981400 +349322 865719 +349331 837772 +349331 838472 +349333 957694 +349364 818794 +349378 821453 +349378 1.00888e+06 +349386 822272 +349386 1.04682e+06 +349392 797742 +349431 797872 +349447 818378 +349475 857144 +349481 821275 +349492 904714 +349494 819322 +349508 821061 +349508 950800 +349511 946369 +349528 785089 +349531 1.20435e+06 +349569 924272 +349581 819908 +349581 852233 +349594 967525 +349611 819675 +349617 898294 +349622 779625 +349622 993803 +349672 947244 +349675 799847 +349675 824436 +349681 800769 +349692 873711 +349703 789456 +349717 1.20571e+06 +349722 909025 +349744 920164 +349769 914950 +349775 853578 +349808 792244 +349831 852861 +349842 804494 +349842 819267 +349853 805497 +349861 843714 +349883 803672 +349894 969233 +349894 992492 +349900 1.06049e+06 +349919 818350 +349919 868467 +349919 868469 +349936 802647 +349942 812422 +349942 853494 +349958 792264 +349978 783236 +349992 780914 +349994 1.17649e+06 +350025 809800 +350047 928025 +350072 809453 +350075 802011 +350081 907897 +350081 912511 +350122 857044 +350131 907225 +350133 786942 +350136 973608 +350142 852519 +350147 973353 +350153 785033 +350158 819750 +350167 818042 +350169 1.17835e+06 +350228 943811 +350242 810281 +350242 1.10697e+06 +350294 990928 +350308 766933 +350319 787950 +350322 932231 +350414 821044 +350419 896644 +350428 1.20475e+06 +350450 896217 +350456 853097 +350469 820903 +350478 856719 +350511 862697 +350522 868886 +350525 788786 +350525 831969 +350525 979361 +350525 1.18173e+06 +350531 850503 +350536 946233 +350539 933933 +350550 777467 +350553 871575 +350561 884353 +350589 1.194e+06 +350594 942525 +350644 888908 +350706 918794 +350711 797617 +350717 816500 +350725 982433 +350742 856261 +350767 806694 +350778 874397 +350800 816331 +350803 963989 +350822 942631 +350831 808925 +350833 980875 +350839 922078 +350844 1.06651e+06 +350872 973347 +350875 840347 +350886 770353 +350886 924419 +350906 806864 +350931 934483 +350950 789558 +350964 787842 +350975 987461 +350978 984353 +350989 1.20611e+06 +351036 986033 +351044 801094 +351056 830967 +351083 770444 +351097 794725 +351111 812267 +351117 1.01363e+06 +351128 918222 +351136 851381 +351161 781364 +351167 807239 +351186 1.2059e+06 +351211 815161 +351217 1.2062e+06 +351225 853439 +351228 953708 +351258 1.17985e+06 +351303 967756 +351314 794297 +351322 1.18448e+06 +351347 1.19455e+06 +351347 1.19472e+06 +351378 976578 +351392 973944 +351400 939214 +351411 848722 +351425 1.19456e+06 +351428 767706 +351428 1.2064e+06 +351436 828214 +351447 768025 +351461 966697 +351464 901844 +351483 818611 +351494 900489 +351497 949706 +351508 927439 +351508 938067 +351519 865706 +351522 1.07842e+06 +351536 781056 +351544 1.19455e+06 +351578 991750 +351586 964931 +351594 848767 +351600 926406 +351608 848578 +351619 1.06642e+06 +351644 860106 +351647 853014 +351672 946722 +351678 789731 +351697 1.0789e+06 +351700 885922 +351717 1.03724e+06 +351739 793925 +351742 846536 +351742 877378 +351744 814500 +351750 821894 +351794 806475 +351858 861122 +351864 947856 +351872 773211 +351883 982603 +351894 854858 +351894 1.14052e+06 +351903 944108 +351958 851847 +351981 1.11651e+06 +351997 870308 +352006 1.06701e+06 +352014 855192 +352017 838242 +352031 859211 +352036 1.01106e+06 +352044 898739 +352086 851269 +352092 1.18828e+06 +352097 860794 +352144 901964 +352153 998661 +352192 812058 +352219 1.01831e+06 +352225 974392 +352231 931578 +352244 907867 +352244 966703 +352247 882492 +352250 903250 +352256 803292 +352269 808433 +352303 810428 +352311 944778 +352317 916675 +352325 1.00599e+06 +352333 827344 +352336 886064 +352339 923875 +352353 815147 +352358 883906 +352361 823494 +352361 851986 +352369 974061 +352375 962414 +352378 1.06606e+06 +352381 1.18914e+06 +352386 810753 +352386 1.06667e+06 +352392 944258 +352400 858397 +352411 946197 +352422 873347 +352428 1.02428e+06 +352436 893500 +352450 813414 +352464 929364 +352472 975994 +352481 930489 +352494 1.1219e+06 +352506 917361 +352531 821972 +352536 951228 +352542 827003 +352556 793725 +352556 949214 +352561 792825 +352561 889878 +352561 912000 +352569 783525 +352578 969364 +352592 810756 +352597 804256 +352597 1.18913e+06 +352603 857361 +352606 971194 +352619 811875 +352625 775819 +352633 905711 +352678 811031 +352700 916397 +352706 861281 +352722 810483 +352747 812103 +352750 904667 +352767 991347 +352783 931336 +352800 824222 +352822 913653 +352828 1.20659e+06 +352831 863742 +352847 812842 +352861 811306 +352872 955822 +352889 811450 +352908 978119 +352911 996397 +352919 937297 +352922 815358 +352928 936344 +352950 797456 +352964 847481 +352969 940361 +352981 810161 +352983 824833 +353000 1.06551e+06 +353053 767889 +353061 786092 +353067 777883 +353083 771544 +353089 983417 +353097 915678 +353106 818589 +353111 824442 +353128 979442 +353164 811764 +353186 824611 +353194 877622 +353228 838075 +353233 845250 +353236 806561 +353236 873036 +353256 943014 +353258 896161 +353264 891494 +353267 786764 +353272 969250 +353289 817589 +353289 932528 +353339 818653 +353356 961361 +353361 941731 +353375 857042 +353394 974864 +353414 898972 +353425 779089 +353458 794172 +353464 824722 +353489 991700 +353500 802003 +353511 855678 +353544 944339 +353561 952653 +353575 780061 +353583 798947 +353589 810972 +353597 797800 +353600 819294 +353614 868397 +353619 862094 +353628 842942 +353653 1.0341e+06 +353658 1.20849e+06 +353692 819569 +353694 824931 +353714 853906 +353725 774378 +353733 1.19018e+06 +353736 832261 +353781 987817 +353786 813792 +353797 902578 +353819 785489 +353833 1.19109e+06 +353842 922156 +353842 977242 +353847 779931 +353858 943983 +353869 879953 +353878 805958 +353917 979411 +353992 788161 +354006 1.19469e+06 +354014 931142 +354019 797844 +354019 907531 +354019 974811 +354025 812025 +354025 1.08223e+06 +354058 801169 +354061 945986 +354078 786722 +354106 808431 +354117 902783 +354119 994039 +354131 787358 +354133 780711 +354175 816431 +354197 1.1902e+06 +354211 945144 +354219 992792 +354231 914558 +354244 844875 +354267 918367 +354286 794933 +354289 815017 +354294 857231 +354303 942314 +354308 834475 +354325 936153 +354325 963047 +354339 795872 +354339 1.06446e+06 +354342 806208 +354353 1.01172e+06 +354358 970911 +354364 1.00805e+06 +354367 943481 +354372 936728 +354392 886414 +354397 959817 +354406 933878 +354411 897781 +354419 974406 +354428 845931 +354428 1.20891e+06 +354447 784272 +354453 1.00271e+06 +354469 850844 +354492 867889 +354492 898150 +354494 973964 +354581 959411 +354603 947872 +354622 894019 +354639 815219 +354658 781608 +354667 856542 +354675 975161 +354686 830042 +354700 955228 +354714 934664 +354714 983553 +354725 774158 +354736 812547 +354778 942217 +354797 791806 +354817 860886 +354833 864603 +354867 808603 +354867 966847 +354869 938275 +354872 806219 +354886 829889 +354894 971633 +354894 1.2067e+06 +354900 903586 +354911 973228 +354914 920311 +354922 941375 +354939 850125 +354942 953053 +354969 779822 +354975 972686 +354983 949694 +354992 808489 +355006 940514 +355033 969025 +355042 974458 +355067 977622 +355069 787394 +355078 901469 +355083 783397 +355125 771008 +355133 845453 +355147 847903 +355147 1.06365e+06 +355150 882453 +355156 989669 +355186 976319 +355197 843636 +355225 976186 +355228 973769 +355261 987072 +355272 863336 +355281 1.08742e+06 +355289 774014 +355297 806683 +355322 979547 +355325 770328 +355328 828375 +355328 904206 +355333 829108 +355336 825286 +355361 1.00959e+06 +355364 782847 +355400 766233 +355453 779750 +355456 806111 +355464 770525 +355478 875519 +355494 985778 +355497 826503 +355508 975486 +355511 804067 +355608 975511 +355642 896464 +355642 907167 +355642 1.2108e+06 +355658 972867 +355692 805819 +355742 1.05674e+06 +355753 1.01184e+06 +355756 812119 +355778 989642 +355842 788003 +355842 881194 +355847 808103 +355869 804631 +355881 1.18491e+06 +355900 842419 +355914 924603 +355942 1.1934e+06 +355961 781244 +355978 824000 +356008 825542 +356014 844611 +356028 859197 +356056 851889 +356067 778236 +356075 958600 +356081 968208 +356092 1.18483e+06 +356111 773731 +356111 903297 +356122 804469 +356139 996711 +356139 1.06725e+06 +356144 888139 +356150 870353 +356172 878394 +356178 823214 +356203 908983 +356225 1.1767e+06 +356233 959603 +356289 821808 +356311 983169 +356328 993814 +356333 801161 +356333 825822 +356350 779333 +356356 941672 +356361 833778 +356383 912650 +356397 1.01603e+06 +356419 977461 +356442 823031 +356453 780100 +356486 956558 +356497 881267 +356497 910739 +356506 784567 +356508 883933 +356508 1.17661e+06 +356528 974778 +356578 820256 +356611 841722 +356617 971953 +356650 988828 +356678 1.01397e+06 +356697 812217 +356708 804744 +356728 895733 +356736 905072 +356744 900997 +356781 1.08151e+06 +356781 1.19228e+06 +356806 1.09052e+06 +356817 804325 +356839 820094 +356842 819919 +356869 1.05937e+06 +356914 1.00638e+06 +356919 848608 +356922 804350 +356942 970631 +356969 825608 +357006 808883 +357017 914414 +357017 968806 +357044 820361 +357047 967650 +357050 899694 +357064 812189 +357069 1.18455e+06 +357072 810758 +357078 798139 +357111 786144 +357111 890875 +357139 814222 +357142 835103 +357144 811464 +357200 791775 +357233 794625 +357258 979761 +357272 814708 +357289 814000 +357289 817794 +357292 1.18549e+06 +357306 911983 +357319 1.05151e+06 +357325 788506 +357328 843339 +357331 806772 +357333 796528 +357406 815633 +357422 905622 +357425 960700 +357436 796925 +357442 987472 +357444 1.09076e+06 +357453 816850 +357453 895297 +357472 854667 +357478 953694 +357486 966578 +357519 776703 +357547 1.18424e+06 +357561 899281 +357564 839706 +357578 816044 +357581 903222 +357603 841358 +357636 1.05932e+06 +357689 1.19246e+06 +357697 916408 +357719 786389 +357719 877839 +357739 814314 +357758 889900 +357808 783700 +357825 808875 +357847 891172 +357875 784808 +357883 776381 +357883 835544 +357894 839739 +357900 782042 +357914 787814 +357950 839319 +357964 814308 +357967 1.19107e+06 +357972 826842 +357972 842561 +357975 952503 +357981 976783 +358028 887747 +358028 965058 +358064 778636 +358083 970125 +358103 805561 +358111 768969 +358144 946283 +358147 892256 +358161 904342 +358178 798033 +358197 889158 +358203 956739 +358217 911283 +358239 772556 +358239 802536 +358242 783150 +358264 825494 +358269 1.01442e+06 +358275 839408 +358275 860717 +358303 925578 +358306 963908 +358383 894061 +358422 907042 +358425 756389 +358447 984128 +358456 863903 +358483 814961 +358506 953181 +358544 770558 +358589 1.08761e+06 +358614 979314 +358656 846850 +358656 1.01973e+06 +358667 767489 +358669 778294 +358681 835619 +358683 921175 +358708 955222 +358728 917539 +358756 893961 +358764 960608 +358778 766156 +358789 974250 +358800 901669 +358808 845086 +358825 800822 +358842 1.19271e+06 +358894 775325 +358906 903442 +358922 828292 +358922 904525 +358939 805617 +358967 775361 +359000 905819 +359028 802572 +359081 756761 +359089 926311 +359092 848781 +359100 790756 +359128 1.00382e+06 +359139 815392 +359153 820647 +359153 949697 +359175 762525 +359197 887589 +359217 811767 +359242 941883 +359250 868689 +359258 854642 +359272 899189 +359325 951411 +359339 845525 +359358 902578 +359381 777908 +359417 915483 +359419 958831 +359444 772100 +359447 960650 +359489 850269 +359494 944233 +359517 956506 +359525 975944 +359553 960086 +359556 800056 +359572 756244 +359594 953692 +359597 899719 +359606 839208 +359606 858142 +359608 782539 +359619 797625 +359625 1.19043e+06 +359669 831878 +359686 1.19291e+06 +359731 886781 +359739 970333 +359744 779658 +359758 943175 +359786 1.14832e+06 +359797 785100 +359806 889414 +359814 979108 +359819 841139 +359850 967667 +359883 966008 +359911 1.0608e+06 +359925 945678 +359939 788989 +359942 799356 +359942 941750 +359983 769464 +359986 961139 +360006 884281 +360014 940081 +360025 1.0593e+06 +360042 1.20128e+06 +360081 931864 +360083 1.19961e+06 +360103 842697 +360111 778578 +360114 886228 +360153 834150 +360156 865819 +360167 1.01824e+06 +360211 879669 +360214 803822 +360222 1.06958e+06 +360228 959681 +360317 840281 +360344 893856 +360358 894797 +360364 788236 +360381 882444 +360381 882736 +360397 1.14981e+06 +360417 901139 +360419 942469 +360444 843444 +360469 902928 +360489 777494 +360503 909750 +360508 902386 +360525 957906 +360533 873125 +360536 985881 +360583 905000 +360589 880978 +360594 919083 +360594 1.02513e+06 +360594 1.19311e+06 +360606 766094 +360625 941572 +360653 1.19016e+06 +360667 889939 +360689 794008 +360719 841333 +360725 797922 +360753 791000 +360764 888100 +360769 873878 +360775 860333 +360839 877947 +360839 898292 +360844 965833 +360861 937411 +360872 819275 +360914 793644 +360944 1.15041e+06 +360956 794381 +360958 792672 +360958 844425 +360967 811825 +360969 804194 +360981 1.19559e+06 +360989 783014 +360997 802444 +361006 870511 +361017 784583 +361019 871150 +361028 795069 +361033 841319 +361039 835528 +361047 845972 +361053 777131 +361056 795425 +361072 796589 +361075 832869 +361075 872208 +361078 876331 +361083 910972 +361092 978983 +361128 892617 +361131 794767 +361142 966989 +361156 970581 +361161 983167 +361169 867664 +361194 921358 +361197 800739 +361219 794292 +361222 786864 +361222 834925 +361275 889858 +361294 774206 +361306 824247 +361319 787569 +361325 885186 +361342 901597 +361344 806597 +361350 816778 +361350 1.11239e+06 +361397 961086 +361397 1.20359e+06 +361450 824169 +361456 1.1906e+06 +361458 811608 +361475 852683 +361481 989239 +361497 992978 +361511 955092 +361533 888006 +361536 856436 +361539 959925 +361542 837042 +361544 1.09552e+06 +361572 819783 +361583 811478 +361628 855017 +361631 818717 +361631 828311 +361661 948544 +361714 811942 +361725 859297 +361750 1.15136e+06 +361772 873397 +361778 942333 +361808 776669 +361858 953428 +361867 941286 +361869 903831 +361881 945403 +361889 957456 +361894 829586 +361900 764664 +361931 896556 +361956 840681 +361958 854486 +361961 820706 +361983 811531 +361983 1.01192e+06 +361989 1.15117e+06 +362000 865186 +362000 951675 +362022 802811 +362022 890122 +362025 911744 +362028 1.20102e+06 +362031 891908 +362031 1.19087e+06 +362061 942342 +362078 1.19346e+06 +362086 799050 +362128 1.21125e+06 +362136 886125 +362139 832950 +362164 805128 +362167 816747 +362178 841547 +362189 764642 +362211 919292 +362239 916083 +362261 926847 +362272 808336 +362294 771144 +362297 931075 +362325 807083 +362333 888244 +362336 897494 +362339 897694 +362361 900556 +362369 799797 +362381 963164 +362392 808447 +362403 802936 +362419 859519 +362419 959756 +362442 808486 +362506 837975 +362522 859517 +362553 941306 +362569 830861 +362586 831953 +362589 891917 +362614 909711 +362631 902925 +362633 894878 +362642 946928 +362650 1.01406e+06 +362675 944844 +362689 984794 +362694 958544 +362711 925353 +362739 772847 +362742 870642 +362758 998808 +362789 925969 +362803 978978 +362806 803594 +362808 835150 +362831 924939 +362842 821728 +362867 769850 +362894 972878 +362914 887081 +362928 951531 +362942 824736 +362953 801419 +362961 1.19141e+06 +362972 959911 +362972 970078 +362978 1.19206e+06 +362989 842233 +363008 1.19782e+06 +363019 762236 +363019 883267 +363047 866200 +363064 821933 +363075 975861 +363081 784069 +363100 964639 +363106 785911 +363119 877733 +363125 956158 +363133 823536 +363156 997572 +363158 914825 +363158 1.19708e+06 +363183 876947 +363200 906019 +363208 1.21243e+06 +363231 867133 +363275 1.19645e+06 +363294 783994 +363300 841839 +363303 1.19291e+06 +363314 772131 +363319 941183 +363353 934358 +363358 944606 +363361 1.02072e+06 +363378 968036 +363386 891639 +363417 783903 +363433 888503 +363486 822108 +363511 1.19419e+06 +363528 1.09617e+06 +363547 796647 +363556 856589 +363586 1.05609e+06 +363611 1.04595e+06 +363628 907536 +363644 958386 +363647 935678 +363683 960011 +363722 822258 +363728 942086 +363783 894719 +363808 848844 +363828 841200 +363828 901906 +363833 853231 +363839 925814 +363853 799597 +363864 804697 +363872 1.19217e+06 +363875 980894 +363883 864467 +363908 861672 +363911 950464 +363922 824117 +363936 789831 +363950 867794 +363956 769322 +363956 807228 +363956 978781 +363983 781556 +363992 900236 +364000 1.00802e+06 +364011 937378 +364036 814931 +364039 793364 +364053 984403 +364072 830056 +364072 1.05572e+06 +364078 905797 +364122 799672 +364142 963950 +364158 776033 +364169 1.09228e+06 +364181 826239 +364197 824767 +364203 814736 +364211 947967 +364219 944533 +364242 890569 +364247 1.21325e+06 +364253 896994 +364269 775958 +364333 1.19686e+06 +364336 993900 +364339 1.00141e+06 +364344 779122 +364356 978686 +364367 952711 +364369 772292 +364369 975853 +364392 992044 +364394 824558 +364422 770989 +364425 835997 +364442 883344 +364456 781986 +364508 775592 +364511 776797 +364517 899669 +364517 1.03184e+06 +364519 899192 +364533 1.00537e+06 +364542 835694 +364614 776544 +364639 950475 +364644 929200 +364664 799072 +364703 866514 +364708 828519 +364742 822611 +364744 818050 +364761 1.19442e+06 +364778 825933 +364797 1.21731e+06 +364850 825033 +364878 878383 +364883 797669 +364900 774417 +364933 900750 +364956 915406 +364981 845128 +364992 806075 +365003 776453 +365003 806267 +365008 888753 +365042 888742 +365050 1.01782e+06 +365053 811211 +365067 1.21443e+06 +365092 868850 +365108 1.04915e+06 +365139 1.19553e+06 +365147 946111 +365189 896125 +365211 860264 +365222 827136 +365225 939394 +365233 1.19286e+06 +365244 915381 +365289 974436 +365297 832175 +365297 873594 +365303 959233 +365331 823269 +365333 858500 +365356 954322 +365428 1.19832e+06 +365433 1.14446e+06 +365433 1.19386e+06 +365450 1.19286e+06 +365456 944850 +365461 963269 +365461 982697 +365483 824558 +365483 825619 +365486 866961 +365500 855053 +365556 824681 +365569 899664 +365619 862481 +365619 961614 +365681 896006 +365708 1.19611e+06 +365711 891861 +365736 967039 +365736 995719 +365744 851289 +365753 906039 +365769 825678 +365789 984619 +365817 865164 +365822 870656 +365822 988794 +365831 772003 +365844 824894 +365858 793953 +365864 895278 +365878 841269 +365886 793664 +365914 825736 +365922 896153 +365933 1.21834e+06 +365936 947689 +365944 943839 +365950 821889 +365953 1.01636e+06 +365958 902472 +365964 821886 +365964 1.19449e+06 +366003 1.21894e+06 +366031 924281 +366061 1.18062e+06 +366067 1.20188e+06 +366103 883147 +366111 1.21851e+06 +366117 1.19526e+06 +366136 898164 +366208 908233 +366211 932153 +366222 811511 +366244 1.19313e+06 +366283 799511 +366306 1.19678e+06 +366336 817839 +366378 825811 +366386 951539 +366408 802658 +366422 887389 +366436 932183 +366483 871664 +366503 1.1979e+06 +366506 944433 +366508 844386 +366592 1.19593e+06 +366611 809242 +366672 889933 +366675 868519 +366678 963369 +366689 899686 +366692 978008 +366722 939408 +366769 938686 +366775 769228 +366778 1.21654e+06 +366783 973097 +366828 1.01481e+06 +366844 1.21801e+06 +366850 931197 +366858 775428 +366889 831111 +366906 975561 +366908 851347 +366914 798728 +366936 949628 +366942 913992 +366986 789017 +366989 844775 +367000 781000 +367000 799389 +367006 956378 +367022 856917 +367039 1.05594e+06 +367069 970853 +367081 1.19555e+06 +367097 819775 +367097 998931 +367106 1.19758e+06 +367111 1.07984e+06 +367133 788289 +367150 799156 +367161 770683 +367161 809789 +367222 865772 +367233 844706 +367236 1.20059e+06 +367264 781292 +367278 1.10254e+06 +367281 765839 +367281 918522 +367281 1.08218e+06 +367286 809992 +367294 1.02513e+06 +367342 1.08359e+06 +367417 886367 +367417 943989 +367433 841597 +367472 959806 +367478 1.19771e+06 +367511 948472 +367533 861906 +367536 1.20381e+06 +367544 983564 +367569 903928 +367575 778472 +367583 830272 +367592 799906 +367592 895867 +367619 836950 +367625 807350 +367628 940558 +367647 882953 +367658 789286 +367658 1.21757e+06 +367758 873556 +367786 956392 +367797 893856 +367819 966608 +367856 1.08686e+06 +367892 815822 +367903 853706 +367911 817714 +367958 899578 +367958 959353 +367983 816825 +367992 784586 +368044 972825 +368050 986661 +368069 977333 +368083 767444 +368097 1.02255e+06 +368100 871542 +368125 898614 +368142 774686 +368161 1.00519e+06 +368172 939206 +368222 1.07992e+06 +368253 1.19702e+06 +368256 793983 +368347 815150 +368353 762986 +368356 996300 +368406 763106 +368414 946108 +368431 833219 +368453 868872 +368456 1.21537e+06 +368467 762856 +368472 896853 +368486 832192 +368519 833542 +368525 1.21401e+06 +368528 759783 +368572 883503 +368589 1.20455e+06 +368600 1.01213e+06 +368642 867103 +368650 878353 +368656 874886 +368658 831906 +368664 838889 +368672 814236 +368689 943678 +368706 890097 +368736 950956 +368744 948772 +368767 895878 +368817 827472 +368822 970531 +368833 979217 +368858 899292 +368900 822797 +368914 895383 +368936 812761 +368942 817769 +368975 959258 +369008 820803 +369031 1.06579e+06 +369033 1.04439e+06 +369042 1.21748e+06 +369053 935714 +369067 827819 +369069 1.00539e+06 +369086 1.11473e+06 +369094 894525 +369103 1.21756e+06 +369172 948794 +369192 942550 +369208 893506 +369289 939275 +369333 826292 +369333 948728 +369336 1.06998e+06 +369353 1.21772e+06 +369367 1.21864e+06 +369439 824642 +369444 940042 +369456 1.12526e+06 +369483 810850 +369486 840969 +369497 901583 +369519 926603 +369536 793592 +369542 1.01065e+06 +369544 947878 +369606 840933 +369608 1.21963e+06 +369614 1.2006e+06 +369619 781253 +369639 937956 +369647 829486 +369647 890892 +369661 829225 +369683 1.21899e+06 +369708 937178 +369742 1.2203e+06 +369753 1.21952e+06 +369758 825758 +369772 1.21898e+06 +369781 829886 +369783 822978 +369786 764283 +369800 856122 +369847 850631 +369861 1.20626e+06 +369869 948306 +369881 1.21956e+06 +369889 846000 +369903 864436 +369911 914925 +369922 919697 +369928 786014 +369944 956200 +369947 782275 +369953 917036 +369953 943158 +369956 910144 +369958 859119 +369975 798922 +370011 930814 +370031 936372 +370053 891764 +370058 1.21567e+06 +370081 1.0189e+06 +370097 913233 +370114 959350 +370161 819744 +370172 984850 +370175 885314 +370208 932058 +370236 898197 +370297 763456 +370303 934728 +370322 976067 +370333 883500 +370358 770956 +370369 944967 +370372 950897 +370372 956161 +370403 784836 +370406 944725 +370431 1.00921e+06 +370433 932942 +370436 896103 +370475 1.12526e+06 +370478 807800 +370478 874850 +370500 789444 +370511 1.22014e+06 +370514 1.22072e+06 +370517 890467 +370525 862078 +370561 850886 +370564 786386 +370583 1.20849e+06 +370589 881325 +370597 953592 +370619 970381 +370625 817519 +370667 766767 +370675 935519 +370692 941164 +370758 946394 +370767 889736 +370767 944592 +370803 779975 +370833 886000 +370836 944133 +370842 945131 +370850 896553 +370850 1.21609e+06 +370853 891625 +370869 818553 +370892 1.22085e+06 +370919 846042 +370925 792967 +370931 817939 +370939 860464 +370944 880803 +371028 853064 +371036 938183 +371042 965000 +371042 1.13583e+06 +371044 899106 +371056 806856 +371067 925806 +371092 878819 +371117 792858 +371142 891978 +371147 815197 +371150 1.07632e+06 +371156 933700 +371169 930556 +371183 828269 +371200 934800 +371222 763461 +371231 1.20259e+06 +371236 826014 +371236 886303 +371239 921011 +371261 1.22121e+06 +371267 961867 +371289 840833 +371297 804092 +371306 922633 +371306 1.13508e+06 +371306 1.21653e+06 +371331 1.13653e+06 +371367 859569 +371389 884033 +371425 945106 +371464 927686 +371464 944628 +371492 944428 +371500 824561 +371506 913575 +371511 887319 +371533 980308 +371536 837619 +371544 906956 +371575 929406 +371658 872475 +371672 876925 +371675 951097 +371686 1.13679e+06 +371692 948439 +371694 1.045e+06 +371731 781236 +371733 826311 +371742 1.05937e+06 +371753 1.01349e+06 +371753 1.13289e+06 +371764 943100 +371767 945653 +371769 846358 +371792 916567 +371794 859069 +371800 896550 +371836 873836 +371875 782017 +371883 944700 +371886 997653 +371903 952969 +371908 874528 +371967 897361 +372008 1.05423e+06 +372011 871789 +372011 1.13269e+06 +372014 994836 +372064 888447 +372075 826719 +372081 880567 +372147 938397 +372153 932981 +372167 895244 +372175 870489 +372197 895089 +372242 957081 +372256 866836 +372256 1.07598e+06 +372267 1.21974e+06 +372275 800131 +372278 774022 +372303 774778 +372322 820992 +372350 892700 +372364 1.21991e+06 +372367 874753 +372369 871592 +372397 969953 +372400 774303 +372414 982264 +372417 909686 +372422 784600 +372494 831933 +372508 925103 +372525 812714 +372539 764972 +372578 1.20998e+06 +372583 1.05904e+06 +372608 854989 +372639 1.22022e+06 +372653 973714 +372658 977653 +372678 760178 +372683 931169 +372689 993264 +372694 1.07009e+06 +372697 812225 +372703 955522 +372706 767078 +372708 799417 +372722 858911 +372742 875119 +372742 971686 +372750 1.0596e+06 +372753 1.07879e+06 +372769 891833 +372775 948247 +372778 820992 +372808 798972 +372811 985800 +372856 1.0034e+06 +372867 980256 +372872 1.21949e+06 +372894 759717 +372908 1.20318e+06 +372936 889753 +372939 871233 +372992 862286 +373003 899811 +373011 816911 +373019 783922 +373022 1.20482e+06 +373039 823511 +373050 934283 +373058 895181 +373058 899703 +373100 947717 +373125 812600 +373128 967539 +373139 1.2102e+06 +373153 935850 +373194 806392 +373206 792578 +373231 1.22031e+06 +373250 813119 +373261 919558 +373264 807353 +373281 874989 +373281 1.19648e+06 +373314 808114 +373325 827211 +373328 880811 +373339 869961 +373342 795233 +373353 1.21894e+06 +373358 814367 +373358 829806 +373361 943011 +373386 929069 +373403 952608 +373411 799433 +373433 853419 +373442 867547 +373450 1.08289e+06 +373458 948086 +373475 1.21268e+06 +373489 1.08585e+06 +373539 812528 +373567 774419 +373569 788256 +373603 963036 +373611 891658 +373636 815503 +373636 1.18394e+06 +373661 811028 +373661 1.21826e+06 +373672 884864 +373689 1.22035e+06 +373783 798072 +373797 1.22136e+06 +373819 869225 +373822 808228 +373822 896661 +373839 931511 +373842 1.22234e+06 +373856 939531 +373856 1.00195e+06 +373861 1.02278e+06 +373869 1.20722e+06 +373875 971139 +373894 1.20612e+06 +373903 976419 +373931 940936 +373939 972808 +373972 807994 +374019 868758 +374028 1.04653e+06 +374042 844139 +374083 1.02614e+06 +374108 947047 +374111 935494 +374136 791425 +374153 888978 +374153 938408 +374158 872656 +374183 956800 +374200 812433 +374208 814403 +374217 774378 +374222 810164 +374236 883461 +374242 864883 +374256 815069 +374283 1.21906e+06 +374300 1.22253e+06 +374303 839981 +374308 791233 +374322 1.20778e+06 +374328 815847 +374372 1.01972e+06 +374419 1.22142e+06 +374433 1.00015e+06 +374450 828053 +374450 871439 +374511 869092 +374517 892681 +374539 1.22181e+06 +374556 912094 +374556 946889 +374603 892469 +374614 1.22197e+06 +374636 1.22428e+06 +374644 818139 +374644 845067 +374650 858933 +374689 1.2214e+06 +374694 1.05869e+06 +374703 962633 +374717 1.21129e+06 +374739 1.08504e+06 +374744 972436 +374747 758586 +374767 878200 +374783 816536 +374792 825189 +374800 862939 +374817 1.00843e+06 +374850 1.19965e+06 +374861 1.22233e+06 +374931 871319 +374931 954700 +374947 1.20846e+06 +374950 942764 +374953 862214 +374994 918569 +375019 928208 +375028 975042 +375028 1.22468e+06 +375050 1.05007e+06 +375111 948378 +375178 876903 +375203 1.22275e+06 +375239 956611 +375264 1.20796e+06 +375272 796800 +375275 1.22512e+06 +375297 1.22039e+06 +375311 846619 +375314 767967 +375314 892533 +375317 758233 +375339 958264 +375389 872583 +375422 1.22515e+06 +375428 784575 +375439 947000 +375456 972686 +375458 773281 +375467 879839 +375472 996339 +375536 774606 +375544 889722 +375547 763372 +375569 946217 +375581 945197 +375583 971347 +375586 1.2227e+06 +375597 902939 +375631 1.22324e+06 +375658 973539 +375686 842964 +375697 852528 +375717 837069 +375728 827528 +375739 857400 +375742 1.22378e+06 +375792 1.06148e+06 +375808 774072 +375814 1.01355e+06 +375831 813806 +375831 815372 +375842 1.22365e+06 +375850 790517 +375867 847939 +375881 906289 +375900 775567 +375914 805439 +375950 1.20957e+06 +375958 816361 +375958 1.00443e+06 +375969 1.20865e+06 +375972 906272 +375986 1.22386e+06 +376028 992922 +376036 774917 +376069 875286 +376075 774772 +376133 779050 +376142 818667 +376144 934103 +376150 1.14511e+06 +376194 845781 +376194 888367 +376194 991061 +376211 906403 +376219 821633 +376242 1.0478e+06 +376242 1.09478e+06 +376264 894978 +376300 977822 +376306 1.2241e+06 +376339 794506 +376353 854008 +376361 867175 +376375 765747 +376414 1.20759e+06 +376439 930922 +376439 984308 +376439 987372 +376453 836489 +376456 847722 +376456 915358 +376458 981133 +376486 1.18971e+06 +376547 1.22407e+06 +376578 855911 +376583 976833 +376597 975750 +376614 764194 +376625 1.21874e+06 +376656 827717 +376658 775067 +376719 822842 +376739 808894 +376742 822775 +376775 1.13061e+06 +376789 812106 +376789 1.06353e+06 +376792 954569 +376806 926636 +376808 1.22399e+06 +376811 1.22123e+06 +376819 1.21767e+06 +376831 868714 +376833 879167 +376844 839531 +376853 852222 +376867 979764 +376881 972633 +376903 967819 +376908 757164 +376919 816242 +376922 973372 +376939 858592 +376942 1.22085e+06 +376947 1.22113e+06 +376989 937958 +377006 839739 +377022 1.21935e+06 +377033 822811 +377075 812508 +377103 763800 +377106 821842 +377117 757494 +377131 881867 +377139 971361 +377153 911350 +377194 756658 +377203 1.22526e+06 +377242 898611 +377250 1.22155e+06 +377258 806422 +377272 892167 +377306 818381 +377306 889331 +377339 883433 +377342 793542 +377347 812997 +377361 1.20934e+06 +377383 885406 +377397 818778 +377397 1.21424e+06 +377406 812308 +377417 1.21123e+06 +377431 811231 +377433 877039 +377478 842947 +377497 804631 +377519 890678 +377525 830689 +377528 1.00017e+06 +377531 1.06108e+06 +377533 847667 +377583 812128 +377589 774803 +377600 890772 +377622 848433 +377644 893350 +377661 1.08905e+06 +377667 1.20846e+06 +377692 906247 +377703 1.11601e+06 +377708 812086 +377733 1.13024e+06 +377739 890264 +377742 871133 +377750 1.22418e+06 +377753 879306 +377781 811883 +377792 964669 +377792 975361 +377800 864606 +377800 980194 +377800 1.21977e+06 +377806 804572 +377808 904217 +377814 891192 +377819 756539 +377831 812661 +377839 794431 +377889 971083 +377906 976292 +377931 819878 +377933 799942 +377944 935778 +377964 802978 +377975 797914 +377975 969994 +377975 1.20996e+06 +377975 1.21215e+06 +377992 882611 +378000 973181 +378017 804458 +378031 890275 +378044 1.2227e+06 +378067 1.00348e+06 +378092 854669 +378100 859814 +378106 954367 +378119 1.07664e+06 +378133 820247 +378136 884381 +378144 828072 +378158 811525 +378161 798247 +378172 968619 +378175 892278 +378206 889275 +378217 1.21999e+06 +378228 1.12435e+06 +378228 1.21276e+06 +378239 962889 +378242 820597 +378244 1.22231e+06 +378261 759919 +378286 922006 +378314 1.22284e+06 +378331 891428 +378333 866328 +378344 857319 +378347 973731 +378361 811350 +378361 875900 +378364 812019 +378367 905328 +378392 943544 +378397 947081 +378403 859492 +378406 886092 +378422 1.12827e+06 +378436 824094 +378456 838583 +378486 819936 +378492 1.06926e+06 +378500 997564 +378503 904986 +378503 1.22031e+06 +378511 905206 +378567 924050 +378589 808544 +378592 839186 +378592 1.22484e+06 +378619 846617 +378667 819867 +378672 905931 +378686 976647 +378714 1.09342e+06 +378717 1.22272e+06 +378728 905278 +378736 1.22456e+06 +378769 891144 +378772 1.22179e+06 +378803 862839 +378806 845731 +378811 957331 +378831 870494 +378858 1.22117e+06 +378869 1.22297e+06 +378883 894947 +378967 981783 +378978 889314 +378989 977825 +378994 890519 +379000 867550 +379061 1.22544e+06 +379064 1.22064e+06 +379086 881292 +379094 1.22685e+06 +379100 892358 +379103 853167 +379106 1.22279e+06 +379114 867444 +379136 898219 +379142 919025 +379161 951700 +379167 974222 +379169 952989 +379175 887622 +379214 832597 +379231 905553 +379231 994094 +379236 953458 +379244 953997 +379253 768594 +379256 1.22526e+06 +379331 753792 +379358 1.22347e+06 +379361 992522 +379364 907878 +379369 859917 +379369 869022 +379375 1.07812e+06 +379389 970194 +379403 918808 +379406 1.01254e+06 +379444 874053 +379481 1.2206e+06 +379489 922636 +379508 836258 +379514 867678 +379514 917711 +379533 1.20422e+06 +379578 1.2129e+06 +379586 767583 +379622 986003 +379622 1.22344e+06 +379631 806897 +379647 971472 +379681 913547 +379686 807672 +379717 1.00872e+06 +379725 890533 +379736 820175 +379736 838419 +379736 1.21694e+06 +379736 1.2253e+06 +379747 758342 +379747 815292 +379747 875558 +379747 1.22561e+06 +379772 1.22294e+06 +379781 1.2203e+06 +379797 1.01133e+06 +379806 1.01752e+06 +379811 883292 +379831 890161 +379833 758542 +379839 895894 +379842 1.20381e+06 +379850 1.03543e+06 +379861 1.00989e+06 +379872 1.22588e+06 +379883 857158 +379900 841797 +379917 920936 +379942 838878 +379953 867978 +379967 889200 +379969 1.03531e+06 +379975 1.21711e+06 +379978 1.20269e+06 +379989 861694 +379994 859436 +380014 975083 +380044 1.22298e+06 +380050 1.21805e+06 +380072 896583 +380081 927444 +380128 1.22644e+06 +380144 1.03628e+06 +380147 870364 +380150 1.21639e+06 +380153 890425 +380164 896186 +380172 1.22288e+06 +380228 1.07671e+06 +380239 976694 +380250 780044 +380269 1.21936e+06 +380281 979400 +380281 1.21884e+06 +380292 784769 +380300 790339 +380317 853425 +380331 1.22266e+06 +380372 848967 +380397 1.20232e+06 +380467 937042 +380467 973447 +380492 872742 +380494 773469 +380494 1.22158e+06 +380500 855458 +380522 1.02122e+06 +380525 847300 +380528 811042 +380564 839433 +380608 979294 +380628 914033 +380633 785028 +380639 1.0231e+06 +380667 1.03222e+06 +380669 818194 +380672 1.17229e+06 +380683 788897 +380694 787008 +380722 973453 +380756 755683 +380786 793833 +380803 893819 +380808 818342 +380831 900958 +380839 956342 +380844 998931 +380864 831264 +380872 1.0262e+06 +380875 1.06094e+06 +380903 899383 +380903 922925 +380908 881586 +380917 890503 +380933 885356 +380989 813242 +380992 875789 +380994 883375 +381042 1.22256e+06 +381050 857589 +381075 1.22569e+06 +381089 788578 +381111 858703 +381142 826033 +381161 825958 +381169 784419 +381200 869142 +381231 897017 +381236 857197 +381292 1.04023e+06 +381297 879350 +381303 1.21271e+06 +381344 977697 +381356 961356 +381361 810997 +381372 781881 +381375 1.20459e+06 +381378 892300 +381383 974311 +381400 937267 +381411 856878 +381428 948133 +381450 841114 +381472 980833 +381494 790719 +381503 926178 +381506 812875 +381522 1.21242e+06 +381542 1.213e+06 +381547 912439 +381558 1.2169e+06 +381597 855878 +381597 874483 +381600 856597 +381617 880653 +381619 834289 +381619 1.21611e+06 +381636 1.21149e+06 +381683 811950 +381689 869900 +381694 971064 +381700 877831 +381769 753931 +381778 947111 +381783 857097 +381803 813286 +381806 990983 +381811 813072 +381864 896056 +381867 919469 +381869 813656 +381875 877103 +381906 940292 +381942 855644 +381944 957425 +381950 856519 +381961 872967 +381961 1.20679e+06 +381969 856633 +381981 886844 +382000 858228 +382008 848733 +382019 790086 +382028 756928 +382031 975189 +382039 857253 +382050 875742 +382081 911603 +382097 842531 +382100 813842 +382100 982067 +382117 899942 +382119 852236 +382119 861219 +382119 896825 +382125 857403 +382142 856139 +382142 1.12923e+06 +382153 814247 +382181 814431 +382181 1.03756e+06 +382183 1.08568e+06 +382206 903958 +382211 903789 +382214 824425 +382225 853553 +382233 800947 +382239 868622 +382247 805333 +382289 856775 +382319 815378 +382319 977731 +382322 905628 +382325 1.22636e+06 +382369 859858 +382383 1.22039e+06 +382403 855242 +382431 933817 +382444 969278 +382453 781111 +382453 815672 +382456 870361 +382494 1.22039e+06 +382500 897500 +382511 875811 +382522 855922 +382542 857594 +382544 769639 +382544 1.04609e+06 +382547 856314 +382547 1.21299e+06 +382567 856017 +382575 879936 +382586 943303 +382614 856292 +382667 764542 +382667 855331 +382672 788261 +382678 856717 +382683 903800 +382694 1.08547e+06 +382717 846864 +382719 876878 +382722 855836 +382731 856231 +382739 856344 +382750 856150 +382769 1.1264e+06 +382786 821031 +382794 856500 +382806 952417 +382811 808528 +382825 855744 +382833 855911 +382833 903950 +382856 821958 +382856 858242 +382858 917203 +382911 766361 +382919 1.22457e+06 +382944 903158 +382972 856033 +382972 1.22284e+06 +382978 1.22491e+06 +382989 869550 +383000 831742 +383003 765078 +383017 916328 +383019 841475 +383028 855961 +383050 899942 +383056 856964 +383083 959556 +383106 854875 +383119 840275 +383139 1.22481e+06 +383150 919225 +383167 866958 +383172 889031 +383175 815211 +383219 756206 +383225 752181 +383239 774686 +383239 1.21821e+06 +383264 898769 +383269 1.22706e+06 +383294 891908 +383306 806533 +383308 887258 +383322 874453 +383325 829486 +383336 856536 +383344 864642 +383358 901497 +383364 750853 +383386 873450 +383397 1.227e+06 +383422 862761 +383436 893806 +383450 856156 +383450 982014 +383453 885878 +383456 915014 +383483 925814 +383483 970169 +383489 1.20773e+06 +383497 816328 +383500 947611 +383517 859417 +383519 972042 +383528 1.20932e+06 +383550 983492 +383553 875675 +383556 985806 +383567 1.21987e+06 +383606 755997 +383606 817375 +383642 1.22523e+06 +383644 987644 +383683 816997 +383700 851806 +383708 976639 +383722 965425 +383756 863447 +383775 880561 +383819 789769 +383819 975372 +383822 872128 +383861 974278 +383903 842942 +383903 1.05118e+06 +383908 933344 +383911 753489 +383914 869311 +383931 1.20801e+06 +383939 956028 +383953 754133 +383964 825589 +383969 1.1301e+06 +383975 943514 +383981 857550 +383981 980117 +383989 825783 +383997 913306 +384000 1.05217e+06 +384017 1.2236e+06 +384028 942536 +384039 961814 +384047 826006 +384069 875856 +384075 853789 +384078 786239 +384078 861100 +384086 899919 +384089 1.21371e+06 +384094 805581 +384094 822947 +384108 877614 +384147 789389 +384147 818442 +384167 958528 +384178 825864 +384192 824453 +384200 756881 +384200 820556 +384222 837339 +384275 899136 +384278 824572 +384292 1.05219e+06 +384314 928408 +384325 820203 +384328 903775 +384333 851697 +384342 895503 +384344 821325 +384364 1.22869e+06 +384369 823772 +384392 891628 +384406 1.22713e+06 +384408 929917 +384417 892742 +384428 814806 +384436 902011 +384456 910056 +384494 788692 +384528 999061 +384531 856703 +384558 755778 +384564 755775 +384597 940006 +384600 932025 +384603 752211 +384603 810853 +384614 900917 +384656 1.23008e+06 +384697 1.01752e+06 +384722 818144 +384731 779969 +384783 826381 +384783 1.07876e+06 +384794 946083 +384797 1.01358e+06 +384806 1.02781e+06 +384808 767783 +384817 943542 +384819 907414 +384819 1.00467e+06 +384819 1.20844e+06 +384825 1.00907e+06 +384850 786253 +384858 918503 +384886 813483 +384889 921742 +384897 766825 +384903 816475 +384903 897931 +384903 904869 +384919 872786 +384925 826903 +384961 1.21408e+06 +384972 949503 +385019 1.22995e+06 +385025 906278 +385033 826472 +385069 962617 +385086 906025 +385089 891406 +385094 818400 +385131 904358 +385158 884375 +385161 902103 +385172 752353 +385172 826978 +385181 987778 +385200 899839 +385208 880047 +385222 772939 +385225 827172 +385247 1.18624e+06 +385250 891333 +385250 985333 +385250 1.2197e+06 +385267 877097 +385314 993083 +385322 935219 +385325 767842 +385333 902869 +385339 899889 +385347 1.05998e+06 +385364 848419 +385364 859286 +385367 826831 +385369 903797 +385375 819325 +385386 903350 +385389 904072 +385400 827286 +385403 765847 +385411 902800 +385417 857678 +385419 902328 +385425 757197 +385433 896122 +385450 1.21739e+06 +385458 1.06925e+06 +385467 773369 +385489 866200 +385492 904925 +385503 827781 +385506 903331 +385531 903094 +385536 895383 +385542 903450 +385556 978333 +385561 864683 +385564 755717 +385569 903817 +385581 910119 +385594 835761 +385611 941911 +385614 898972 +385631 760792 +385672 866283 +385675 773283 +385708 901900 +385722 948789 +385731 828303 +385733 1.09549e+06 +385736 976742 +385753 771558 +385753 785028 +385758 1.22449e+06 +385767 921733 +385789 1.22579e+06 +385806 1.21529e+06 +385817 1.21493e+06 +385831 936944 +385833 901250 +385833 904067 +385869 984108 +385892 1.21302e+06 +385897 901200 +385903 769406 +385903 903367 +385908 822831 +385914 752917 +385922 899111 +385925 853178 +385925 903572 +385925 905869 +385950 905461 +385969 905092 +385992 833189 +386000 771625 +386008 904328 +386039 898072 +386050 1.07982e+06 +386056 894358 +386056 896819 +386067 896075 +386067 1.21266e+06 +386072 903833 +386075 903783 +386083 912189 +386086 771408 +386103 893725 +386106 895269 +386106 1.22868e+06 +386122 904633 +386125 903244 +386131 787992 +386153 873544 +386156 891142 +386156 952675 +386158 838086 +386172 890522 +386172 1.21327e+06 +386175 819819 +386175 903492 +386183 905892 +386194 946806 +386242 758547 +386244 769394 +386269 770733 +386269 889456 +386275 925664 +386283 910575 +386286 903194 +386300 1.1212e+06 +386339 958256 +386350 900928 +386356 756103 +386356 904150 +386367 900256 +386369 773114 +386381 845606 +386389 787742 +386403 921222 +386411 756114 +386411 837444 +386425 903236 +386450 828489 +386478 786717 +386497 900931 +386497 903806 +386514 862611 +386533 943486 +386556 837611 +386556 927797 +386581 772500 +386592 871728 +386608 904225 +386611 964917 +386617 864264 +386636 873094 +386644 807100 +386653 784597 +386653 903758 +386658 1.20925e+06 +386664 867911 +386675 770286 +386689 884856 +386703 899844 +386711 969422 +386722 901697 +386728 902992 +386731 807750 +386753 917694 +386764 1.21335e+06 +386767 843303 +386769 869142 +386772 875286 +386772 1.23134e+06 +386781 1.21175e+06 +386786 1.21225e+06 +386800 930928 +386808 851794 +386819 845900 +386822 1.047e+06 +386825 840658 +386825 901569 +386828 1.12148e+06 +386833 902839 +386833 903078 +386858 903239 +386858 1.21371e+06 +386861 765350 +386864 761719 +386886 883542 +386900 753858 +386900 903425 +386906 902872 +386911 1.21448e+06 +386922 1.22016e+06 +386931 902822 +386942 757739 +386947 902783 +386947 1.20814e+06 +386953 903139 +386967 768481 +386975 882236 +387000 902922 +387008 903497 +387011 903622 +387014 901486 +387019 903169 +387025 903433 +387042 772281 +387042 902817 +387042 914372 +387044 932281 +387058 877600 +387072 765314 +387072 1.2128e+06 +387078 770864 +387083 902928 +387106 902981 +387111 981569 +387131 904297 +387133 777956 +387142 854736 +387142 939911 +387144 903672 +387169 878614 +387175 902656 +387183 902922 +387183 950814 +387192 902603 +387192 944583 +387203 920911 +387208 750764 +387208 829583 +387208 902747 +387236 853694 +387236 899558 +387239 770100 +387253 902967 +387264 903586 +387275 903108 +387292 876817 +387292 898831 +387297 1.20798e+06 +387303 828556 +387306 982278 +387308 880853 +387314 799703 +387317 829978 +387317 900803 +387328 763939 +387358 853800 +387358 903639 +387383 771853 +387394 896711 +387400 903264 +387403 902264 +387422 1.08068e+06 +387425 756047 +387431 948253 +387442 903061 +387456 838450 +387458 786425 +387467 1.05178e+06 +387469 902400 +387475 770833 +387478 850672 +387483 899831 +387494 902856 +387508 774756 +387517 769789 +387522 829369 +387544 903311 +387547 828689 +387553 890953 +387553 950022 +387583 830292 +387583 858081 +387594 874156 +387614 1.20586e+06 +387628 937358 +387647 903136 +387647 950078 +387650 768986 +387650 935564 +387714 903708 +387717 840058 +387722 885025 +387725 772214 +387725 1.12083e+06 +387733 888467 +387742 760767 +387742 873078 +387744 751397 +387744 922569 +387750 951861 +387764 765556 +387775 753103 +387800 895981 +387806 955569 +387817 957383 +387819 771467 +387828 846053 +387833 849017 +387839 774700 +387861 829792 +387864 843697 +387864 897775 +387875 942692 +387878 902158 +387892 903225 +387908 1.21235e+06 +387931 774481 +387933 772719 +387933 902672 +387944 835453 +387956 967356 +387997 1.07719e+06 +388006 858417 +388019 813511 +388019 944525 +388033 769900 +388039 769069 +388042 772050 +388047 770472 +388061 871522 +388069 755917 +388072 753972 +388094 769983 +388097 822025 +388106 906997 +388108 949269 +388114 899531 +388114 908528 +388114 911414 +388119 945317 +388133 827269 +388139 769458 +388158 767500 +388183 771436 +388186 817108 +388186 956889 +388189 769989 +388208 785661 +388214 1.02353e+06 +388214 1.21192e+06 +388250 861700 +388250 984750 +388275 910200 +388278 895400 +388283 1.0797e+06 +388294 900628 +388300 768917 +388303 771967 +388328 769597 +388333 769519 +388336 821383 +388339 1.04821e+06 +388342 887722 +388389 774278 +388389 840964 +388403 976111 +388417 765125 +388422 1.06131e+06 +388428 869914 +388444 821372 +388450 768753 +388461 773067 +388467 919478 +388483 900761 +388517 943436 +388528 991472 +388533 913058 +388536 772597 +388561 806550 +388575 768897 +388589 961089 +388597 1.04917e+06 +388611 864872 +388611 900975 +388683 1.07591e+06 +388689 1.17921e+06 +388697 1.06987e+06 +388703 769214 +388711 874414 +388719 771556 +388747 929114 +388783 870858 +388789 860419 +388792 993264 +388794 823806 +388794 829969 +388803 901111 +388808 773011 +388814 948189 +388844 758275 +388850 769161 +388858 945328 +388875 765122 +388878 900847 +388883 897314 +388889 898453 +388906 901842 +388917 1.21292e+06 +388922 894131 +388933 772219 +388942 774314 +388950 770367 +388950 772119 +388953 988594 +388961 769069 +388964 871867 +388967 1.21076e+06 +388975 768306 +388978 1.01752e+06 +388983 900067 +389008 769158 +389008 865253 +389011 772656 +389017 1.07926e+06 +389028 971167 +389061 958158 +389092 900406 +389103 914481 +389106 1.22609e+06 +389125 754283 +389128 772011 +389144 900858 +389172 972136 +389178 839833 +389181 781947 +389186 772314 +389194 973708 +389206 886614 +389208 768719 +389222 1.11933e+06 +389231 942439 +389233 810961 +389236 755781 +389236 768803 +389250 892689 +389258 798469 +389281 769161 +389292 768619 +389314 898389 +389331 769461 +389339 768969 +389342 771778 +389342 808378 +389350 749064 +389350 1.05016e+06 +389378 764603 +389381 769486 +389381 995603 +389386 749422 +389392 769342 +389400 764953 +389414 769653 +389419 835725 +389431 768925 +389431 769569 +389431 845442 +389433 950983 +389453 769519 +389458 846806 +389458 1.1997e+06 +389467 769314 +389478 758847 +389481 817611 +389486 842800 +389489 834058 +389494 848539 +389517 923339 +389519 765783 +389536 947333 +389558 769458 +389561 903597 +389578 1.11859e+06 +389581 762106 +389592 858903 +389592 989683 +389606 890936 +389636 769911 +389636 934147 +389658 770964 +389667 946167 +389683 874056 +389686 773414 +389686 777358 +389689 1.12323e+06 +389694 773864 +389697 768803 +389700 904314 +389703 769422 +389711 770767 +389711 819144 +389717 952350 +389722 970222 +389736 758053 +389736 927431 +389747 748339 +389775 915047 +389778 770078 +389781 1.22838e+06 +389783 764925 +389786 799497 +389792 949683 +389794 765308 +389794 909806 +389806 749083 +389806 769372 +389806 771006 +389819 749583 +389822 946706 +389833 935683 +389858 1.19162e+06 +389864 819736 +389886 769817 +389886 783589 +389892 870822 +389906 770264 +389908 881625 +389917 748153 +389925 791242 +389939 769108 +389939 802322 +389939 1.05056e+06 +389953 1.10161e+06 +389958 889528 +389972 907383 +389975 819742 +389975 844964 +389981 772886 +389989 846267 +389989 895736 +389992 939533 +390006 747997 +390011 1.21021e+06 +390017 766878 +390017 820489 +390019 879089 +390031 769722 +390036 774008 +390036 876128 +390039 819892 +390044 768758 +390053 877392 +390061 856236 +390061 1.11861e+06 +390067 767794 +390078 838086 +390086 944633 +390089 754661 +390100 1.21422e+06 +390122 897911 +390125 846047 +390131 1.047e+06 +390144 748819 +390150 941983 +390167 846008 +390167 962889 +390169 942814 +390172 927372 +390175 1.22057e+06 +390178 850589 +390178 946167 +390181 918969 +390203 1.20817e+06 +390217 820292 +390217 844400 +390222 946317 +390236 946933 +390242 1.22674e+06 +390250 799358 +390250 998792 +390253 844175 +390253 885697 +390256 770767 +390264 769744 +390272 845850 +390275 820339 +390275 839197 +390278 946556 +390283 842178 +390286 749389 +390286 968311 +390294 895242 +390297 843664 +390303 770728 +390306 975939 +390319 765031 +390331 844519 +390344 843903 +390347 769078 +390347 871658 +390356 845692 +390356 1.04297e+06 +390375 946319 +390381 770933 +390383 804675 +390397 769933 +390397 901406 +390406 946167 +390417 760667 +390428 899517 +390431 1.08552e+06 +390431 1.22915e+06 +390444 953944 +390453 821306 +390483 956778 +390508 747583 +390514 845817 +390517 845342 +390536 765694 +390542 840531 +390561 985361 +390569 849014 +390575 769361 +390594 845475 +390597 948833 +390611 948194 +390619 883797 +390619 887481 +390622 789697 +390633 813953 +390639 1.0855e+06 +390644 1.09181e+06 +390681 830144 +390694 872600 +390694 1.00232e+06 +390703 765456 +390708 898561 +390714 845322 +390719 844728 +390719 852519 +390719 915700 +390722 897272 +390725 937169 +390750 844472 +390756 770022 +390758 953931 +390761 769581 +390769 841769 +390775 846031 +390794 770733 +390825 748242 +390833 782183 +390836 845086 +390839 767006 +390839 771531 +390892 893906 +390908 848500 +390911 944153 +390914 844958 +390917 1.04872e+06 +390919 768181 +390919 1.08448e+06 +390925 845475 +390928 846128 +390928 898039 +390936 1.11132e+06 +390953 874058 +390956 1.21551e+06 +390964 796811 +390992 768486 +390997 945783 +391008 1.20952e+06 +391011 747181 +391042 958583 +391064 844789 +391069 764853 +391072 765714 +391081 769981 +391094 876564 +391097 944444 +391097 950875 +391103 1.0835e+06 +391111 769328 +391111 967058 +391128 844728 +391133 755422 +391133 850881 +391136 826114 +391142 946272 +391156 775639 +391175 900442 +391178 772528 +391181 755592 +391200 885433 +391200 903283 +391211 846064 +391211 851314 +391219 977064 +391222 1.04917e+06 +391231 931967 +391233 825331 +391244 843617 +391247 852892 +391250 869794 +391253 1.11818e+06 +391278 1.2155e+06 +391297 898194 +391300 945619 +391308 894919 +391308 1.23165e+06 +391317 755253 +391319 755328 +391325 941983 +391331 884719 +391333 1.00863e+06 +391342 939825 +391350 858133 +391361 959514 +391361 1.03469e+06 +391367 777150 +391367 847092 +391369 766986 +391394 765481 +391397 771756 +391406 1.21616e+06 +391417 949383 +391433 772017 +391444 891086 +391450 843744 +391453 771444 +391458 774172 +391458 926836 +391458 1.2159e+06 +391489 794983 +391489 1.21666e+06 +391492 767756 +391503 1.23207e+06 +391517 779825 +391522 800406 +391525 847481 +391531 770672 +391531 846372 +391533 746933 +391542 945467 +391547 1.22148e+06 +391553 1.11818e+06 +391567 906178 +391569 846133 +391581 755247 +391589 1.08728e+06 +391592 843072 +391597 825269 +391597 1.21748e+06 +391611 803522 +391611 894936 +391617 847492 +391619 844569 +391625 766250 +391631 871992 +391639 1.19766e+06 +391642 894636 +391653 865264 +391667 765083 +391667 907808 +391697 918828 +391744 901431 +391753 842944 +391758 855731 +391772 767433 +391783 873936 +391792 987889 +391831 766406 +391831 945925 +391836 965714 +391847 938797 +391856 781636 +391864 873017 +391872 844464 +391872 844881 +391889 955694 +391908 843636 +391908 990283 +391911 1.06817e+06 +391928 844006 +391950 946819 +391958 952081 +391964 755492 +392008 804044 +392014 859214 +392019 963047 +392022 836117 +392025 944922 +392039 945544 +392047 760517 +392047 844281 +392053 843947 +392058 894044 +392089 760669 +392094 810519 +392094 935175 +392103 921378 +392106 843672 +392122 1.11019e+06 +392128 941225 +392133 970053 +392144 1.22008e+06 +392150 844556 +392153 953125 +392172 766375 +392181 930689 +392183 845508 +392192 1.2106e+06 +392214 944511 +392217 817975 +392231 845869 +392272 928464 +392272 1.11053e+06 +392275 822025 +392281 843542 +392283 766167 +392300 1.21076e+06 +392311 844658 +392319 843783 +392336 845458 +392339 866250 +392342 922806 +392347 992978 +392353 816314 +392369 850947 +392378 946958 +392378 1.20026e+06 +392403 768397 +392417 748156 +392419 764483 +392425 916453 +392458 750356 +392464 824786 +392464 845836 +392475 1.14888e+06 +392478 881633 +392478 957061 +392483 888622 +392486 873819 +392486 949000 +392506 765208 +392508 803125 +392508 1.06292e+06 +392519 844703 +392544 767003 +392561 844181 +392564 893481 +392567 802925 +392581 758375 +392617 1.21015e+06 +392619 848200 +392631 886297 +392633 803200 +392636 816294 +392639 1.03692e+06 +392667 815617 +392672 767986 +392681 844133 +392681 845231 +392683 1.11636e+06 +392692 803125 +392708 938342 +392719 767322 +392725 776369 +392725 915744 +392728 793647 +392736 882436 +392739 815731 +392739 977717 +392775 745750 +392786 939767 +392797 898817 +392806 803447 +392850 809686 +392864 802564 +392867 867625 +392869 844853 +392883 772042 +392886 803061 +392889 778600 +392903 766125 +392906 756347 +392931 839889 +392931 1.03067e+06 +392950 778608 +392958 859508 +392964 807772 +392964 1.19775e+06 +392989 968306 +392992 879925 +392997 756050 +392997 842633 +393000 852222 +393011 892850 +393022 904069 +393025 936772 +393039 857714 +393047 925125 +393061 1.02269e+06 +393078 1.23798e+06 +393092 764753 +393092 772975 +393108 914883 +393111 949222 +393122 846506 +393142 745253 +393142 776281 +393175 745950 +393183 843689 +393194 884528 +393194 895719 +393200 765158 +393222 952667 +393233 777531 +393236 836911 +393267 1.10964e+06 +393269 815486 +393278 745039 +393281 1.20182e+06 +393292 821014 +393331 829825 +393342 764397 +393356 878819 +393372 854836 +393383 764800 +393392 942258 +393397 852044 +393403 744778 +393406 767225 +393408 800192 +393419 787569 +393419 911950 +393433 954600 +393436 902125 +393450 835531 +393483 796711 +393483 974458 +393489 1.10851e+06 +393508 866669 +393508 1.0171e+06 +393519 833828 +393522 1.12576e+06 +393544 841272 +393567 978408 +393575 1.00441e+06 +393578 780403 +393583 934956 +393597 1.11586e+06 +393600 843100 +393603 1.04596e+06 +393633 765208 +393639 1.21692e+06 +393642 744233 +393647 998417 +393672 767956 +393678 943619 +393689 821325 +393689 1.07032e+06 +393703 947822 +393706 909050 +393708 842133 +393714 862611 +393722 1.04856e+06 +393736 769681 +393739 803486 +393742 767228 +393761 771550 +393772 765400 +393794 812586 +393817 752203 +393869 945808 +393878 889606 +393889 890800 +393914 876936 +393917 797486 +393931 793733 +393939 964133 +393942 765239 +393950 865625 +393956 803003 +393958 1.01052e+06 +393978 821294 +393983 793819 +394014 766022 +394022 1.07211e+06 +394036 769506 +394039 758678 +394050 1.14778e+06 +394064 887900 +394097 1.23354e+06 +394100 743650 +394111 949014 +394119 747428 +394125 764639 +394125 1.21712e+06 +394142 774108 +394153 814550 +394167 953333 +394175 766214 +394183 924381 +394186 775039 +394194 767806 +394200 894556 +394228 765850 +394231 850128 +394233 931303 +394239 928014 +394272 752344 +394278 864283 +394283 744961 +394300 778044 +394311 916750 +394344 929381 +394347 845369 +394356 1.21537e+06 +394369 904031 +394381 992647 +394383 942039 +394389 986944 +394406 925450 +394408 789742 +394408 885947 +394433 896517 +394453 838286 +394456 795467 +394458 1.23804e+06 +394464 897808 +394486 764181 +394489 910514 +394494 757167 +394522 747281 +394561 779642 +394561 981058 +394564 879961 +394575 777492 +394586 822319 +394619 821819 +394625 802183 +394650 874500 +394653 957361 +394667 874139 +394694 762047 +394694 768297 +394717 796836 +394728 765233 +394733 827394 +394736 814792 +394736 922097 +394736 1.18776e+06 +394739 829108 +394783 745756 +394800 845519 +394808 844578 +394808 920011 +394811 766442 +394817 1.06038e+06 +394825 1.11495e+06 +394831 883728 +394839 903714 +394847 820792 +394850 801428 +394853 790450 +394861 750261 +394861 773522 +394886 836369 +394889 961697 +394919 872672 +394922 809039 +394950 798153 +394961 881761 +394967 1.21551e+06 +395008 851864 +395008 897678 +395022 985464 +395031 787689 +395031 820847 +395036 801669 +395050 946331 +395069 847453 +395081 915286 +395106 797986 +395114 821636 +395125 984333 +395128 802492 +395136 749250 +395139 1.21555e+06 +395144 764114 +395147 867939 +395161 843764 +395203 890489 +395206 744861 +395208 861678 +395214 857769 +395219 947697 +395222 954006 +395225 887536 +395236 871250 +395244 1.22192e+06 +395250 1.1159e+06 +395258 871125 +395286 746483 +395297 801169 +395297 840867 +395297 1.19813e+06 +395306 790178 +395308 758078 +395308 803436 +395331 773150 +395331 880222 +395347 1.07782e+06 +395350 1.19752e+06 +395358 763486 +395367 871058 +395381 897631 +395392 863692 +395400 824072 +395419 771083 +395425 1.10735e+06 +395464 750253 +395469 1.11455e+06 +395478 816397 +395483 817931 +395483 943297 +395486 1.07656e+06 +395489 892944 +395492 760919 +395500 860797 +395506 1.07324e+06 +395514 1.10387e+06 +395522 797981 +395522 842333 +395522 940406 +395528 879394 +395539 832569 +395581 801819 +395581 860953 +395589 843042 +395592 742436 +395600 760717 +395608 753628 +395631 951214 +395642 809961 +395656 896572 +395656 944478 +395658 789806 +395672 972783 +395675 848161 +395689 771772 +395708 976622 +395717 754675 +395728 1.07536e+06 +395731 742319 +395744 1.06097e+06 +395753 769961 +395778 755892 +395778 822378 +395853 914008 +395856 902519 +395864 1.0643e+06 +395869 937958 +395886 894144 +395900 789500 +395911 973986 +395917 895803 +395917 897464 +395917 899528 +395928 788336 +395950 751706 +395956 748819 +395994 886078 +395994 1.1081e+06 +396000 759417 +396006 778208 +396006 829461 +396011 1.05032e+06 +396019 748431 +396025 820883 +396028 809369 +396031 743406 +396036 933422 +396044 764781 +396047 761156 +396047 768503 +396047 822117 +396047 828292 +396050 833956 +396067 758336 +396078 908050 +396089 777047 +396092 854464 +396108 945992 +396111 876961 +396117 799047 +396128 863742 +396133 1.05016e+06 +396144 787753 +396172 1.0495e+06 +396203 900439 +396206 777592 +396228 872833 +396236 774111 +396247 890189 +396264 1.11439e+06 +396283 1.05049e+06 +396289 902189 +396294 799561 +396297 904561 +396300 1.11634e+06 +396314 1.06522e+06 +396325 787847 +396333 1.05317e+06 +396344 799700 +396356 840708 +396356 849311 +396364 748028 +396375 1.06061e+06 +396400 891928 +396403 852622 +396403 1.06374e+06 +396414 787747 +396417 777203 +396417 1.04959e+06 +396428 741808 +396428 842867 +396442 775861 +396444 808578 +396444 868647 +396456 887381 +396458 799875 +396469 1.05025e+06 +396469 1.06951e+06 +396478 845272 +396478 1.04987e+06 +396486 818533 +396492 818622 +396494 827444 +396511 776911 +396514 753286 +396525 788972 +396528 787628 +396528 837869 +396533 755169 +396536 835639 +396536 917344 +396539 880261 +396547 775731 +396553 1.06828e+06 +396572 893894 +396578 771747 +396581 789286 +396581 837350 +396583 799867 +396600 750925 +396606 955261 +396611 768853 +396617 995700 +396619 741656 +396619 755667 +396636 794056 +396669 757272 +396697 742322 +396700 861314 +396714 981533 +396717 842528 +396733 856986 +396756 898467 +396761 897044 +396764 1.2024e+06 +396794 844292 +396803 874175 +396819 966594 +396831 776964 +396836 757500 +396842 1.10854e+06 +396847 839297 +396847 883064 +396861 749956 +396867 755847 +396883 1.23482e+06 +396892 865225 +396894 841689 +396911 967472 +396928 777450 +396928 787931 +396939 920428 +396942 910389 +396953 742592 +396956 788800 +396978 760631 +396989 781800 +397011 891231 +397017 824269 +397028 751122 +397044 773272 +397047 1.05081e+06 +397056 964167 +397061 842194 +397061 1.05697e+06 +397069 912067 +397083 913583 +397086 902281 +397089 907244 +397103 1.11836e+06 +397111 754706 +397119 888044 +397119 929481 +397128 889969 +397136 756097 +397136 825994 +397147 884722 +397156 756411 +397156 829531 +397156 886325 +397161 838778 +397183 829869 +397194 832653 +397211 822989 +397219 858892 +397253 899106 +397269 763269 +397278 764522 +397286 1.21836e+06 +397294 754683 +397294 1.04831e+06 +397322 748814 +397328 751319 +397339 902289 +397367 775353 +397378 767017 +397383 855719 +397383 1.04323e+06 +397389 798989 +397392 752244 +397392 755983 +397392 1.04984e+06 +397419 922583 +397422 924725 +397425 1.05013e+06 +397428 1.22012e+06 +397436 775542 +397436 939981 +397442 838086 +397444 770883 +397444 845322 +397453 843850 +397458 755469 +397469 925639 +397475 753108 +397475 1.22195e+06 +397478 815167 +397500 755000 +397508 944964 +397508 1.01532e+06 +397519 905350 +397528 790811 +397531 742233 +397531 1.05064e+06 +397536 765917 +397556 948722 +397556 1.05221e+06 +397558 775781 +397561 993236 +397572 896536 +397575 741067 +397589 841917 +397589 1.04427e+06 +397592 949494 +397606 865264 +397611 799817 +397611 868119 +397622 938042 +397625 811156 +397625 872292 +397656 808714 +397658 903989 +397661 755097 +397661 892617 +397661 1.05077e+06 +397669 990314 +397675 896806 +397683 861581 +397686 766800 +397689 820922 +397714 888742 +397761 859572 +397769 896792 +397792 987847 +397811 769636 +397817 928900 +397819 860503 +397831 950897 +397842 749925 +397844 930733 +397850 857694 +397853 759792 +397872 982097 +397894 769983 +397903 777281 +397911 749294 +397914 741956 +397928 873708 +397931 767306 +397931 1.23247e+06 +397942 915231 +397944 751492 +397953 935522 +397956 855264 +397969 885917 +397972 843114 +397975 842536 +397986 879858 +397989 827011 +397992 882831 +397994 884622 +398006 754600 +398017 896436 +398022 750644 +398022 862672 +398028 828064 +398028 1.05087e+06 +398031 798081 +398036 876736 +398058 920414 +398064 838869 +398067 1.01042e+06 +398069 822972 +398072 770117 +398072 820714 +398078 874950 +398089 755492 +398092 754869 +398094 893972 +398097 825222 +398097 863225 +398106 1.20468e+06 +398114 749833 +398119 771375 +398122 852089 +398125 851717 +398128 793569 +398136 790250 +398161 1.11855e+06 +398169 751556 +398169 912422 +398181 970506 +398183 1.00528e+06 +398192 754189 +398200 750067 +398208 840194 +398219 758278 +398222 1.04933e+06 +398231 787183 +398242 749981 +398244 976322 +398247 797547 +398253 836344 +398267 750158 +398269 805667 +398275 754147 +398278 779036 +398289 848903 +398303 752408 +398308 772314 +398311 905594 +398314 757578 +398339 998911 +398342 960639 +398367 844114 +398367 1.04959e+06 +398367 1.05037e+06 +398381 749653 +398381 751531 +398383 854389 +398386 860253 +398394 750739 +398403 825461 +398403 889547 +398411 966469 +398428 828047 +398433 863978 +398439 750231 +398439 841247 +398442 775586 +398442 895394 +398453 826008 +398461 845397 +398467 757119 +398467 799000 +398481 861725 +398483 810369 +398489 868022 +398494 753561 +398514 1.04998e+06 +398522 750683 +398525 894086 +398525 955356 +398528 894633 +398536 831831 +398536 892419 +398539 890839 +398539 891661 +398556 767078 +398556 767689 +398569 847933 +398583 748033 +398597 866425 +398600 753447 +398600 808156 +398611 819069 +398631 790583 +398636 770561 +398639 864669 +398647 750556 +398653 776128 +398658 751792 +398664 750286 +398675 750950 +398681 1.04971e+06 +398692 753828 +398728 899211 +398744 768661 +398769 870444 +398772 750650 +398772 797022 +398775 843022 +398781 751211 +398781 839369 +398783 750931 +398783 799250 +398789 829508 +398811 753242 +398814 830931 +398831 767108 +398842 827536 +398842 874086 +398850 906558 +398856 1.04987e+06 +398864 769850 +398878 900078 +398892 840267 +398892 943617 +398900 754758 +398900 861572 +398906 841989 +398906 887281 +398908 750733 +398908 752842 +398911 749222 +398914 750381 +398917 751167 +398917 753000 +398919 855769 +398922 747025 +398922 997067 +398925 797472 +398936 896047 +398939 968792 +398956 876519 +398964 801794 +398964 824203 +398967 799747 +398969 761639 +398975 830869 +398978 843064 +398992 820064 +398994 766406 +399000 752894 +399000 825342 +399008 750850 +399017 753289 +399019 753503 +399019 846750 +399022 958006 +399033 844856 +399044 844017 +399064 752719 +399089 766372 +399097 753239 +399097 878211 +399111 851617 +399117 752775 +399122 752542 +399136 868011 +399144 939619 +399147 882733 +399161 765847 +399167 753881 +399175 797175 +399181 750717 +399183 752594 +399203 807433 +399206 789581 +399206 1.05086e+06 +399214 752883 +399219 885719 +399231 772989 +399242 838089 +399258 751200 +399267 740775 +399267 741342 +399278 1.22178e+06 +399283 752742 +399286 749442 +399289 853703 +399292 752967 +399303 772483 +399322 858481 +399325 779992 +399325 889511 +399328 890619 +399336 824725 +399356 914097 +399358 741714 +399361 840256 +399375 776614 +399381 752722 +399386 888656 +399389 741933 +399389 752558 +399403 820133 +399417 948300 +399419 741503 +399419 742047 +399425 745444 +399442 740733 +399444 899372 +399453 799958 +399456 752617 +399472 750669 +399478 810575 +399481 743611 +399486 741375 +399486 874597 +399492 759739 +399508 862619 +399511 902122 +399522 751642 +399525 767517 +399531 1.119e+06 +399536 741983 +399542 895486 +399542 1.12119e+06 +399547 759972 +399547 828122 +399556 849175 +399556 860139 +399569 858053 +399583 841722 +399586 759197 +399594 825958 +399606 756058 +399608 897239 +399611 829989 +399614 1.0551e+06 +399617 824914 +399625 746792 +399625 767281 +399625 843281 +399633 752506 +399667 758000 +399667 828856 +399675 872775 +399678 847092 +399681 753417 +399686 891622 +399689 829378 +399697 815367 +399700 812994 +399703 740692 +399708 807508 +399719 746833 +399719 765203 +399742 758203 +399747 938008 +399756 1.11784e+06 +399778 796147 +399778 1.05131e+06 +399781 767333 +399783 861181 +399786 820036 +399814 740667 +399819 888228 +399825 772497 +399831 758242 +399831 761844 +399836 768228 +399853 1.0482e+06 +399861 882589 +399867 830617 +399869 951447 +399872 907633 +399881 807317 +399881 811767 +399928 747881 +399936 817342 +399936 1.05089e+06 +399947 844081 +399956 826744 +399958 866200 +399964 1.11842e+06 +399967 749931 +399967 795861 +399969 767069 +399975 857467 +399978 763544 +400017 768506 +400025 799983 +400064 757036 +400069 881581 +400083 752608 +400083 790783 +400089 771158 +400103 799011 +400108 892822 +400114 750153 +400114 783736 +400144 743117 +400150 1.0527e+06 +400158 741453 +400161 810728 +400175 904242 +400178 795897 +400181 807344 +400186 785042 +400192 828794 +400208 980697 +400214 1.22099e+06 +400217 767283 +400228 824447 +400242 798908 +400247 801003 +400250 880733 +400272 808153 +400278 748694 +400278 885733 +400289 756211 +400292 810392 +400297 746189 +400314 909606 +400322 859125 +400331 796617 +400333 831583 +400336 765047 +400347 879581 +400361 746183 +400361 755142 +400364 889569 +400375 1.07912e+06 +400378 763058 +400392 764311 +400392 910692 +400394 842033 +400411 868744 +400419 754767 +400422 876386 +400428 914975 +400444 1.11731e+06 +400456 860086 +400456 878306 +400467 941356 +400469 796547 +400481 901550 +400483 864692 +400492 1.01532e+06 +400497 849397 +400503 1.05049e+06 +400506 749539 +400506 775206 +400514 874333 +400514 945239 +400525 806286 +400531 1.11673e+06 +400547 882517 +400553 840261 +400569 765525 +400581 824014 +400589 1.06388e+06 +400608 956017 +400614 876381 +400631 767042 +400639 807211 +400650 877019 +400653 749194 +400653 800239 +400675 745311 +400681 749011 +400681 825197 +400683 858483 +400692 807839 +400697 753167 +400706 807611 +400711 748653 +400717 740547 +400736 1.04642e+06 +400756 798983 +400758 1.02223e+06 +400764 829439 +400789 936164 +400792 753019 +400794 798658 +400811 750900 +400819 830253 +400831 897381 +400833 798483 +400847 1.04812e+06 +400847 1.04939e+06 +400861 918131 +400861 1.05939e+06 +400869 797508 +400875 805706 +400875 870597 +400878 1.0881e+06 +400883 912836 +400886 829167 +400889 985192 +400911 740483 +400911 795878 +400931 830181 +400942 759117 +400953 876475 +400958 751256 +400958 807247 +400961 989522 +400975 993617 +400978 742181 +400992 1.04937e+06 +401003 795872 +401003 798408 +401003 895908 +401006 748522 +401011 800675 +401017 760856 +401028 846331 +401036 798694 +401053 856803 +401072 808414 +401075 832675 +401078 740569 +401083 837525 +401083 961542 +401083 1.04519e+06 +401092 910175 +401097 765036 +401100 867719 +401106 882072 +401108 767161 +401108 770353 +401119 800175 +401125 855969 +401125 1.04936e+06 +401131 872625 +401139 878731 +401139 879561 +401150 1.11654e+06 +401161 877783 +401164 882433 +401167 800086 +401172 821194 +401172 843539 +401178 804106 +401183 771903 +401189 788183 +401203 1.23822e+06 +401211 887453 +401211 905631 +401214 753403 +401214 820108 +401222 886453 +401222 966622 +401222 1.02725e+06 +401236 876533 +401239 860133 +401244 798800 +401244 876300 +401250 798667 +401250 916250 +401261 740497 +401261 829292 +401292 798683 +401292 994550 +401300 765708 +401303 755153 +401303 1.11578e+06 +401311 952314 +401314 750678 +401319 740350 +401322 844308 +401350 862206 +401364 747292 +401372 971803 +401375 998292 +401378 798983 +401392 748150 +401394 966589 +401408 977225 +401411 806883 +401417 873947 +401447 842425 +401461 747122 +401469 789122 +401483 798881 +401483 893647 +401489 1.02962e+06 +401494 810664 +401497 754022 +401497 771286 +401500 742139 +401503 740314 +401511 762514 +401511 799078 +401519 749169 +401528 766031 +401533 740286 +401536 826853 +401536 889644 +401539 797414 +401544 752219 +401544 807106 +401567 758331 +401567 762025 +401572 760508 +401572 763072 +401597 790667 +401606 1.03214e+06 +401614 790292 +401633 763953 +401633 1.10402e+06 +401639 959447 +401653 1.1161e+06 +401664 975856 +401667 807000 +401669 749181 +401672 1.05101e+06 +401675 921725 +401697 805939 +401708 740278 +401719 849814 +401733 798578 +401736 802378 +401736 854942 +401742 751072 +401744 749231 +401756 1.01012e+06 +401758 860217 +401767 755481 +401778 745839 +401783 740222 +401783 751289 +401786 834356 +401786 1.22235e+06 +401794 1.18472e+06 +401797 761792 +401808 754294 +401825 806914 +401831 798244 +401842 755383 +401856 754519 +401872 767303 +401878 851275 +401881 869039 +401889 852042 +401906 747028 +401917 852689 +401922 740164 +401933 853864 +401933 863606 +401944 1.10061e+06 +401947 925831 +401950 779833 +401950 866672 +401953 884042 +401964 762014 +401964 807753 +401989 754767 +401994 848053 +402000 740283 +402014 771892 +402017 980675 +402019 848092 +402019 1.00625e+06 +402022 740125 +402022 896981 +402022 931250 +402031 799264 +402053 742142 +402056 805569 +402067 751000 +402078 750731 +402078 799472 +402089 789839 +402097 797672 +402106 812664 +402108 752786 +402108 767914 +402114 761236 +402114 885061 +402144 846369 +402150 750111 +402150 1.04822e+06 +402153 782447 +402153 860264 +402169 747433 +402178 945381 +402186 808731 +402192 796097 +402200 744736 +402203 740125 +402203 889619 +402225 844844 +402228 857789 +402231 835575 +402233 769539 +402247 1.05271e+06 +402264 806517 +402269 789367 +402275 903594 +402297 1.00838e+06 +402300 909500 +402306 1.04072e+06 +402314 756344 +402319 927083 +402322 768850 +402331 761375 +402333 740161 +402333 910625 +402339 1.11658e+06 +402344 1.00417e+06 +402353 768417 +402361 740011 +402389 891231 +402394 756514 +402397 769203 +402397 788353 +402403 795769 +402411 760567 +402411 768944 +402414 752842 +402417 881842 +402419 743017 +402428 778933 +402431 740011 +402431 792378 +402433 886425 +402436 788492 +402450 755956 +402453 756500 +402456 748464 +402464 802117 +402469 867250 +402472 796775 +402483 996331 +402497 788492 +402503 1.03799e+06 +402525 756778 +402561 754642 +402589 768322 +402589 1.03623e+06 +402594 892333 +402600 742742 +402625 801875 +402628 769142 +402628 856758 +402639 744917 +402644 758044 +402647 806264 +402653 767086 +402681 967467 +402686 929531 +402692 798900 +402694 745236 +402694 857281 +402700 873867 +402708 798994 +402708 807817 +402719 806097 +402719 818597 +402722 816061 +402728 809969 +402736 764064 +402736 768847 +402750 769158 +402750 1.06958e+06 +402753 768483 +402753 817511 +402761 748494 +402769 858419 +402783 795450 +402794 753875 +402794 865108 +402808 742517 +402819 1.00165e+06 +402819 1.04777e+06 +402822 860411 +402842 841556 +402858 759847 +402858 766506 +402872 788897 +402883 752094 +402883 872939 +402892 850289 +402903 740181 +402908 788692 +402911 795472 +402917 793894 +402917 909189 +402922 798819 +402942 872489 +402942 904278 +402961 740514 +402967 784500 +402969 1.11694e+06 +402972 743586 +402986 830681 +402986 894850 +402989 751814 +402989 788925 +402992 839689 +402994 1.09988e+06 +403000 900608 +403008 852419 +403014 795392 +403031 969886 +403042 739928 +403042 741008 +403042 999000 +403044 826964 +403050 878006 +403056 896028 +403058 880211 +403064 1.21231e+06 +403078 759658 +403083 881558 +403083 1.05081e+06 +403089 765936 +403106 759397 +403106 789389 +403111 783244 +403117 753256 +403119 839158 +403133 889736 +403139 855006 +403144 891697 +403147 883500 +403156 798314 +403161 745142 +403172 746203 +403181 740156 +403200 756106 +403211 793797 +403217 806100 +403219 753283 +403231 793128 +403244 797014 +403247 798925 +403247 805778 +403253 809014 +403272 760114 +403275 805961 +403278 906069 +403281 758911 +403281 796156 +403283 747911 +403289 796414 +403294 759656 +403294 765156 +403294 1.04855e+06 +403300 760808 +403303 739819 +403325 984483 +403336 756378 +403336 759478 +403353 820069 +403356 759272 +403358 783911 +403358 798700 +403367 740475 +403367 754694 +403369 1.04912e+06 +403372 764758 +403375 759800 +403375 797136 +403386 856444 +403386 953931 +403392 767258 +403403 853508 +403408 764117 +403433 1.1172e+06 +403444 866653 +403453 756333 +403456 763903 +403461 742883 +403461 948722 +403469 925689 +403478 798644 +403486 746594 +403486 788839 +403489 851500 +403489 1.04701e+06 +403494 762136 +403506 798864 +403514 843739 +403514 903244 +403517 761347 +403519 887642 +403525 744406 +403539 753053 +403553 800497 +403561 801103 +403583 814344 +403592 914344 +403606 740386 +403611 837597 +403614 739744 +403617 761844 +403642 749517 +403642 1.11738e+06 +403647 800225 +403650 804142 +403658 749433 +403667 961958 +403672 769314 +403672 787917 +403678 810056 +403697 806342 +403706 799750 +403708 802350 +403717 752019 +403719 739994 +403719 752931 +403722 979711 +403725 895472 +403733 756294 +403742 867689 +403753 807039 +403756 823972 +403764 1.04692e+06 +403767 744250 +403769 1.11795e+06 +403772 1.05521e+06 +403781 939367 +403789 745469 +403792 876686 +403794 860886 +403803 790756 +403814 798600 +403817 824925 +403819 803931 +403831 798067 +403844 778825 +403856 797592 +403858 1.2228e+06 +403875 1.04561e+06 +403881 759183 +403886 786725 +403886 854994 +403908 754925 +403908 798103 +403917 743989 +403917 1.1185e+06 +403922 799003 +403922 800911 +403928 958386 +403931 813467 +403931 843761 +403931 901547 +403933 813339 +403933 824858 +403936 779414 +403936 797864 +403936 969225 +403939 799122 +403944 841728 +403947 814072 +403956 798389 +403958 800333 +403958 810850 +403964 913389 +403969 791519 +403969 888706 +403972 913847 +403978 1.05074e+06 +403981 770233 +403983 798900 +403986 794222 +403989 798411 +403997 746347 +404008 935803 +404019 835453 +404022 755875 +404031 797783 +404036 739919 +404058 798253 +404058 799122 +404064 755022 +404075 896428 +404078 740347 +404078 749786 +404086 759219 +404086 798392 +404086 800836 +404089 829556 +404092 925675 +404106 753786 +404125 798794 +404128 847764 +404131 795706 +404142 790203 +404142 799881 +404142 822411 +404147 742300 +404147 743658 +404153 856506 +404156 741914 +404164 1.20652e+06 +404167 868750 +404169 865947 +404172 798653 +404175 862714 +404183 1.01371e+06 +404189 805897 +404197 798503 +404203 917194 +404208 745611 +404208 894144 +404233 784342 +404233 1.04709e+06 +404236 798831 +404256 800942 +404258 786203 +404258 869081 +404258 897792 +404264 832969 +404264 907925 +404267 885261 +404272 783892 +404272 861256 +404311 792611 +404317 981056 +404331 742000 +404333 807719 +404336 893131 +404339 830739 +404344 800825 +404344 849778 +404347 892178 +404350 800664 +404369 843797 +404378 813733 +404383 798433 +404400 816992 +404403 953775 +404403 993694 +404406 799961 +404417 741303 +404417 753419 +404417 798822 +404456 950658 +404461 800678 +404464 741786 +404464 743864 +404469 759667 +404483 1.22297e+06 +404503 831886 +404511 853700 +404514 743083 +404533 1.11777e+06 +404539 758183 +404556 1.09528e+06 +404567 742469 +404578 921711 +404592 743614 +404592 906717 +404592 963772 +404597 785919 +404597 795233 +404603 880953 +404608 799511 +404614 836700 +404642 806011 +404650 878964 +404656 800658 +404672 876683 +404678 841806 +404681 769322 +404700 753208 +404711 838928 +404742 957333 +404756 854944 +404769 930031 +404772 1.09586e+06 +404775 1.04901e+06 +404778 742911 +404781 785411 +404781 859667 +404783 991264 +404792 792000 +404797 846283 +404797 856278 +404800 799786 +404803 863947 +404814 789189 +404814 969603 +404819 757581 +404822 785519 +404842 889936 +404847 780106 +404850 787250 +404850 1.06831e+06 +404861 744522 +404864 794517 +404864 861336 +404872 856131 +404875 944108 +404897 814458 +404897 1.11938e+06 +404906 870964 +404914 799050 +404919 1.07257e+06 +404933 798608 +404936 843147 +404944 896517 +404950 819847 +404967 806069 +404986 989475 +404992 743994 +405006 828936 +405008 759703 +405008 800678 +405031 786306 +405033 757017 +405042 799492 +405064 798433 +405067 742658 +405067 837481 +405083 858256 +405083 868417 +405100 800947 +405108 756033 +405114 753908 +405122 748597 +405122 1.11474e+06 +405142 889906 +405153 1.07546e+06 +405158 755556 +405169 1.01643e+06 +405183 801669 +405186 783950 +405194 808842 +405197 872478 +405206 814742 +405208 925278 +405211 873783 +405217 980550 +405219 1.11938e+06 +405222 800344 +405247 1.11863e+06 +405261 750619 +405267 996333 +405269 975956 +405275 894925 +405289 794617 +405294 891772 +405303 1.04711e+06 +405308 1.12298e+06 +405317 801692 +405322 914147 +405344 835206 +405364 801847 +405369 893575 +405394 754972 +405394 769611 +405408 745881 +405417 797994 +405431 743636 +405433 787881 +405433 791625 +405489 768122 +405489 784294 +405489 845703 +405492 828275 +405500 913847 +405508 948192 +405511 801931 +405528 905061 +405531 797575 +405533 745319 +405539 852775 +405544 819181 +405544 1.23182e+06 +405556 759822 +405561 908658 +405575 828625 +405581 900350 +405589 791514 +405622 1.11929e+06 +405631 802086 +405639 888989 +405644 871069 +405647 878931 +405667 767008 +405669 886164 +405675 882478 +405675 896406 +405678 841936 +405683 745389 +405686 750950 +405694 746333 +405694 774031 +405697 773972 +405697 797650 +405717 807267 +405719 857692 +405725 744931 +405725 898133 +405728 810858 +405733 766917 +405736 802358 +405742 746103 +405747 769894 +405764 1.24263e+06 +405772 742286 +405789 861903 +405792 744119 +405794 753411 +405800 797669 +405814 795667 +405825 1.04731e+06 +405833 909692 +405844 1.02302e+06 +405853 1.05084e+06 +405861 795317 +405861 983881 +405867 1.22391e+06 +405875 866750 +405883 736583 +405883 824250 +405886 831286 +405889 737294 +405892 744722 +405892 765528 +405892 802253 +405900 985058 +405903 998606 +405917 1.11883e+06 +405942 751947 +405947 815269 +405961 795558 +405969 880381 +405981 795614 +405983 760936 +405983 1.24156e+06 +406000 1.12464e+06 +406006 839753 +406011 813614 +406014 753956 +406014 797600 +406028 787089 +406028 795650 +406028 806492 +406028 868672 +406033 783250 +406042 736558 +406044 956575 +406050 777258 +406056 978589 +406058 889872 +406081 742781 +406081 797414 +406086 865400 +406097 1.11938e+06 +406111 1.11899e+06 +406114 798372 +406117 767189 +406128 894592 +406131 805631 +406150 896222 +406156 737300 +406167 873208 +406172 855047 +406175 896003 +406183 806044 +406186 805775 +406189 980969 +406197 1.11809e+06 +406200 825108 +406200 966289 +406211 904619 +406211 986572 +406214 791528 +406219 742450 +406225 808381 +406228 737247 +406228 939339 +406239 737089 +406256 1.03207e+06 +406264 753461 +406267 761931 +406283 763875 +406283 876961 +406297 892747 +406297 913150 +406300 744278 +406300 893325 +406300 1.00515e+06 +406306 761714 +406308 929244 +406319 737131 +406336 744078 +406350 802283 +406353 822333 +406356 1.04755e+06 +406358 782961 +406361 736819 +406361 911672 +406364 829692 +406367 791444 +406367 802403 +406369 975850 +406378 744514 +406386 736406 +406386 775689 +406386 1.11938e+06 +406403 917428 +406408 743111 +406408 743839 +406408 748817 +406411 1.02626e+06 +406414 887833 +406417 748364 +406419 736700 +406422 798511 +406425 742858 +406428 787731 +406428 915644 +406431 736961 +406431 775808 +406431 1.1128e+06 +406442 974500 +406444 804164 +406458 805981 +406461 1.11497e+06 +406469 836097 +406472 895911 +406472 971131 +406500 814522 +406503 896519 +406511 812992 +406531 815811 +406536 972858 +406539 750869 +406542 841508 +406547 736722 +406547 754750 +406547 761011 +406553 743903 +406572 961861 +406575 735836 +406578 849519 +406583 743000 +406586 736417 +406589 743478 +406594 743233 +406597 754772 +406597 802394 +406600 1.11996e+06 +406608 862419 +406625 787803 +406628 735519 +406631 868694 +406639 742111 +406639 775961 +406642 737089 +406642 742636 +406642 904347 +406644 742647 +406658 734886 +406661 806233 +406661 895800 +406669 751578 +406669 947211 +406669 1.11887e+06 +406672 813550 +406678 1.11938e+06 +406686 735275 +406686 741147 +406689 1.11824e+06 +406700 754958 +406706 782389 +406722 743578 +406733 805767 +406733 845189 +406733 921619 +406739 857214 +406764 742911 +406767 818706 +406767 958589 +406786 735894 +406786 752372 +406789 734175 +406789 736744 +406789 910728 +406792 804950 +406800 965061 +406800 1.22351e+06 +406803 734556 +406806 734747 +406806 1.2237e+06 +406814 734003 +406814 820219 +406825 931208 +406828 854272 +406833 744431 +406836 735106 +406842 746361 +406844 803292 +406844 896800 +406850 737022 +406856 761958 +406858 926772 +406861 754972 +406867 733739 +406867 841378 +406872 802717 +406875 802542 +406911 735636 +406914 735339 +406917 811814 +406917 897950 +406925 896278 +406928 837856 +406933 735081 +406936 751906 +406936 895889 +406953 803050 +406956 733261 +406958 800119 +406964 761692 +406967 749411 +406975 734256 +406983 744019 +406994 990811 +407000 802683 +407000 1.1181e+06 +407003 735933 +407008 734625 +407008 737133 +407011 742306 +407022 802867 +407036 894072 +407039 1.05008e+06 +407044 963872 +407047 736506 +407061 733067 +407061 838439 +407064 839214 +407064 933650 +407069 749564 +407069 815983 +407072 736764 +407086 732817 +407089 843536 +407092 1.12101e+06 +407106 902661 +407139 775908 +407139 1.16103e+06 +407142 733819 +407142 737006 +407142 740064 +407147 942350 +407150 880061 +407164 733222 +407167 914500 +407172 734842 +407181 733547 +407186 745697 +407189 1.11888e+06 +407192 736889 +407194 748361 +407194 761161 +407194 993717 +407206 734406 +407208 740178 +407214 892728 +407219 954806 +407236 737053 +407242 737156 +407244 815222 +407250 732458 +407256 753944 +407258 735147 +407264 788069 +407267 736347 +407278 730981 +407281 740781 +407294 760858 +407297 732108 +407297 811056 +407303 803103 +407303 919622 +407311 948994 +407311 1.22941e+06 +407317 1.06283e+06 +407319 731861 +407322 906644 +407336 778858 +407336 827900 +407350 736883 +407356 741728 +407358 730825 +407361 732631 +407372 1.14037e+06 +407383 730511 +407386 851717 +407386 995372 +407392 890164 +407394 743044 +407394 803294 +407397 937475 +407403 753100 +407408 736631 +407408 743842 +407408 752575 +407414 743600 +407417 887197 +407419 950381 +407431 731931 +407433 888814 +407439 740328 +407442 734825 +407453 867647 +407464 741567 +407469 909039 +407472 731703 +407472 885147 +407472 895739 +407478 785347 +407483 741622 +407483 756122 +407483 956472 +407483 988444 +407486 847911 +407492 736411 +407494 868717 +407503 786711 +407517 763364 +407517 818394 +407517 924147 +407519 803194 +407519 884111 +407525 736108 +407536 860689 +407536 882919 +407539 733608 +407539 752625 +407539 798103 +407542 755992 +407544 863567 +407553 736672 +407564 736453 +407567 881911 +407569 729397 +407569 933186 +407581 870417 +407583 736353 +407583 825156 +407589 735700 +407594 825903 +407597 744175 +407608 871508 +407608 1.1189e+06 +407617 733297 +407625 734536 +407631 769397 +407633 872936 +407656 730156 +407656 953719 +407664 894678 +407667 728525 +407667 879922 +407669 729967 +407672 742053 +407683 735256 +407683 741458 +407692 731156 +407692 800631 +407692 875639 +407694 740208 +407694 838228 +407700 1.24142e+06 +407703 874453 +407706 737181 +407706 742331 +407714 846156 +407719 983692 +407733 736436 +407739 742739 +407742 729433 +407744 785536 +407744 970503 +407756 777928 +407758 746011 +407761 877364 +407764 734678 +407775 929436 +407778 899664 +407786 900147 +407794 740242 +407797 978119 +407800 803386 +407808 736769 +407808 997411 +407811 732467 +407811 737250 +407811 766733 +407839 762306 +407842 746972 +407858 747806 +407861 737142 +407867 737269 +407869 730094 +407869 737372 +407872 812828 +407875 827367 +407878 740147 +407878 743886 +407883 741336 +407886 736000 +407886 736478 +407886 842039 +407889 765592 +407892 836433 +407894 740569 +407906 732022 +407906 893606 +407914 762839 +407919 740042 +407933 734156 +407933 764728 +407933 778603 +407936 736275 +407936 741506 +407942 736608 +407942 737489 +407944 801369 +407953 814736 +407958 743153 +407961 891972 +407972 759697 +407978 737000 +407978 858206 +407981 783975 +407986 736803 +407986 742394 +407989 768625 +407989 813786 +407989 816956 +407994 762128 +407994 780544 +407997 736514 +407997 756622 +407997 764281 +408000 966667 +408003 727903 +408006 737289 +408014 756106 +408017 835106 +408019 728414 +408022 1.24162e+06 +408025 737047 +408031 726150 +408031 749900 +408042 740125 +408042 763408 +408042 764653 +408042 821958 +408044 904017 +408050 819353 +408053 742042 +408067 737039 +408067 741858 +408072 736817 +408075 911128 +408083 829756 +408103 795297 +408106 778186 +408119 741247 +408122 730789 +408125 761419 +408153 730456 +408161 736978 +408164 736375 +408164 795222 +408167 964300 +408175 730006 +408178 800144 +408192 831306 +408197 737356 +408203 762011 +408203 879778 +408206 742942 +408206 985997 +408214 739881 +408217 744814 +408222 741603 +408231 726100 +408236 733992 +408236 759806 +408239 735481 +408244 726667 +408244 742850 +408250 783514 +408250 911564 +408256 732031 +408256 736986 +408258 742094 +408261 735025 +408264 741072 +408269 739761 +408272 832814 +408275 762072 +408292 853356 +408297 742406 +408297 750781 +408311 730300 +408317 758828 +408317 768361 +408325 1.15762e+06 +408336 757142 +408336 953081 +408339 740975 +408339 805406 +408342 740092 +408342 803225 +408347 736958 +408350 731317 +408356 803997 +408375 796322 +408381 857303 +408386 735656 +408389 898864 +408397 742769 +408403 740911 +408406 725819 +408408 743022 +408411 740456 +408417 962933 +408419 1.01725e+06 +408428 732933 +408431 737153 +408436 817642 +408447 737022 +408450 806147 +408453 733356 +408456 740883 +408475 776864 +408481 739981 +408481 752919 +408483 799622 +408486 768200 +408486 1.11906e+06 +408489 736453 +408500 782708 +408508 739706 +408517 737192 +408519 731544 +408528 731156 +408528 740425 +408531 741142 +408533 734119 +408539 748294 +408542 1.06965e+06 +408556 1.11892e+06 +408558 732011 +408561 731878 +408567 734700 +408567 741289 +408569 740219 +408581 740811 +408583 731000 +408583 741642 +408589 934972 +408597 999869 +408611 798956 +408614 739886 +408617 896786 +408622 736342 +408625 767947 +408625 856017 +408639 802592 +408644 758114 +408644 765528 +408644 864997 +408644 913144 +408656 735325 +408656 752069 +408658 907483 +408661 860775 +408664 730361 +408664 873636 +408667 1.24082e+06 +408672 980039 +408678 868789 +408681 734261 +408681 777469 +408681 975917 +408686 730019 +408686 752553 +408686 823183 +408689 725181 +408689 733656 +408689 742086 +408694 845842 +408700 961403 +408708 735114 +408711 747344 +408711 984678 +408714 734572 +408717 1.11891e+06 +408728 787244 +408758 745428 +408758 757328 +408758 814025 +408761 735769 +408761 740303 +408767 733250 +408772 807556 +408778 798467 +408778 882692 +408781 888611 +408789 769872 +408794 751842 +408803 879550 +408806 752150 +408806 851664 +408814 741136 +408814 826619 +408817 945617 +408822 740836 +408825 1.2166e+06 +408831 854975 +408831 895025 +408831 1.23983e+06 +408839 745625 +408842 723900 +408842 729378 +408853 739528 +408858 740439 +408858 782211 +408861 732578 +408869 735556 +408881 803383 +408883 738286 +408883 806942 +408894 1.1188e+06 +408897 741953 +408897 782286 +408897 815978 +408908 724642 +408908 774769 +408908 928150 +408917 767978 +408928 739731 +408931 745822 +408939 1.11901e+06 +408947 744333 +408953 736014 +408953 738075 +408953 838889 +408975 740164 +408983 956711 +408989 740931 +408989 747069 +408994 973992 +408997 734153 +409003 807642 +409008 733436 +409011 745147 +409022 817342 +409025 740622 +409025 744075 +409028 747094 +409033 731583 +409033 734603 +409039 741189 +409044 890344 +409050 742103 +409064 842967 +409069 970986 +409072 740756 +409083 902847 +409097 738083 +409100 759917 +409106 735625 +409114 737828 +409114 906472 +409117 859244 +409117 871553 +409125 733014 +409133 759669 +409133 777786 +409153 811061 +409167 741722 +409167 847028 +409169 726625 +409175 770481 +409175 965281 +409178 1.11399e+06 +409181 1.11871e+06 +409186 922228 +409192 892911 +409194 840569 +409222 894861 +409225 900144 +409228 810192 +409231 750969 +409231 809939 +409250 983417 +409253 730478 +409253 739633 +409253 742769 +409256 731414 +409258 746353 +409269 913994 +409275 739978 +409278 733603 +409278 737522 +409281 759150 +409286 740403 +409294 1.0016e+06 +409297 897575 +409297 949758 +409311 738992 +409319 909469 +409322 843389 +409328 724147 +409328 746597 +409328 803636 +409350 740194 +409353 879344 +409356 741867 +409367 871508 +409378 723014 +409381 738325 +409403 741322 +409406 739972 +409414 739597 +409417 777853 +409436 789711 +409444 740758 +409461 874533 +409464 730697 +409467 1.24099e+06 +409469 730300 +409478 903100 +409478 903711 +409481 797431 +409481 839611 +409486 737331 +409492 741542 +409494 725819 +409508 730844 +409519 764600 +409525 833825 +409550 741864 +409558 739317 +409561 729683 +409567 744983 +409572 729081 +409572 739639 +409583 759750 +409586 740372 +409586 759964 +409589 768994 +409597 729967 +409597 730683 +409597 731300 +409608 739906 +409622 828544 +409625 853733 +409628 741333 +409628 964408 +409633 711833 +409633 766131 +409636 813314 +409636 915578 +409644 768847 +409689 737131 +409700 816967 +409714 821100 +409731 739619 +409731 1.17735e+06 +409736 721442 +409747 848683 +409756 785253 +409761 740267 +409778 803453 +409781 817822 +409792 741169 +409806 736842 +409806 1.11887e+06 +409817 951039 +409819 931983 +409828 841994 +409836 739803 +409853 868794 +409858 747425 +409858 796133 +409867 751950 +409869 818939 +409883 1.02264e+06 +409892 741411 +409900 752167 +409900 887292 +409900 947406 +409911 725347 +409911 740331 +409919 760569 +409939 743039 +409942 921672 +409953 740125 +409956 723417 +409964 741017 +409978 722931 +409978 961619 +409981 739622 +409994 751817 +410006 857686 +410011 986072 +410017 736661 +410017 743675 +410017 793317 +410025 784636 +410028 738792 +410028 955850 +410031 879081 +410036 743419 +410036 885253 +410042 923736 +410050 737850 +410053 742911 +410061 764103 +410064 739494 +410081 911639 +410086 919625 +410094 741733 +410097 952253 +410100 818625 +410106 738442 +410106 739917 +410106 741183 +410114 958819 +410128 723133 +410128 816053 +410139 933064 +410144 738731 +410144 763814 +410161 721597 +410167 742061 +410167 758975 +410167 1.11498e+06 +410172 954019 +410186 864133 +410186 957989 +410189 737986 +410192 840472 +410208 814361 +410219 739478 +410233 740669 +410242 806150 +410242 806631 +410247 894111 +410250 807611 +410253 902797 +410256 817300 +410261 989122 +410264 819333 +410267 928056 +410275 941978 +410286 894383 +410289 840792 +410300 825158 +410308 779497 +410317 741025 +410322 1.11901e+06 +410333 820122 +410339 737633 +410339 937653 +410353 805367 +410353 1.11938e+06 +410358 719550 +410375 740411 +410381 742944 +410383 860281 +410389 738656 +410392 963681 +410414 741294 +410414 795033 +410417 939492 +410419 739186 +410442 836500 +410458 762825 +410464 813981 +410467 740233 +410469 957422 +410478 724636 +410492 880978 +410503 788225 +410514 866031 +410519 762211 +410519 830150 +410525 806081 +410525 890503 +410531 827264 +410533 735392 +410544 762336 +410547 797269 +410550 738206 +410572 741414 +410572 966444 +410581 747531 +410583 740989 +410586 943611 +410589 740222 +410603 1.1197e+06 +410606 757744 +410614 1.02074e+06 +410617 897731 +410619 762228 +410633 905558 +410639 800567 +410647 724267 +410647 828878 +410647 862158 +410681 723392 +410706 850144 +410722 858917 +410722 902253 +410758 775889 +410767 818964 +410775 847272 +410781 764147 +410783 805994 +410786 734697 +410797 878114 +410806 868919 +410811 1.11919e+06 +410814 815192 +410817 745928 +410819 961342 +410831 739206 +410844 768642 +410847 856281 +410856 738589 +410886 740139 +410892 906381 +410894 1.12064e+06 +410906 739183 +410928 1.0247e+06 +410936 898647 +410944 884250 +410958 796828 +410961 912575 +410964 739733 +410969 788889 +410972 1.04814e+06 +410983 839847 +410994 909425 +410997 806497 +411000 813467 +411003 821233 +411003 842664 +411014 814419 +411017 807647 +411019 767714 +411033 723597 +411039 826119 +411069 739206 +411072 737964 +411072 774847 +411075 837928 +411078 787714 +411083 835169 +411108 1.12025e+06 +411111 740689 +411114 893564 +411117 1.14964e+06 +411133 742458 +411142 975986 +411144 831781 +411147 741500 +411147 901644 +411158 980014 +411161 791869 +411169 809836 +411175 734083 +411181 739558 +411183 1.12083e+06 +411192 787603 +411200 878611 +411203 765303 +411208 888353 +411219 753650 +411219 830158 +411222 803331 +411231 914411 +411233 737794 +411239 741697 +411239 1.00765e+06 +411242 1.01356e+06 +411247 774300 +411253 848533 +411264 737144 +411264 774719 +411281 1.01719e+06 +411306 851289 +411325 1.11929e+06 +411333 1.04817e+06 +411339 814847 +411358 929039 +411364 740828 +411364 1.1203e+06 +411367 800094 +411367 958906 +411369 774472 +411381 845806 +411383 818639 +411408 962394 +411414 733583 +411417 878750 +411419 878611 +411428 890600 +411428 1.02978e+06 +411444 814400 +411450 788047 +411456 738242 +411458 774217 +411464 747528 +411472 916606 +411475 739897 +411506 739458 +411531 761506 +411533 745767 +411536 813581 +411539 807017 +411544 741933 +411544 960419 +411550 759786 +411564 805694 +411569 834169 +411569 1.01126e+06 +411572 854883 +411575 812422 +411578 800889 +411586 1.01002e+06 +411589 814544 +411594 814406 +411606 926311 +411611 790833 +411617 1.12026e+06 +411628 738619 +411656 808578 +411667 876628 +411669 732053 +411669 740436 +411675 900425 +411689 822181 +411703 909967 +411725 835564 +411725 923086 +411728 882767 +411728 1.11976e+06 +411733 860347 +411742 804536 +411747 918194 +411750 760750 +411769 1.12003e+06 +411772 744692 +411772 797081 +411772 896575 +411789 903158 +411797 975472 +411814 847406 +411814 911853 +411817 743825 +411819 1.04069e+06 +411822 937286 +411828 807656 +411828 836783 +411847 773142 +411856 883097 +411856 919928 +411883 809783 +411917 903800 +411919 1.11971e+06 +411922 974250 +411967 908803 +411969 759286 +411975 739650 +411992 798731 +411997 907492 +412003 857056 +412022 793278 +412031 905869 +412042 737275 +412044 928825 +412053 760053 +412053 960422 +412056 767858 +412069 830553 +412075 838992 +412083 738917 +412094 739858 +412094 1.06789e+06 +412097 746081 +412103 758969 +412108 849669 +412111 805381 +412114 966200 +412122 804969 +412125 924353 +412147 793856 +412150 867758 +412158 890667 +412189 864231 +412197 1.22274e+06 +412219 932411 +412222 730569 +412222 758633 +412225 742947 +412225 770372 +412231 1.11973e+06 +412269 802400 +412269 882647 +412272 858219 +412278 964875 +412283 851725 +412292 840342 +412306 853194 +412319 769994 +412325 956128 +412331 804936 +412339 805697 +412344 795375 +412350 810494 +412350 951372 +412358 1.03662e+06 +412367 954178 +412369 888314 +412375 808186 +412381 818419 +412381 858531 +412392 813461 +412397 816383 +412400 814408 +412400 836433 +412403 759450 +412411 767242 +412411 770014 +412411 815528 +412414 884194 +412425 826158 +412428 732011 +412450 759311 +412450 963969 +412456 899247 +412458 758817 +412464 832358 +412489 841331 +412492 787997 +412503 794597 +412506 878314 +412528 971297 +412539 836044 +412542 769208 +412542 893422 +412542 947681 +412544 823997 +412556 734353 +412558 1.22138e+06 +412561 830517 +412564 743603 +412586 959375 +412592 804722 +412597 906078 +412608 1.11769e+06 +412611 892275 +412611 961317 +412619 739386 +412619 958608 +412647 815133 +412650 882122 +412683 1.10962e+06 +412694 759167 +412706 729475 +412708 737781 +412725 820547 +412736 828417 +412753 758506 +412756 989664 +412761 728689 +412769 926794 +412781 758975 +412783 730261 +412786 725281 +412789 758786 +412794 725989 +412794 728156 +412797 767133 +412800 759125 +412800 913606 +412814 734986 +412814 1.11988e+06 +412833 701000 +412839 812242 +412842 810967 +412844 843558 +412853 723994 +412853 724481 +412861 804278 +412864 962342 +412872 845536 +412878 882856 +412878 993814 +412886 882517 +412889 726822 +412889 758058 +412889 915522 +412897 945614 +412900 739208 +412906 959178 +412917 723767 +412917 758750 +412917 934422 +412919 999222 +412922 895061 +412931 847619 +412939 822175 +412939 902919 +412942 882711 +412953 890594 +412956 861164 +412958 897903 +412964 926442 +412975 826056 +412981 1.12085e+06 +412992 916928 +413036 901928 +413042 829753 +413053 944611 +413072 1.11959e+06 +413078 881467 +413081 729286 +413083 741450 +413089 820058 +413097 742294 +413100 721458 +413100 1.22309e+06 +413111 886097 +413114 1.05591e+06 +413117 758378 +413125 811439 +413125 814403 +413128 963458 +413136 817247 +413139 816853 +413144 818358 +413164 730936 +413167 870258 +413175 868914 +413186 872003 +413189 905058 +413197 758464 +413197 816269 +413206 730894 +413206 758194 +413208 931092 +413217 802589 +413231 777486 +413242 834386 +413250 757458 +413253 721936 +413253 824933 +413256 856978 +413258 757897 +413261 896789 +413264 777511 +413269 757736 +413275 757933 +413275 891289 +413275 891997 +413275 1.10292e+06 +413278 719911 +413278 831322 +413297 906703 +413303 807256 +413306 741872 +413308 887081 +413308 940136 +413317 741214 +413317 743572 +413319 858500 +413322 877853 +413333 922044 +413336 888781 +413358 719064 +413361 759636 +413367 755189 +413392 801053 +413397 757367 +413406 876214 +413436 863097 +413439 757389 +413447 837972 +413450 720253 +413450 815286 +413456 888425 +413458 813953 +413461 730794 +413469 741267 +413486 800825 +413494 851356 +413500 720789 +413503 831219 +413506 719825 +413533 723911 +413533 757386 +413542 719669 +413547 903814 +413556 721000 +413558 822539 +413572 884211 +413578 891761 +413581 935572 +413583 897372 +413614 818131 +413625 742717 +413633 979689 +413639 919536 +413647 961575 +413650 958578 +413653 895839 +413656 815614 +413658 852389 +413661 818544 +413669 799294 +413669 850589 +413681 894647 +413683 821078 +413692 739667 +413711 734144 +413714 839419 +413722 737339 +413747 836514 +413750 746931 +413750 819083 +413772 718342 +413775 718278 +413825 892189 +413833 760250 +413844 833206 +413856 724361 +413858 932692 +413889 705139 +413897 814414 +413900 817597 +413906 809736 +413908 728600 +413914 739564 +413922 841253 +413931 815367 +413947 734544 +413947 757069 +413953 816764 +413969 966111 +413972 736175 +413972 899044 +413978 822225 +413983 818047 +413989 717475 +414000 747236 +414000 828086 +414014 923544 +414019 743247 +414019 996389 +414031 724514 +414036 950136 +414039 881117 +414047 817231 +414050 1.02344e+06 +414061 736331 +414081 929161 +414089 756628 +414092 741956 +414092 1.12035e+06 +414097 797119 +414108 834611 +414119 838644 +414139 733039 +414153 815661 +414156 819236 +414169 815275 +414169 816061 +414169 873653 +414181 864858 +414189 832214 +414197 756328 +414200 877417 +414203 787289 +414208 900150 +414211 820964 +414214 798814 +414219 823647 +414225 879858 +414225 1.00193e+06 +414228 1.22385e+06 +414233 717861 +414244 739469 +414253 816883 +414269 892133 +414278 741664 +414278 857525 +414286 904608 +414294 882286 +414297 720825 +414297 813908 +414297 848714 +414297 973681 +414306 868983 +414314 813656 +414322 714569 +414333 964978 +414344 721103 +414347 815258 +414350 815364 +414353 816575 +414392 740456 +414392 907175 +414397 817356 +414414 818644 +414414 852650 +414428 860014 +414433 840089 +414442 744003 +414444 876314 +414453 947644 +414458 744233 +414464 861481 +414472 970592 +414478 814278 +414481 901542 +414486 847481 +414486 977303 +414489 827081 +414489 956153 +414500 816636 +414506 834875 +414514 756122 +414517 820356 +414525 963508 +414528 821825 +414531 905719 +414542 705625 +414542 706042 +414542 740581 +414550 1.06806e+06 +414553 819181 +414553 882617 +414558 960261 +414564 907233 +414569 728236 +414569 1.22894e+06 +414594 934047 +414614 736714 +414619 810739 +414619 967794 +414622 814808 +414642 918381 +414644 815089 +414647 837061 +414658 855875 +414667 864831 +414683 756033 +414686 755625 +414689 796911 +414700 876364 +414700 926511 +414706 811453 +414714 756081 +414731 870611 +414731 903575 +414733 745389 +414739 815372 +414747 845525 +414756 818394 +414756 936786 +414758 751825 +414761 832958 +414767 740242 +414767 953378 +414775 952217 +414783 814639 +414803 715231 +414806 866917 +414808 755950 +414808 876378 +414814 743606 +414817 726817 +414819 817983 +414828 873328 +414831 917058 +414839 742181 +414839 903531 +414844 877033 +414847 819222 +414858 730511 +414872 1.20541e+06 +414875 821017 +414881 914258 +414883 875675 +414886 757089 +414892 814019 +414900 713133 +414914 876744 +414919 941239 +414928 757000 +414942 875217 +414947 755372 +414947 903906 +414953 794561 +414958 878486 +414961 853767 +414969 713678 +414969 725575 +414978 815375 +414989 729011 +414994 816956 +415003 858281 +415006 874614 +415006 946433 +415008 837183 +415008 904442 +415008 934908 +415028 724506 +415033 740108 +415033 943183 +415036 844142 +415039 877131 +415047 739700 +415053 820283 +415061 876356 +415061 881144 +415064 875917 +415067 905150 +415075 717167 +415089 907658 +415094 905786 +415103 1.12015e+06 +415119 829378 +415119 879656 +415122 782353 +415122 904150 +415133 876742 +415139 920761 +415161 954500 +415175 814036 +415183 942261 +415189 838039 +415192 814581 +415200 800486 +415200 814889 +415200 815564 +415200 882017 +415214 843072 +415217 739269 +415222 813381 +415222 931017 +415231 815186 +415236 905775 +415242 720764 +415242 764011 +415244 862733 +415244 905156 +415250 880817 +415256 741533 +415258 853667 +415261 878892 +415264 706736 +415264 875386 +415272 850656 +415275 742372 +415283 874236 +415286 1.09466e+06 +415300 886797 +415306 739781 +415308 755458 +415317 940094 +415319 939539 +415322 872550 +415331 815792 +415342 757364 +415342 864272 +415347 740153 +415350 740706 +415350 808683 +415356 738994 +415356 878475 +415369 885833 +415381 728075 +415386 759469 +415392 855397 +415397 740986 +415414 869006 +415425 816264 +415425 876022 +415428 876847 +415439 738686 +415444 732094 +415444 961247 +415472 891175 +415475 865822 +415486 985308 +415486 987306 +415492 841417 +415511 1.12109e+06 +415514 706153 +415519 814786 +415528 815103 +415542 915347 +415547 880986 +415558 904092 +415564 847689 +415564 958875 +415569 836272 +415572 876656 +415575 894608 +415581 730519 +415583 872744 +415600 740036 +415619 736031 +415622 726511 +415644 875125 +415647 875389 +415661 834247 +415681 876081 +415681 877203 +415689 1.11837e+06 +415700 912636 +415717 876944 +415728 726411 +415733 877844 +415736 755022 +415736 840053 +415736 876464 +415750 872389 +415756 723325 +415758 725031 +415758 871761 +415767 744875 +415767 752592 +415769 734089 +415772 937111 +415783 705592 +415783 928447 +415803 754086 +415817 903433 +415833 875000 +415839 738092 +415839 935197 +415847 907719 +415853 878431 +415858 925272 +415861 844350 +415869 712839 +415875 1.09202e+06 +415878 834933 +415886 838911 +415889 910167 +415894 880578 +415894 889219 +415894 941958 +415908 948753 +415917 950597 +415931 815269 +415933 730858 +415933 873464 +415964 739114 +415978 937081 +415983 814186 +415994 932350 +415997 909106 +416006 936089 +416008 876069 +416028 877439 +416031 937239 +416033 803056 +416033 989258 +416056 739719 +416056 741844 +416061 738733 +416064 903353 +416067 719814 +416067 805725 +416078 1.22839e+06 +416097 835644 +416100 876467 +416106 867225 +416106 965478 +416111 876347 +416117 938850 +416125 887994 +416136 901728 +416142 760469 +416142 811492 +416144 940172 +416147 1.12126e+06 +416156 870742 +416156 875294 +416186 813842 +416217 837117 +416228 738711 +416239 813072 +416253 877175 +416258 712139 +416258 871903 +416261 757808 +416267 937119 +416269 796739 +416269 882039 +416283 703875 +416289 813617 +416303 878539 +416303 897861 +416311 780917 +416314 724603 +416317 876608 +416331 754708 +416331 814689 +416336 886811 +416342 1.11851e+06 +416347 849994 +416353 727692 +416361 709347 +416378 859217 +416386 1.11933e+06 +416386 1.12079e+06 +416389 875567 +416389 876072 +416392 874547 +416397 732089 +416397 814067 +416406 993708 +416411 884472 +416414 801517 +416417 854167 +416431 957886 +416436 834869 +416439 877036 +416442 934644 +416458 886217 +416475 880894 +416500 702417 +416514 754669 +416525 797272 +416528 702833 +416531 953253 +416539 814506 +416556 738753 +416556 746897 +416561 804242 +416564 768536 +416564 900792 +416572 876800 +416581 905844 +416583 701292 +416583 708167 +416603 808608 +416611 727800 +416611 877525 +416611 915300 +416611 920089 +416619 861586 +416628 788114 +416628 876606 +416628 885369 +416639 835553 +416642 836433 +416644 701733 +416650 860758 +416653 1.03099e+06 +416658 814433 +416658 1.11181e+06 +416661 813397 +416667 701853 +416667 966656 +416672 878303 +416681 762622 +416681 877964 +416686 933575 +416689 877386 +416714 899361 +416714 913464 +416717 729497 +416731 936975 +416731 1.07979e+06 +416733 843269 +416736 880017 +416747 903403 +416750 712711 +416750 733522 +416764 719156 +416764 915803 +416772 945031 +416778 932450 +416781 730114 +416794 721708 +416794 770642 +416797 874944 +416800 845531 +416803 903189 +416811 699917 +416817 1.11822e+06 +416819 699603 +416819 859767 +416819 869603 +416828 883514 +416833 862500 +416842 877003 +416844 939608 +416861 700764 +416883 937908 +416889 889811 +416889 983631 +416897 877972 +416908 980033 +416917 943628 +416917 974842 +416919 713792 +416925 869775 +416947 740517 +416967 878169 +416972 862450 +416975 905825 +416978 727242 +416983 868592 +416986 880683 +416994 840703 +416997 930478 +417000 703000 +417000 707633 +417003 739214 +417003 865094 +417006 934619 +417014 711556 +417014 877792 +417019 702500 +417039 790358 +417050 813606 +417053 972378 +417061 715236 +417064 1.11816e+06 +417075 868950 +417092 746289 +417103 865342 +417106 722086 +417106 745747 +417117 839097 +417119 1.12165e+06 +417122 726086 +417128 718814 +417142 726531 +417142 893286 +417161 862525 +417169 743961 +417175 899258 +417181 929072 +417181 949322 +417183 738531 +417189 801478 +417189 837131 +417194 842181 +417206 877017 +417208 739606 +417208 877542 +417211 968825 +417214 858175 +417217 1.11821e+06 +417233 917903 +417244 732367 +417244 812458 +417250 970025 +417256 786386 +417256 878250 +417267 971219 +417278 844189 +417283 1.22527e+06 +417297 936056 +417306 883458 +417308 849328 +417317 922978 +417331 776422 +417336 924453 +417344 877314 +417356 1.11834e+06 +417356 1.22633e+06 +417383 957025 +417406 713092 +417408 878603 +417411 705994 +417411 735769 +417411 1.12161e+06 +417417 706583 +417431 927222 +417439 743719 +417444 878378 +417453 706186 +417456 868508 +417472 731892 +417475 740872 +417486 773008 +417489 879183 +417492 915978 +417500 878042 +417500 977750 +417550 1.03324e+06 +417561 1.24201e+06 +417578 803681 +417589 704944 +417600 700833 +417603 811411 +417606 883200 +417611 938242 +417619 727425 +417619 1.08966e+06 +417625 707222 +417628 878000 +417636 726856 +417653 721986 +417658 836281 +417675 764431 +417681 888769 +417689 878578 +417689 886408 +417694 711292 +417694 1.11804e+06 +417697 911278 +417700 705289 +417703 879022 +417711 730603 +417711 810500 +417714 937128 +417717 887736 +417747 742986 +417747 780208 +417750 1.07112e+06 +417756 954172 +417758 725219 +417783 962208 +417794 1.10538e+06 +417797 714378 +417797 896889 +417800 790933 +417808 749342 +417817 991328 +417822 726125 +417828 878781 +417850 736944 +417858 881472 +417881 902561 +417886 896961 +417894 902192 +417897 699903 +417897 707608 +417911 1.07238e+06 +417925 1.10537e+06 +417939 867439 +417956 860808 +417958 879756 +417967 718978 +417975 879547 +417981 856433 +417981 864992 +417981 920706 +417986 866106 +417989 1.11818e+06 +417992 854192 +418006 731217 +418006 803692 +418008 879369 +418011 747469 +418011 880747 +418019 810492 +418025 718864 +418036 800567 +418061 883272 +418069 834425 +418072 770778 +418072 914939 +418083 722500 +418086 877933 +418089 880111 +418094 1.03503e+06 +418097 728311 +418097 879006 +418097 899650 +418108 782800 +418111 784450 +418128 729206 +418133 878181 +418136 713706 +418178 881733 +418214 877828 +418233 905381 +418239 714133 +418239 878517 +418242 906478 +418244 728942 +418258 1.0366e+06 +418261 931514 +418272 863611 +418281 866925 +418283 974547 +418289 740689 +418297 862542 +418317 908381 +418325 838625 +418328 879289 +418347 878617 +418350 878228 +418358 964667 +418383 1.11832e+06 +418386 941069 +418389 894794 +418394 847481 +418411 856686 +418417 893003 +418417 967083 +418428 878231 +418439 791453 +418444 901886 +418456 877539 +418456 916928 +418458 709500 +418472 853186 +418475 1.03661e+06 +418492 735572 +418500 876500 +418500 879644 +418500 883125 +418506 877936 +418506 878819 +418519 945581 +418525 726442 +418544 956003 +418550 843539 +418569 939217 +418575 909281 +418594 809542 +418617 881608 +418628 1.1199e+06 +418639 711250 +418639 878533 +418650 699917 +418650 807900 +418661 881069 +418661 892211 +418667 1.03667e+06 +418672 901594 +418700 1.06561e+06 +418708 786617 +418708 946772 +418711 715525 +418722 851947 +418725 757275 +418728 807731 +418731 728586 +418742 791525 +418742 801319 +418758 728017 +418767 938231 +418775 880669 +418778 879028 +418778 936783 +418786 713831 +418789 927892 +418792 878431 +418800 880078 +418814 878831 +418822 729775 +418847 882039 +418850 877844 +418875 883053 +418889 837789 +418889 879033 +418889 910564 +418897 879889 +418897 952319 +418906 713928 +418908 806764 +418919 933994 +418922 884722 +418931 911506 +418956 1.06204e+06 +418969 922781 +418975 840372 +418978 878139 +418983 935289 +418994 798456 +418994 879403 +419000 710903 +419003 748286 +419006 878567 +419011 837150 +419028 919214 +419039 777622 +419044 912544 +419050 803439 +419053 739767 +419056 878836 +419058 806906 +419067 713911 +419075 885992 +419086 727606 +419086 771333 +419092 950647 +419094 920842 +419103 880717 +419117 860100 +419125 881347 +419150 719094 +419164 833978 +419172 878956 +419172 1.04039e+06 +419183 834306 +419192 775392 +419194 917808 +419200 846306 +419200 886886 +419203 796406 +419203 1.12049e+06 +419211 730606 +419211 878092 +419211 913853 +419219 914167 +419228 1.11813e+06 +419233 855283 +419236 710528 +419239 890686 +419244 740617 +419258 878358 +419267 739131 +419269 739978 +419289 954936 +419292 726278 +419294 887503 +419297 888608 +419300 968114 +419308 889644 +419311 833269 +419317 879889 +419353 878656 +419375 964769 +419386 761361 +419389 719600 +419403 850006 +419403 1.03808e+06 +419414 931031 +419439 856325 +419442 848839 +419444 712861 +419464 863389 +419475 805544 +419503 972236 +419508 882422 +419511 890644 +419536 735111 +419539 727892 +419539 752808 +419539 860647 +419542 723028 +419550 879400 +419556 717028 +419558 786442 +419558 878708 +419561 1.21476e+06 +419572 765183 +419572 836597 +419575 864856 +419575 880808 +419578 783856 +419583 706678 +419583 853250 +419589 900992 +419611 757436 +419633 878272 +419633 879789 +419633 897744 +419633 1.03926e+06 +419636 781911 +419639 908175 +419656 716750 +419667 711875 +419667 925767 +419672 878075 +419675 1.21917e+06 +419708 845258 +419717 757436 +419750 880072 +419758 1.11856e+06 +419761 725922 +419767 714592 +419789 765158 +419797 736564 +419817 726511 +419825 793389 +419833 980833 +419836 909561 +419842 846619 +419842 861086 +419847 880797 +419850 862997 +419853 724467 +419856 718992 +419856 739886 +419861 773111 +419861 895792 +419864 843472 +419867 838311 +419872 725453 +419872 969139 +419889 886867 +419903 709756 +419942 882922 +419944 707250 +419950 881856 +419956 919675 +419956 925767 +419969 918619 +419972 741053 +419975 765375 +419981 911414 +419983 921972 +419994 881450 +419994 975981 +420003 803183 +420022 906069 +420028 715153 +420036 798111 +420039 839450 +420039 879703 +420044 877300 +420061 841900 +420064 854500 +420069 927753 +420075 962494 +420083 916439 +420086 920908 +420111 878406 +420128 965725 +420128 1.21408e+06 +420133 898906 +420144 865194 +420147 893322 +420153 943772 +420161 767272 +420167 740767 +420167 931633 +420178 933150 +420178 953550 +420181 740153 +420189 878028 +420225 945450 +420228 934522 +420231 706833 +420236 719503 +420253 1.21599e+06 +420256 881783 +420258 858156 +420267 960969 +420272 733297 +420317 942406 +420333 712194 +420333 877333 +420333 878833 +420333 880833 +420342 915975 +420347 936197 +420358 916819 +420372 882811 +420386 783411 +420392 940275 +420406 877825 +420411 876900 +420417 706728 +420428 880797 +420428 1.01042e+06 +420431 733456 +420436 739478 +420439 847575 +420456 802700 +420472 978336 +420494 929078 +420500 718806 +420500 725833 +420503 894311 +420503 904139 +420528 1.24283e+06 +420533 1.24266e+06 +420544 791583 +420544 1.04952e+06 +420569 947286 +420583 701792 +420583 739097 +420592 833908 +420592 910072 +420594 914425 +420597 938800 +420600 754281 +420639 832611 +420650 864950 +420650 1.04181e+06 +420658 948667 +420661 917953 +420664 879372 +420667 851361 +420683 955914 +420689 906656 +420694 761550 +420700 843306 +420708 832467 +420711 901739 +420711 916667 +420719 839717 +420722 717139 +420722 877228 +420750 708806 +420750 720339 +420750 794833 +420758 756408 +420775 739533 +420775 784300 +420781 768456 +420825 1.10954e+06 +420833 710189 +420833 713972 +420842 880131 +420853 836825 +420858 877175 +420864 779225 +420867 714750 +420869 864558 +420886 852347 +420897 768081 +420900 784944 +420914 881217 +420917 707061 +420925 888511 +420931 707931 +420933 849858 +420936 926756 +420942 883025 +420944 901567 +420944 918692 +420950 831897 +420950 899781 +420953 879375 +420964 1.11876e+06 +420969 792356 +420972 886928 +420978 885303 +420983 760497 +420986 759183 +420997 877808 +421014 725903 +421022 898333 +421028 772339 +421033 762625 +421042 723194 +421042 793333 +421058 842483 +421069 726208 +421069 936494 +421072 891792 +421081 859744 +421081 877358 +421083 720792 +421083 912850 +421094 792833 +421103 880342 +421111 716667 +421125 929883 +421128 760214 +421142 856378 +421142 967069 +421156 759592 +421161 721139 +421167 864542 +421181 880961 +421186 791986 +421200 855328 +421211 882578 +421217 770375 +421236 711792 +421236 724319 +421250 727500 +421256 894036 +421261 895792 +421269 892556 +421275 878289 +421275 961492 +421286 980294 +421292 800853 +421297 768211 +421306 715417 +421311 864072 +421333 758967 +421350 877581 +421372 769372 +421389 832417 +421392 879289 +421394 831783 +421397 715167 +421403 800153 +421417 712500 +421428 770550 +421458 707403 +421458 848089 +421461 771119 +421483 964881 +421486 726083 +421486 746486 +421503 840378 +421514 879597 +421519 944742 +421539 881361 +421547 897397 +421550 710092 +421564 777958 +421578 787153 +421583 723292 +421592 795956 +421606 842461 +421608 880814 +421611 932969 +421619 770944 +421619 789756 +421625 710417 +421625 834031 +421631 1.23647e+06 +421653 954367 +421656 882942 +421658 957928 +421664 935017 +421667 837817 +421669 768208 +421672 858469 +421675 878969 +421681 884281 +421686 920233 +421694 751297 +421706 880478 +421711 878444 +421717 923061 +421728 789481 +421778 846431 +421783 879978 +421811 723611 +421817 878003 +421817 883303 +421817 949767 +421861 863083 +421867 862606 +421872 935956 +421875 713069 +421878 927150 +421889 1.20345e+06 +421908 917850 +421917 1.1225e+06 +421933 843911 +421933 878664 +421936 924653 +421944 712000 +421944 719064 +421947 1.22708e+06 +421956 741342 +421958 707264 +421958 733625 +421969 880933 +421986 765528 +421992 975264 +421997 878092 +422008 882144 +422011 855800 +422039 915239 +422042 726167 +422047 834853 +422050 845528 +422064 781378 +422067 861667 +422069 1.21736e+06 +422075 880556 +422078 881406 +422094 857844 +422097 764936 +422119 882381 +422122 862719 +422125 721917 +422125 723458 +422125 881525 +422136 742192 +422139 721028 +422139 831939 +422156 798344 +422169 880494 +422172 738650 +422175 782756 +422178 858911 +422189 707861 +422192 860514 +422194 879794 +422208 709403 +422208 863694 +422222 710000 +422222 833967 +422231 780347 +422236 761836 +422242 918742 +422247 928744 +422250 1.21781e+06 +422272 1.114e+06 +422278 720472 +422281 755269 +422286 715231 +422306 970175 +422328 763428 +422328 962278 +422331 843272 +422339 738828 +422347 889489 +422353 721417 +422358 964722 +422383 853350 +422383 911869 +422408 832697 +422411 836131 +422411 883161 +422417 708903 +422417 711667 +422425 882019 +422431 847531 +422433 1.13881e+06 +422439 719928 +422444 831458 +422456 930644 +422458 712833 +422458 844014 +422458 1.22788e+06 +422464 882428 +422483 736536 +422486 886083 +422500 710667 +422506 831786 +422508 842131 +422525 788058 +422528 710028 +422528 737914 +422539 795047 +422542 733667 +422542 777908 +422564 725167 +422564 902794 +422575 832111 +422578 983461 +422583 845997 +422586 904228 +422589 881392 +422597 722403 +422603 738100 +422614 940683 +422625 718028 +422631 880039 +422639 792589 +422639 888442 +422653 898258 +422661 892411 +422667 720833 +422669 797108 +422675 947336 +422689 715244 +422692 968647 +422694 716167 +422697 1.04741e+06 +422703 776061 +422703 945483 +422711 890939 +422711 950928 +422714 939269 +422722 849633 +422733 831344 +422750 786731 +422756 1.22817e+06 +422761 881919 +422769 724014 +422781 749164 +422786 967264 +422789 878342 +422792 714167 +422806 942906 +422808 915303 +422814 833864 +422825 831753 +422831 879531 +422833 712333 +422833 837458 +422861 737392 +422867 917806 +422875 733208 +422886 772186 +422886 854181 +422900 882247 +422917 855872 +422933 754797 +422942 833100 +422944 791000 +422964 712931 +422967 896211 +422986 910147 +422989 739989 +423019 709083 +423031 855503 +423042 732486 +423056 933000 +423067 780161 +423083 852192 +423122 952503 +423125 722083 +423125 861131 +423136 1.22966e+06 +423139 893592 +423147 753919 +423147 884486 +423150 921919 +423153 934342 +423156 955983 +423178 902214 +423181 840206 +423189 851425 +423189 882581 +423194 716417 +423200 890581 +423208 713647 +423211 851797 +423217 964892 +423217 1.03072e+06 +423222 777386 +423222 795783 +423222 831764 +423222 1.11297e+06 +423236 925992 +423242 834003 +423250 726417 +423253 753128 +423256 833311 +423256 878411 +423267 1.22874e+06 +423278 776614 +423281 855697 +423286 881989 +423289 759681 +423292 757703 +423292 788683 +423314 830458 +423364 853522 +423367 767889 +423369 712097 +423369 773181 +423369 784583 +423369 832733 +423383 838886 +423403 725056 +423428 879981 +423428 890519 +423439 912483 +423442 793097 +423444 880417 +423447 882739 +423450 954714 +423458 715528 +423461 776617 +423472 768456 +423483 878842 +423497 900067 +423497 977917 +423508 738033 +423533 880933 +423564 732853 +423569 880767 +423583 710603 +423600 940519 +423600 975964 +423608 858794 +423608 930994 +423617 927683 +423636 878447 +423642 735953 +423642 790558 +423683 833528 +423683 882925 +423694 719486 +423703 879019 +423708 711833 +423708 725986 +423717 880900 +423736 725208 +423750 709833 +423758 829375 +423758 896331 +423764 712361 +423783 846986 +423786 973567 +423794 898222 +423800 881042 +423806 768736 +423811 881397 +423828 859569 +423861 829119 +423875 711000 +423883 958664 +423886 794414 +423886 895261 +423917 710333 +423917 715667 +423928 830497 +423933 883403 +423944 776969 +423944 917608 +423953 736983 +423953 946336 +423958 711792 +423967 881836 +423972 751739 +423986 880525 +423997 887403 +424031 862736 +424039 963583 +424067 924553 +424072 746147 +424075 1.24421e+06 +424078 772239 +424081 881317 +424083 710125 +424083 710542 +424086 882064 +424092 828919 +424094 774217 +424103 725314 +424106 880261 +424133 736736 +424133 890092 +424153 711569 +424156 964181 +424161 922147 +424167 716833 +424167 904289 +424169 880739 +424183 711067 +424222 886136 +424222 949894 +424228 721056 +424233 781575 +424247 941500 +424250 710667 +424264 709194 +424286 879239 +424286 1.12124e+06 +424292 764953 +424294 970894 +424297 913308 +424311 834833 +424331 829242 +424333 714500 +424361 1.23171e+06 +424364 893319 +424367 828769 +424375 1.22858e+06 +424392 1.23327e+06 +424394 837439 +424400 793319 +424400 856489 +424406 764969 +424408 736614 +424414 849242 +424417 760325 +424428 910061 +424433 850181 +424436 829069 +424444 716875 +424450 909319 +424461 878328 +424472 712250 +424500 732458 +424511 841806 +424514 844325 +424522 711375 +424528 750642 +424567 839464 +424578 986472 +424583 710667 +424583 713958 +424592 929383 +424594 764869 +424606 831347 +424606 836517 +424606 856964 +424614 777772 +424614 951517 +424625 831042 +424631 789361 +424642 926281 +424644 833764 +424647 710106 +424661 781153 +424667 709500 +424667 979058 +424669 922564 +424683 738167 +424683 791772 +424683 829556 +424683 896439 +424686 918892 +424689 922194 +424692 922808 +424694 938158 +424706 939933 +424708 709181 +424711 831422 +424717 884322 +424728 1.22802e+06 +424733 832219 +424733 917342 +424739 964133 +424750 957853 +424756 920636 +424772 726083 +424772 880956 +424775 830278 +424789 878236 +424792 711528 +424794 793342 +424800 711000 +424806 831669 +424806 834756 +424817 912722 +424842 914553 +424844 911228 +424850 830278 +424858 831053 +424889 960722 +424892 784811 +424892 955447 +424894 831447 +424908 762975 +424922 906428 +424928 923428 +424931 890367 +424947 1.07827e+06 +424964 832228 +424964 899894 +424969 828889 +424972 829372 +424975 941678 +424983 883297 +424994 975417 +425000 708583 +425000 952928 +425000 964000 +425006 906644 +425022 775075 +425025 887289 +425031 831836 +425047 711961 +425061 972033 +425064 710733 +425083 890317 +425092 846558 +425144 907514 +425158 736106 +425158 832733 +425183 737517 +425194 708972 +425203 933758 +425222 833061 +425225 932511 +425233 769769 +425247 835364 +425250 717603 +425256 710958 +425272 964828 +425278 709292 +425278 924453 +425292 712286 +425292 858553 +425294 837803 +425297 1.14305e+06 +425300 784731 +425311 755239 +425311 882481 +425311 885994 +425314 989778 +425328 904344 +425333 831464 +425339 784233 +425339 1.14364e+06 +425347 881436 +425358 1.13792e+06 +425364 997003 +425378 834811 +425381 883508 +425383 1.10114e+06 +425389 710486 +425392 829494 +425422 766664 +425436 716500 +425442 791669 +425458 714750 +425464 711742 +425467 832114 +425486 752456 +425489 748214 +425500 998622 +425511 946836 +425536 882944 +425536 1.10109e+06 +425542 930531 +425567 834739 +425578 888650 +425583 708806 +425586 1.13763e+06 +425608 776964 +425611 715903 +425631 1.1446e+06 +425636 848358 +425669 926219 +425678 775900 +425697 903806 +425700 921603 +425703 1.14607e+06 +425733 902308 +425750 709306 +425750 719986 +425761 1.1173e+06 +425775 881050 +425775 927867 +425778 1.21865e+06 +425781 885408 +425794 779428 +425803 830303 +425814 948458 +425819 724931 +425822 762094 +425833 718028 +425836 832456 +425842 886325 +425842 928842 +425847 878211 +425858 995375 +425875 726000 +425878 763672 +425883 959672 +425903 723103 +425906 749456 +425936 835994 +425939 861017 +425944 717250 +425953 789414 +425958 722272 +425961 760936 +425969 980333 +425972 828781 +425986 916419 +425989 976453 +425992 991422 +425992 1.14759e+06 +426011 761808 +426011 896383 +426017 887075 +426025 965589 +426028 850931 +426042 725569 +426042 727397 +426056 904297 +426056 950025 +426072 839294 +426081 833439 +426081 1.13782e+06 +426083 720764 +426103 719394 +426111 715750 +426114 833286 +426122 884822 +426144 941458 +426153 770925 +426153 774028 +426158 706625 +426169 767253 +426183 825311 +426183 893761 +426192 1.13676e+06 +426208 919000 +426214 951731 +426219 738331 +426225 972642 +426236 857603 +426242 731181 +426242 753319 +426242 790672 +426261 830336 +426272 905919 +426275 892531 +426278 962914 +426289 780547 +426289 850242 +426292 847389 +426319 707833 +426331 886436 +426333 713167 +426339 735542 +426342 745644 +426369 761792 +426375 709500 +426383 790281 +426389 832911 +426392 920469 +426406 845153 +426411 952094 +426425 737433 +426433 736092 +426444 914011 +426456 846489 +426461 924628 +426506 1.12192e+06 +426525 737567 +426539 739292 +426544 1.11604e+06 +426550 862019 +426567 935008 +426583 711375 +426606 780858 +426606 840731 +426608 770542 +426611 709972 +426642 939042 +426653 715736 +426658 715889 +426658 743100 +426667 717056 +426669 841742 +426708 892089 +426714 923372 +426728 885444 +426733 919133 +426736 952903 +426739 856447 +426764 768233 +426778 744858 +426781 754989 +426781 882761 +426792 708417 +426806 831339 +426811 827369 +426822 768689 +426828 890186 +426831 901175 +426831 1.03412e+06 +426833 966833 +426836 915339 +426839 1.02689e+06 +426856 787769 +426861 720444 +426881 880514 +426889 842831 +426894 907119 +426903 735650 +426911 738692 +426919 737250 +426950 738075 +426958 724533 +426981 878944 +427006 740342 +427006 749247 +427008 731092 +427011 898669 +427022 834028 +427022 922253 +427047 737553 +427069 711636 +427078 894369 +427103 925828 +427119 732042 +427125 764219 +427128 954364 +427131 854619 +427144 909906 +427156 780058 +427167 708792 +427178 738339 +427183 1.02464e+06 +427194 824922 +427197 962483 +427200 942000 +427203 1.11885e+06 +427208 942150 +427222 844275 +427242 1.14518e+06 +427250 1.10931e+06 +427256 778744 +427258 924753 +427261 877828 +427283 736922 +427289 974953 +427294 944475 +427300 737017 +427317 937328 +427325 845556 +427342 904783 +427356 946689 +427358 834189 +427361 903342 +427364 1.23422e+06 +427369 844839 +427400 781331 +427414 882242 +427419 932022 +427442 736919 +427456 895947 +427458 1.24496e+06 +427469 737594 +427469 844011 +427494 955514 +427519 929753 +427528 927950 +427533 847464 +427539 767028 +427583 758847 +427597 1.05382e+06 +427600 772267 +427622 848964 +427622 849925 +427625 1.04452e+06 +427631 882142 +427647 714403 +427653 714681 +427672 718128 +427675 787442 +427678 786136 +427703 832642 +427733 723836 +427739 918822 +427742 737006 +427756 889439 +427758 1.14703e+06 +427761 710778 +427794 969289 +427797 738461 +427803 892992 +427819 949483 +427844 832397 +427844 877661 +427847 851383 +427847 926675 +427853 884050 +427858 910994 +427861 724869 +427861 1.12854e+06 +427875 861089 +427892 855167 +427914 838464 +427919 836278 +427925 736817 +427942 961653 +427956 747536 +427958 746175 +427958 778172 +427964 1.12253e+06 +427972 788236 +427978 837050 +427981 761097 +428028 830131 +428047 1.02203e+06 +428081 922581 +428092 827558 +428103 898619 +428122 1.14898e+06 +428125 708778 +428125 860186 +428128 945267 +428139 720236 +428142 739400 +428144 837825 +428144 896350 +428147 959731 +428208 824861 +428214 776689 +428228 839444 +428239 721817 +428247 832647 +428256 788236 +428258 958072 +428264 739647 +428264 780900 +428264 842194 +428269 755450 +428289 965592 +428294 1.03e+06 +428297 786364 +428331 1.0873e+06 +428336 887322 +428353 716494 +428353 890675 +428386 841783 +428397 766936 +428406 1.06365e+06 +428408 856636 +428417 708611 +428419 918019 +428433 717356 +428442 828844 +428461 936139 +428467 948517 +428475 907106 +428475 920914 +428508 725583 +428522 834431 +428533 749858 +428536 893703 +428539 914053 +428542 978969 +428558 726036 +428583 709306 +428597 895381 +428600 1.06268e+06 +428614 1.05872e+06 +428642 782806 +428667 883333 +428667 1.06312e+06 +428667 1.0986e+06 +428686 773358 +428686 912358 +428689 769781 +428692 849031 +428694 856447 +428706 719522 +428708 858650 +428711 973969 +428714 1.12445e+06 +428728 1.00551e+06 +428739 987011 +428744 740469 +428778 885861 +428781 731972 +428786 840639 +428792 752514 +428794 884742 +428806 713278 +428814 882067 +428836 1.24072e+06 +428853 751936 +428853 909233 +428858 878631 +428864 788786 +428903 843514 +428906 785781 +428933 787942 +428933 932150 +428933 951508 +428944 739283 +428950 774350 +428958 928022 +428964 827689 +428986 756406 +429000 735858 +429000 784922 +429000 904308 +429006 786706 +429011 733519 +429022 774200 +429028 736878 +429033 735631 +429039 786925 +429042 722083 +429047 768631 +429047 776117 +429056 745722 +429058 881389 +429061 1.08583e+06 +429072 857919 +429086 765406 +429097 857631 +429106 767969 +429106 878606 +429108 745744 +429114 988489 +429119 777458 +429119 839847 +429125 824869 +429133 857053 +429169 835064 +429169 892178 +429189 767267 +429206 830450 +429208 1.12465e+06 +429261 893844 +429275 836300 +429275 1.2328e+06 +429289 888369 +429294 847986 +429294 852131 +429300 758531 +429303 732431 +429314 746231 +429317 765664 +429336 722786 +429336 853419 +429344 884053 +429347 746139 +429361 1.14405e+06 +429375 708394 +429375 880486 +429378 937931 +429386 737903 +429386 741886 +429386 919500 +429389 1.14712e+06 +429392 754614 +429392 840294 +429406 879958 +429411 856100 +429414 832892 +429442 1.12838e+06 +429461 831239 +429469 764294 +429478 743708 +429511 1.23363e+06 +429522 775906 +429528 925361 +429544 743769 +429550 1.153e+06 +429553 742856 +429558 772211 +429569 944408 +429572 838306 +429575 770578 +429575 916306 +429583 742333 +429597 878614 +429600 784058 +429603 901300 +429614 880125 +429617 771403 +429628 918081 +429639 787381 +429644 825231 +429647 786778 +429653 921994 +429658 788703 +429697 772306 +429708 824250 +429717 904331 +429731 778531 +429742 954972 +429744 741514 +429747 963181 +429764 881083 +429783 779844 +429792 956878 +429814 709483 +429819 841178 +429819 849469 +429825 774092 +429828 763408 +429836 906553 +429853 931917 +429856 839283 +429872 850711 +429875 960103 +429908 895331 +429933 978625 +429956 714553 +429958 849425 +429958 964850 +429978 841767 +429981 781878 +430008 738494 +430014 857681 +430017 847397 +430019 759772 +430022 899903 +430036 890164 +430036 916522 +430044 883767 +430050 980594 +430056 888072 +430058 843717 +430067 743681 +430069 936028 +430072 960581 +430078 842847 +430086 897383 +430106 786378 +430114 750044 +430117 882314 +430125 829281 +430125 836875 +430125 879725 +430125 892897 +430142 884725 +430150 750358 +430156 898953 +430167 880069 +430183 911825 +430203 788806 +430203 1.23292e+06 +430208 784956 +430214 966306 +430247 830778 +430250 1.08379e+06 +430256 749864 +430256 1.02556e+06 +430258 777456 +430281 733817 +430297 760047 +430333 710747 +430344 764483 +430344 766242 +430347 835181 +430361 711839 +430386 788644 +430386 856700 +430389 750708 +430389 879064 +430392 763044 +430431 880789 +430433 748600 +430444 911781 +430450 758669 +430467 770956 +430467 903797 +430472 762389 +430475 762208 +430481 761478 +430483 753789 +430486 765631 +430494 880075 +430514 833189 +430517 911411 +430517 913892 +430519 890756 +430522 929483 +430528 743442 +430581 762078 +430586 741969 +430592 923175 +430606 881064 +430608 884036 +430619 944267 +430622 893339 +430631 838511 +430631 862283 +430639 772336 +430639 859347 +430642 769906 +430650 1.24138e+06 +430653 760789 +430653 764733 +430656 952836 +430658 782700 +430664 926722 +430692 772992 +430700 942328 +430706 921500 +430717 707631 +430719 959042 +430731 894011 +430733 752881 +430736 755986 +430747 731544 +430753 757072 +430761 760011 +430761 887742 +430761 891994 +430769 861969 +430772 781872 +430775 894456 +430794 755397 +430794 757511 +430797 961753 +430797 982928 +430806 882611 +430806 967733 +430814 889117 +430825 756339 +430831 737850 +430831 971603 +430842 768697 +430844 862203 +430847 915681 +430853 779425 +430853 908831 +430858 706975 +430869 956269 +430881 707367 +430883 939900 +430886 843869 +430892 878875 +430906 734992 +430906 775153 +430922 753800 +430925 756517 +430944 790569 +430967 714656 +430972 895042 +430978 761456 +430978 852289 +430978 884022 +430978 938017 +430986 774422 +431000 735822 +431008 747733 +431008 752331 +431025 936017 +431044 742653 +431044 884592 +431047 846919 +431050 883419 +431053 752917 +431058 880694 +431064 762181 +431081 707781 +431086 774878 +431117 883922 +431117 884992 +431128 752714 +431128 946828 +431133 879000 +431144 896556 +431153 761461 +431167 839700 +431183 893794 +431186 836950 +431192 1.24407e+06 +431194 969611 +431200 855600 +431219 752919 +431225 1.23411e+06 +431264 934775 +431292 948989 +431306 714536 +431319 861547 +431331 1.1569e+06 +431333 724444 +431339 709269 +431339 882219 +431344 907053 +431347 761303 +431372 897467 +431378 725103 +431381 755711 +431414 951442 +431428 930042 +431433 771894 +431461 881661 +431464 917644 +431467 883067 +431497 977172 +431500 786969 +431536 932008 +431547 776158 +431564 985411 +431567 834106 +431572 753331 +431575 879017 +431586 763331 +431600 953272 +431606 1.23367e+06 +431608 857100 +431633 879644 +431636 730728 +431661 835244 +431683 890667 +431689 862639 +431703 970811 +431706 786906 +431722 733281 +431725 790361 +431725 1.01732e+06 +431742 879242 +431753 900678 +431767 838928 +431767 897947 +431769 730575 +431769 848464 +431772 1.24186e+06 +431775 837342 +431775 852528 +431789 881172 +431797 718228 +431800 954767 +431806 879006 +431811 958558 +431817 956553 +431819 903244 +431825 992917 +431836 892136 +431836 918639 +431839 889883 +431847 841150 +431850 904431 +431864 778042 +431867 844744 +431886 961333 +431906 1.12344e+06 +431911 960056 +431919 894556 +431947 887289 +431972 766547 +431975 942194 +431978 708742 +431992 785764 +432011 862389 +432053 962947 +432081 715381 +432097 776933 +432122 774303 +432122 829897 +432122 850736 +432136 779394 +432167 1.23341e+06 +432200 783872 +432200 857511 +432206 768153 +432219 717144 +432233 855514 +432239 771864 +432256 750617 +432256 979656 +432264 780269 +432294 831967 +432311 763011 +432322 994300 +432342 862483 +432344 708100 +432358 1.0811e+06 +432361 708208 +432364 879844 +432369 940411 +432375 879786 +432378 770617 +432378 947511 +432381 761411 +432386 724250 +432386 789100 +432397 975775 +432403 758842 +432417 752572 +432444 738328 +432464 781939 +432467 924358 +432472 767239 +432472 790503 +432478 760006 +432489 705997 +432506 895014 +432508 837942 +432547 861097 +432561 862675 +432586 828175 +432617 708658 +432625 936369 +432658 708650 +432669 735850 +432681 825308 +432694 914756 +432708 897219 +432717 769894 +432756 826211 +432789 900436 +432794 962325 +432814 835297 +432842 928108 +432867 761464 +432867 787106 +432869 897239 +432872 932019 +432881 777936 +432917 846075 +432925 850814 +432928 942178 +432947 945114 +432967 879875 +432983 724828 +432992 736356 +433000 736844 +433006 735864 +433008 965925 +433011 1.03825e+06 +433033 917856 +433036 707339 +433044 709761 +433050 888447 +433058 713247 +433058 1.00658e+06 +433072 964317 +433094 736444 +433097 788264 +433103 885181 +433139 895264 +433175 908447 +433178 883789 +433186 983464 +433197 879533 +433211 765792 +433228 764175 +433239 881667 +433247 951497 +433267 783892 +433269 751872 +433269 830803 +433300 785550 +433317 837381 +433336 882861 +433344 757483 +433347 903867 +433361 858108 +433369 833525 +433378 787150 +433381 890153 +433439 960019 +433525 974369 +433542 968917 +433561 1.24204e+06 +433617 704772 +433622 912164 +433636 1.24192e+06 +433639 925539 +433653 721739 +433681 1.24216e+06 +433714 937733 +433719 835833 +433767 723472 +433767 998586 +433789 846597 +433814 921139 +433814 1.12122e+06 +433817 879406 +433839 705453 +433844 890450 +433858 939464 +433864 951481 +433869 988442 +433872 878756 +433897 710656 +433903 894028 +433903 1.23311e+06 +433953 907742 +433956 854678 +433958 727011 +433961 944781 +433975 971361 +433981 764778 +433989 979833 +433992 957517 +433997 885325 +434017 948325 +434056 887050 +434061 761261 +434067 1.24223e+06 +434078 732600 +434081 844750 +434081 850386 +434097 843289 +434100 863486 +434114 1.06279e+06 +434131 1.06249e+06 +434139 719856 +434142 734881 +434147 842306 +434161 955344 +434167 863569 +434194 839508 +434194 935331 +434197 858000 +434203 828297 +434222 951019 +434222 1.23297e+06 +434231 972603 +434253 881833 +434253 984069 +434261 737128 +434269 826714 +434272 961756 +434308 825425 +434314 966969 +434317 880464 +434317 1.03474e+06 +434361 927822 +434392 707747 +434442 716478 +434442 932208 +434464 968356 +434478 892397 +434506 836964 +434514 886311 +434536 964339 +434553 765108 +434556 953206 +434578 888372 +434586 839303 +434594 762292 +434597 898683 +434636 1.1426e+06 +434667 707942 +434667 1.12033e+06 +434675 859419 +434697 1.11966e+06 +434706 879506 +434711 897442 +434717 729778 +434744 897703 +434764 839206 +434800 1.10762e+06 +434836 753369 +434908 854439 +434911 833969 +434919 1.16419e+06 +434925 704539 +434942 885447 +434958 893083 +434967 737767 +434967 912894 +434997 878503 +435008 704433 +435050 940878 +435053 929439 +435061 906681 +435072 863475 +435097 925036 +435169 732367 +435172 703781 +435172 884511 +435181 960181 +435197 1.14314e+06 +435206 917694 +435208 882289 +435236 835433 +435244 846947 +435250 841228 +435264 1.11932e+06 +435267 827353 +435278 714708 +435281 963583 +435325 900025 +435336 946314 +435336 1.0963e+06 +435364 937119 +435378 893000 +435392 890067 +435392 894625 +435408 1.16562e+06 +435422 891072 +435456 1.16812e+06 +435500 967000 +435503 857719 +435517 975072 +435522 879617 +435553 920100 +435556 734042 +435569 908886 +435592 863456 +435611 916358 +435642 1.1908e+06 +435653 927192 +435656 889064 +435669 761281 +435681 835142 +435681 1.00745e+06 +435689 860394 +435697 878233 +435725 932811 +435758 1.24174e+06 +435781 703222 +435825 964675 +435831 753456 +435839 712078 +435864 1.19053e+06 +435911 717372 +435914 884436 +435931 730456 +435944 838889 +435947 732661 +435964 1.11963e+06 +435978 882789 +435978 972903 +435986 1.23282e+06 +436008 831747 +436011 897936 +436033 840697 +436086 863639 +436106 729731 +436122 1.16391e+06 +436153 838419 +436156 842472 +436178 1.16933e+06 +436192 879519 +436200 955961 +436208 949883 +436222 1.16237e+06 +436228 877944 +436231 969422 +436242 725189 +436253 753675 +436275 897708 +436319 1.11773e+06 +436333 887294 +436347 914967 +436350 959325 +436367 1.13299e+06 +436375 941019 +436406 721444 +436414 702414 +436422 722522 +436433 760689 +436442 760864 +436461 1.08211e+06 +436481 933681 +436489 723197 +436522 903439 +436522 944608 +436522 947267 +436528 902233 +436536 834661 +436536 977825 +436542 962125 +436569 908542 +436575 715008 +436583 880069 +436589 1.23318e+06 +436614 702558 +436619 912183 +436631 1.16686e+06 +436647 968106 +436667 929744 +436669 946192 +436703 920831 +436703 935758 +436714 1.16815e+06 +436725 1.11914e+06 +436728 723092 +436728 843806 +436767 1.16911e+06 +436769 703717 +436775 951714 +436794 704447 +436808 1.14363e+06 +436861 885464 +436869 923889 +436936 883608 +436953 716311 +436958 1.1201e+06 +436972 1.14351e+06 +436981 854836 +436983 863639 +436986 954683 +437022 722900 +437022 910131 +437025 1.24096e+06 +437058 925719 +437067 730286 +437069 1.16619e+06 +437072 889900 +437094 980294 +437097 929694 +437100 749747 +437100 829317 +437156 984847 +437175 965025 +437208 919767 +437208 1.11989e+06 +437233 1.11111e+06 +437242 973886 +437292 878106 +437322 834511 +437347 702083 +437353 887811 +437403 928692 +437408 902722 +437419 907792 +437461 937286 +437467 989581 +437467 1.22461e+06 +437486 879769 +437508 877144 +437567 845858 +437569 716886 +437594 913464 +437614 967400 +437622 947069 +437633 915683 +437639 933289 +437667 1.03598e+06 +437678 941656 +437731 884469 +437817 864331 +437853 1.16942e+06 +437861 969272 +437867 754922 +437914 893197 +437950 953200 +437964 702594 +437972 900772 +437978 1.23058e+06 +437981 730881 +438006 701872 +438014 912394 +438019 830008 +438067 917914 +438078 886747 +438083 917528 +438108 993303 +438114 884833 +438194 831808 +438194 847686 +438261 967058 +438261 1.11789e+06 +438264 882461 +438278 944369 +438300 832700 +438306 906214 +438333 726344 +438333 880178 +438339 878200 +438339 1.01509e+06 +438342 704389 +438350 848669 +438419 938317 +438422 888358 +438442 889600 +438447 826514 +438456 921889 +438486 734239 +438500 963983 +438508 891217 +438522 696286 +438536 839650 +438547 1.04204e+06 +438556 924883 +438569 701036 +438600 760058 +438664 951167 +438667 930508 +438706 956000 +438725 961283 +438728 933011 +438731 1.11748e+06 +438736 1.16498e+06 +438750 855100 +438769 1.16994e+06 +438792 901653 +438822 844847 +438836 894933 +438844 912350 +438867 1.11677e+06 +438881 941564 +438883 1.00712e+06 +438906 928475 +438931 909903 +438933 756739 +438939 934936 +438958 753928 +438992 910811 +439006 852581 +439011 858517 +439097 1.00058e+06 +439106 698211 +439125 880356 +439144 699658 +439147 1.13612e+06 +439147 1.16197e+06 +439150 877472 +439181 1.23023e+06 +439186 1.22782e+06 +439225 902714 +439250 726664 +439275 699764 +439289 939558 +439325 1.03575e+06 +439389 949294 +439394 829969 +439411 832714 +439442 908128 +439461 761194 +439500 880842 +439547 862800 +439553 864525 +439583 947944 +439633 912561 +439681 889433 +439700 1.16818e+06 +439706 898167 +439742 756156 +439747 759111 +439781 756097 +439786 905039 +439792 711208 +439808 844864 +439822 1.17237e+06 +439825 968142 +439828 1.24099e+06 +439831 839589 +439844 918692 +439878 957556 +439883 922283 +439925 721294 +439925 1.02241e+06 +439961 700611 +440006 963172 +440011 759667 +440047 940656 +440056 914419 +440061 971136 +440078 760447 +440078 1.16916e+06 +440108 975264 +440125 757947 +440153 731678 +440164 709811 +440169 1.07955e+06 +440192 847994 +440217 924697 +440247 885425 +440261 900739 +440267 1.16962e+06 +440275 917697 +440281 928544 +440289 881628 +440300 927506 +440328 926453 +440394 887442 +440394 1.01665e+06 +440419 890983 +440422 954358 +440444 929975 +440461 829942 +440464 1.23021e+06 +440483 734603 +440486 836958 +440489 1.2335e+06 +440494 965950 +440500 916392 +440508 944181 +440522 1.23086e+06 +440536 711289 +440536 982753 +440547 707133 +440583 1.21314e+06 +440625 916956 +440661 878842 +440669 761306 +440692 927556 +440717 882989 +440717 1.11448e+06 +440747 892878 +440758 885250 +440778 935072 +440783 1.16933e+06 +440789 691822 +440792 985692 +440806 1.03231e+06 +440817 913489 +440839 932258 +440872 697994 +440881 758075 +440886 876575 +440953 693761 +440978 702317 +440978 918167 +440997 1.04628e+06 +441003 702153 +441025 851469 +441036 691094 +441036 1.2313e+06 +441058 942186 +441103 949044 +441108 887125 +441117 703922 +441125 1.03068e+06 +441161 937078 +441197 701081 +441278 763333 +441303 922514 +441306 909981 +441319 917186 +441333 730794 +441372 1.23065e+06 +441403 881639 +441447 878214 +441511 726569 +441511 1.03308e+06 +441522 720378 +441536 879567 +441536 928994 +441539 875692 +441544 757092 +441572 1.08871e+06 +441597 750319 +441636 939992 +441650 921714 +441650 938811 +441661 925347 +441672 732544 +441733 940336 +441742 932461 +441769 725061 +441772 880642 +441839 734361 +441858 884625 +441936 852133 +441969 725025 +441992 756072 +441994 877214 +442014 926461 +442022 884464 +442044 938153 +442097 690653 +442097 951283 +442133 719114 +442139 705453 +442139 894922 +442153 757975 +442189 935678 +442194 1.23204e+06 +442231 954692 +442236 705139 +442272 934444 +442275 918350 +442300 697758 +442303 697672 +442311 952639 +442333 956189 +442333 958719 +442361 964808 +442389 949756 +442392 876411 +442394 760861 +442444 697719 +442444 862961 +442444 863242 +442511 1.16968e+06 +442519 854011 +442528 915014 +442597 888647 +442600 725758 +442611 962872 +442619 884153 +442633 1.0495e+06 +442658 883142 +442694 835147 +442722 883389 +442722 929853 +442728 1.21173e+06 +442731 925447 +442742 1.23169e+06 +442761 941872 +442764 842386 +442781 724269 +442781 882719 +442783 961344 +442794 739803 +442794 834903 +442797 683256 +442800 883183 +442842 966853 +442858 697914 +442911 1.05502e+06 +442911 1.21548e+06 +442925 939647 +442942 926689 +442944 912350 +442947 908514 +442950 932686 +442972 947239 +443044 927903 +443050 699775 +443061 717706 +443106 697800 +443114 967981 +443125 899042 +443125 944603 +443147 847647 +443200 919147 +443214 889336 +443236 969261 +443244 752514 +443256 938375 +443258 881628 +443294 741317 +443347 886381 +443353 852150 +443358 759181 +443367 754633 +443378 727567 +443478 878272 +443483 1.06698e+06 +443508 898653 +443514 1.17266e+06 +443522 1.03765e+06 +443536 1.00373e+06 +443569 914203 +443581 890858 +443633 982139 +443636 862050 +443636 973769 +443644 971328 +443675 913164 +443683 1.00351e+06 +443731 716106 +443767 1.03729e+06 +443800 1.08038e+06 +443836 898172 +443839 920328 +443842 1.23109e+06 +443875 682044 +443875 975500 +443878 711736 +443894 937300 +443897 1.18949e+06 +443928 887397 +443936 1.22984e+06 +443978 1.22735e+06 +444006 926236 +444019 952556 +444053 729933 +444064 1.04375e+06 +444078 740875 +444097 1.03509e+06 +444108 833322 +444108 853989 +444161 1.18952e+06 +444169 949253 +444178 1.19112e+06 +444203 833308 +444214 841167 +444239 897803 +444258 690069 +444269 1.24068e+06 +444389 935811 +444392 901244 +444411 921478 +444447 885789 +444467 943950 +444469 957881 +444489 880603 +444494 922667 +444508 892847 +444511 908411 +444564 895439 +444583 689247 +444583 875031 +444583 931614 +444611 1.03638e+06 +444633 962469 +444633 1.18709e+06 +444644 889197 +444653 726850 +444669 731714 +444686 711856 +444753 701886 +444758 732125 +444775 884506 +444803 934283 +444814 702000 +444822 899639 +444889 715697 +444892 1.08056e+06 +444906 731114 +444908 1.03859e+06 +444914 731861 +444936 895586 +444983 845919 +445047 723686 +445047 1.14231e+06 +445050 734806 +445069 929053 +445072 964239 +445081 891306 +445150 883303 +445164 1.16041e+06 +445183 989881 +445192 880197 +445194 895458 +445214 994411 +445236 895744 +445258 1.21212e+06 +445264 1.09056e+06 +445283 939075 +445292 947206 +445328 675989 +445336 720036 +445339 704564 +445339 945261 +445367 1.22906e+06 +445386 877039 +445394 951167 +445403 697225 +445403 1.23366e+06 +445431 943661 +445433 684200 +445433 935758 +445469 696217 +445497 913925 +445514 949842 +445519 696322 +445531 942203 +445536 705514 +445600 905961 +445608 705458 +445617 725989 +445625 925336 +445647 1.23261e+06 +445678 916708 +445722 912272 +445736 687961 +445747 969019 +445758 914700 +445856 924503 +445883 695992 +445908 897672 +445928 702286 +445956 751694 +445986 715117 +446003 909628 +446083 940803 +446089 874325 +446089 956739 +446181 754075 +446194 862264 +446206 887622 +446217 1.23937e+06 +446228 937683 +446264 919656 +446269 900075 +446278 893086 +446292 921922 +446336 862344 +446336 1.21128e+06 +446356 726808 +446367 1.23105e+06 +446369 1.24052e+06 +446378 688456 +446378 695036 +446397 731108 +446403 931433 +446497 932425 +446531 1.23101e+06 +446564 832947 +446614 847147 +446622 1.11103e+06 +446689 901717 +446697 749817 +446706 701517 +446714 1.03852e+06 +446722 882425 +446803 911197 +446811 1.2306e+06 +446931 735625 +446942 754867 +446994 734533 +447050 1.22848e+06 +447081 1.00059e+06 +447089 962761 +447131 697911 +447133 934225 +447147 1.0342e+06 +447150 674619 +447197 1.23009e+06 +447214 737242 +447219 1.23919e+06 +447228 970297 +447300 1.16437e+06 +447319 932175 +447319 943500 +447322 924872 +447342 851758 +447369 904958 +447372 946167 +447394 931256 +447403 884447 +447408 890631 +447433 928522 +447439 947153 +447444 688375 +447458 966806 +447481 721767 +447489 928019 +447514 749947 +447539 1.08757e+06 +447542 1.22477e+06 +447578 902967 +447631 856206 +447636 912769 +447636 936256 +447650 697197 +447675 948953 +447678 932775 +447681 939272 +447692 941514 +447717 937811 +447747 1.22614e+06 +447764 949894 +447783 1.17828e+06 +447811 921458 +447822 886089 +447825 693839 +447828 939133 +447869 953514 +447892 952114 +447894 936019 +447906 958083 +447919 950969 +447931 897031 +447964 1.08506e+06 +447967 687619 +447972 1.06956e+06 +447975 698803 +447981 935267 +448008 749914 +448008 1.22793e+06 +448011 687783 +448011 900792 +448047 914431 +448086 1.24062e+06 +448100 955453 +448114 914983 +448117 722036 +448125 920714 +448147 718808 +448272 891694 +448278 929436 +448297 1.22793e+06 +448303 745139 +448342 873769 +448353 692744 +448375 1.08389e+06 +448386 687058 +448408 932981 +448411 1.2287e+06 +448433 1.22952e+06 +448481 930425 +448486 742953 +448486 1.23233e+06 +448508 937867 +448514 1.23186e+06 +448531 887881 +448547 934706 +448586 936614 +448614 926236 +448622 935306 +448644 752044 +448664 930003 +448664 1.23435e+06 +448731 916908 +448739 881428 +448753 1.07262e+06 +448756 919192 +448758 985183 +448778 977328 +448831 686725 +448833 694481 +448833 932828 +448836 931381 +448839 940414 +448872 878644 +448872 896200 +448878 943694 +448897 933497 +448900 883072 +448944 714964 +448956 854164 +448994 971147 +449008 935889 +449022 850608 +449028 927833 +449033 935661 +449033 941953 +449061 669906 +449069 728069 +449086 935928 +449089 1.07163e+06 +449097 896044 +449100 903156 +449111 1.16098e+06 +449133 935031 +449150 935531 +449181 731247 +449194 1.23316e+06 +449250 934625 +449264 913008 +449272 899633 +449281 748922 +449297 935222 +449328 960542 +449339 951872 +449342 686458 +449353 936319 +449361 946964 +449364 722056 +449367 936658 +449369 913928 +449397 935764 +449425 957233 +449431 1.23034e+06 +449461 686444 +449481 911506 +449508 929764 +449511 880467 +449519 910347 +449531 922911 +449531 929950 +449550 953661 +449564 905975 +449564 927656 +449583 1.24017e+06 +449592 896300 +449600 909369 +449611 907997 +449633 735878 +449636 938469 +449639 940472 +449667 923742 +449694 935139 +449714 936042 +449714 1.16283e+06 +449747 927567 +449767 856506 +449789 924356 +449800 932636 +449803 852111 +449808 888308 +449839 925558 +449861 1.22982e+06 +449864 734469 +449867 935714 +449903 1.23025e+06 +449917 931661 +449931 927567 +449939 733653 +449944 724003 +449958 928792 +449969 726717 +449975 917269 +449983 1.20215e+06 +449986 932056 +449992 883719 +450031 903356 +450050 720994 +450053 1.22782e+06 +450061 931564 +450072 936556 +450097 933489 +450097 961956 +450106 934553 +450117 999553 +450158 952383 +450214 927808 +450231 1.02036e+06 +450239 692903 +450269 930875 +450275 846747 +450314 927928 +450322 933383 +450328 933600 +450331 900739 +450350 991236 +450381 933864 +450408 932628 +450419 937889 +450436 920408 +450475 1.01601e+06 +450503 931564 +450533 932472 +450542 929564 +450544 877492 +450564 928058 +450575 930736 +450586 698828 +450586 921722 +450608 940731 +450617 834328 +450650 880342 +450650 939108 +450656 932017 +450681 1.22799e+06 +450697 929514 +450700 852644 +450725 934556 +450758 941897 +450761 933325 +450789 1.23485e+06 +450792 931469 +450817 943067 +450847 930097 +450861 932631 +450883 937342 +450900 929722 +450942 933561 +450953 935472 +450994 1.23394e+06 +451000 876306 +451003 914886 +451028 930789 +451050 932083 +451078 876142 +451078 932378 +451083 1.22896e+06 +451158 1.23206e+06 +451194 934022 +451200 932875 +451219 950431 +451231 925364 +451244 926733 +451272 945278 +451314 856167 +451386 903400 +451389 947778 +451403 891522 +451428 846603 +451439 1.22854e+06 +451475 1.22576e+06 +451486 931514 +451506 946828 +451558 936661 +451569 674053 +451581 851242 +451600 929931 +451603 930886 +451608 932347 +451672 911492 +451689 693850 +451719 938744 +451758 1.13895e+06 +451806 896833 +451825 1.22807e+06 +451833 692275 +451858 1.09246e+06 +451872 871208 +451889 672792 +451889 933972 +451931 953203 +451969 960194 +451978 933869 +452086 1.17864e+06 +452103 1.23198e+06 +452164 1.12637e+06 +452167 850139 +452192 966353 +452208 1.23075e+06 +452292 940017 +452311 1.22755e+06 +452325 880075 +452331 949397 +452333 932911 +452344 1.20184e+06 +452378 936542 +452386 686642 +452436 997767 +452439 935147 +452444 1.23114e+06 +452519 922711 +452536 689864 +452628 941242 +452631 1.22691e+06 +452661 932342 +452783 1.2301e+06 +452789 929850 +452897 1.22332e+06 +452917 964625 +452944 1.23175e+06 +452958 1.08913e+06 +453000 1.22772e+06 +453003 1.22972e+06 +453011 949439 +453039 935669 +453047 964444 +453056 937939 +453069 923619 +453142 916508 +453144 1.07362e+06 +453150 955997 +453153 944083 +453175 902083 +453181 852583 +453194 932022 +453206 927047 +453247 1.18087e+06 +453261 945458 +453319 973047 +453322 975197 +453325 937458 +453364 929969 +453417 1.23186e+06 +453489 1.11729e+06 +453533 1.19557e+06 +453544 1.17229e+06 +453561 926333 +453567 1.22839e+06 +453575 842239 +453575 1.22606e+06 +453622 685056 +453658 1.22611e+06 +453708 879522 +453733 849553 +453736 928897 +453806 947117 +453808 1.22594e+06 +453842 1.22763e+06 +453894 928478 +453933 938767 +453944 921422 +453975 1.2226e+06 +453981 929872 +454014 918489 +454019 926522 +454022 1.22752e+06 +454086 917439 +454086 968575 +454153 876075 +454169 920328 +454208 1.22669e+06 +454214 838183 +454222 1.16314e+06 +454264 1.17278e+06 +454314 1.2277e+06 +454317 849919 +454439 1.05407e+06 +454442 847867 +454444 990289 +454464 1.22638e+06 +454467 1.22758e+06 +454469 1.22529e+06 +454475 980983 +454514 925539 +454522 924544 +454531 996536 +454533 1.21129e+06 +454542 945181 +454556 1.12196e+06 +454558 944286 +454564 1.23843e+06 +454569 912731 +454594 695911 +454603 964333 +454631 911039 +454647 984861 +454686 1.22608e+06 +454711 897297 +454719 943406 +454833 1.18829e+06 +454836 1.22754e+06 +454853 929617 +454853 1.0897e+06 +454872 1.22802e+06 +454903 932475 +454944 1.22866e+06 +454975 957964 +454983 1.2243e+06 +454989 1.22763e+06 +455011 951242 +455042 1.22536e+06 +455050 1.22797e+06 +455061 917381 +455064 1.00032e+06 +455114 929800 +455200 1.23059e+06 +455200 1.23109e+06 +455228 1.23888e+06 +455231 1.22989e+06 +455236 1.22675e+06 +455261 925083 +455322 920192 +455344 1.22418e+06 +455372 1.00428e+06 +455394 1.22386e+06 +455461 902864 +455528 847839 +455572 942239 +455597 1.22559e+06 +455650 1.17916e+06 +455692 964342 +455700 935814 +455703 1.17527e+06 +455717 961731 +455719 889028 +455728 932242 +455761 924825 +455828 1.22352e+06 +455861 959136 +455864 929744 +455872 1.22398e+06 +455919 941658 +455953 968331 +455972 1.22992e+06 +456092 944514 +456136 1.23942e+06 +456144 955308 +456217 942067 +456275 685750 +456300 945697 +456367 894119 +456367 1.09251e+06 +456389 1.2266e+06 +456469 844744 +456503 953894 +456572 687103 +456592 924669 +456625 1.1056e+06 +456628 946897 +456647 939094 +456647 970494 +456667 1.2256e+06 +456692 1.08771e+06 +456700 1.21889e+06 +456717 1.22662e+06 +456722 1.18788e+06 +456747 948072 +456797 1.11038e+06 +456856 929653 +456967 904003 +457056 1.2152e+06 +457150 1.21463e+06 +457169 1.202e+06 +457228 931706 +457228 989406 +457278 1.21485e+06 +457311 944697 +457325 1.07611e+06 +457375 949522 +457394 919253 +457425 1.19194e+06 +457453 870644 +457544 1.22876e+06 +457558 936542 +457575 929622 +457694 996192 +457714 879947 +457761 1.11176e+06 +457764 926825 +457806 1.19216e+06 +457811 1.22532e+06 +457833 1.085e+06 +457839 847278 +457858 923808 +457869 879036 +457917 977506 +457950 880719 +458044 964989 +458086 961431 +458119 1.18489e+06 +458139 1.18424e+06 +458144 1.0081e+06 +458153 1.22741e+06 +458203 880658 +458208 1.20821e+06 +458225 918892 +458261 929683 +458294 957917 +458300 942933 +458347 1.00069e+06 +458350 1.09955e+06 +458400 1.19699e+06 +458406 1.19288e+06 +458406 1.22841e+06 +458528 870217 +458567 1.11332e+06 +458589 1.23192e+06 +458661 1.22405e+06 +458669 951519 +458708 1.12097e+06 +458769 932936 +458775 923672 +458842 1.06623e+06 +458853 953772 +458889 1.04552e+06 +458903 1.22806e+06 +458919 1.2396e+06 +458958 1.1949e+06 +459047 1.22743e+06 +459172 892442 +459175 1.19341e+06 +459267 1.16121e+06 +459344 904414 +459408 1.02159e+06 +459578 862461 +459747 948653 +459764 943622 +459817 941044 +459933 1.23921e+06 +459942 959764 +459964 684467 +460014 1.02636e+06 +460028 985267 +460042 956825 +460086 1.22843e+06 +460114 929442 +460131 914844 +460228 1.14177e+06 +460244 1.2391e+06 +460314 993786 +460342 1.12535e+06 +460494 1.18387e+06 +460522 1.18402e+06 +460642 886314 +460647 1.18342e+06 +460697 969014 +460706 936675 +460756 971514 +460811 886269 +460858 948656 +460892 1.22935e+06 +460911 945033 +460922 1.00629e+06 +460928 886422 +460981 883339 +460994 918247 +461014 1.23206e+06 +461078 976361 +461261 678408 +461303 949483 +461311 928672 +461336 1.00161e+06 +461381 934706 +461383 1.22937e+06 +461386 980900 +461450 1.15977e+06 +461469 1.22907e+06 +461531 953286 +461644 1.2294e+06 +461650 950389 +461653 1.23922e+06 +461831 1.03394e+06 +461875 1.22904e+06 +461881 1.2383e+06 +462003 1.2395e+06 +462033 1.23382e+06 +462069 1.19768e+06 +462114 1.19136e+06 +462150 1.19996e+06 +462258 976622 +462272 1.16028e+06 +462286 1.19099e+06 +462350 1.1624e+06 +462367 1.1212e+06 +462414 1.16466e+06 +462469 1.14159e+06 +462511 1.19901e+06 +462592 974558 +462633 1.19487e+06 +462636 965878 +462653 966056 +462664 1.06677e+06 +462667 950625 +462667 971319 +462667 1.00232e+06 +462706 1.18152e+06 +462753 1.22906e+06 +462806 957133 +462811 874408 +462831 960772 +462858 1.19283e+06 +463011 989542 +463044 1.1936e+06 +463192 1.1152e+06 +463217 954450 +463256 906608 +463322 1.13293e+06 +463394 1.17047e+06 +463422 1.20186e+06 +463433 942864 +463525 1.24053e+06 +463533 918222 +463550 855094 +463556 947919 +463572 982942 +463581 942006 +463592 987153 +463669 1.04284e+06 +463725 1.02327e+06 +463761 1.15937e+06 +463775 1.20308e+06 +463958 1.12729e+06 +463983 950144 +464022 1.20261e+06 +464039 1.01846e+06 +464050 1.16804e+06 +464081 943556 +464083 1.0584e+06 +464111 866478 +464164 1.17044e+06 +464167 1.17017e+06 +464281 902458 +464356 1.09834e+06 +464400 1.22846e+06 +464417 976808 +464425 951358 +464453 1.08541e+06 +464478 1.20419e+06 +464497 901864 +464542 927617 +464547 901708 +464736 938986 +464750 1.17602e+06 +464753 899397 +464775 939775 +464794 1.16254e+06 +464814 900528 +464822 939575 +464856 943603 +464886 876675 +464911 1.15798e+06 +464914 1.22937e+06 +464947 873542 +464992 876117 +465083 997708 +465100 1.14092e+06 +465150 916997 +465181 953758 +465206 942883 +465331 937100 +465392 1.02868e+06 +465436 873953 +465483 1.10901e+06 +465508 1.16924e+06 +465539 1.20382e+06 +465567 874372 +465575 1.20474e+06 +465586 1.22274e+06 +465622 921472 +465706 1.23296e+06 +465708 960828 +465747 1.22907e+06 +465789 1.16705e+06 +465839 917989 +465897 1.11915e+06 +465925 908836 +465928 1.12035e+06 +465944 955722 +466022 1.20505e+06 +466031 943092 +466064 1.20439e+06 +466181 1.20552e+06 +466231 976011 +466300 950886 +466486 970167 +466522 964194 +466542 1.20529e+06 +466622 1.22963e+06 +466636 1.1886e+06 +466639 924247 +466733 908947 +466811 680164 +466867 1.23732e+06 +467022 1.20754e+06 +467067 924281 +467164 1.22953e+06 +467181 944039 +467208 921039 +467217 924592 +467281 957006 +467311 939578 +467311 1.20698e+06 +467314 1.17179e+06 +467325 1.16999e+06 +467353 1.22988e+06 +467369 1.16769e+06 +467472 922253 +467539 895839 +467539 950978 +467567 884528 +467589 1.1408e+06 +467722 678344 +467786 884889 +467833 921064 +467900 681581 +467911 1.17249e+06 +467931 1.05312e+06 +467992 1.22869e+06 +467994 1.16555e+06 +468083 1.00783e+06 +468108 908181 +468150 1.01829e+06 +468172 958450 +468261 1.19174e+06 +468267 1.00889e+06 +468406 1.23231e+06 +468450 1.01411e+06 +468547 999156 +468569 1.22852e+06 +468606 680125 +468633 1.14048e+06 +468675 1.22265e+06 +468708 1.13944e+06 +468711 893139 +468722 1.13993e+06 +468739 967672 +468750 969000 +468753 965786 +468767 967031 +468772 967894 +468792 1.02789e+06 +468803 1.17363e+06 +468808 963164 +468839 1.02315e+06 +468853 1.03199e+06 +468864 960942 +468883 1.22687e+06 +468903 1.24103e+06 +468939 992994 +469006 972108 +469006 1.02045e+06 +469011 1.19629e+06 +469086 678264 +469103 1.17075e+06 +469106 987081 +469181 1.04004e+06 +469217 1.16897e+06 +469222 950583 +469233 980028 +469292 929194 +469422 1.22605e+06 +469556 1.23772e+06 +469631 1.24164e+06 +469678 1.19039e+06 +469722 1.18614e+06 +469736 1.23691e+06 +469811 1.23888e+06 +469814 1.23601e+06 +469833 1.20416e+06 +469850 1.04188e+06 +469933 935983 +469967 1.20547e+06 +470036 1.23408e+06 +470075 1.22908e+06 +470081 1.1714e+06 +470228 916706 +470344 1.22822e+06 +470381 1.22899e+06 +470533 1.23264e+06 +470625 1.09428e+06 +470700 886431 +470789 962586 +470969 1.2263e+06 +470981 1.22203e+06 +471014 945869 +471042 1.22433e+06 +471053 1.04712e+06 +471164 1.01299e+06 +471219 885689 +471269 885808 +471275 1.18379e+06 +471303 1.19277e+06 +471536 1.10218e+06 +471556 1.22433e+06 +471572 679358 +471586 1.00783e+06 +471633 1.22026e+06 +471700 1.22601e+06 +471733 884292 +471772 1.22185e+06 +471911 1.22289e+06 +471917 1.14891e+06 +471942 884072 +471956 1.20938e+06 +472033 1.22239e+06 +472044 1.2199e+06 +472156 1.23096e+06 +472233 1.17071e+06 +472236 1.20992e+06 +472283 934889 +472344 1.19851e+06 +472358 1.22549e+06 +472361 1.17369e+06 +472372 935300 +472375 884431 +472394 1.22356e+06 +472397 1.22515e+06 +472467 884539 +472483 1.22312e+06 +472531 1.22443e+06 +472586 685900 +472603 962586 +472633 1.01778e+06 +472647 1.22249e+06 +472711 1.117e+06 +472792 1.22251e+06 +472864 1.01922e+06 +472889 934275 +472892 1.01029e+06 +472944 912572 +472944 1.01622e+06 +472956 934186 +472994 1.22507e+06 +472997 965150 +473075 1.22227e+06 +473089 1.22002e+06 +473153 959683 +473178 1.19552e+06 +473206 932983 +473211 1.01381e+06 +473294 1.22579e+06 +473331 937925 +473333 1.1869e+06 +473353 1.16888e+06 +473458 1.05592e+06 +473517 968283 +473719 1.02754e+06 +473794 946039 +473803 931681 +473811 1.22234e+06 +473853 1.17171e+06 +473861 1.10925e+06 +473894 1.19489e+06 +473997 930722 +474019 1.22323e+06 +474039 970617 +474158 1.20292e+06 +474236 1.20309e+06 +474364 1.22339e+06 +474444 981236 +474497 991258 +474564 1.01137e+06 +474603 1.14882e+06 +474625 925397 +474703 1.15801e+06 +474706 1.22346e+06 +474736 948800 +474742 1.15927e+06 +474742 1.2226e+06 +474811 1.18253e+06 +474831 1.22216e+06 +474844 1.22293e+06 +474858 1.00443e+06 +474875 1.17575e+06 +474889 924647 +474892 928836 +474936 927778 +474958 1.21786e+06 +474981 973242 +474983 973700 +475000 1.113e+06 +475061 1.15998e+06 +475142 978356 +475197 921383 +475200 1.0089e+06 +475217 953981 +475225 1.20469e+06 +475233 925364 +475236 1.22623e+06 +475289 1.14101e+06 +475289 1.21824e+06 +475300 922369 +475303 1.22031e+06 +475325 926233 +475331 923400 +475361 962800 +475383 1.16118e+06 +475406 1.22635e+06 +475411 1.22175e+06 +475428 1.16181e+06 +475536 1.22663e+06 +475606 1.11545e+06 +475669 1.22157e+06 +475675 1.22631e+06 +475708 1.22221e+06 +475731 1.17681e+06 +475764 957511 +475831 1.22707e+06 +475850 1.22598e+06 +475964 1.2066e+06 +475972 1.15343e+06 +476000 1.22692e+06 +476064 1.22331e+06 +476092 1.14668e+06 +476092 1.22654e+06 +476106 1.22199e+06 +476114 1.19291e+06 +476147 1.11979e+06 +476211 1.22226e+06 +476225 1.22067e+06 +476247 1.2252e+06 +476319 1.22217e+06 +476369 958861 +476397 974531 +476447 1.17592e+06 +476464 1.22216e+06 +476472 1.2007e+06 +476481 1.21913e+06 +476483 1.17091e+06 +476492 996289 +476522 1.01415e+06 +476542 1.18149e+06 +476569 1.17195e+06 +476569 1.17282e+06 +476575 1.17239e+06 +476589 1.17425e+06 +476675 960097 +476742 1.2212e+06 +476778 1.16779e+06 +476800 991375 +476814 1.17282e+06 +476817 1.22208e+06 +476919 954308 +476936 1.14162e+06 +477033 1.22206e+06 +477086 919444 +477167 1.04156e+06 +477181 1.16951e+06 +477297 1.16769e+06 +477314 1.22551e+06 +477331 945483 +477342 975664 +477361 1.22645e+06 +477425 1.21984e+06 +477506 903342 +477569 1.2228e+06 +477575 1.22243e+06 +477589 1.18704e+06 +477600 1.22204e+06 +477614 1.22345e+06 +477639 981769 +477661 1.16786e+06 +477697 999350 +477736 971094 +477742 966078 +477847 1.22273e+06 +477883 1.22308e+06 +477964 1.22382e+06 +478022 1.03283e+06 +478056 922744 +478108 1.22376e+06 +478125 1.16896e+06 +478139 1.12679e+06 +478200 1.10672e+06 +478211 1.22314e+06 +478222 1.22281e+06 +478392 958542 +478411 1.20015e+06 +478525 926894 +478556 1.2197e+06 +478564 1.04044e+06 +478569 1.21696e+06 +478628 1.21815e+06 +478822 962739 +479033 918669 +479067 976264 +479131 1.22097e+06 +479189 973647 +479253 970325 +479300 970242 +479325 1.19037e+06 +479417 1.19002e+06 +479447 1.22303e+06 +479506 1.24384e+06 +479533 1.02134e+06 +479625 995297 +479656 1.18975e+06 +479664 1.16868e+06 +479772 1.02496e+06 +479792 1.22201e+06 +480083 1.1967e+06 +480403 1.22405e+06 +480428 983358 +480511 1.19902e+06 +480519 1.22176e+06 +480561 1.00929e+06 +480633 1.14072e+06 +480797 1.23101e+06 +480842 1.21968e+06 +480906 1.0564e+06 +480961 1.19779e+06 +480981 1.09048e+06 +481128 988647 +481131 1.05198e+06 +481172 1.22759e+06 +481183 1.23429e+06 +481192 961808 +481333 1.03633e+06 +481444 1.04516e+06 +481703 1.11945e+06 +481786 1.10111e+06 +481808 1.17036e+06 +481958 1.14312e+06 +481967 967725 +481969 1.06636e+06 +481989 1.22124e+06 +482200 1.22685e+06 +482258 1.14275e+06 +482325 1.01296e+06 +482364 1.01133e+06 +482414 1.22369e+06 +482556 1.216e+06 +482753 1.01428e+06 +482764 1.17714e+06 +482767 1.16552e+06 +482889 994372 +482917 973711 +482933 1.22642e+06 +483078 1.12249e+06 +483172 1.0239e+06 +483328 968206 +483444 1.03165e+06 +483458 1.00405e+06 +483597 1.07874e+06 +483614 1.19582e+06 +483636 1.20121e+06 +483689 999958 +483725 1.14181e+06 +483883 1.15555e+06 +483925 1.22494e+06 +483972 1.02938e+06 +483986 977408 +483989 935556 +484111 1.14337e+06 +484111 1.19526e+06 +484122 974103 +484214 1.22333e+06 +484500 968722 +484633 1.15889e+06 +484758 1.22324e+06 +484867 992094 +485039 1.22236e+06 +485053 1.11856e+06 +485106 1.10967e+06 +485128 1.22611e+06 +485333 1.08783e+06 +485344 1.23016e+06 +485394 1.21745e+06 +485467 1.17904e+06 +485500 1.09683e+06 +485569 1.13012e+06 +485711 971775 +485775 965203 +485867 933989 +485900 1.09231e+06 +486011 934108 +486108 1.18055e+06 +486331 1.12325e+06 +486483 1.18737e+06 +486608 998411 +486747 1.02082e+06 +486914 1.16315e+06 +487006 961814 +487053 1.19438e+06 +487125 945997 +487411 1.17416e+06 +487458 1.22401e+06 +487597 1.22487e+06 +487600 983678 +487633 1.01513e+06 +487744 969461 +487747 1.04562e+06 +487925 1.0542e+06 +487939 976219 +488031 1.02246e+06 +488131 1.00061e+06 +488272 1.00445e+06 +488392 997444 +488461 957625 +488467 1.2259e+06 +488578 996175 +488800 1.15052e+06 +489053 953142 +489094 1.0102e+06 +489142 1.03294e+06 +489203 1.22341e+06 +489233 979178 +489392 1.19434e+06 +489467 1.22451e+06 +489664 972433 +489939 1.22746e+06 +490000 1.22264e+06 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/Makefile.am b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/Makefile.am new file mode 100644 index 000000000..319cac57b --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/Makefile.am @@ -0,0 +1,31 @@ +INCLUDES = -I ${EO_DIR}/src/ -I ../../../../src/ + + +AM_CXXFLAGS =\ + -Wall\ + -Werror\ + -Wno-deprecated\ + -ansi\ + -pedantic + +lib_LIBRARIES = libtsp.a + +libtsp_a_SOURCES =\ + graph.cpp\ + route_init.cpp\ + route_eval.cpp\ + part_route_eval.cpp\ + edge_xover.cpp\ + order_xover.cpp\ + route_valid.cpp\ + partial_mapped_xover.cpp\ + city_swap.cpp\ + two_opt.cpp\ + two_opt_init.cpp\ + two_opt_next.cpp\ + two_opt_incr_eval.cpp\ + two_opt_tabu_list.cpp\ + two_opt_rand.cpp + + + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/city_swap.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/city_swap.cpp new file mode 100644 index 000000000..567f53fb6 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/city_swap.cpp @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "city_swap.cpp" + +// (c) OPAC Team, LIFL, 2002-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "city_swap.h" + +bool CitySwap :: operator () (Route & __route) { + + std :: swap (__route [rng.random (__route.size ())], + __route [rng.random (__route.size ())]) ; + + __route.invalidate () ; + + return true ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/city_swap.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/city_swap.h new file mode 100644 index 000000000..784324e1f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/city_swap.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "city_swap.h" + +// (c) OPAC Team, LIFL, 2002-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef city_swap_h +#define city_swap_h + +#include + +#include "route.h" + +/** Its swaps two vertices + randomly choosen */ +class CitySwap : public eoMonOp { + +public : + + bool operator () (Route & __route) ; + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/edge_xover.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/edge_xover.cpp new file mode 100644 index 000000000..5107ba098 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/edge_xover.cpp @@ -0,0 +1,126 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "edge_xover.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include + +#include "edge_xover.h" +#include "route_valid.h" + +#define MAXINT 1000000 + +void EdgeXover :: build_map (const Route & __par1, const Route & __par2) { + + unsigned len = __par1.size () ; + + /* Initialization */ + _map.clear () ; + _map.resize (len) ; + + for (unsigned i = 0 ; i < len ; i ++) { + _map [__par1 [i]].insert (__par1 [(i + 1) % len]) ; + _map [__par2 [i]].insert (__par2 [(i + 1) % len]) ; + _map [__par1 [i]].insert (__par1 [(i - 1 + len) % len]) ; + _map [__par2 [i]].insert (__par2 [(i - 1 + len) % len]) ; + } + + visited.clear () ; + visited.resize (len, false) ; +} + +void EdgeXover :: remove_entry (unsigned __vertex, std :: vector > & __map) { + + std :: set & neigh = __map [__vertex] ; + + for (std :: set :: iterator it = neigh.begin () ; + it != neigh.end () ; + it ++) + __map [* it].erase (__vertex) ; + +} + +void EdgeXover :: add_vertex (unsigned __vertex, Route & __child) { + + visited [__vertex] = true ; + __child.push_back (__vertex) ; + remove_entry (__vertex, _map) ; /* Removing entries */ +} + +void EdgeXover :: cross (const Route & __par1, const Route & __par2, Route & __child) { + + build_map (__par1, __par2) ; + + unsigned len = __par1.size () ; + + /* Go ! */ + __child.clear () ; + + unsigned cur_vertex = rng.random (len) ; + + add_vertex (cur_vertex, __child) ; + + for (unsigned i = 1 ; i < len ; i ++) { + + unsigned len_min_entry = MAXINT ; + + std :: set & neigh = _map [cur_vertex] ; + + for (std :: set :: iterator it = neigh.begin () ; + it != neigh.end () ; + it ++) { + unsigned l = _map [* it].size () ; + if (len_min_entry > l) + len_min_entry = l ; + } + + std :: vector cand ; /* Candidates */ + + for (std :: set :: iterator it = neigh.begin () ; + it != neigh.end () ; + it ++) { + unsigned l = _map [* it].size () ; + if (len_min_entry == l) + cand.push_back (* it) ; + } + + if (! cand.size ()) { + + /* Oh no ! Implicit mutation */ + for (unsigned j = 0 ; j < len ; j ++) + if (! visited [j]) + cand.push_back (j) ; + } + + cur_vertex = cand [rng.random (cand.size ())] ; + + add_vertex (cur_vertex, __child) ; + } +} + +bool EdgeXover :: operator () (Route & __route1, Route & __route2) { + + // Init. copy + Route par [2] ; + par [0] = __route1 ; + par [1] = __route2 ; + + cross (par [0], par [1], __route1) ; + cross (par [1], par [0], __route2) ; + + assert (valid (__route1)) ; + assert (valid (__route2)) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/edge_xover.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/edge_xover.h new file mode 100644 index 000000000..0fd20544b --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/edge_xover.h @@ -0,0 +1,46 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "edge_xover.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef edge_xover_h +#define edge_xover_h + +#include +#include + +#include + +#include "route.h" + +/** Edge Crossover */ +class EdgeXover : public eoQuadOp { + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void cross (const Route & __par1, const Route & __par2, Route & __child) ; /* Binary */ + + void remove_entry (unsigned __vertex, std :: vector > & __map) ; + /* Updating the map of entries */ + + void build_map (const Route & __par1, const Route & __par2) ; + + void add_vertex (unsigned __vertex, Route & __child) ; + + std :: vector > _map ; /* The handled map */ + + std :: vector visited ; /* Vertices that are already visited */ + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/graph.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/graph.cpp new file mode 100644 index 000000000..e73a8d670 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/graph.cpp @@ -0,0 +1,80 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "graph.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include "graph.h" + +namespace Graph { + + static std :: vector > vectCoord ; // Coordinates + + static std :: vector > dist ; // Distances Mat. + + unsigned size () { + + return dist.size () ; + } + + void computeDistances () { + + // Dim. + unsigned numCities = vectCoord.size () ; + dist.resize (numCities) ; + for (unsigned i = 0 ; i < dist.size () ; i ++) + dist [i].resize (numCities) ; + + // Computations. + for (unsigned i = 0 ; i < dist.size () ; i ++) + for (unsigned j = i + 1 ; j < dist.size () ; j ++) { + double distX = vectCoord [i].first - vectCoord [j].first ; + double distY = vectCoord [i].second - vectCoord [j].second ; + dist [i] [j] = dist [j] [i] = (unsigned) (sqrt ((float) (distX * distX + distY * distY)) + 0.5) ; + } + } + + void load (const char * __fileName) { + + std :: ifstream f (__fileName) ; + + std :: cout << ">> Loading [" << __fileName << "]" << std :: endl ; + + if (f) { + + unsigned num_vert ; + + f >> num_vert ; + vectCoord.resize (num_vert) ; + + for (unsigned i = 0 ; i < num_vert ; i ++) + f >> vectCoord [i].first >> vectCoord [i].second ; + + f.close () ; + + computeDistances () ; + } + else { + + std :: cout << __fileName << " doesn't exist !!!" << std :: endl ; + // Bye !!! + exit (1) ; + } + } + + float distance (unsigned __from, unsigned __to) { + + return dist [__from] [__to] ; + } +} + + diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/graph.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/graph.h new file mode 100644 index 000000000..b6a4adc21 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/graph.h @@ -0,0 +1,30 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "graph.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef graph_h +#define graph_h + +#include +#include + +namespace Graph { + + void load (const char * __file_name) ; + /* Loading cities + (expressed by their coordinates) + from the given file name */ + + float distance (unsigned __from, unsigned __to) ; + + unsigned size () ; // How many cities ? +} + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/libtsp.a b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/libtsp.a new file mode 100644 index 0000000000000000000000000000000000000000..f4e446f7e6a5d6d03296bbcda4e2c95d2a2b0a6e GIT binary patch literal 1682024 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 z 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Ν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

c6IYv2@}(UEa@|I~2(k%O>(B54CzB&Edw zYc!8_%jR9?A3VRMlxMOdAFxJmAe8nrnQwZ=xCYp&9Rfg4W!!M=F+vcjOd)V1QD&iM zGG?f6*1K?0YO?CLMEoH-HshlOoU-g92%fa*;IeX(F&uIlIAj}eIOO1P%!09Ajd4-u z`xL2_=vO{VC1CcmXm&Clx5&>vCCeQ-7j;dD{6vMwf2tEmkzWFH{~I97zl{(h@|Q!n z*HrboMDt%xpb_~`EVBv60BM=xY< zrl&8(uyvK&^wL~nn4Z4ZpOk^Yh!Df{^m)*u=v<_F27}io*gZW7WpdTgU|dTK)6;dx zrC%COPcO^EbpgcA(G7@>C32nbF$9*d|FHkXR~^dd>}+tu+sTyFTpU4oY%1OY=`ZfG z8cTtD1(=I>^%-a}`jk~dNxrcj?_7SkAgkX8W0UO(t1%4lP08R~hFK+CpfsM3SBla) zHhsz!yM!`yO0HJI0oE9RpW{-a(uelppljTK zcXC|~p--)~N;nfX@&*-h;v^6@AsOu&z=mTOdQbW1WN@7EUIv`99P4u^f^U+1|F+~!?J`F()bSilu0!zeJl{CpT?sw(n#4FL?2V>pnhTuJU}CL zl~BLYI0FG3`7T_m@k9jP&0f%Vp^2Ek8cfV;i~+)n`Mjqd3qhjjGJ;MWb+rAu)@r-} z80RJTi`DpJ1oFy06YaJ{G&Lcn#SJ%xHplCKGY+N9P3IbbpC^e-+4W(ebh#4I zohzF_%Doc+UWI5<&^I0G+MD;%V^L%MzWz3Hp&IoR6b@G76^P2!kM06Psf`aJls6~Z zB$4R4+xVIwiPwR+IMGexy$rC25Y69{yJ^BYkQymScavs?x}fG=3aa1N1-BvrlyMtk z@s>stOW(w(W0`k}rQg@feO2d3_13?WhpL_{@9XU3tj3=sJznf+x=HSB6vEV3FP_TO z^s98!y5MR=2!`=UBw{sw06&EXQ>tZhvP_rCyi2L{sW*_BU7Py#mc>gWo!YQP?b^uu z!PF*^pw)OOQsf1bc72@Q(zo{YuTLo=1S{|W?c3!-JO3IXyoS=0Oy4l6OJ?4sWcpo` z(N7E+{Si^Ah0`xHta&aKPA943o!EHa%5X-}{9(gxyz=JP%$24@ zoRD2IK*$%u)QYFlW@|hlKy0bH3>J>e$>rs5?(mf!?;`EUq5*UQk~%;UkNV( zgB*;&(fCs}o=6A$ktRMG@rZ86L!p_4eTB|J3cOB~ze)JJ9Dh3ZGvrw1Uih2IMsd9- z`RIp)OYUcQ7`IH>xt}Y!w|oi7^QX@9M0l-kgtt3HzKO@i`|wx>e3N(MEr_2v3=J!j zl;;_z={+LTXqNp9u?({fEoic=v53JRs~AFRt!yjYQOek!ORY`9^Q+~?D$k`pc)|B^ zPYz;wF3sA^3DtAy(C|*Aig=QWXS#}94S(btd|Zr2+kc^`4tQVWU#!EseEbg|ycHEc z-GY0OGVe;|uLgg6RH6k*^FM{(-GZ+WZd#CWM|o0OFbkabC?v!doQU^GJ|83S*f<@J zS-`hj@IA!mez@I&%n!|mNzdJa#4@whgfI%2h;Vx%f_s)EmTQ&_-2*=_Y2}YZvJ^$I zo1G~P-0Y0$ZuW;!luV?+`H#*1Kk!F>&&LyZw0-CX?~9B@?8s4k4CBLt2Y%A*?H|DN z{0OuXgXZFIn+I~=kB&!UOk4o()%5Nuv%Po1Yju7HLWy@0h~L_Pzh5D&eL@6A2NV(+ z(uKbd5V~0|S-TXRrwia`*kF3r)c4A!n=#l91I>R{e}ISg*_lF2R9xEXLYQ}ntq+7-p{t`ng}lpOJ^sde@#Pw>YlL@UP;_(1 zWNg=6m(@+?V*7^1xB|#HgRnT;W-1cMI3uzcuaV>UsKO(-nvXCZEo>k*sM?_-U&4E2 z7a!XRIsw$m7FA6u(ncEIz{g2=NX=T^cUZdcDt z`c-Bod4+6{PEN2I%bRi0_~A~=={tRO%b9m+IsLxAg@y45A6wtfcdxu#jqOOLBhh^? zy1LK2OEUVM-M1MLfFIrfQxu_R)V0r?QiM1;WVQa0fBg7Fgys;YZ+^a~Q6Fac?u@ptI z8rK3|0>aa9Tbk&=5p}|4I}DZG4XjfWCDwC2DNNsnY^Hq{-iQ--AOf#U-hUMt!D@UB zxV$*o;L63wMtV#%hlFbO75Wjnk-A9!iZQU4V<_}EL*aDznmCn11~)5bxhbGS=3Y0AUw$>P32y@pzBq;}K_% z9R&uMd3L0Mfs6QE7axQ{KOe_QvV zhWprJz|81Wk-t#9+j=LuhxNA5+ZkO0*Siq#^!2VIWZ-&lAou|FJ_k4h)cY!e_EYcs z2zS>z!4M(aSsN_t2~_S6_{%s`MGD}LQ z6XSHr!yLVLf*)ke5h;mRdaS>w9{%HmnAaaW4exbAtfw#949z7tb`~OKv!Rbuk$vz- z9>c@hIKjJ;|G#|gjL#CfK1T7zU`spHk zw%W$&=RLGT$`oW-r;o?D=Q`?qRQ?J!z&sV1&bm$FqmYjy@o3|uYvZ7%zkoOLGd^y@ zqm9dG2YOoM`z++w`M8LW9eA{HeeR%uz6dyuk19M8(_8pGG`x++S|3TA!F>D+kT54* z2fQF{&BL5{9UM2U$r#Jb5L)4*g;VeaXrqipDsmY6?Gsk%T|9z$@CJ+VXyGJ#GaE9) z6FHGc0X}9D#O3j`1ihppx3c?wz{eHrL(YyZoLDJntGiU>V#eCRM=u`1D+rRGR=6~Ms8TT@An<3Hvvi=yH?l;`e3THQ=bX_2Im4O%^aAcjVE5Q-MS5n@cD0O! zu0r5qUOYxSW!jl04kou2yl^*FPl1w>UjDrxDRr&a_)#1Gt9aoKnhSqz*A9(zAsnjq zy1p!a(emAnS8md~s^eNJHa-n7O&K&;R;@1Z8S&H5kXJ88cG-s)=sn;r)NcW(_Gt8J z#|D->n^*yO&x~8%5!?dvTzcwRCw5{!LW_+@UwB7EevjAq^J_4);LrS3zpgWMnZ*^E`u*M&^qu@+Z8v+>FOj3|Oin4@w*hUzh4Y=FIp*{7L4c zm^qKtwJ}A4UdNx;FR6y#M?^b}DIbQOjewH)+p-I3O+`#er-11^03W`wNP5aZ_YA|I zcl-|ZDG*6B^z#CC?}RW(!uDontH^!uw^*UY&0Q-)&>HERJ)+voLWp(u>zCWAMP%7HIlS^=d1M?Zd|?L+r1^cFzUcx$hbhgaX7jG zT#6r~JQ{1tih%dJd1i}8751s0&Oz8;yeol14GWU)Q{kf#_E&Ei@SLzs%Mtdj_YMrc zS8P0qdyMZZIW9bjJKo3d?-|dHv7xOyoHoo){EUM<_lY zh2MRS=Uw=5I6;U1UpTZ-@&%0jK6Ntarxd%#;7n)4g{F3^NHlDfdKC{E>o8BB%Jl;; zQ=RRE`F5*~(XCeLV0AwRjmFFBQ-PC!ceq@9r^B-QRQ*DPjZn2CZM?$Wsxut7N{>{_ zAmeGgx;|9~nW6M(^)XhSI_#Va)texuQolOUiHkFO>brvwSg5``(?+yB7piYzSd^Bi z3+Fq5z6%v^=PEr$9fviLPSVP{P@TiTiE7VkCoua$bryW3Q&dNZ6Ighm`T^6dP%mIe zn&>FziK7r$t?ry+2j1ML#!N-n3{`-FX~YvQRQH^Suvx0mDY{RUSU~7gGxGphqJE7z z@|_+tkRN14m#gDJ%{mN?{xb~Z(vwsk2Dc9L^{Jukh}G)XgY7U_i)ZqKwD>?;=@xY| z2J?a~Ofw6O+=E8mraH&jVc8}8;@)l*?&-ElFH#Q=!(BUqtoEn}P|ljF^OwN{7JNu4 z3t?gONKN%*^r;E+>{0Dw5H@YrL?_I*M|}?^teJiTc$UG-+M_&(RWsw;0@;#QPd<5)MNULK3z zG*;@LhY!OOT?P;Sm-ocF%iCI;%3H$W^46-F=~KF+k&U7Fl(yE6o~`B8Wff%=n?kW@*+%v=LwY(|J6hwdp|;lT(TEQ2 z#;A`5w;(7|7Vd&12PJuDEZ!XrwS!=+Ezxkiv%4%F4%=y%5J|Hm+KXJ;I>R9%ZM3{P zo7Q-=+k_xvkV&|+qq(&O2$(l&n|fN?;!|2XAf5n-4^Bs-&CE)_0SQEk;O^Fr79Gqt z1cPl68BEwMCh@e$&|Dcx$@^(ltSn7!kw0VP?r!{iYGnuFbs>UCcHX1C{Iv#{pz3b#(<9 zDH!h#VKnJLciRF7&CS?ICz$A0G<17wIN00S%^pPqH}`a)be$dWW$FHKg&-B%7iwdF z*`2MiT|H;w+98sol+Y=gLtQ|Pb~b8C*~rZ)Au6PZU$k>Yv^&-si$^S<%DsC5@YqM?YZt980)ahF=N1ZQCX^eJy!+?!il=xwi^ zQrr@0|y4(RsD-&VS?*U#9nAtJZs$FYf)t=?uI3>}L@6 zsi)R^j^`2YIcJ>!x7PdMnOV)gEbnceS^zINs|@cSD*et#JI{=FBj|>V8{yfvy>`x` zz6cPX$cTH-Km9!Kuv*_B@7fapTXG(PAIi8A!I#*7#&hQ^e_>*U?Id*ndQpDRmYU8ZCzkm#WXJrw8aT(sHt>N36`q_y3{#niN zT%>M18RdEZ%tsLPlzIm5H=b21?OIT*TTd3Ve*27CcrNi0!G3Qx?-}0T zTJIu{J~W6_FvI&j&v~95`$$YmNxAba>Jtl;VJ8b>-J&VQx z2eRP!USnoE-t_&FrIq}E-`DdYGVELTx83V<`_BA$_nFzd7x?;4E%Ei$mP~kd!ao^* z$IBl}T%!4Y(9U$I!uNu0?w_|tEHwlRZUhF#wZGa@4qzCQ1FP`uP zUfjL(_kAx*_naRJAYgRCn{FrBCe% zyt`-Jn=DV?5|dB0sX`!oQsAlGtDZ&8ybFCu9wdjtFl*wPo_Gpi1sIZMA>&BIw885! zG$ZogznsJY^o=}+Kvk{CWKE)E|jI5zP-v#Jm2+qzAiv;WV!?SjJ<_^oiYRdUx zk?4dUzstLD2Zn?@9;P}6?v95wu@fHHrQX3E1n%r{=o7}`4$dy z(%Ik+N4X2(w}16`vFo#7mv6z2j0NXI5U|{3&f8+J*Gt$9f3&urq+4eN%@&{+M?X+%5oMh4`abVV5BZ4>gg3 z0FEw%fD!l6W!>1hUC(_wZEFWWG$%t5ubSB8_N;)RiP`o-nlUEj9 z19!^Jx*UT)C3BGzWuU5%=u@jQ5H1HoDlU{IthSGC75-2GItDeV)CM(+E*8UVAv(~r z;B{ps923i_3xfF3cxEt^u7R`K^5YAXhzDEObR95IT}kw*b!A(nG%Lpe3XiA!R^Ukr zBPr8equ;aWZjko`DbpX4u(*$ISifh{?UMHdF1*M_r%RVZ!yY2_@_ul*9IC0c(nIW0 z82}$4EoH5y^DmPuT}DGN-kjglcw@iQeOumphSD8{;t4&#eO=yrhSJqJUn=7tX!0{T zXVEn!%Qhf!OddmBdE~nC7|Og%9=WbO9HN_tR7^G667ZfjJCBp`(uzOyDZ!N7@j46+ zZx?a(G?Zo*kr6~BVz{8E19FLm;we9t($1NC+NP9F&hrpW)hR)}UBu%w0fR~rnrbo2znTem_Y z40d#Ow}&7S8cjrPPe-h^r6U?CZ0(3ooLq<%{;XMAeoO)xh_mia0?sMKzsZH}q~=(I zLpu9lM-ndbaN{NW=2&+iRxnu|qh;8RVCdk}NlkTelT()ejmAhVP8nFwfR+5;FJNkM zX|MQs>0;I_XuM)ki>6+mKaG@y3^&e2F(>c#S+06FBP@ z-xK(|7Jt9O-}msx9bo(SzlC=O3a|rzyYP3JT^P8ZHQY|)2E^TqzwhJkTKw6+1Hr!v zL^}@CuzyVJ7x<%y@)Z6ke>{pm`$w1^MjZS1S;Id>#0>NY1ry3W_OGq8qoq(D5HT$5 zs&w_l9r+^|54BjqwaXgf)3x5Yn)?O;tE)4H{g^G$Af=NeglWP0_O7;y>R>~#H43r6*u8bbA(0)fgDQ>mRQ?Nn=L8m7eVcqas9w7}wqSaon^w5y^Lvt4T}*cJ_Kjz$7obZKXF zN4wfkiNK~!o5EI0G_Lnlq*>ka6jO|LcXxJ6k~1A)qGCor(XW0*xFHtkYC{cME!~=W zcZQ9UBx}vVM}E5?N=A`rLws6qm>c5KX%$lwy9d*{upbpiwWTfR<3=vgCkc1FR3=v)n=b%TDHUSe-r_+XqP<&1n!IFI_D#uGjbw^Kov>W?Gdf%wN zIZ#o#F%(0yqUBrT+t3qBgNAI-#_?!NXZJQ#6O?1MU?ZxF`-riPoxNS19GDK_0wraU zV0D6~xo>&OI>|dWU2BvBo7k%eYKT|&hG94%dsY_gURt@v(CMUsGGW$zevd$s9AqW*d&b zEzTaYP$RaZV?lDx=2$ek87wupy|V*U%faj-LYsm~gcw(BwEATS=-W;G=B7YkQ(((U z!G;;Zm5WcB3i`lsh)ZVd)NXV+iif$d1B^kK07niPhFyBbXm0Ba#m#U6Q$Ii<7N;qN znO%@kypw~{HPKI#VLTJrgo7Nu0q_m-9q_M66xxaQ)((~!oX4Kc`c-mTb9X0Z9E|Iw z!S)`~GWbELdt1=n$xoWaCc9~Cj@2xaD5f2m4zw4%Or|C5mIXsSTcy0Q>DXR}5F#@e z(svn(m^mUTmlR@2CA_BANNYC?0$_&V(!z)o)C-FW%0dnC%Ibk8qxuz?|D|Wqsp#2? zAUMEDl|c{-JD3y(HY_Z+bt{CEv$RlU=|wnjU|7)+PU?q>8U!aQ73}PQlwqU}BjGe~ zYK%Aa2$yyd>x`Dp&In9)0-|U7Y>FNVXcPm4B9gh|v@m9hZkC}TsOP7cv3~%=qWz7Y zRG5h+x$aa|usiM9lL*w48>N(VikGEwx#H)Y=m3Fw+Y}S}l;75?XE1 zt*zlsaOtj%tuT{;pxNFP>IOM?LLde6mqIkerbXMkG^gmmOqeXL_M3*K+7l;Bz1y#8?8>JUe7HVn&2jVpp8im|q+dwIiU~g-DBTQ9bBczkTq)EBj*zg24h0QG0 zU#v(OH&U<9#p^BDVS=TFA?R;wZ|ZEbntNL#Q48atnU7XJY#F_Io>(*j$(|ApXbhX|TOgooKc-qkYtGWftX!s}-9wQGM6>27OD&@< zNW&eN>B#Ui!Yps<_FH=hA6N8IgyGRZF>4!eSNEU1vA6P6*}-3QKUO z0PuBUs|silt|VZ^O8-=*%w~Bj9}FxJ9>LadBterSmcJD9g_|2(S7&f)A+)<>`{7%$qf~5UE!_QUO6s zOyUP(&mzP@Zva|osK)AWDG3=Sf^Csj5xYr{QjwIbZN<-l(${k~83p=co2;}+a7M@L z5`>a;fRLD$H3ap-5OS31?Ph47Acrg!ji|KZ0XR>Zxd#dth_c8R{30GJBqW}vvmh)4KJy+J+u`}2&_%Fv%}ab zrY2V1sjzB_YpH=1Q)6K;ka%lzYZ$QRwor><8A+{OS>d8HqYb1KxMFd`R9q2*5<#0T zTJz@aP&jCKGq_Q#t3&GswXUr<3Cp@orV^hv^-qd8kvT6Xm#}J(jk>o zQGHp7QD16v_kgj4PwAj49M{u*@Y#nOBw6annr$gGNDZhiVXR_?OTyKXs8+<0O4t}= zKr!l`Vvt#>;&k+t7S+C|^|V4Qxh%Ad>AC27TCArD^9Uv)?51>gw1nGaXeAC9;ONJa z<#Uf;5)9S{gKMYB#`?+{``ki(^Cr|5Z7Qo1(loQxZIZ$qsyN+jv7AM*nb-B2U9<-c z!In0hyg_um^KxK;T{e3p|5ym+mmUp8Huc1eUaJ2(Se9=6)B<|doLJEr&A-(iZ4YnM zGiC~RnknO@y_2oxUa7hG7?)MLLN-Al4rA!eq)nFA97zYedL-ReOd6imMa@=k82T@c z&gRyw(TH=x#lqASjAN3ELDYy*Z(yj1x?zeFafN%lMq$e1&n6F2y*&%{_F0Bc^qXM99r136YT}@dkjSAT;Sn@=cJ9G2TFw*DraXkL}X z<~7SnXk;p(1<>cqT!$8ur-F3Un{JtAukq8Y5U|NOmBrAydg|T8f5m+ zYfcNx(MV@|Fcc2M?84cpm)#3(I*<@Wtzcj)xXHq0s|x2$np7x`)t6QpvVU8176jYTimDmH(x)`;QG1vI0x9!C>5%K1y-_et8pRFS|< zB;>g%a+6gStgK8(s;%fzAx#=DP~gV4P1OKef3C71V#Y_mLD6)rmhj(ClN_7hwjwq8SO$4V5&3+CLatq>>s)PfqO zAjk3s?=>7XT+4HrCYw9%9V)YNg*v)6B`n#lk$Pa=rqv{xkYbx#yL$EV>9f-!*3)Jy zzJDL-Wqt_O3U*=BZzUcYZA!AnFxdxfCKpJCnzRgWn?59Oa-i`mrpuzmWym3G7SYxb zoMHro-4@V#yfdPmX6SKFc0ue&*>-mPGtr&-5pa}sBi&%j`mZDvP5G9`&Kr|#SQ zJI4~(GP1UaS#4UoHPFt{p&ELJCLc^-WSQ+0-W?*v@11<)t1_g62#(;sDpElc)wFAi))`zfQ2y)?c~!*$mSQ0n4x56OUykXJJ-Idlh z+0$@|sVSm??3pI<+LSul8<0kn5iuxz7wj*U>1yiMW`v(z#1d6U3Ij^l1L+ohw^Lm?7<|jqO#6$~7eR>9)~&5~~yz8X)nRO+-;b8Es->P0^pp zPTy)aJ-JHdrWm@cS+B%pUPw2=8@&+M3Jc7-5z}o5+nDGqs1fv5tQ3iRXbEjSSzN+k z*QMA^9-t|cOc+bvh&J5gvIx6r98|)9Ft$-<&6$`vC6eS_S6heWtb(~CKn<0xmf}(h zdox_JV_OxbXlyhzf>`QvFz(;d4U&*;FI_Y{Rj&CrjGT;lBnUBv?H*RxF{rkT(k)5; z?AK;96INL(V3iey{hG58f&EV-4!6cOamN!)0R17(U|>(0eb`jri+-$d=_l)Z128`9 z#l}kqFtLeKPxT?z;Js$QFTo|NKna1Z`q%=eRw8ZGV z6E%*7nz6!>L1J{nw3L&D7{<*s+q8(LvPKuaUpkQED=C|sQVmB&qg8F{kZ>jsa5=6b zl4BgKK%z}W9f?U+Qf7e!_8<(sgVJ#OX3fgd&W|YE|B8^Jt&v4@Wh+$WJOy@=+jxdX zj5OH`hMzjKaux3X6do@Zq#1hGv{AuLO=IK+k&HIJ+G2*3thHCrSz-MS(Y!It!eOKP8bC2ug$lZ-Os!pTFXYn6QIuruoiwc3F)e(?V_LKWF65+P?;K);I#=6$ zPQzs^Z87UpyDapS7!2q~tc&bx7bW#nF?O2lJYqa>UeTNXl->r|pn?XI0w4^taR5M@ zi=E}9&omCE{Y37xC4xzlY?BF$Et;|)%!_sNS8ZI%(NU?2ZY-Fh<&|AsEV7J%?47RpbngSy`d7^XX z4%r?G|{X(8HxVCq_S_cqo*>B*}h2 zPVH!t-7T0xmSMMoF6=bJczXwq^91*kR;2EwR8!VX)%3U~^cl9Wp^4pWF-}E#SePZY zs8DfgxwV~u7LogJmn4mx`RUH&VSkPaDp|#&M>#w+6X&UEwx(Xif^Zw~%?N$$ICa1d z)Q;w;kNYsKu>}KFpmwNHVkbuirrEV+2KL@6D{e#(dn{GOjtxO7)S@R0`WH&fY0)OxZ{Vy`J@b)5TrYefT=a;9+q69P<1lP3h~Ci?S0M?c{n z#OdfG9UC;l8h7P1wH@UCnQagZ_LG<)VCH>@r|y)sAeyU|oG=*IlP%hd8_ck<5FG{g z8uj@d*?@FTkq;mOlkH$Bkz`{8isFQTdg5TNG2j+6SZYJCesVOIns8z%J(xxv0UP=x z3mIezlVj?ZXz^xW#U-7Skhx|UHLw;;`|CJhc9W{(Agk#oaXANK4^A|-&7xhl=Ka(w z?Sbjq7+A{IpH(}@lZ>&Jy@~=IVXM1a%o^O2-6pv-fXk1RCAeOR_Ft|g>!p)@m<8h9 z+&9w8IJx%P7Klxcxz4m3mgq>jGxcT)Mm_2VOF%hT0h1=%fB`2|nvH;i%Hj5nI69Kn zxE++k4m8*k`(T(!Q?FDoLI-K@KX{^3ZvY@SE-aJm(9B{;ugTLHyIIYUE^Tw^SOs;W zVpU=6_OOJNX$VS3-cl~)8*`lr3a8t%aH#$N@y!{BCLap?)S~F23-wCk_z91^%JCvv z{yPWRq4cDp)_vFrG;@GyD;-le*ES>$YuZQBjo{eS7V6lH1%u0kRv%1Yacyy5cbT^P zVtL&LIS`lhkt|jaI(*2+a->tNlbV~`aP&*a-Ii_46*Zcv85!<#)XP3njcpGo{n~ok z(Y9Lqr!OF>Z4R}?qLbyR7xFP|cnBSe0PQw>a*3P9^fgK9O68P}1(B=R{e-F16Clul z*caaz1#C4rfo9r?%`At*C5=Ff+bLAif-SnXlUh5{U55mQX*QM6y6rHP?T~{s*o#05 zbz@IabAO}h6RFPWX!eK8*vVmskeo=o!Dt({b%LR0Xah|$$;If4K1SJNo zy~JtO4jC0~l{Ass*KfJhc5WHajC#8a82Ydv)AyB%*v108M!wkr#0W5VR5b+oaV=o& zudS2!5-FLu7fCWk90LnSc##Hl-}NFz`OIs(Wv~jZN40pVf^EI#oF$W$fEHTzxBcd9 zyCh6`o2Vz}%2Z1&WFELrMOWoBmyyNLQT6OWs!Oc3HT!qe`c)8~M4C#RP7=n)trv6T z4Z^m*41;U)D!Df*^~SLjvkk|%jOry3K)8vHcejYbBK8+gof|gTKhSl#&i2Zbhhv=4 z#MLH-t=HJY)UbBvMiM#tW)w15jF9mPHzP6f3OP5OrCG8y1f`$lz9t@_;KnlMUUO&z z#dncun&>Oi>@A4i3)izjB`3$g^e(ZbuLaPTWML^I<(7wgbh$cJ?%@$DYP76T-Ql7w zZJQz;NDF+utb`Vedq%P|rw3^2*#B(DL~YIjGE1`@mNCyp)-46qg%o?B%ee+v}?n6tfG5j}lgZ-_goMO!8Iqotd2 z8iL)eEgPvYl&=bjaXvht&Z^r=$aByvRBo3n*V$pm3Sas1F zLYwU3<^yv|pE#UXk}jbTerg~5!kFcZ(*==IccU3`MnB~ka|dHM?WpgC!Zlhk(*!bx zO$=DBYwH&r|B*4+1d=>dbN!*oN3S^a^;niR(&Kz*k1o9;3r1p{xK*zs0&5kaa@(R^ z296G~`-clrX)7aNi?N?eyiOg*&JGT#uHUgK(`Vf9r#%tj*fO$j{z=T}mQlsFn^`H1 z;=)lP^kdRO`*Lf8T=&4447Yn?V;EbcymZD*5;GEd&Ev5a!agHE{$*{ktz6i6va+>} zwP^pKSGJqvM5S{rqBI-DBbwM?hNIdjvGHfJ;RGZmeTMAQ8Ah=aWPp8k&fZ1iLo~eW z&_&7yn``|;-kEIXWO5E-ZeaOb`KPRNup!{^0?|~^GL%{lQ6`zX87&ILFTE&`U{{*y zW~+2dSzF`O+o?BcEOG--CFIW@>C6M9nPvuT*Sj8^ln&YWch918c*au8TiOW4+{pwr#wTV6-t6x&9n6Y;a%oAS}?9&XlG*Q8N% zzg-TyRA&{Lz#LT-x$mraB0 zU5e#Qzgz2s_&+<>0e6O;g%(QFt1%dGu#(DRjt*KzW3No^vW&&IVOrLw8F1U1xyiDD zYOJv7OU(z-a0l0;?wMP6B&;!PlSS|!=PnS<5{$3}iOfDhXfK)^0Sk8(${GA-b1Dvo zf{2SQuSp&`9BC^S_hP}iq8B^>Hy%QS8(?%LjmMP5T=Eb|_RX=hOv|gfvGqbOLzZHT zG-g4JbHH(cjA=98w1Dj9GtGtD$#Zm3&H)|0QDycFAZssAZvUr(T0{z)gRq>(Ei7^X0y&r#UVmv35Y!SuPO*#tbedpxx=kUFQb z?oJXFsSaPX)`ZfpOZw;Y@92rk@Ja1pbZa=;g@G(rLAb~lvl5Q|OF(pE(B;$A4W+jR zYHwFhlfD_pl>$!TMf$#q{O-4v^gWKI_VNxGUeWp5*j4 zAierD`4#}ro!*PC^m1J3Z8hof<3s#ihxA73S9!AR{M((9?|r~?f56CYzw=Y_eGU0` zA^rsX<>Ak6zc);JaOC&Wh592-#w&U9U4fvOzx{g~c#B*CHeLNICEqp2Dfw^^^F11W zcD^G_dUn1w7hw$Bi5on64+oyR{j%zme7=(DkyqI16{eK$KBV`@45pxec2WH)=}kp? z8$jGlk92LPSDupIcks2E_wB+0&rWYrN_v-osoCR*JkL&VUP^jj#TRJS0B-;6^o~nO z?`ueJ5s+BEBK+CuHKwHZSERQnO?_9Ur1v7yy9E4&>5X-z7cuEgMHqiGzGYeeJXOE* z$@1~9GbP{3e^^!-5zNo7$JP|Q4Zw5%Y&?!BpgKR|UEm6^@#wmm-?|E4Wo4gFM7Z6~ zr2WD8b49oA8>Fn+t^hkdpe6m>;Xdn~Pu)PT)7v`Ko0J3dW3MEB_}+TLgEz0kJ$0~G zC?tX61;=GOtiT`ZfRDB(fOzv-LsR_2QvBqIiJ#ZuqB_ir)G_tQZ!VrpKWzNWNum7w zl;Z~crO%(7D)IALM&qZI#0 z*O*}W#=+kO_Zj?+ApOZciTie}17Cc&wz}e=FZpfd#n@0fI9I9RzA>Xg`44``BiOQa zYY<<>i17;&IL92^GF7tO&mxPZ`aBCN#(Wz1&`i zw5@ph32Rt2%hG8mtIn_@ES0NqYq-#t=E2 z!n9Bb*HdafxjjyQSW;mu)-wDUd}-C--Ag~1$x#@3o+*|!%eZstPPHt4rPniF%i#*s z3ugp{c|4b{U&~f>$=~QAD{-e8m-#V#nQ`UI!SH_{Wn}pE#=Y6Nw;T6v_xC@QD+PE>}ZZq!L z#_coiWybx6aj!D&HO9TsxVIShPUHUExDOfkH^zO+xX&B+CF8zs+;@!ok#Q*ku)c$g zd$@7)jO#aUv2n*6x6HWJ#+_x{xXX>(Xxw$ijTm>cabw0k-MHr&x6inj824Mo zz1FxtGVX20{h4v^Gwwsi{k3tQGVVU(zG&Q6jr*o?-!<-s#?1gtvz@Yyn`d0Vaf^*R z-ndhZJKeao#+_^2MaEra+zrNUHg217yN$cuxaSymmvJvN?$?d`ZR1{R+?$MhmvQ$R z_etZvV%#rdalrb0-MHU1?ybiCsd0a9++P^?SH^w9xW6;*OU8Z8xbGQvFa#IobA)k6 z8Mn~56~?VK?p)(8HEx4(*BiIhxSht`Zrq*5-EG{ao+`Yzq!MGn7H+P6GM}=|g zjl0>ndyIR%aer;xca5712F>=LW!zJZd!BKxHSUAP{grWFHSSx+9STvO=}a*0RO7BN z?rP(1G47X*`xE2dZQS1*_Y>n5V9CIAk2h|UaW63Lb;fj_9qA?X-UI~#NDL?nA|fg(Vnap5jvhb+ zR8&+{nu>sm2lRjykL|u=&Uf#u1U%n&pZmw<(e+z%j4{XTWtF}16Zv0KHWuPPkPIWE z$!xNSoJ8JC-c9Zz50l@M5x9gD|LJ5l*`4f5jv^ zlk_9V1hO&Nmh4UrAt#ax$W`RsKAaX1@ zi(EgCK)PZ~{JLZlvO77NTu5#ppCI2Lzb1brt6_sK`N|+WlM~6+BAAG61)Pq+Dra3$h0}nY@jB zk~~CyMY`YE0H;^xrr^!Fbnn}h_E3!X1i@b|`k^G#*%^O{gI5LkMO3o+O zlRL=6Zh`6gAUl&2$TIQ;@`e9`$B>iArQ|AdEBPe3k9>>#g8Z8N zlXN#V`KU$4kq?bUZk=K!3$SLG(ay@x3`2zVG z`5AeR{GC+IOnR|o3fYD1Nlqi@l6R0B$(P7~k*CRT$e`vXooZw&GM^knP9n?6JINQx z*U8VxugHLG<3Eh7Pc|ldkj3Oeaw)lke3AT;JWqz_82?_f9a%_DBxjKKk`Ivw$@j=B zUPq23Cy=Yi+sS9h7s!+38Pd)*{yk&^vMJe%96&B2OUZ}HC&;(S56H{p z6*4Z*q?bx|B)gH5$eHAwfY)B4?0`$x`x8awGXPxr=<8 zJVKr!&y)Wpt#-^G8AmoJbIC#E2=Zof1-Y4gn0$rYLw-meCu8$Xy2)f?GMg+QJCS|J zf#eu+A~}~_M6M!lBe#&-$(`gr@-6aX@)UWV{15p%X&0FM*C1r6V;$W*c+Sx9yx$B|RWo5&U9dh$tfC;1AwmwcBzN`6g#M;5j>`6?!d zl2gdp&T(xd~zMRiQGxPOdcUWC4VA+Cui zFLFG26S;|emOMm$LHFU2oEh zC)<;K$kF5iatV1a`4IUs`9AqzH{l`qjxMWDBy0>_?6xCzEC5T5>1(5*gpm_-{^jAxDuV9FRe;nD2>`wM2 zOUUWuN^%YPF!==eCV7}VLw-xT2bgq2$uzPN*@f&$P9$fLtI2ib6Xdhxk7V6}CY>BI zpX^7@A{Uc)le@{U$%sM5PiwN6oKCJLHrNxt82UK1;q&o+SSwLx!1j zYLVGw0ok1#NRA`Ih9;ME+-!#zam3N7(Xq^>&SWJQgXd8#IiP$n}xM4>p|+bGyE*WyBXfg z@L`5OVE9WR{C!2%7>RHweltME2;o0L7>oC>8O|f~DZifKo(vBc*0rpKl&__Hk1))# z_LGOGf0z2eQAQs^)*~B`{exLK%KwI3@;*=QofquI~aaYi2UuQ{6orJ zqm7@I!fKY)n#>m>osQHmrhF;6ncPAi6r#Qk3vJ6fLLL>u&vEL{GJKxl9~i#E@Lxj2 zx5pR;3K74$5dOWC*Cu1B&!)bB>`o3O$B;LYw~*_|m&rHD56G{DH7x7jIc`?Hy7#_>;4044K@$Mxb6(arT8GeVnK!%nW`+8(YaspXOK1{wWguizg zK1;eL8b5Jl8*&7BBY7|Rnh^E0mpnzDCVwOUB<)GCM?HiKk$w$^^)dat-;q5cTj8d4;s68hLwiCixJ#o!m>lL!KnRB)=76KKhQlEJVJ3q28Ki!gYkm zX9KbwIhdSDZX}-&!tc}MZXx`>Mg4KgKO-+uEUy}hdOujs%m#j^ukoCz{WE-+SIhZULqMh#{ zA0=NT-y~0x7s(&UKS|e2Eyxb!_2dBZ267UKkGJXk-At||*O8mZ zN6DwjSIK?k`{XC&S@PfHFXSI&&@7W~I9Z!aARCfR$=2j`WOuR;c>_6yoKDUqmyxT; z_2edU8@Zi)iToFNn*4^mLjFyL&Nk(#LB^By$SkrI*^%r<4j^wJCz3PBQu0>ve)36j zCwYMUh&(}lLw--%b4-4#leNecvLV@u%qNS;e&i^!gq%m-M6M>+kq?rOkuQ+1k#Cb9 zke`!ZkypsS$*{Sm98qK+$|$v4R(}vJ z@^>%-NY(A4HDuZRw2@OiQ(N0A7S_?!{-^kC`3JlA-|HJ2qEe#li{X9_=Ab15-kf=qQf19 zu+#a09>dF0HE|H4o!n#?8A0lDL+>khCgr;PkhfyE4cUS0Ob#H2khqM}>0z6#iQ%KU zkX%NtBsU0AznjR1$Zh1)A^tui&yl)*A-}@#A0&S6tnGuz>SPod zL&lSh$!4Vdo=noiX8<&NkbTIJLR9)#atb+vTtF@+*9g&{?jY|W?<4j17NCEe;g`wR z$T!Ki$Rp%Y@*H`dyhQ#){!ac)2BI%XenQ9?QpSzQ)5wNo9@&m85@I~`CI^wj$gyMz zxj=~j7n3WBlnVTk?)cp zlgG&~$*;(t$=^uX%Sw3y$eLswGKs85HX^ggT(T`$NOmO$k;BNbWC^)|Tud$}SCO}q z>&S=5ZRAtrv*aFfKlu^)DftC?mi&?Yl?;^i4)qa2>fc?WFU3h1)W5p~_4)~BQJzEU z^%U~14EH9B$)V&3Qm?zPpUklSy(Yr*7`}xpC+{RTkdKg$lRL;=P`O1e2VHc^D?Q|Ey%TB#MkQ; zm?(NMmDK*>FI&Q(P6yQM7g#`fN3s{$j~qx2B}b5B$m!&4az43;TtY4<*OKeWjpSx> z3%QltA@t%~MdVB5Zt@U$m^?xrB~O#*NWJdC-$jP6kbjW!NdievuY;go2SL660Ofbn zqK_pL$y73()cX_IwPLspSwMCqdy)M}*|&-Rq2vT|GC7@;eVy1XA(xY@$kpUVax=Mw z+)C~scablVyU9c3Ve$xhlsrwIBhQl;$xGxX!^A!^jBIOD2-3WICBiHYKyk z0SHCnHENS(}va7fJt0Co{>WWHwnqb|kxy-N}LEP;vyR zzXJsS(;1#k>hJkLzKG#f(Pk=#sfA-9q{$X(=1Fr^xf!0RWRtAiMCZS(tQIY@bF#8pW+f)(G;INuIc7C&+9EqU zF)^!IR z0dKv58$3(@`}g0tviR{n1 zgVTcY5GH;ht-SDDxqI!3J#%W87oKWec)I#>xt3nBXSQ7yQM$)nR(Ptk@RBMozEpOp z!6D=`_sG1%WwEJQznJV59WF0ES3c}i`2u&jr>yu$gZInc-ut(Gq29Q)t>;9{3}`*a zJ2R@>E-yM#+GeSm8(iMukJ1b7GQ0GED&6PK{cGm&^1>r!!%meIo-Z#vhGc^)N`B56 zEZyH`$PL4Xy@4u4jRm8++{lK%j;6cIgTL*ARw#P|C2~geS&2dtIPFW|!Y5VQm+iNx zyfCc1IIMI}M0ppKf9-=2Qe%B0%8It2Gp*QDR=o9L5mjGx20h_H*;d& z56wDKwy(Ts>)ta#OV2FnpLt)_K8R0OuV+~Y{v*1*|E?jTtPlHSeb}IAORv3)x7c4~ zrk3sxE-&12eDU|k1Ee#adaF-)aYV1`FBX1pl%KzS{HckxShukyl|n5Vb; z^zxlKbCp}Tv8-_OTu*rsxUsBgb9v!r$Yy1g7jDe@rM!4;`QptPi#P5)ZI``Kw$~L? zUcBBFQXYkFQLf5drEj>)B1`w8f6Td1E^#-aL1dtm7fH(pm-R#IhxuB6b9wQ`@}dYR z!paLp7YtLkubCyL*O)HfQ+@fns0A@*Y!Q7fB5Cu80|jA95AOr*!&K@1MY_j5C}X_5 zW}>ui;jYp>!R1A}$_jTp7%PI})n!FT*7W+jtfuZI#kQCabJ5iUIgS4+x{Ej^14d~@k(<@u<*c>Ax%KDdw) zAahmon5<)EL8S-XrQfRZ;qEzaVyKpfCqjezQ-wQRg}cg%R+kkXK{DlwccIbC3Ll$2 z41><3@_AYD4pj58rC&=r^(2w96QyUA=hCkyJ~*FJQ>P*RvyPO*QlaKcr#z<0?KyiT zRs)|y4?k2M`5{?JM7GVaQQ%ib!1934E84DAAH}uW!9xKyX=sR zibLOig?X}4bso~yd8n*#e?@g3c2wt~YgFga*%K;P=h3plJr_dP>iXRCkM+6df7a(w zM}6*h6&}*{d05xyAzh!xq&^S(>vRAAb$#w*2jho)?T+1g7sKwK+kO!t(uHewncCZe@X*F{iti1#qFP>n(myjr!v_aNG zwJbn9hq-l%p`l`Jj(Arf9fq;ENUs*9wGyX#loJ2OX+*5mHL6ueGo%|CZt@c#0^H_q ztn$NjUIQc+zGl@mDjO$WIl|wA66>3W)?eROyi->*#P4pnI6X{>-Dvg5=z?1~~gp9J=5@b_=w+ znQ8_(vKiVvG)|AI!49Fg>mFJZVl+dlXu3vK=!RA*O4lfp^I_7hB{i9`Zt$D<(;Dua zEG=t9#V9Zt99a>?-^imJxsawaDUGfob>?l1@gfB@)5}<&u?ddz1$7!mHoi*A6(yZe zNmC&&5igyi645s%2Iyi-p(pu#%dqdNwYX938=aOlg#kTBOhsI4nnZ@RmP`+YQ@lIo z>zFc=%%p*yg=XRF@78Rpb(A?KACjKrWo|a69^4H#(nwW972r}2tv@k%&xly9pm_Qa)WKygbi*<3JvAszfL5lAp`tmJtmMBLggqI@RReM{e9H}9P zrAqQ<(wDp~hown(h1R&LWrz9ly;8jD{HQey2V359qM3YPUGFX2N;UA;Hv%B0dC3=O{UQm~r#N%=p@>HImCm ze6a%b@bk^O+pZzT2I^4}OQlt|e(W07NcC}_*v#?TH^kQccVKG>n!En`#F~vu2>0!I zSf5g$lshu<2vl$Es@_E3o^f{!LNFs>;7DxBHgS!Lfsh3C9}Oo# z!L_Pe_#0Vc@HJ;oWQ*2Ncp_UC0U=Qy+^q6M4g3t3TArxEziA9hjFiyuHX5V)32Kg! z@49(vjy>%ajK82UApk45r)Ej4#zgtFnWyF?`Lda(=H$^DQ*P9ldcVfBJsPu4Y0P%v zeF{&_x%D*Wb=H_aO=ICL8aFvx{cQ8zCxquF^wMo(&+h#AgRkA8fy<>GVmnbDWBZ( zB&|!(Sl?FTuE`o3$~5kNR%7FP8uwh(*c1{c@$OC5*xXd(zJVI|->mV#LmFG&(s)q5 zZRJUN=r4_jlj0?`HDBYAp&F0gr1AI`jVBLkJoT-{Gl6)$$CLDIipI`Djps&c>{_hx z{5={kJg@QM2O2M3(RjIfqC|hCsm80lHFnR`cu|rEzeJ#-V*0Z=KV4J1|+|y_2qS_&SaE25TIht8wB^jnhwSeEl{MniQfgYKE!^ z48_o-Fx3q7B$o`=n7B$~syy-ZBu`7wnBG!jMo*2I<27cl)0iutn(`#i+pn?Ul*Xdp zG#1O}raZ|vwbEEJSYzp8jb-H;rH^SW->tFY3yqa3P2$~>qERLvnersxI!xo8XLSbO zU8qCvHNj-yNj`F$4t;RF4t=;yhmO9X@o@s~&U%tRIjKXR{;6@S4TK?uJuqQ};7S(9 zC|nGykVj++32BVntB`Gt<@k{N5-ddj-X&yPOF4gkxEx21mgA~oIkvLpc%%)EVe-U% z)JRNJ1yAC?@b__Z=;rXi?nop27EE>OYKc`18wM)?yK8cGauEi9G#OHW>rdq06O{)MDT2117D%=E#~RblrBV#aL_mzgc`UwCd` z$w0$A_zM38>AAxn>y2l!;orByn_%H@Vx~R=9V7>@vd7q9jY~@KY%G5_fpV zVL)*B16Wv=M1;3M6)s5(A1EQj=!yzif+$Oo-VPQ1joY%`h7{#rZih#qMwh_D|L-}l z!UD0K?Bh=LSi47Pf`^_*X?@1GEP>h%lmEa)Gv zF(5}{PfBYzk^u-$zamOp4gozuujV8Ofnd=_>3Aa{Y+g|+hu0;Uax zyL(<2cMoCk1{QvcDj$aAlnS^XZCQWg5z)PjAsyJU1qR^)t*dhh%^uk4GGXXQZ=qV<&0V*igEfrJ^#a4@4lhE6A@9@5ZeO8r&71uya zpF;K7i`$K|tl`q>yxVXz2MJpttuYg+kbD$FRg=oM;8RuqEFU-eJbfZ=gk0vp`17(e z>f6}_<98x`Pd^iK$3Gv1P_YRGC#;iHCBCP>iuy|YdQaeJC91ySnlgV!4S5+Ckt*c* zWI5h|{elWdC7q4rK4MWDoz>^3vH|_f7OUB^`tJCL{A?17Qp~9KAJ@!} zuI=PKVs#noy3eXgYR2l6SiK^1+g)a_7C+lMFOSK1t!k$0EU6Z{ zf-1vIfF9$>hju9kE4iguTqi9w*-<5Ost1vkG)N4pH^Sk{Ke$*Z7R|87^SSW5H!hO5 zh(S7ba`qqB%7m%6GV>})2XABC=qt0*FBn<%;bNQx%6AOf69bn60E|s;H+# z>Xmb=?nF8N0lUZ4nd;w|*ehwHmy1?vF?AItcSpP$M!MQ3MRvErR(v*;lNP?a2^nr_ z4^QKTg3NzG6*Q*-@*k8byO|942asfbBI1Tue_3ql{`n}g|dEj z(5K#c5NMrOyKdypa4&|aaS;BzsilI0Zh#MWP|)Ju2n7bcjP|z!0tRDOUt5<9eG>H}_j@JRl2GQUY{{$n_Ww(UH8CaYs%^gGbk3FgS8( zCW286hDBc24nZ%25s_b^>qpmQ&>Ptii*MRa#{M5jC13Ydi*Vy$-4mQ7D#1*$Px$)L%S zU2@~$SypgNQ8Sl5Z)Uk;dNu#fg(sSNyWhMWnm(qF7+Uf2J=d5XZ20)aSTAGxo`&8| zaa#?V!bApw9*Hh1YmoNW+zP8xH@+)ov^ue-2Cew-u=B1Hca#w`+%iT2;(B2#nlTZP z%y`PaHwi`9kt0o3l8C)y^b7HSqn}2PC zz5pCAb$r}*%Jm;mNJc?xopj2R<-VhOu{-1^oaS;LQa#oR;+J(x`rPZktIzD!WBL*ArU1!uKT~}Y4U6A&`5aSRlHBA}XVE!pjke7kCw)@S zLFSddLkCuYh^8Y33VB&j`43lXC%6M;-! zAi1}y0x+}Hy4{xOzPgZ`t;!`;{fe`WTBv?VwQd7lok?;JR{f3{p;oM;Hmqp5DXY!} zLw*4bYvyLTL#r-iL3WM~9hD~cZPjO3%IdZ^4JAh_S?=Si?m37fpYY>yVI|9bT{T(q zwz)!Vl8Kg^y-M!c)mrcCQ_*tgR~7bytcfz^(~E|cB=>?<-w{w`I|^x56!C0UhZgEX zOair@)J>5rcZ^ltVhCQY=m1ud+(A|+am83`2x`5Vxi~NX@mhlH^9TI*;kG*2B(hiq>nK$USORB0c5_S~!$)=UV+30_CJ@ zra&KZXItG`0JCSDJ}MmL$W3oo0G{f{=frnHY2sT+RaF}}A6WyH7aflyx) z%8U&B0o?>Mt-V%R#B&4gPyGaAR)d!(66LQDjfH^Ah zRuc-2Z-Wt?SZ+dL@loiNiK|U0B7Q2WC~=JmdE*;mC??)!Lbc;NpjRi}ZbGr~uc4w7 z*P2jbdbn6*n8qhWz+sP)9?H1}|bg9Ib{ivwXtkI$CHDil zl}&0X^0pqx57|a8668$wj!F7XQFqaPZR>Nd9L-Lbc4Hw3`Wb!C9grkXj#M*A^bno=w>^#nPQzJ51iC$4C|P2v=b99L-H6(J%c4bW~x&uo-nb= z(<${lDm>=yYiQ-6mFk2p7xR|0sI62nrsJ6RjV!5;SS`iW7t>$w(s)fFwd@rgszxe5 zNuGA8Hp5_-O*>sRdU~rcPP$vnqr(b11DOdEln*k>nS!MszN923cwHFisUpl|Doh-7eJ1 zGdeXAQ((+bbS%AuO)5|B)NxDaw)T?bpm99qAjv zpJc=AwW_(Kg*+-$oyuz{n`0PA6aOL5>@%RUb2*IQ(PqEcbbh?=PDk+lXxwbl-2E`GREuCj^X(h|UZZ#71 zA9LQJ69X$*cGK!i3+O&_=uA9$EUsS2hwg$yr{g8bqjJ>*8;F=dmcgH(>6%F%RDs$o zox6>#&nueA3M#3Ct5J87JYZLK8p39qGI#g17wHLX?0#bLl;q(lwf$O+9k3GnkG9zZ zQJ5TgLcbn^I5=f=d@dR^WsHm(Y>{$jj-6tqj5Q&*l_R$c@6m>njNxRno1x(p6N2Fh z7~T)Vh?IH8aK2>I?{R?%1zSzyZa{K>+F!#y!+jCQJb6z*5;XUtsBzc)Y-HFvUWsNdpOja-}N!~6{cZ>W^$L`%qlGhE?W|7~mB+I_bF?s($ zO&<-p$K|*urf-Z%2QwpI%4W5ZmlX7k)RZKbyy(EaspQ;>mRA>46ZDRhA-LcYS5}g| z$DsD-LbjgQg(j2oVuO;u0+^EGl7>)T$&x-;N%Fdbnt<+-GSMZj9SgaYBridz#gL}V zbxxxG)f?SjEK;#zq)cUW>5zH@ZF*a@ygH$}VsNHZbD5l)Lh9n`lD1Oyu+dNX!PH=q zyj`I>VmFmC$ToH4zg)*X5K(^G9?G9^Q7L`PN;)nw`D}Nt2Ym%FJE5l;VUI`tOEqsR@fS>>{RmS<&P;TLnHTjdbN7P#*AYbf|JIgL_o2U<@4N5tbtCn3}JyB0d{S8xQ z0r6YlA&4j+m0>nonfatb*|rPj6V+f?>f>&(S+CS*H2bu>1(BZD=lvo^;v6GaS?%t_ z*{fPQAYz7J`W(*oYU$tziKlJre}S`uB31QOn)(--PBr9{wxZrLl;qGE2RvX7Mb_Wd zw%uUcrW0&?(6-9+7^{9u*y?Xws9~^O(hjyGuKjSwsxOb{k88gV!}cZAf!g*@dAJ?6 z`db<5GuTc=-&Lpo$?uD>{Yv|dwriMYcXiP_D)M@RDOUiN(hJ&dw4L-dBAKUn<7_E+ z)kko6I-;Mvjk6t3h-3(vr+`+zzSWo|I+&i6+c&w+_I^ndGnb$a`Pz zR;@bJXpI-NLe-m?0rVg9QR%f&8@bh$SRzZVkN`|8DkOIljvc#V{!w{wms>+U*UQwk zOGSMQhsx?W*{`jo(lJj<-9md>w5BpT-YO<@&{nxIY9RW~*U(iscucgz6QNC1KwFs9z{1+uT&uJg$ni@U+A|6%B2=3La9Cu+=d*6PhLHVYyAz7nl&GVSQc0y31}t*()myN?+M(`H9ra%e{07}6x3fBcaU|{F zPuQgSfTXz%Jtw!9dIU>4mPy?s^(?Br6z&s~->|gj4pKw=U(@6(G0Dn<$td*`n#<=! z=UMJ|S%txk!~`=#?i{tSUxkTOu~!aOVTRvifx2l}g~?nok%Lv(!*8-!$v1a=3F$n` z!77~LH(9DyLf|veB{GHHBqkmYwqyI$NmD1LkLdjR4_4tWG5iW;&fBH>q5t|ilhsL0 zh(}S%)iSi_Mcs#@_1{XA*L-vBV0Jny;b-w6!o1gg9Z|o2m{6^;Pw|3J@dNx=30Z!{ zey7586x|{TgZw7%U)#it&xA#OyAwV;f4kCTli%daN+u?g`p+`z+@JSp{Y`2dL?06e zvOwm3rf9>7Aojna`T@0<`<0rHediUF&*w&$H8!@1&*D2(R8-kQH&tvqzr__bXJlmy z-LYbah{Xo!#ZQ?r#z`2}3OJ ztomXRSts{ydo<<*e-$qAp z?$7qpoXQ>3bnf5$7Ju0x;gu~+=dO#}PR2)&s|foy=KwLCyRBHrA5+Tfs%}7|J1tBq zC4P&+>JU0WRSURs8^QM5IFmup?4(07~}H*K=ZZ?VNyR=cu=qiCnZtieze?KM{)nddlc^m0~V z7wf{rWb974@GQSlg4)a!HQR6YqwBjW+4q|{%R9msA#bwkkHP0Gh>qYWw0@6X=e4eT zK$T|q+gh>D`CR5UbE^^8aH(xgzdYf$?cnZ#zU`Pg^i?=- zic2dt#cwvry&J>5sy8e4dcVcZ?kj~?TbLb0>|8N>5r^DOZh2Mjn(28>m2dakKI;zY z@xN@H_5PVJR^DpW7E9Z;Q*czi2i@Of>7;vA)c=ZL#pd~Ke{i=~|77cEhH?G~?tmjz zMu_f-`e4d?x8Jr_KnbQMXU;2Z9XZ#3LsnO2M!>Bd{#OJm_9wsdf`I!||H;;o^LkiP zO|^^(n2$y6+PSIN*2VVsN0=7yWUYUSptCOrEA|$DgarWwRpzLQ^7_xL*q8hfmIq}1 zV`WxsMmzpnBAh{o$XjOTGfTc5Vnv@ZXL>wzjBSM&)e$Z4cKb72WJ#&75u>6Jy0n)V zVaR^oBQC6;QX$yT`YY0G!eXb2)gQ&MddY5#oH*8Cvz^xweWyQAe+2+Osb_%R)D_xmp!~ACHf%4kXHC*2CVr<`ZG>Y#3&DLXRQUCcIALk5=whTE0R92uPNGs}x~rDJE~^yW{LWq!bCo4Yyi zjvD`9YsDV$n>`b_2Df>fE*%;CPRu^&}A8W{wQ%U+g8JTj$OU>fg+=E~6~Yoj3c{58`cc zUzjZqx)NueclgYtqOI6?9JNK>9M^OVO7xnm9dVuR=eJ$qTHED++3Mt(hq?Y(8(eo@ zS2>mx+=_k3Z}EuhJbJ~o^Pp|Jn!LW?`WEx$Kiiq4txT!p4EIU+&y*U%3y%6&4>ySN z-R3CDd@XO6(+(H?P=)2Li z@4M@0n&=af z=V~OH`xq+j3FJp5!$s~ZY1o69ORvBJ2(7pSqPrcJkh!nF-o3J};B(P^)gHQip=f&* zCAZd;Rq%_*f6syZz{ePMetDFnKO4#BzWs}I7-MhhFs_LxKa-wzbS7NNvgeB!S1h`q zM$jF56PMNwon8&OB;F`ipJFSL7h(5B&)2!B=pn|cV53;gO@Obn<5AJROz68Gb>$(a zdK$}G-Vedk>Hw5^#r7yvn?qspH_(!Q4Wvq?ZTVJj zhC2*`Oz92n!jRZ<6wRH}vD*_^WpYYBhUEd>f>yV#C{)hG_UH&kqPnGFn#!59bFfch zcl!*3DrfSQkv@sLo4gs7Go>)fCkgH*fAc(Nsyyy7ej>VM_JU+u_kKP}V)v1gCtEo) z>Z3i4O@7E%by4i}|DslM;+14n?$Oo?!2rrhQd7}RB9mW5?u21Zs@f1+A?kphlhaVO z$-;ZmwE7UeIwx1Xf)VmPIwc}jYlPwYz8mMYx(tGHwAzYsP_RZTt)h}KxJ%s$CaMqY za~7$nWN~FB4EM`cQ07gC#!8s)SFH6Z^r%j_*RQzWr;r%t0iq0ZE8%s&$&-~#w4E_I zCMI5tvz%9H;(N02n`q?zSI&X0a3*n_POJcV+Ssa%%nosh=;i7RN}cn0#{$dJQKR%< z3%BB~6Wvyf$ei=ZN|fwjrm3YKY>yRL8F+ z;@s;Y>ZIhA4yhpQR&_n~R>R>Tr>k0)B0_rA^;l7vm@A(`)-t1En&FPaF;kijzm zhRBAvP~J~)wE8?G=jdNK??|y7n!YdiG#}s|r&eH$x5L_-b5up68_GCVQD2IcWG)vc zc>aN7rkrNz)B1~14^ldB&Iy$+vw6;U%1r0@?a#k(!IAU55*xhp?@GT{hW&q7nqXJ@ zNOYB)OVo$C(tnW7e_6>RVml?mRqHtfRa2DnOirrH%_IDt zZTIeGuVHJ9553A>FQGJ#O*VX(gj?JF8`=dqpbvjwA@M%%$VH;)dL+nbq zvN|3Xbu|p4oLY7&I+2VvpNUm?Nwi)Wib=MGs`Y8Sm!(MfA5SO*>W~XIsrG;BRkb-O zMun}!<_H|*)VGt-YL)#+PqPY#ip{Gs(>Jt7qqqBQMC~mVKfTrUHuTNxyP_R>QJLyP z-;_XxTV52-td6nNK>CU}=w~&MKEhM!8$6Xh!BgoAJe5AcQz?P`-w%Gj1T#gR@4hIf z-{2Il!r(N+EkE=N_zEjYTKg4PI0DY1QqvAaVUfsi*TFG!6Qs%V^LM2%i>AroK;`O} zvXbTJ@aj`6RcX4QKC%2fUWKCm({?zm7iuwfZ)q!?V)^;JIz9;E*DA!`Kjl1Gep9ao z*Md&JHtkD5eq*ohz+982--`B$1B9znIH@y$b%dHGGgl80t# z_d2cRH~Q)XW`?vaPO!YP*D^s5vM&a?}Xn8~15J}F=& z%Mbn4A5xb`Ds)z|{P16`!c?C2ky9)m0#L`$`O?lybiPNFd_cr+p=+kSEHy=O{TR$x z>w^()zdpRfAFyeEPxuSi0*YLz4&k_TZND`<5LuGZt5jFD35!Vk$HQ-Kjkl>JqP}TZ zaX<$Uas6+wpvY|+cj!VpUH*`9=py}!k)2}M(Y?icAQrvQTku^4F;!OdB){-hpV0dq zR95UN(eyzDgx+o66X1I?a79OpeMFQu7eINhT_ib2_ft_+?i1w#NJAg6KW~D;)J>Eo z!Ps+t-c_frxN25VQjfSl?GUQ!&Pt!&dG#W40XmXcE z(`|yR&hpNWC#y?|Mpt>)$CGuvyxil->Lzaid75{9Q7oGm9oOh3A95)E6qy@4%?e+x z`p=v?-U?r-&bPEIkz#tfN@5N854v|*XKbp%Cu~BUM#uquRzlq`C%CI;Uo2{X|l+tKNN)U7$qx?o#J(+55guOe4KtM%EsGTc%LDB zf|8B8of7LBSY(AyWGK-!u$vV=MSZ7JN_8cyhG!+23!kB)et=YY<(*1v(37G_#rhdO zU+JP5Etk!LL!y2kYf1PmJF&o5id*oNDEnkWxnTr+RZ_+U!lxRP1?Bw%dSfa=FYy`3 zxfNGm461j9!M1hSv*}knomq?PA_l>6FnFdt{F_~_$@}k#@DMvz3{GO634dG3KzF2J z#jW%!cMq(r^P2Rx`wjNDf;&fKZ9uDc#p*8f!tld+7;IIotk{2xfxJ@~{<4z4+TbXM z6&Hvuq3##u@l|L!-&&45-t zEo(Gp0JpozukhAZzt8H<9hQmiFoR>|2DK8M&D~6ig^F4av0`7e0{Wv0^CLUJO-NB8 z6a(D7aGlx|Z~D3lyFxnrCLCOd=yr7pPeo_9!gpbjQ{he8VTgn;$br@xb}YUkxe+_i zgsAIY?f z?2FwvPQpAz@p2EvbEAlnYFrY=n0g=)qTwM}U&T;GMa$8OYwOpIzJMKM&-i9o_9ZQ!E4dd@#Z;d{H=+LcPr?(TeH9x#&s=JKo#-9W ze1jZ&ZW@s0>jFBHrfmzp6NA68h4C!ghk3{6yrT6zo(IG|AijWKkzqiJ4@gN-ZKlR9 z=z2>*IWy(7-CX2RK6@1Ac_2arvH?u!FV*lMrVP*9DoQN)38RDse#NIgg)XCXBUZzm zeiOXjWa2Ioo9L%RvAqVIR>uXu*7&O6JyFTkVbF?)npxH@lA<$i-OFMiZz6aas{QCv zKCM4-E4CWu2mQ*Dr@PvXtB++e)QuDTQs1vER-@YCPnl}v8cE0M+(ne~%97^>wHSqV z#_T-SuN<%DVNr3$j9n&5d1c8nU3JC!@d7H+pXLL8X2GOfutt>fQc_T1$8?;s z`Hb6VL@7IM&lllSlApctk}tZWu|=rI~7NC zE4ECOo1|j0?SJJ|iMh?MY-2CNWKt>S8={nlzn;$arXjw;ug8WJd)lw;W`9@@jZsl2 z_y&|HW4*PDYcRJT5(xk>NZl&1Ct0+NJ`&GNzn-#a+Z?NzXdc{@AiNLD+wphv2bI)h? za%^yX$;mum)jca(d7;g7(O%{lV50(|R`W1Ef}Z>jIvzTNse+0O7B&%+=MrJkQoVsq zi{GY7Nk;V%!-tV}&~LKbSGLo2>S@t5x< ze~sQ0gG=gMMVSgjYl?Bc`)&v`rD`+W56P*K%CY_&#E~B9Y-w5EbxVIC&ipMcrfBKk z{6cAIE%e?9l@(hH(}=I7Poq6sA7Ta8uZ0YA?ee(^Ky+p~D_Krj;B#!ZI#m@9A zx7h=5u77dDgiTA|E*80_rF%wHiT!YlyX4ufw>o72hgqpD4YDaMTBDR5KAghe)X$@8c!J81;eN zbfO(bx!0UIf-}=3OqSi38j+ArChkbMMd?z0Re0Dqau?FW>?uF zOyBZI4p-K;6a!z`*EVC+a$Kz_En+-hq8K(PPrh5OXa|T#`OLc8eWzTsM#w>DK(0>Z zWKebS7mq4--=!p1_%V-2=xuac3B+MX(!U3uzX+^+yx6?Za>RWosge99fPeV8uYt#evI6d?zx>anxLv1pLsmtySw21je` z%Bpf}+%^%(#$H|p`$23gMH%#_=>JBqY~4ypy->?MPS7`HTIa9EPDSqAI4sOP8C0y? zV9At2hQ4Kk`=4-=DfeXZ-Ex~V-z|4J^R+miCQ{CPcYS0h)11mNLkk8-fu^JQ?lzfH z;9>J>J6dOolt8p7#uYjD{)MA8c1cyaHExTDq~t5G0q~5h8fDPGM89G*eiqzBNkVk! zFS*>bYLj!O8Z;O)#-h5o@w#9w*_GPJcYlXara6^khFeVY-ENrb0$>0^kf8-74I!0# zX|9QPCE_Isac5=9ov@OQIB$uS&uAnB%?OOxk_kAMUjRBZ6IXWOy9-vyVyNRWa*SF+ zh$y!wN*=_y+*5IAoDpAzT5iKQ)LxNUnR3^qUp`-{Zxmn;y z1-_<1Dmw>9hD_!U+M+_{b-v4RF53r(nN{*IgeN2)<}=OG@65MbOWuS=KIZJ2`LY{N zG}eo1=D`@>DbhUwi-5}g$trP;wJiC}Go$UQh^9}ya+hn?R8(Ue4CTAeF2~P|<)__N zNj^04(Pv-EvNd7Ka*CAYL#wh`G)2*kj#))^GbJ}e^<+i&`OX%B=|11t%W*EmyF}&hj3}@?BiL>Q?d9Uun)Do_w#IbznYF z?JJGc?zI1#(o{IKN*b16aEM1eeVDIAvpl-tt}4&#$im#Walp9pOGhfl3c~u1Y9=hBMHEHX`4>Oef+`S}jqGicf);aaRCt)-7zn6?tD^ud? zLrE8e<;s(T35y4prB`iHabjPIQ@L|ytn|7z?Z<2k!aMYAX4auQ^tVWHK40V#g>%4* zIF;u!CbnY^7_X=97m$3&cro%#8Xw?%tv`a^`&cEHA#7WDZAFB#8xNXVvI(`##BYHx}YxqIlafpi3Wklpd-43I1V@ciG%qo?q*8A1@TkEQB!8zed3>^?N2I}l262n z?Kv-Die+7g81hewI1;JfEOmuX>q~6=4*Z!Ly%=Td4;|ZgxFw7gDO*Wg`;OqHN|tr| zj<5xT;TTc1BfEuKxDerm)8sG)hh?fd76`xo#KJrT7dDYYsvPRzfPbbI?}cyq%)k6= zh5y$eU%pzD@%J*q&RRStde)-Ejj^lLVj;ZOh9jxP@sivSIrPNgrdc@T!QMA04kP|; zNZVJ7lAc+RowX=d97Q&Io%|UAMtGqjf^!8IE5`~xZxh1uqeb~A9i<3a@KwEd_+M2o zaVu5*7UU)nP8#5Usro$#FMM7OPvEdjec;reSonu%F3aI-Ih@1+|4b)(9lqsxx2>(sX7bs1NdM5;pVEf0GVH|9)|?khTb);LSGH~M=I${lA(_Ery-$AX~=W` zQq>t^@gx5vjSsYsa7auV;~jcQutOHZGghZ{R^$)g{;-{};n(rE1g(d*XpOSW9*Ibe1o?UYy*b zxA^ytbbd(N3B_f<#A3?m-e4QLsS<(Tr)tH4$F(ibAOup1oG9Ksh ztrmyIvD=zg4z=9-l7G$d|KIStO5K%cS)x%G$yTP^>MB(S5cXAqRCERgX_ZQlzE!Cb zO2TJYmi+OH|KqMf`tm>Rfvl2la8oN79y~x zV$0J|$xUn%o98;V`BsxPuk%balT7#c*A@Q{KtWk0qfM2RDVh9&7McMVT&855@CCze z#ne|~1uYV7xvsXR@Dj9W;d#{H!c%fMg2UXO?}1(Ev$>J+`{T|aN(efw^(Xst?1jTg;ONfNI4Yap#RO8fWpXqOxJSL0VG_hhs&MG zIk!P7w^@U|#!AAKtmFo2sj5E9vZg>40pBu*l^A)z`n-=T1^DaV@;^ zGdV5`*iMxNMwyWXx#t{S;t3GplBs1k4fkGmAI!k0K4QSk{S$9N&8;ognVT8cV5`gw zM8!*VUWVpb;_Mx3UE}RpN_%rj7!o@MuK3v=#n^n7N0X6sjE$)#Bly^j$Itk*pG5ja zjey%n(r(SidMt6PG}&R4mM>{M`z&w~Se26PJ5F26#9$&2UlR52y8F*Zyyh@r}>-+jlqC&vA?7*4D1!l3t*5szd!VG zLpyaY9akFl27gK;*a>9#7SI8Ordy!KmyhEx{v6e28;#5SjsCt%(7|)8+TdReI~L`3 z+Qt2*SD3uMoz0)g#)<{Bm{w;rT}snt{;c9p51Jk)JXkG6c$tOq4Yb}wUhcnIA|mF z<7m}R>KD>}2dQ5JH*KVT6Rp}w{ll~mr#?Mqf={K?>p7(F_jo(5^qYPGebdAIxf?%g z{qynrqU<}J+jJvsuHw%|{NTC7C)f8e-i!S+=YhspGcWq-9;m)QnF;-Irhca$90Bz> zQ+>bX@7sjs8Vu|O@YaPLKgjj%u%}pJ8=~H^)NlG7)J zpc7n48PqtqVXimPzJ@>L_%WQyd|J(Fn^UQy{TMVsvMRqtZe+15{0RAHXJUqfsGW~2 zxQf{@(Qo=bqk1iWF6B=%e%AUNMV%ugw-MT=D*j*>6|52)Z7dgEu=3|g7T&alr~gRQXht;rE6jDI7V zp}xL%N6u(WXa6bt`Y805nwfvcPwDk~=r8jxS&6AOXq<>w?ZGqc;a9M}(BB)@E$CS2 zd!Opf$Ij63=}$dPeOR_+{`Ppfuvq;3Z}a*4l?5kw}W%n(&z zny`kaE@o(Z4e7DN)Bd61shiq&$5nQCBAG>aI~Ld>YQ@)McB)6iPM7#iMbI}Li66H5 z(9uFzcM@e zYrv`@Ydd#qx(vz|{|5YSfWh83H{D|lm<{*PVAHDKLb(JaS2FF} zX!el5>Yq^a(Bi5H61*3}IcQ5#e(&dAkk& zO(>gwho6-V_$lm&roYW^T1|tg_!&Wi8Gh60P~+L)N8x<~G$nF*1Jq4d()LP!qew4? z9g>zNO%H2Yc|bpXFMMzj`#$)86fb-o2yN3|_*r#0e%@ugTYR$MSCH!dmIFs^;YQfR zA?rMkn@w$T+eL_i(-7s&rt`E551Y-vP}c!&F_r3UVSft;8$iXH3kdK1bPzo8uS8kWj0nwp_(T8*C;e;R(b(R67OHU>cMgC9Is z`YS=>*K1L6NaNsh{7<0HYp82_3%GIyD0WAE?DT!VX$90x)%+>r&q?^9|8K!R%W(vp zbvW3T<7NJS=i;P4>_5T#T{M*rhcJaN?@1rOlaCVmIK=o^@dl!^1ulMpmjl~}&@|SfKJFv;j@{9b>K#$)sHyP85F*^V;Yw=m_ z`8DwleVYbCxq_qBXoSbR{5qYUmpxi>GCcJ>&wJaE8bne<4Jjs)>n0tBrSq*j^cnd! zkOrZAyV~cX8Yhb6raO$h+UEk=O;B@&*kSC2{)-51I-*8BZ>{ezb_H9E({}3WH#I=N z*5|Z{cS_Jvr^cMKqMthJ9J3;1`ndCLP^9onyb8)`GlP0mj@k(731^)P&3Gnj62)J8Dfopr8YyuREMo9K6e=W&z0 z?fa;Mq@UaG8?XN+Ry5I{4g{3}X!j?e&RAaE^iwHl&-1rTLlno;>1{^;65Gr8o1uRO z`fGfz3-l9NO&=nXhCsuVbwXn)n9)MY#JC<{M<* zDF%{P`ujKA0rh6Gs=kCaoLS%A>IZZvFL~eX4(-AbCYfZo97k|_9UPm-f$OnJZ0TB@k@fc_s z7Gmz+P>_Xaq~hyPe1{715J&C<1$hVxI5C;tC|acRXD|_t)-`lTcBDVb*U*|t1!>h# zL0WH6L0a7@bHCPKIt4o#LC^1il;Sb<(fstLF|UL(*H#^i4dc)kY{$>2Q4rW~@_#rJ zQs;~A>ITpLCjZ&vp}W}XuJh{;!0y=|+%V;P`R%&>p8qyTdimG;$&;~Yfl<@Xb;!Q& z5xqTc#~&8I!S93w+O%x;2ON!RRU8?4f;NWwg`52m6JhpYWD}Ch6@CP^**^fR?YNI3 z4^9r5^_UB@Pa=o*z-BAw&iFk#|7;{V({Hc*8xIee8NYql^VO812mRHv8KSg}XicZGl<-P5$Eea%}MND%lw=D^ZLT@X#c~0fnfo>)9@Jo&p|j|*PH#9 zpzGVu|JzZ4%fg%e&(Ze!7WscdvlmT7^HXNo5dXb_&hU=Se&b-64flW4(V0!X*}o4= zdEZg~mLS>re&0RdV6(sFYp|K_zgdFS-HX+-k7hz=`Tfvhtr;@C9xc1?9REgCH*1!^ z*?)-zaS{%(I5XTxgP!#!KY{Hs%lu!Vb>C)a79f)wkjX3jz0o0Av#x#TAp$q~v4(oD z??paW;$E^5xWzy9AWT9B_nm_o7P?X&BIH~A4^SfGhfGG9$}H~|zwR3_8~P#gP-gkJ z_=C}JjUP6D|G=!^7XNGTHGcS~g95XzxA;SllJO%BI503Pyv6T~sxp4$-~7OA+%5iz zD24H(9zv1WF!DQ3>xP7lKlZaiXOuVX(Oxha{ZJ49;xQf881l^fTy&i40iDUg)gyo z^$44+=<+ATG1Fug5}0XH8uYf7&WbKKAjzXN$_Ffp#Ren>j~LdkK3=i7EY+_nQPZ$|z>xk${fh?l@1Oop)WoV9D&hlTefr3@ zJdsLz0~Xg-#|JEl4T#qcNY=-^|D5iBfy99L@>F)r1~jA+Rfz9@p6=GUWpiR@C@U9j zG;(PM>^!XAq}8fs#x+Ip+4E32o=Xmwd#UA!W?ymnc@fZNg@@mmkG#KCzc~Nc;dCQXHJF^)w+0= zjUXyzthS~yu?Sjpbfe1~5>=^wi5hhNo)=4|Dk|cYjG$G)5gI&<>l3&S$rw`w;{xkC zQ7gxZT5E`g;*_Zsb@3!j(LqEfM}tt|voW@~j2Q+c!ZGgQ2+Fd0(q@oMVpW{Pt;)KN zr4rS~kSHTVj1C!l1g{7|WgS$qd=j-aWmVuvy;x(6@uDNEvW`$Tm5mkFYZc>)BsauT zuta{M{G#*}P1Tp7C0oOADZmX1hQ2{3nyx)4lIlb(+E`o9dV}nCae)pa4huJA0xGVG zSo=_^%C$2wVVF1tu?cD|oT7S`FF_3h8B|f5fzeo1Su$w~1OY8dEw1l}qAqKwqANtL z4kq!kicq21Qb)GH0lXktNQ*VhVWO%WuPuq!Clkq3yhg#p1a&4=R$j#tLws1|#uCLJ zubpRGg0ZQ`5KBjRsuI=gG+C@B>y@d9sFG7z7K^*G0Ot?7m`49F-ya>Rt{l^Ez<`q? z2T#q*X+wa*i@gGTmJ2`;n_x zkB+?VZLncoLEqK3DkGyUz5LQMD#eMe;ZT2$7;g4+fjI}JvaYiAa`S@7qA0r~qx&M06}9B>VkOXpKH z6+WNMTU+q8;m6G#Kk9*bV@EA6Etrrucwbn4d*xc#zMof+D!4!I$bHA01hY$x*++Q= zYxDZ;A4%Pp>9J%dJ%Z4tmG|ZK+&`~pM%})^_fvV80r~ksO-8*Pt%_S|+gnFhaX-av zZ&Q)dJ5kFzB5&`5`gXs+QPcc(WB&ZA`NxhaAk6}J1lQ?B_J>7&fz2fsnHgNswGi^#wo+nZ+FUI4~H5cRwB{KcalI0q&FTMtFjF*1#{cj$bo=1&=e z$p2$iB{UcLx1Efd{EwAeVDy6j8>nwX9in>b#$(~&5u9b;EAp$n0w(_Bv)Jf1MCib& zE2Zuj`IYwx!f0OA-!_eok?Zr;ju|!JynX=vY3wprm2dfy7Z~Ge-!TBww5PxeDeTymF->oXRCeoKN{xtFi z9Bw-^b?5!?_VZP1e+Ca(xde*`R-tS2Bai!A;OFmXyndtw4Vh}@4%Hq1f~#51ezGrc+lp&Admvdvu@*>LU|$BjG}W5JsZAowIAxOe2UxCLi3rQ%I_R`zA10A58V$suzr5;ObjFg5bzK4`or?mJP?`E`$IUODdb)9K=q-5X^Dn>r(oi@0lUj8KZCP2+;x&JA z?(b6jH~*#imC6kvI^C{m{#x_)Q%{dBcobY!+W)%uyCeAZb3bqH*0cHeo`_3lKtW4! z0U-Zv2Da|~{HGXOo1Wr=C&>qT84)qIS@!V4^zXL&$KtgoHk4J&suS})YE*Pav@%gu z6;0G6vkV47On~^7u6w^H%3^)-XUv8t zkq1m$^C3M=Ry4n~?(v?dG7FpYt;v^P`UQt{=;QSV&kl9hk`CuZyuamjxHjTl8G%{G zvlID&@@Q_@jsk67@VAx)-I`Z^-mt6rdLk$3z?{(U+Vf|f4F(L|oTmcI(M=}0SxVJUOX2Z_V54%Tv*S&v2 z%Z#oj8w!vm$eVMY>T=HWpx4rv-!i$N_s5TH&l~wjm-Dv5sQHt7P+yPh^R-9*mDhXg z$VZyzzTf5iXVD@@KDWLY${#`5Qm{UM&ykOIIqzaI$@FLFeWtS~@ll z>Dl`+WO~8+Lkg_lk?Z-@6$ZFAY6)%tzYJ~%&fw>_D24 zOo50h^*c#qBf?*w51}ZtwfCbYEkjJA<-Ke3Cm_)KQIKffiufUnb=yAg{e+1P@&-9* zUCw0(2ix`eYuC?x-^2s;vbnRhey1bDvh{NeORvj$OTYN?%MI&OM|sBodU&>Fw(O7Z zOoP>v`8_fFw3dus`Z4vTmuWwyvY_$I%RhErL2A;uzfN^%necgY-uel+SRH9*gj%|< zpYS9$mOa>xP2CFWPV>L~S5h5O(OdlHyq44RF-V|TSc~R< z%#NAmYH@~RNgFex%W(5x9?U(+9) zG!H%A@z=3KK)3f~@dHqJXbvrNUtRZbLCav&Hbka*?v{5p!h+v&@>;sCdpQ4ks+zYx z^7dXuTbmz+*GFFKc=l^+=Jmb0=+Wk_ErTD~*5yd7=6pokN8a6!hDE=gUG(dcmg0N< z*th4p#|vKC8x*{kSAICVq{~l>KeUE_cprTXr6mdmv!9PeI1#~b#MFUK72h@ zU79B%JFY8)vgH6Qm>{WJnv3sRKjBMb-GbJCs7cvgEel@gGxx5RfoN>a3m$Kt`%Eg? zGWV|Lzc&A}W#u#LyKQKm`*8E4@9nGly6&<3<^>Pa_UzX|bxre@v;TyERA81~=+F~ZgZC=hV#fY;ANeg)^BaENQv6KI+!tC7Ercc8;iC~mV(#P33+_VD zEyZ`WEO-_1Z!X@NDsNf&(tBM@dtgcYlCB;>NN+L3BN<%t)9YUIJAM4mSDt(OhyzS$ z5yY%$YYSXhj_o^k=QqcS~NWbP1 z@tc3X1Xnf*&wV&}aM8!jdCgl`=v&^|15I(=9&^bT<0yJB! z{sa#edc5)b6r7tkVebxXvhL{vg)<+2USu+l!G-;CXmIvne^_b@%!|*+tj`4g!scA!cj1K1ch!AcbSC7W&v^y=GZXIQy@U8K44Wgru;vy#SbGWLdHlLa zMqY*ES{V4S2QOXPCY_f*X~099xg9#=W%hEa(-mW zdHL%y>H+tHJA1?tPBQJe-!!ma*MTMOIr?>o%bj8WS@zt-^Cjw4wttteepAVGR$E9n z`Iy>E+J)5NVcEfZngEovABUF@%Ot}d1=AB|3-R({+B5832EdN)E}$bk%!3SfE+b%9 zi1!Y>F0I^Al${{Dc>%9WZze5e3hWUK1i`6%BI^Ov1w^*dJg>oZXV7`(75FCWd-DjGDKc3E`C{G%kHRV-%07rU({eOkKadd^Z*3)oomqBL+HyN0huedV*~WY# zD;*L*kkgD<%V`1eFypk8fUN^e>mY!91!;kiIW~fP?Mz>?XR^&hMG@YeOlz(JXe+I@ zYGhWtw%oFV-Pt_+pQ5`fabV|>9beXitZZaIfP%rVc}nn$U0m>)$|ugZ>H^|IqfX}* z^<~B^l~0UWbpf%?sMBttMKG2wkCV;?UB1cH`^_|wwY(_+QadsTiZ8oH2A6UdlKQ_cf0H6^`J@?**eTBUP16AC(pEgjKCs6Ctsn+?_$zvf{qUC2DsN%F|d zAmoYApN2O?r5Rf8(hjvMl7b0*wjTUA_-2=+I#JUtvarzK5>7WH8VZQ?24kp#$F|#z zrrpYEXW~P6S(3!PY-pW{Hss8b6paF+XmoYKfkrSy7r}lGUJQWvHO~tCUWOOxCiVSH z1ZN+nfI_)(6CB-Z9G2iWc;GN+29X2H&L9Sl=$LUK+n(dc1iT25z+M2QL$J!(tN@Fw zDSpj^&1i-e!a0q!`J$Z=CgX+ieByLtTsj<4J=-RaTk^5tnvMy#8f7VkIls5cF91B1 z6v`;dP;CMl<`9*DiDMvkv?LUEo>yam*eDq%q>GKipu*I_<_x@S6~v@f7Z9`iH@f|~vEP_aWKV)DCH%uir8AKS17J)Lh0btc z9#Y`P(O8R#*Bf<1SEBl~pmx*k)z)oiqTF^1xee$(54V5Ei;QJbkAib3rvpy3N*J2w zWBf*pQ83!}gjUh73&okinJYSxFS#u0(E9r#Vsny1L|i0Dp87@fxmJ?Hm}5 zbAgGabMf8PE^2V`-PO)THE1;AMe8Q4GRhLdMb?yHl_k#4*Fp72yzoQlYm_AftDHR= z$`h=q^K%!pTa8grT4#YWUo;1&WD}tJI=DnM?^?}+1(T3OxS0pwH{Xpp73^v0f%qw2 zxXDK@?SU8Vo4{K*V0sdOFO(BeJX7#O>9PY#7fA-K483D@6eOAB2=9&{yFxB*TYXL1 z#cdfb=nBn-aFt2(Jf?#$ObN%E=+0XX;CG18GZDUJl%<4CMmhUtz{6I_^z3I6Q8E#5 zf>kmRd_gyzo}h9w0yZuu63#Z!DoMcWdgJ{>0xJ$$SU3;p7|FhQH5JSdWb(50&g@#Nb}MbWPl5)zgV8EW#XHZiIP8 zc_P6oPg)4&I%9g$O#sFyRIm(K={Wv&P*qDh-X%I@KkkFH{kX6_-JqZdwopw;+Cnwu zYYVmXN%(&nFWeGdGs;rJM@Bh&JD{tH>TE{7+$c-F1-Qa0TZeigLmgluP;xIE{oXh{ zkzh+dC_Xymi@cmeRI2CmhM9Nq(wsQNQkVr$W^hVko>z@CD!;eU^LU3Omv=`;ql;=9 zqOs-6vEm!8sjaWZ{!F)#ZgfLUGO?&8UQviGX~*;}#NM<~qwI#u3@h0LoBlE^#}?wR zZ(*3!Snm%CK3bFE7GZ?lW$MOy7gk}jWaf@jyGC6TE!%lI*;IR0+pIub{x>osJ31X} z+DYX9egw0l`xv52!Te|^^B-MVRa=(Ia#lEY)TmW-=Dog)?vJh|eQhJ20J*&(6w-T> zcj%(UxR@}h{WwBg-fkLTPtm(g$%IKBuN!nr9_>?R>dgkznPu3ZyTSPTZ^wo=|Lt!3 z95o6H2UrpLRy}spv|1NJhPO8KctPIIrygam?Ipb2&S`d>YiWPHuC8@7a>tGLeC>W- zWNmyo@2vljSZKQpuYth+^NhY~tj9z7xsp~NuPaN`dxI{>ZJl23G5z}k_{F%62Sc|W zjsbiqao|I#AD>PZj1ZAZXHK~hpM5MCv2s}N%m-)LbIRBi??G93fb>K@oI&t80^B+u z>C4sA6}v3HwNA2xMw#$GBlFJ$Sl9)e|peri1Vvh4&b|?)jg#ABccH=8LqrbTMq2 zGd{!dj>hXA<`HE9l&Ek%=$=X_Qg}&+c8yR|#NwVE+0(D{v%z@+{$Dfy0pfHAUe?ox z@ctO@-FV$YJDSn%S9obhx9<7>-F^(pcO2d+cqt2W&;K=Z3TQUr<(&o3;k_B}FYt0! zzZtK4{+cPq<^9 z{SYt1br0jhuwDPgxUjEeTo^a^ICnd1?&vtWj*jbxe+q;9oFT9+^G9L#EZ(hnpU3N- zv!DRu;;}tk>I{LqYVK&<4!=Lg%eHnaUia+C{z^D>en`VTr1cBDjPo|Uzr_0-UiZ+> znT6A}tLBHIk2nSIZ}3t&>7Id5Q|_E?z5r&FST4eQ6JGa(&DZ<~=A%)!j>9`2@2Pla z;4Q^F0WU?%?#bn@BxLX0(~SPza{|<)Nf88vOz%QXk>wM3|BRPmK8BZm7zg)c`=i+E zTD){m!Q_AHo?$W$egr%t-hV*-Dc+Cq{uM9d#<;r2xo^wf`FHf3zt2H~W=uP!G;5%y zK$c;y#Ot1Hca-zYkUI)g-Ltdq`XRpu;vI~4I9~TSv(Ydc7c#G^tyxrPejvQ@upg|h zAr(k=qN%b)UR`YxCwG^{qZIOZ(NkuYriR(`gF~ZJs_UwXhD1xFiHc}-Jee$86i*gI z_)?xIGQWf9ekhL6)+`!XTU9YTo{YyUikEncs?8zP>hff&wlS78RFg%6K`2&Rw<5}; zt;yn&Sjn_lX;CyI%(Bwr+0#m+m>fb%0OHdS8!Ky?vZS*Ht0y3D0J?J%Y>Z%9IWuKonL3jQ>^L1#(@-6+$I)SXq<2bXanYc~ zWl3Z>iYk#>fufrcRTV_;r{arh>sK%XY}*@BUshwPY82JdTZF?lbv%n6v;|~HmQ2@k zVuMo`nCg-oX5|ybOIRCVRGJ#n7{di0<}|a1`&kkc3D?!K7eTnFMQkT*BvBLz12>fl z=ciK$i}i}m*m`YWQWJOW+Dd?SB=kX)O$GH&q zD--dm3Tm*Q*;{66eWh20qw1&=8J(C(L#W%JNUyA_ZgH6!Neaoco0kn;*Y^|+Mv&>t z1zhjYx@Rjza4rKfyRRYTxJto#oVF8vLPgvKVtS|H$n-_^W#!DwvMI4*Y;tBWJ3**! zdeFJx{5=oRqZ&oyHOMYkja=Vr3NAUco+Vn0J{rBP={SZM1KVA|q|Hs&u`0&PL=A<% zl)hW_;zN>+Wp%}~P4{m)7Mw0KXUWWIv;P}1_*8YYx}ps2%q)&n#LF8NMS1lDs~sx6 z&6VuoX+*57t}MnjyDYe>z-vIW89WG`DXS(fJV-{_Pgi2JT}hibqRucLCNMPjA@!&Rh%QFz8gwpR za&c`V!)2%AQbQj`q^~B13bBJqH!VjjG{V)y7sZ#?F}xJG2GtMo9HxbjL};-nTXr!= z)Zn%RbVTgP&@WcRah*ps_UR)P81daG+bZEhE9+}9^r8LFh*meS&ZFN5Z|=_+UHgW| z^08)2Y>Z)`GXs#-ikTUPiz2`;nZXkjL${x3Eh>ZV4py|v6BUVijJoCqj$k}B+*u=T z`B-F%e$bG%hP5dr;7UySqG(aRMN#w(a|T6GWn6VbPtJ;!Oe_cQw8~~R>+u}k^I^sQ zwv}3|q7m?!PE)kD2CR=*A@N_O9Ai`E4W^$D)!5;SYHKTS?M$&p7LZjwN9!LN!^lxj ziltH3HZmTzpGUvM`(G?qU`#*M*v0+j;=qDH35*untr+7zAp8TUJ@8k-URYkNhky?z4NN{nCC4=#d z%(w1rDP9uO0Fom;;WnUj*&!^WO1EOo!rlyv=HbpS6iy5|x1zcnAH1t;qU*3^}=i%wh(!LiE6%pmjFXG$i9>_*vh zM6;Y>tU?tP;Ib;?jJ2unQQiTA8(&NVP+bmKrJX90n3u$rNI^4DCub*C?Bz^%=UBRg znO(Wzco^eurc-cN6|WTI6`G0|UahVyg|^^kZkf!+$hwB)VpFrxQ6US|9oX~-gUnzQ z6za|t@CCE#;x*N^D5Z=`lrjolJZsjhY$vPf5)AmLr>3yo1O!zuvja7AM4T(n2sWz= zJ!UMXDBPyNv`i~13eCHQo7O)IeRF9o>R_sfKd29=|GeHO5%bbLTR0|STU*Da{fSMu z7P<*euF9J|l?nUHu{#0@G&R@_&P-;j(QR0Ld3;f##&*rA9`jqJh<5uveG~9r+u>h@&sE+#~!)>x>MH!$^&HMnf$M zj1%f|#l#lt5VAE0gptdTu~Z}$k?UbQwX^b!eu(Zl8aXMFMxj7{5zM{7c98`DQ-e7) zM)2Bt2;C47&etFy2vP=JEjB#CSp_QD$SZMLQ(I%XZ%F7^ zG%?)TR%1Ea^xR`uytdLXa!e9t2`1ywkPSnM&J;I#np6$r;bBZ5%xEOH3_X}S<`8gH zv=(r*9t)Wd5CVR+jmC19Bx-n z^QTXlSvFsO#4zESPcyCNiVqq*T7XPpy8&1*6}hvFr1wJ zOlh26UQ}E>1ho@2n{#H4V`Rs@M6%Ixq?$2@$CIqVGPlqvEFd(LY~@8sv#*ADR*ftP z32<8agmKvlK@q;G@;2^S?7#@eQQMi9Nje=C4GK@^Mv%9fR9{<-q1ucsp(e6Z+!bUD zsM@7NFrl5n7J@#ussf*yLmrt~L9QM|g03CWx10*OCKU1tBLPv1ox^6X<0(A65>14O;7;G zeBIGxJjbXEK@_CqW?~$OyGbg<84S+g0wHc1AxSJc;F4)(KG>QkF;h$@oGx+K8k$;? zbhBp2(4$5KLb+QYiySk?y0UV3wzTT9<>->p-y4f`*HknxEsMyu8$wnYhLu%ii`1oM ztY-`=3e{%GQptFiOe-CT&)6bVEOwaXi^}@4Sk%;U(1BdK0en2?%aB_n>uRic)k+~D zBrr<>6}1hx!ckLMcTwez=CZ9ulCmmvH^ttnumlo;ny^E0x3W-Emx^-q9I@%;1B0F; zI%Srb1~hPEtB+k7p_!ot$rApAqpJ}LY0llSXoUah8pneX18QCO3AW~cCu)AX#QZic01Ov zs<0q4wcKiKt>^+$BI3SIHfeYs0!EXVrFAk%XT~y zGSf*Dbg~Q)GifZVSkjP8DfyuowpSai5Tn&s3}I%zC0&GxVbzE#Lt|ZZw5KJPB4RNl}j~871vxm)Jw1OdIR59o`mdx?6(m zX;+rOvPNhl&DgD(B6t)@*-*ckOvJS+UISqT(vKC*YQwUI=Ys)nw(Hqiov;fBmI(|P zJ22qvQyMDOp@jMh&oMdVOep2H3yT>;%g&amU9~`ui}ayn%o?X*K;7zRoma{BrdB9H z-)JNDi>7Ra4oeVafeAPLnPJqmw%lVnnt0}LZq_x(%?C?nhPz&7yDYPa#PX;}Br%VO zd)4LjHtO)9wjcBnSisddH3*G8fyFiOoUZTFGJ>k3R%2L>X6iF7*F8AHCDCP_ysShFLL7aYcn^#-(7iF64F2Y$QemVQNEl zS^ZMnAOu5{xoV`Dq9n0g!pn_4GoE;<#Rw*!%3z<6eH?DF0D;=fWfoQgm@IX|!B(rlm?RC(7^>{Bnr4FraSnng?VwTT znv^?fPL8=57M}+)Si9Czj5QY{wAlTC#3*9p0n0iVUQpr6k{C+4e2ZBU<{aox8!>U* z#ctI|wG027ovUdgl4yc^557u(nOfZdEEtrbamQ=>Ro4zkHDH2{%k1%ufHLfri6;l7 zl6B_O1&tUqIWF2N<77hQJ!7@FwLJ*|Ga5759Xs=By$K+mRSwbdtU%Gl5Te&xSc7@$m#l5XIv&2FIt1!=icm~p#IWp&E1$YxNpQ+<#72x_aNWw99MrkM*-mi^4S z8OtnDC1V&TQ;A9lR-?ts(SuE%Ik#|PpFV}=vk!%X1`ZrnG_a_su-9xHAv>WgWzG8y z9@yLD&8~BaoIODPfNmd+snUL0AZV(rOM#FCxj)a`oo)uH40&=kuM@66938SaJ+mlk zw?71Yc>*PFsxG&~aH>(78Z@|#B_>W&!BCrjGsi#)aQPPtf2IJ?#JFXnb!TVx7GOpa ztF5X+dQE$8J?R=!QI;w*-F~Z?rDf5K+$qQ;JJ~6jX6Be+|3$Uc)*y~-9Ox0*QX5(9 zF2UlNjb|HsBv{8?U+30c%<@w(nLtEav0TA~cm#zYV9v1VMfdHy)fe`gmJP)ysAWjQ zm5gAkqLhWxQg!HoWN^6FDUrs|3Ycfs25kj&0xZ-kH`~Lqe2h*X%IBl6HM6V?-hqiG@e7lci+CHrL%5 zyQesgyfn$yZTB@$Dwi{xOocN-LhV_=9V;$1WJl!4-wt`TF&yp`LDIPAdIO;d*G6!-rC~P=& zqAqQK!fsjYbBUqunlX{0@K7(2u`1&>_1SH6rnaN2vL7@0%9i22vH~>hLwe*>wikQZ zdss4yVJGL}5bT=m$>F*0j;0=FTZ)nPaxP>g^oXRUmX_Tlk6_sU(G;;-zN~FV)NMbo z9WrE5;y9?sv z_ICy&klo@71{^!D%{Coym6h0l!fvsyyxwkd-E~Hh47TYrcTkMErtn7IiDM1*2}CKi zf*dWkwwPt?@QyW1x?`sI=5TNAV@Y_6W1pCrwzQfua4(dWs%_Wn<_j}RqoLWtFwBv_ zxp6VR5)(+UQWU%+Gbc@%Zn$kohD?Cm2C{BJL$r)2MK-C^CVjv!aj#B*9tvn=3IhB$yHkEgPBC+VnZZuBX2iJ(`7IP zWmq&fJ*{>Wm?&|jHoe}$5iz|PJtT_HZ0uPBU<~!L!frO@R1Yh#Y@nuZL$`rA+fL5} zE)gCVZYXSX5;jwrlbo5xv3!C}mdqKX)EskR>uvw86|`S>GT`tr*(}!X3#{F~T~xXx zWCfl?h8Z1StGpPQ-mX}J?TRt3qH3jP8P>kd3K3QjD=WpUCz4C-RDl~faHI))99T-_ zQyL-UDhdgKr!*F0C880FV>NJzg|;b_yJDHQ(Jb?ZV>K9MUA){L_(Auy*XEbw$@6{2SHD^oKLOKRz|&<1jxiyZx}S#zoF&;h@GmWmvVFzE4`yE*k>53K86A|xYz?9 zSy#4ap4TBu!37s>JTSc?IZN&hVCRf_FEJ_S)3z1F&oBZsR_=O<1=5}9VC(`YUcTIm z*6`zw6U(;DrC-#Wvx}4bOdZBk2PdBrC^{z z7sxR))5p#-LU!}C<-Rep#cKy+O%gpXvy&4;&G*ocm;s=M%zgDz+vnvRlo8RdhF8rT z;E@A7eg?@6=G>Ato6|>V-c>xQX0}7qi8|h3lpl<*I-9}3e0tId*0c}Iur@|O2eBLk z5|~BQn2qwqScfc%x}EZr^I;4#dFE=Cwq$VqTU!CZLB|(i$CW!JX{FYt9=Z`EtIA~2 za%U(5(H1&FvslgaX-g1_EpvN}9R;K8ed0L5gpm{TQdDHMoO`)(sqch zxzWz{RxU?dS3}l2Ui)QEwlMGb8SbFkXd7Pe6@>OrY#r5i2e&4fOOx9EQj`&%wtd23 zM;vmF~Gv^x{QKHp4T&04vU-9(XhRXosR7qF7p60qZonRY6@Y>HTeN{h(M zu8Lq_!Ja*UTs(?O2cPpUgxKgnZgoeczZBEs=ufVZUefnr=8sB@x zkXF4@OVh2YjX98`Z_x&ohOtlYp6Y|$Q)ZVa7Z_1C;EJ$oCp;0bYr^(C5vpa7Ya=Kp z;3!gzU9V*o_)0RCa@=0|^yUXM&Mb3#bDWgkRJc~0K`?xZ<@~Bfm9Hio)K!#FxGH2Z zuS<$Y1Y6gZk#Ds;kgd@fvj*(aO0OG>Pp@JJ&p`<+X(Cy{eNSMGu)z!mm7*C_H%-*- zLR6S=<+Pw_iV3!j|nC!Z{x5H{ut}p0uC9EW=B$i|^q7C8fAY0PLu}#eQaCH}&C}?sz5cI^LSPLYae5u_s;*46Ipba&hVDont z!oXqbZxWSSaMq0&Kl8Vjk}JwWs&YofE-*6K!ltV7G&LRK`v-)F>k! zFbBdtjtxjM>X$p{%c&h@OV~CL2!3rHN@f*i4xtVM#lmifdb7bLJo+s$_l;oMVi(S{7jNvez4gpBQ+$xA!`7WtJy!i|5hp z=`MuEd2_~&Moqyo&$d{3NUlwkUL|-~?uc!5^{r)ziYUuA+jz8f6f<}>a+sQHaZD>o zhK@AHaxG2;jp~2+il4709L_W_YD1E(PiT9qTHg_DG6t-C=$IN$`;TVSqYf=!pRy9=DaDIjh%#g+Au()KgcH8sl z%Cf3tys!B+!%%4wQaMvA%@7{mcNgaU?B?$b-Y=WY4K}ca6481Z={g)8xPrLGUGOE& zdkFgt^~Tx9J}oyf%VsG`I&{1)=y)?)w8ynE3e(YBhn5HvHLY%qvrSeDg(!_`?C!2H zN9C~Q#M+9*W`^h{2zDD|PzhLmq1|{v|BOkNsqFD8tkFfwDzSN0WHOny^q!_&I?iWy zK4ICm5m#1aZg0&Vc?|DU_LWJ)znb18d!RI-#-hv0(7{5=;BNS1j<;7S!wYjJM{Pl8 zm5>!UU~`?h*J+0rn555J+N#Cnpo~qendDuElMX)^yNB7clBP|x5=@!?$jDhLC}rVY zBnFmRFie9fdyb;Xkhn3-otmD&4(Hrm%6$M?@7p+}w_GK681P(%$ft&a{;Du@uw#tw6Xm8NQYZQL&NdE(q5xOCq%ETNq|yQ}Yz` zh`fNtZL$oqAsvUETSQB5RxjsL2giQPBe842bx$^lyF80#G^|&9wv=@}wvgH#E8_5JhZ; z8RDi3R;l!?p=e+-*ocqlXR=as+nQSs?m6Phx;gm9#fs3qk!GC6x$}7Xq9+YIBV1=; zn;F)Lb)%Cx2P?4^_xhS{K6K}2xM#^RvBil9)+1bN$HVR!%cjf&9%|x_2JjF%X|?0I zO^&r8BQV58nvi9h!=RQw^6YIYyy3tsH=CrGpK#+3)gyCFnK_1l;y@jv%oA4>+Fewp zHtn&0t{P`It6*}=y*%1j!aJfcd9?3WF0B(ImwE_9i}@4@@dUP0u4A*brv>GaSe>BWL+n_z9)2hHtX7 zFnb}PXE(R8Ww-`wW~s%qtW*$fJ6e&f#jU6{71)Dinowvrq^dwrZk)zjIhzq9*qtAt z=|*-Z5iG2+HrpEkI0|Hz9=D@#D;(`{+|k|omgZ(W3CPj!;}b^J8fy)qOg1Z!=g=-= zXfQ3Sm`jl6+8vJ1xb+!Z8JOfYuLea|m33Z=gRi-9Oe;4TwQ+b_SUnz-N~|$A*49_x zENifogx-&01Gk@vn|iF+V2L@|9o&U$%7J|qZ_GfLlm({OdKHWj&v9ccBf*Zfjf)0M zA%-~Q9OD>z>FlB_uHzP7lw0TsRhGyum`;KxcRP`CT;+rCqZqvy%TO$`CXWyn1s#tO z7I6bM1x@BgOr=mFF!U659%YO}G;^gamq5VD4jXIHKVg;IGn-Oym$bVeVh1#H6K8I}itY(V1>64JI5z&1h0=DqOCcl6RE{a?CWZwQ1GvOyw!2 zX51&lu7@0Iv=Vn9c$E*P3U*r} zHr&gI>Qu^wJ-cbz#4)o2qFf;3>;^<8+B+P+*2ZgejoyrExTvGjZCFF;a1_-moFuT9c}$Y@f}BCkwDXY9y@5)CxD~gDHxsTy39-JljF(W>#r7 z0axIXMw$aMww$pM$8DfT_Y}4(P&B;Jfswpbux zFT-|Z8(+&8Cn;bq;ru(0&{^hu0uD`vxysW$&+x)!#bYe~Lb%ENjzAAwgC}R%^K7?QWu{pFq443lg zW&c!vGyP^-cdxl;TtJ?Sw(CrIopshOT@$Mu(b=6#vD*te%unrP{Q$d})sO8)WOpyz zocmjIhfbD!R$bO6{No3rPumsuMQyt;8l15X*dFO@r|nQ}b0TrP^;FAh&UR4Lzo@O0 zOxvk52>lnuV$t~WSiBB>ifO2AXUv32Q(D~#R9@U(l3Ps%c5-WmmGw}p+D2@0i7eWS zNLzWaTYlOpxSa87$9<~|`cGDP+Q_TcVeIxAMgMwR^RR+|qnzwgTXjzD-+-3e&z!|I zBceIQP&u!mYE7gbo%Eb}xiUYiH#ZJTb31I69OHP(E;(+ip5=^2+m73aO0LcpXU_ex>ondU3|&7ku(;=J=bvxDDZl%NZ_1fx9DdygoN3UNKX|^5 zmmjBe&k41@cLzMiU_k%;23!H&Bc*rWnyc#wgV5u?71sx5bRTvX`u?DyM{fi1hRsQ@ z7r)r7$JtGQ-l=JI#lD{Ry^V4dvKtF^I33&T;OjV>4(5SN$Lx?FD7{hFd)`%@sj`m? zYbLZA^nU1jH^Yqi!t^;bKKYV6o(c2P=A3sFy=&j45x2=u%trA!ZZK)adJL~f!-NbX?|(P_fWZW z<+cIt28Z0ad_D;7!sYfc!sSQTS#F2nb>YqvJw($ykAYsH)C7jfrz$JlkKry?eOa6p zZo!Yz_2qETap7KF#Nc5T%AR)JLtJ~eng1gzq05p1ijvlScu*~vgj3p zp34{Z$u54!K*6*J`P>G*qu?%_&m%(gjtC{xLnUHtD}4 zi{8g=(7Py$-og+)_8*SkqgnI{f9!cZT%~|J7rzIy=+%K<9qeOx`-SKo)gd$gN`7KL z*bOJdjMyD2%+u`w&$ z!aLLH7$jPx|5O&et@qgR1y<&9>G*jTy$zt}>gf=;bm`a!6^ixBMQI!8^|hqTZ=uwC z!d*CDt^mCgV8?tJhS$*>o<*$B)>2R+&`9mnEz^d8Kjw-EFWg1viOIzGyBcNW}b*8}=_FDu;c zKTh{Ucu44)hcXtFzoKY{Ojw?!x7<81Wki8Z3{gcwKt0$)a}w=yij=dthyzE3@d` z94g=GaN+1}&7!v{E4_~1GgfLCGtVOr>>fvN zR2IDpev5B=w17w=auXQ z2YMX6Rax|UJ%w=#`9gXN@H%=ML~o${f3(f>Hq((F(&KwoR=AfQ?|c27Be|jWhAelF z!d>`rx_x0730ctHUGVE3=Z+YvZr-@lVS+kd0rT;AnGO~=y@u(HtMt7+a?pdbjK_sT z!+h^AUxqCsLFri2NJa<@kD;fZh!?6TFpdOVp>-3<7=dWNr|HW}V9hk-wF)mh^3wg@ zmXLlU88au^lS=xDc+BPW6EQQfus%HE&_8EF=_isgveN$R9@`$D33wUbbB)f{5g+;S zE$A2G&7Gd`jGFW~!$?07uQ08FD&ifUr9UD|e`J>a=q!EjEPZ$;O#0+R(@(^3l3{&O zS_4%im~~m>h&RN$N-o%U`rd5moIN?P^b^ULv6J4&v?Wv#!|9}rBHoy^#@Lf1Nk0)Y zl7;mwmGl$wCZ;t|MZDv)^coSSMSdm?)UXhROiL{NDs8XYUxS)aOBT<(nD+7 z%zEkfG42oWZprZfHSggJ|1-T8GTa~Jy_cc?y4N|>DKgBSS^A=j(iIdJp#=m7X=Jhj)b6G1O&}UKi=XM#BC`Zy@wEKS=uN8TLneXJptP z?QP7k@9o_!d-iNSFth(nhJ7FJpBeUjy#3W>a}L`B{Xs0$g)<(BEdAOn{U+&;K)Lro z|M8*poJ;mVf5Ca2dr0qK=<9%(-XM>BZ>sDmi|m2^H9)`IA(lrO3#twaP%)pI4o81pX$9RJ*-VVdRuz(@`tm(!hX3FzW9J`+xYBZMRYkfa@F^b)nT*D?tdRHddiTZ zo&LmQf**{)UZ>!TG1v^M9bLJ%u;*GkEXJpsa-3KGZ*K9xKD_12qxd*`vKHUv#0{m< zWdlvj+u7&A@ONiV2mLv+ySJAjYY)c`BC>m7(WCNDwKzQeNZ7>E&go!P)?)(jm+Kx3hyqH*LZM@#)?HK8=yR^M#ul&xr zp6|-SEcmyzpy~+hz~087O-Cxq9oV;%3|E_SoQ_FXgRBhwPquGFPpN6-7JIByV-FU- zz+T&k%QP$Oetni7`Uo6$w-$ESVibqMYU@!8a+a*4I5=tiQC)dqqGqEAOvX+}~=WrKV&P!oUgfgjMSX@?}n@nkYWTv#yZO)-Z z?)_V>Lud6f7h7c|ptLRGv}l|7l-B+3oGClI8N=j!<{mpnxO5l%x4m(L#a0%rYp9P$ zmnG^`4d(EP8G71Cjop9XgU2icUz9h?%2@pp&l?WC5B`($*}M}yuabJWdxZKj&szw- zH4ldO6T#F!Eqs$0#~cfOX}%W`)4M~YCqL{j^1Rc8i-czgA0YPdynjn?);Zz+0L&lg z?;FC`fq9D&4&p@Ihqx5Hop1_}?q>-X3TuVygii>!36BBaPJgR~R|u~W{!sX!@Yliv z!C%wgKw*>cS3<5Y_{h}Hh!C&jb+p(Km{*1Q5B0GBhRlx=_K`iDczF;jz`N%oO!Dm^C#*b5SsNq=(kA!OW_N` zSA-@X;qEQz-xq!&+%C*xzQNtzLe9UaKS=lu;gP~V!ePSE!WqH^!WBYOexP@*^cM@S z6mq`C@NN{|CcIO4kIOd_u^1DAV_A z;VZ&z!ncI)3qKKV7jm9T|9i3i0}m9MbvNjHNZ(7?UpP!SS~x*?f^eqrRAHsCN?0#k zE?gr#Pk5p565+K%v)+by-7fu4gpUZf2wxVyEBp@TqfFnm!kdNn3Lg^wT=)y&bHd*W zUlVeEOL~75c7kAv`YytQg@wW*;b`Fm;S6D^@N{89Xx1@6w@LbQg)PF%h2It4B>aK! zXTryYe-yqY+!F#2#=EQV7~w$SDB(EaiNdI`TDV4dnebNOkAy!J{!F+MT#6n-lFQn+UqOYaEbF~Vbo^Mp%$wIDy(fxVCn}iPwe=B@l_@(eDETz!j z1mP*d)xz_H>xGvJuM*xU{DJT;;X}fwh0h6J75-WHiO`2&mGRh9c#yD{aJX=iaIUaI zm=vxRZWL}3{!sX!@LA!j!uN##5_a0(#;3dRXyGtnv2czsCaf2pE!-fyR(QMcLE%%v z4}{x=`Cx>YANvW%2&V}b3eOOpB|JxXiExwfPr|Vf^t%g>5)Khg5S9o}7gh+t?+U*V9tZ(6B5AtMR>dL=fYQo{}%3jh^2R=aH6nMSTDR-_*3Bv!cT-s?Kg~h^h;W@$^h0h8<5_ZN$dWPRyI8C@nxK4Pj@P6TMg}NZ!pPA|k8pzU6yc-74}}N! zvhF7d>xI_{pBBC?+^@HFe~@sD@I>Jf;W@%@3O5UH6+R(+M)bEK&xGCj+i-^qqr$bqO~S{7e-OSY*;Tys)g?kLL;Tki|Zwdb`j10En9VR?dI8}I}@C@N{;kSfW3hxs>B79Bwjt4$nlL6@FT7Ovpz!CykA?pf_84L5_7a{ToFz;N&lFxF z{EqO4!n=jf2%i_eBm7u+z(^b3A;QtZiNct0iSV1kjlv%Z?-Bl9_=Yfll%>Cyu#a$% zaJKMd;VR*|!p*|lgwF_{7yecFFX11COk{HPI!axR^eW# zqpYU~36B;|6P_qMO;|3h7AA$Oh35({6<#U4LwL9F8R4&mZwTKNelE;APVp0dLpW4; ztngG}x$tb^`NC_2n}rVu9~HhJ{GITyaW>qZ!hynJ!U@6?gmZ+a2rGqE!sWtM!fy&U z2)`%1U3i!9ap5n7zZL#L_^$9T!hZ|%$J_XK6CNx)TsT5FT^JXx5?&{KT=)m!8^V7H z_nctE=_))**jG4NI77HtSSws3JYRUZ@CU-XgbxTG6aGs08{yl+kA#ya+IXELJY85T zTqe9n_>l1L!Vbq<{|5+<6b=;@3#SX`3!}oN!g}E<;km+%!YhO~2yYesRQRCqSHj;2 z-w}Q+j1=4W9wD44JYCo%yiE9A;a$S}g})ZQEc}P?-@=0@*>DaQjujRQPZ!38UkE!* zw*Gnwj}^`qCWLE*-xdB?__Xj(!tKH?Cs?{i3C9TM25gr5rwX4&w%3J(*G6do^}DLh?RDXbFK3zrL53ojII65cEPweSPsUxhtO zYM+lD-&J~^}tQW2jUM##^c$@IY!l#5=g>MNz5ayp`!`(}G zsPG8kMB!B7QsEiG3x$^m?-brE+$#L7@Ezet!p`$;`1=co3Xc_DA-rCAi|{$&Tf)zT z2b^r_9U>eg94VY7oF}XjCWRLXFB9G>yi@qB@CD&V!hZ<&J;jFKT{u`cN;p?|nlLGB z65cP|DtuG;rErf^l|JDS!jZyp!g<04!sWu%!pnr;75-HCpzvkkHsNQ&ywhy>hYEWN zj}uN3E)Z4-Zxn73z9xKI*mZ%Wd!TTLaJH~P*etwQc#H6P;Xi~2oNnoTU3i?ZSa_}Q zR^iWtFAColzAr3@T6#wadkZHE%Y-Y07Ya8BZxcQ#d{#JSp`|-Tc&acdJWu#d;f=ya zgii_!%PgHy!a2gzg-PLh;kSji34bAcQTVQK-*QX0NH|ZpM)-Z2oJ8b^h<<`g(=}B!k-G?6n-SkUu6Av6&@n&B|J_zRk&D~5`J5Fz3_*^XN4~d z-xU5u_;2B%i*5M5goA}KVXg2?;Z?$$gg+KOB>aW&1L1aIBw@oDDjYAIAv{@FC;X=H zGT|oS{lX`N&k5fb4q9TvnJ+9CUM{><_@wYvp}*AnJ5qS8FhShY^Qwhs5J!35GTEOk z{dv-Fl>Tz*uao{p>F*|j-hIM96ZgV>7{ZT;p#L}GSe!?bzDt!g??#0AH>B?={Se|9 z?7x+HT;`V%JA2-DgjW+m|9eEx`Gd?~6MiAgtG5375%>1IBH>UX{Es5Sf3fs)g{R0o zF8vben}~?tWir22=C2C7*1&!r?5`DeCnB6fi3sOpnJ*Bo5Uvz{p9pt%37;i)@x14R zFA_oT17cUt`-|}JGT*1x`tL3*BJS&XLxm%W@P8t4KhK*hJXz-TM1+5q@G|25$amq@ zMEJi$`n!Zr65;O|VxH%16}~`(`&VTDhV<`B|2OGBlishh{yPXe5#fJ-BItLQ`60qW z*^iWcsc?Z12lG6?JMQrjE+>NCD%oF2JlOND5q?khKau`k;d4ZU|9jy(!oLgsGpv1g zVNc;e;XGlvutvC!_;t@aU)VxK{5Hz|TH)=&XNjnPe-U=BxB9-qIYh+sbYYY59O2c( zLp<*~;btPjyGQy5gwF|I6uu>VSNLzCpS1K2A|8r*Es#lk7V zaw77#T8O*0jefK6N5Y>8pAx<(d|$X-nBQRiAM^j1dlUGmitO$GR(F$yB#@8>8pzT> z5CUNdL=r=QW(hlpKoAgQ2?;wv2m;EcfD!{EDubw~=(ylEqN1XrqB4rgC_1RPGj78u z?&#>q==(f%pYC)5`a19L{V(}If2+eb`%GRqs4Q@N^zBVnfNC%=s35Fcadnv`=ozV@h263LGic5PsQUT#_hjJv|qg? zuAc-F@g|D5P`s^JL?Yd2aSDn2D-^#(yj|QcekgjEy6M}BeZ^_wG7|p&p!lugv*O=H zv&{9=MhuBl#EVI^(vvVia#qJB$57*_!fzDA4~tO5d z`FA0aU!GVZ{rTb*;(g+4;#XqwYS&*ku{Q~S{lv*)sknjcFNt4>11@s)!^Dwf zYsVQQjw4a-bETiD_#m7jb->3LN#orV^6~7fvhz%}w{k0bJ#NpyB zaiw@2iE`g4?jn)zlhVISq8M`ICx2 zulUP~zp3~!#l36c2kqq-+lvFmDdMH#H6+S$y?7Uiay%ma^OFBn{JZ2|i=K6EegP7G z(!};8{NyQKAPy3TiL=G|;wo{Cc#U|y_z;Qu?IYp;CB@&9{sYlm;@UMNVb@IYY_U)r zNuu0i#3|x*u~J+rt`RR4uMw{ocZ++(_r(vzFT`&|-=%K;abjz+tvEy+A&wU(i521^ z@eksa;(g+S;$Cr|_`3L(_?`Hp*m^z6hwss;8;{D=t zB<$WGQLfKL?`3YfSTU7^U7FZN>?G!kA@NKS`HmJROFmOPPrN`}BW@6{BGE55kolMg zioYX%D*juHt9I=(#9XnDI8YoVjuU5-KD_2c@g?F~v0B_J-YDKJJ|ONDpA!#>Z;MC8 zFU1q0cY|B*WU;B3C3X-C#NOgi@howoI8B@%>js7V#$WcJY33x42JyL3~|& zM?5NiA^ux*HoEmo6dQ>dVjFRQI9xneEECTYmx^n}YVm6E2JueuKJjsJpLkGwL;R=s zmFW9}TkaGwAm)f?h#_&fI7XZ)E*6)IRpKV`2Ju$$0r63BzxcBFuK1DojrgM&d%0Wg z24b4nTI?d`i~Yr+;<;j(xKLasULtN3uN7|+9})j5ejfcE#YSQ?F-zM*3!q{|bUU?E4tHibWzWn;gDh;w{BL66w#(aGdW%Fa08(D3*(B#6w~>%MCjW zBgccVkLl;DU#93i4HMjVkeM-hU&CyiZ^$l4PR94E$nm(YBxm7+M59}O74mnU@TQek86GYnQ;2$@`HTsI6GJMnOIXFn=kaX zK9d|L$n@u^J}Z?T<+ABVDE(Na59?7Ls~;}?P^Ck?tbB;%16A$<<%dr0!u$}=BQf_z zDvqYM>%vUM=aN_-)+^3&%ynYB;f5qWE+&fNd7VSCd$WHY>iB#Co(_@jWCO{h;D@JYsP;s`xPy z>y*Rs$?}m{3<8SteJm!3^-}R7vL)uN;`aS4SjUzszMRDWt%`3`+%`d9^*3bwktOSa zu5?T@_x-%g$F?{8@1h)bk4t}8alo$YcHE+06BS1nSUFr;+HnSbj^bTJRMF~-L@c>B zjv-@twuqr=<5(grF?B65?#(Dy~GjXC~+!@MlTcRiRX#S#1-O3 z67%T_@fz`Z(fSSa=qhm%+j_?}jByf{fL6K9FbNURqt#C2koc!l^!@m3Op`3~_u@j>x% z@hR~Y66?)t;=AJC#ea&Qi~k`p8I9LvyqF}~_a{Nm-+7^3Hi`ABqje1mt9ZM3m-vAAu=u3-jQBV44e@=E?}1{uJ`=wbe<87Gc(I_6 z2_oM!%Xm|ri-%~;P{;2pZ;tug)@iFlk@j3Ag@on)_@eA=kWJ~;ybr~-viH*f(Vz$^(JY76P z42k{4Vd6+}vREq45i7(c;)UWGk?$pDIWHHl68|LLF5W9XAU-BODZVWJP5eOoMEqR* zTKqvgAtuDR z+^qPW;-AF_Mf?6K*gd7Veg72V2NbuzXM(tW{}lMPM5t z`+h2@F6HeZ*qX{{9F2j8vSz%fa@yzvBT;Q@mW9C)(?L=vOPgR;(5; z7q^JliZ_Y3iu}zA=C@mXQhY{yQG8i^LwsBORQy8xPW(~i1ugyi#8eW;y{2NO*jnr$ zb{2b!{luZ-nc`S+f;deq7wvnskl%TVUnH&*H;Pw?*NE4P_lWn2kBIjDTk!iA#h(}7 z6yFs;5|4^sirE$$HyhzG^P;ydC;;!*J{@wn*2xjfq=PD~LSi>Hb0#cpE0I7l2Ojuy`r z&lRVMv&4Dga&fhIsaP#uDQ*$37jF`Gio3*T#OK79#8<_)#P`I1h@Xkyh~JC9h+bS9 zu$}Dt)xd^|HxZkQEyXrsj@U)a7kh|(#Q|c8I9{A4mWxZo3&pkKdhr_Zdhr%?#(Dy~GjXC~<;#t~g&@C@vFMh-=05;^pF1 z;QoDSQ24PioT^TVa2-7mtaxZQtgM`CU1LSl{-km%zOiLwqNk$5DD z>-%veuE(d4xE`NL!s!AM*P}~GTt}`Zas9ZS#C72&64!fMNnE#WCxedtjbxq=?_?b3 z3;g505H9;H<3tqE#*vjRCtO%|S?CULX4 zUA#ryA>J+S6nBYx#eL#_@qluxBHRcHp#b(w}?B%UE*$WkGNOd zC+-&yh=;{@#3SNI;!*LK_?38EOo){7C#tJTCqqo)CHC+_txvEc(TO zm?j3rEYben0{SaYar^uS;zf#w#Qx$)(LNsnyK#z76zx82Yy5sa7?-uund&Pa?e(`{KP&_0a5kC@-ipRts#1o>!{Y&KU z6XV20Ff z+%Fyw4~mDxBjQKmQSq4gm3UnIK|CSaeQMOh?o)&IcN{>!_GtrRniv$b#CD>6t`6z! z?>>Nel840p;vjLDI8q!VjuR(}Q^e`w0p(*pLkF_Bpw#u5s!!;iQ)b5V~YPEo)Dezey|uPCW^_TUkr*_VmmQMED(#tkl0@= z|Q|hlO z9yY)jf|+heSc!8>flpH6LJq$JzYI%>r)@ZUi880u{qc0K3#RNy2VpR8n$tqXTPNO zsZSeGnEUFe+*e0d7jMrl-uBdrZJzgYvexX2t1jO5=87+Pi`#MDd4AN$h7T8i;cDJ{ z;mzl(ChgyqSYB0p?9F+{-d}O#&3Ru`7aw`*h{qhRD&ARLytO)nLhrJLw#8Lh-~Y|B z?yptWlS-OBX%`DyJ!vP(`_zhE9+Y{PiuC-b>XNM^5qan>UX9rK+)Q_mYEap7vGo zK8I6XawhpLL-sVuK9-dy#1^@?{k`Yx_|tLnw7;vJvWr+vu|MlbpR zsa99*zv%Di-c@UknD|$!OLqM0@GJjpU5{g^Tm9VqRWWOx^{x5RRFCj2{!4Z7J8a3~ zyS>E+tBMcZ6ogR~vMkwLz4+joPfbf(d0JG9*kaQ#8J@PGT);p&n@ZqZ-)tXoFz;VMtnevY^O|E&JcFTYebW{cV; ztWLK@FWI-|>A0$ry;04%uWHifs21H<)1n8eig#DeRg3P9wCJACk~cmCzm9F!J-^zn zdw#QBciVQ|>n+|_ReazkTR64rKHIK`D<@U2IDpP$qwf9nM&0}Cje0oTs0XS`_SI?B z1J%X*exp$joVrmzz_Nhzg%pzyIn5cIT2Pf{H#hR(>u`?uO3t3 zX`#WXc?kF!z_0T~ykHG#lBcAXh8he`?VZ>)fk~QnLY~n+0?Gl^XAaFGIau@NQRY_A zLS7T(l|IwLvcaj0rk`dDlhM#gux*+d?ZY(*Mu|{0rfNxZ$7#itzqM@`^pD#fStz1y zZ?}kTaBxaxbx&)Fj5;GxTXi8^;nD5JQfD`YtM6KH5PENQ1+^ln=Y}|UWKpi73 zp>&Z zv2`oiM^f7h)-wyxw~j4k{i0-UZQb1ZN9yM0M%&^@32NG9KzJ-h#%CI8HV{%ff@(reON@fEA}b40 zjZ%@_67^1`)#&IUmyWSMMl%B=)Lk!1qDq}GEFs+vv9VD?x*L`-yuPbByN+gXYK?AO zt(px^bxS^;OIvuPPT&Y))?9ezMrg766Bs(N8~UNN%VEm=v7Tdox>zKvkqu8h(lx+zI!FelGIWX6@i6E1@1<75>a7o_s+mY!5vooh#v%DK zifdLWW=!kqQ&=O{4Pmjn{#a{>ofl@gfNv~Q=<|A?8-7RyezSU$>PMTN!68!T4uwYca*i;KUuSknM~5}&fRmBqSZi%Vu$ zTv}yOb(6(qFIl`;WefP%3Y_l6r@ZvN6&_q;W3QxGyn3C*q1_g*@yU+(l-KzHNqov1 z-&hcrYM7bq0UKFFtkV6pL9)EM{MBG3R!RxldTkd);FGj}{dzFk|9V z7v)=2o@;UbYKtW|TP%IS;(`w>F8sH}@>oC9t;n=k)y-n{NQ;YSSgcuTvG!VvOa5$e z>2nsBePL1klf{NcI2nph{X=Jq2Zmbgns4#oCX0vev3U3p(W3Bsiyot!GFDVUr1$%Y zt()GTPxr;A7hi0J1G`~R$EObpSqz?NF=Uy=&@C3jc3TX8+hW8w7H7uedr9$`gF0Jm z>V~H<;xn%-w6Uv3S!`Zl@y9DIw%luR^#O~m|FpO!7EfoyXI|UJ;<}y|+lE?P&tHj) z&%EJUiyI%e*v_ARi_g4?PgBHa-rUUMPem5DOt83hiN)>LSlscL#a$m*+~dRajnBNd zrNw={EbgCT@xXG6U0W?4+-335L5qivS?o^5G7z8nNPCM%hgv)~*J95`i^m_ec;a=7 zy+2w!-2@Mr#AiN}Z?SK@#a}M8cy^n`bGt0|zi#pT4;C*p&t$q6i!2V5SiCgf;?QLl zZ{22bo`(8gm!^CGpP5s-%5q zU`0u)Xa|FnB~Al=9U-j=lnqNzEnoI8$xm^WYmIBQ6PRn+Uc(Jh#2XnJWIH%0*q>zC11^`G)|Wq;@b^?Mq4<2*f2d!FBoS8p|A zXPP3(Kd?Ks(Bya@jCFbaLSyYVmSh12M73xqlGb5p)6=hNoCdrf zR1eFOY23U$K5^2~q{AS`$!+eryeqyvgK=cMrU{=S&u!tEG1zfBxT2=^3kXb;+r(p1 zM`P3&490Y{S8mg=Ahk0}gqh&P2hXz0R&exq7{&+3Ot%<&fyLQZSd8Ccan6$#6JNKO z^o_;2@ffJ_!O203Dft#tM_5cNvnX9|G5sowvO6uxpS76ruEosb7PAsUIN0BaF>8M% zvhf!7eZkd9DQ93QClSZg!u)9o8@!_#QLlu+B6B~0dALD$E?K=Mo2<(TG$%VzR?8y~X zNNwDe#u_jVcl4BLzYy?g5N7*riW)N~$WtV94hBTBW7jX^XD&`=TgoS5`AP0)gZ^v? ztj=#;xAbNB_{D%$t$AA2X>wO5u2E@V3tF?$bb3I;XDuw7=QJvFV?L+##n!MJ4ClCp zb18`!&U0fv$8&uMonNo@{nkFuNp7^nwO`sj+VL_s7Uy_+qWHd8-!KT8m0bU>3$^zAz^7{M!eo5Z)IJ%XF9bRv^&wZVRU&}Kb9rolJppp4;PA=rk`{j(iU zn~M*x4*bQqop3|jGq#u zSO8=P-QWL)WuuM8hTY!vEX8sh=L_=G)bKkOjjl9qYId*_ZAsI`{^!uVMv`{4w6u57-=Qr&2_x26W}I0{}tWf^=o zI^WCU89ycNC}$kabTtH?zDVh-7v!0?c@-0;(R}%;W8Rb};buQhlo~bgy2W;DZ0l~T z-NE=Ua~pl*HfNCM>E>TJ;4~WVaT|=EZtw z#V9SCCCJl!^EFL|M|F-haa%XYD**E!q-ZqSaHPB47j40d19LM5TcZy&Y}~efhH^fH z-RJ_f7_;=ru1$4B(j*=)hjXk3UxW25ubUe=g8ryj2~p1|-=*`CAe3o~`vA}8hU z4%v>wsbl>7baHa3;vh-6e@lB@ecHlOZZU%PG5W(OV59BEP2@HgFN@3tSR@;*h>}M)w0%InoI_%bnS}gL?uuNrw)rp! zi%G_Y-SKIA+|vz5A)hZ;LYsxmr_|VRw9V_dEJ}nC2Cl!;3|Mw*hskp0V7#57ae_(V zPnb7OwBr%$Vai|}BO0gZeA1V47mk6A8z~x>@(daPyXEXhPwT{#wP>@(enpd0W}_(^ zH&)c2G6aXK#!VCrq*MeDZK`Nm$_A{HjRT4XQ#?%&ZLVlm%0OIxHEyA3yObw$5KU7w zC*=U6873YVik{Y8QXark*f?k!+Gt*iClAq9s!>78Sk~w?MT=7UGi^KbGKP|;btvV1 zjL*h7hKE5<>;5TMVazw~Xizpp2c%SHA==3_ww?#3WZ*2YaaYsEMhB%-u|_@2Th`UE zl(&$maeu=Z>}fqF^RaD5C=uotW|^qXQM4lJY&Hn9_i!_4JgM#fT13nP;Zl z3YU$CnGQDJxsERp#q#%JU$(ts2u@x~%~&MtT#bJ1jWd5$Hl>=>!fAKy36-B=fZPIh}VQFc|3*o3;ov$1H1_=C+s< z=!O(c(|gM>!^ffS+ggN|*mU>{gzkaAYja%oHQw2oUGzOVAhGd7fxFs6^sw7$PGBXQ zcDLJSzQA_YaF1J-IQV$gdSVURu(cz{K>B|Xx;ETgh)CNyzMnA${NvaHO(#HQ&TWVI z8<^INArbc^GP(I+CZRU|*O--*L2gEvCvd*(e^aZSO%&wrg!vH@#s7A+Jd@iMhCd1E ze=FJzw=c}}4iG<^p|=#f=)X0xYgm_iQzBV`yErqhnq=|+bZS>408Wv(IvIV zQSk6U*Jk`V zV8;Zxbz}0d^7zxDTEl6|y&Urtj+Xw<(6Mgaxv^s&^g;HK97Z)7w|h*BZt&dKdUn_N zOm6>};%ub3))iY)rEdC&-N_bB`C|bJX6} zfo;r8ZbzBFLfNcURDmDG9B_i%qcR`h!#_i1up^2&+bZQbLGE9fjaUx-e~K<98^iB9 z;ntSP!1VRsDT^p2H@pnL!0n%N${gf_8)D{%E-yE9j`SVmFo;XovM9ZGam~4)n%ikT%eb`2%g?KW&g3 z3j`KmX-ymK#?k^<4xO|iZY&u195XO&s2j@)Jc|Qr+AuCMp4ROG4`Sq|4R>SNfi9>} z+L>;weP9ThKkY0x)*zV`+g5 zG-<{rHx>*uMK@(!#ihg3IxFxZbJ)yMqbnTW*ASo9nHNXh3}3~Pv70-rCX<_}W@G^b zPr6q#+;R2u!^vDk-6V8y#?$s&)_w}GW^p$*a}$+)(Ki{7xk?J4WF+$*D$_CdGk$iP zkOC+l0MeN}c#sx9(YLYZD8^3-OkSsnb;8YC^BO)fj@pvA7Ma}4H3oAq<5;wqo4e*Y zHpmNAaHOki2JPha+Y6F1P!zp=0d-Z;5Mxvg&2V0H)IjZ!*6?z5YJGW%s}5nD=I z8#NmD;7vPpPT*#l*v^oaTl3~6EMbA;a?H`7e&mL|sn34AsBU{}5$9gMxeDVVu=7_e zxXo`qWv^U*$`Z;EZv&XOup9**uUkr4@D71_m>su1+QK~`@xFl>f~6tw@X1QvO)%eM zJ_ZWZ0i3RWJ78_wXYxjaNkvHme~23HY$7L%mV}wi=D+_W z9q&_^T%61XE;-33Z(f-D==1OFs%W1<-qA2q+Co6 zChvgYF)fI%tdpyI9iGX1Bc=pPQsA08MV0~YnwSeXTrWGNhu|(6tYzV6L^mhJQR6wo z$0o|;T^I8d$JfU-#k5W61iz(jQ%~sHdE8~0N&FOJ0x|O-Z_}8oX_D`8FLG;4GI{gH z+(6}5bxUe}1bJJ>+)9HSooq%@YrWweA2Wl)u8YUr@u*{w$(uoDd`nn7>{ftTMQv;Z zd7H>Q%YJUJ6@W9y3G%*?d5kM>g5=h<{h%i&$XiOL3a55~hNf->TnpZ9GCyFj1pL2Z z!5dL#97jvjXbU^GT_3zhWd;t0MP<~~z-r37R%Qk#)b+I#nY@o>?!iakpj#|kX1hI; z$(vhdZyV^2M(JqaWb%%e8O7z|Z&5lo9dCn~rZ{i~K8w=XbU`Nw-Cuh^7o$2vGIYme zFr605II4?0?mmXKaC^Bom4i7RZ_{Qd){Lkx64hY7-x>A`KQeDDdgE< zs!62<8rVx%S*c|1UCL(WcAURs)q%nSk?cij66{2f^%yhL$L#H{rha5GPE< zs5U)sW#MKcm+VHS6P6XWtrw5kFs0LTe?;5FtVBmjTSTpU0od~snjFU{$!=~w#K`Ik zU5x`D28lU_37H)IJs+gu#jwckZN9^3I@zHe zZaojv?lTOg?1AP(RFqv3$=J>FCz`au`j$P?OhZFsbKH(sYTb?PUKv?1`6Ih&yt%c> zDNXv&WG79gnGlX_VK27Kyx?(qO{dA-=(6m^<~GzZY{EwL^TX+NX~bliISc1~VUwOT z;fK@f&WOnh)74jFV#~}Ar`KO2CKvI2$q_HMMsB6Qr^zQ+%yOPK32vLXW5kv>^5OJK zZUe)WXuzCZ<}5FLsZV>G{zcM!=8L+&(NtH#z&F74AS`*_`GNM$*1~Y7^ygIAZr!*e=qqGWkAY^7mRM_Q8ba z%}!I5a*l?zkuG%|G|i*QMzl@#yLhz0Hlvn?&{(Qo=?m4zCO8z&cA|b^H@2>!r4ftI z%{PU$Eo@hXu8mmyU>qy~(LU_J3O!7VY7TOrCjmo{V@bI-zzdh(LUK@ zJkzluQA_zIl|1TXkM}Ie9- zYUgv!T<%%YtB&^)D$l}to%5mjbNxC=`_88}3yqt7wde9sMC*juohFT|^bMZJ$I}Och6hI}-4!eJa>U{Z&zZ4!C%?6*sh88|D_Tsgbh7{E*@YQ=l8Zhm z*)sUVv+qrYE96d1I!Cexu_}TLW>K<+34(=rpi&$@9P;Co$a9=}< zRIKzlgU$8m^k^S$E`NzwOfV}j0P0#qts9|Z5!+5?1o}GKHnK1{p$6y?n`w48?|-mV z)-`iNr-vy}?h?W0Xlw}1K3#L+(7s%;M& zWLJ9sfss|$BD!kNg>7?U%_lg@MB7GH?Vn+@>`mU_DHoh%9KLL+vbTHVFi)c$MOCeU zX6pu^YL9#0XkAk^dpN7H3r&vLz2j|c zDApQqsUUlvY~{kCs>+;1gtLR%uX z-}qXZU$c$shNmM5eD#X4z(<$Hjzs(6*7w_pZIgQYanwJxZB)rKJB1slL%sdoek*|! z8X2(-)q6Yr*KDIoeo-XB^m@CopLpuh)ST9Z?vEs>sCNl2?@yh;7T+DtA4U=^tJggE zYY8H)JFZ@^=_&&2P0x8C<&2sv9&-(Q-SWUAToO`Fo z_C!NQ=NwhQhr?z$!@RfD>5sYvd@pR9Ju3D+jP7Wc5nIf9Tr$|4bMW&E7!}cGQ7xE5 zvuANOk-aeXp3@v>IO-B!W@=WL&Vbvt+7+h3l+z7xS!Wz9Mb3XZkLKri148C zaGY`E^gn=;cs@c5LD#_$j9lQy*D>M1m|}M$rtt%*`t~JJ6_S37;_a>EFYsM)UMfve;$e#_hi;`DR&Nq=} zzc8PNYS-Rv!~AM0FUHwi_M!clwmgP~9p*ECv$QpIhp)!68l|&GLmd*|pp`!ZwN3U+ z!^pR#sTm=zRl#vubwJ&-KTO1$6)uF`{pj0>m7a~^o^z+UgA++bwA%bm)SiYKWq;+v z*+Nt?96V`;qfSnV=O7TJaLYFq-HTmOHfa?CdVn~?Hxq(%j)v|t(YE|u3tv|M0T*IF zIcwGhDBMyuf^i01i}S0j*$Z2SC1${fIHG3FX^X|mwebuXf#%7Y+iFNy;v2wQ=vnjl zR$|vCZU7&p$(p|f2MJe_JmB^sNGg_w!jj;?sdMK#S?6s-f4Vlk6HYWnDTr&g$m>iYRUfE11H)kI!lDH0SemZbo<2GO>29Nghqc;~FRHF`0z#JCsnv z{jaQNH^3RwL_2YOTQNM_6>)XQUrt-T3o`4y`!Q&2($vds&GPxJ7Q-(`XC1u=r)2J| zvpTni`A^W`Y^bunUJ4f{8HC=Vfv*`1{ALFR#XOE(H}PPzoa3OmxexQq7I8={v$d_; z6aC?~ub$n)msezq8NVf5Skht-<)pdXd$R z(wy0dR@A(LJx;5@9A6bg28Ybq7>1n3CbcK6ShzpJQK7E@(R2ngY;gFS*p^`J{8?|A zBCh6HpBr~Mcf3V;m||I97~0?=PjAs&7-oH`+QfN_c$+lqE9n!xMIAW1zBYW;*wZ@M z+vG}Qob`>_f*JEEd~gDe!K#$?t?7>A+;>Q; zO`EjVuxanfN83hhsP?}PtuxG=;K1nWISmK&h@L99`7kya$?$!Q&-6JMbZt0R=wPJN zhGRrQjtvDlCKTjYP>^FlLDqo(N5XGUFrD&3-yjD2A(&x<89sj9$#*#hUdz6`^Y7b= zMs2yj0%jS$#Wa2d(oBBm%owbqEmyGljNjhe&*XQ|%qJm;*F=l?oivk+N!M~`w3y#f zGoRAQCDCGjXU%NHoN4)Zjo8nxzB!rvBAe-z0-b%DE}SpF*k*plTGP@#EEg8@i*DvS z42PCi)p&9;`NcOAgO#FtPCx;M~nGIIWvKEx;0wN zFV2}V*F0}kxv^W8+ zYuaJSXnB;$^;~aeD~jVWG+RExmXdh*`4C?ihj_u}q#lQ{NEcj_bOI-KlpE9I2CNeW zw2KO#4i?;z^cvQgbxdeC4QoCy04N^b59Q_li!bg1PfxC=^lN<{1p-h0MlPx^q4>i59oh_gx;md7^gm zRT1U=o`Kk=J30AHwBS9DxQ9K1(B<6 z>6vcAxkUSjWu2J6T8-oS~!1(6N}ejV4J^-i;Y~ z7fvtR#m=l(g6}8tgO^0f_t=2X6up1~#ZEG##!`VJY7wksCo7I4Y70!T*s1nGAs$hS z_SHjty5aKfY3=tGU4s!HTW-JT<7pl6jv3*^&NMtL_Owp(jv4O6&Q>hw9W&I4ooB|` zoU**lOZuVIEL`k)CUp{|#y=EwbV@3z_>B23HMVN5R>!DTXsGL=7c)Ype0WGV_z`iaomW?!^uB0qTJK7w$AV7zc^yB?-16zsKnMlRy>nJ7d42Zdy8Y_03CI zTZ|{!YkR=A0ZUHj%lMsRXKV`$D$@${A-1uZ+uU0DT&qo3x;j_gN~^O&wE7Q62j1g_ zIbqM;J;@%oN8Jp2o=cUP5gs0n@znMsx*jYY?I37YWqltj2mIGzW^=)WS^pbh4_DQ<+| z#DVzef%V5{1|{|BjQRriJy7Q~j{a92yarP7K!cUxagaQ|qd<5B*^)snf=I;iL)4UTE;U~_lLOJK3 zNsar&S$#AXb1@CL$QiSYi*<)qJ{g!*)!;fDx_6OoPzJEbDucd$2 zzBJ^N&S0Sx6k0)s?`#F*g$Zdk-zNHKEF{}e{1 zEoOAg9g#01Y0xoL~x!D)Iv70H-@F%5Bb zZ8hO0xSA@ia9!7Za~duvm}7L>zK_y?&k)44H@$JB3u_~pJE1pd!UsxXhM5KZaZY1`|Hy6LY`0v|jD> zp);uD(>gJanY>W=WWmk3U@Vn<0;p^8x*&q;K6a23T1q8PYh&IwOVE9MXGU#{YaXbrY?wUH?(8}#D;(L|LxpxLU%-zLp@L9IPM-j-1hGK9F=_LCT4=?<|KsG;4GNa_XxF{ z$d zU#8+3^ihBf)|$Vqm#QR2IG z<}e1h(g0jG08Tl8a~2Eh*Mqs#4u!XLH^|QnD`;>Dr1_ZZreGy=dmGcNe!qEb5KN`Y z&`mi4u%8GFA9I$w+(cgxa}02aZu$gML@tPFiVNby5g{*#tS*=3f6bRGVe;K|x47yT&4(~PE zog2|T&85Kh^bR_U^fXP;(@#f)>}f0X_lL>}y-$sL`pZywF*?&G3!R`+J^fUZ@OmR< zvr$m0r?14Yoxn7%Zzt3vqP)$suNd1s^rVd4o*qXF_4HSXb&_8YQQq%)2+EU_Z=;2J zdT5tg;n4Jgk#?`Y?N{rjD}6qC`C%L@p=! zi1hU0MmROJ>D>lI$I`gaHw40T_Fsmtgh5xz&(V(~ehkOwL~mnW$s{w5UN%#1M!+oU zitDQ6_v3VI#l`9ric`Dtg2rEfPiLxm9gdBaOQEwUXEe>uz${EO<<>br=sdX>6xa+g z&A+9)-lyRM-|u*oUY#jT30~KlIa}IdFk&giWwM7QGpT#6%~Vs)W!Z|9E}UtGk3}i; z@xpU7Jr2e($>*8JYs+MQ*aGk(l7W&{^mh}^1U%;%mdd2QXg@iGP?jBxuoXO&*VnXy zC(6?Q8eBQW=D{o&Et#0?I0uo5K~uAI8NO%XA>9o!RXbkv(s>?qA0V9Jd&PdTZ3=zI z5l&|?!v-^aEb(aWC0)d7v@YQO(uCVg&DHF*LP!j?IElRkhZ^JGzyr>-;dSLs={$;f zTKjPW$GMuewUU%>|4m%t0kHV)j?d!U7r!tT zJqvwT($Ed^Gs6l-vqER0`o2y%tnh@6t)qJ9FeHXrRHM|^e3q^GXLaRHX#&-(`60~5 zN=9lWDQQnpM-;qMXTyx7jntgmN}W!B1i5p%xE2>MjekC@SzNY8p>G^y>28pp89tg8 z`YI@PgZ#{}g7QB?%H1ySjBBt;GG?6gQs~R?MR;*AtYHiqemAZBZwTL9TQg%vzHa3^ z<;S7s*@EkmF*9@WU$xN}`G z7Afj2h&bsy(4}+DEq@YmUKP5gjIlsG0WALn5gsdC6=U==pZnpTAp$e5*Xi6(FRwS= zad<3^vUSR{AmnD0$94i^CaOWxxo0(JAf!ypKO6__-`s`}c&>o9EJ};&JD6KeL|eWV z+K;(3TK|mI^3M&qIk!VfFZ`o_6x^9x0fF`Zmnbd$uZ`Bu`vh9Ms+YStFkUMMuG8i9 zCpgX&1Y8@&YT0mIp4SCZ9+|w2T`R_GS@DoF=PpPa;y)H++)Tu~MOm5_5TLB{S=1&F zV4lED#Vd#|*bLogl4BO(cw6xuqVri{+EV5@uY%Quv>reSJ;0KUjKA}az)3XzBX!L&*aCp8#p4 zeTNjfvb-(SueS_06JwYY{0?RLP=vh*xJ_d3n}e;#7Qs4>cV9=f$ecH$lCb;VtDD4IH%YlO5j|OZmM%FC zH?y22KUplrRCLNSV8*)&?tEa(ESu-V-p2LYN#~Aqd0z;5SE7!|4cxY$<&;l_nj892 z>I;@Rv3rblQT{O0A&mWK^@1)=?5*|=%>@g()&y~{MbbsqfDSHLluM}%&PKWHeH^F! zAMnZ@2-mA!4eXT1enS;fEqM=m)bwKu6f$)ZMru6lmrb5L6|eDR9KmS_1`xck7iNF_ zRMZxg=01S^DDMgtFVNgv7{gHDrQ72BCL=xin#1Q3AFk^>>T5e;(2)yI^u@qSrd@aF zmS2v<>_z_hQY$`0a76%f947-#%$26173aIN@>ZC2Ll8x<;+_;Q|2w4Y&nW;B`w?8# z8XsE`kKIv`&p3POAmiIto3RLwMXvZ;o_Q`dOA+VnK-w1(tau6^EAD{nb`ZuKF%=IW zykaFj22n8FR9uNL{#F(u^*)4W%J4A46)#b_U^Y~&5#Iq~-^uCL>LSDPhlQ+~t%I}t zHrTTgt6?8qiS39-S7I;Ys>Efg#2c!_5jSm3C0I5GMyy0l*_`D+Apyro5ISUbg0=qI zW*&>Se1dM5C!=rD5ew0#aYb7;^2KHvq#V-BDi_l#_DQqaEQa6}n5{Oe5xN-S)utLD z{^;*&vjri(hj_KQ387pJht=k8gvt=Y?+4HuJ#m~wyuEI%=#6LEuD45Uh~D@reb-wm z76aGYKrRbTIxh<5G@ar&TxXLZ$;SVip_|K<79($gf%1R2*v?rRl|dV1@KSUJ)BZ1H z@CAH?4I6vzVsgH9wp1|1KBs;Z7p!54BOeXZGC%j z2(6vAov#h-A~Kt{gKr)D)lNIb_cfX%VrTQ6>bn%(7m?Yt(|w)OBWbJ5NpAvJ^?&d@ zbNGD%|H6W)XQ17OqQ7e&5x5UU|J2KI_(oJ?{@;9}w#muQz_#JDt$fPfJ_(E?$3(=V zpM716IPUwp^8Y_P=$C#T)}8gHHwIKL9;?DQY%tvpvdhf$vQjK!Ca+Ui=2>q(X$rd- zGcF?YU1nyMEp>9^%`N`0UEF%ppcr-yOfQUQ*I)8_!>2NG8<|O|VOj7pQ&C#!&-lz^5-@)*#pC})zxM@Mptf{i3^2g*x@k&EFif-GahGxZYGYW+MJgGVV0>^ z5E1&S%|9?9a@(3~T1SL&)#f@1+nYxt`8dhd<}So?JDS%rBbLEx<3+RN=9;~jqsj=y zOl|^Uo;fWxEZn)?yxSJCeDgQ7scSf-+ML-BvO?1*Qf;3}=iBesoAFqQa)+5IJ@H6? znP&D?tmv8MJj_^EhDN^#Gdp*T*^k-j%6#k1d+dm_&0EObmEj31IK9lwn(ySEZ$@Bt zAGSW@(8!C?$jeO6mSI_PI$w)_nJHbo(8>LSS%+rvmD>VrF#A!?{BGmW(2FpR@sPUN zU~Wc_KX9uU`UD@MlwJ- zK4IB$V8UdtNZfik-`jzKLv&JG{D>LU3VbXkq8Mv!->PQCix0R=0xg9T%2OpE&S9Xhz${|hcUPn%V_$f;Ab&WkH&&4u)T zT)w$w#Y8EZws_Xu%8s+< zshm1(E-Q{IV9X#}R*h|F&Cs5ZPOcdY8b=YQW5eSL={a=DIY?(!%y)~r5Jwd{$KTvp z^Ej#5s;q3-C7M7jS3b40tdhNp!s28XhPc4~8y>6hG~^K`T95#N&l48q%A~f$+IV4u zWzg~ZO_9&zO)v5pZ>vh5*W0JuslgmRV)fuD`u*W-GZ^o|=AmmSv^@0x`CljRpfalJRLJnrMT z9zEmEhU`Nt!`m+|_H<13Rz5nbO7GMs?7qj;ZwI)aszG(23qY zMc&@!c*#w4&p~13n`%14_ErG5^d3%oKY3`gd0K zq_~a6KULv}#lt@;UX_+*e^9*Y@S1&D=S+Iq=T!Mz$uGZ{xU_m5oKBcP|8;$A`TjYV zS>tbY=igIa`$Oe!0_XSGquC;VzsEk>eN+B)pdWrHel&h39tt+^@A-?i zv+E2JMF?fS`etxJS%tg64KANuTpaQLo9W>zkB9BLi6JZ*FnClgm(x!6ncFRLr08habFHkI9E~*vKDu zxBE1RTj%MUR4-bNYl2hC{~LSejqB7?`ssTL`AEo^#+GMbO?jq7%Tdk%;^Dt;2!zYu ze~tIQu3MTMEdZO~EG+D6z?yoO_%5yS$8zB+C87_v73HU@V_o}jnau?whp{Vg8pJ=_ zBP>IZG5oPzP>h<45TrhY|NLWpYw1~O{Bce7IF&w<0)*p8_Ls+596e2b)s}t!du{(G ze%UrDHm^z_iR(UFUb2l1|Gx6Ft?HH+XJDw`NPI^AvJf)PsBoORv+$p-MY`M5m2u=0 zE3e6&@u^l;=_5iSNa{m z4KetQ&Wa6aoU;hGKS$E2tu;K0;Qf%OZi;IBiQ%yN)4 z9O&ocKRSir8jj8&F0;W=TY;T!u%?6~|3ir_;pk34z738X0*rH|(OI#;=s?1qeP_{V zxivhCa0fBhL;FWVH%)YdkE2LEyn9t83c%h&y>_o+;0u<>Ih$akqH)HZqA!z?K??qJ z%_URaa2$!v+3su%IY>T3J*+w_<8#PH^%3 zMYCqiFPk33Rd=soufoEWJcD%jYzYIu*S^ZyYoCZ`kJeFC+_6uSgm;ooX>s}ld^<{~ z)JPr@-J zUv!)!j^}&)>*nGlJ zA*4VcjZ8wZqSz2o>}4(J>Z)t+WnC+4Z);oE?poGW+{Ip3-{13`-@S8ZG7;SO{rvy) zfqduO^W4+RbDneV9ih0L&(ZiIL;i*M|2zEOiT~%|{|Wei68<}%L~^?vPtcK z`+xA4aGiT4eCH#_AVeRLvXT0h@p#AoLw^Zd!aNWEAH{zOTlNi|&;I;HR_=WU|K(kC z62_DG?|kIDdC)m!<2<%1g17 z&ns_6Oq#|*$G|zhr4d6$1%^$eEZkUL88XN-$Tui37z1l(Q*%R0tqDI;5MEr>7|ILJ z57$J(wN>Tok(G@aL1bK0Rbwr3QnGH{x(aJeRkN`#Yq@y`ek9j5$V%u{O-&6=8vOWh zcujpvxMK6>&^R1mY-p-0kDBdE7gdx+N*ZgCSBu(4V<*ELqxz~UX=*x1}O%CT0P zOowu#R@gC(Vg}aQm|KPduCA%C3|H4QMViA6)l!fV)JX&E)D4@$%~n%Yq`ADQ*^->r z<7;hgxT3sbZ52E=!oXbRZYNA~6Fp%-z zFHhlh*V=8aW@E<8o}vW>ks8mZ032I)f5AS2p}qzQ$Qe~D5n1p5ljh(YQ^v+8!P`YO}dkM$NK zj^DwWZecFNY${tH>#df0G`$L|US?%96G&H8*HqP3ilZExMjN#mRO8KC4fSZbFjiF4#b$VGSA5lj4Dx40{x(}BjIwx1L9kpO}dBu8jShXUMB4a{BFs^FYq4iPnD$}p*QCK+w=;}K0oSQ>eWjHm9F7do1BPxSW6D(rXG z)znM!G2T04Y^%7&R5vwXSVUKtAFgYWnzyQT@Wx1|Bam^TD0C!5#}1dbY}O=2#$po? zlb{ZsaYY&ml~=B7i8O05pj4e2!I2Cp`$)}ZOiag`c~ffm5ZQnX&ziSz`m}lBaA_Dq zuF1OsgMN%X*@DU|#a@PC6B}_cjJ7CO^G$uB=qts*^fWLI%s=7w)Bj_UG zIL+hNi@Mc#ulXA`;{Vl@CK;BQDY90J8!45#Ejf^JOPf_>3o5uWys4&nEw+!bCvJkl zNG%E!rtYSe3d}_n92#5CUz5Db3G-zJ=NO+>ld|_VGd1G~5k`m#XmnfZRyWjI)thQ6 zt7Lb)TK?3?A4iW0Ofq~7G_m+&zAa@NL3}YIO$$c z#xMtOgfeE_7~-{YX@ic@R>w+%tE_}dP+cXd*Ul1_9enK9Ywux4aOd>{s+tNsdw|~O z^r4t2W$@Bb%+Wt;VzlJ3l6F;*Ay->fO?|-}mCiSOhn8%@Fi8d5ABd%U8ef4 zRavt}4tE@D`lz)Uv#ZgaTSYEy80{bRr2Q|dY7}AsMyoBa)xj&;JhZ17*-&mBRFo~M zV#;Kus!R!*QggUb7oF1I>#Yqf4d@x7rmr^lQ9&q>$qS)NSC3i$XzJBtuF>_!X}K@N z{9UG_rn{_g7M2(qpz%Nz$H>~ygvBi46Xg)A3peF(HPnZ(Xn?L}23v9GO8jV!apRmS zd< z*EUEZWyw`t(a?g$&-`i2=anufnOCx4)*-Vcz{JycXsn(wYG`r>Nzrf-4%VPD>u=Np zO{f~Ex6nkl;J{NIQ#VeVPotbrf_Xu7#L`XkR)33^dGdivI1y9^QGZpJzrZ{qfJK|pk^;FLC)fJf8m>X zKn51n@fKOXn9yP-I+zFC4v1-DAajh~2AU6&lXIzMbYvK(?(|C1+c3D80$ zy`rvsGlnY+g6a|N&!ODt0x90FK<0Z~pR?{!<62(G)5K`K5ba^n+_GFew9uHQ%%7zx43p5Fg87#|d(ZfruW4-Hro{luV zS#4cLjp6MH`d!7m)wyoJ3zsg`>8M3CcUiuef;KHCucmU0v=-N#rVIPLT;xbqcQM&G zqi_k&5}HNr((>9C=D-~?^YI)4N>S>|RhztRpe^&7tQer+$cnw1%8YAaGU<(k#;N9N zbRVP07|VcEwG@pEI1yRWMWFJC;l;J09ME2eZje}FvD(m51GCD4@&#hx)FY^_jnBK+ zgR*o_jzR}qh?0WhDos;@f*piffT^Xp?w&8R#zxCsXK`jnsjsQU*D`&u=L65D6#z!f3 z)urbqI(0aX79?q6hm|!$F@fQ4<0cwUGzremg{M3rT~ogiW}-^5dg+KS8K}`UmsUev zdDHqTRo_tJY#6HRM$mobM7gDdGe!Z?$zX(q)FF+I0Y|nq#JGXI15;vJ7_r^lsM@(< z%rs`CarCm*%1^8&R#D&F1Z7SU6E3F6GTP{61@4&mu}azyX^S+I4L{y7l!Imm^2NblR@`!o10tF`OFb1+sFuwlA@k|X>F~=kR zZ$~w4^R%U5OmQDF!ZM+8G)xHP=%!T-BkLMQH@9GI2V*Io#3{#IR}~rE9BI^tq&8u4 zlG!Atd11jLImI(35!i~*Ek#?Xk-?u!RyMHsBa(g%4BB&OFrF+kW!G%jLMoOEd;b_*_+c29it`d&Jz^jiiX-+BvCt9Yn{FT z!(O?LnDJURbq}NBx&w&n*o)@s5(erjLru7;Ba;{sTV@iAZN&0MW8Q6R2Td9kdzEXm zR1>bN{34;PlnZxpP$~EostqSR%5Na$Rmsf zva9XcL{;6~Oq{Lv-(Yq|8)|N-G^jRMZ(z13;?sA4=6SO`E*rxG3vM~*V`47B;HbuF zsjJP^O|V-)*N4uI`2^|%8f9#g)-C)JYq30Jr6YtWN21?r8$&zOO)KohG&RQzp%Mx$ zU4^o%Eelf9-2az3pw!XU$|9nfo2@dja4@k({dBj4#T245Kex!R8NN>Pi!A_m4+BsBm7c{0YgQJd1;pSeevD zWy&vZ@oo0p&91hru~6|b{WTw^KOKO)eV7?2v6w(@0HKiQyh*&p6Xp!+vinm&0PssNH~Y-~o!)4t#-*hKoeo^er&wzg;8ql|E;^1yC| zrV_4Qi?z3TjMmlv&?uT4jHTFPqj9z(ks~pF*3_zzbE!V<=vpbF_Ei};u^8X)Nlh#g zao{s>DAbo zk?zpAx=FW6{|9@BE^^}fM53xoq@wB)+Bw%i1HSjr7nI2g?X5B@82^e$xUs1UTbeTG zOPi0K*~O&joZc~JL{7`FD|#m7v5^*>Cu@@Zhid3b7;)VLF;#0cCfTfXHY#C#*A*Cg zr1V}ckM4Uf!oGKf9Ic@N4d1-BvyJYSrI;2t0oO#<$=IREUR}Bg%d3#* zAVcY<5}YyG1gmB}mie%dmde^48t*0=!J~zik7_E}Y>on=1xA+=iB_L6m9nO)9^0`- z1BvMIB%CCZVr;#QgLOsx3X}cA+z{7_-Gf%x(vh<$(cUDdT2LNN4~VTNuVB>dY-!$M zBB?U9C^4b|kI^%4M%6(7jnxdIyQ9vzxg1)~#ZJZ@6*J~w7uj7~i~4TbRMiGubxB;F zqQ5XqLl2v@MnWTJ7sW&^R-{ zIT7Pb*VxO+$B!JD$x@Xj>O$x(I_lMn22;1*nCo>YLD2EI)@?^bf zpiZfT#8S>(cb&{Ij_E$D)Lf0&aLtIwMq!GQ2X^IFZX1-~+`t-aX*$Py&Dvh2oe>K4 z>y(wY$k_4OIsEIcN6?GaFb-YJG2h{~*o`hnKR}kNa3~SOF?2l)2QnnoSBNH|V~eWB z8>@N9z*u@QFUpx&JuN45xV)$c(lq=^7ggO)jn}F(8<_1y4T>295@)P$16%I zDs%xvMLNOA+QyMctx9)Ex5((p(FWV*317#m<5fWuO}C;cIVMyn$r!JGT58>`z~LCs^qfGIwXjhS_UYL*^jK_RdDWlTLMjyfT?UU5oNXwt#LHS>&~XmZ zL@h%)ylix~r<{eqB($}O!`oB6xsRL8*Oe5yo0V$m!#v|v7_f~OwTyC_u9eOS6-%bR znn+~?RgU2sn~FGY8IDons7>o2B&pm_CrGdpgWXp>^{x|OT*9K7j8khPM>>UJM!5n# zCW=k2<|bFoqCTQF5lOR5DROdnom+_`r(ibZP@}V20^5RFt?n;Fi4HdyQx|y4l&{mr8qV`@h`^K8zOuu%!ON^&E%BQUh+M+ zuhgN}G~$?rViXN|s0WG$H`_4OW2skz#cH$K3Qz@O&E6x*A8nUQhXW`v%$Zs)(G`i7 zbt~P|IXY!#j+j9z?hq(e`DWPSqnqxk8@HNgP&~w{*1ZjEjOhADET`tsrkYdT=TX{t21I%f^tYJp zKh%oq={k z-QH+0x^s1PEsij8L~u?qcse*I>;EASj#>#*pllVk)YXfn2+ygSV#cae%U-oV?`EM# zhu~q4m?<{i;^A(>d6F2{hM|DFOGR@C5lcE+&KyOiK>7j)g!psC?p)%r@2=D553%ly zX`YrC9c6UNEVj<72%EL=p0yoI1e04LVvBOz2-p;&txoi zSVsoY#`Hl>dEV;)lgEShGWO#3sCL;(6LES=G=6tz9cxa-a$1TjHtj>Y0;`numpodd zkgg_sYo;2U$EH0i?p6wn8F*#iSM~_Z0$DaX%oA;B_?Rus%PP#gEn0X~wWOuj)VsX& zc|Tu( zVA*w^+cmvitc*O141>HrKqFzs>1cYt<(>#|PZOxpTC&hAp0QpIS4JA}nuGdEK5O7U zu%vBFn~0lXjGY=|?0oE6GNp=S|07Z6WIINVeThGghB{BbMyElGW|=w;(g`AR*H+>e zGdO8+=yPahV+8{{4iRJD(88JX%Gd;ri`qD*K?R0gUEU6jBe||c5&OKN?9&>9+NkDJ zjqCIvx%=h`EgaD%WD^wgt*o(K%bl)t@u<7bzi1_iwvMHUwLN;8Zi0ajLqhyuQqm|V zF;L*1^J{VXh(|4!=wqMiWz1oWic(vi_~X=H82{X^1Dk_9kS{kNL@q(0j6_cm|1b6u zch#+@tDrLSnGsK#4zNt>j5QOdyUjdr_WYvn^@vW8V{`;5(dta}{*T`}RiQX_u9C;O zS~X6sq7s}A;e-89+8oV0s#%)TQf3B?weZJ0ASXvnL`w))ot7t|%!6t&C^*M}5_M4T17XhT4IbR^J{cx4K$+#SJPe7|&bG8Oa*xzK zjnv_}g19dNY=3vI#r302PW8#$t$( z8kWOKuokO@Akw@AgS0uBh9~0r-i)#c#{CKl+fL5;0JMA0v11)b&C(Dvm2>LW(FxtD z#xnL@S*$e4BD9(ZOtD{YzDF!G?aJGrV5*XKCymTGd`hhxC(N7S#q&1!)_SHI%jbe{ zhjy3!4H}6?Klfcr(YOD2RS*ldlyYRlB+<-^csSZ~+)jLG;4+3atW~U8#l;h{hv10z z&;vN1ZH>aa6!54kh%TXA>wIgfsvU*R)@EyzO!(HQ)sYCk>T6@lSFgryur*3V%oV); zsKM*T?|f7lxBOrPZWK{0r$@nKy&Sn5)jSHRPxP?Kj9j#%-y$DsTR!eJ*uNHZyy&ll z>b^N;h7oFz0+JHMubQ-#@&h_cH3~nM60X`@QPqg{r_aB%T@DG}0{&~+OZ*fxGmxlm z4q01Y82+`F#Efb(`G#SjpsifDae(aC657@+2UH)4n@$s&+96BbTC-vsqWYG3d|NeD zl_=f6L>oy@7+;&RZN#3arz9wKlhnkOoiH7V!;R^wrhwWCvyJq|b*DCyDw{5`k9f3x z34NmaY88HhBp*=NiPOLIH`dS6-&Q$qBv{h@v9+&aPlxa%d zI2&75o5zPeBR8H^!qX5Op^cbx#ker8S)-t_)rn<)6gHcyMqzdti3t=B zN4`7WD#G`ZqpvU3caGwcm4W~A9(3pP?zea!DQ+yo1-V~tk=O0Y+jPZ^S7GYs2~SvZ z!Exfp-c;TzC-*rYM=lo^yw@eXBi;AL=mJYuTOj zU5fAC@QM(g^R8NWx#3-e@80mbB0ML3BJYIvEWUfgThvDSo{S4G=t*B!Pk5-NnD83g zNZ(g+;SKSmPs+zhUwkJC*R{lMXp={mO4uJMDfL z{GE6w#D$lAY&7i>PPY8PXKY+}L4=o$>yi)2w-a7eHLPFexHhydlzy8M1Y@cvRzVaxn$$T>O&kM(2?^&&YRy;k-j4MOZ`s7e?+JG z9UB+kY=kHChVyaSPF`GiPk8EgGK8J*s^Y?1h48%jb;2u;3-4ou=k%kgp73_Yh1b|d zc-!N`vxY{)o8}4cK8EMyZ!5w()oDzW6TiFS!V4n2eYh^=SB(EoexHs@U-I$#Yx0mV zACZ&K<8k374~zEm68Jme{hi_IP54uZ@Z{%vosW~$SK`7Og76wqxRSnE`0s@Gaa?$( zor-zT8RQ`6g!e&Qco*hH^`=r!ct6F3cj0N4wHf}-#|iJdxbSu(ytNRL^v%V8Cw*O@ zXgK#s7+rUmUwM)5@^So9Am?q*$@#Xm8)J@yHy{6<@cJ;kT)7#awL9T25%MG9$^Rj7 z@!t8GWsP!#C?n2LoZS16^M0K4$uE2$IqpZ~rr}=a|Mf^Kj_)Td2B`V1SeizXQ@~=N;MiqIl1}|>8EBf)rXn^9MZWYpdIw;{wo05;j zWF!3>!BzO5IQ|~+iGKVsGm3=o{nZL_i$)p!`1M!GyzahH2fq2O>^OH$oV$OVdtjVf zG?(bdAEW6>_@ZG%KmHiaNc_DmSllv`M?Zf2e7g7JkJ0Q!zQF4Zx6F*ukKdA+E&B0W zWzkTP0D4`pZZc{rD{zsiGgh zjx=7kj16Vt> z5AFR^x=napEuS=8d`x&#tsZn6`Gc&HbjuXb5ADAgZjlw8N!*9fA5Ohq8|U5<=RP^k zeOa9QM!NGg{GQe;asD6EZPMS{YRAFMq&L$VK)2}F{j9#$EVvu-U4CcqAoS2G`s0$O zcLUufe>v89a7+HAC-y@L-x1^A-;(t~H2?jrZ)5xiTB#T`qxTQA`f?BzT{;IVgAsI# zZl8nxBzn4hB)vK4Z?ox^YZ8w9u9keV@jnOsZD*YS-E;@lf0XqS-I$6YKib+GbAQNc z?-^nx{E>7^edeG)iaskJ(RFjsAIs@B;f=9cV%+1bOX-%da?l@drF($7Cs=={dx*Lx zT3^!*r{*u2L%isGInqDlUZHlNZ+;ISRuDSim(bS8TSKv@=)PjidCB&#?d*stKA}}J zd{|}eBH2M)vw3qEuhfq;;5EMTBDjsYveA|39^JlxUz{~nw-+Ryxa$&3+$Dw(x7p!@ z>ze$X3-KGM#j-0Ad;A2yuTm~QYS8*AMcr~WAuXwww^-pB-w1w9M3Qwt+e45miy%tu z)H_GFa4E6nnPt$HucrI3xNNunApivLmO(;a&qK&2ur}=GPI7+T``3doXY9xqY?;Ug=b8kj!sXW}+(o_}RSku(pqHj3R(I!z2bgw~vkuV!$rmx7XzwK%GX+pSd z%twav6C9Swn6nv2<5?EJ2kr*UA0wkpCjTB7Y!dStD|4O94C4 zeGu7)l=YU#6_7K?Rb(|;OKv2OCr=^OhJkR-q5C58a`I~O2J&`NZ56ohVY;6npC?}> z-zGmIKO?^)e`x9QN0Vd7 z>EwK}j69SKlWWL2GD2=4PbN<%&m%7(uO)9LA0q!sZiUh)`8k<9liW@IfxLmdjl7?H zgnWs7kNgk$GnwAO#M7J1CWn(#$Qk59atXPLtRuIR=aILPuaRGoouIT!{w9;vFrNWB$tyd&m^xQUncjFJ}lZKJ$=YLvXGoY&LHQIi^yeU3%Q-Vf_#8{ zmHdwE4I`1nn@3I|my#>VTC#;akvxaIlDw6Ch#f( zifksgk!O=vkhhQzlFyNEk$cG>$&N4@N;-OxL&*Yi2Dyk_PF9c&Ake`u1l9RBwmvqe|tI1=?^T->?J>;9@FJw+P6V7C^l02EbmVANynEZ)Mg(4y8 z7)XvMmy&hliR5nb4)R%YA8BKeE#U>pG33EyGkHFFJNY{KBk6}3QNl?hv&fO;M6#4z zMpls#@_6!0@>248@?P?B@)h!Z@^kVRG8IMxNmm9rlpIHvkcW~R$TP@G$UlW^4Lh?@XMe;vn zD$KbO&Tw)nc`&(!+)X}8enPg#AtSjzi=0lbB99?2Cm$w1COhIlf!sfsoIzHTCyu9#39L-bcPk{!C_Pnfs@cE68SY z7kLBu1o;8kF5BGSpDZDdBF`kRB_AQ5Am1ndMFw(Acpb@MWG*?6TuiPd>&cVJ)5$l< zePj|AE>d12$U^ckvYf0Xk0wtbcarCl*ORxA&ylZ?d&w`!j{QyiY2*-cG&!9tCD)M~ z$aBbx$v=^gkZ+S8lJ)=-Uots>98S(67m(}74dhPpT=Ew3Zt^Aab@C_DKhVT`5ZQ|y zN=_k{k&Waz5=gnN1ERCzCVC736BNnLLU-i@cD$oxG2H zgZzo?In>18mmE(Pkt@j6{d87%yJ2{n{NvfJ>&=Er({Y2>xaxE$CHPUE6A`oK;BJ0K)yx3PyRsK<4ih&WM49u97i5WZY57A&n7P;uOe?D?;;-|pCDf* zUnf5z_mV%89ScqRx{}%CU^1VaK+YuRlZTS4$VPG_c?@|jc`f-c`8xSuGJCv9&jhlF zTuN4xwd4upspRj;>&QLi)8w1v`{Wm7hY2hPGDv2T!^u2y2054fJ$XBMANe%-BAGtX z#FIfDOqP=y$m7Yg$ScTe$venDk&lzlk*|~Qk)M%Yk+OlJ{gUiP_9lmud1MJWj|`K? zk(ZPAk*|`Uli!hDC!2VClB38mlm%jMD8YUBkv(!A>Sl_CIbsiyyavq z*+gDU-c0Tx-zGmKe;#KnA@+0yy zGP%se--R4RjwGwd`3qC<>;k!**BgcT zcn+F8TiD66&L=Mx;{IENsg`vIc@M9@D8&75lHZWlVdi=!If$Gh>}*-n$(cfgzl`n` zWCIx?w~?oi7m=5ew+NArJB2>Wx|jU35aB;U|7Ym_E8TC<{T|)_6yp9*$^X#*JNo~Z z*X+`v?*LIC2_!h_D-;lOYcmLcW~-M+>`K)>iUF`kzPlMdZ!G9+q`GdAAVZ zJVEy}f^ z0rENWbs@t0gzjI+u1A<~hLFWVq+=GjoIIS22odi#@*MJVA;Q0z?mgtY9>?yn`c@cK4#CwT#R1$jOBps<%^JxV^#>u=Ki zF1e5Vifp&a+}DxJ7WT$-h~y9<@-dn2Y2?A=5^@c>o;+TdVOb}U+l2_{V!AIQZzJy_ zA0wY4-z489e-NTwCYKxbAP12JA@-^}u zaxeKMX{|QtY)__>8RQUhG&zYZCKr**$VzfOxrsc6Je53yyokJ<{3CfQc|Z9G`7HSo z`8N3hxsUvY^i{Av$aJzdIfxuV7LrrQIpo1)6S;*vjXaCIl)Q?(g}j@5lzfVOm3)i* z7rBr8iS$>Rd~_!>$y{CGYs zlKJF#auzwCTtSwTc*(Sua|^kR+)iFVUP@k1-by||?jc_wUnSos|3!X7{+CQ%W8&{Z z_9k=45oA6&g)AW#k;}-{WDVI&9z~u^?j$cHFDL&<-b&t2K1$vhKzgCaJtlI0NN6;*Y-`?{?&n zeakLmJX3j|9c!(wa=nD-+F_%}q+GUeig`}o#+q-4xM3rakG;e^%WGpzqWOl7uh*fg zYdp}kHQYnZdmL=&fa(ujOZ^Y0+mVM(qw>%-g7C62XUj))MwMTs&Zrx6j$TK+8vjD( z2WxyMKN=4FH9uH`XG?gnNemETEY$mvF1>#?@1Mo{9e<=p{U_6ZBJV@K^!fx|AIo%) zWPE6cxe^cD1wyn(M4@gZLDvhb=&lr^eQu`vXd&9^F1pVZqW-U?`v$rnqI(bBuhIRc z5bgRay1x^m(RH#xq(|NxCGC6w-9v;3U*Dkve|~tD=Y2fH1cfneDX5# zO7b=#+RSn5CI3l&N`66pL;jbPwU5+KGTDjjM)oB8 zlKsdKIfk4>7Ll{ax#VJUDOp9Mr@@R4^xt-ieo=09p?k2AyZzSazY02L`n`V3|hms@70iW_>uAIO`?+sOOK2gv7y&?8uN zIPA*#*3mPv#SOh-h!A>1t`PIS>KT~li^PrjaJCTh+#(_7FV!=U&sE|^`qv7PF8OHv zk;x>2HvNH2Cp8@?w@kV<9dM7JThjw~0o|G|xF^xA>4JM6-I_kQ521S%SxIU-;a^L4 zBiT%DCXXh!k|&ab)P@<|u{0}PUxq@x#)pgWf=APdP!r0UHGXCB>)$V15Gr0Ug> zTT6E>*+{CM4gallpGclco=)x}&n0)0SCQ9}H;}iGcaRT}d&noqXUG@Gm&td@56F+n zz2rXfE7C$9w11GvWGAvKnNDVt@{Sd`ZwNVp%q0uRB60>fo18~BZ)(6V+cl4B7@e)3 zP-yJff-#}cxV-G_F}Y)L&HN4J=8i2W$j&Yt6DlZF$yFVXE15UbwviEjY%BKdQrZ78 z9tDaaFnw~tO8F(*KisjT(~gql9diOZ7AHThi^a!_It_sT_SwnX7X?;660mk|w07P< zSZ;y*w!Oh^AKT4IPdLXl!}|EAUw--J@fib>#Q_GCfdRW5KiqW3 zAi3y-cc0w9{lj}C3oAd}jqo2Y(YsgvOTvP?Y}?*+N#OG29Yuld2y;hCr|p3OPE>(x z-08Ttuk5tFBzfDO^cCjzUC#Y0lXn&ewmq60cYh-JWlIs`2*mh!iS%6S@e=8{fb?5y zM`QAi*@5xTZ9Hse=AClk)4nIY*xYf4wcRI)oE_NqZ+qLPft}L><3HbCvNw{C;@$q5 ze|py)OZHA&vajVuq#$``$;aCd84z$%y<K z{B3(itT-aP^3m;&#(8YdG{uN^oMv}zx7Z%oxm$|Aa|R|E-+0^Z=I=ZqWg=!G{{&0E z1TpCZ##_$Sq#pcQitFtLSpMXclqryIkFTB0*JKSP*@V&|*$t(meoc}9Q@TNVQYS1g z0~%vWib$Kkc$dNu_-11A>)cI!MX*aZTf#SicFnX(yA^iKL%eCJCOt`V0n7eT_S8LY&?(f{Y=>#L&y*uQ&8I zQ5JNPyE8n#NRnL2^jtz1a;XnvPGQV)t*>*y!PRJ;J6GqTf|BK?d2T?_z~_4sl4R1bAV$nwTNslrb8V3~ zx8~Bp-b)gtJXvU!d7En=wCO{nN~C#7?_c7iz;x23ZcHijQu=6*T;@nfw?T$YT+8FG z&P$o!(a0Zaf{@!yn1^{qolsXqBSM(byAK!PS=}VAY?SHBBu%TN^a$f4SHs>AOS{P> zy!^!JH#l)Xhj#nb@U_&V5^LHx!h{@wR3WfuCUaL1rDPZFaOE zB^xJ-+mpzXY)R!3+;=jqzHrs! z&yGIu6eaaE>@uZ}@~4hgjWw_sccuc3Dlq<0lpBv;YAOtEo`V$<&wn;%si`G(@C zFBL~yX>#8&LB(++6kAIbC#+Iz+oU-09L34kC{B4uaoRr>JHAq!o`MaJ4&BZeqPYDD z#T}n2?o37h=+N!1VT!vC7Gz9_C?>v;F0M&?1$~NtQOxLwdALKLlJ1IGe^tzWTTv=T zhYo$_^i|B2*DZADGjFA0{#M0;3ls})5@gMOS+Oe<`elc#v)@tIIo~SI?cP%^o;O2r ze!1d;?TQQkptxv{;$nI4L5Hm0{h+uc8EQp`tV?qhmn~CVexzde6^bk5g$5n6u6$MT z`|lN3^@OFQL)O&=iffiCuG_4*{&K~Q4=ZkdTXE};irf0YveF^z_VJ24mMHGrptx(N z;_mAd_q?FE_n(UUl3|JIkoBjbiu>m%{=7-?z&VPC?ovGRy5i9v6?^(*%6)&Cs(5Ub z;_=OjCoWbzdB5VRw-ryzd%ikkJtJ=?=#ceXp5o;Nir3dE-aT3I(Um~Qtd8~`Ws3c= zvXk8r9kN4q%?QQ1C5rlI6%Bh8je#r?*^sGdDo`}9Qfxd%vFR+umg^KpKc+b5eZ{d! z*>d~V!HVPOC{9?e*w&&ral7KA8x$u$r#NMwVtaCq+{%%?*e`T3( zr+k@qV{S?1ahy(ztl@GOdpqe;}i=6)#%|6Xnn=%JRQSW8QQDe%3?`CN~R{}A@o7Jlf2XG z$Ds&ve*T@XtVATC5=2FkwaHB2vjO^jFyS;$2vC$aiQTdTQ zoeSM&B1Ja-cj$Mpj^X{vUWH(XeuuoLSo*DES?6hT@z8;a6_XT)mnl{@D2_N;5x!Kh z>JCNu(~8yqP*i-csO&mj0;?LVs4iBlIZUy3gQDhCpz{f6vwzG%`noTWx-YySHEkPa z7O)x94Z0TkPiM&3DGwFM-;boCQZCgiR~F-Y=k6$#t|(%=%OCP#j_A0!>y%k~ryYD8 z<=?TayKx5lLa^f@#uW%&gQ>sc65~qlr7vTX`#UbRyIqSL?DR|V*XnJTNzlCJmSjpk zv@tv7Ck)+oN}W_(FMT~*9lG#qbdiS>+!UDZISCE3e8PR zQRC_Q$J}(5c;11ABsaO9RDpNei3HNM@G@Q#sV|`&`Zp&|PMOOHDWbHl=4uhUL^;pdN-OJ=c-^KXaZeD$RI2?5~s~cKr`}?*zG|mnC^=}o_Pq2gT+lyOrpycWb`;M+4H&bXi9!X$jo>7tOi^;} zAJHuidP46o^NEOA8KU{xa`*x-1UH@%iLbfs9CbfSbj^y@9n~~=p6Te3Q zNyiMw*Ij*3e(mL9L8$d-VMyw6R(o7YS}+n{&lS%kd2+hPh5Ge2i?fg0GoC!LvTzejGm2kFdC8;@e^-kZ(=X)TzfyJyfj zB<%+D>h76zj!3&#oPBK{1`uEW+_Vv>&FNV}_zGr$}86sDy6OwZdMG8wWO{UPpyPR&sFu zpk?|!&k6(=4VHJ#2X*2ZT#q1vi$%~1{)o&47qH@kGZ1&MtN=c~{sC*qiTENNVW_MQ z{no%6HN1SQQ_qZG7RH92nWhA-;L{EgmovTV(i^{KrYxk-OTqM~PptXJ)!QpSJx zd9TX?)?SQ1>2G+iXUdA!J_ijc{dKRnzQ%FpC|tf*YtjjRuZVw-3Qzx&Czy1(jD$%> zGGsYyFOyr-eV*Y*LN^)6l$EkA>(BJ>HGiHVE<={j_9tkZ=@mX{QFgktNgadCA1#9n zSzg=wL=2}!B~8&VOe7hy^0psEqfbB0n^GB1bXc=8?h%O#B#ei=5^@=Nc>u`L49Tk9 zzGgP$&h*LcPFct@-u??l!}R;SWi-M*6|wdjs>PWht9$!cj6~^~p3<;-%5vYnwH>a1 zii$O3v#kB?8zsOG7@()n#3EoniutD3bPd^LB2z2`_9xOnE;g4ns7$dK*rTKwToS!( zqUkAS1p8|!AL-{hZK|i(6ztDSaBZ}0@~4xAl_6FJ`yUJ8QQ*m>nNc)#Qc2bb`+jK? z*K1W|iY>x^1itC_MjL>YA+`zoB0ny#V0mi*TA`UU#PeQw_Uh+J@a^aWmQSo1zf8bx z&hJLb(#|el9kH@+cmbJ~3B^vAzt+gp#H+Gqqm_MI3woz45RI4dPZ@~5VyFB$S^nON z`PEL*c{1gk4)T2v>en7+?}eJ!VTgYs0<_b=#>k|9(5l6hV(*iBT*GpZteGY$MLycf z5HpLtbTqF1-dj}So30tj5DScb5QdQSKT^WuDRvoq8IqU2K4AhEFnPY;3!OTK4=UKtyvf&zUT!G-*7+N!@8dq|#7>y;f#JD;I|BXV)oM~KL zgZH44GiMoBdQhw`nX`>67)+fDSE+Gj26IqwnRARQJNP_Cfy}waH6VBqT2baa8R&fd zhXmh8Dl_LB*U+H6mMC+faSaQ;5rXSr;~E}(q6n@s;~EjHmKc^8*T~?Xu&T>E+_**s z+m*t#(zr$kUqnyJTxDFj!P~^O+PFf&{^Q}QG_JhhX(;u~YU9ceiUBaQ&bSJK(H0HjOM`P4TdIu^|-}w{p zb>N?%AvD)nBl?~a`~l6h@2S${p}_>@qeU#%vJLr28?Y6^xc-kFe#0WZ!$lQfO!XfGhS|bf&%!>eqC!9O@q^ zcgR_CATx+QV^2jx==+Fx+UaruTr8d+Vw~#xvngu1 z0MF$>mfW7vA`)*&*tY6dcDh`F$WbDqfru?q&+GU7SW{voGQ~D&zb|+0^(#(UQZiGc^$PhcG{rL>I2idYZHtoU6=mM3{ezzU2KjAaibF`58x5 zxnexC11I8pmPluaIo19d-8xuJIk}%xp%__hKl*2|-s>qLVPMmD&Q3>8gBK+56_c#} z0h(O!NpDtj?Wvd&g3p_48N)DW*uyaN1(&L($O&6YIbHlvG*b8(V#~Ep#pPfD<+NyY zc#8^WG>BLkhOFQyj)HOpfwTZw8j{$7?eQ3ngXP|kL>V+Ss?lcXi*GHATfx7zE?lu5 z+vOM?f^T^|tqd_I+ww}q;1-sMrcx8gLK9Q7{S%r`@Jfnkz0g-I(DqO0L&2{Yu(T3Z zso16MHx|M3`1tbXBp@bhyLTQWZfQe8tl9QWBOq~R!W1$fv3A?dQh9%lPbDS95N@9; z6?dvv!c1sl9=HFAK_qy0Yfmwn+Z`bhEMx^}Z_>7_WuGbbbo&ix*TFM9-9U;6L%jGM zhc#R9d>Ml5bhr4dOtHM%Phmh0-qy-b%<*<_Sst9+DonA_+m}d~?@3j8!^{xFy)AFM z3>Ny0XKa<4zMm8nWluTi*xK&EU}*e8q3zW4;IT!w67*gHjF1odV&9u7OQ zzhMuS)|c!1JGu%hL~b_{nX>g^H)6RRyxUVL8jiTF4A~U1Z1{~Jwu}9gG@71X32ovg41HhpFEX+= zdwK{4RoSDlSD-ZoFOBiYlwBM9_H1~(V3MV2mLRQ6*~+m;NyGox<0k@ErtI(7btB>T zlE=^7C!0R@ahUpppL+cCz6{w2vL7mfUpwZ(jnFjBjQ2#MMjH1dpMLkYh5#nwPJs;B zKC$*~4YiDF;=VoKq33>4NW-(p8`rg_^4B zteh(23RuHMw;!Z}>y2QoQDG=pXIv1x27<#O*fnR95!@_kb3@!>T*=mengxjNzrNcc zpB=atfAeJPOCmIeFtLVN86V=B{aP+WH?z*<3hww6$j^}dF*^WNDQBl`I+p5%8M0w! zcaZC6dsKESLw3;Y&T{<%+bk@Nylko2pJGbS>EQPm-8g$MCV`w4Sm{YnR)%cN*?Aaea?a&~)I=(Kb@mHb<>d7DOGVh}k|h0O zWylVm{ZSD-*ZC!A&+KhwBxU153$EsD^p2eFlx<}U7Kt60CUWX|yR<^HWY=!ebB;*t zLch=H>~FQ?*PQ0skI#np7p4R=TI7a*w!@V}eWr}$uW7J7w~ObW$HMa~tY(*6_+4iK4-S4a?<58Do|#ojORqehruRizNbD^gag(-kw}JKlT&7!0ZVf!flxwrDecqJ zAn^}25mUUfZE1Ic(w=i93rQzK?IdQTkgZI+_f$x1U?I8FrPWh*Htn^jmYkiaNv+)s z+26E3fzp%{^qVdxf2|DJ@U+iFSIimak6#66$o{8&4MvHa-R!3(eX=2Hw};M=bByP@ zH}A56Y7Z@i#5VTd_`J(*s{Iwja#q@A)^H`P3^ANu+1P6^&E4A%q0U?j+M8% z|2}~4{=ry`UuVO7H;mg18M9Ev`bRe+tg$CU_Bxea3E4SNhWx7%8|$sH^0xPzRrdFg z?S$dj|A)51eH*g+w6^~($QI6p?7MA*J5KHGBQEG!c5;5N0jL-IwjvC2)9h~IVOzZ>yVr_&Eqy9{tX|8+<584N@@#r=4{5?? z@mV_vK66i+WLeTu>~3=;xO7RsHQ^#xV8LT!pb~ooK2U)NMc_pVyX+aP5KRc0Anh{%1v6RDMmA$g^~!P_L+n18fiP57@!oQ#P!xx8Y$rN0Nwlvoq9BteZRkmNNphU2UE zZcW7``!vk4$?NZ#7waosGJt@`1xgS^mVAZT6JN()hd&PoAU!tJRW4&Jw|i~DMf*s^ zGpO9|CK4#rv)yYIyk>UPC)jO0oN(H^^n%p4y17p)R&aB1!&~UFc$VN&yCOyQtql{5>AQg$}ZN z6q~a4+ud%GJFTJ;*SClLGpb5z0>1Z(uQ9?ERfx#_sH;$K`&G1^2jLeD;CS(U5Sm0N z+unddZx@v-$Ffbu zI-!~tB5lf=))9@+{$mN`#@RKKqcIy9X(Pt$Sd=G%r$8b!)xH4oGU~+!s12%UiO8LV z<`SA^kC|XLt6e!0=VlT43@sEp(<}xbYubAvaxSVY)M8JW85NO2OqV~_w7_6TWQ#3E11FU8MMVBs(+0aD z$Jp4Pa78rD^2eGs#}zr=J{A|8P&7v-(-9GQwH;KGN9;~$`6v_9Ml`+dA8Xo95j+Kx zW!@e37=KjInr@$fg-d9MU6XBDf6+G7^G*@I6O%~Dm&^dIUe7rf^B!;_(bFis{^@$$ z<#;@eaI9V(hcKADJzkG!Bd~hqxgyUe7BT&^*AiFmbw|#vSBgYjk@sRmOd`*BeLr@5 z-6}N!^t@F>wxDc6Z((;{i;)9C@k`=$?reB{Xn%?B`&a3QENRVa@z<`zXXw7M5?WQo z`eO_l#&@>7u+STZHmu?TtQqVn(#Qk8&(QXyEio3W_+Zzwi_eDUC9TLAE@sq=XH|Wr z73%2=q0@WsoUz08?B}}}9m9KP@wMXlGFowHxbMkSJW814iSsY6XMwK)ik}=_a^fuh zhj`9R#+{RWIq;0R^B321rtb^f6?13iFx=TF&1->gEVLhVkZ7>u#d8qKICO~brouSS zrQ#{`O6X9ZyfoW;XUP`v%tF`AtMc`lBSCt)f|hW}1&&Cl*_T%uD`FMjA-=0+%skq+ zct%|4FN)_{jMsVZ+sz&0ZY}v#d_Nz7TQBf+L20_xmW=AO|07{u<~s_7rKfB-$`=n4 zPrtOd8+|!Y@?`pB`D!Pzis!i!5BTI)31uGl=F6H&aTRBNp1_?|`-wFJ=|*bR~BC)1ilYB|KTXQ^dZXhpheC zf5xC_)^s|H$`!xq%Dw6Dj5gaUIFr>>3|uC-Fa49_vZ|qpm^Z)Uog4CM?O!kzwF=jh z=~a$wC?oJO`foy6tN3(REH7}~!USTTY~Ak476+b1+x85dI+>@N=KH#c9f!&dtq2_5 zr;Q-3;-6fx^?@NBT8Cy8_s0Nb0y-}6IdtPz@yP|Nc%g{RN4pAL92lR{Mttd}$WL-* zZw>q|Ztl^XCM@^6oV)T)w_lmnRt%oP|A%u!=#9V`U4HEbtGHXPll(6NBd}s?RZ-D& znev_L-VjJi#sKfVL0h8!G5KwDWqTxz#k`wX)|2u}+#7}`HKO^oeS=l}tSeiTbQRXt ziDf+v=x6ta$|O7p*~Se~wXS$HhFVj#4N0;BOdNwIU;bFdtK1v5BxT2qQPHw-zgfj+ zxi_4cR2kO?T`|=|jWSyFsN8TlT3g-;zTr$#8>*z~4@F`A*q|QZi%)7_e8!4HO0&u28Ekn2ASS3{=dv_XS zzp}rbEpleUmjbnl^+$AaWODs1>04w?lHw{am&>hF5qRj^q)tU~p7)FAu(|O3Iq6v} zC}id5-ubb3?nTGVd(2mX;mVspH@BKCtGEjcn<^XX-R`?UtgJf>TE$~su_5hNc8wKt zgS3iQI%0W$_sK81d1IDN#7IvRv7soz(9Cx0p?G-3Jdxhwh~<6i8-%sISImu+LH^B= z4XtkXQCvP;S*!SGM=a0s{|gg}H%Lzc2NocK|3-pCTid;bvB4|mN#MbbSYDdHJ(`VI z%#D-@-0aAPE@?L!>SjV&tN3zP?B;eaqa%66JPCYE#O6c24E?#?o?)?Ko&M7l(dm_r}mzF;4=| zkf>6{lOT;yfJ$csK213K~D28?jI}WNnr9=#5`B}-kA1hqOW*E z^CYmq5zCwBzca2r+(=o)D;(L-;`Z`84&ESLS@e2GEU(KbogJFJGZJv_{nnAlYw_QMK)e#}P(|617?(7(yp#N2 zPW&}lZyFZ5cb)HFi(2x=AQ`uck8&lh_RmLkdnKZ2P}x}~{=5A06BBLAne1CxQhM2e zI}m=Blu&lS{QVi<#|6w^@f@eu$9FEYtnc8}DRfRy-tibZSMG=9E11>}uJep55L}KS zJ9NH0g5c|)Y>j^&4Mf7~6uP+U-w>Ku@A{Mn(QKzqNOx>$eI{V>lsDt{!8j>{Oyg|z zCkt_5(PiB&O9HU%*~XA@`&k(C#ExN4*oO4j4|YRj_jScMW0qd;h_E%`a`F2@`uGDE zLwol6O}tzDr0PSD6r=9#Zem)qt%=Xe^?OF(`eW~4Sa7fJmFq7f+R#(IWLh-xrVJ+} zOMG*oI)z@ApAC~a%(-#GDDhh~5Pq+n8i?`J*^pD>AtLn_RFS-{z8_F$nwn?}F;WvZ zh*Xv&;{D!5ZXCw5MEanO$FQxuKiUUNW|%~^jZC;+eE*0Xh4#Hx9Fq(S?FEB+-V$FS z`jRK@CVk6My*R2WMJjd6qqW(A4{;$&TEqAcF|#bdfE>u5QMwi1^J`8m!a-WCL928b zGL^q>I~szyVwe7-7p|<|Gsn5&D;pCMsb60X{f6U4G^*ghj zD_u*^oQ^9E-=X%5O!l1e+FC1rL)g7CH6_0%vORS-N+rLqEeRDHZI1vtP=1bmBreM} zc}T{BVEzDG&cisDZa~Y)A7-aP`}~wr_oG$kkGC5zDn5ori5ok&Lnl84qoCd6@91v% z74`=7gUz+-Y0a&vgq1oABDOrim4CF|?MDg9>Q(4oJBioQZRFYNb+GHP%kj`&-K*L4 zxXkg8JIrR9baSiM1+K{TF(N8wL~a$4P3@7EKT(ACuL&=TkJzsAAG-vB$vxgctfW(5 zks3QmMu!RCi|lUXI{)q7Xf%3jw@z}0H9>zcY&1G`{>RHlI=xQ)Ob#bZloA*Pul&ys zM-Zl4dIXA>iNJT#O49A44u%Apnr&{LXZxic^tMAXCQF3#PZVh_-N~pAQ@-g^ht>jn z1iF2Gk^MuF=%EYj{+N~Xi|sRzeZO7wpxihQVdT%W*JYTY656Vk(?YuhT`0fQezK3+ zQMJ}I3FeOqVXQnEZ6s?S0?H12gTGl)RoMYa@VG#G1f3;cv-RuP>)@8w63D;Zo_Z__ zGyhRN&!J6Hp4-ZQ%>HSR``p&Fa>$zsdD4CuZ3~%`Anf#;@z+{(lzjg`+`S2WRMp-8 zfA7oyAt0heL`4%8*|!iNY_bSJBWnquB4m_IYOVTcwbjR3 zYhCItZnaviRcouYTD4ktt99f5`JD5)ckWDv#rAo8{r=B|%=?~wKj(XvdoSu&$rDU= zz~p;dJdNTJ_gvb+!Ta#!34o~Lkypj*y>xyW< zYqC7-)_D4!dw*3`Qv!GqB#pOP=#i}OwXnx^ke zeV!&Uj6Eeg+{@4-Ab+jN?0?dPok~f5$kQ#j7arOT=-J&Td*+?e=ByMlFZRtlr_EU& z&g|JV8jE^Z(#1DY+nl}Jch=Q6Gr>Aj&!UlOw%tMp!*xcioGI7RxFZ@-N%zo6s6=dS zo)u^6V>EpRqg_d_(0?IoJ(GgRnIu!mr~ZR>9ty!u-_TQq*>-M&MQ7?h_;n|-hwC4D z9sOmdKdfoa)X}sPW=}sTbPH;`Z->SOOJM5EbvrSfk)d%I(0y|n+3Z8zq@pNNgWtlp zP&)^(uF!+|&VZBCx2zk|Wu4G1>w<1s2XxC6@NYi+y%Q{?ere=k-rk4XB6EwA0_Zi` z9gkYp=Ww0?XtxrX+UL=CVXY|g5iN7N)00m_x<5DqMkh1-+yZkdsVAR~bk{+r&*?#J zJ}v1!iu~_$OHi9nPr5%vSKQ~!pf;bTbZ4N=^tmUkUGO}@#vveMwlB=gxnVC{K62^C zXF=N>3-+}62&Q`nszaX((>^&p`ADXF;%I2==$(!HYt$ZwlIz2dwfSk{Bb)9+`#}4u zpf(@jbXTF$^tm>u-JjYoj)C@1g4%q<)7=k^v(GyW%to-_FD6ZV?$iAtv*GEq84dwb z`&n4-^K4L?&xN{|q08v=7M<(aik??eyA)Nk&##zM(jLRl2Ug}mJ@%r#Ch=RBV}G#M zMa7O|J}c->T8pwAd(B>BFkrCty6zEf4@WT)^&%$H2wCXzhPxm#?@iYq_fsr$Ce;N7!MQ(RAOwr+M;bGbO&LWo&j6_Dd z^h}mD6gcg!=#9hp`_#fwrx_HC#-7L8IB;2MgnHwCi=T_2lQ*cW$KsB7zO4Kh1cKVv zqY^cD&{0+uIp8*iI)5It=DFSI$aQc+g6aiQ7yKT&=7*_Y14U`%kN7R57vp#sXB+A{ z&$e)u>7Q-s4+99e2l#r^+-^p%U?@zS14?M%ooz7&O4|4ZG_hw}ZiN`Y5ZrEK`D-5* z9^dL)nDcyJ9C!*?U|gN?=3|ofY)i!y&j%YgBdxP7>^*h1Wd|#|qQ~$wp?i@w?Aeyy zm>XGv$;8B&@FmUc*_Q8{hGYFVu1zewvn@}e;syO?E;1HHCKpR}|EkH?5` z$6bn_%UG`cD!Nh|<>wx-44VFF7urBJulMz0Za1T6pFmHab}^b>?J0`zdGFH5kMUc` z+oH%%5X`ve5Z9}4(>Z^356+hIPoy?N9sfE5_~JllMX$y!ExO&z$1a`m4i&~Mwitsk zAANVby-H1Id{2T4toh46MNh!6JhKBv)9erZVYWhk*+?Hy;Ttr02BzH1L-hwV(sbZ{ zaJEXOUd=g=CNuM3vTjn5SMDZ~wm>J`LJJ>^g@x112kC7J?6dX^!ReTPCA|me7jP#c z3^4fsQ;KY}IrcN?6-E9AtwP?88;4$=uM_B;e`Qx{AlpI*9Dvc){TJGQ{^L0Q1RHua zzyT9|gFko%CXJ@G*@Q0it>7Sobvqe8IQ#Rkk^9#!@N{od+W0wxHIh;TA4H$R%W>aA!l68_H8|JroHDIE_8>C#D^b@ z;XH=pOz#BS=5RuOrTbeXI_Prx0N-$#dj$IHpv!4xG<*(iD!>WwFUb{y5XRqt2TX2Kl$TTia#2pH@Oc9u>&H%e@m} z*vYRAdBQvz^7uiAvQ51*{dT6c&@haal>dqwMe*?fdoXlo+C{#N_uMZqey~Eh-HhM1 z6-@m(ZHz(Jn*WKr6d^#|2pCU)j>b4LI3RQjlG-MKXw!o*(}w$oLqd17&v1@I5H$Rh88a$$(vU2d4Zh*T(Bw##%QI=nZJzuiLan&B z!-lEb&a@xhIqh-NxkJ-Uh(oq-&Un7@!CE+B zZ`6%!3nomb>|EO7K3V>sLgtnCN(=h|r|deK@&rTvyP>}!EU!@?{TK~iLP>SFv8a!! z5ZRr=)Q@PT%R#VG>XtwTMy0WKvQl#Ne(VbRG9~|d6a!^1;4 zIe={z9qT*j#Blx-z7^VA{^ArUG{zhP0fpfPrE3;AyWIWHW(0icnpPoQU+rsBx;B~x zePQHGyO$=CuFpaTWGm}%<7}GwOs=HszoOH$wMvHnqDx8F{EqE-y0Lyc(+)xpXAQ3l zjYJ(XZyQm-2n7L;r432fzv`Uje6eqMYv>dhwsn3IZLlYRbp3NkCxLiN?)@QcNV?|p zV1f9_#(lIQ>G~oF*)|lDJlWu*-=1_m3ss=49}$yklntcoeh8(FAHH;bDtaU4x!cWV zAWD;#af%w6h0NNb2)_?pXm$BJCJ#-H14Xc;*?LV$x6m`cq-hl;z1i1fNgK_AE--SY z-9QtS^ajjoY{zwgaW?G{8mgp^AK-NnGW;tIRnp(@f>h9r_1l@&4jJc_^imj3p=AYZ zOS(60sH89GndN-CZ+L5HAPn0&ucr-_^zE2Y2jZ<#I-53B(%UCx1Rxtfp$(PvVD!2+ z6q7vJc#<|WkNPcom_Qn3<2~BYJnCndbF}fpFKPCT%yYM!%|H|^Etf_LpjpWB!@D+k zYjycsF|h(OGmL0mL)|&w=}I+9+3m_H2bLGzu9q8~&hElSdQH2Keu@?V1^w{rEL@+h z?~LC@t-m8cx66?j#RpN@t(b0{WA3NoVw!X9Y8)_YmUcA#-m(i62g>jt8 zxK5M#dOl`cz(xTxj@5uEFO3X=s*txu=C(A#sdQ=N4P(d`DpfF@+xJ6kBaJ3A_+zTa z3R69hE2qPTdp|lvr1Wdv7lci;FUi(-7XN};=fY~_c$c{<2a5JFFHwsXBa&LAiV?6? z(1H;0A+l}#VPW7Z*`yHkU>|hwDP#7Dec)G|~~#DCF%(E&`wu;h}2Of7};E zx|m-krZiGad%Ue+t}n)FN2J{lmdb*HLjwy4E1~1k6zP1L_XW@6*IBqOTi;oH1+|Kh ziS35F^hgf;;$b~)H@dkWOi=l)jla;Isi%w|i>x&A1oR4dTNI(C(#Xry;BAq)T@qe| zH%B2`BE!Q=YcO0`H@ z=GHY;ZoqXRr{vLT)V&oF?|@1^!4@`4+*Q$NvoxH_7;JFPAMgd{)lR<{O`Jkb7Aw!j z?HlM&tR<>kV<~^pxyBOTN@s1}3N>ft)+SZ5x#E|`Cg;o6=AWRZFlB90+qXA)R)P6F>+#ibj8u&sF%unTX=tVuo{dvixV5DU77RlTM z8(j3V(J&R*RH3}3%o4k6Qu#|*;;M$V!HcF6NYP9 zntB6aEsN8;Z!Gce>%YeE7ygBNXJ16P@<(vWcNfa3eKnzVs(a(q-dm?*<@9zqLcdbOhlgRO7bB2`{+`x65ut0>ag(e{jIbgZWuLeF^$3_|2=Ih10+;od#~`{KyLP z>9MZmP=?)k%dCn+_sYJ|Vj7SH`yHvS@s&`?2W%r_jm%zcpZLVbRx`q z;s!#e z>Rg3CN&zVj8;r#AD_~4XB|>n-*v9>oEd5;ZTT;m7SRr4x4-Q z?eOMal)JpK587I9bZ@+|_cb*&tB!+%reo3Q*zJ8EiVM@OuX8!Gu&#A)T-!%|>#soH z7QWu)b`5%aIORe^pslX@IrM6rRd*WHp?7vFU%@>WgsnBN&qPPLjvb{_*)Hlh+>Ws3 zULVnfhiYkVHX0DmF|bw6%rfJYeSxXzz;(-5+FR4coyr|+wgkRS=RS0!2PM} zID1r~4@qZ!m3cmJ0~2B67Ara z7f;>-!YuJ?co) zzW6zjjiLuEh1-SVQ*j?3&7XlZ;)uuAAAZe^&!)Fi`7;_nrZ%6*hJaW(;k(@UDRh&Z4TW$h{V)Ch+exxH&Yt*$I)Jaxj*?{ z-#e+)nCT{eyN z(9S<4{tb0M=Fi*sfwPxuAikrTT?Ivl{oVKo+{X{)&w>2e8$at^wu(Doq5n7WMbw?i zpDD(O_5W!a9UniJx~K7HHGksxS?{vWzeV$-;=iEo4g9$RKTY@Z=QsE{k<}byxf4F! zjemvv_y_!Xoko;2_(8pJjT=9khKXO8;X8^2pIM`iBIrL4Keaze#?8birb^J>HT#TPa_Wke3 zIRA|J88kS7Kh5~zW#y;}G+M4T*pb*w*@7eSnJ^xOKVBS(cOdZQNzlMp)yN^bJv7lZ zU`-;<0UBNDuL4duJP!_MIe|LUN#zT0!j%IX2{Tg-Mxs+4hV(!rj;4?qQ>0Cb@xVELjf=Tye^f1OpZlo$4{ige468 z&OrR#%s^K{1DUn*36MDn5!*Q!e~`ODO_DM)_>qC!7-vE2U1sL&Ud8$I%}Ea;J^m-Z-edB7j$V~0qVKVCit{qghy{`5mH z=w;2J@TY|ScvLV;6x95kJBPty!^Mv~8e+?d!o`c_!t zhGAePVP@CZ9^`Pj>MWQ;ra8|5qR3si;ci%_{WaYCqS2~f8jGBy*|zu!)ZB-*F*A_} zRIkc!V9ecmYi#7BfbsGkDh|DXPw4!r4ekoZJs9H?zvSnf;npv=qx%N8!Eq0yen03tD}N6C35ZHhgj0+^w?}*~ zl#Lf)A;QzkeIgBZI9#jnBbI*JF=;q!d_ z+TL}&UWKZ+h`$?@cceFqvvlJU)Hg7JY{}YH~u!%jqHS9l%4$5x%yx}ibWrC z_Q8z|<9(R2z}!L;hNsL3<0IM09mYRB(_H<$Q^>{jyb6^1`0@C7(^+oqKIpG|^IVbZ zM9y}HPKES*9^a_#x@Wt;9t+hLtHP(Q`or0-EuG_jfjY~H5x#L)_*HLoNV|Pu|0ef~ ze2mrXDDbJQm(jC~C<||!;6GNd**&Bbdhdm|AzwI?f!CYe3(-%Gct6|=_I$m^WPM$sEwtu7v{jhJ(xE&Dr$3X!-<92Z5$?@54t0H$|LYV2cI?@+2Twl+)t&O~k z&R5}{>$Z7Q%_+No-o|^q&9=dgUT-5eKOO38*k^QpJstIYe`dvZ`G80FwvS{C;G-6N z=*v8qf)$+QPzN8y*a|g{iCg{u7tWm*EM72Ax(bTE)+}gUBGc@eJ zg872g3vG7a?*V)5-Egs|7dg*eUbn^>+R^=RKTj`jvwP!Fu-C=SN6WEpyKZ(PlcBe- zo51YN>J^>mCSoaP=zi|fVV>TU&F&OTj)orKUX6jn+FQTHU3v)gdb%5Yx7ZnS^Drt8 zEpq?vN5%bKOETP^*VbKi~-HEpR)caa+B}X7^1N z#L@0{gl_dv*Wl@SZbOqZbd}p3jsA7xXC5-S6`8!&U4Z__>UAwFg1htFSZj+j^gMSW zvZZUnL}07?PsFpdS~u)r-sHGnp)QkA2qCaSn=>-!_xm7nqu+R+PdMf!GmR5(~wF!!xQq04X;ZK zPqxII|J>jI0WXHvtx4fKzv;;T&%`W8KG{6jle|>^+0^Ay3^#r`-bdGC&CMt(UkP!K zUy+PQtK-WOHPy+wVar*Lb%`0RO|ev>1xoZob%}W`_zq=tO`PV?XhU7Ng6iy4CP2o`_Xj*Qg})z9CiDA{|(wj+`mDd37zxhGeR)DP;p_Ow3NKVqj=O zs2Z_EQ+>lSDAC?-?L2F{AtB2R z39E_f>fNT+HrFMg+Y$2m5m7%>xLh4uUd`OVEy6MOVF|a@E%ci~GSTrmdT#Hm?O3Xz z(P)y=GM>>QV~^k!A>8>E7!zu*j`7ZFGusd+B&{{Zd_qp5IHR->O|?{`-B`_F{wudz zn;M!LQVrGdh7;;)tu2(44L2UGXJI!anydkXX|8TyYT+71UB9}PHe1lAGbXs88BNy~ z6l`NdEV??;La$Lob%{l`QkcpTZ)jwbh7WK8d$wq-?-@F(LN@oJv3PYdX-WgJSe9De zG8E-p-5O`g5k@m~>Z)r4C1(9aWUbdG88gDY+=-D;QzRVz zjgvQQLc|T)?N9u8Z*NGF&J@xJV1Cbw|4aFTN<{k57q+|Hq z$VX6Jd}7|db%&K7RtL*3IzJ5WH4)w|J_;s>p9ZZzq_sj_(e*|mULuO!iJ`sQ=yak^ zJI~HA&rXJpvD3k`^SSHh^+uTgSa({aL-oR1_4alJm;XkaKXzqvM{*UYOei$Bd z4C4K-@as^&dSdFo@ z^}6ryArrlB7;GcO9m3DJryVwa__5)to5Clgp!wvwJ45Z5piW+7OA)Vj;nfo(ox&aK zL+!K7e50+QP)5#t;J6dRQzwQe%Z;CjFfjUZ5JET*i=6O&CY%E%Mk1>tp>VC7b@rmM zKa3;c11Cm0hwIy#`9{0-m9bpUDyeJX#y2*VCvR`_J+%%(T1jET}vuj-MWVUpZ@NEjjf+=YR%iY^plMzf3;~* zWWu7n)QmHJmuk1^@UJ$8&OJP`aYkfQS=UXoJ8$Z7?%`hzF6+E;R^Q0!uYNV~fsNDq z=4~wK`xaBO3Hm)YE&XH@d^`E8jqfgfuzu^trw6yc|MSpcFrK{khN}>dGw!<+?cYgt zI=8?X_rTt#odLzEUl{YVHsk*O*FqZ?zU%wBwDZR8o7!)j*mvNA8^vCO7k&W88Fn|dKjXes-o}U*%?~yqfJyEPNY=TL{Ws3Y zdwT}LzmsuzXZ`jFM0zaAGezcyD*yVnhU-{HOE*1qkOD4RF&7SC@af!=ld(asIEwj;?P*WVnvx#JQ8w|FSn%Kj;c#6oKZeM z!|PQ6zrA=A7YF1jr?|uyx( zr$3l7`u=$76_Z z3jVIbAM-rJ92rmZD*U~QKjwS3d0*(Q#~&}|eTKPL05B`U-}U(O(vWFS34uAhz}k%j=49K&@(%RQHwPuSE#W$gh)Sc~nn%(Z zv~lNO-@_eTMMzogOx`PfvXc$1GigJ{0j0ntKk@>8boGLR-+mn|h8tTb6`t$0xVadA zC@1>9uZiINLljV;^!^K$eq}8BWegSEG5T$*|9?{T{i8;&5nI9N6{jgFogk+0EYPk=%a@RzTXFV9d`q%w^6kI#xBZ#@x4dCR?OWa)S>3 zb|$$SNBbl<(x^}3&E7_zR5%c*?DbRVy^TND@vGP^RQP`+cd*s9DGH<`fOmzo{tzmG%hHiF>z@rh=;n$*kTp~wumY5e$g8ES{; zA~ST_*x>2MfFx$j{q-(~haY!t%43OMteUw-Hn+*SI-tiTiWx15M(2nsvsyHMyq#A~ zY;8(5ENiN(ErOdNMOX$JKi*%q$uOK$G%0%$#zP`O(bL8_Es64!$ga#^Fy;$qO!S1` ziS_YBHKGxW)TDkxidH2WY7shebm0uA6J%1}d^=Y>rQv1JItlVTm|^AbUHiq9ud@~% zo}l=)Zg^TEJ8bUSdwO0q8o=(s9&1IF!xb^V{9yy&#SV`b$7f#IYWCZ?^n>=;IZz(s zm90_k(B+vckRynDp>T~aLn+ot8nxGlKvxz z&tv%eJ^tRn-;?nUGz?Vu%q`b_QmXkSKyEHv!(c}!rw9Y zW5?`W@kGBQszayPxjb=r>DVnTnj@GP=CY!M$>onFRQ;F5Fr136UTmm0r ziRQIYF1sho=EdgCj8zmzGXkrwD4RdC!syLJ6m7>^zM`VK98>v`)v2--*7{g)wR&7@ zGX{p3JOBj*8B&Yc3wi<*;NlURS-cuC{EI zjcsX5U2`0XC|j{&Ma)@Nm$K{oCJTdIYH%E(?{zILi5BDixM*})Q)@J~W=(M^9!5#D zG*+kgOv>lQDw1W*aiq4vu{mqjwjE|r=2(GG>o(UnU=zZWTJebV8u(~4Iw9RAF~ueI z4NbMt`i7QdDw?QgJ|~yRN>WE?!GTHTLyZnKG_7qqGypP7&&7MnkmO zmu?R=iA20Q-n_h8^&*7?*qs~Wx!0D8OAu~)SI?{VZ5wF?g7cD?*&IjJRL53Yhcow} zve(vmftY4jisD?>QeDIBsxFU}Rg5&j?14wkv;0Tbs2t93#Qkh z`6n_PFB(d)vzWw=gjGLxhK`L@qu*p*H-*eCxMY-vE*i0K>eMIe>QFM-k{V`aZ<(tQ{IAnfp_SIo6u;S#nl8G)Oj=U%Zb9%J@J6D@uh0&mzyuEr>pu`9v^B*$R8662xiOS7`P zxVXA@MQbu;GEKS8^1`_pYtihHA2c)2o#V6&_OU#sEDKM8k zk`uW4o-yVP$!s)j`f?3ICeFeB_1_$Wm?RD|$>p}_Mw{X)o3oo%z!AI*!vV%yleueA za<$Rb4XNeW4##l<>lwOViapxlFIy2)f7f<|%E*F2Lrm&yS!S5D8A~%V%Z#WvkAm2ka_55kzk0$~Zk4%qe5E|HJMpLo+=m>2VW(IBIw9`4QgK-nh zsI{pzSw{hkEeLWHHX2t!j)KPx5(UwNqc1fUym3=f<`~wl+FA_s^>s{wX$n!E6u_k0 zv<+2rfB4>`Qi?fA9Fp)`h;5Y$lKqnDpu8@j!AQ3i5D4pSlVTz~VbBN*&DANi2~SMU zY;WV5Ta(L8%}1|+M6)+Wzu-j6F<8xQu4`&cpe!M7F`-kG&WbaP(o&5 zrk100C1tW?VI#xEZW>dL5v8%Q46^a!-4$?dm#eHKy-QIx*l;|N_TOr7LyEqea3m}T zGuD$jzMBYSi!-M4--9yBDKIqeQSt7?=_&_POC#<(wGGR77HOR=I`t}ImN8?B~Bb0 zqk05AMVrg&&yC1R!GWx@oy&Pq-&Ik}Z z=xZWB26GcimZm$DwG647o7!13y4togx+uqsw%soWI>{LcGl)W=(}0fLtgEmDQW*;Y zM!yV`$>1r1T`$D;8)8<1Rc%Ib-2qE7Y9L80_oQdrI3#43K@bB|gXt*qq{LWnQ5^Fp z(`mO6+P#^GsXqRIy1UNZ$XJ*fq8?X_!USHvC#EF484eb?qGqni^#gyczHH$|iW9XGq4fPE%nAOLtm#H7h$nBBE zfr_YQ9|~ymW>$>AyL%8LEJ~Wi$NHA)SX5&Hy0~O>lU)w7ODvcinzg&yL@Q1_+sJ1$ zq3SrAdYQ8>xLBf-y3BrW<;kw#FjG>+Ia+UQR?P^%^+wC*8bPp?Ga=6ZY*AS0b7Vv9 zXcnu#;%HVyMvg#=%v6aXdZR#@4!Z8qUX9Q6AT7%VE78stD7h*Fk&;Uy z^_~0NH5;5VXO$)s<-M*TX-}KN# z)l-i|J8HlpIYcG(3+dHFlMh;iWwui0#u-ZpNhxR5YONOqh7~T5_+1_6=_F;Hsxf+2uiKSIO(Bc^H&_XGGVVN1W7BqXSR@|Q9dJpzL z><)lQYi1LyHrr5m&Br?R0;azYZoR~sQY{eB43HO)!?C=;=R3^Mpdk!{SB3T=xcuPl zT43IDd@=zk#@OA-Fp?Gm5nGG}&bo|&9=XJx085`Jf3EDZkf5{DTja)wbv|@|N8++q`~Su%hm5!S#gr~!5m~5 z#aZ-2tFfs3ExRMLRF|=8{~s+4cvE&Q;GkFVAA`d*pm{h}P^!`N>Jmd66T?%jnDya- z9z2v*jlribIXsnYHqXkf#%N)70fN;Fa}uT$4=5$EP==<)fm+gco8qs_Du?J)R-ou| ztPHj|rcvUUOS(^IQ}<*g$XHmrs&7mgA3`8Tx1>-EE+jt#F*j{#l=Mf=Hr~qk<}@yKeS}TK+_t&y?8>w6$@MF_0SeF zCqU6u^)kx!Nj!jzd_z|>+F!z2WFBTRU2}#UkUd%lM<;Gp+9h<%&eD=%gOL-spMnXW zna?u2xLZ@(&|(KibYIxrSi=osZc_#eQIiU8jzf}-B_O|~taRO0Y#&uyovP;08;}J2 zRm`-E>i087NS-&-Oiv(hn%2!Vf~=ilJ6d_Ca?C{qZKw!R*#FiB*kCD2y<7`B1vyzpgFfp{FmZcI9e~5aEl@@Vi1lAf-J`Vr3b#N@kK@cIr{t=X0vo1JuHL&dd{GBS&XoUQv} zrkyNPuw%KvYGA9u$m!lbCQSqNAZsaPMOi7fl29X)D0UPvJ7K$Oqe;A`ob!0b(}<1g zeYw&WXeU|A1omi!J-lEx8PHf`D_7%i$gU601V@tpNTm1<%gtN12)1*q0h@s&pjWB_ z!Ccg4xGA@cXQ4_ZVqkqx8>8NIWOpsuECHJ3DGI=L`Oi+`CsOLR12$H%YZHyp>R1fL z?Vn_#0O0MX+2IDGpjpZF7H!K+?Srg1EIMiwe@63X%pPm*y^hr;%1pTAjX(J3?~-s!aPSt zvm%E;?DDi<|GWbzeh+02{Xp!%kt(zKi5A&h(_*&n|BX@6OfR#VX0B|=HIXpO5g4pv zjy6_;=LsS2$4q&#|F!0^WVE@Z4*TvDyxK}d+)mC|xwGqr*#gm+WGjv;ws3o>9+E9a zF?${>I-`7+$!~~_CO~eidz`>~({sX&d(>T#4kxbia(amD*Kncw} zu;48)_>0tBROPaOw-!Kg87tPDP8lEcu*-O@Xrq7$RkforJE_ANJq|jZ7Q=cIWpJ8tDDTSj@Pg?-QhBy$s??N z)#1$@IQ3)-9J4-ixYM6EWs1G&Lkj-E4S(&am$pB+>ZuJf+qvN&g}>B7(cf0ny5r3x zoVBP$QjIqL_*R1z+WVA=Z z{88RW#S(VW7ENc{M8U0brQKpNJuouETg2hXIaM5g23CT1ahYz-yuw7KZ!@TvyBj)# zV)|9|n`Zaj2xpu|+m1NHktVows;!c%*8jN^g*75*?ebP`5voiQ}? z^&Cr9c2Q(^%_P^9z&tl#dkefx4C}m&yV`9X6k^Q! z@x1Ic(@_+gvZlqR8_}p)>J8bZ=FgM_ZBO9)-6zI&Be|!SsF4v|WwRT1R{CnYOq$WG zrssNu0&DJ^-E#@o&Ro4-nvZKSckRpwiL6MK1`nX7Wv`v)t6EF&IU^mlKrKOPk)rep zu4%Q}ZLwKupC4nwB@lUSLpd%9b1U&XUtO=gW`7iAq>+wxW~Z4=JiPtdNg z8RzyOKkPo9ml`9!d^c;6+$O_Jz5xpmDTr967a3!Bc2RTCIyC{@vox5JOV2B1iw*V-K^LxV7y#{qvMM z%ix^?Lat)Nsl{wE28W^*<~c`5`xryH&TS_j=H-i?tf{;XJU^$d#h04L*@a#d9Abqn zK66eOTl(H~0%x)7B{(2jczia6BH&T5CJH;OPk{!!i{T3+RQB_m8qDn!!VK5{12YK6 zu9mXz!Ne=$fQ4oanJ3ch^fK3(4yPUhop;7BSoXXb9jP<ZW7xlns`gtDj&?}3Ci|zh#FncbRvGlq@mXrjZ7@pS7 zcmW*EazADWtL#r9oY+Scm~gDZ@<g(fpQphw4?|`kIM7N!mB&L5Oz1|!E ztJSDT@zzG0=SeI^n@VW9_25|oZ8I1_#vTL95M;7PPJc5#5Vx$xjQNt+C+HY5Rt@YL zuD=*Fik*V(dDC0(em9lT7#*&9b4d+-Tjq*Cx;QQJBflDP_N&R9Ljry`h~CAkrdhM#^p>z59^YMcwCBss#&I;~ZtwrGMxOnEkY;Rl0FFgh zRippI{MUPn1WRXEl_I^akHPj*NzNYG-_`aCW6I@X8Qx zjkyFJpOKEzN8L^D#btCoJc0cz^XMe~WG2EpBNlK268AyD!CJ|#TmIA3ESk(mfy{t| zCx`0N4~+XqtDG)T@cD`3W|lK(Uz@5SVj<$Y&HO z7qRe04!e_Xiil@M{n=A?p6}^-gKDOlL*+UZvv4?=U`y7*DLm zIn?@89k=$At97orBHGfhY&nm0N?;~!y+ zCh>rbeJKW(Iq>q+$$ z=HV9ql|i-s#F-$A?c)G?4CU)mt@0ps@+Gu+TU$Pu+`n@t!Rdcwa$MS3>GdJxy&C58ziOKAoiYU*u2cN%X zV8KSu5X~Ej>b)~1woPYswEm_MHdv3CHTUqTv!c=RDDoF3|Iv}bwEqgkHhZoVoV_P}+*J+8jNG?x3g{#-KjArxF{4m9 z@T3V>4Ov_G#!_rPnAM+TYOOb5VX#9!*sQc~bqnSoHn6?JLTFU}GsPKI2;;W*T!klI z`vb2phYWV?h68FXUuI;^=-B(DW5p1@&=4!rtkGti4ZH*aJtiJDO2J46`f%5Fs$oR*gog=1A z8(%a4PwoudgU5E9VR*|B&QF7AX@<+ayOz56Fr3i97q%!3Im2p_N!*%urd8L};0TE` zj8?1;-t?CUs_}WTI;-aKSU99rymW0C3|8_){jk(9ltb1>7N(Cta`w<_@h+?eKjg4W zKQk=u+{XpWo3KgZcPFK$&d$ZF#c&=vcXZ`KtB;vevtca><|wlqUtima2VD5dEb@PU zsU&w4v)%%+%Y4fCvc~kCXVgxXRCncf?nT&Lg`rH{m8ZEsC-QH&*hNykXc#N_yk4|! zO{}gNy@+`np>3YGpu#U$Bv(#mV=!hFzFC{bV$92TYi`f;W`9IwCs8R6emiAnc8W7f zK6k9YU8uRsJEzYX5zOd3Y<^`&ZYSB6@hn5mfOZzAoq3q`X_%d59(M*apK5ITahP27 zVD}Nu>Nj&HYL7zCox(+Xma~hpBDxdLayP~t{hnxtgwaE&`!VXH1%^Ecd)h(x_ z=BcbP&Rp0?SY>l-jeX;VDNd`02Ym4mpoTB2<>^=z`fz6$q~=EMb`8S`mbzgWdWS;P zz~k%R;wpq)zVf-f+)UxU-gQnbzN?%UJ`Bo_A^KO(&aU~IM-_DFo^ML$2Ph7eIt=nU zGT;~0-W%2NSy5v@XfN>UY2V%m*bC~@znK4}i?rF{S@v$sw_gi@wz)h%CP5WU$4yAb zJiK7N3i`|gFCFu7@43OPbH<7I5@ZM7*~>G-XI3-(`|2>)!AA;=e~hN*Uk&c*#!K(( zr={}(+J1WZJ&$1g;*(sHPgT%Il6?R0on+&mS8gA`Kkr@gF!IZ-0rx@wQt*#uT7|#P z`19iTecUsCo_}3WPru_H+P;4m;Xdf!hCuxIPJGY52XPrT0+S3+CT~K>V0LUi^-fe+b@O7iYx})y`a%S@!OO zy-_kFigdp?E8JRydkoB~@HYg1UbrV@`S%I@3k)-+jlsHeS(ZKLOvf2O16@VpC0XI# zjc{qN3V+`B%IN={S^f=xf9#jNi}B-idzOE%!#}US@cSTMI^NFmZxs9sro;2^jV%AZ z3Y14lz`woVfO+nf$Hbk)uOsXQ%eV8Cbo@pK{2P(w-;wYS-?H~FuY99f_Nrj7$hVcg zKQ1fWz6h80s_-`!e=s)bKPSt-^;zlg!u?5>z0I(;>~> zI^yT`LlfaCjE%dGv;4aT{^iP--t98Wn_ayua_V-@?U6W<+CD`-&3V7#u_8!f$=bYs@eQ7~gkr-*8nJ)uikL|;| z{IY?)V7{b~jsdV#g})j2^U7mzmVZ;=AIE#|^8D+c<=-~=R|HE{_&XARo`2uV^6!|P z_%}Ptzq96G#w`E7f`48=L|NEN z?;qqJw9NH=_}AI%M4&@^yq?YSuV5Y8_X_3xuB|2D%v3R_jMxB!2if9*P?>n#0vcMHBu z9!Rg}p9_1z`nUPWw4B2a273M-kmcW!3+$H^={GOWzx}fOy9oZRfq51Fj=`Vj-;gZ- zUWb3{bHr~zmVcegG0zKI{}u=Q8!!JxK#y1L#f~$S8LW%(<6l`;xaYs=IKw7g2~<32hgrb_S2$y2p?SWu7tGh=k7>ZS z!ttBF!Wj|-?FV~cs_80yg&|Q6fRbf-IR5A#>kcpa>>|GP;8y(Q4lmd<(*NL0g=+Q? z=_~Ai{mklx&FVtXoDzTf3Okh8(^uH(l~&*`Y$WEiRyacfrFs9fp|L+OOU>1Y^c6Oe zVNe~cvGk7;T>1)|FSG^Kl%UdA*r5cJzQRsvT7kQ;>7mkEVP||=Vaz9FsVO<6udu^a zjr0{ZU(5}vr=}IS3p>-Y)YG%nWm)POS!#}K=_~ATWJ+J*jIY%(JdO<8|P8oo~IQD85W zKZXPUVx7NIs(r!UXkWKWO|xD|-{Vpf)O$v1w!GeGe{V@`-FJ1qmYOZ67bFFKm6n&a zzpv9*YU->lx;SPDq`& zHSgsVNzI|5H~NRsP&1xf>!5nN%&q^2IyD*Y`#bA1+z)gvmizsT`+?3iGKbRm`*WHj z?f-GQcc}6|Vc{9uXJ{l4@_v?lJWQf$(eu*7_%CW=o{B@_5W1fEQct{TC8 z^{o8@vnR-nxh#EHt&PvaS%2TpMqKx^1n=ZT3NpX+}Tev>!e`Sj~@t zwS7f`Ioe@1ND<&JcBTWlld)qB{fb09XBYSDw}W5E&k8#Zl~X_+O(Q}SEO+41uwwn7ZdHF zkf{0GhdEFQQ$A2^P4NVPJuYa=Gh?e$^&)$dT;-R0kIHki6I1IpGw(bn$}(S>b5C_Q zraAprggyU_a$ytSt&2C&B=Ols)=`<}dPr)4zw3-*_jjmS)93IpFnl4ix~5@OG2WIO zUDeoNUl3znri}Am^$8w1gAX}VV~m1ZytJCN@z^#Tgqh48OvNsO$z39hL1r>oH_QX` zSxKnKif2XJc$R1M2lTpP=b@Ij?QIsY8SZwwnBKMxD2H!|@gDh>z17Pit&TRgw$w#e zHMFE!%|TD}syi*hMLS8Q{rI~Jk(gr%Ig`YAHV+IPVdur}k&d&B`j8{y)Gv3OOJwgZ zs%JaS6XYDn`I7ve-!9%QJ|I3R{z3ec_*e05 z@qO`Ak<(I!(_Y+P>@Q9e%f-3kv0|;bLTnaSi6@C>%@E<7E%g@h67dSrtQo@IjZ)t# z{z|0G!1z8UJ}v%1{ImEs@m=vF@pJJT(X1)LKduMR-+ja$Vxibi94d|yCy3L;nc{r$ zSg}fM6xWFB#0}y(;#TnzahrIJ_!IFK@pkcU@d5Es@%Q4Z;@`w~MXrG{{hx~t>aeL7 zVrOw*v4?o5I6@pFP81Ipj}qsJi^L^jgP0K4h^L5~#0$h9i?@k9FTnUVh%Msj;zn_c zc(Hi7c&&J&c(?et_=5P3$VDZF*In!>_7;bVM~OA!DdMH#ZQ}Fd=i+{t)Y1Q;;#{#+ zyhOZPd{KNw{JZ#p_@$WF$@*I$4i-zr3h@N-67gr^v*JtQU&Ob>_r)(n7abzgktcQ& z4-pR)M~D-|8R9~*Qfw4Y5;uvLi8qLMh}*^I#W%!H#4r}w7{7hRUg8LGvN%UvD#pbV z#dE|Th}Vn16dw_PFTO5*EQTqF< z#Gi_fh;NHui2GpjPk)Dr<>GPTDshu|zIds4h4^Ff2Jsg0De*(GTQ?it2=QofjksPs zPuwQ{M7%?MM0`$sP5eOoM(hkhgXud^93YMnr;GE&DzQmCNjyjVzIdH@oA`kEy!f8z zV6lYZcM^Mv!^OkInc}hHGO<-WT|8gBQv9iSx42z=R(xIjQtW_bX~w6oI8}^^XNp&d zw~4Zt*$sRnhIK zc!*_Uy|_-iN_;?kU2G2ln&~eT$BGNYW^uE4z4*BJn)sgB^$_b{u{cg#EY^spi<`vj z#b?Ej#C&XDFn+zo@#5*?rQ*%vlj7TAry}cqs5nck6i*blh_{N*iT@P4^s@ep5NC_k z;#%<%@n_=G;z#1%y{$j}#lyq~@nZ3Q@g4Cav3nouevmj#Tq?%Ib>ar`O7U9pVetv^ zP4ORMxUUVTqu5LAFRm0%5ib(|ApTi=Tl|-}L(D(a`oE7jKpZa46z7W#VzYRbc%FEz zc$0Xq_=xzX_@3CcpACP1ajZC5JWi|;*NJC{KN7DO9}=Gs-xS{y^ZP5k;!tsvI8QuU zTq~{@w}_XB*NJzD&x!vKyAH77jTMg**NWT3Uy8pLUld;zzZ63Qt$zoLeZ}$ORIyS# zQ9NJ#zW6io7vdA*@5Hyn_r-RDY`C4p-r_)UvN%IrBF4m1#52V!#B0Pm#rwq<#8<=* z#m~hqgKd2F6Gw=p;xXb{@gnhZ@pkbZ@dfb}@e9!%V#Dbv_7RU1=ZXn&m3Y4Reen+Q zUh#SHW$`od8?nz&8}1Yc z_$%=~@m29nF*Mxz-%%VWju01$OT)V}gW_A_`{Ds3tp7z~nK(G6+ahuh=rqVc>Tl~;%u=|Oo=}buM+PQw~KFz?}=T;SpWAE$BR?NYH_)Ewzx&S zS-f3*Mtnj1T8xz1a7x7S;zDtWc(S-bd|muVk*p5g!zPFaA;dNc>#vGS0@cKpZ7b5EqM8;%af7c(Hi7_*3yV@iXyju_N+? z`Lefokl0HcDwc?o#WL}G;?ZJEY!FWr&l1lSuMn>hZxMefJ}5peJ}>@B{D=6l_=UL7 z1e=~i#Yy7P;tApv;xEN}#An67if@ZM#C8*{|3zXyajJNvc&u0@Cd4zvbH$6rZQ}Lf z&EoyyqhirvHvAD{sd%I~S3F<*zW9{*XYoDp8?nnI>+d1rp<=N(R-7)*6pt1w#TDZ5 z;>qF$ajST#c)fVD_<;DB__Fww*mJUtXQ@~rHi@m`x#C6QjpD81Z^h@ukHs&<{ii5D z#8PpR_y_Sd@oTYQs&zM5JX}0hY!x?)KNjy4pAp{@cZl5&xBdL%WuO>46;u+$F;&tNf;zwfp8Pm=Y5nOe_7*3I z$BIdDt$2}mnb^Ku`5+!H9w)96PZBQ`e<WI zYs4GHN5tQVZ;9`V?dK^U#W`Y3Tq9l}{y@B0yj^@!d{%s0{6OsVJsZxx;s9~Dc$D}( zF)k*>^TdnATf|?AzY|{+KM+3?htId+A15ZoGsVr~)#CNycJVjj-^9)#RLvEuRK2JuSq zTJaO{z(v;m6tQ01EZ!nME*7w3pc@d|Of_>s8RG1mP!ak-cj&k=ti z{#N|E*#20BFU}Pgi^q$Xh!2TRiGLM87sHFKf4#&p;^E>Paj|&3c(S-ryjZ+Rd_?@C z_?g)GIE5#ciie9e;x_S4GUPbF79SwTIL>yNKPSE>eoDgrzr-#}ta@K@pg2@qOpeF1 zH{xnC-*HY9PazTB#bhVP`GI(a^nXFZ{k`Jv$j*-Qy!a9c_aBgZInF2I=hDw#YTfTm zBHrD^{Ykj%Df50(50-kg)DxthO2U1aST6JVGCx}S$B9vyw@STMJX!jukx17T@kW{7 zEdHEC{O*wX!{T4X_r)*84wcrwZsH(ujCi=XTuh1U#m(Z6#mB|Ji(RAE|AWMS;#6^# zc(m9kt`Scce<=P$yj^@id`f&n{80Q_>{DgqFbB%9!WMtP&f=lz6Imws?_vnRu;uqj{6u0T>A{K~6Vn1=DI98l49wjakmx}AeGsH{8E5sYbTg1D?2gTot&x@~#Z;PLb zUx|5*HXVD5y~F|HM6q0)C)SF`i)+L)#LePW;!nlf#QViZ#plI8iSLLXiF^o?^}B<( zpV(6zBo>R4#TnuP@i=k0h|gmie@_xm7cUX75Pu^6xA<%EVexn3i{gi3yM*=s5OJ_r zEKU~7M7*ri#OGLXnb;_vD4r^A5ib^hEZ!jgQoKieTzp!5S$s`=U;I=IHQV@f6br@K>UGtjd-JYyLgZIsQ6ov?^IzwenC4h-*L=y z0iE!U9I89xy%6MHc>fy-dFib7AmpGQlie{NBO$k#cT_+wd7o;?6DIZl!6_a!l>7(ik!JA|BR-!I_Kg@Woj`wj-TR{qt?AIKU-G+$0zAjU!y4~#t~ z9_Xu$KKeSNkG{mHJ$q=Q#vbar(f7hZ-7)b#Ug5OJ-18@yrA}q3TNNJSW&FpQMrT-Y zu{L7-U9J28O}r4ku{T5Zrl;*0bEMapV-9Hi!Ccex$Cx9X#(c5NkIgbiI*j==nNLx= zMq%E~c%i9SJWC7wQ^(YeU6R$2Y=Ceq&(<-TJNwn8BQlCWjK>Vb>h(u+-Uh11j zwB!4veuzYSenIM&No3LoQh!1sefu(=lW{IU@trQ3{DJufsu6E5{cOMP!T2Fz9ubk1 zMs3Oy`iQDgd*w2OYV=#Ce890%PZUkK&^P4;9z%VU*Amgh2kPZgH;XCJ#1oM?n`+RM zBY2V2+r+EHTS%1mZQ|YHed43ylj6%H()FtNmiVstiTJsgr~K_K9wf3~qd&vMk>Yp} zuM{-qGsL6B#bTvcFRl<<#8u*%;yL04;w9n_#jC|z#oNVSiw}s8i%*GvCJP+rHSzD_ zd*VMuJ}*dn`A9R_MeHu}oeI?NCGwpLR1X!4#VO)+ah5nwJVsn1){4tT^Ug!~o058i zc(%Azyhz+8UM1cl-X=aMZWsBk2FCk$;)~*+#COFH#2qBse>iN}N!(l9Upz=0Orn1n zE|!WD#A)IY;?X4fkK@FcxJ*olN%3?NjrJ^Yi+G`Uxp<{`Gl~9(?|>lh67Lnai%*Du zB+);;BEBiUBYrG?CU!u_!v3q1*iGDDEEM~QC1g*>DHSJ+)5Mt~-yuPJQ4(bk6IY4} zakY4&xJle1UMgNL-YDKI{!+Y4d{Epj{#JZe{G<4a_@?-d__6qzxI+xLv+3w2n&(xK zu6|Mv5{t#r;&kyyajsY)E*2}rM)7!&@|}wxk6qR8p$eIPzKBGBJ%B_%Jc2}jJC;N{ znL={>BT=vCk*Kf7knp66M7>&0qTV!&2VITg2PMJH)%i zN5v<_r^V;Q7sQvvx5RhF55!Nz&&99AJdO{@7rsA`>?#(BJ;a{k0C9*oLL4QU@e}uE z`~;7rKK{%&3Yzf~G~*{&g+H2`aTHuGbzE!~Qyy0*@YUXw`5^GH#PFix;xS`JjV>-O zEh#D*Jz`9e_gg$-#F$Z|pc*}T)ClMn6;muR0TqpBwa@SvB4MrIZaHcs^ zWYc2d#y2*Vb>2QDLgn@;%sOZ3gXgYt&b_-owP1ewyFE^S%T2X=jM}Guv112Ts6XBw z=}Y6czS^;4$M)%c^QZu=H<7;Up)_W2bXz|teE;sG`;Bj~PB=^7xeESoFEg%}zD>W} zecZ0?5AD*eQ@G1Pm~V#0xo)>`m+_q@pg#ktLhRIuw(YOu>@@(UJ<$bs`Tv-E z5Ae8(s}1 zAV5Mdq4z*S3!wx;3j_jz5PByNKKS4F%(-{(u4FLZ_dWmr?_=+~Gjrz5%$YN1&XjwV zC#fVHoM*`2G95C)X~>&4XcEfJ&9?PPV+0ln6=qJB)HRK{FxNEX)!;`ye_-wIalzy; ztVXk*FgK?mZ%)>vOlB#lK$(6X!<8&k$w;)b8`qG>V4lsgu z?V7`Ov#SRkePdzDI}w}ESC_V{FD=UJ)>x~DLW@}ErX`r6fS8YD27aItzh1$_I0#!q zfhxr3pi%=Wf&(fUa6(P+!Uv2`d%p-Tl0APuVg~RpABWP?j)EXFo?nHSf!t*c4NSij zlOp~`Jl>s>kzP9$aT)1T8wi6|XJrufFB3RunLuQ{K+{%2R!bP=W@JSNqn#O9YYGL{ z)(EuiDX^|tU_Dewxmj6=^}w;2NQ>hM#$wgwFc4z}bHgIOlVL zb8|6oWDGxVy1@DS2wV^s`1zRvzqnf9!aD>mdR^dRzJVZP_%Fu^T(XzIrJVwo@$CZ{ z!+&*^z~zq!T=5TqUk|`)Fk|>tWdheM6S(eBfg4U0xak^!oBt&6+kXk%l7`tZWB9Gb z0=LZ)xP3o?JNR~ijNx~lCvevt0(ZY8aL+da_m*POnKAsnI)MjT1s*&};Gt^-e*Y(d zKYS$c@DQv{GloA>Ch+JU0*|!|JbtRcA8!kbm}Tx_^3H9q2&_xPsy1Wi&Laf6E)?j#Mc~jU1bX%!{z!onE)m#v zhrmfM3;eM{O8?VW5_)nRReR^BGe;7hsh7~7M@#6rxdMN=P~iF10xujU@Zz0-Oj$r> zo&udPS==1CU=&Qt*lX}Fn|owOWyi7g12jzv`F+)93TNo5veUf5Oxmf@-R zmwi5#8YUa_h7-ts0X8R;{SOS#^z7FsWAT>VfYfky;XrKAJK1f}v@Ir^uO`?M$bKEf zTSD1<5zm(N?4y`ABs&fvZ3$<$qY7J);~5OkEy%**eWS^~3Pg`P+51C2#|E-5gRr-N z!~f?saI$WJOxB`Sq40YA%RZ!*GC3bw5XfFWg))hu&FR@oQU4*?8!IRiZtSu4KY|F2(7Y3e3P3657K{JfcbBA{c z^o+;WIRs^brr=y;G|Uqo7BG2_&O!*vcv2V<1#UzhCt8F58N2KywtAP9e4;I5msKwb z?DLVpz5`}6a=%>#4yX}0kk6`R>~hc=frF0}h@2yE$h88E4+%8AEYSRkKuh`@=8KLL zXx&X<%?g3FZ31mu06DFg=HG`Fo1snc8$wm*W#=wI5V#Biz|g|@`8OMxITGn+cqf{+ z>%4zsM4hq-VKe+zG(I@z5)i&r$B3P$LEOQ`E11VAd;{#yVSffH=}_$Q(XNONOds)Y zh;=W}b1d&_Hbd6}lME?L-dAMf%1phHq7RWYkncAM3@oBJM~3*)vZ6G64QyeT4G7a6 zF`F@lGuMm2^S?nJ`EtTE2j+Mf?aZzQnn624vRB&-^P9A!+#yBp4MM8M+oxqX+&ChQOo`%!BMg0|zcZ zW6Xeo5e%(BT3RV|YVZVd9JpUKhFRLc=O+RNrgek!;N6}BgS1D3_<1^Csy1-tXz)l& zJ8~pq&Uk}~Z{ch3*-T8E3KG?o#de@&_RC+?9i+h>$Zbf*%|R<2h`DPRWVFZ?cm$WS8V$Dm2+G9-Z1nzx7$v1%1@^R?y!9r zD&L7ce2=YLI(S?uoY>-Vl)hIp^8Y0w#&LP!#g;m0hoR@PSF;rb6-YAsLxZwk2$+0^ zkcq33Fqa?ZsfkGW3yadkVlGF_7Xd`S6!6E(OYx3|hGhTMA0Os|#e4uCBKu`OITtXd z6*A1eQ+m>6{|Ms`gb=dt_OZ!lG%Ci16mzv>u3^^vfY1DpyKO+23n9a|H)ek=?em$q zVy=$NTTE*XG)TLslVXGHm&l-)t0(gYzOo&Y!owC)%!QSyCu`DIjL-oU8csa(Wa%*C5|o}CH$8Ty3A1)q5sJ-^d@+fn>>!dw8FtMDuP=Qdhc zg}ER!yNp8gg^6feOaWJk=16#V*=M^tRlp^qDL`GbD~)ZROd3ux7m?<<2}r2%HPX%~ zhH#VG**|XyaI4t7nvBl~c^6vH28Pvw!7pKU4FicEwyZo5L~N zW?!uozC^C2%~bSS_WFKHP##=sn=Go>4SpU8MiaRVN14vFp;O9lgYg+Uja9|0S3Vmv z*U;%U6e>RlW`5`#8%i&~7c7U?+fY{dZK%i4g*G&#d>yJhbde3^m(PH49lE;>4KLpx zN;tH^hDMa%gzg`@hYf|xKSO(m?rB3~%K7rup^Is~0;9{y|AtNybC65=pi;# zRsMTOWN4EORhQoYGd8rvh9;GNNuI4XG`al#i3oMrP)+$#bm-7d8=B&Txw&DWGtST> z*e>f6+0jyAE@e%($V(E#`$NWsZAlvV!bD1?4yLqp2Xht()J#fI|BH^50M zIMs%Rmmdq!7Mx~7Bg#KO;|fl

X;A7)1qV(NYCQk179T077R|lh8p<+GD8uxI;;r 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 literal 0 HcmV?d00001 diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/mix.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/mix.h new file mode 100644 index 000000000..979f0b079 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/mix.h @@ -0,0 +1,23 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "mix.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef mix_h +#define mix_h + +#include + +template void mix (std :: vector & __vect) { + + for (unsigned i = 0 ; i < __vect.size () ; i ++) + std :: swap (__vect [i], __vect [rng.random (__vect.size ())]) ; +} + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/order_xover.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/order_xover.cpp new file mode 100644 index 000000000..c845e0b5c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/order_xover.cpp @@ -0,0 +1,90 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "order_xover.cpp" + +// (c) OPAC Team, LIFL, 2002-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include + +#include + +#include "order_xover.h" +#include "route_valid.h" + +void OrderXover :: cross (const Route & __par1, const Route & __par2, Route & __child) { + + unsigned cut = rng.random (__par1.size ()) ; + + /* To store vertices that have + already been crossed */ + vector v; + v.resize(__par1.size()); + + for (unsigned i = 0 ; i < __par1.size () ; i ++) + { + v [i] = false ; + } + + /* Copy of the left partial + route of the first parent */ + for (unsigned i = 0 ; i < cut ; i ++) { + __child [i] = __par1 [i] ; + v [__par1 [i]] = true ; + } + + /* Searching the vertex of the second path, that ended + the previous first one */ + unsigned from = 0 ; + for (unsigned i = 0 ; i < __par2.size () ; i ++) + { + if (__par2 [i] == __child [cut - 1]) { + from = i ; + break ; + } + } + + /* Selecting a direction + Left or Right */ + char direct = rng.flip () ? 1 : -1 ; + + /* Copy of the left vertices from + the second parent path */ + unsigned l = cut ; + + for (unsigned i = 0 ; i < __par2.size () ; i ++) + { + unsigned bidule /* :-) */ = (direct * i + from + __par2.size ()) % __par2.size () ; + if (! v [__par2 [bidule]]) + { + __child [l ++] = __par2 [bidule] ; + v [__par2 [bidule]] = true ; + } + } + + v.clear(); +} + +bool OrderXover :: operator () (Route & __route1, Route & __route2) { + + // Init. copy + Route par [2] ; + par [0] = __route1 ; + par [1] = __route2 ; + + cross (par [0], par [1], __route1) ; + cross (par [1], par [0], __route2) ; + + assert (valid (__route1)) ; + assert (valid (__route2)) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/order_xover.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/order_xover.h new file mode 100644 index 000000000..e41761b6d --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/order_xover.h @@ -0,0 +1,31 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "order_xover.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef order_xover_h +#define order_xover_h + +#include + +#include "route.h" + +/** Order Crossover */ +class OrderXover : public eoQuadOp { + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void cross (const Route & __par1, const Route & __par2, Route & __child) ; +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_route_eval.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_route_eval.cpp new file mode 100644 index 000000000..8f0ba935a --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_route_eval.cpp @@ -0,0 +1,33 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_route_eval.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "part_route_eval.h" +#include "graph.h" + +PartRouteEval :: PartRouteEval (float __from, + float __to + ) : from (__from), + to (__to) { + +} + +void PartRouteEval :: operator () (Route & __route) { + + + float len = 0 ; + + for (unsigned i = (unsigned) (__route.size () * from) ; + i < (unsigned) (__route.size () * to) ; + i ++) + len -= Graph :: distance (__route [i], __route [(i + 1) % Graph :: size ()]) ; + + __route.fitness (len) ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_route_eval.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_route_eval.h new file mode 100644 index 000000000..8ad5886d4 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_route_eval.h @@ -0,0 +1,36 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_route_eval.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef part_route_eval_h +#define part_route_eval_h + +#include + +#include "route.h" + +/** Route Evaluator */ +class PartRouteEval : public eoEvalFunc { + +public : + + /** Constructor */ + PartRouteEval (float __from, float __to) ; + + void operator () (Route & __route) ; + +private : + + float from, to ; + +} ; + + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_init.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_init.cpp new file mode 100644 index 000000000..05b12925c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_init.cpp @@ -0,0 +1,20 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_two_opt_init.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "part_two_opt_init.h" + +void PartTwoOptInit :: operator () (TwoOpt & __move, const Route & __route) { + + __move.first = rng.random (__route.size () - 6) ; + __move.second = __move.first + 2 ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_init.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_init.h new file mode 100644 index 000000000..92d7ec0aa --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_init.h @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_two_opt_init.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef part_two_opt_init_h +#define part_two_opt_init_h + +#include + +#include "two_opt.h" + +/** It sets the first couple of edges */ +class PartTwoOptInit : public eoMoveInit { + +public : + + void operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_next.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_next.cpp new file mode 100644 index 000000000..e7b1d7665 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_next.cpp @@ -0,0 +1,30 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_two_opt_next.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "part_two_opt_next.h" +#include "graph.h" + +bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route) { + + if (__move.first == Graph :: size () - 4 && __move.second == __move.first + 2) + return false ; + + else { + + __move.second ++ ; + if (__move.second == Graph :: size () - 1) { + __move.first ++ ; + __move.second = __move.first + 2 ; + } + + return true ; + } +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_next.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_next.h new file mode 100644 index 000000000..67bd181d3 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/part_two_opt_next.h @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_two_opt_next.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef part_two_opt_next_h +#define part_two_opt_next_h + +#include +#include "two_opt.h" + +/** It updates a couple of edges */ +class PartTwoOptNext : public eoNextMove { + +public : + + bool operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/partial_mapped_xover.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/partial_mapped_xover.cpp new file mode 100644 index 000000000..9414a5c9c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/partial_mapped_xover.cpp @@ -0,0 +1,88 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "partial_mapped_xover.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include + +#include + +#include "partial_mapped_xover.h" +#include "route_valid.h" +#include "mix.h" + +void PartialMappedXover :: repair (Route & __route, unsigned __cut1, unsigned __cut2) { + + vector v; // Number of times a cities are visited ... + + v.resize(__route.size ()); + + for (unsigned i = 0 ; i < __route.size () ; i ++) + { + v [i] = 0 ; + } + + for (unsigned i = 0 ; i < __route.size () ; i ++) + { + v [__route [i]] ++ ; + } + + std :: vector vert ; + + for (unsigned i = 0 ; i < __route.size () ; i ++) + { + if (! v [i]) + { + vert.push_back (i) ; + } + } + + mix (vert) ; + + for (unsigned i = 0 ; i < __route.size () ; i ++) + { + if (i < __cut1 || i >= __cut2) + { + if (v [__route [i]] > 1) + { + __route [i] = vert.back () ; + vert.pop_back () ; + } + } + } + + v.clear(); +} + +bool PartialMappedXover :: operator () (Route & __route1, Route & __route2) { + + unsigned cut1 = rng.random (__route1.size ()), cut2 = rng.random (__route2.size ()) ; + + if (cut2 < cut1) + std :: swap (cut1, cut2) ; + + // Between the cuts + for (unsigned i = cut1 ; i < cut2 ; i ++) + std :: swap (__route1 [i], __route2 [i]) ; + + // Outside the cuts + repair (__route1, cut1, cut2) ; + repair (__route2, cut1, cut2) ; + + // Debug + assert (valid (__route1)) ; + assert (valid (__route2)) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/partial_mapped_xover.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/partial_mapped_xover.h new file mode 100644 index 000000000..a128fb9de --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/partial_mapped_xover.h @@ -0,0 +1,31 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "partial_mapped_xover.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef partial_mapped_xover_h +#define partial_mapped_xover_h + +#include + +#include "route.h" + +/** Partial Mapped Crossover */ +class PartialMappedXover : public eoQuadOp { + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void repair (Route & __route, unsigned __cut1, unsigned __cut2) ; +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route.h new file mode 100644 index 000000000..cde1f96ba --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route.h @@ -0,0 +1,19 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef route_h +#define route_h + +#include + +typedef eoVector Route ; // [Fitness (- length), Gene (city)] + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_eval.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_eval.cpp new file mode 100644 index 000000000..09be9102c --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_eval.cpp @@ -0,0 +1,23 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_eval.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route_eval.h" +#include "graph.h" + +void RouteEval :: operator () (Route & __route) { + + float len = 0 ; + + for (unsigned i = 0 ; i < Graph :: size () ; i ++) + len -= Graph :: distance (__route [i], __route [(i + 1) % Graph :: size ()]) ; + + __route.fitness (len) ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_eval.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_eval.h new file mode 100644 index 000000000..60b38661e --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_eval.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_eval.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef route_eval_h +#define route_eval_h + +#include + +#include "route.h" + +/** Route Evaluator */ +class RouteEval : public eoEvalFunc { + +public : + + void operator () (Route & __route) ; + +} ; + + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_init.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_init.cpp new file mode 100644 index 000000000..c37c1652e --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_init.cpp @@ -0,0 +1,34 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_init.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "route_init.h" +#include "graph.h" + +void RouteInit :: operator () (Route & __route) { + + // Init. + __route.clear () ; + for (unsigned i = 0 ; i < Graph :: size () ; i ++) + __route.push_back (i) ; + + // Swap. cities + + for (unsigned i = 0 ; i < Graph :: size () ; i ++) { + //unsigned j = rng.random (Graph :: size ()) ; + + unsigned j = (unsigned) (Graph :: size () * (rand () / (RAND_MAX + 1.0))) ; + unsigned city = __route [i] ; + __route [i] = __route [j] ; + __route [j] = city ; + } +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_init.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_init.h new file mode 100644 index 000000000..ab6b7ecb1 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_init.h @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_init.h" + +// (c) OPAC Team, LIFL, 2002-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef route_init_h +#define route_init_h + +#include + +#include "route.h" + +class RouteInit : public eoInit { + +public : + + void operator () (Route & __route) ; + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_valid.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_valid.cpp new file mode 100644 index 000000000..057ebb722 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_valid.cpp @@ -0,0 +1,42 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_valid.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route_valid.h" + +#include + +bool valid (Route & __route) { + + vector t; + t.resize(__route.size()); + + for (unsigned i = 0 ; i < __route.size () ; i ++) + { + t [i] = 0 ; + } + + for (unsigned i = 0 ; i < __route.size () ; i ++) + { + t [__route [i]] ++ ; + } + + for (unsigned i = 0 ; i < __route.size () ; i ++) + { + if (t [i] != 1) + { + t.clear(); + return false ; + } + } + + t.clear(); + return true ; // OK. +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_valid.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_valid.h new file mode 100644 index 000000000..90763d7fc --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/route_valid.h @@ -0,0 +1,19 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_valid.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef route_valid_h +#define route_valid_h + +#include "route.h" + +bool valid (Route & __route) ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt.cpp new file mode 100644 index 000000000..ad1bc0400 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt.cpp @@ -0,0 +1,42 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt.h" + +TwoOpt TwoOpt :: operator ! () const { + + TwoOpt move = * this ; + std :: swap (move.first, move.second) ; + + return move ; +} + +void TwoOpt :: operator () (Route & __route) { + + std :: vector seq_cities ; + + for (unsigned i = second ; i > first ; i --) + seq_cities.push_back (__route [i]) ; + + unsigned j = 0 ; + for (unsigned i = first + 1 ; i < second + 1 ; i ++) + __route [i] = seq_cities [j ++] ; +} + +void TwoOpt :: readFrom (std :: istream & __is) { + + __is >> first >> second ; +} + +void TwoOpt :: printOn (std :: ostream & __os) const { + + __os << first << ' ' << second ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt.h new file mode 100644 index 000000000..395b13442 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt.h @@ -0,0 +1,35 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_h +#define two_opt_h + +#include + +#include +#include + +#include "route.h" + +class TwoOpt : public moMove , public std :: pair , public eoPersistent { + +public : + + TwoOpt operator ! () const ; + + void operator () (Route & __route) ; + + void readFrom (std :: istream & __is) ; + + void printOn (std :: ostream & __os) const ; +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_incr_eval.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_incr_eval.cpp new file mode 100644 index 000000000..41adba2ab --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_incr_eval.cpp @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "TwoOptIncrEval.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_incr_eval.h" +#include "graph.h" + +float TwoOptIncrEval :: operator () (const TwoOpt & __move, const Route & __route) { + + // From + unsigned v1 = __route [__move.first], v1_next = __route [__move.first + 1] ; + + // To + unsigned v2 = __route [__move.second], v2_next = __route [__move.second + 1] ; + + return __route.fitness () - Graph :: distance (v1, v2) - Graph :: distance (v1_next, v2_next) + Graph :: distance (v1, v1_next) + Graph :: distance (v2, v2_next) ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_incr_eval.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_incr_eval.h new file mode 100644 index 000000000..64581c9f6 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_incr_eval.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "TwoOptIncrEval.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_optincr_eval_h +#define two_optincr_eval_h + +#include +#include "two_opt.h" + +class TwoOptIncrEval : public moMoveIncrEval { + +public : + + float operator () (const TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_init.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_init.cpp new file mode 100644 index 000000000..63a53df84 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_init.cpp @@ -0,0 +1,18 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_init.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_init.h" + +void TwoOptInit :: operator () (TwoOpt & __move, const Route & __route) { + + __move.first = 0 ; + __move.second = 2 ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_init.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_init.h new file mode 100644 index 000000000..b0dc1d963 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_init.h @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_init.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_init_h +#define two_opt_init_h + +#include + +#include "two_opt.h" + +/** It sets the first couple of edges */ +class TwoOptInit : public moMoveInit { + +public : + + void operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_next.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_next.cpp new file mode 100644 index 000000000..0fd1cdf1f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_next.cpp @@ -0,0 +1,30 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_next.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_next.h" +#include "graph.h" + +bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route) { + + if (__move.first == Graph :: size () - 4 && __move.second == __move.first + 2) + return false ; + + else { + + __move.second ++ ; + if (__move.second == Graph :: size () - 1) { + __move.first ++ ; + __move.second = __move.first + 2 ; + } + + return true ; + } +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_next.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_next.h new file mode 100644 index 000000000..bacdcdfb0 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_next.h @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_next.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_next_h +#define two_opt_next_h + +#include +#include "two_opt.h" + +/** It updates a couple of edges */ +class TwoOptNext : public moNextMove { + +public : + + bool operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_rand.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_rand.cpp new file mode 100644 index 000000000..5bf3e37b1 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_rand.cpp @@ -0,0 +1,20 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_rand.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_rand.h" +#include "graph.h" +#include + +void TwoOptRand :: operator () (TwoOpt & __move) { + + __move.first = rng.random (Graph :: size () - 3) ; + __move.second = __move.first + 2 + rng.random (Graph :: size () - __move.first - 3) ; +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_rand.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_rand.h new file mode 100644 index 000000000..ce26889a5 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_rand.h @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_rand.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_rand_h +#define two_opt_rand_h + +#include + +#include "two_opt.h" + +class TwoOptRand : public moRandMove { + +public : + + void operator () (TwoOpt & __move) ; + +} ; + +#endif diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_tabu_list.cpp b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_tabu_list.cpp new file mode 100644 index 000000000..c8bca955f --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_tabu_list.cpp @@ -0,0 +1,58 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_tabu_list.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_tabu_list.h" +#include "graph.h" + +#define TABU_LENGTH 10 + +void TwoOptTabuList :: init () { + + // Size (eventually) + tabu_span.resize (Graph :: size ()) ; + for (unsigned i = 0 ; i < tabu_span.size () ; i ++) + { + tabu_span [i].resize (Graph :: size ()) ; + } + + // Clear + for (unsigned i = 0 ; i < tabu_span.size () ; i ++) + { + for (unsigned j = 0 ; j < tabu_span [i].size () ; j ++) + { + tabu_span [i] [j] = 0 ; + } + } +} + +bool TwoOptTabuList :: operator () (const TwoOpt & __move, const Route & __sol) { + + return tabu_span [__move.first] [__move.second] > 0 ; +} + +void TwoOptTabuList :: add (const TwoOpt & __move, const Route & __sol) { + + tabu_span [__move.first] [__move.second] = tabu_span [__move.second] [__move.first] = TABU_LENGTH ; +} + +void TwoOptTabuList :: update () { + + for (unsigned i = 0 ; i < tabu_span.size () ; i ++) + { + for (unsigned j = 0 ; j < tabu_span [i].size () ; j ++) + { + if (tabu_span [i] [j] > 0) + { + tabu_span [i] [j] -- ; + } + } + } +} diff --git a/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_tabu_list.h b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_tabu_list.h new file mode 100644 index 000000000..d42de82d3 --- /dev/null +++ b/trunk/paradiseo-mo/tutorial/tutorial/examples/tsp/src/two_opt_tabu_list.h @@ -0,0 +1,38 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_tabu_list.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_tabu_list_h +#define two_opt_tabu_list_h + +#include +#include "two_opt.h" +#include "route.h" + +/** The table of tabu movements, i.e. forbidden edges */ +class TwoOptTabuList : public moTabuList { + +public : + + bool operator () (const TwoOpt & __move, const Route & __sol) ; + + void add (const TwoOpt & __move, const Route & __sol) ; + + void update () ; + + void init () ; + +private : + + std :: vector > tabu_span ; + +} ; + +#endif